From 53070c411c8814cde3a5fd0082b5abbfaa2111f5 Mon Sep 17 00:00:00 2001 From: Jens Becker Date: Sat, 2 May 2026 23:48:47 +0200 Subject: [PATCH 01/36] create redesign.md --- web/redesign.md | 1011 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1011 insertions(+) create mode 100644 web/redesign.md diff --git a/web/redesign.md b/web/redesign.md new file mode 100644 index 0000000..cd3b2b6 --- /dev/null +++ b/web/redesign.md @@ -0,0 +1,1011 @@ +# JHB Software — Website Redesign Spec + +> **Status:** in progress. This document is the source of truth for the +> redesign. Implementation agents must read this end-to-end before touching +> the codebase. Every rule here exists for a reason — do not "improve" by +> deviating without flagging it back to the user. +> +> **Scope:** visual + interaction redesign only. Content stays. Information +> architecture stays. CMS schemas stay. Astro/Payload stack stays. +> URL structure stays. SEO/structured data stays. + +--- + +## 1. Vision (one paragraph) + +A minimal, edgy, technical website that reads as **considered engineering +craft**, not "agency template." Anchored by a deep cobalt that gives the +brand gravitas, with hot orange doing every interactive job (links, focus, +hover, accents, code chips). Heavy use of monospace for labels, code, and +brand thread. Background grid + corner cross marks frame content like a +technical drawing. The backslash `\` is a recurring brand thread — +appearing in the mark, breadcrumbs, code chips, and dividers — never inside +the wordmark itself. + +**Explicitly avoided:** drop-shadow gradients, soft pastel palettes, +multi-color illustrations, hero stock photography, generic "Inter on a card +on a card on a card" SaaS look, AI-startup neon-lime aesthetic. + +## 2. References + +### 2.1 Visual / interaction references (what to copy from) + +These sites are referenced for their **design** — the visual language, +typography, motion, and patterns. Implementation agents should look at +the actual rendered pages, not the source code. + +| Site | What we take | +| ------------------------------------------ | --------------------------------------------------------------------------- | +| [vercel.com](https://vercel.com) | Restraint, hairline systems, monospace eyebrows, technical-drawing framing, **section framing pattern** (see §7.7) | +| [payloadcms.com](https://payloadcms.com) | Off-white-on-near-black gravitas, dense mono usage | +| [aihero.dev](https://www.aihero.dev/) | Edge of grid-as-design, content density | +| [anthropic.com](https://www.anthropic.com) | Header wordmark scroll-collapse pattern (`Anthropic` → `A\`) | + +### 2.2 Content reference (what to read) + +| Resource | What we take | +| -------------------------------------------------------------------- | --------------------------------------------------------------------------- | +| [vercel.com/design/guidelines](https://vercel.com/design/guidelines) | **Documentation content** — design system principles, naming conventions, accessibility patterns. Linked for what it *says*, not what it looks like. | + +## 3. Scope + +**Changes:** every Astro component under `src/components/`, every layout +under `src/layout/`, `src/styles.css`, possibly the logo SVG at +`public/icon.svg`. + +**Does not change:** Payload collections, blocks, fields, access control, +the CMS schema, the Astro routing, JSON-LD schemas in `src/schema/`, +analytics, deployment, environment variables, the content itself. + +--- + +## 4. Design tokens + +All tokens live in `src/styles.css` under `@theme`. Components reference +them by name, never by raw value. Agents: **do not introduce new color +values, font sizes, spacing values, or radii outside this scale.** If the +scale is missing something, propose adding it to the scale; do not inline. + +### 4.1 Color + +``` +--color-cobalt-950: #050E1F /* near-black surface, dark mode bg */ +--color-cobalt-900: #0A2540 /* PRIMARY ANCHOR — H1, primary buttons, mark, footer */ +--color-cobalt-800: #14365C /* hover state on cobalt surfaces */ +--color-cobalt-100: #E8EEF7 /* faint cobalt wash, for chip backgrounds in cobalt family */ + +--color-orange-600: #FF5C00 /* PRIMARY ACCENT — focus rings, link hover, active states, hairline accents, mark diagonal */ +--color-orange-100: #FFF1E8 /* chip background, faint accent wash */ + +--color-ink-950: #0A0A0A /* body text on light bg */ +--color-ink-700: #404040 /* secondary text */ +--color-ink-500: #737373 /* tertiary text */ +--color-ink-300: #A3A3A3 /* faint text, placeholders */ + +--color-paper: #FAFAFA /* page background, light mode */ +--color-paper-pure: #FFFFFF /* card / hero surface, light mode */ + +--color-hairline: #ECECEC /* default 1px divider */ +--color-hairline-strong: #D4D4D4 /* grid background, framing borders */ +``` + +**Usage rules:** + +- **Cobalt 900** is the *anchor*: H1, primary CTAs (filled), mark + background, footer background, header lockup. Never used for body text or + body backgrounds. +- **Orange 600** is the *interactive accent*: link `:hover`, focus rings, + active nav, the corner cross marks framing hero blocks, the `\` glyphs in + breadcrumbs and chips, the orange diagonal in the mark. Never used for + body text. Never used as a background fill larger than ~40px square. +- **Ink** scale is for all body/UI text on light backgrounds. +- **Hairline** colors are for the grid background and dividers only. + +### 4.2 Typography + +``` +--font-sans: 'Geist', ui-sans-serif, system-ui, -apple-system; +--font-mono: 'Geist Mono', ui-monospace, 'SF Mono', Menlo, monospace; +``` + +Self-host via the `geist` npm package. **Do not** load from Google Fonts +or a CDN. + +**When to use mono:** + +- Eyebrows / kickers (uppercase, tracked, small) +- Labels above form inputs +- Code chips / tags +- Breadcrumb separators (`\`) +- File paths, command examples +- Logo wordmark fallback only (the wordmark is `Geist Sans Medium`) +- Numbers in stats / data tables + +**When to use sans:** + +- Everything else: H1–H6, body, nav, buttons, captions + +**Type scale:** + +``` +--text-xs: 0.75rem (12px) /* mono labels, eyebrows */ +--text-sm: 0.875rem (14px) /* small body, button, nav */ +--text-base: 1rem (16px) /* body */ +--text-lg: 1.125rem (18px) /* lede */ +--text-xl: 1.5rem (24px) /* H4 */ +--text-2xl: 2rem (32px) /* H3 */ +--text-3xl: 2.75rem (44px) /* H2 */ +--text-4xl: 3.5rem (56px) /* H1 mobile */ +--text-5xl: 4.5rem (72px) /* H1 desktop hero */ +``` + +Line heights: headings `1.05` (tight), body `1.55`, mono `1.4`. +Letter-spacing: H1/H2 `-0.025em`, mono uppercase eyebrows `0.12em`. + +### 4.3 Spacing scale + +Use Tailwind's default 4px base. **Do not** use arbitrary values +(`p-[17px]`, `mt-[23px]`). If the scale is missing something, the design +is wrong, not the scale. + +### 4.4 Radii + +``` +--radius-none: 0 /* hairline accents, hero borders */ +--radius-xs: 2px /* chips, tags */ +--radius-sm: 4px /* buttons, focus rings, inputs */ +--radius-md: 6px /* the logo mark tiles */ +--radius-lg: 12px /* cards (rare — prefer hairline borders + radius-sm) */ +``` + +No radius larger than 12px anywhere. No `rounded-full` except for true +circular elements (avatars). Pill buttons are forbidden. + +### 4.5 Borders + +All borders are 1px. No 2px, no 3px. Borders use `--color-hairline` by +default, `--color-orange-600` for accent moments (focus rings, hover +underlines, hairline accents under section headings). + +--- + +## 5. Logo system (two-tier) + +### 5.1 The mark — `[mark]` + +A 4×4 grid of square tiles. Sharp corners (`--radius-md` = 6px on the +outer square, no rounding on inner tiles). The 4 tiles on the +top-left → bottom-right diagonal — positions `(0,0)`, `(1,1)`, `(2,2)`, +`(3,3)` — are filled `--color-orange-600`. The remaining 12 tiles +alternate between `--color-cobalt-900` and `--color-cobalt-800`. The mark +encodes the brand `\` thread visually. + +**Drop the white "JHB" letterforms from the current logo.** The mark is +pure pictogram; the wordmark carries the letters. This is the Vercel +`▲` / Linear-mark pattern. + +**Contexts:** + +- Header lockup (top of page, before scroll collapse) +- Header collapsed state (the only thing visible after scroll) +- Favicon +- OG/social cards +- Footer corner +- Email signature + +**File:** replace `public/icon.svg` with the new mark. Generate +`public/favicon.ico` and OG-card variants from the same source. + +**Draft SVG (working starting point — iterate during implementation):** + +```svg + + + + + + + + + + + + + + + + + + + + + + + + + +``` + +Working asset: `/tmp/jhb-mark-draft.svg`. Move into `public/icon.svg` +during implementation. Test legibility at 16px (favicon) before locking. + +### 5.2 The wordmark + +Pure typography: `JHB Software` set in **Geist Sans Medium**, tracking +`-0.01em`. **No slash inside the wordmark.** No special characters. The +wordmark is a name, not a logo. + +### 5.3 The header lockup + +``` +[mark] JHB Software [Leistungen] [Referenzen] [Artikel] [Kontakt] [DE \ EN] +``` + +- Spacing: 12px between mark and wordmark. +- Vertical alignment: baseline of wordmark aligned to optical center of mark. +- Language switcher uses the brand `\` as separator: `DE \ EN`. + +### 5.4 Scroll collapse (Anthropic-pattern) + +When the page scrolls past `80px`: + +1. The wordmark `JHB Software` fades + width-collapses to `0` over `200ms`, + easing `cubic-bezier(0.4, 0, 0.2, 1)`. +2. The mark stays in place. The header height shrinks from `72px` → + `56px` over the same duration. +3. The header background goes from transparent → `--color-paper-pure` with + a 1px hairline bottom border, also over `200ms`. + +When the page scrolls back above `80px`, the reverse animation plays. + +**Implementation:** sticky header. Tiny client script wrapped in +`astro:page-load` (per CLAUDE.md). Toggle a `data-collapsed` attribute on +the header element at the threshold. All animation done in CSS via that +attribute. No layout jump on toggle (Geist Mono fixed-width metrics in the +collapsed nav prevent reflow). + +--- + +## 6. The brand `\` thread + +The backslash is a recurring system element. It appears wherever a +"separator," "namespace," or "code-context" signal would help. **Always +rendered in `--font-mono` and `--color-orange-600` (or current text color +when used in monospace contexts where orange would be too loud).** + +Locations: + +- **Mark diagonal** — orange tiles forming a `\` (see §5.1) +- **Breadcrumbs** — `Home \ Articles \ Post Title` (separator is mono, orange) +- **Language switcher** — `DE \ EN` +- **Code chip prefix** — `\ typescript`, `\ astro`, `\ payload` +- **Section eyebrows** — `\ 01 / Leistungen`, `\ 02 / Referenzen` (mono, uppercase, tracked) +- **Footer divider blocks** — `\` glyphs at the corners of footer columns +- **Hover indicator on nav links** — `\` glyph appears before the active + link on hover (~120ms ease-out) + +**Never:** + +- Inside body prose +- Inside the wordmark +- As decoration without semantic meaning (don't sprinkle for vibes — every + `\` should mark a separation, prefix, or context) + +--- + +## 7. Layout patterns + +### 7.1 Page width + +- Max content width: `1200px` (matches current `Section.astro`). +- Horizontal gutter: `32px` desktop, `20px` mobile. +- Hero blocks may bleed full-width with internal padding. + +### 7.2 Background grid + +Subtle 1px grid in `--color-hairline-strong`, 56px cells, applied to +hero/section blocks (not the page background). **Always masked by a +radial-gradient so the grid fades behind content.** Reference +implementation: + +```css +.hero { + position: relative; + background: var(--color-paper-pure); + border: 1px solid var(--color-hairline-strong); +} +.hero::before { + content: ''; + position: absolute; inset: 0; + background-image: + linear-gradient(to right, var(--color-hairline-strong) 1px, transparent 1px), + linear-gradient(to bottom, var(--color-hairline-strong) 1px, transparent 1px); + background-size: 56px 56px; + opacity: 0.55; + -webkit-mask-image: radial-gradient( + ellipse 70% 65% at 38% 55%, + transparent 0%, transparent 35%, + rgba(0,0,0,0.6) 70%, rgba(0,0,0,1) 100% + ); + mask-image: radial-gradient( + ellipse 70% 65% at 38% 55%, + transparent 0%, transparent 35%, + rgba(0,0,0,0.6) 70%, rgba(0,0,0,1) 100% + ); + pointer-events: none; +} +``` + +### 7.3 Corner cross marks + +Each major content block (hero, key sections) gets four `+` marks at the +inner corners — 14px wide, 1px stroke, `--color-orange-600`. Reads like a +technical drawing's registration marks. **One pair per block — not +sprinkled everywhere.** Reserved for hero, the top-of-page section +introducing each major page area, and the footer top edge. + +### 7.4 Section eyebrows + +Above every major section heading: a mono uppercase eyebrow. + +``` +\ 02 / LEISTUNGEN +Individuelle Software für Dein Unternehmen +``` + +- Eyebrow: `--font-mono`, `--text-xs`, uppercase, tracking `0.12em`, + `--color-ink-500`. The leading `\` is `--color-orange-600`. +- Heading: `--font-sans`, weight `600`, color `--color-cobalt-900`. + +### 7.5 Service grid (Tier 1 — Leistungen) — bento layout + +An asymmetric 2-column bento with one **hero card** (left, taller) and +two **compact cards** stacked (right). Equal 3-up grids look like template +SaaS — bento adds visual rhythm and signals "this is the showcase." + +``` +┌─────────────────────────┬──────────────┐ +│ │ Mobile Apps │ (compact) +│ Webanwendungen │ │ +│ (HERO — bigger viz, ├──────────────┤ +│ more breathing room) │ Websites │ (compact) +│ │ & CMS │ +└─────────────────────────┴──────────────┘ +``` + +CSS skeleton: + +```css +.service-grid { + display: grid; + grid-template-columns: 1.4fr 1fr; + grid-template-areas: + "hero compact-1" + "hero compact-2"; + gap: 24px; +} +.service-card.hero { grid-area: hero; } +.service-card.compact-1 { grid-area: compact-1; } +.service-card.compact-2 { grid-area: compact-2; } +``` + +**Hero card placement:** **Webanwendungen** (the dashboard visualization +works best at large size; also the most strategically valuable service). +This is a deliberate hierarchy choice, not a defect. Mobile and CMS get +compact cards. + +**Hero card sizing:** + +- Visual area: `~360px` tall (vs 140px for compact) +- Meta padding: `32px` (vs 20px for compact) +- `h3`: `26px` (vs 17px for compact) +- Body: `15px` (vs 13px for compact) +- The SVG visualization renders at full scale (or `transform: scale(1.4)` + if reusing the same SVG asset — design hero-specific assets if budget + allows). + +**Compact card sizing:** + +- Visual area: `140px` tall, SVG at `transform: scale(0.7)` for compact + context (or design dedicated compact assets). +- Meta padding: `20px`. + +**Card structure (both sizes, top to bottom):** + +- `Visual` — `--color-paper-pure` background, masked grid (32px cells, + `--color-hairline-strong`, `opacity 0.4`), 1px hairline bottom border. + Contains an SVG visualization (see below). +- `Meta` block: + - Mono eyebrow with orange `\` prefix (`\ MOBILE`, `\ WEB`, `\ WEBAPP`) + - `h3` — sans, weight 600, `--color-cobalt-900` + - One-line description, sans, `--color-ink-700`, `line-height 1.55` + - `Mehr erfahren →` link (sans, `--color-ink-950`, arrow nudges +2px + on hover) + +**Frame pattern (important — not floating cards):** the bento is rendered +as **one continuous outer frame** with **shared interior hairlines** +dividing it into cells. **Cells share borders — no gap between them.** +This is the §7.7 section-framing pattern applied to the service grid. + +```css +.service-grid { + display: grid; + grid-template-columns: 1.4fr 1fr; + grid-template-areas: + "hero compact-1" + "hero compact-2"; + gap: 0; /* SHARED borders, not gaps */ + border: 1px solid var(--color-hairline-strong); + border-radius: var(--radius-sm); + overflow: hidden; /* clips child borders to outer radius */ +} +.service-card { + border: 0; + border-radius: 0; +} +.service-card + .service-card, +.service-card.compact-1, +.service-card.compact-2 { + border-left: 1px solid var(--color-hairline-strong); +} +.service-card.compact-2 { + border-top: 1px solid var(--color-hairline-strong); +} +``` + +**Hover state for a frame-cell:** the cell's *interior background* shifts +to `--color-orange-100` (5% wash) over 150ms, and the outer frame's +edge segment adjacent to that cell highlights to `--color-orange-600`. +**No card lift, no border-color-on-the-card** (the card has no border of +its own — only the section frame does). + +**Mobile breakpoint:** below `768px`, the bento collapses to a single-column +stack: hero on top, compacts below in source order. Interior dividers +become horizontal hairlines. + +**Card frame:** + +- 1px `--color-hairline-strong` border, `--radius-sm`, no shadow +- Hover: border color → `--color-orange-600` over 150ms (matches §9 + `card-border` micro-interaction) +- Cursor `pointer` (whole card is the link) + +**Visualization rules:** + +Each visualization is a custom SVG. The visualization must be a **functional +metaphor** for the service — a mobile card animates like a mobile app, a +dashboard card animates like a dashboard. Pure decoration is forbidden. + +Style constraints (mechanically enforce these to prevent slop): + +- **Strokes only or strokes + flat fills.** No gradients, no shadows. +- Strokes: `1.5px`, `--color-cobalt-900`. Accent strokes / fills: + `--color-orange-600`. No other colors except `--color-paper-pure` for + surface fills and `--color-cobalt-100` for muted block fills. +- Hairline supporting elements (list lines, field underlines) use + `1px`, `--color-hairline-strong`. +- Optical centering inside the 220px visual area, no asymmetry without + intent. +- Mono numerals when text appears (e.g. dashboard stats). + +**Scroll-in animation (first appearance only):** + +- Triggered by `IntersectionObserver` at `threshold: 0.3`. Once fired, + observer disconnects from that card. +- Lines draw in via `stroke-dasharray` / `stroke-dashoffset` over + `~600ms`. +- Filled elements fade in via opacity over `~250ms`. +- Sequence is staggered, total duration **`≤1500ms`** per card. No + individual element animates after that ceiling. +- Cards animate independently (not as a coordinated row) — each is its + own intersection. + +**Hover animation:** + +- A single ambient micro-loop kicks in on hover (e.g. indicator dot + sliding, bars re-animating, data dots flowing). +- ~1.4-2s loop duration, infinite, paused on `mouseleave`. +- Always uses `--color-orange-600` for the moving element. +- Hover animation must not interrupt or restart the scroll-in animation + state. + +**Reduced motion:** + +- `prefers-reduced-motion: reduce` → both scroll-in and hover animations + are disabled. Visualization renders immediately in its final state. + Cards still respond to hover via border color change. + +**Reference visualizations (initial cut — refine in implementation):** + +- *Mobile Apps*: phone outline with 5 list items, one orange indicator + dot. Hover: indicator slides through items. +- *Websites & CMS*: CMS editor (top) with labeled fields → orange + connecting arrow → rendered site (bottom) with content blocks. Hover: + orange data dots flow from editor to site. +- *Webanwendungen*: dashboard with 7 bars (1 orange accent), 3 stat + cards with mono numerals, a sparkline. Hover: bars re-animate. + +Working prototype: `/tmp/jhb-service-grid.html` (will move into +`web/src/components/blocks/` during implementation). + +### 7.6 Value grid (Tier 2 — Werte) + +A 4-column grid of smaller cards for the "Software die bleibt" values. +Quieter than the service grid — same system, lower volume. + +**Cards (initial set):** + +1. **Qualität über Quantität** — Wenige Projekte, dafür mit voller Aufmerksamkeit. +2. **Nachhaltige Lösungen** — Code der in fünf Jahren noch wartbar ist. +3. **Lösungsorientiert** — Pragmatische Wege statt Lehrbuch-Architektur. +4. **Fair & transparent** — Klare Preise, ehrliche Schätzungen, kein Kleingedrucktes. + +**Card structure:** + +- 24px padding, no separate visual area +- Single 32×32 schematic glyph (top-left) — cobalt strokes, optional + orange accent dot or stroke +- `h4` — sans, weight 600, 15px, `--color-cobalt-900` +- One-line description, sans, 13px, `--color-ink-700` + +**Frame:** same as service card (1px hairline → orange on hover). + +**Animation:** **hover-only.** No scroll-in. Hover triggers the orange +accent stroke/dot to pulse subtly (opacity 0.5 → 1, 1s, alternate). Static +at rest. This deliberately contrasts with the richer scroll-in of Tier 1 +to signal hierarchy. + +The value grid uses the **same frame pattern as the service grid** +(§7.5) — one continuous outer frame with shared interior hairlines +dividing the 4 cells. **Not 4 floating cards with gaps between them.** + +### 7.7 Section framing — the Vercel pattern + +This is one of the highest-leverage patterns we're stealing from +[vercel.com](https://vercel.com). Look at their homepage immediately +below the hero — content sections do not sit as **floating cards with +shadows** on a page background. They sit inside **explicit hairline +frames** that span the page width, with **interior hairlines dividing +the frame into cells** that share borders. The whole effect reads as a +**technical drawing or graph paper**, not a SaaS landing page. + +**This pattern replaces the "cards-on-background" default.** Whenever +multiple content blocks would naturally group into a section (a feature +grid, a stats row, a testimonials cluster, a column of values), the +default rendering is **one frame with interior dividers**, not N +separate cards. + +**Mechanics:** + +``` +┌────────────────────────────────────────────┐ +│ \ 02 / LEISTUNGEN │ ← eyebrow above frame +│ Was wir entwickeln │ ← heading above frame +│ │ +│ ┌──────────────┬──────────────┬──────────┐ │ +│ │ │ │ │ │ +│ │ cell A │ cell B │ cell C │ │ ← shared interior +│ │ │ │ │ │ hairlines, no gaps +│ ├──────────────┴──────────────┴──────────┤ │ +│ │ cell D (spans full width) │ │ +│ └────────────────────────────────────────┘ │ +└────────────────────────────────────────────┘ +``` + +**Rules:** + +- **Outer frame:** 1px `--color-hairline-strong` border, `--radius-sm`, + `overflow: hidden` so child borders clip cleanly to the outer radius. +- **Interior dividers:** 1px `--color-hairline-strong`. Applied as + `border-left` / `border-top` on the second/subsequent cells. +- **Gap between cells:** zero. Cells share the dividing line. +- **Cell padding:** consistent within a frame (typically 24px or 32px). +- **No drop shadows.** Anywhere. The frame *is* the depth. +- **Corner cross marks** at the four outer corners of the frame (per + §7.3 — orange, 14px, 1px stroke). These are the registration marks + that make the frame read as "deliberate technical drawing" rather + than "rectangle." +- **Background grid** (per §7.2) renders inside the frame with the + radial mask hiding it behind active cell content. + +**When to frame, when to not:** + +- **Frame:** any section with 2+ related content cells (service grid, + value grid, testimonials cluster, project tiles, stats rows, FAQ + groups). +- **Don't frame:** prose-heavy sections (article body, hero copy, + about-text). Prose flows in the page reading column without an + outer frame — frames are for *grouped collections*, not running text. +- **Don't double-frame:** a frame should not contain another frame. + One level of grouping per visual unit. + +**Hover state per cell:** + +- Background: shift to `--color-orange-100` (5% orange wash) over + 150ms. +- The dividing hairlines adjacent to the hovered cell remain neutral + (orange-on-orange would muddy). The single edge of the *outer frame* + bordering the hovered cell shifts to `--color-orange-600`. +- No translateY, no scale, no shadow. The frame is solid; cells light + up *inside* the frame. + +**Anti-patterns (forbidden):** + +- ❌ Cards with `box-shadow` floating on a page background. +- ❌ Cards with their own borders separated by gap. +- ❌ Cards with `border-radius` on each side (gives the + "rounded-card-stack" look that screams 2018 SaaS). +- ❌ Multiple radii within a frame (only the outer corners are + rounded; interior cells have sharp corners since they share the + outer radius via clipping). + +**Existing card components to refactor (§8.4 etc.):** the Card +component should be split into two: + +- `` — the outer hairline-frame container. +- `` — a child cell. No border of its own, no radius. +- Existing `Card` usage for **standalone** items (rare — only when a + single card sits alone on a page) keeps its hairline border + radius. + +--- + +## 8. Components + +### 8.1 Buttons + +Two variants only. + +**Primary (filled):** + +- Background: `--color-cobalt-900`. Text: white. Hover: + `--color-cobalt-800`. Active: solid orange ring (1px, 2px offset) on + focus-visible. +- Padding: `11px 18px`. Font: sans medium 14px. +- Trailing `→` arrow in mono, opacity 0.7. + +**Ghost:** + +- Background: transparent. Text: `--color-ink-950`. Border: 1px + `--color-hairline-strong`. Hover: text becomes `--color-orange-600`, + border stays the same. +- Same padding/font as primary. + +**No tertiary, no destructive, no pill, no gradient.** Forbidden. + +### 8.2 Links (in body / prose) + +- Default: `--color-ink-950`, underlined with `text-decoration-color: + --color-hairline-strong`, `text-underline-offset: 4px`. +- Hover: `color: --color-orange-600`, underline color matches. +- Visited: same as default (we are not a 1996 wiki). +- External links get a trailing `↗` glyph in mono. + +### 8.3 Code chips / tags + +``` +\ typescript +``` + +- Background: `--color-orange-100`. Text: `--color-cobalt-900`. Leading + `\` glyph in `--color-orange-600`. +- `--font-mono`, `--text-xs`, padding `4px 8px`, radius `--radius-xs`. + +### 8.4 Cards — almost always inside a SectionFrame + +**The default container for grouped content is the section frame +pattern (§7.7), not standalone cards.** Standalone cards are rare and +should be questioned — if there are 2+ similar items, use a frame. + +For the rare standalone card (e.g. a single CTA card on a page that +isn't part of a grid): + +- Background: `--color-paper-pure`. +- Border: 1px `--color-hairline-strong`. **No shadow. Ever.** +- Radius: `--radius-sm`. +- Hover: border color shifts to `--color-orange-600` over 150ms. No + translateY, no scale, no box-shadow. + +For grouped cards (project tiles, article tiles, service tiles, value +tiles, testimonial tiles): use `` + `` per +§7.7. Cells have no border of their own and no individual radius. + +### 8.5 Forms + +- Inputs: 1px hairline border, no fill, sans 14px, padding `10px 12px`. +- Focus: 2px orange outline, 2px offset. Border becomes + `--color-cobalt-900`. +- Labels: mono uppercase eyebrow above the input. +- Error state: 1px orange border, error text in orange below input. + +--- + +## 9. Motion + +**Principles:** + +- Every interaction has a state change ≤ 200ms. Nothing slower. +- Default ease: `cubic-bezier(0.4, 0, 0.2, 1)` (Material's "standard easing" — applied via Tailwind `ease-[cubic-bezier(0.4,0,0.2,1)]` or a CSS variable). +- Reduce motion: respect `prefers-reduced-motion: reduce` and disable all + non-essential motion (the header collapse stays — it's structural). +- No bouncy springs. No parallax. No scroll-jacking. + +**Named micro-interactions:** + +| Name | Trigger | Behavior | +| ------------------- | ---------------------------------- | ------------------------------------------------------------------------ | +| `header-collapse` | Scroll past 80px | Wordmark fades + collapses, header height shrinks (see §5.4) | +| `nav-hover` | Hover any header nav link | Orange `\` glyph fades in to the left of the link, 120ms | +| `link-underline` | Hover any in-prose link | Underline color animates to orange over 100ms | +| `card-border` | Hover a card | Border color shifts to orange over 150ms | +| `cta-arrow-nudge` | Hover a primary button | Trailing `→` translates +2px on x-axis over 120ms | +| `eyebrow-counter` | First scroll into a section | The `01`, `02`, ... numeric in eyebrows count up from 00 over 400ms (intersection observer; once per section) | +| `corner-mark-draw` | First scroll into a hero/section | Corner crosses draw in (animate stroke from 0 → full) over 300ms, staggered 60ms (intersection observer; once per section) | +| `service-card-draw` | First scroll into a service card | SVG visualization assembles via stroke-dasharray + opacity, ≤1500ms total per card, staggered. See §7.5. | +| `service-card-hover`| Hover a service card (Tier 1) | Ambient micro-loop in orange (indicator slides / bars rebar / data dots flow), 1.4–2s loop, paused on mouseleave. See §7.5. | +| `value-glyph-pulse` | Hover a value card (Tier 2) | Orange accent stroke/dot pulses 0.5 → 1 opacity, 1s, alternate, infinite. See §7.6. | + +That's the entire motion catalog. **Do not add motion outside this list +without flagging.** + +--- + +## 10. Dark mode + +**Status: open decision.** Light mode ships first (per user direction). +Dark mode is a follow-up phase. + +Tentative mapping for when we get there: + +``` +Light Dark +--color-paper → --color-cobalt-950 (#050E1F) +--color-paper-pure → --color-cobalt-900 (#0A2540) /* surfaces */ +--color-ink-950 → #FAFAFA /* body text */ +--color-cobalt-900 → #FFFFFF /* anchor — H1 inverts to pure white */ +--color-orange-600 → #FF6B14 /* slightly brighter to compensate for dark surround */ +--color-hairline → #1A2A42 +``` + +**Open questions:** + +- Does the cobalt anchor still anchor in dark mode, or does white take over + that role? (My instinct: white H1, cobalt becomes the surface — the + anchor migrates from "the loud color" to "the quiet color" in dark mode.) +- How do the corner cross marks render against a dark background? Probably + same orange, but at lower opacity. +- Toggle UX: respect `prefers-color-scheme`, with optional manual toggle in + the footer? Or no manual toggle at all? + +To be grilled when we get to phase 2. + +--- + +## 11. Anti-slop guardrails + +Hard rules. Agents implementing the redesign **must not** violate these +without explicit user approval. + +1. **No new color values.** Every color in the codebase resolves to a + token in §4.1. If you need a color that isn't there, propose adding it + to the scale; do not inline a hex. +2. **No new font sizes.** Use the type scale in §4.2. Same propose-or-stop + rule. +3. **No arbitrary Tailwind values** (`text-[17px]`, `p-[23px]`, + `bg-[#abc123]`). Forbidden. If the scale doesn't have it, the design is + wrong. +4. **No box-shadows. Anywhere.** Borders + the section frame pattern + (§7.7) + the corner crosses carry depth. Shadows = slop in this + system. Floating-cards-with-shadows is the **single most "old SaaS" + look** to avoid — when in doubt, use a `` instead. +5. **No gradients.** Including subtle ones. The page is flat color + + hairlines. +6. **No emoji in UI.** None. +7. **No "hero illustrations" or stock photography.** Project screenshots + in cards are fine; decorative art is not. +8. **No motion outside §9.** No "fancy hover effects." No scroll + animations beyond the named ones. +9. **No new icon sets.** The corner crosses, the `\`, the `→`, the `↗` + are the icon system. If a UI surface needs another glyph, ask first. +10. **No second accent color.** If something looks like it needs a + "second accent," it doesn't — use ink scale. + +--- + +## 12. Resolved defaults (previously open items) + +The implementation agent should follow these defaults. Each is a +considered first cut — flag back to the user *before* deviating, but +otherwise proceed. + +### 12.1 Logo SVG asset + +Resolved — see §5.1 for the draft SVG and `/tmp/jhb-mark-draft.svg`. +Move into `public/icon.svg` and generate favicon variants. Validate +legibility at 16px before final commit. + +### 12.2 Imagery treatment (project screenshots, article covers) + +- **Project tile screenshots**: rendered inside a 1px hairline frame + matching the card's border (`--color-hairline-strong`). No drop shadow. + No rounded corners on the image itself (the card's `--radius-sm` + clips them via `overflow: hidden`). +- **Hover behavior**: image stays full color. Card border shifts to + orange (per §8.4). No image filter changes — the schematic system + carries the design language; project screenshots stay honest. +- **Article cover images**: same treatment. Centered, 16:9 aspect, + hairline frame, no shadow. +- **Loading**: all images via `Img` component (per `web/CLAUDE.md`). + Use `loading="lazy"` for everything below the fold. +- **Aspect ratios**: locked to 16:9 (project tiles, article covers) or + 1:1 (testimonial avatars, author headshots). No free-form ratios. + +### 12.3 Header `Kontakt` CTA + +**Filled cobalt primary button** (per §8.1 primary). It's the page's +single conversion path; ghost would lose it in the nav. Stays filled in +both expanded and collapsed header states. + +### 12.4 Footer architecture + +**Restyle, do not restructure.** Keep the current information +architecture (legal links, sitemap columns, contact, social). Apply: + +- Background: `--color-cobalt-900` (the only large cobalt fill in the + whole site — anchors the bottom) +- Text: white / `--color-cobalt-100` for muted +- Top border: 1px `--color-orange-600` hairline accent (full width) +- Corner crosses at the top-left and top-right of the footer (orange, + per §7.3) +- Mono uppercase column headings, `\` glyph prefix on each +- Small mark in the bottom-left corner + +### 12.5 Mobile header + +- Collapsed state only — no full wordmark phase on mobile (the screen is + too narrow for the wordmark + nav lockup). +- Layout: `[mark]` left, `[hamburger]` right. Wordmark hidden. +- Hamburger opens a full-screen overlay nav: paper background, large + sans nav links, mono labels, orange `\` separators between sections. +- The DE/EN switcher moves into the overlay (not in the collapsed bar). +- Breakpoint: below `768px`. + +### 12.6 DE/EN switcher + +- **Desktop expanded**: top-right of header, after the `Kontakt` CTA, + formatted `DE \ EN` with the `\` in `--color-orange-600`. The + inactive language is `--color-ink-500`, the active is + `--color-cobalt-900`. +- **Desktop collapsed**: switcher persists but compresses — only the + active language code is visible (`DE` or `EN`), with a hover state + revealing the alternate. +- **Mobile**: lives inside the overlay nav (per §12.5). + +### 12.7 Live preview / admin toolbar + +`PreviewAdminToolbar.astro` is unchanged structurally. Restyle to match +the new system: cobalt background, mono labels, orange accents. Sits +above the header (does not interfere with scroll-collapse). + +### 12.8 Page-by-page block sequences + +The implementation agent should restyle existing block components in +place rather than restructure the page IA. Block components live in +`src/components/blocks/` and map 1:1 to Payload blocks. Order on the +homepage stays as-is. New pieces: + +**Homepage block sequence:** + +1. `HeroSection` — H1 + lede + 2 CTAs, masked grid, 4 corner crosses +2. `\ 02 / LEISTUNGEN` eyebrow → **Service bento (Tier 1, §7.5)** — NEW + block, replaces current 3-column "Leistungen" section +3. `\ 03 / REFERENZEN` eyebrow → existing Projects block, restyled with + hairline-frame project cards (§12.2) +4. `\ 04 / ÜBER` eyebrow → existing About block, restyled +5. `\ 05 / SOFTWARE DIE BLEIBT` eyebrow → **Value bento (Tier 2, §7.6)** — + restyled "Software die bleibt" section +6. `\ 06 / KUNDEN SAGEN` eyebrow → existing Testimonials block, restyled +7. Footer + +**Other pages** — apply the same patterns: + +- **Service detail pages** (`/de/leistungen/`): use the hero card's + full visualization at top, then deep-dive content with the same + eyebrow + section pattern. +- **Project detail** (`/de/referenzen/`): hero with project name + + client + tags (mono chips), screenshot grid (§12.2), case study prose + in the existing `RichText` flow. +- **Article detail** (`/de/artikel/`): existing layout, restyled. + Mono eyebrow with date + reading time. Cover image with hairline + frame. Body uses the existing `RichText` component (no changes to + prose styles beyond the global token swap). +- **Contact** (`/de/kontakt`): hero + form. Form follows §8.5. + +### 12.9 Dark mode + +Deferred to phase 2 — see §10. + +--- + +## 12.10 Still genuinely open (flag to user during implementation) + +These need human judgment that we couldn't pre-resolve: + +- **Service detail pages content** — the current site may not have full + detail pages for each service. If the implementation agent creates + them, the user should review the page IA before content is written. +- **Hero copy changes** — the redesign keeps content as-is, but the H1 + may benefit from light editing once typography is in place. Flag any + proposed copy changes; do not change autonomously. +- **Logo asset final approval** — the §5.1 SVG is a draft. User must + approve the rendered output before it replaces `public/icon.svg`. + +--- + +## 13. Implementation sequencing + +When we move to build, do it in this order. Do **not** parallelize across +all pages — the design system needs to stabilize on one page before +fanning out, or we drift. + +1. **Token layer** — update `src/styles.css` with the new `@theme` block + (color, font, type scale, radii). Ship Geist via the `geist` npm + package. +2. **Logo SVG** — replace `public/icon.svg` with the new mark. Add OG/social variants. +3. **Header + footer + Layout.astro** — rebuild the header with the + scroll-collapse, the new lockup, the new nav/lang switcher. Restyle + the footer. +4. **Homepage end-to-end** — restyle every block on the homepage as a + prototype of the system. Iterate visually until happy. +5. **Component primitives** — once the homepage is locked, extract any + patterns into reusable components (Section, Eyebrow, CornerCrosses, + Chip, etc.). +6. **Other pages** — apply the system to services, projects, articles, + contact. Largely mechanical at this point. +7. **Dark mode** — separate phase. + +--- + +## 14. CLAUDE.md additions (to write after sign-off) + +Once this spec is locked and partially implemented, add a `redesign` +skill or update `web/CLAUDE.md` with: + +- The token scale reference +- The brand `\` thread rule +- The motion catalog +- The anti-slop guardrails (§11) verbatim — these need to be loaded into + every agent's context, not just at the start of the redesign. + +--- + +## Changelog + +- **2026-05-02** — Initial draft. Locked: color (cobalt + orange), + typography (Geist Sans + Mono), logo system (two-tier, tile-grid mark + with `\` diagonal, clean wordmark, Anthropic-style scroll collapse), + brand `\` thread, layout grid + corner crosses, component patterns, + motion catalog, anti-slop guardrails. Open: dark mode, logo SVG, page + structures, imagery treatment. +- **2026-05-02** — Added §7.5 service grid (Tier 1) and §7.6 value grid + (Tier 2). Vercel-style schematic visualizations per service card, + scroll-in + hover micro-interactions. Working prototype at + `/tmp/jhb-service-grid.html`. Updated motion catalog with three new + named interactions. +- **2026-05-02** — Service grid converted from equal-3-up to **bento + layout** (1 hero + 2 stacked compact). Webanwendungen designated as + hero card. §7.5 updated with bento spec and per-size sizing rules. +- **2026-05-02** — Resolved §12 open items into defaults: logo SVG draft + inlined in §5.1, imagery treatment, header CTA filled, footer + restyle (cobalt fill + orange accents), mobile header (collapsed + + overlay nav), DE/EN switcher rules, page-by-page block sequencing. + Plan now ready for implementation handoff. +- **2026-05-02** — Added §7.7 **section framing pattern** (the Vercel + signature): grouped cells share an outer frame with interior hairlines + rather than rendering as floating cards with gaps. Bento (§7.5) and + value grid (§7.6) updated to follow the frame pattern. §8.4 (cards) + and §11 (anti-slop rule #4) updated to reinforce. Prototype at + `/tmp/jhb-service-grid.html` updated to demonstrate the pattern. +- **2026-05-02** — References split into §2.1 (visual/interaction — + vercel.com, payloadcms.com, aihero.dev, anthropic.com) and §2.2 + (content — Vercel design guidelines, linked for documentation, not + appearance). From b01480b7a8a4142938e4f8e0cb68a48c7b2eaf9e Mon Sep 17 00:00:00 2001 From: Jens Becker Date: Sat, 2 May 2026 23:50:39 +0200 Subject: [PATCH 02/36] feat(web): add design token layer and self-host Geist fonts --- pnpm-lock.yaml | 36 +++--- web/package.json | 2 +- web/public/fonts/Geist-Variable.woff2 | Bin 0 -> 69436 bytes web/public/fonts/GeistMono-Variable.woff2 | Bin 0 -> 71004 bytes web/src/layout/Layout.astro | 1 - web/src/styles.css | 134 ++++++++++++++-------- 6 files changed, 104 insertions(+), 69 deletions(-) create mode 100644 web/public/fonts/Geist-Variable.woff2 create mode 100644 web/public/fonts/GeistMono-Variable.woff2 diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1727edd..2b8ca69 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -159,9 +159,6 @@ importers: '@astrojs/vercel': specifier: ^8.2.0 version: 8.2.0(astro@5.18.1(@types/node@24.10.1)(@vercel/functions@3.4.3(@aws-sdk/credential-provider-web-identity@3.930.0))(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.44.0)(sass@1.77.4)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2))(next@16.2.2(@opentelemetry/api@1.9.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(react@19.2.3)(rollup@4.44.0) - '@fontsource-variable/montserrat': - specifier: ^5.2.6 - version: 5.2.6 '@jhb.software/astro-payload-richtext-lexical': specifier: 0.3.2 version: 0.3.2(astro@5.18.1(@types/node@24.10.1)(@vercel/functions@3.4.3(@aws-sdk/credential-provider-web-identity@3.930.0))(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.44.0)(sass@1.77.4)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)) @@ -183,6 +180,9 @@ importers: cms: specifier: workspace:* version: link:../cms + geist: + specifier: ^1.7.0 + version: 1.7.0(next@16.2.2(@opentelemetry/api@1.9.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4)) lucide-astro: specifier: ^0.519.0 version: 0.519.0(astro@5.18.1(@types/node@24.10.1)(@vercel/functions@3.4.3(@aws-sdk/credential-provider-web-identity@3.930.0))(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.44.0)(sass@1.77.4)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)) @@ -1130,9 +1130,6 @@ packages: '@floating-ui/utils@0.2.10': resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} - '@fontsource-variable/montserrat@5.2.6': - resolution: {integrity: sha512-1eHefcz9ZXSMjZPckKCWSYd8rLjUpmzQIsNO8DuyU0IdPvsqletPvSIJmztr0sCU6sX4EFKsSHxJWawjmROp2A==} - '@hono/node-server@1.19.11': resolution: {integrity: sha512-dr8/3zEaB+p0D2n/IUrlPF1HZm586qgJNXK1a9fhg/PzdtkK7Ksd5l312tJX2yBuALqDYBlG20QEbayqPyxn+g==} engines: {node: '>=18.14.1'} @@ -3880,6 +3877,11 @@ packages: functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + geist@1.7.0: + resolution: {integrity: sha512-ZaoiZwkSf0DwwB1ncdLKp+ggAldqxl5L1+SXaNIBGkPAqcu+xjVJLxlf3/S8vLt9UHx1xu5fz3lbzKCj5iOVdQ==} + peerDependencies: + next: '>=13.2.0' + generic-pool@3.9.0: resolution: {integrity: sha512-hymDOu5B53XvN4QT9dBmZxPX4CWhBPPLguTZ9MMFeFa/Kg0xWVfylOVNlJji/E7yTZWFd/q9GO5TxDLq156D7g==} engines: {node: '>= 4'} @@ -7860,8 +7862,6 @@ snapshots: '@floating-ui/utils@0.2.10': {} - '@fontsource-variable/montserrat@5.2.6': {} - '@hono/node-server@1.19.11(hono@4.12.8)': dependencies: hono: 4.12.8 @@ -10696,8 +10696,8 @@ snapshots: '@next/eslint-plugin-next': 16.2.2 eslint: 9.39.1(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.1(jiti@2.6.1)) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.1(jiti@2.6.1)) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1)))(eslint@9.39.1(jiti@2.6.1)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1)))(eslint@9.39.1(jiti@2.6.1)))(eslint@9.39.1(jiti@2.6.1)) eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.1(jiti@2.6.1)) eslint-plugin-react: 7.37.5(eslint@9.39.1(jiti@2.6.1)) eslint-plugin-react-hooks: 7.0.1(eslint@9.39.1(jiti@2.6.1)) @@ -10723,7 +10723,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.1(jiti@2.6.1)): + eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1)))(eslint@9.39.1(jiti@2.6.1)): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.3 @@ -10734,18 +10734,18 @@ snapshots: tinyglobby: 0.2.15 unrs-resolver: 1.11.1 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.1(jiti@2.6.1)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1)))(eslint@9.39.1(jiti@2.6.1)))(eslint@9.39.1(jiti@2.6.1)) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.1(jiti@2.6.1)): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1)))(eslint@9.39.1(jiti@2.6.1)))(eslint@9.39.1(jiti@2.6.1)): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 8.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) eslint: 9.39.1(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.1(jiti@2.6.1)) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1)))(eslint@9.39.1(jiti@2.6.1)) transitivePeerDependencies: - supports-color @@ -10763,7 +10763,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.1(jiti@2.6.1)): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1)))(eslint@9.39.1(jiti@2.6.1)))(eslint@9.39.1(jiti@2.6.1)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -10774,7 +10774,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.39.1(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.1(jiti@2.6.1)) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1)))(eslint@9.39.1(jiti@2.6.1)))(eslint@9.39.1(jiti@2.6.1)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -11191,6 +11191,10 @@ snapshots: functions-have-names@1.2.3: {} + geist@1.7.0(next@16.2.2(@opentelemetry/api@1.9.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4)): + dependencies: + next: 16.2.2(@babel/core@7.28.6)(@opentelemetry/api@1.9.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4) + generic-pool@3.9.0: {} gensync@1.0.0-beta.2: {} diff --git a/web/package.json b/web/package.json index eb787b0..1c18037 100644 --- a/web/package.json +++ b/web/package.json @@ -14,7 +14,6 @@ }, "dependencies": { "@astrojs/vercel": "^8.2.0", - "@fontsource-variable/montserrat": "^5.2.6", "@jhb.software/astro-payload-richtext-lexical": "0.3.2", "@payloadcms/live-preview": "3.83.0", "@payloadcms/sdk": "3.83.0", @@ -22,6 +21,7 @@ "astro": "^5.10.0", "astro-seo-schema": "^5.0.0", "cms": "workspace:*", + "geist": "^1.7.0", "lucide-astro": "^0.519.0", "payload": "3.83.0", "schema-dts": "^1.1.5" diff --git a/web/public/fonts/Geist-Variable.woff2 b/web/public/fonts/Geist-Variable.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b2f01210625c8cc9939508fb1f7214d21eb41357 GIT binary patch literal 69436 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

<+} zV(L`CrggiU`%1^h`2fp|);K%cr#pjrYN|84Ty|#K+U8qieH+@h+QHlRMqAxW{>;z& z@lR_QLLbU)Pgz=$MKerrz=beNo5?4na#1gtkh;r0Q7L!0!ZKSeypCt=?&geW6r&u& zj;?&sP5cYzGXM==$1v?`F?bXn|Kl3vj(_tvZVFV@loTKs0xrEk)@_P!7juWMyCL*G zVNXhV#?5D>JSXsFO|N+I8U(+u=tCVJLd8c)J~sR@qiRUXuqrar-L*Pp#xQqE$b;wIHV% z>=$X9qpEkN1n1^>Lg!%iZlDb_d9xcJ3d6nP?7zIF_vM*e667lJ^ppb>^0 u|F(! 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[@+FJuP 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⪙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 Date: Sat, 2 May 2026 23:52:57 +0200 Subject: [PATCH 03/36] =?UTF-8?q?feat(web):=20replace=20logo=20with=20two-?= =?UTF-8?q?tier=20mark=20(4=C3=974=20tile=20grid,=20orange=20diagonal)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/public/favicon.ico | Bin 152126 -> 32038 bytes web/public/icon.png | Bin 7869 -> 1752 bytes web/public/icon.svg | 44 ++++++++++++++++++++++------------------- web/public/logo.webp | Bin 11944 -> 1920 bytes web/src/config.ts | 2 +- 5 files changed, 25 insertions(+), 21 deletions(-) diff --git a/web/public/favicon.ico b/web/public/favicon.ico index 042c91f32729b74e96b1ca655648f9043d7317a9..a57508a12698b0bfa9c12f24a8800ed1d217957f 100644 GIT binary patch literal 32038 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 - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/web/public/logo.webp b/web/public/logo.webp index 307b221a1590d78494dd9cfe59173bc9ff48aebe..ab39ac5f45fd67be1b3b79d5e6b510e557f38bdd 100644 GIT binary patch literal 1920 zcmcJNc{JOJ7RP@PifS!mnK8DOXlLw9m1+}|#L`$B%d1*yXrwe+K}jr8Mis%7lvYcN zwq}$v_BFAMq4sUW($tnvYsC^)UP+@`q;DWqr z?`&`AdJ+Ht@uLJG$6<=Lw}kNl03^+AqUw&pKEkvu>pDbltGPStq?z-dzthnIV`}tn z?pet=E)NWaMOYlr2U0@K(SUNG;S@NtkH+^b)IZJMCW7CX!xXu||! zDZ|fJH(I_apL0dZ{d`nRIPH@$AYUIbPf9e9+9wW?ov;|Tq0@7)T={r~b~ zR$Cxb9z^Yy;8mj7B~lzcAVqdd3?exxConj<|2UpZGM&PyfSr)-ttKz#P~h^uUPqH` zZsfJ1WjEbjPhKWCAN~I;AQ(!GR7dPTWsMndD3P8yo{ z^CzKu8Kh#svHK%nV!$zaKxK!qGuK+qtP#twTgpo;^_>=*QTOJiRRy+3{bB!+8%@H3 z@Sd7T z+dc@1ap$=|$|~B6xUIS4tQ_O}66gHJs4H#QET49fQL#%XknSwG%-}39RnWR}ouc=a zhH@lB66BA*=ZuyB0IXwxmk>3858y-mYMFypEl|!=5qA|Y{YDszpAJD-@E}~svJMZU zI|k}<7wN*x=!}El17IG$HtNmPE+>Bl4h@#Bv7o`wJ;A+_vQ!f>-M)RLGA2~10<2N& z7o!b3l11WiR=4{WgbIjuCWenT`F$*Tb zv_$)-eu+$nm=*jn+8=U1JcpcImn`N_I7VZOlDZ4APG7B?espP9^CZEkibXTjh;y;R z**s#exwanZ@SLY;XaUfGgHGwQN)_5_YqF!}=LBlqo?W*)#o6`yoQ=e~xEoMwbMDD6 z&0=vQETSYbdXwMxZ_A2Yn>@{;PvZP@ZNEwXM}R~8k6`+@hKjSt?S&JEVxfswUY9v) zD6NwvzJ#x{-_NPW-UwyrRQYUUh#%rNUQcl*nn(|NM?dfvxP*0n{7dZVgbcw;wxE2i z(%Q#)0L?d9;`mFg%Ofee#)?QZ@95G+_Q4tcyXS}elJ4xp0oCgNoQ)Z3y~4X;_x8U6 zBQ9e+>`tIM0S@`$2@ygwo61Z5Apny&S=_yq+m5$>8L$bBdQ^{85@xsNl&8ITM;r8A zXKe{@lhoix&T#|P6qxXOc6AiGZjtt`U!o|A7j#7|-%Dm5k9~EC2AU9}dC{73#|ywA zJ>VWR8$2>^?AXTz(Lk_Yo(blDMA0?7Ci{+2G7CK5-M9$BJF|#K=%%0n$le$z6}h`$ zTO3|T=$ax|Q|lpt>V8Kfosxo2o+~56gotwKxUB!wk;nB03_y+oa5$^)akU z*6dm>Z$tSZ(q3w*&2Hk!C1Unm+BEE`osYHeAv7hKf>zQG9!es4l)^C-?ER@(%4Fg$Ok{a* z<1N#^3#O4r0g>`CdL>u1hRD#u9S9{ zl**R;1t)76`M9Mbxd72NeFNpFpApY$%WeyBSW^DD@5TCNBx%_;gv`tEOFB{dww`0yu179fyoJXp$xJ;l;N9e zUZuzYQlb(VHob;j@ARE~yjx5yt4CA_i%VIpsZjji%~dE3m{d|^D7xzf&8Cnou)dlh zt)lh21xWzHXN>vTtSC`$T@JsHsJKO$yxJ(^b93iSp;y46BIKJ3;=Z*f9HuYZoljL( zr2~KygD&x*k^H?5BrGT)sf6xlo6$nw!b+zr~1oB~&HR`eUEx4zqqR5YS$APyRQ9i!Q3R|0j^HXw_W9$PO+2L28D1?EBk literal 11944 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 Date: Sun, 3 May 2026 00:04:32 +0200 Subject: [PATCH 04/36] feat(web): rebuild header/footer/layout with new design system MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Sticky header with scroll-collapse past 80px (wordmark fades, mark stays) - New nav with orange backslash hover/active indicator - DE \ EN switcher with orange separator - Cobalt-900 footer with orange top border, corner crosses, mono headings - New mark: cobalt square with small orange backslash glyph (no tile/lego feel) - Link component split into primary/ghost/text styles per §8.1/§8.2 - Add --container-page token for max-w-page utility --- web/public/favicon.ico | Bin 32038 -> 32038 bytes web/public/icon.png | Bin 1752 -> 2654 bytes web/public/icon.svg | 25 +- web/public/logo.webp | Bin 1920 -> 2846 bytes web/src/components/Link.astro | 56 ++-- web/src/components/icons/Icon.astro | 4 +- web/src/layout/CornerMark.astro | 47 +++ web/src/layout/Footer.astro | 123 ++++++-- web/src/layout/Header.astro | 453 ++++++++++++++++++---------- web/src/layout/Layout.astro | 9 +- web/src/styles.css | 3 + 11 files changed, 480 insertions(+), 240 deletions(-) create mode 100644 web/src/layout/CornerMark.astro diff --git a/web/public/favicon.ico b/web/public/favicon.ico index a57508a12698b0bfa9c12f24a8800ed1d217957f..cf51335c58b466f8ed2e7546ac803df1f5b620e9 100644 GIT binary patch literal 32038 zcmeHPOHWfl6rL)Pw2cWdG0_B)M*08>2$)g@p%+L*adGfa^jwp)%rx?K`6=&56_ga0%mrx z!uzlh>S(5H5X%(Ov3Glrd!^1H*n9v#laORdg1;(Va6C1a$az8JT-$@J&DwO;>W-iH zsBI(jst0s-XFu47{7)bzQ)aQ5WW;^Eic-Jo)}9o zreJJwQ*XBAJhzE)=rQ(U?Q8tV>QpLrQ8@VC10Jqn?OziPaQzl>3JIC2Taqeqilp4s zT-UPdkd=-;Dx_lT9$;ncWh*bqDl!|{gCcjGoayMpAmLsozc>BM7FQa`%<>Mep@@0t z$A0!P_AzpR9Plj%`bTf*_Ujv^G?2UETR9tzrG5FEIVC1ir9r352 z$lpkI*a2K>WG6p8%jS#!a0a+XiobR5ncI}zK|f90y_pLWcj9i>|B^H03^@~&Il)5x zd`9MCn4{UXp%?FC&RhESitn$Oiv>t_;8iVu&}4`FSo4|npPPGnyx;v|m1Xup@9+W~V`dD-bj2)`?&(v%O;;qXFV4s#HX<1Tb zpB5f8xF)-!T~q1!OR?YA!1kG4#@eA{Asv5VC8M2yVk&buW2IxCTV3x4`h5fjRx{%Jqups%B^Gd|Ab^mVQ4>kylOeT}WF zb3AY5xD{ej)p6P|>5ef2wyoCL{NCzzH{&H@(ne>KhedaT0lrNb-O(3XIaXm&8qfqyx;z&M=Xd1IY17O1LOcXKn{=tMS5rQ3rf)B&^hHW( zbMwgmA;*8pv70wv`&%h}y^+#lapd3lJf(j=P3cCi$|M%Y^^=Z$FdxI zyX#9lO1zxY-f{`Y&m~^YSUcDyUd~Xv>Qmz7eAe~qdKPc}qNALxUW>PWsVnExt}pA9 zGh46V#?EhBy~@{KuM1HB3v#gh>~%8vXD8ke#K7=Avzd=YK8E+J)oXa;F|Rw@Yxgpj z=ax_L4XqgfedY;<)!~13CFvh#YPj&swp{z4@?&}}_ zxo77wHn$Q#w&#xjjC6m_mAZ1a>si0x#?BXgeXGa%W4cP5>9hS*zpOKM?&}}>y$^o} zT-oZpEq-k7CEn-%cF(_D$FcL=>pRvr8t?1R+h5T+kKy|K|KIaJ?dxlQo>;%Hf4ck2 z&fEHZ{>$f6GqCfr{@D9wiCaAS`@8GI-@sqxgxRe`?nK2o545tDfPV`Q?Wk( zK7ZU}Q+vhB_5IWL5AL6fwjWeJD&D&%reZj&h^_Kb@l#yAT!b@XR6Z)+<2V&VZV_AM zqvEHydbtQ^#Hf5!yvK1WhTI~y%16adarJT$&WKU@sCbX#R1CRAY?Y6SpW^D}BAgMU z@=@^~$Eg@{i`Xh36+gw*%SAXNM&+a8J&sc`2aKjA-9O# z`A`47Gc{{37nwO?`uzL+aUbE{h}eDq^!?NK&-Am3c#q($B6j2+L=3JKu_GK16X}T< z37U4Aw^M2xr7ZdLjn7MQp5%*vKtnM|vVA!Wl7G8?hst5fkZ& zn9S{W1izp;7-B|ThzpE-uE!*sus zzvm#gh#l&Gd;P`U?#99J?2maIsJmx8f#Er=MLr(oU0AHaUNtt}!$JF1#y!sW)dI8qHW!vnJNe&_B%N@nY-BA@);k)KX)s>skCv{eRnjs$ZiSYt;2D zex`oUtKBT54?DPxYBTmRHxa_!`YvWBaK-)5r4adKQmbYHZt2^_f1F zSJ$)n8qHW^`>8(D$MWiW7LQtLY}-%unLd_R*R%K<%~)gmsXo)k^2nveR{2^y@Ts?YSXd`m4gy;Qvx z&-Af;4d<3MR*&j4eJtNnOHD6Tuf;QcEMLR9WsTLN`b;0ox71S8OVw-fOdreFaBf*+ z^{776$MSQvsC+G+@niY(=5O_=KGVnYUH{2vla!gL*Q+(2U0;@0w0hXqdenYQAIp21 zl$gr5HJ<5Xc}1&-ZLLS`$Mmthr%8#ad|Tt0K9*Osdf3)_)P77K%X^xXn98>`p6O$G zMXQHxtw-(0^s&6BNr|a^TjQBNmRGcT*w%W~eoP0^0CtA}l^NA1V- zvAm~AiK%>BYQ z*c|Qs{%`XBcgU{sR9?B(9`>BC|L|SlAE)%OoTo{NowNQY>A~_^{{L$J#dMD46|Elj z9QD6^aQnk+tFOZkGdS7@^1a|`Qex+z|1k4=x_4`RXVCs=HGuq|2;Qo9DFhG++_(nZ^TdsWyR`)kZ2mI}8j8~aklMkZ9diiDnI2#!xn5Lm z|9d#l(~INvNW6dA?vKQ?{aUcn19*4x4Ts}NP8SfzXA0?V%|FYh-TJmYS!RoC9G$Au zNI3Z9l(v<$j%Fp+cL{0RO1o)Sa5D1^zdWKiH)}d?F!V{9PiF8y$CteMqk$cpYqbMe zdh_dglPke_dU_|6oohuM*3N?3zEDnVj&G*^_mjGe?i2Z9*ti{|UBl*iz2mhHHN@J5 zirC?hQI9>uVEH4gk=0J7V^;1;N>PQSpt0>d^r^#O?ES}wdegDCv!ZsvR^?C;aBZkO z^WClxq2b`c`v<2`=#$oBfXU^%+|u38isg)0EkL@gA)?HVA=*Fru{K4L9K-K22QVADw-mqUFSFq>M^<)>8Tsv;gG>l$V~T&0ap{Ku6J%m9bSpl?Vqw6e0NJB zKc`;JFtBIhw-zgnm2@2ZUe~`owU^mYd5F`R1-e!j(u%V0B#D!yD_s6s6wP*QOcvFq zu6lCfN;i1o#jYil&)U9uP#CJ$Iyzqvdmp@V96ZAa*w-^0`Xb}9%82!kyuHa`Hw6ql zPFd-y+FtiYOV1t8;c(jW2v|tR+L4QmrB9@?Vqc;1$V2X z4|MPIQMM}W?=HElJDqB*bk&W(iub)|u#nunwlKCcwyNZIUf^cOcp8`UO=@FFsFZta zbd2ujzgTJW;}Xf-!MZ!QA5D2!+M>W`w`q)1*GwG;X}XX7gR21wx6(K;6QK#gN;= z3zN@7-D`0m42CA2_Ok4k%ZBn_1P<1R<#QXCWGK9Q2qr({^3X9tab~C{Y1c?DD5L;o ztDGL@KH^2ulPi*>9ngfZE;94XQtq1JPjYdVLG65F;+@4altxjbC`jiaV zqXv={T{p74g+IiDIU129b%hGp{1Lj%>B%&YX6n^f+=4G zqr0cO9R^Z}l1%wAI*>cRzOhqD@LOF_-y81E-g1}BTy^-lEaX(=(;i!0c>AwM2*37@}iitT7`QlyyGOE1_jpCh0`Dk55K#j8mviy)6{UG1{A5V=5{zu z3>Rczh!Yr2qf&To79fC55WYk(Km!d4fM7}xCL$Pyi|c@Z6Kez`;35jpaIzJ_Xf#lX z@}A?tqX1(bLY9MtR9ujOaSTG%hlLm7{)w1z972|bg?Dg)lO%-fM<{5=t4BPL1t{i* zV8=+%r$``+px8SEYau}%I3c0f8JwVy2Tl~wW;>J@MTMQD;FB;7B$@-OD1@bhVDTh~ zod`0dQOp3rwxAF@0c6Oc*dCmqkgGJLX-MI1RRa4bz-z+%K< zl_=P+h-zxVyyHg$uQ`>L-1m(qMUHxx;7=PZaFHW`tUkHDaE;cH`z=M~pNG$(>_J^J zc;5BMav(DKrR}922WCa}^(cW0oACuYspa;jX7{s&iI&o+ijDNwOlP;OEsef6P~g#F zz3Lf*NH5>5^I8-YT$WRYFfDiUkMN<_BRb1TaFl9^>EHIn(D>HWJbw#>oecGpOzCh~ zT$*&&>SWRhpk+)ka!+c?y=mrnr^^`vIQ7ZjhV|~qhP&>%0Vy#FkZ+e&Y&p6*yl>H{ zNqj;I!W_=}NV@s%?;$Rgz4X*HLqK76Vl!1zaJK8?Io!>x7%q}i-3&^0ls0a$ULDE{ z>Ysa;Y?QIYS-5p}c3~>oadN)GM~G)!qgZA}X{yg$Wh@x4ukxe2(6>!oF5Mku*5Kc< z5&O186mW&sbTs6b;6r`$2gM=Gw!YA)ywcg8+U@XXAFaOFJ8X)boVu#}Mm`*jnC^bd zwF!Q#fh|9l`2VQ!|LsVbmRzGH5-2>JYdN#gYmaxhd`tC)9e7{Uc{~{ZBwS-j0Th0- z{jj6Scu5vKogXscSCxcW*-@9YL6mou#QV4L!Abcy->SOXijm2)DsNN%wvSi;v!hBi zGlQC3J6#zv<~82aKAS9<;eG2m5n3V zwtCFaj~~0$eXM8BFg9va5%LAD^N%a1?5ht<&Uo4GXSYSog7LM@AgJc_+&R8}#!3?S z{axDn?0{hPYgcyXOrtPTUZz=5b)c#&)BEB4YFUx3rO27VXQXf>F@3J{8~+y#)XCwY l`p+(6BENneZb`buCNZ1hR&ZKE!36&>0*3hsn!uD5^>5(BEJgqT literal 1752 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|G$6&6|H(?DA4Qa z;uumf=k4v&{c)v?$38yavo~NFOY~N^E!+kxrFr8#*1X~3PCnAxt;RO{*#8Dr!yOw9 zvliv>bXGg}Ea21@p1OlUO`>Uops5}Uv+oM8CQm`@rPnR>svd?d@tpZ{YNg%$yK^j! zE6v`Ur{DXzH(2lTpWc}Hn&m1xZBM38x-%oieUk3<-`4BgcF(gls5%sIykAbzHgUz$ zxx3x{cLXh;yl2vrf@Lpfs`RIQo_7Dw@6P%Ez8BS1RBe}j*8DT&*`3Lj@&21iQlr<~ zF)1)eU-+o9f5x(_)$w(&4nF^PzxTaFLuLKCv)gLyi{E)|`nfl*VygfHO0@> zT6(sfPyc@Xqabq~z0$&c#??i>^UlrLy}2>|&xV7!o}boEeVi`$`-3if-i|B0`P>I; z4CbF!@>lu!C2BqMwR>}F3}=7(;{Hu;&(F2@tAiPyS#MTf{WEq_?CWiO5&XNu!^7qO zU0BO*|L<70II}^$@$F3~oIgHl@69}QeA(vD>&x!%`hSaidR#q|#ccT}clLj8;LYCm z^vKNI`};mzRoeMu{l4ADdYP`BHMw8=(Dz`mKSS}m&hp<2kABNJRX!=js{YXX_?r#w zHG1vE4Cff9M4gvADuV8y}WXAeB_fmH|rLhne+0S>z>d2Qrc94 zQpK_1-?Jye-744n<(POrHo8t)yEvS|Ii~oeKQogo3quztgNQJLh8jbF55s~P3=W2j z4M|K4M+Zh?V`k?0eU)E2CWd{}>z`+EWnDUd50Lt}*xk)v;*{_paw*xtWTyZ2j&0T9 zfZOwLnFABQc6GfSkb-7~c>^B>WP1#rV$5{k-Zbx*GrV-^+}*|MJf(kLOuQ)E7IkyC z4bY>5(1+VRo&_&YNjYyZ@B_j9B)k=!;Z>tZ!vOmBw)~&!TT z8T8Ki9pyFvV_0 z%I|8s!VTc^S>n}?i|_V-182_-VquePCS1K!{qXL;@=xm+cf1Jxy>9onl6Nzn-I?}e z^U0dvNwO!md_A?TPnCh`gI&4SNo~)#6Laj-P9 - - - - - - - - - - - - - - - - - - - - - - - + + diff --git a/web/public/logo.webp b/web/public/logo.webp index ab39ac5f45fd67be1b3b79d5e6b510e557f38bdd..dde8deb40b436f80ca809da207cf98aefeceddbd 100644 GIT binary patch delta 2289 zcmb_cX*kr~8ymeZ@iovXm4GhE(#V{i%K!rmf zeol}FT*?qA1ge>6^yp-6j(j$1Q$ypq&=z-}jo`Gr8a^ixX*>-egWEZ*4SQDX*sWBy z)&}<~pIF+*<#Y7R25=XLYm#e*d({`Lbwbk5)dS4{n!`oIQTb+Tr!uqnD%%&Nvt$^+ z2peRF1FI{LrHi2Dx;hAeqa*BgPEofn2%=8W}&-&`_yUAcNiS&J=Sten4-B@`$ zyZMf9zIlMJ{`CwKb51zE)MelR#I}K_`+v0b^%1ta4GAo7vGAC*JnwnJQSxWAJn##P z`(r#mTyPj?&|RcbB7bZ1vagXDoKR&!2YyWaMbE}x+M$Bd28pVKHbnK{21YO7`48=H zIzX-Y{$pSVTBm?~Jh4zU=)(6nzY57dqI98)&KN71-)pMvHZHhrTkO&tD~9&d@=B@HIst3*{_=%{0*qVT^h z15nAM@#_3M$U@9*4X%#=-M^>SDg!lV_M{@L5Z_gQivPy|h+(X~$!e@@;;*pKnUX0G z2nP)6WKTR|^`j2lm}dmpy&`dd3f7so!hJ=>qe3L5JkdKovRz3$xV>9%e&LC2K*1*r z7cRZXKyn1j(nK(^`U&q{AFHt`E^(daQ$E3Oh>)_Z;c?mf*q$UF$VgAi>7Eq|YEnra zfXHf-Am0|WI$^yZuhM><*Jb)tBM6GO=Lb&BR=!mp2Fx<2Jv zC)6Qy4srg@BZ3wFlV64u2i8}r-1-L>=hTeo&K0Jg86I+%X-R|iidL?!GG?i@Xjd^| z+m}q=jKWV<4qMGjghX2*UfGNCfXZO8s_4g3N-N@%>Frd-#jCPD@$62I_NyYAo2gfK zX;SrfH&2`Q)j^^~yvgI$62*vH@kz*bo z)7d+KD^wA-W$sy2fMYF+<+T7jF6a9CEd9Y*`In!nG`O}iKdQ996$(GuD^2Itr60bg22{EG z%VJw7u;{k)N1l#-2vu&1;8##8KLloKA{DDvc-n$&$Cxa`j=y^#j;oiLIzc|Bs_6`DEdReoN zr8;qW$9^2)fYu0L^^hZfT}Wiws!}0g6P2$i?96q$-V`9$ZYxN!@K9D>ALHsUBs_Op z;3XZuO9-?$Moz8%gI{d&g4XWlI0tv^lM%;KZ)#zf=-?z(Y?0j3dS@*1eR`4=_l97; zb3$pL#mddC);<xF=JNXsxxEak_v&^}c-XAZy|cCMJ5486CXPJ8S^E>N z1P6I%s@cpWDol_MSvrQKt%^u&rCU;TA2PLjJ;BrHrvVh6(`iPwLIptfWuYV#;@+{m zyw7E5z4g)(iGQxg(`A*;XRR_`FHMrXcF!u$*HBa-8r#dCO*SP(#1SrtA7QB7=*rQ$ z8Km6kB<6eZ8vc~2QB;3O)KYJ&)-6%Y-BNU8s(=xcUk^6|?VO`>4jPtgca)nwJdruq zJD@k}TRxW|74_^!w$c`0q3wGnXBE7+fUjl|JmPOnnM fwQ(~l5NLqp@XC_$rF8e$Fhxh<&1F^E#Z}0^h`C_7 delta 1356 zcmV-S1+)5|7Jv^1Qb|Tecn7ftNCJN@1pol>Q~;d;DgXii0zQ#Qo=hdABBCP@SP-xh z31@EMbv{S_0r&yzF#c3A*#9y3>A(r!f0X=m`~c-W@77}9FSCI00R1=XOXdS~1NsO0 zuCb3m4>8aCAFuDn@c*RE*@rs9@Era<+zzfLotWi_HgD7n$e?%c#Kiw=^AGUT8YFyw5;JT}B7B zxuELe^Fh_c=6V7$>M%X6%?DQ(nhvfnGtd#2QGxAlXgavO&~#q#VTKWJ(YhRtKyY>CW8r^{(8;^Z97tn?+|=T{o4vo^TxN<7a8r=6VxFfAj=p*GROVO`*Hr>;indk=n4|acwJfX2tEFbWI z5$bvH=d9!F4|)1Z^kNXp3t1gaEfIb3xU`=2X+eJpNiwrqN6S z+^$lExmSle_}SWcYHxolb3Fkll6nEZL*1f}C~Q=U+^x*@pT%xUoow_2euuk79|`Bf zp0kjgr@zu=@aFXi_IoNlSH&v$Zz>(%J-g?(eoVUQzo*aFa=C$VI@45c+B7#Lw6zjxK+mbnYo8*wE=f#by zZ5(~VD?y9!jkwzLW!Vb2n_&$W<6zX=jYQ_)O|WBV+Twq0gt~Zod%wIeErC|W0_OW( z2;CEoOdmCL(~Emvusu|bXK~%*joga)Bn#})@}}QV$|NkJjsHa)fikW2$X|0^^M#@y%uC#_ob*{Z2cYq5;PEHxdu_;J5MK%A|=2809Dz*5wE>~8ZZHPa)EWp zER2w)$y-Ukw|&yiF9Y)Bmwags;mHZXyABlbK)uOnb{>yOjvW3 O)=q4g^OJ+S2Y>)FGowWS diff --git a/web/src/components/Link.astro b/web/src/components/Link.astro index 808673e..3bbeaef 100644 --- a/web/src/components/Link.astro +++ b/web/src/components/Link.astro @@ -3,31 +3,37 @@ import type { Link, Page } from 'cms/src/payload-types' import { normalizePath } from '../utils/normalizePath' import Icon from './icons/Icon.astro' -type Props = - // When the data is a Link group from the CMS: - | (Link & { class?: string; uppercase?: boolean }) - - // When the data is a path (e.g. from a breadcrumb): - | { - path: string - style: Link['style'] - class?: string - icon?: Link['icon'] - normalizePath?: boolean - } +type CmsLinkProps = Link & { class?: string; uppercase?: boolean } +type RawLinkProps = { + path: string + style: Link['style'] + class?: string + icon?: Link['icon'] + normalizePath?: boolean +} +type Props = CmsLinkProps | RawLinkProps +/** + * Per redesign §8.1 the system has two button variants (primary, ghost) and + * one in-prose link style (§8.2). The CMS still exposes five legacy `style` + * values; map them to the redesign variants here so authors don't see breakage. + */ export function buttonStyles(style: Link['style']) { switch (style) { + // Primary — filled cobalt button (the page's main conversion CTA) case 'primary': - return 'bg-primary text-neutral-100 hover:bg-primary hover:bg-primaryDark' - case 'text': - return 'text-gray-700 hover:bg-neutral-200' - case 'text-primary': - return 'text-primary hover:bg-neutral-200' + return 'inline-flex items-center gap-2 bg-cobalt-900 text-white hover:bg-cobalt-800 rounded-sm px-5 py-3 font-sans text-sm font-medium ease-standard transition-colors duration-150 no-underline' + + // Ghost — transparent button with hairline border case 'light': - return 'bg-neutral-200 hover:bg-neutral-300 text-gray-700' case 'light-primary': - return 'bg-neutral-200 hover:bg-neutral-300 text-primary' + return 'inline-flex items-center gap-2 border border-hairline-strong text-ink-950 hover:text-orange-600 rounded-sm px-5 py-3 font-sans text-sm font-medium ease-standard transition-colors duration-150 no-underline' + + // In-prose link — underlined, hover turns orange + case 'text': + case 'text-primary': + default: + return 'inline-flex items-center gap-1.5 text-ink-950 hover:text-orange-600 ease-standard underline decoration-hairline-strong hover:decoration-orange-600 underline-offset-4 transition-colors duration-150' } } @@ -45,17 +51,25 @@ if (!rawPath) { const { preview } = Astro.locals.globalState const normalizePathValue = 'normalizePath' in Astro.props ? Astro.props.normalizePath : true const href = normalizePathValue ? normalizePath(rawPath, preview) : rawPath + +const isPrimary = Astro.props.style === 'primary' --- {'label' in Astro.props ? Astro.props.label : } {'icon' in Astro.props && Astro.props.icon && } + { + isPrimary && ( + + ) + } diff --git a/web/src/components/icons/Icon.astro b/web/src/components/icons/Icon.astro index aa75c0b..6808919 100644 --- a/web/src/components/icons/Icon.astro +++ b/web/src/components/icons/Icon.astro @@ -26,10 +26,10 @@ type Props = { | 'chevron-down' | 'chevron-left' | 'building' + class?: string } -const classNames = 'class' in Astro.props && Astro.props.class ? Astro.props.class : undefined -const { name } = Astro.props +const { name, class: classNames } = Astro.props --- { diff --git a/web/src/layout/CornerMark.astro b/web/src/layout/CornerMark.astro new file mode 100644 index 0000000..0ae52ab --- /dev/null +++ b/web/src/layout/CornerMark.astro @@ -0,0 +1,47 @@ +--- +/** + * Technical-drawing corner registration cross. Rendered at the inner corners + * of major content blocks per redesign §7.3 — 14px wide, 1px stroke, + * orange-600. Use sparingly; one set per major block (hero, headline section, + * footer top edge), not sprinkled. + */ +type Position = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' + +type Props = { + position: Position + /** Distance from the corner edges (px). Defaults to -7 so the cross sits centred on the corner. */ + offset?: number +} + +const { position, offset = -7 } = Astro.props + +const positionClasses: Record = { + 'top-left': 'top-0 left-0', + 'top-right': 'top-0 right-0', + 'bottom-left': 'bottom-0 left-0', + 'bottom-right': 'bottom-0 right-0', +} + +const inset = `${offset}px` +--- + + diff --git a/web/src/layout/Footer.astro b/web/src/layout/Footer.astro index 2d60438..1745bf0 100644 --- a/web/src/layout/Footer.astro +++ b/web/src/layout/Footer.astro @@ -1,25 +1,108 @@ --- -import Link from '../components/Link.astro' +import { defaultLocale } from '@/cms/locales' +import { websiteConfig } from '@/config' +import type { Page } from 'cms/src/payload-types' +import Icon from '../components/icons/Icon.astro' +import { normalizePath } from '../utils/normalizePath' +import CornerMark from './CornerMark.astro' -const { footer } = Astro.locals.globalState +const { locale, preview, footer } = Astro.locals.globalState + +const homePagePath = normalizePath(`/${locale ?? defaultLocale}`, preview) + +const socialAccessibleNames: Record = { + github: 'GitHub', + linkedin: 'LinkedIn', + whatsapp: 'WhatsApp', + instagram: 'Instagram', + facebook: 'Facebook', + youtube: 'YouTube', + x: 'X', +} + +// Only some social platforms have rendered icons; the rest fall back to a label. +const iconAvailable = new Set(['github', 'linkedin', 'whatsapp']) --- -