Skip to content

Boostlook 2.0: Figma redesign + dark-mode pass#183

Draft
julioest wants to merge 12 commits into
boostorg:developfrom
julioest:boostlook-2.0
Draft

Boostlook 2.0: Figma redesign + dark-mode pass#183
julioest wants to merge 12 commits into
boostorg:developfrom
julioest:boostlook-2.0

Conversation

@julioest

@julioest julioest commented Jul 2, 2026

Copy link
Copy Markdown
Collaborator

Summary

Brings boostlook-v3.css in line with the Metalab 2.0 Figma redesign and completes a full light + dark-mode pass. Work is driven from the modular src/css/ sources; boostlook-v3.css is the generated bundle.

Preview: https://boostlook-v3.netlify.app/

What changed

Figma alignment (light)

  • Heading sizes: h1 → 48px (Title/2XL), h2 → 24px (Large); Antora page-title specificity fix so it matches AsciiDoctor.
  • Body links underlined across all doc types (Antora .doc + standalone AsciiDoctor #content).
  • Native ordered-list numbering (removed the custom 32px counter marker box).
  • Code blocks: 8px corners + white background; callouts stay 16px per spec.
  • Hide the Antora on-page TOC sidebar (aside.toc.sidebar); the article reclaims the width.

Dark mode

  • Code/card surface → #1A1C29 (unified with tables/callouts).
  • Border tokens (--border-border-primary, --stroke-weak) point at the Figma 1px stroke: rgba(5,8,22,.1) light / rgba(247,247,248,.1) dark — fixes previously-invisible dark borders.
  • Verified callouts (incl. Note), tables, prev/next controls, and code blocks against the dark spec.

julioest added 11 commits June 24, 2026 16:23
Preview boostlook-v3.css against real Boost docs of every type with
CSS hot-reload. Serves the already-built website-v2-docs site and
intercepts /_/css/boostlook.css (at any depth) via middleware to inject
the working bundle from memory; build/ is never mutated. Watches
src/css/** and rebuilds (debounced, non-overlapping) on save. Renders
the charconv specimen.adoc standalone for AsciiDoctor coverage.

Adds a landing page (full-width grouped sample grid, git-sourced
changelog dropdown, light/dark toggle) and docs/dev-server.md.
Make the standalone Asciidoctor TOC behave like the Antora nav-tree:
caret toggles, collapsed by default, current path expanded, open
sections persisted, and scroll-spy active-link highlighting.

- 12-asciidoctor.css: caret/collapse styling reusing Antora's design
  (right-aligned dotted chevron that flips on expand); pointer cursor on
  collapsible rows only, the link unaffected.
- boostlook-v3.rb: new postprocessor that wraps output in .boostlook and
  injects the behavior, so docs need no per-document docinfo footer.
- dev-server.js: render the specimen via boostlook-v3.rb.
- boostlook-v3.css: rebuilt bundle.
build-preview.sh assembles the multi-doc preview folder and optionally
deploys it: build CSS -> inject into antora-ui + rebuild UI bundle ->
rebuild site guides -> bake 2.0 CSS into reused library docs -> render
the charconv specimen -> generate the landing. --draft / --prod deploy
to the boostlook-v3 Netlify site via netlify-cli.

scripts/gen-landing.js generates the static preview index.html.
- Collapse the "Recent changes" header button to an icon (clock) at
  <=600px so it no longer collides with the brand; hide the brand
  subtitle on mobile to free up room.
- Changelog entries show the absolute commit date/time
  (YYYY-MM-DD HH:MM) instead of a relative "N ago".

Applied to both the dev server landing (dev-server.js) and the deployed
landing (scripts/gen-landing.js) so they stay consistent.
Set h1 to 48px (Figma Title/2XL) and h2 to 24px (Figma Large).
Add a higher-specificity rule for .doc > h1.page:first-child so
Antora's pinned page title matches the global h1 size across both
Antora and AsciiDoctor.
Broaden the body-link underline selector from
.boostlook #content .doc ... to .boostlook .paragraph/ulist/olist/
dlist so it covers standalone AsciiDoctor (#content, no .doc) as
well as Antora. Nav/TOC links remain unaffected.
Replace the custom counter-reset/::before 32px marker boxes on
ordered lists with native list-style decimal / lower-alpha, per
the Figma 2.0 spec (no numbered-box in the design). Conum callout
numbers are unaffected.
Square up code blocks to 8px radius (from --radius-xxl 1rem) and
set the light-mode code surface to #ffffff, per Figma 2.0. Callouts
intentionally stay at 16px; dark-mode background is unchanged.
Dark code blocks use #1A1C29 (= primary-850) to match the cards/
tables surface instead of atom-one #282c34. Retarget
--border-border-primary to the Figma standard 1px stroke in both
themes (rgba(5,8,22,.1) light, rgba(247,247,248,.1) dark), so dark
code/card borders are visible and light borders match the spec. (boostorg#116)
Hide aside.toc.sidebar so the article reclaims the full content
width on Antora doc pages. The AsciiDoctor #toc and the left nav
tree are unaffected.
Point --stroke-weak (callout + dlist-card borders) at the Figma
standard 1px stroke in both themes: rgba(5,8,22,.1) light,
rgba(247,247,248,.1) dark — matching --border-border-primary. (boostorg#116)
@cppalliance-bot

cppalliance-bot commented Jul 2, 2026

Copy link
Copy Markdown

An automated preview of the documentation is available at https://183.boostlook.prtest2.cppalliance.org/tools/boostlook/doc/html/index.html

If more commits are pushed to the pull request, the docs will rebuild at the same URL.

2026-07-09 17:06:28 UTC

@grafikrobot

Copy link
Copy Markdown
Member

Looking at https://boostlook-v3.netlify.app/specimen/ fails to adjust for my default of dark-mode.

Inject a theme-init script into <head> in boostlook-v3.rb, mirroring
the Antora UI (head-scripts.hbs + 00-theme-toggle.js): set html.dark
from a saved 'antora-theme' choice or prefers-color-scheme before
first paint, and live-update on OS changes unless the user pinned a
theme. Skipped in iframes (host controls the theme).
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.

3 participants