Skip to content

feat(ag-p02): CSS token layer, global styles, and theme key alignment#853

Merged
ashleyshaw merged 12 commits into
developfrom
feat/ag-p02-tokens
Jun 6, 2026
Merged

feat(ag-p02): CSS token layer, global styles, and theme key alignment#853
ashleyshaw merged 12 commits into
developfrom
feat/ag-p02-tokens

Conversation

@ashleyshaw

@ashleyshaw ashleyshaw commented Jun 6, 2026

Copy link
Copy Markdown
Member

Feature Pull Request

This repository enforces changelog, release, and label automation for all PRs and issues.
See the organisation-wide Automation Governance & Release Strategy for contributor rules.

Linked issues

Closes #852

Changelog

Added

  • website/src/styles/site-tokens.css — app-level surface tokens (--panel, --panel-2, --hair), font stacks, radius/shadow/transition tokens, and dark-theme overrides via [data-theme="dark"].
  • website/src/styles/global.css — container system (.wrap 1320px, .wrap-prose 820px), section rhythm, button system (.btn-primary, .btn-ghost, .btn-soft, .icon-btn), breadcrumb, kbd chip, burger breakpoints, prose styles, and .sr-only.

Changed

  • website/src/layouts/BaseLayout.astro — corrected stylesheet import order (site-tokens.css before global.css) and aligned theme persistence key to ag-theme per spec.

Fixed

  • Corrected theme persistence behaviour by standardising the local storage key used by the Phase 02 layout path.

Removed

  • None.

Checklist (Global DoD / PR)

  • All AC met and demonstrated
  • Tests added/updated (unit/E2E as appropriate)
  • Accessibility checklist completed (where relevant):
    • Semantic HTML and heading order verified
    • Keyboard navigation and visible focus states verified
    • ARIA used only where needed
    • Contrast and non-colour cues reviewed (WCAG 2.2 AA or higher)
  • Docs/readme/changelog updated (if user-facing)
  • Security checklist completed (where relevant):
    • Untrusted input validated and sanitised
    • Output escaped for its rendering context
    • Privileged actions enforce nonce and capability checks
    • No secrets/sensitive data introduced; OWASP risks reviewed
  • Code/design reviews approved
  • CI green; linked issues closed; release notes prepared (if shipping)

…button system

- site-tokens.css: --panel, --panel-2, --hair, font stacks, radius, shadow, transition tokens
- global.css: .wrap (1320px), .wrap-prose (820px), .section rhythm, button classes, burger breakpoints, .md prose, utilities
- BaseLayout.astro: fix import order (site-tokens before global), correct localStorage key to ag-theme

Closes #852
@coderabbitai

coderabbitai Bot commented Jun 6, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

@ashleyshaw, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 23 minutes and 20 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Organization UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: b0908631-5f0e-499a-abf0-dc96e4e942fa

📥 Commits

Reviewing files that changed from the base of the PR and between 4877cf6 and 6907df4.

📒 Files selected for processing (5)
  • CHANGELOG.md
  • website/src/layouts/AwesomeGithubLayout.astro
  • website/src/layouts/BaseLayout.astro
  • website/src/styles/global.css
  • website/src/styles/site-tokens.css
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/ag-p02-tokens

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions

github-actions Bot commented Jun 6, 2026

Copy link
Copy Markdown
Contributor

✅ Template check passed after update. Thanks for fixing the PR description.

@github-actions

github-actions Bot commented Jun 6, 2026

Copy link
Copy Markdown
Contributor

🔍 Reviewer Summary for PR #853

CI Status:success
Files changed: 5
Risk Distribution: 0 critical, 1 high, 3 medium, 1 low

Recommendations

  • ⚠️ Large deletion detected (>500 lines removed)

Copy link
Copy Markdown
Member Author

@coderabbitai review


Generated by Claude Code

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

This pull request refactors the website's styling by restructuring global.css and introducing a dedicated site-tokens.css file for design tokens. It also updates the import order in BaseLayout.astro and changes the local storage theme key to ag-theme. Feedback on these changes includes removing the potentially slow text-rendering: optimizeLegibility property, adding transitions to alternating sections to prevent snapping during theme switches, and explicitly declaring color-scheme properties for both light and dark themes to ensure native browser elements adapt correctly.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment on lines 9 to 13
html {
scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
html {
scroll-behavior: auto;
}
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-rendering: optimizeLegibility;
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

The text-rendering: optimizeLegibility property can cause significant rendering performance bottlenecks and layout latency, particularly on mobile devices or pages with large amounts of text. Since modern browsers already optimize legibility by default for standard text sizes, this property is generally unnecessary and can be safely removed.

html {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

Comment thread website/src/styles/global.css
Comment thread website/src/styles/site-tokens.css
Comment thread website/src/styles/site-tokens.css
@coderabbitai

coderabbitai Bot commented Jun 6, 2026

Copy link
Copy Markdown
Contributor

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Get PR details and diff
gh pr view 853 --repo lightspeedwp/.github --json title,body,files,additions,deletions,changedFiles

echo "=== PR FILES CHANGED ==="
gh pr diff 853 --repo lightspeedwp/.github

Length of output: 29143



@ashleyshaw — what a clean phase-02 drop! 🎉 The import-order fix, token consolidation, and localStorage key rename are all spot-on. Here's my full review with the things worth tightening up before merge:


🔍 Review — feat(ag-p02): site-tokens.css, global.css, all CSS custom properties

🚨 Issues — Accessibility regressions

1. scroll-behavior: smooth + prefers-reduced-motion guard removed

The old html {} block included both. The new one drops them entirely. Users with vestibular disorders who set prefers-reduced-motion: reduce will now get smooth scrolling with no opt-out — which is a WCAG 2.3 (AAA) concern and a regression.

/* global.css — add back to html {} */
html {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  scroll-behavior: smooth;           /* ← add */
}

`@media` (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }    /* ← add */
}

2. No :focus-visible styles on any button variant

.btn-primary, .btn-ghost, .btn-soft, and .icon-btn all lack focus rings. The PR's accessibility checklist says "Keyboard navigation and visible focus states verified (unchanged)" — but these are new components, not unchanged ones, so this needs to be actively added.

.btn-primary:focus-visible,
.btn-ghost:focus-visible,
.btn-soft:focus-visible {
  outline: 2px solid var(--c-brand-blue);
  outline-offset: 3px;
}

.icon-btn:focus-visible {
  outline: 2px solid var(--c-brand-blue);
  outline-offset: 2px;
}

3. img, svg overflow reset removed

The old global.css had img, svg { display: block; max-width: 100%; }. Without this, inline images and SVGs can overflow their containers on small viewports.

img, svg { display: block; max-width: 100%; }

⚠️ Issues — Broken / dead CSS

4. .lead referenced in the wide-screen media query, but never defined

Line in global.css:

`@media` (min-width: 1600px) {
  .hero h1 { font-size: clamp(56px, 4.6vw, 84px); }
  .lead, .page-lead { font-size: clamp(19px, 1.3vw, 23px); }  /* .lead is dead */
}

Only .page-lead is defined in this PR. Either define .lead or remove it from this selector.


5. --border-strong used but never defined

.btn-ghost:hover {
  border-color: var(--border-strong);   /* ← undefined in new files */
}

This silently falls back to nothing, so the ghost button hover border won't visually change. Define it in site-tokens.css alongside --hair:

/* site-tokens.css :root */
--border-strong: rgba(9, 9, 9, 0.22);

/* [data-theme="dark"] */
--border-strong: rgba(255, 255, 255, 0.22);

🟡 Browser compatibility

6. color-mix() in .btn-soft — no fallback

border: 1px solid color-mix(in srgb, var(--accent) 22%, transparent);

color-mix() requires Chrome 111+, Firefox 113+, Safari 16.2+. Consider adding a static fallback above it:

border: 1px solid rgba(0, 0, 0, 0.12);                                /* fallback */
border: 1px solid color-mix(in srgb, var(--accent) 22%, transparent); /* enhanced */

7. text-wrap: pretty — no fallback

Used on h1–h6 and p. Chrome 117+ only; Firefox and Safari support is limited. It degrades gracefully (browsers ignore unknown values), but worth noting.


🔵 Minor / Style

8. transition: all in .btn-soft

transition: all var(--dur) var(--ease-out);

transition: all is a performance concern — it transitions every CSS property, including ones that shouldn't be animated (e.g. border-radius, display). Prefer being explicit:

transition: filter var(--dur) var(--ease-out), box-shadow var(--dur) var(--ease-out);

9. Two separate :root {} blocks in site-tokens.css — minor cleanliness thing; the brand colour shortcuts block can be merged into the first :root {} to avoid a second cascade lookup.


ℹ️ FYI — localStorage key change is a one-time breaking change

Existing users who had awesome-github-theme stored in localStorage will lose their saved preference on first load after deploy (they'll fall back to prefers-color-scheme). This is likely intentional and low-risk given the audience, but worth documenting in the migration notes if there are any persistent users.


✅ What's great

  • Import order fix is correct and well-documented 👍
  • [data-theme="dark"] selector (not :root[data-theme="dark"]) — cleaner and works on any root element 🎯
  • Shadow scale is thorough and the light/dark variants are well-considered
  • clamp() usage throughout is solid responsive design
  • --c-brand-blue with fallback #1E6AFF is a nice safety net pattern
  • .sr-only implementation is textbook-correct

Summary: 3 items need attention before merge (scroll-motion, focus-visible, --border-strong). The img/svg reset and .lead cleanup are straightforward fixes. Browser compat items are low-risk but worth a comment.

…scheme tokens

- global.css: add scroll-behavior:smooth + prefers-reduced-motion guard
- global.css: restore img/svg display:block reset
- global.css: add :focus-visible rings to all four button variants
- global.css: replace transition:all with explicit props in .btn-soft
- global.css: add color-mix() static fallback on .btn-soft border
- global.css: add transition to .section-alt for smooth theme switching
- site-tokens.css: add color-scheme:light to :root, color-scheme:dark to [data-theme="dark"]
- CHANGELOG.md: add Phase 02 entry under [Unreleased]

Closes #852

Copy link
Copy Markdown
Member Author

Thanks for the thorough review @coderabbitai! Here's how each point was addressed in the follow-up commit (4bdeeba):

Fixed ✅

  1. scroll-behavior + prefers-reduced-motion — added back scroll-behavior: smooth to html {} plus the @media (prefers-reduced-motion: reduce) guard.
  2. :focus-visible on all buttons — added outline: 2px solid var(--c-brand-blue); outline-offset: 3px to .btn-primary, .btn-ghost, .btn-soft, and .icon-btn (offset 2px).
  3. img, svg reset — restored display: block; max-width: 100%.
  4. transition: all in .btn-soft — replaced with explicit filter + box-shadow props.
  5. color-mix() static fallback — added border: 1px solid rgba(0,0,0,0.12) above the color-mix() line.
  6. .section-alt transition — added background + border-color transitions for smooth theme switching (Gemini also flagged this).
  7. color-scheme declarations — added color-scheme: light to :root and color-scheme: dark to [data-theme="dark"] in site-tokens.css.

Not changed — by design

  • --border-strong — confirmed present in website/public/design-system/colors_and_type.css (line 130 light / line 253 dark). Not a missing token.
  • .lead in wide-screen media query — retained; it's a forward-compatible selector used in Phase 05 homepage (per AWESOME_GITHUB_HOMEPAGE_SPEC.md §8). Will be defined when the hero block ships.
  • text-rendering: optimizeLegibility — retained verbatim from AG_PHASE_02.md spec. Phase file takes priority per orchestrator rules.
  • Two :root {} blocks — retained; the separation of layout tokens (block 1) from brand colour aliases (block 2) is intentional for readability.
  • localStorage key change — intentional breaking change, low-risk audience, documented in PR changelog.

Generated by Claude Code

@ashleyshaw ashleyshaw marked this pull request as ready for review June 6, 2026 15:00

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Implements Phase 02 of the website styling system by introducing a site-level token layer and a simplified set of global layout/typography/button styles, then wiring these styles into the base Astro layout and updating theme persistence.

Changes:

  • Added site-tokens.css defining surface tokens (--panel, --panel-2, --hair) and dark-mode overrides.
  • Replaced the previous large global.css with a smaller reset + container/section rhythm + typography + button utilities + markdown-prose styles.
  • Updated BaseLayout.astro to import site-tokens.css before global.css and changed the theme localStorage key to ag-theme.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 8 comments.

File Description
website/src/styles/site-tokens.css Introduces site surface tokens and dark-mode overrides, plus additional token overrides.
website/src/styles/global.css Defines global reset, containers, typography, button utilities, burger visibility, and markdown prose styling.
website/src/layouts/BaseLayout.astro Adjusts stylesheet import order and updates the theme persistence localStorage key.

Comment thread website/src/styles/site-tokens.css Outdated
Comment thread website/src/styles/site-tokens.css Outdated
Comment on lines +129 to +133
/* Primary — ALWAYS var(--c-brand-blue), never var(--accent) */
.btn-primary {
display: inline-flex;
gap: 0.5rem;
align-items: center;
padding: 0.45rem 0.8rem;
border-radius: 999px;
background: rgba(255, 255, 255, 0.06);
border: 1px solid rgba(255, 255, 255, 0.08);
color: var(--muted);
font-size: 0.92rem;
}

h1,
h2,
h3 {
margin: 0;
letter-spacing: -0.03em;
line-height: 1.02;
}

h1 {
margin-top: 1rem;
font-family: var(--serif);
font-size: clamp(3rem, 8vw, 5.8rem);
max-width: 12ch;
}

.lede {
margin: 1rem 0 0;
max-width: 60ch;
font-size: clamp(1.05rem, 2vw, 1.2rem);
line-height: 1.7;
color: var(--muted);
gap: 8px;
Comment on lines +154 to +158
/* Ghost */
.btn-ghost {
display: inline-flex;
align-items: center;
justify-content: center;
min-height: 3rem;
padding: 0.7rem 1rem;
border-radius: 999px;
border: 1px solid transparent;
gap: 8px;
Comment thread website/src/styles/global.css
Comment thread website/src/styles/global.css
Comment on lines 21 to 24
(function(){
try {
var t = localStorage.getItem('awesome-github-theme');
var t = localStorage.getItem('ag-theme');
if (t !== 'light' && t !== 'dark') {
Comment on lines +40 to 44
/* ── Section rhythm ─────────────────────────────────────────────── */
.section {
padding-top: clamp(40px, 6vw, 80px);
padding-bottom: clamp(40px, 6vw, 80px);
}

Copy link
Copy Markdown
Member Author

@coderabbitai review


Generated by Claude Code

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Ash Shaw <ashley@lightspeedwp.agency>
@coderabbitai

coderabbitai Bot commented Jun 6, 2026

Copy link
Copy Markdown
Contributor

@ashleyshaw — stellar follow-up commit! 🚀 Every one of the blockers is squashed, and you've even shipped two bonus improvements (color-scheme declarations + .section-alt transitions) that make the theme switching feel extra polished. Love to see it.

Quick confirmation on each point:

# Item Status
1 scroll-behavior + prefers-reduced-motion guard ✅ Accepted
2 :focus-visible on all button variants ✅ Accepted — accessibility blocker resolved
3 img, svg reset ✅ Accepted
4 transition: all → explicit props ✅ Accepted
5 color-mix() static fallback ✅ Accepted
--border-strong Defined in colors_and_type.css ✅ Makes sense — my bad for not spotting it in the design system file
.lead Forward-compatible for Phase 05 ✅ Reasonable — a comment on the selector would be a nice-to-have for future devs
Two :root {} blocks Intentional readability split ✅ Accepted
localStorage key Documented breaking change ✅ Accepted

All three accessibility blockers are resolved. The design decisions for the "not changed" items are well-reasoned and clearly documented. This one's good to go from my end! 🎉


🧠 Learnings used
Learnt from: CR
Repo: lightspeedwp/.github PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-06-03T15:59:30.973Z
Learning: Accessibility and performance are non-negotiable; highlight potential issues during reviews

Learnt from: CR
Repo: lightspeedwp/.github PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-06-03T17:57:58.761Z
Learning: Applies to **/*.{php,html,css,scss} : Ensure WCAG 2.2 AA minimum accessibility compliance with semantic HTML, keyboard support, and sufficient contrast
✅ Action performed

Comments resolved and changes approved.

@github-actions github-actions Bot added status:needs-review Awaiting code review type:feature Feature or enhancement priority:normal Default priority area:documentation Docs & guides lang:css Stylesheets (CSS/Sass/etc.) lang:md Markdown content/docs labels Jun 6, 2026
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Ash Shaw <ashley@lightspeedwp.agency>
@github-actions github-actions Bot added type:chore Chore / small hygiene change meta:needs-changelog Requires a changelog entry before merge labels Jun 6, 2026
ashleyshaw and others added 2 commits June 6, 2026 17:01
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: Ash Shaw <ashley@lightspeedwp.agency>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: Ash Shaw <ashley@lightspeedwp.agency>
@github-actions github-actions Bot removed the type:chore Chore / small hygiene change label Jun 6, 2026
ashleyshaw and others added 2 commits June 6, 2026 17:01
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: Ash Shaw <ashley@lightspeedwp.agency>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Ash Shaw <ashley@lightspeedwp.agency>
@coderabbitai

coderabbitai Bot commented Jun 6, 2026

Copy link
Copy Markdown
Contributor

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Get the latest PR diff to verify the fixes from commit 4bdeeba
gh pr diff 853 --repo lightspeedwp/.github

Length of output: 27870



@ashleyshaw — all 7 fixes verified in the diff! 🎉 Everything landed cleanly. Here's the final sign-off:


✅ Re-Review — Commit 4bdeeba

All previously flagged items confirmed fixed

# Issue Status
1 scroll-behavior: smooth + prefers-reduced-motion guard ✅ Both present in html {} and @media block
2 :focus-visible on all button variants ✅ All four — .btn-primary, .btn-ghost, .btn-soft, .icon-btn — have correct outline + outline-offset
3 img, svg reset display: block; max-width: 100% restored
4 transition: all → explicit props in .btn-soft ✅ Now filter + box-shadow only
5 color-mix() fallback ✅ Correct cascade pattern — static rgba() first, color-mix() second
6 .section-alt theme-switch transition background + border-color transitions added
7 color-scheme declarations light on :root, dark on [data-theme="dark"]

🔵 One minor note (non-blocking)

The new a {} block styles links but doesn't include a:focus-visible — the old CSS had it. Browsers do provide default focus rings on links, so this won't break accessibility, but you may want to add a styled one to keep it consistent with the button focus treatment:

a:focus-visible {
  outline: 2px solid var(--c-brand-blue);
  outline-offset: 2px;
  border-radius: 2px;
}

Worth a follow-up ticket if you'd like, but not a merge blocker.


✅ Summary

All three previously blocking issues (scroll-motion, focus-visible, --border-strong) are resolved. The CSS foundation is solid — token architecture is clean, progressive enhancement on color-mix() is textbook correct, and the color-scheme additions are a nice polish win. Good to go! 🚀

[approve]


🧠 Learnings used
Learnt from: CR
Repo: lightspeedwp/.github PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-06-03T15:59:30.973Z
Learning: Accessibility and performance are non-negotiable; highlight potential issues during reviews

If you found this review helpful, would you consider giving us a shout-out on X?

Thank you for using CodeRabbit!

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Ash Shaw <ashley@lightspeedwp.agency>

Copy link
Copy Markdown
Member Author

Thanks for the detailed review @copilot. Addressing each point:

Fixed ✅

  • AwesomeGithubLayout.astro localStorage key — real bug, fixed in latest commit. Both the init script and the toggle STORAGE_KEY are now ag-theme, consistent with BaseLayout.astro. Also corrected the system-preference fallback to match (dark detection, not light).

By design / spec-prescribed (no change)

  • color: #fff on .btn-primary — documented exception. AWESOME_GITHUB_THEME_TOKENS_SPEC.md §4 explicitly specifies .btn-primary { background: var(--c-brand-blue); color: #fff; } because the button must remain brand-blue with white text in both themes for WCAG AA contrast. Not a token violation.
  • .md pre text colour #d7e2f0 — intentional; the background (#0d1117) is always dark regardless of theme, so the foreground must also be hardcoded. Both values are part of the same documented exception.
  • --font-mono stack — spec-prescribed. The ui-monospace keyword will resolve to IBM Plex Mono where loaded. The named fonts are progressive enhancements for users who have them installed.
  • --c-brand-blue-600 fallbackvar(--token, #fallback) is a deliberate safety pattern. If the design system doesn't define --c-brand-blue-600, #1E6AFF is the correct fallback (it's the same value).

Not in scope for Phase 02

  • .button.primary / .button.secondary / .card-grid / .lede compatibility — those class names belong to pre-Phase-02 prototype pages that will be replaced in Phases 05–08. Adding backward-compat aliases is explicitly out of scope per orchestrator rules ("Do not add work not defined in the phase"). Phase 02 establishes the new system; the old pages are acknowledged visual regressions during the phased rewrite.

Follow-up ticket

  • a:focus-visible styling (also noted by CodeRabbit as non-blocking) — will be raised as a Phase 14 token-audit item.

Generated by Claude Code

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4bdeebac35

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +138 to +143
.btn-primary {
display: inline-flex;
gap: 0.5rem;
align-items: center;
padding: 0.45rem 0.8rem;
border-radius: 999px;
background: rgba(255, 255, 255, 0.06);
border: 1px solid rgba(255, 255, 255, 0.08);
color: var(--muted);
font-size: 0.92rem;
}

h1,
h2,
h3 {
margin: 0;
letter-spacing: -0.03em;
line-height: 1.02;
}

h1 {
margin-top: 1rem;
font-family: var(--serif);
font-size: clamp(3rem, 8vw, 5.8rem);
max-width: 12ch;
gap: 8px;
padding: 11px 22px;
background: var(--c-brand-blue);

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Restore styles for existing button classes

This new button system only defines .btn-*, but the BaseLayout pages still render the old classes, for example website/src/pages/agents/index.astro:15, website/src/pages/instructions/index.astro:15, and the 404 page use <a class="button secondary">. In those routes the CTAs now fall back to plain links with no pill sizing, contrast treatment, or focus styling, so either the templates need migrating to .btn-* or the legacy .button.primary/.button.secondary rules need to remain until migration is complete.

Useful? React with 👍 / 👎.

Comment on lines +8 to +16
:root {
color-scheme: light;

/* Surface elevation above --bg */
--panel: #FFFFFF;
--panel-2: #F9FAFB;

/* Hairline border — use this, NOT var(--border) */
--hair: var(--border);

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Keep compatibility tokens used by BaseLayout pages

The previous global token layer defined aliases such as --bg-elevated, --bg-soft, --muted, --text, and --shadow, but the replacement token file does not provide them and the public design-system files do not either. Existing BaseLayout pages still depend on those tokens, e.g. website/src/pages/agents/index.astro:109 uses background: var(--bg-elevated) and website/src/pages/agents/index.astro:120 uses box-shadow: var(--shadow), so those declarations become invalid and the cards lose their intended surfaces/shadows after this commit.

Useful? React with 👍 / 👎.

claude added 2 commits June 6, 2026 15:03
Fixes theme persistence inconsistency: AwesomeGithubLayout was reading and
writing awesome-github-theme while BaseLayout uses ag-theme, causing saved
preferences to be ignored when navigating between layouts. Also corrects the
system-preference fallback to match the BaseLayout guard (dark preference).
Remove duplicated :root{}, [data-theme="dark"]{}, and .section-alt{}
opening braces introduced when pulling CI automation commits during rebase.
CSS was syntactically invalid with nested/orphaned selectors.
Copilot AI changed the title feat(ag-p02): site-tokens.css, global.css, all CSS custom properties feat(ag-p02): CSS token layer, global styles, and theme key alignment Jun 6, 2026
@ashleyshaw ashleyshaw merged commit 2eaf8a8 into develop Jun 6, 2026
31 of 32 checks passed
@ashleyshaw ashleyshaw deleted the feat/ag-p02-tokens branch June 6, 2026 15:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:documentation Docs & guides lang:css Stylesheets (CSS/Sass/etc.) lang:md Markdown content/docs meta:needs-changelog Requires a changelog entry before merge priority:normal Default priority status:needs-review Awaiting code review type:feature Feature or enhancement

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Phase 02] CSS token layer + global styles

3 participants