Skip to content

Tonal Foundations

This note captures an early tonal direction for Dataface's neutral palette so future theme and token work can inherit a shared rationale instead of re-deciding the same questions ad hoc.

These choices describe the product frame, not a fully settled token system.

Current Direction

Dataface should soften the application frame without making the interface feel dim or low-contrast.

  • darkest default ink: #1A1A1A
  • page canvas: a slightly off-white neutral around 96-98% lightness
  • cards and primary working surfaces: #FFFFFF
  • pure black: not part of the default neutral system for now, but available for future rare emphasis if a clear need emerges

The design intent is to avoid the harshness of absolute black and white as the everyday defaults while preserving white as a valid surface color.

Rationale

Near-black text is often easier to live with across dense product interfaces than #000000. In a dashboard-heavy UI, pure black can make labels, chrome, rules, and small text feel heavier than necessary. A softened darkest ink keeps the product authoritative while reducing visual severity.

The background decision is more mixed. Pure white remains common and fully valid for app surfaces, but using a subtly off-white canvas can make the app frame feel calmer and give white cards or chart panels a clearer place to sit.

This leads to a useful separation:

  • use a softened neutral for the page-level frame
  • keep white available for cards, panels, and chart surfaces

Evidence From Reference Systems

Dataface is not unusual in preferring near-black over pure black for default ink:

  • USWDS uses #1B1B1B for its ink token rather than #000000.
  • IBM Carbon uses a near-black primary text color in its light themes rather than pure black.
  • MUI uses rgba(0, 0, 0, 0.87) for primary text in light mode rather than #000000.

It is also very common to keep using pure white for backgrounds and surfaces:

  • IBM Carbon ships a default White theme with #FFFFFF as the global background.
  • MUI documents #fff as the default light-mode background.
  • CMS Design System keeps both #262626 for base text and #000000 / #FFFFFF as available utility colors, which reflects how mature systems often soften defaults without banning absolutes outright.

Accessibility guidance supports the category of decision rather than a specific hex. WCAG contrast requirements focus on sufficient contrast, not on using pure black. Very dark grays such as #1A1A1A easily clear contrast requirements on white or near-white surfaces.

Implications For Dataface

  • Dataface should not assume that #000000 and #FFFFFF are the right default neutral pair simply because they are the simplest endpoints.
  • Dataface can preserve white as a first-class surface color even if the app canvas moves slightly off white.
  • Warm, cool, and neutral off-white variants are all plausible. The tint should remain subtle enough that the canvas still reads as bright and neutral rather than obviously beige or blue-gray.

Open Questions

  • Should Dataface's neutral system skew slightly warm, slightly cool, or remain strictly neutral?
  • Should pure black ever appear as a special emphasis color, or should the neutral system stop at #1A1A1A?
  • Once a neutral ramp is defined, which semantic roles should be standardized first: text, axes, borders, or surfaces?