Skip to content

chore(frontend): add typography foundation (line-height, heading scale, font inherit) #741

Closed

Description

@cristim

Summary

The typography foundation is missing: no body line-height, no base heading scale, form controls do not inherit the font, and about 25 literal font sizes are in use.

Where

Reviewed commit b50ca38: frontend/src/styles/base.css, frontend/src/styles/forms.css.

  • No body { line-height } (browser default ~1.2).
  • No base h1-h6 scale; about 20 contextual heading rules.
  • Form controls lack font: inherit, so .form-group inputs render at 13.33px while buttons are 14px.
  • 25 distinct literal font sizes, 9 of them in the 12.5-15px band; bold and 600/700 are mixed.

Failure scenario

Source-level finding (not verified live). Inputs and adjacent buttons render at different sizes, body text is cramped, and heading sizes depend on which page-specific rule matches.

User impact

All users: uneven text rhythm and size across forms and pages.

Suggested fix

body { line-height: var(--cudly-lh-normal) }, button, input, select, textarea { font: inherit }, a 5-step heading scale on the existing --cudly-fs-* tokens, and replace literal sizes with the tokens.

Screenshots

None (source-level finding).

Severity

Medium: visual polish and consistency debt, no functional impact.

Reviewer ID: VIS-12 (vis M6)
Found by the 2026-10-08 review fleet.

Activity

  1. IAmJSD commented on Oct 24, 2026

    @IAmJSD
    Collaborator

    Claiming: working on this

  2. self-assigned this
    on Oct 24, 2026
  3. IAmJSD commented on Oct 27, 2026

    @IAmJSD
    Collaborator

    Status update (2026-10-27, checked against main at 7b86e38): What is left is frontend UI work, which cristim owns, so no PR from us.

    Many off-scale literal font sizes are still in the styles (0.85rem x31, 0.9rem x26, 0.8rem x19, plus others), and heading weights are not unified. Mapping them onto the --cudly-fs-* scale is a design call.

    Left / blocked on: Frontend typography (cristim).

  4. cristim commented on Nov 11, 2026

    @cristim
    MemberAuthor

    Claimed by claude-platform-2.

  5. cristim commented on Nov 11, 2026

    @cristim
    MemberAuthor

    Checked against main 514c797: three of the four asks are on main via bb564dd (#1378): body line-height token, form controls with font: inherit pinned to --cudly-fs-sm, and a zero-specificity :where(h1..h6) scale. Remaining: about 127 literal font-size values under frontend/src/styles (0.85rem x30, 0.9rem x24, 0.8rem x18, 0.85em x14, plus a long tail). Mapping them to --cudly-fs-* tokens shifts sizes by up to 0.05rem visibly, so it needs the overflow and screenshot specs reviewed and an owner call on the scale; leaving the issue open for that. The foundation rules also have no CSS source test. Releasing my claim (claude-platform-2).

  6. cristim commented on Nov 12, 2026

    @cristim
    MemberAuthor

    Checked on origin/main 447a98b. Partly met, leaving open.
    Met:

    • Body line-height: frontend/src/styles/base.css:145 (--cudly-lh-normal).
    • Form controls inherit the font: base.css:159 (font: inherit).
    • Heading scale on the --cudly-fs-* tokens: base.css:174-178.
    • Landed in bb564dd (chore(frontend): add typography foundation).
      Still open: "replace literal sizes with the tokens". The stylesheets under frontend/src/styles still hold about 125 literal font-size declarations in 22 distinct values (0.85rem x30, 0.9rem x24, 0.8rem x18, 0.85em x14, 0.78rem x6 ...), mostly in components.css (55), modals.css (24), settings.css (22).
  7. cristim commented on Nov 13, 2026

    @cristim
    MemberAuthor

    Claimed by claude-platform (coordinator priority list, 2026-11-13). Working this in a worktree; will post the landed commit or a blocker here.

  8. cristim commented on Nov 13, 2026

    @cristim
    MemberAuthor

    Status on main (claude-platform): body line-height, font: inherit and the heading scale are in base.css (bb564dd). Open: about 127 literal font sizes under frontend/src/styles. The dominant off-scale values are 0.85rem (x30), 0.9rem (x24), 0.8rem (x18) and 0.78rem (x6); none equals a token (xs 0.75rem, sm 0.875rem, md 1rem). Swapping them to tokens changes rendered sizes by up to 0.05rem, which needs a design decision and a screenshot review; logged as an owner choice in owner-decisions.md. Left open.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions