Skip to content
Open
Show file tree
Hide file tree
Changes from 84 commits
Commits
Show all changes
98 commits
Select commit Hold shift + click to select a range
48c3677
feat(tokens): add calm-mode spacing, card-muted, pill, eyebrow tokens
FlorianBruniaux May 9, 2026
c394220
feat(styles): add .section-calm, .card-muted, .pill-neutral, .eyebrow…
FlorianBruniaux May 9, 2026
eb9ce4c
feat(hero): compress stats, collapse SEO paragraph into details toggle
FlorianBruniaux May 9, 2026
d30e7eb
feat(landing): add CompatibilityStrip — 'Works with' AI tool pill row
FlorianBruniaux May 9, 2026
1f935db
feat(landing): add Capabilities section — Context Forge suite frame (…
FlorianBruniaux May 9, 2026
b6e04ab
feat(landing): wire CompatibilityStrip + Capabilities into landing se…
FlorianBruniaux May 9, 2026
75c8f51
refactor(problem): neutral cards, colored evidence in terminal blocks…
FlorianBruniaux May 9, 2026
bd3c081
feat(landing): add Eyebrow component, wire into Problem/Install/CTA/C…
FlorianBruniaux May 9, 2026
c716891
refactor(cta): viewport-height section, gradient headline, viking bac…
FlorianBruniaux May 9, 2026
178c90e
feat(install): persona tabs for Claude Code / Cursor / Other AI CLI
FlorianBruniaux May 9, 2026
dde04da
feat(whitespace): section padding 80px → 144px (--space-13)
FlorianBruniaux May 11, 2026
ab614e6
feat(i18n): add translations for Capabilities and Install persona tabs
FlorianBruniaux May 11, 2026
762ced0
fix(ci): fail build when docs source is missing in CI
FlorianBruniaux May 12, 2026
65a2f0b
perf: remove 380KB orphaned PNG screenshots (WebP versions are used)
FlorianBruniaux May 12, 2026
2da42ee
perf(icm): convert hero image to WebP + fetchpriority (LCP improvement)
FlorianBruniaux May 12, 2026
91da93f
perf: add fetchpriority=high + decoding=async on hero image
FlorianBruniaux May 12, 2026
226473e
fix(a11y): sync <html lang> attribute with language switcher
FlorianBruniaux May 12, 2026
f1dfc51
fix(a11y): add aria-label to main nav
FlorianBruniaux May 12, 2026
fdb64fd
ux: remove unsourced 'Starred by' carousel
FlorianBruniaux May 12, 2026
c9648c2
fix(a11y): slideshow pause/play + respect prefers-reduced-motion (WCA…
FlorianBruniaux May 12, 2026
4ba05d7
fix(a11y): touch targets minimum 44x44px on nav-icon-btn, copy-btn, l…
FlorianBruniaux May 12, 2026
4824061
perf: replace transition:all with targeted properties in landing.css …
FlorianBruniaux May 12, 2026
b7eb725
fix(tokens): replace hardcoded hex with CSS custom properties in docs…
FlorianBruniaux May 12, 2026
a36d45e
ux: use global SiteFooter on /vox/ and /icm/ for cross-product nav
FlorianBruniaux May 12, 2026
6cfe48f
copy: shorten hero-context + remove em dashes (anti-AI markers)
FlorianBruniaux May 12, 2026
c3c18d1
docs: sync CLAUDE.md — SiteHeader replaces Nav.astro/ProductNav.astro
FlorianBruniaux May 12, 2026
c98690a
chore: remove Tailwind — zero utility classes used, pure CSS design s…
FlorianBruniaux May 12, 2026
a0bef34
refactor(css): scope Hero styles into component
FlorianBruniaux May 12, 2026
acb9d89
refactor(css): scope Nav/Header styles into SiteHeader component
FlorianBruniaux May 12, 2026
54912c7
refactor(css): scope Install styles into component
FlorianBruniaux May 12, 2026
72d28c1
refactor(css): scope Problem styles into component
FlorianBruniaux May 12, 2026
cb86c3d
refactor(css): scope ToolComparison styles into component
FlorianBruniaux May 12, 2026
f99dc59
refactor(css): scope DemoSlideshow styles into component
FlorianBruniaux May 12, 2026
0044b10
refactor(css): scope Proof styles into component
FlorianBruniaux May 12, 2026
47a8a5a
refactor(css): scope ShareGain styles into component
FlorianBruniaux May 12, 2026
668aa41
refactor(css): scope CloudWaitlist styles into component
FlorianBruniaux May 12, 2026
d383aa4
refactor(css): scope Cta styles into component
FlorianBruniaux May 12, 2026
9a982b0
refactor(css): scope Footer styles into component
FlorianBruniaux May 12, 2026
7911333
feat(layout): create ProductLayout.astro shared shell for product pages
FlorianBruniaux May 12, 2026
c9075c4
refactor(vox): migrate to ProductLayout + @graph JSON-LD schema
FlorianBruniaux May 12, 2026
909cc98
refactor(icm): migrate to ProductLayout + @graph JSON-LD schema
FlorianBruniaux May 12, 2026
3cf271a
fix(ci): allow pinning RTK docs to a specific tag via RTK_DOCS_REF
FlorianBruniaux May 12, 2026
f28333a
feat(i18n): add missing UI/aria keys to translations (S5-B1)
FlorianBruniaux May 12, 2026
fae5964
feat(i18n): add i18n helper, Astro i18n config, sitemap integration (…
FlorianBruniaux May 12, 2026
74a2de3
refactor(pages): extract shared page templates for i18n routing (S5-B3)
FlorianBruniaux May 12, 2026
b78ea7e
feat(i18n): migrate landing components to server-side t() (S5-B4)
FlorianBruniaux May 12, 2026
4f4de33
feat(i18n): add [locale] catch-all routes for 5 non-EN locales (S5-B5)
FlorianBruniaux May 12, 2026
784b5b3
feat(i18n): rewrite lang switcher to nav links, add hreflang to Layou…
FlorianBruniaux May 12, 2026
3bab995
feat(i18n): remove I18nScript, complete server-side i18n migration (S…
FlorianBruniaux May 12, 2026
d5f0859
merge: integrate master (team page, OG images, Footer) — keep HEAD i1…
FlorianBruniaux May 12, 2026
0da36b5
feat(landing): split landing into focused sub-pages (/savings, /vs, /…
FlorianBruniaux May 9, 2026
a7e35d8
fix(nav): add /cloud/ link to landing nav (desktop + mobile drawer)
FlorianBruniaux May 9, 2026
fbf3a98
fix(cloud): add initReveal() + nav Option B cleanup
FlorianBruniaux May 9, 2026
02256fa
fix(nav): lang dropdown vertical layout
FlorianBruniaux May 9, 2026
c82a904
fix(footer): fix dead links + add new sub-pages
FlorianBruniaux May 9, 2026
9191203
seo: add JSON-LD breadcrumbs, fix dates, and enrich sub-page schemas
FlorianBruniaux May 11, 2026
60c29bf
seo: fix OG image, datePublished, and add BreadcrumbList to /vox/
FlorianBruniaux May 11, 2026
902caaa
seo: dedicated OG images, BreadcrumbLists, SpeakableSpec, real dates
FlorianBruniaux May 11, 2026
c859c04
merge: integrate feat/landing-split-nav-seo — globe dropdown, /vs/, /…
FlorianBruniaux May 12, 2026
79b185c
fix(subpages): replace scoped .hero/.hero-sub/.hero-cta with standalo…
FlorianBruniaux May 12, 2026
da18d15
feat(nav): add 'soon' badge to Cloud nav link
FlorianBruniaux May 12, 2026
3a01668
feat(preview): add identity sandbox for Phase 0.5 visual approval
FlorianBruniaux May 12, 2026
0bf8a0a
feat(identity): palette B tokens, kill reveal + gradient decorations
FlorianBruniaux May 12, 2026
264e76e
style(landing): left-align sections, add .section-num, tighten padding
FlorianBruniaux May 12, 2026
0acb895
feat(landing): remove Capabilities, Proof, ToolComparison, CloudWaitl…
FlorianBruniaux May 12, 2026
c4dd243
feat(problem): section 01 — left-align, section-num, remove icon blobs
FlorianBruniaux May 12, 2026
710fc8d
fix(problem): remove dead .metric CSS and redundant tablet breakpoint
FlorianBruniaux May 12, 2026
90cf58e
feat(demo): section 02 — 4 slides, no autoplay, section-num, left-align
FlorianBruniaux May 12, 2026
2fbd260
fix(slideshow): remove unused reducedMotion variable
FlorianBruniaux May 12, 2026
fbf0221
fix(demo): update stale comment, move pause button inline styles to CSS
FlorianBruniaux May 12, 2026
df00eaa
feat(install): section 03 — section-num, remove Eyebrow, set bg-card
FlorianBruniaux May 12, 2026
fb96bd2
fix(cta): remove Eyebrow, dead viking CSS, fix headline weight + accent
FlorianBruniaux May 12, 2026
3db99fb
chore: delete /preview route and reveal.ts
FlorianBruniaux May 12, 2026
b09c2fc
feat(landing): finalize layout redesign — left-align, section numbers…
FlorianBruniaux May 12, 2026
47c1eb7
style: switch to palette A — Zinc neutre
FlorianBruniaux May 12, 2026
ce29643
feat(cloud): editorial redesign — left-align, remove gradient card, z…
FlorianBruniaux May 12, 2026
a992db5
fix(cloud): remove ShareGain — belongs on /savings/
FlorianBruniaux May 12, 2026
acb525f
feat(identity): left-align subpages, fix Zinc palette on docs/components
FlorianBruniaux May 12, 2026
97e0d08
feat(nav): add Savings + Compare links, remove Tools anchor
FlorianBruniaux May 12, 2026
a48255a
fix(docs): force dark mode + replace Slate hex in Header
FlorianBruniaux May 12, 2026
ecc2b19
feat(faq): move FAQ to /faq/ dedicated page
FlorianBruniaux May 12, 2026
1db64a8
fix(nav): add divider between FAQ and Cloud
FlorianBruniaux May 12, 2026
b0da24a
fix(copy): text audit — typos, consistency, tone, stale links
FlorianBruniaux May 12, 2026
0a03765
seo: fix theme-color, speakable selectors, llms.txt /guide/ → /docs/
FlorianBruniaux May 12, 2026
f0dd598
feat: Sprint 5 — Astro native i18n, sub-pages, nav redesign (#12)
FlorianBruniaux May 13, 2026
52efda1
feat(identity): redesign-v2 squashed — Zinc palette, editorial layout…
FlorianBruniaux May 13, 2026
5bb92e0
fix(rebase): resolve stash pop conflicts — section nums, HN stat, Lay…
FlorianBruniaux May 13, 2026
b952e29
restore(identity): bring back redesign-v2 — editorial layout, no viki…
FlorianBruniaux May 13, 2026
dc46875
fix(landing): remove broken viking image references from section comp…
FlorianBruniaux May 13, 2026
769eb1d
seo: fix FAQPage mainEntity, SpeakableSpecification selectors, and ll…
FlorianBruniaux May 13, 2026
91b7b1f
seo: fix all audit issues — descriptions, schemas, OG images
FlorianBruniaux May 13, 2026
1d2bd11
style: replace prose em dashes with commas, colons, and periods acros…
FlorianBruniaux May 13, 2026
48fcb2b
style: switch palette to GitHub Dark (C) + fix cloud page
FlorianBruniaux May 13, 2026
3eb2fa1
fix(docs): unify header — docs pages now use SiteHeader.astro
FlorianBruniaux May 13, 2026
1ed47ba
assets: update og-image.png
FlorianBruniaux May 13, 2026
e61a671
Merge remote-tracking branch 'origin/feat/identity-redesign-v2' into …
FlorianBruniaux May 13, 2026
7ecdc66
fix(merge): apply GitHub Dark palette + em dash fixes + docs header w…
FlorianBruniaux May 13, 2026
a58c259
style: switch to palette B — Slate dark (#0a0f1c)
FlorianBruniaux May 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .claude/CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -102,11 +102,11 @@ CI clones `rtk/main` at `./rtk-repo`. Once `feat-refac-doc` is merged into main,

| Page type | Nav component |
|-----------|--------------|
| Landing (`/`) | `src/components/landing/Nav.astro` |
| Product pages (`/vox/`, `/icm/`) | `src/components/landing/ProductNav.astro` |
| Landing (`/`) | `src/components/global/SiteHeader.astro` (variant="landing") |
| Product pages (`/vox/`, `/icm/`) | `src/components/global/SiteHeader.astro` (variant="product") |
| Docs (`/guide/**`) | `src/components/global/Header.astro` (via Starlight override) |

Anchor links in Nav.astro use absolute paths (`/#problem`, `/#install`) so they work from any page.
Anchor links in SiteHeader.astro use absolute paths (`/#problem`, `/#install`) so they work from any page.

## Workflow before push to main

Expand Down
125 changes: 125 additions & 0 deletions .claude/commands/review.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
---
name: review
description: Code review for rtk-ldp — Astro components, CSS token compliance, design system rules, generated file integrity, and build correctness.
---

Run a thorough code review of the current changes against the RTK Landing standards.

## Step 1 — Diff scope

```bash
git diff --name-only HEAD
git diff HEAD --stat
```

If no staged/unstaged changes, review the last commit: `git diff HEAD~1 HEAD --name-only`.

## Step 2 — Read changed files

Read every changed `.astro`, `.css`, `.ts`, `.mjs`, `.md` file in full before issuing findings.

## Step 3 — Checklist

### 3a. CSS Token Compliance (BLOCKER)

Check every changed `.astro` and `.css` file:

- No inline `color:`, `background:`, `border-color:`, `fill:` using raw hex values that match a design token
- Tokens to enforce (source: `src/styles/global.css`):
- `--bg: #060b18`, `--bg-alt: #0c1225`, `--bg-card: #0f1629`
- `--text: #e2e8f0`, `--text-muted: #8294ab`, `--text-dim: #64748b`
- `--accent: #00e599`, `--cyan: #38bdf8`, `--violet: #a78bfa`, `--border: #1a2344`
- No duplicate token declarations in `src/styles/landing.css` (tokens defined in `global.css` must not be redefined)
- New color values must be added to `global.css` as tokens, not hardcoded

### 3b. Generated Files Integrity

These files must NEVER be manually edited:

| File | Generator |
| --------------------------------- | -------------------------------- |
| `src/content/docs/guide/**` | `scripts/prepare-docs.mjs` |
| `src/data/docs-search-entries.ts` | `scripts/build-search-index.mjs` |
| `src/data/docs-anchor-map.json` | `scripts/prepare-docs.mjs` |

Flag any manual edits to these files.

### 3c. Source of Truth Compliance

| Data | Must be in | Never in |
| ---------------- | ------------------------------------------------------------------ | ------------------------- |
| RSS entries | `src/data/rss-entries.ts` | `src/pages/rss.xml.ts` |
| Nav anchor links | `Nav.astro` / `ProductNav.astro` with absolute paths (`/#section`) | Inline in pages |
| Docs content | `rtk/docs/guide/` (external repo) | `src/content/docs/guide/` |

### 3d. Astro Component Quality

- No inline styles for anything covered by a design token
- Component props typed with TypeScript interfaces
- No `<style>` blocks using magic hex values
- Imports cleaned up (no unused imports)
- No hardcoded URLs in components — use constants or config

### 3e. Nav Architecture

- Landing (`/`): uses `Nav.astro`
- Product pages (`/vox/`, `/icm/`): uses `ProductNav.astro`
- Docs (`/guide/**`): uses `Header.astro` via Starlight override

Anchor links must use absolute paths (`/#problem`, not `#problem`) so they work from any page.

### 3f. Build Readiness

If `.astro`, `.ts`, or `.mjs` files were changed, run:

```bash
rtk pnpm build 2>&1 | head -80
```

Report: pass/fail, error count, pages generated.

## Step 4 — Report

```
## Code Review — RTK Landing

**Files reviewed**: [list]
**Date**: [YYYY-MM-DD]

### Blockers
[BLOCKER] file.astro:42 — Hardcoded `#00e599` — use `var(--accent)` instead
...

### Warnings
[WARN] landing.css:15 — Duplicates `--text` token already in global.css
...

### Token violations
| File | Line | Value | Token to use |
|------|------|-------|-------------|
| ... | ... | ... | ... |

### Generated files
[OK] No manual edits detected
or
[BLOCKER] src/content/docs/guide/commands.md edited manually — regenerate via prepare-docs.mjs

### Build
[PASS] 12 pages generated, 0 errors
or
[FAIL] Build errors: [list]

### Summary
- Blockers: X
- Warnings: Y
- Token violations: Z
- Build: PASS/FAIL

Verdict: [READY / NEEDS FIXES]
```

## Post-review

If blockers exist: do not proceed until fixed.
If only warnings: propose fixes and let user decide.
If READY: suggest `pnpm build && git push` (never run push automatically).
94 changes: 94 additions & 0 deletions .claude/palettes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# RTK Landing — Palette options (Identity Redesign v2)

Évaluées en Phase 0.5 via `/preview`. Switcher interactif A/B/C/D.
Accent vert `#00e599` commun à toutes les options.

---

## Option B — Slate dark

Garde la teinte bleue-navale du site actuel, beaucoup plus sombre.
Continuité visuelle avec l'existant, identité "nuit profonde".

```css
--bg: #0a0f1c;
--bg-alt: #0d1322;
--bg-card: #0f1625;
--bg-card-hover: #141c30;
--bg-elevated: #1a2540;
--bg-glass: rgba(10, 15, 28, 0.82);
--border: #1e2a45;
--border-light: #243258;
--text: #e8edf5;
--text-bright: #f8fafc;
--text-muted: #94a3b8;
--text-dim: #64748b;
```

Contraste vérifié sur `#0a0f1c` :
- `--text #e8edf5` → ~14.5:1 AAA
- `--text-muted #94a3b8` → ~6.2:1 AAA
- `--text-dim #64748b` → ~4.6:1 AA ✓

---

## ✅ Option A — Zinc (neutre pur) (RETENUE)

Référence LeanCTX / Linear / Vercel. Sans teinte de couleur.

```css
--bg: #09090b;
--bg-alt: #0c0c0e;
--bg-card: #121215;
--bg-card-hover: #18181b;
--bg-elevated: #1f1f23;
--bg-glass: rgba(9, 9, 11, 0.80);
--border: #1f1f23;
--border-light: #2a2a2e;
--text: #f4f4f5;
--text-bright: #ffffff;
--text-muted: #a1a1aa;
--text-dim: #86868e;
```

---

## Option C — GitHub Dark

Palette exacte de GitHub. Familière pour les devs, légère teinte bleu-grise.

```css
--bg: #0d1117;
--bg-alt: #10161e;
--bg-card: #161b22;
--bg-card-hover: #1c2330;
--bg-elevated: #21262d;
--bg-glass: rgba(13, 17, 23, 0.82);
--border: #30363d;
--border-light: #3d444d;
--text: #e6edf3;
--text-bright: #f0f6fc;
--text-muted: #8b949e;
--text-dim: #6e7681;
```

---

## Option D — Stone (warm)

Légère teinte warm/brun. Distinctif, mais moins standard dans l'écosystème dev.

```css
--bg: #0c0a09;
--bg-alt: #110f0d;
--bg-card: #1c1917;
--bg-card-hover: #231f1d;
--bg-elevated: #292524;
--bg-glass: rgba(12, 10, 9, 0.82);
--border: #292524;
--border-light: #3d3734;
--text: #f5f0ee;
--text-bright: #fafaf9;
--text-muted: #a8a29e;
--text-dim: #78716c;
```
Loading