← ProcessesMED·Kit · Mehmet Ergul Design Kit

Styles

Color

Ink, paper, and rust scales, domain signals, and the semantic color roles every component reads.

Scales

tokens/colors.css

Ink — the near-black canvas and its greys

ink-950

#0a0a0a

ink-900

#0e0e0e

ink-850

#121212

ink-800

#1a1a1a

ink-750

#202020

ink-700

#2a2a2a

ink-600

#444444

ink-500

#666666

ink-400

#999999

ink-300

#c2c2c2

ink-200

#e8e8e8

ink-100

#f5f5f5

ink-50

#fafafa

Paper — warm off-whites for the reading tone

paper-50

#faf9f7

paper-100

#f3f1ec

paper-150

#ece9e2

paper-200

#e4e0d8

paper-300

#d6d1c6

paper-400

#b0aa9d

paper-500

#847f74

paper-600

#595550

paper-700

#38352f

Rust — the one warm accent, anchored at 500

rust-700

#8f3d0c

rust-600

#a8480f

rust-500

#c0551a

rust-400

#d4762f

rust-300

#e8a080

rust-200

#f2c9b3

Domain signals

--signal-*
--signal-editorial#c0551a · writing / thoughts
--signal-content#e08a1f · video-led work
--signal-craft#7d8aa0 · design systems
--signal-orange#f97316 · category eyebrows
--signal-live#4ade80 · status only
--signal-warn#e08a1f · status only — warnings
--signal-danger#d4762f · status only — errors

One accent per content stream, desaturated on purpose. Never introduce hues outside this set — differentiate with value, not new colors.

Semantic roles

ink · paper

Components read these roles only. Each theme block redefines the full set, so a nested data-theme wrapper switches tone cleanly.

RoleInkPaperUsage
--color-bg#0e0e0e#faf9f7Page canvas
--color-bg-elevated#1a1a1a#ffffffCards, chips, inputs
--color-bg-panel#121212#f3f1ecRecessed panels
--color-bg-deep#0a0a0a#e4e0d8Deepest wells, code blocks
--color-bg-hover#202020#f3f1ecHover fills
--color-fg#fafafa#0a0a0aPrimary text
--color-fg-muted#c2c2c2#38352fSecondary text
--color-fg-subtle#999999#595550Meta, labels
--color-border#2a2a2a#e4e0d8Hairlines at rest
--color-border-hover#444444#d6d1c6Hairlines, lit
--surface-contrast#ffffff#0e0e0eOpposite-tone card
--on-contrast#0a0a0a#f5f5f5Text on contrast
--accent#c0551a#a8480fActive domain accent
--accent-on#f5f5f5#ffffffText on accent fills
--selection-bg#f5f5f5#f2c9b3Text selection
css — authoring rule
/* Author against SEMANTIC roles — never raw hex. The same rule
   renders correctly on ink and on paper. */
.my-card {
  background: var(--color-bg-elevated);
  color: var(--color-fg);
  border: 1px solid var(--color-border);
}
.my-card:hover {
  border-color: var(--color-border-hover); /* lift = brighter hairline */
}

Dual tone, live

data-theme="ink | paper"

data-theme="ink"

Quiet, cinematic

Annotation Builder

The same card, reading semantic tokens only.

ChipAccent badge

data-theme="paper"

Warm, editorial

Annotation Builder

The same card, reading semantic tokens only.

ChipAccent badge

Domain signals, live

data-stream="…"
Thoughts

Writing carries the rust signature — issue labels, ledes, pullquote rules.

editorial
Recent work

Video-led work carries warm amber — the eyebrow tick above the work band.

content
Processes

Design systems carry muted steel — including these pages.

craft