Dataface Tasks

Implement tonal foundations for Dataface neutrals

IDGRAPH_LIBRARY-IMPLEMENT_TONAL_FOUNDATIONS_FOR_DATAFACE_NEUTRALS
Statuscompleted
Priorityp1
Milestonem1-ft-analytics-analyst-pilot
Ownerdata-viz-designer-engineer
Completed bydave
Completed2026-03-24

Problem

Implement the initial tonal foundation decisions for the Dataface neutral system in the product defaults.

Context

  • A design note now captures the intended direction for Dataface neutrals: darkest default ink at #1A1A1A, a slightly off-white app canvas, and white cards / primary working surfaces.
  • This task was created from a docs-only PR that records the tonal rationale and queues the implementation work separately.
  • The implementation should preserve the distinction between app-frame colors and white working surfaces, rather than flattening everything to one neutral background.
  • The work likely touches theme defaults, config surfaces, and any supporting docs that explain the chosen neutral system.
  • The implementation should keep the Dataface chart/style boundary intact: theme owns visual paint decisions, while structure owns scaffold decisions.

Possible Solutions

  • Recommended: Update the core default theme/config surfaces to reflect the new neutral frame direction, then document the resulting defaults where users discover styling behavior. This keeps the tonal decision centralized and makes future theme work derive from an explicit baseline.
  • Add a separate new theme instead of changing defaults. Trade-off: safer for backward compatibility, but it does not actually establish tonal foundations for the default product frame.
  • Limit the work to docs only. Trade-off: captures intent, but leaves product defaults inconsistent with the documented direction.

Plan

  1. Identify the current default theme/config surfaces that control page background, surface background, and primary ink.
  2. Update those defaults to reflect the new tonal foundation decisions.
  3. Review adjacent built-in themes or styling docs for any assumptions that now conflict with the new neutral baseline.
  4. Verify the updated defaults in docs/examples or targeted tests as appropriate.

Implementation Progress

  • 2026-03-23: Task created and marked ready from the tonal-foundations docs PR. No theme or config implementation has shipped yet.
  • 2026-03-24: Implementation started.
  • Core config: Added page_canvas: "#fafafa" to theme_derivation.defaults in default_config.yml, formalizing the off-white page canvas as a named default alongside the existing background: "#ffffff" (working surfaces) and text_color: "#1a1a1a".
  • Cloud CSS: Aligned --color-text from #111827 to #1a1a1a in suite.css to match the tonal foundation ink default.
  • IDE extension: Aligned preview text color in render-markdown-face.ts and error fallback in preview-manager.ts from #111827 to #1a1a1a.
  • Docs: Updated styling.md boxplot example color to #1a1a1a.
  • Internal tooling: Aligned tasks server and stylesheet text colors.
  • Tests: Added test_tonal_foundations.py verifying config defaults, theme derivation, and extracted theme colors match the spec.
  • 2026-03-24 later follow-up: the chart-library M1 neutral-system discussion has now refined this direction further. The earlier working assumption of pure white chart/background surfaces is superseded in chart-library planning by adopting Fivetran gray-025 #FAFAFA as the preferred lightest background/surface tier, and the earlier darkest-ink reference to #1A1A1A is superseded by Fivetran gray-90 #222222. This task remains the implementation record for the initial tonal-foundations change, but the newer M1 chart-library task now carries the more specific token-level direction.

QA Exploration

  • [x] N/A — changes are to default color tokens in config, CSS variables, and fallback strings. No new UI flows or interactive behavior introduced.

Review Feedback

  • [ ] Review cleared