Files
blog/astro.config.mjs
Gabriel Vidal e18bf4c0dd feat(design): ship the blueprint redesign as the site's only look
Picks "blueprint" out of the five beta propositions and makes it the site:
the design switcher, the other four stylesheets and the fonts only they used
are gone, and the token block moved to `html:root` (a bare `html` loses to
base.css's `:root` fallbacks no matter the order, which rendered everything in
the wrong palette).

Chrome changes:
- the header avatar is gone;
- the homepage drops "Recent Projects" and leads with posts;
- a post/project card is now a single anchor, so the whole block is the click
  target instead of just the title;
- nav marks the current section, sub-paths included (`/blog/<slug>` lights up
  "blog"), with three cues — amber, a leader tick and an underline — so it
  still reads where there is no hover;
- every off-site link opens in a new tab and carries a `↗` glyph. Components
  decide via `isExternal()`; posts and pages via a rehype pass that covers all
  three shapes this repo actually uses — markdown syntax, raw `<a>` in .mdx,
  and raw `<a>` in .md.

Motion, from @gabvdl/ui: headings and the hero tagline type in with
ProgressiveText, card lists and archive rows stagger in with ProgressiveList,
and any post with more than one figure gets a "play as story" control that
opens the image viewer in story mode. The islands render finished content on
the server and only animate after hydration (in a layout effect, so nothing
flashes), and TypedText reserves the final text box with a hidden ghost so a
wrapping tagline can't shove the page around while it types.

Mobile: header stacks, nav and archive rows wrap, covers crop to a band, the
title block folds to one column, prose tables and code scroll inside
themselves, and the graph paper tightens. Verified at 390px and 1280px.
2026-08-09 18:13:16 +02:00

5.7 KiB