Skip to content

Restyle: align the docs with the DataJoint visual identity (palette, typography, logo) - #263

Open
dimitri-yatsenko wants to merge 5 commits into
mainfrom
restyle/brand-identity
Open

Restyle: align the docs with the DataJoint visual identity (palette, typography, logo)#263
dimitri-yatsenko wants to merge 5 commits into
mainfrom
restyle/brand-identity

Conversation

@dimitri-yatsenko

Copy link
Copy Markdown
Member

Aligns docs.datajoint.com with the DataJoint visual identity — palette, typography, and logo.

What changed

Stylesheet consolidation (bug fix). The repo carried two stylesheets that both resolved to assets/stylesheets/extra.css in the built site; the one under src/.overrides/assets/stylesheets/ was shadowed at build time, so the color-scheme rules there never actually shipped. All custom CSS now lives in a single file, src/assets/stylesheets/extra.css, and the shadowed file is removed.

Palette.

  • Light scheme (datajoint): Navy #171C39 header and body text, Blue #00A0DF links, Orange #FF5113 as the single interactive accent (hover/focus/highlight), Grey #808285 restricted to secondary text and rules.
  • Dark scheme (slate): same link and accent roles on a navy-tinted dark background (#161A21 family) that matches the dark theme pipeline diagrams are rendered in, so embedded figures blend with the page.
  • src/images/dj-platform.svg retinted from off-palette blues to brand values.

Typography. Roboto 400 for headings (loaded via main.html), Roboto Slab 300 for body, Source Code Pro for code — all open-licensed Google fonts. Emphasis remains bold-only.

Logo and favicon. The header icon is replaced with the current DataJoint mark (single path, rendered via currentColor) and the favicon is regenerated from the same artwork.

Header treatment. The header stays navy. The mark renders through Material's currentColor icon pipeline, so CSS colors it DataJoint Blue — the approved blue-sail-on-navy treatment — without touching the logo artwork.

Version admonitions and badges. The green/orange/red added/changed/deprecated semantics are kept as coding colors, retuned to sit alongside the palette (the "changed" hue is now brand orange), and documented as such in a comment.

Verification

  • mkdocs build passes cleanly.
  • Grep of the built site/ for superseded hex values (#009DDC, #1A73E8, #9AA0B4): zero occurrences.

Note

Pipeline figures already render in the matching diagram themes; they re-render automatically once datajoint/datajoint-python#1544 lands.

- Consolidate all custom CSS into src/assets/stylesheets/extra.css:
  the stylesheet in src/.overrides/assets/stylesheets shared the same
  output path and was shadowed at build time, so its palette rules
  never shipped. One stylesheet now carries everything.
- Light scheme: navy #171C39 header, blue #00A0DF links, orange
  #FF5113 as the single interactive accent, grey #808285 for
  secondary text only; body text navy.
- Dark scheme (slate): same link/accent roles on a navy-tinted dark
  background (#161A21 family) matching the diagram dark theme.
- Typography: Roboto 400 for headings (loaded via main.html),
  Roboto Slab 300 body, Source Code Pro code.
- Header logo: replace the icon with the current mark (single path,
  currentColor) and color it DataJoint Blue via CSS; regenerate the
  favicon PNG from the same mark.
- Retint dj-platform.svg off-palette blues to brand values.
- Version admonitions/badges: retune coding colors (green/orange/red
  semantics kept, harmonized with the palette).
@dimitri-yatsenko

Copy link
Copy Markdown
Member Author

Regenerated all dj.Diagram figures with the new brand tier palette (datajoint-python#1544 branch renderer, theme auto), commit c318b57:

  • src/images/first-pipeline.svg
  • src/images/ephys-pipeline.svg
  • src/images/ephys-npy-pipeline.svg
  • src/images/calcium-pipeline.svg
  • src/images/rwm-pipeline.svg
  • src/images/norm-order-workflow.svg
  • src/images/norm-mouse-housing.svg

Verification:

  • Old palette hexes (#2a5fa5, #b23a48, #2f7d5b, #3a424f): zero occurrences in all seven files.
  • New palette present: Imported stroke #00a0df, Computed stroke #ff5113, edges #171c39; adaptive prefers-color-scheme block present in each.
  • Node/edge <title> sets are identical to the previous renders for every figure (schemas redeclared from the tutorial/explanation sources, same tiers, parts, and secondary FKs — dashed-edge counts also match old renders exactly).
  • mkdocs build passes on the branch.

Left untouched: pipeline.svg and rwm-legend.svg (hand-authored SVGs, not dj.Diagram renders) — they still carry the old palette and can be restyled separately.

MilagrosMarin
MilagrosMarin previously approved these changes Aug 18, 2026

@MilagrosMarin MilagrosMarin left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Confirmed the shadowing independently before anything else: the deployed gh-pages assets/stylesheets/extra.css is the 157-line docs_dir file, with zero data-md-color-scheme rules in it. The .overrides stylesheet really never shipped — good catch, and the consolidation is the right fix.

Also checked out: the three superseded hexes are gone from src/**; theme.font already supplies Roboto Slab and Source Code Pro so the main.html comment is accurate; Roboto is actually applied to h1h6; the logo is a single path with no hardcoded fill; the favicon exists only under .overrides so there's no collision there (deployed hash matches); and the SVG retint is precisely #1a73e8#00a0df, #334155#171c39.

Two questions:

  1. The eight social-icon rules weren't carried over. The deleted file colored the social icons via html a[title="…"].md-social__link svg { color: var(--dj-primary) } for all eight platforms. Since they were shadowed, dropping them changes nothing on the rendered site — but they're the one bit of the shadowed file's intent that didn't make it into the consolidated version. Intentional?

  2. Light-mode link contrast. DataJoint Blue on white computes to 2.96:1, below WCAG AA's 4.5:1 for body-size text (dark scheme is fine at 5.89:1, and navy body text is 16.65:1). Since the custom scheme never shipped, live links have been on Material's defaults, so this is effectively a new contrast profile rather than a change to an existing one. Entirely a brand-palette call rather than an implementation issue — flagging it so it's a decision rather than a surprise.

…ce UI screenshots; dj-platform redrawn to brand; hand-authored figures retinted
@dimitri-yatsenko

Copy link
Copy Markdown
Member Author

Figure pass on explanation/data-pipelines.md (commit db44879):

  • pipeline-illustration.png → pipeline-modules.svg — the UI screenshot of the module DAG is replaced by a generated dj.Diagram spanning six schemas (lab, subject, session, scan, reference, imaging) with the same cross-schema dependency structure (lab→subject→session→scan→imaging, reference→scan). Schema clusters and cross-schema FK edges now render in the brand theme with light/dark support.
  • schema-illustration.png → scan-schema.svg — the schema drill-in screenshot is replaced by a generated single-schema diagram reproducing the same semantics: Lookup AcquisitionSoftware with a dashed secondary (nullable) edge into Manual Scan, Manual ScanLocation, Imported ScanInfo with an entity cluster around its ScanFile/Field parts, and Lookup Channel.
  • dj-platform.svg re-authored under the brand system: navy structure/text, DataJoint Blue accents, orange used once (the open-source core panel), Roboto, neutral fills; adds a prefers-color-scheme: dark block aligned with the site dark theme. All legacy hexes (Google blue, teal, slate greys) and Segoe UI removed.
  • pipeline.svg and rwm-legend.svg (hand-authored, skipped by the regen sweep) retinted with the exact old→new theme mapping, including the dark-mode selector keys and dark target values; zero old hexes remain.
  • Prose around the two replaced screenshots adjusted minimally; both PNGs removed.

Both generated figures came from throwaway databases via the same regen setup (branch 1543-brand-tier-colors, display.diagram_theme="auto", svg_string()); databases dropped afterward. mkdocs build passes (only pre-existing anchor INFOs).

@dimitri-yatsenko

Copy link
Copy Markdown
Member Author

Both questions answered, one with a commit:

  1. Social icons — intentional, and carried after all: the consolidated stylesheet colors them with one grouped rule (.md-social__link svg { color: var(--dj-blue) }) instead of the shadowed file's eight per-platform a[title=…] selectors — same intent, all platforms covered including future ones, less brittle than title-matching. Since the old rules never shipped, this is the first time the icons will actually render in brand blue.

  2. Light-mode link contrast — fixed, not just acknowledged. You're right that it would have shipped a new non-compliant profile. Links in the light scheme now use #00537A — the brand-blue family's AA text value (7.35:1 on white), and not an invented one: it's exactly the value the diagram theme uses for Imported-tier text, so the docs' link blue and the diagrams' blue-tier text are literally the same token. DataJoint Blue #00A0DF stays for non-text accents (the header mark, social icons) and for dark-scheme links (5.89:1, as you computed). The CSS comment marks it provisional under dj-brand#22 (the pending working-palette ruling), same convention as the roadmap snapshots.

Ready for re-review — the branch also gained the data-pipelines figure work since your pass (generated diagrams replacing the two UI screenshots, the dj-platform redraw, and the hand-authored retints), summarized in the comment above.

@dimitri-yatsenko

Copy link
Copy Markdown
Member Author

One figure correction after review: scan-schema.svg had a disconnected Channel lookup — faithfully reproduced from the screenshot it replaced, where Channel also floated edge-free. A screenshot can get away with that; a notation diagram can't. Channel now enters through ScanInfo.Field's secondary dependency (-> Channel in the part's non-key section), drawing as a dashed edge — which also makes the figure demonstrate one more piece of real notation: a part table referencing a lookup.

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.

2 participants