Skip to content
KramorDS
Switch light or dark

Foundations

Color

Four brand colors, a navy-tinted neutral scale and six semantic roles. Components reference roles, never raw values, so both modes stay in step.

WCAG 2.2 AA in both modes36 tokens per mode

Brand palette

The raw brand colors. Use them for the logo, illustrations and decorative glows. Interface elements use the semantic roles below instead.
  • Modern Tech Navy18.38:1
    #0B132B--color-brand-navy

    The dark canvas, body text in light mode and the logo tile.

    White text reads at 18.38:1.

  • Electric Blue5.05:1
    #1C64F2--color-brand-blue

    Primary actions, selection and the light mode focus ring.

    White text reads at 5.05:1.

  • Signal Cyan13.24:1
    #00F2FE--color-brand-cyan

    Live and in-flight states, the dark mode focus ring, glows.

    Navy text reads at 13.24:1.

  • Slate Dark Neutral14.62:1
    #1E293B--color-brand-slate

    Quiet chrome and secondary surfaces in dark mode.

    White text reads at 14.62:1.

Neutral tokens

Surfaces, borders and text. The neutral scale is tinted toward the navy hue so grays never feel cold or disconnected from the brand.
TokenLightDarkRole
bg-background#F5F7FB#0B132BPage canvas behind every surface.
bg-card#FFFFFF#111A33Solid surfaces: cards, tables, inputs.
bg-popover#FFFFFF#16203BRaised surfaces: menus, dialogs, palettes.
bg-muted#EDF1F7#1A2440Quiet fills: table headers, code, tracks.
bg-secondary#E6EBF4#1E293BSecondary button fill.
bg-accent#E9EFFA#1D2844Hover and highlighted rows and items.
border-border#DCE2EC#26324FHairline dividers and card outlines.
border-border-strong#C3CCDC#34415FOutline buttons and segmented controls.
border-input#7D89A1#66738FForm control boundaries. Meets 3:1.
text-foreground#0B132B#EDF1F7Primary text and icons.
text-muted-foreground#4A5672#9AA6BFSecondary text, hints, placeholders.
outline-ring#1C64F2#00F2FEFocus ring. Blue in light, cyan in dark.

Semantic roles

Each role ships four tokens: a fill for buttons, dots and bars, a foreground for text on that fill, a subtle tint for badges and alerts, and an ink for text and icons on neutral or tinted surfaces.

PrimaryAction and selection.

Primary buttons, selected navigation, links, staged items.

bg-primary · text-primary-foreground · bg-primary-subtle · text-primary-ink

Light#1C64F2
Primary fill5.05:1
Ink on tint5.39:1
Ink on page5.76:1
Dark#1C64F2
Primary fill5.05:1
Ink on tint5.81:1
Ink on page7.24:1
SignalLive and in flight.

Dispatching work, live counters, implemented status.

bg-signal · text-signal-foreground · bg-signal-subtle · text-signal-ink

Light#0E7490
Signal fill5.35:1
Ink on tint6.52:1
Ink on page6.77:1
Dark#00F2FE
Signal fill13.24:1
Ink on tint10.30:1
Ink on page12.68:1
SuccessVerified and certified.

Read-back confirmed, certified evidence, mapped fields.

bg-success · text-success-foreground · bg-success-subtle · text-success-ink

Light#047857
Success fill5.48:1
Ink on tint6.78:1
Ink on page7.16:1
Dark#34D399
Success fill9.56:1
Ink on tint9.85:1
Ink on page12.06:1
WarningNeeds a decision.

Outcome unknown, unresolved fields, open questions.

bg-warning · text-warning-foreground · bg-warning-subtle · text-warning-ink

Light#B45309
Warning fill5.02:1
Ink on tint6.45:1
Ink on page6.61:1
Dark#FBBF24
Warning fill11.01:1
Ink on tint10.45:1
Ink on page12.75:1
DangerBlocked or destructive.

Unsupported required fields, failures, destructive gates.

bg-danger · text-danger-foreground · bg-danger-subtle · text-danger-ink

Light#C81E1E
Danger fill5.73:1
Ink on tint7.13:1
Ink on page7.59:1
Dark#DC2626
Danger fill4.82:1
Ink on tint8.85:1
Ink on page9.68:1
InsightAI suggestion, never authority.

Mapping suggestions and diagnostics. Never on an approval.

bg-insight · text-insight-foreground · bg-insight-subtle · text-insight-ink

Light#6D28D9
Insight fill7.10:1
Ink on tint7.72:1
Ink on page8.37:1
Dark#A78BFA
Insight fill6.75:1
Ink on tint8.80:1
Ink on page9.95:1

Contrast checks

Every documented pairing, computed from the token values in both modes. Text needs 4.5:1. Control boundaries, fills and focus rings need 3:1. 33 text pairs and 17 control pairs per mode.
All 50 shown pairs pass
PairingNeedsLightDark
Body text on pageforeground on background
4.5:117.14:1AAA16.21:1AAA
Body text on cardforeground on card
4.5:118.38:1AAA15.19:1AAA
Body text on popoverforeground on popover
4.5:118.38:1AAA14.20:1AAA
Body text on mutedforeground on muted
4.5:116.21:1AAA13.51:1AAA
Secondary text on pagemuted-foreground on background
4.5:16.83:1AA7.51:1AAA
Secondary text on cardmuted-foreground on card
4.5:17.32:1AAA7.03:1AAA
Secondary text on popovermuted-foreground on popover
4.5:17.32:1AAA6.58:1AA
Secondary text on mutedmuted-foreground on muted
4.5:16.46:1AA6.26:1AA
Secondary text on hover rowmuted-foreground on accent
4.5:16.34:1AA5.96:1AA
Control border on cardinput on card
3:13.52:1UI3.61:1UI
Control border on pageinput on background
3:13.28:1UI3.86:1UI
Control border on mutedinput on muted
3:13.10:1UI3.22:1UI
Focus ring on pagering on background
3:14.71:1UI13.24:1UI
Focus ring on cardring on card
3:15.05:1UI12.40:1UI
Primary label on primary fillprimary-foreground on primary
4.5:15.05:1AA5.05:1AA
Primary ink on pageprimary-ink on background
4.5:15.76:1AA7.24:1AAA
Primary ink on mutedprimary-ink on muted
4.5:15.45:1AA6.03:1AA
Primary ink on its tintprimary-ink on primary-subtle
4.5:15.39:1AA5.81:1AA
Primary fill against pageprimary on background
3:14.71:1UI3.63:1UI
Primary fill against cardprimary on card
3:15.05:1UI3.40:1UI
Signal label on signal fillsignal-foreground on signal
4.5:15.35:1AA13.24:1AAA
Signal ink on pagesignal-ink on background
4.5:16.77:1AA12.68:1AAA
Signal ink on mutedsignal-ink on muted
4.5:16.41:1AA10.57:1AAA
Signal ink on its tintsignal-ink on signal-subtle
4.5:16.52:1AA10.30:1AAA
Signal fill against pagesignal on background
3:14.99:1UI13.24:1UI
Signal fill against cardsignal on card
3:15.35:1UI12.40:1UI
Success label on success fillsuccess-foreground on success
4.5:15.48:1AA9.56:1AAA
Success ink on pagesuccess-ink on background
4.5:17.16:1AAA12.06:1AAA
Success ink on mutedsuccess-ink on muted
4.5:16.77:1AA10.05:1AAA
Success ink on its tintsuccess-ink on success-subtle
4.5:16.78:1AA9.85:1AAA
Success fill against pagesuccess on background
3:15.11:1UI9.56:1UI
Success fill against cardsuccess on card
3:15.48:1UI8.95:1UI
Warning label on warning fillwarning-foreground on warning
4.5:15.02:1AA11.01:1AAA
Warning ink on pagewarning-ink on background
4.5:16.61:1AA12.75:1AAA
Warning ink on mutedwarning-ink on muted
4.5:16.25:1AA10.62:1AAA
Warning ink on its tintwarning-ink on warning-subtle
4.5:16.45:1AA10.45:1AAA
Warning fill against pagewarning on background
3:14.68:1UI11.01:1UI
Warning fill against cardwarning on card
3:15.02:1UI10.31:1UI
Danger label on danger filldanger-foreground on danger
4.5:15.73:1AA4.82:1AA
Danger ink on pagedanger-ink on background
4.5:17.59:1AAA9.68:1AAA
Danger ink on muteddanger-ink on muted
4.5:17.19:1AAA8.07:1AAA
Danger ink on its tintdanger-ink on danger-subtle
4.5:17.13:1AAA8.85:1AAA
Danger fill against pagedanger on background
3:15.34:1UI3.80:1UI
Danger fill against carddanger on card
3:15.73:1UI3.56:1UI
Insight label on insight fillinsight-foreground on insight
4.5:17.10:1AAA6.75:1AA
Insight ink on pageinsight-ink on background
4.5:18.37:1AAA9.95:1AAA
Insight ink on mutedinsight-ink on muted
4.5:17.92:1AAA8.30:1AAA
Insight ink on its tintinsight-ink on insight-subtle
4.5:17.72:1AAA8.80:1AAA
Insight fill against pageinsight on background
3:16.62:1UI6.75:1UI
Insight fill against cardinsight on card
3:17.10:1UI6.32:1UI

Dark mode

Dark mode is designed, not inverted. The same role names resolve to different values tuned for a navy canvas.
  • Navy, not black

    The canvas is Modern Tech Navy. Cards step up to #111A33 and popovers to #16203B, so depth reads without heavy shadows.

  • Lifted borders

    Borders get lighter in dark mode, and control boundaries stay above 3:1 against every surface they sit on.

  • Lighter inks, same meaning

    Inks move up to pastel values so small text stays above 4.5:1 on navy. Fills for success, warning and insight carry navy text.

  • Cyan takes focus

    The focus ring switches from Electric Blue to Signal Cyan, which reads above 13:1 on the navy canvas.

Usage

Color supports meaning. It never carries it alone.
VerifiedOutcome unknown

Do

Pair every status color with an icon and a word

A verified record says Verified, shows the read-back icon and uses the success tint. Anyone can read it, including in grayscale.

Don't

Rely on a colored dot to tell states apart

Two dots that differ only by hue fail for color blind operators and in bright rooms. They also fail WCAG 1.4.1.

Dispatching 3,108 records

Do

Use the ink token for text on tints

Ink tokens are tuned to pass 4.5:1 on the page, on muted surfaces and on their own tint, in both modes.

Dispatching 3,108 records

Don't

Set small text in a raw brand color

Signal Cyan on a light surface reads at about 1.4:1. Brand colors are for marks and glows, not for words.

Overview
Color
Typography
Space, shape and motion
Actions
Forms
Feedback
Data display
Navigation
Overlays
Portal shell
Status and lifecycle
Trust and safety
Template gallery
Overview screen
Connections screen
Studio screen
Validation screen
Recovery screen
Governance screen
Settings screen
Switch light or dark mode