Skip to content

DO NOT MERGE — Redesign UI on the FORRT design system - #7

Draft
LukasWallrich wants to merge 2 commits into
mainfrom
redesign-replication-atlas-ds
Draft

DO NOT MERGE — Redesign UI on the FORRT design system#7
LukasWallrich wants to merge 2 commits into
mainfrom
redesign-replication-atlas-ds

Conversation

@LukasWallrich

@LukasWallrich LukasWallrich commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

⛔ DO NOT MERGE

A second commit (1557bad) rebuilds the UI on the full FORRT living
style guide. It is not consistently better than main. Parts are a
clear improvement, parts are a regression or unverified. This PR is
parked as a draft for review and cherry-picking, not for merging as-is.

Do not merge without deciding, section by section, what is actually
wanted.


Commit 2 — rebuild on the full living style guide (1557bad)

The first commit adopted the Replication Atlas token sheet. This one
rebuilds on design_system/design-system.html, the full living style
guide, which documents the real component conventions rather than just
the tokens. Colours are unchanged — the guide's values match
design_system/claude_design_colors/tokens/colors.css exactly.

Probably good

  • One token layer. Upstream ships both a generated --color-* scale
    and a short legacy alias layer (--primary, --text, …). Only
    --color-* is kept, and the app's separate --flora-* layer is gone
    with it. One name per value.
  • Charts follow the theme. Palettes, axis colours and translucent
    overlays were hard-coded hexes duplicating the token values. They now
    resolve through a token() helper at render time, so charts respond to
    dark mode. Three duplicate Plotly theme functions collapsed into one.
  • Dark mode simplified. --color-primary itself moves up the ramp on
    dark (at #853953 the maroon fails contrast on a dark surface), so one
    brand token serves both themes instead of every rule carrying an
    override.
  • Deduplication. Five ghost-button blocks, four input blocks and four
    copies of the micro-label typography collapsed into one rule each. 14
    inline font-size declarations in index.html became .note /
    .note-detail.
  • Browse table. Columns size to content instead of
    table-layout: fixed: titles wrap to two lines rather than four, DOIs
    no longer break mid-token, outcome badges no longer split across lines.
  • Two broken token references fixed (--color-scrim-cool,
    --z-overlay were referenced but never defined, silently disabling the
    modal backdrop and the ribbon tooltip's stacking).

Contentious — this is the part to argue about

The style guide sets body copy at 14px, interface text at 13px, and its
ramp stops at 36px. That density suits its three-pane explorer, read
close up. Applied literally to this wide scrolling dashboard it looked
cramped and the hierarchy went muddy, so the scale was re-tuned:

role size
hero 48px (--text-5xl, added)
tab page title 30px (--text-3xl, added)
card header 24px
sub-heading 18px
body 16px
metadata, controls 14px
dense metadata 12px
uppercase micro-labels, badges 11px

This is a deliberate departure from the system, documented in the README.
Whether it is the right call is exactly what needs a second opinion
it trades fidelity to the shared system for legibility on this page, and
it is the reason this PR is not simply mergeable.

Verified

All six tabs render in light and dark with no console errors — Chart.js,
Plotly and DataTables views, plus the citation-impact modal.

Not verified

Mobile width. The responsive rules under max-width: 768px were
renamed and resized but not restructured, and the browser resize would
not change the rendering viewport, so the mobile layout is unchecked.

Also added

design_system/ is committed as the source these tokens came from
(the living style guide plus the exported token sheet).


Commit 1 — original PR description

Adopts FORRT's Replication Atlas (Explore) design system across the Explorer, replacing the ad-hoc --flora-* palette and Inter/Source Serif type with the system's tokens.

What's here

assets/ds-tokens.css (new) — the system's tokens transcribed verbatim: the frozen #853953 brand ramp, #2c2c2c neutral, semantic fg/bg/border triples, the study-type blue/violet pair, Domine + Source Sans 3, the 6/10/100/14px shape scale, three elevation levels, the .12s/.2s motion pair. Plus a [data-theme="dark"] block extending the system into a plum-tinted dark ramp — the system is light-only upstream, and the app already had dark mode.

assets/styles.css — rewritten to consume those tokens. Beyond the recolour, the component patterns the system specifies:

  • 10px / 700 / tracked-uppercase micro-labels (stat labels, KPI labels, filter labels)
  • semantic badges as soft fg/bg/border triples instead of solid fills; study type gets the blue/violet pair
  • pill chips that go faint-tinted with a brand border when active, rather than solid
  • 3px brand left rails on notable rows (cite blocks, callouts, expanded table rows, mobile cards)
  • Domine italic for citations and pull-quotes
  • dark topbar paired with a dark footer (also made full-bleed in index.html)

Replaces the --flora-primary-dark-accent duplicate-rule pattern with a single --flora-accent that lightens on dark, dropping ~25 redundant dark-mode override rules.

app.js / citation-impact.js — chart palettes moved to the same semantic colours; the categorical palette now leads with the brand ramp. Also styles .mc-stat-box, which was rendered on the Authorship Overlap tab but never had CSS.

Two deliberate deviations

Both documented in the new README "Styling" section:

  1. The WIP corner ribbon stays on the --error ramp. On brand plum it read as decoration and lost its caution signal.
  2. The system's fixed-height 100dvh app shell with independently scrolling panels is not adopted — this is a scrolling multi-tab dashboard, not the Atlas's three-pane explorer.

Verification

Checked in the browser across all six tabs, both light and dark themes, and the mobile card layout. No console errors.

Not included: the Explore Design System - Main/ source folder is left untracked — happy to vendor it into the repo if that's useful for future contributors.

🤖 Generated with Claude Code

Adopt FORRT's Replication Atlas (Explore) design system across the
Explorer, replacing the ad-hoc --flora-* palette and Inter/Source Serif
type with the system's tokens.

- assets/ds-tokens.css: the system's tokens verbatim (frozen #853953
  brand ramp, #2c2c2c neutral, semantic fg/bg/border triples,
  study-type blue/violet pair, Domine + Source Sans 3, 6/10/100/14px
  shape scale, three elevation levels, .12s/.2s motion), plus a
  [data-theme="dark"] block extending the system, which is light-only
  upstream.
- assets/styles.css: rewritten on those tokens, following the system's
  component conventions — 10px tracked-uppercase micro-labels, semantic
  badges as soft triples rather than solid fills, pill chips that go
  faint-tinted when active, 3px brand left rails on notable rows,
  Domine italic for citations, dark topbar paired with a dark footer.
- Replace the --flora-primary-dark-accent duplicate-rule pattern with a
  single --flora-accent that lightens on dark, dropping ~25 redundant
  dark-mode overrides.
- app.js / citation-impact.js: chart palettes moved to the same
  semantic colours; style .mc-stat-box, which was rendered but had no
  CSS.
- index.html: load the brand fonts, full-bleed footer, topbar
  theme-color.

Two deliberate deviations, documented in the README: the WIP corner
ribbon stays on the error ramp (on brand plum it reads as decoration,
not caution), and the system's fixed-height 100dvh app shell is not
adopted — this is a scrolling multi-tab dashboard, not the Atlas's
three-pane explorer.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@LukasWallrich

Copy link
Copy Markdown
Contributor Author

@Keegan-Vaz could you take a look at this design-system redesign when you get a chance? Formal review request isn't possible — you're not currently a collaborator on this repo, so GitHub rejects it. Tagging you here instead.

The previous commit adopted the Replication Atlas token sheet. This
rebuilds on design_system/design-system.html, the full living style
guide, which documents the real component conventions rather than just
the tokens. Colours are unchanged: the guide's values match
design_system/claude_design_colors/tokens/colors.css exactly.

Tokens (assets/ds-tokens.css)
- Transcribed the full sheet: colour ramps, type scale, 4px spacing
  grid, 2->14px radius ladder, elevation, focus rings, motion, z-scale.
- Upstream ships two naming layers, the generated --color-* scale and a
  short legacy alias layer (--primary, --text, ...). Only --color-* is
  kept; that is what the guide's own CSS uses, and one layer is one
  place to look. The app's separate --flora-* layer is gone with it.
- The dark block moves --color-primary itself up the ramp: at #853953
  the maroon fails contrast on a dark surface, so one brand token now
  serves both themes instead of every rule carrying an override.

Type scale (a deliberate deviation, documented in the README)
The system sets body copy at 14px and interface text at 13px and stops
at 36px. That density suits its three-pane explorer, read close up.
This is a wide scrolling dashboard, so body copy is 16px and the ramp
gained --text-3xl (30px) and --text-5xl (48px). Applying the system's
density literally made the page cramped and the hierarchy muddy.
Headline figures across the overview cards, the KPI band and the Mean
Citedness boxes are all --text-4xl, so the same kind of number is the
same size wherever it appears.

Components (assets/styles.css)
- Serif reserved for scholarly content; navigation moved to the body
  font with a 2px active rule.
- Badges uppercase, bold, tracked; chips active as a maroon tint plus
  border, never a fill; ghost controls take on the brand colour on
  hover rather than gaining a fill; focus replaced with
  --shadow-focus-primary rather than removed.
- Deduplicated five ghost-button blocks, four input blocks and four
  copies of the micro-label typography into one rule each.
- Browse table sizes columns to content instead of table-layout:fixed:
  titles wrap to two lines rather than four, DOIs no longer break
  mid-token, outcome badges no longer split across lines.

Charts (app.js, citation-impact.js)
- Palettes, axis colours and translucent overlays were hard-coded hexes
  duplicating the token values; they now resolve through a token()
  helper at render time, so charts follow the dark theme.
- Three duplicate Plotly theme functions collapsed into one.

index.html
- 14 inline font-size declarations replaced by .note / .note-detail.

design_system/ is committed as the source these tokens came from.

Verified: all six tabs render in light and dark with no console errors
(Chart.js, Plotly and DataTables views, plus the citation-impact
modal). Mobile width is unverified - the responsive rules were renamed
and resized but not restructured, and the browser resize did not change
the rendering viewport.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@LukasWallrich LukasWallrich changed the title Redesign UI on the Replication Atlas design system DO NOT MERGE — Redesign UI on the FORRT design system Aug 11, 2026
@LukasWallrich
LukasWallrich marked this pull request as draft August 11, 2026 10:47
@LukasWallrich

Copy link
Copy Markdown
Contributor Author

Pushed 1557bad, which rebuilds the UI on the full FORRT living style guide (design_system/design-system.html) rather than just its token sheet.

Not consistently better than main — parked as a draft, do not merge as-is.

The token consolidation, the theme-aware chart colours and the Browse-table column sizing are improvements I'd stand behind. The type scale is the open question: the style guide's 13/14px density made this dashboard cramped, so it was re-tuned upward (body 16px, new 30px and 48px rungs). That is a deliberate departure from the shared system and needs a decision rather than a merge.

Mobile width (max-width: 768px) is unverified.

Details in the PR description.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant