rulebase.co-design

---
version: alpha
name: Rulebase
description: A dark, editorial B2B system with bright utility accents and calm, product-led clarity.
colors:
  primary: "#F7F7F4"
  secondary: "#C8C4BE"
  tertiary: "#8C827A"
  neutral: "#1A1716"
  surface: "#221D1B"
  on-surface: "#F7F7F4"
  accent: "#CC3542"
  border: "#374151"
  muted: "#EDEAE5"
  success: "#2F7D57"
  error: "#CC3542"
typography:
  headline-display:
    fontFamily: "ABC Diatype"
    fontSize: "60px"
    fontWeight: 400
    lineHeight: "72px"
    letterSpacing: "-1.38px"
  headline-lg:
    fontFamily: "ABC Diatype"
    fontSize: "43px"
    fontWeight: 400
    lineHeight: "60px"
    letterSpacing: "-1.2px"
  headline-md:
    fontFamily: "ABC Diatype"
    fontSize: "31px"
    fontWeight: 400
    lineHeight: "37px"
    letterSpacing: "-0.32px"
  headline-sm:
    fontFamily: "ABC Diatype"
    fontSize: "24px"
    fontWeight: 400
    lineHeight: "30px"
    letterSpacing: "-0.2px"
  body-lg:
    fontFamily: "Inter"
    fontSize: "18px"
    fontWeight: 400
    lineHeight: "28px"
    letterSpacing: "-0.08px"
  body-md:
    fontFamily: "Inter"
    fontSize: "16px"
    fontWeight: 400
    lineHeight: "24px"
    letterSpacing: "-0.09px"
  body-sm:
    fontFamily: "Inter"
    fontSize: "14px"
    fontWeight: 400
    lineHeight: "20px"
    letterSpacing: "0px"
  label-lg:
    fontFamily: "Inter"
    fontSize: "16px"
    fontWeight: 400
    lineHeight: "24px"
    letterSpacing: "0px"
  label-md:
    fontFamily: "Inter"
    fontSize: "14px"
    fontWeight: 400
    lineHeight: "20px"
    letterSpacing: "0px"
  label-sm:
    fontFamily: "Inter"
    fontSize: "12px"
    fontWeight: 400
    lineHeight: "16px"
    letterSpacing: "0.02em"
  caption:
    fontFamily: "Inter"
    fontSize: "12px"
    fontWeight: 400
    lineHeight: "16px"
    letterSpacing: "0px"
rounded:
  none: 0px
  sm: 4px
  md: 8px
  lg: 12px
  xl: 16px
  full: 9999px
spacing:
  xs: 6px
  sm: 16px
  md: 24px
  lg: 40px
  xl: 120px
components:
  button-primary:
    backgroundColor: "{colors.primary}"
    textColor: "{colors.neutral}"
    typography: "{typography.label-md}"
    rounded: "{rounded.sm}"
    padding: "6px 14px"
    height: "40px"
  button-secondary:
    backgroundColor: "transparent"
    textColor: "{colors.on-surface}"
    typography: "{typography.label-md}"
    rounded: "{rounded.sm}"
    padding: "6px 14px"
    height: "40px"
  button-tertiary:
    backgroundColor: "transparent"
    textColor: "{colors.on-surface}"
    typography: "{typography.label-md}"
    rounded: "{rounded.none}"
    padding: "0px"
  card:
    backgroundColor: "{colors.neutral}"
    textColor: "{colors.on-surface}"
    rounded: "{rounded.md}"
    padding: "{spacing.sm}"
  input:
    backgroundColor: "{colors.primary}"
    textColor: "{colors.neutral}"
    rounded: "{rounded.sm}"
    padding: "10px 12px"
    height: "40px"
  chip:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.on-surface}"
    rounded: "{rounded.sm}"
    padding: "4px 10px"
  badge:
    backgroundColor: "{colors.primary}"
    textColor: "{colors.neutral}"
    rounded: "{rounded.full}"
    padding: "2px 8px"
---

Rulebase

Overview

Rulebase feels confident, modern, and slightly editorial: a dark premium canvas balanced by clean white type and a restrained but vivid accent. The composition is spacious and deliberate, aimed at B2B decision-makers who want clarity, control, and proof of product value. Overall, the tone is professional and calm, with just enough sharp contrast to feel energetic and current.

Colors

Typography

Rulebase uses two complementary families: ABC Diatype for large editorial headlines and Inter for interface content. Headings are light in weight at 400, which creates a sophisticated, less “salesy” feel while still remaining assertive at large sizes. Body text is clean, compact, and highly readable, with subtle negative letter spacing in the larger paragraphs to preserve the polished brand voice.

The type hierarchy should follow these roles:

Layout

The layout is a fixed, wide desktop composition with strong left-right contrast in the hero: text and navigation on the left, immersive image content on the right. Sections breathe generously, with large vertical gaps and clear content blocks separated by broad whitespace. The spacing rhythm follows a sparse-to-medium scale: 6px for fine adjustments, 16px for standard UI padding, 24px and 40px for section separation, and 120px for major page breathing room.

Use generous outer padding and centered content containers for lower-page sections. Cards and content tiles should stay compact and aligned to a clean grid, but the overall presentation should feel expansive rather than dense. Avoid tight multi-column packing unless the content absolutely requires it.

Elevation & Depth

Depth is achieved mostly through contrast, layering, and borders rather than dramatic shadow. The hero image and UI cards sit on top of the dark foundation with crisp edges and minimal shadow treatment. Where depth is needed, use subtle borders (#374151) and tonal separation between neutral, surface, and muted backgrounds instead of heavy blur or drop shadows.

This system is intentionally restrained: it favors a flat, premium look with occasional lifted panels for chat cards, badges, and navigational pills. Keep shadows soft and minimal, and prefer structure over glow.

Shapes

The shape language is modest and functional, with small radii on actionable elements and slightly larger radii on cards. Buttons and chips use 4px corners for a precise, modern feel. Cards can move to 8px or 12px when they need a softer container presence, but the overall system should remain crisp rather than rounded.

Avoid pill-heavy treatment except for badges and status markers. The geometry should feel architectural, not playful.

Components

Buttons are compact and practical:

Cards should feel like calm containers:

Inputs should match the same compact, minimal language:

Chips and badges are important for metadata:

Navigation and link treatment should stay minimal:

Do's and Don'ts