Dataface Tasks

Choose narrative serif typeface for Dataface

IDGRAPH_LIBRARY-CHOOSE_NARRATIVE_SERIF_TYPEFACE_FOR_DATAFACE
Statuscompleted
Priorityp2
Milestonem1-ft-analytics-analyst-pilot
Ownerdata-viz-designer-engineer

Problem

Select a serif companion typeface for narrative headlines and selected annotation labels after the primary sans decision is complete.

Context

  • Dataface chose Inter as the primary sans-serif typeface for UI, charts, tables, and data-dense surfaces (see ai_notes/considerations/INTER_AS_PRIMARY_SANS.md).
  • Source Sans 3 was the runner-up in the sans evaluation, noted for its warmer, more text-oriented tone.
  • The suite CSS already defines --font-sans with Inter and --font-mono with JetBrains Mono, but has no --font-serif variable.
  • The serif companion is scoped to narrative headlines, section headers, and selected annotation labels — not to data-dense chart surfaces, which remain Inter-only.
  • The serif typeface must be open source (SIL OFL) and available on Google Fonts for easy self-hosting and CDN delivery.

Possible Solutions

  • Source Serif 4 (recommended): Adobe's serif counterpart to Source Sans. Variable font with optical size axis (opsz), weight range 200–900. Shares the humanist warmth that made Source Sans 3 the runner-up in the sans round. Pairs naturally with Inter's proportions and x-height. SIL OFL, on Google Fonts. Trade-offs: best balance of narrative voice, Inter compatibility, and implementation maturity. Optical sizes give display-quality headlines without a separate cut.

  • Newsreader: Production Type design for Google, purpose-built for editorial contexts. Variable with optical size axis. Strong narrative personality. Trade-offs: excellent editorial voice but potentially too opinionated for a data product — its personality could clash with Inter's neutral pragmatism.

  • Literata: Originally designed for Google Play Books. Clean, modern serif with variable support. Trade-offs: optimized for long-form reading rather than headline display; less distinctive at large sizes.

  • Lora: Popular serif pairing with sans-serif faces. Well-balanced calligraphic curves. Trade-offs: widely used but lacks optical size axis; headline rendering at large sizes is less refined than Source Serif 4.

  • No serif — Inter only: Skip the serif companion entirely. Trade-offs: simplest path but sacrifices the narrative voice that editorial and annotation-heavy surfaces benefit from.

Plan

  1. Evaluate candidates at headline sizes (24–48px) paired with Inter body text.
  2. Select Source Serif 4 based on Inter compatibility, optical size support, and narrative tone.
  3. Record the decision and rationale in ai_notes/considerations/SOURCE_SERIF_4_AS_NARRATIVE_SERIF.md.
  4. Add --font-serif CSS variable to apps/cloud/static/css/suite.css alongside existing --font-sans and --font-mono.
  5. No render-layer code changes — serif usage in chart annotations will be wired in future tasks as specific narrative surfaces are built.

Implementation Progress

  • [x] Evaluated candidate serif families against Inter pairing criteria.
  • [x] Selected Source Serif 4 as the narrative serif companion.
  • [x] Created decision document: ai_notes/considerations/SOURCE_SERIF_4_AS_NARRATIVE_SERIF.md.
  • [x] Added --font-serif CSS variable to suite.css.
  • [x] Task completed — serif is available for future narrative surfaces.

QA Exploration

  • N/A — this is a typography decision and CSS variable addition with no runtime behavior change. The variable is declared but not yet consumed by any component; visual QA will happen when narrative surfaces are built.
  • [x] QA exploration completed (or N/A for non-UI tasks)

Review Feedback

  • Serif evaluation should happen as a distinct visual-language decision, not as an add-on to the sans selection.
  • Source Serif 4 selected for its optical size axis, Inter compatibility, and narrative warmth without data-surface contamination.
  • [x] Review cleared