feat(ag-p01): Astro project scaffold, BaseLayout, fonts, design-system import#851
Conversation
|
✅ Template check passed after update. Thanks for fixing the PR description. |
|
Warning Review limit reached
More reviews will be available in 46 minutes and 10 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 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 configurationConfiguration used: Repository YAML (base), Organization UI (inherited) Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (7)
📒 Files selected for processing (31)
📝 WalkthroughWalkthroughThis PR completes Phase 01 of the website scaffold, establishing a design-system-driven Astro project structure. The config is updated for GitHub Pages, comprehensive design-system tokens and typography are introduced, BaseLayout is rebuilt as a minimal theme-aware wrapper, and old component-heavy pages are removed in favour of a static scaffold approach. ChangesPhase 01 Website Scaffold
Sequence Diagram(s)sequenceDiagram
participant Browser
participant BaseLayout
participant ThemeGuard
participant localStorage
participant prefersColorScheme
Browser->>BaseLayout: Render page
BaseLayout->>ThemeGuard: Execute theme-init IIFE
ThemeGuard->>localStorage: Check stored theme
alt Theme found in localStorage
ThemeGuard->>ThemeGuard: Use stored theme
else No stored theme
ThemeGuard->>prefersColorScheme: Check system preference
ThemeGuard->>ThemeGuard: Use system preference
end
ThemeGuard->>BaseLayout: Set data-theme on document
BaseLayout->>Browser: Render slot with theme applied
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Suggested labels
Suggested reviewers
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
🔍 Reviewer Summary for PR #851CI Status: ❌ Recommendations
|
There was a problem hiding this comment.
Code Review
This pull request refactors the website's layout and introduces a new design system, including CSS tokens and updated assets, while scaffolding the home page. The review feedback highlights several critical issues: a CSS standard violation where an '@import' rule is placed incorrectly, a missing 'is:inline' directive on the theme guard script that could cause a flash of unstyled content, an overreaching universal focus-visible border-radius style, a mismatch in the 'localStorage' theme keys across layouts, and an unnecessary downgrade of Svelte from version 5 to 4.
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.
| @font-face { | ||
| font-family: "Inter"; | ||
| src: url("fonts/Inter-VariableFont_opsz_wght.woff2") format("woff2-variations"), | ||
| url("fonts/Inter-VariableFont_opsz_wght.woff2") format("woff2"); | ||
| font-weight: 100 900; | ||
| font-style: normal; | ||
| font-display: swap; | ||
| } | ||
| @font-face { | ||
| font-family: "Manrope"; | ||
| src: url("fonts/Manrope-VariableFont_wght.woff2") format("woff2-variations"), | ||
| url("fonts/Manrope-VariableFont_wght.woff2") format("woff2"); | ||
| font-weight: 200 800; | ||
| font-style: normal; | ||
| font-display: swap; | ||
| } | ||
| @import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Lora:ital,wght@0,400;0,500;1,400;1,500&display=swap'); |
There was a problem hiding this comment.
According to the CSS specification, @import rules must precede all other types of rules in a style sheet (except @charset or @layer). Placing the Google Fonts @import statement after the @font-face rules violates this standard, causing compliant browsers to ignore the import entirely. This means the IBM Plex Mono and Lora fonts will fail to load.
Moving the @import statement to the very top of the file resolves this issue.
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Lora:ital,wght@0,400;0,500;1,400;1,500&display=swap');\n\n@font-face {\n font-family: \"Inter\";\n src: url(\"fonts/Inter-VariableFont_opsz_wght.woff2\") format(\"woff2-variations\"),\n url(\"fonts/Inter-VariableFont_opsz_wght.woff2\") format(\"woff2\");\n font-weight: 100 900;\n font-style: normal;\n font-display: swap;\n}\n@font-face {\n font-family: \"Manrope\";\n src: url(\"fonts/Manrope-VariableFont_wght.woff2\") format(\"woff2-variations\"),\n url(\"fonts/Manrope-VariableFont_wght.woff2\") format(\"woff2\");\n font-weight: 200 800;\n font-style: normal;\n font-display: swap;\n}| <html lang="en" data-theme="light"> | ||
| <head> | ||
| <!-- MANDATORY: theme guard MUST be first script, before any stylesheet --> | ||
| <script> |
There was a problem hiding this comment.
The theme guard script is missing the is:inline directive. By default, Astro processes, bundles, and defers <script> tags. For a theme guard script to effectively prevent a flash of unstyled content (FOUC), it must execute synchronously and inline before any stylesheets or HTML elements are rendered. Adding is:inline ensures Astro leaves the script as-is in the final HTML.
<script is:inline>
| *:focus-visible { | ||
| outline: 2px solid var(--border-focus); | ||
| outline-offset: 2px; | ||
| border-radius: 4px; | ||
| } |
There was a problem hiding this comment.
Applying border-radius: 4px; to the universal selector *:focus-visible is highly problematic. Because * matches every element, this rule will force a 4px border-radius on any focused element, overriding custom shapes (such as pill-shaped buttons with --radius-pill or circular avatars). This causes jarring layout shifts and visual glitches when elements receive focus.
It is recommended to remove border-radius from the universal focus-visible style and let elements retain their natural shapes.
*:focus-visible {\n outline: 2px solid var(--border-focus);\n outline-offset: 2px;\n}| localStorage.setItem(storageKey, next); | ||
| } catch (_) { | ||
| /* ignore storage errors */ | ||
| var t = localStorage.getItem('ag-theme'); |
There was a problem hiding this comment.
There is a mismatch in the localStorage key used for theme persistence. BaseLayout.astro uses 'ag-theme', while AwesomeGithubLayout.astro uses 'awesome-github-theme'. This inconsistency will prevent the user's theme preference from persisting when navigating between pages that use different layouts. Using a consistent key like 'awesome-github-theme' across all layouts resolves this.
var t = localStorage.getItem('awesome-github-theme');
| "@astrojs/svelte": "^5.1.0", | ||
| "@phosphor-icons/core": "^2.1.1", | ||
| "astro": "^5.11.0", | ||
| "gray-matter": "^4.0.3", | ||
| "svelte": "^5.0.0" | ||
| "svelte": "^4.2.0" |
There was a problem hiding this comment.
Svelte has been downgraded from ^5.0.0 to ^4.2.0 (and @astrojs/svelte from ^5.7.3 to ^5.1.0). Svelte 5 is the current stable major version and offers significant performance and reactivity improvements (such as runes). Unless there is a specific blocking issue, it is highly recommended to keep Svelte 5 to ensure the project remains modern and future-proof.
| "@astrojs/svelte": "^5.1.0", | |
| "@phosphor-icons/core": "^2.1.1", | |
| "astro": "^5.11.0", | |
| "gray-matter": "^4.0.3", | |
| "svelte": "^5.0.0" | |
| "svelte": "^4.2.0" | |
| \"@astrojs/svelte\": \"^5.7.3\",\n \"@phosphor-icons/core\": \"^2.1.1\",\n \"astro\": \"^5.11.0\",\n \"gray-matter\": \"^4.0.3\",\n \"svelte\": \"^5.0.0\" |
There was a problem hiding this comment.
Pull request overview
This PR moves the website/ Astro app into a Phase 01 “scaffold” state by simplifying the home page, introducing a new minimal BaseLayout, and wiring in design-system token CSS plus sitemap generation for GitHub Pages deployment under /awesome-github/.
Changes:
- Added a minimal
BaseLayout.astrowith a theme-init guard and design-system CSS imports; added asite-tokens.cssstub for Phase 02. - Updated Astro configuration for static builds with a GitHub Pages base path and
_assetsoutput directory; added@astrojs/sitemap. - Removed the existing
/talk/*pages and slideshow routes; disabled Svelte components related to the talk/slideshow.
Reviewed changes
Copilot reviewed 15 out of 24 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| website/src/styles/site-tokens.css | Adds Phase 02 placeholder for site-specific token overrides. |
| website/src/pages/talk/slideshow/index.astro | Removes talk slideshow page route. |
| website/src/pages/talk/slides/index.astro | Removes talk “all slides” index route. |
| website/src/pages/talk/slides/[slug].astro | Removes per-slide static route and related content logic. |
| website/src/pages/talk/index.astro | Removes talk landing page route. |
| website/src/pages/slideshow.astro | Removes standalone slideshow viewer route. |
| website/src/pages/index.astro | Replaces the existing homepage with a Phase 01 placeholder using BaseLayout. |
| website/src/layouts/BaseLayout.astro | Replaces the prior full shell layout with a minimal layout + theme guard + design-system CSS. |
| website/src/layouts/AwesomeGithubLayout.astro | Removes Svelte SearchPalette import/render from the main layout. |
| website/src/components/AwesomeGithub/.SearchPalette.svelte.disabled | Further disables the search palette component (drops TS typing). |
| website/src/components/.SlideshowViewer.svelte.disabled | Adds disabled slideshow viewer component source (not active in build). |
| website/src/components/.Slideshow.svelte.disabled | Adds disabled slideshow component source (not active in build). |
| website/public/design-system/spacing_and_effects.css | Adds placeholder/stub design-system token file. |
| website/public/design-system/components.css | Adds placeholder/stub component styles file. |
| website/public/design-system/colors_and_type.css | Adds design-system tokens + font-face declarations. |
| website/public/assets/LS-Agency-Site-Icon-White.svg | Adds brand icon asset. |
| website/public/assets/LS-Agency-Site-Icon-Light-Blue.svg | Adds brand icon asset. |
| website/public/assets/LS-Agency-Site-Icon-Blue.svg | Adds brand icon asset (used as favicon in BaseLayout). |
| website/public/assets/LS-Agency-Logo-White.svg | Adds brand logo asset. |
| website/public/assets/LS-Agency-Logo-Blue.svg | Adds brand logo asset. |
| website/package.json | Adds @astrojs/sitemap dependency (Svelte deps remain). |
| website/package-lock.json | Updates lockfile for sitemap + dependency updates. |
| website/astro.config.mjs | Sets base, output: static, sitemap integration, and _assets build directory. |
Files not reviewed (1)
- website/package-lock.json: Language not supported
Comments suppressed due to low confidence (1)
website/package.json:28
@astrojs/svelteandsvelteare still listed as runtime dependencies, but there are no active Svelte components referenced underwebsite/src/(only.svelte.disabledfiles) andastro.config.mjsno longer registers the Svelte integration. Keeping these adds install surface area for no functional benefit.
"@astrojs/svelte": "^5.7.3",
"@phosphor-icons/core": "^2.1.1",
"astro": "^5.11.0",
"gray-matter": "^4.0.3",
"svelte": "^5.0.0"
| src: url("fonts/Inter-VariableFont_opsz_wght.woff2") format("woff2-variations"), | ||
| url("fonts/Inter-VariableFont_opsz_wght.woff2") format("woff2"); |
| src: url("fonts/Manrope-VariableFont_wght.woff2") format("woff2-variations"), | ||
| url("fonts/Manrope-VariableFont_wght.woff2") format("woff2"); |
| let saved = null; | ||
|
|
||
| <!doctype html> | ||
| <html lang="en" data-theme="light"> |
| document.documentElement.setAttribute('data-theme', t); | ||
| } catch(e) {} |
| <BaseLayout title="Awesome GitHub — Home"> | ||
| <main style="padding: 2rem; font-family: sans-serif;"> | ||
| <h1>Phase 01 scaffold — page content coming in Phase 05</h1> | ||
| </main> |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 41f354cdb0
ℹ️ 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".
| site: "https://github.lightspeedwp.agency", | ||
| integrations: [svelte()], | ||
| site: 'https://github.lightspeedwp.agency', | ||
| base: '/awesome-github', |
There was a problem hiding this comment.
Remove the project base for the custom-domain deploy
For the Pages workflow I checked .github/workflows/awesome-github-site.yml, which uploads website/dist, and website/public/CNAME points the site at the root custom domain github.lightspeedwp.agency. With base: '/awesome-github', BaseLayout now prefixes the design-system CSS and favicon with /awesome-github/, but those public files are emitted at the site root for this custom-domain deploy, so the deployed homepage will request missing assets and render unstyled unless the site is actually served from that subpath.
Useful? React with 👍 / 👎.
| --- | ||
| import BaseLayout from "../../../layouts/BaseLayout.astro"; | ||
| import { getWceuSlides, resolveWceuReferenceHref } from "../../../lib/wceuSlides"; | ||
|
|
||
| export async function getStaticPaths() { |
There was a problem hiding this comment.
Keep aliases for linked talk slide routes
This deletes the /talk/slides/[slug]/ route while existing pages still link to it; I checked with rg and website/src/pages/agents/index.astro plus website/src/pages/agents/[slug].astro still have hard-coded /talk/slides/13/, /talk/slides/14/, and /talk/slides/ CTAs. After this deploy those navigation paths become 404s unless redirects or compatibility routes are kept, so either preserve the old talk aliases or update those links to the replacement /wceu-2026/slides/... routes in the same change.
Useful? React with 👍 / 👎.
| src: url("fonts/Inter-VariableFont_opsz_wght.woff2") format("woff2-variations"), | ||
| url("fonts/Inter-VariableFont_opsz_wght.woff2") format("woff2"); |
There was a problem hiding this comment.
Point design-system font URLs at the committed files
Because this stylesheet is served from /design-system/colors_and_type.css, url("fonts/Inter-VariableFont_opsz_wght.woff2") resolves to /design-system/fonts/...; I checked website/public and the committed font files are under public/fonts, not public/design-system/fonts. The local Inter font therefore 404s (and the Manrope rule below has the same problem), so use the correct relative path such as ../fonts/... or move the fonts into the referenced directory.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (1)
website/src/layouts/BaseLayout.astro (1)
20-31: ⚡ Quick winConsider adding
colorSchemefor native browser themingThe theme guard script sets
data-themebut doesn't setdocument.documentElement.style.colorSchemelike the similar script inAwesomeGithubLayout.astrodoes. SettingcolorSchemehelps browsers apply native dark/light styling to form controls, scrollbars, and other UA-styled elements.✨ Proposed enhancement
<script is:inline> (function(){ try { var t = localStorage.getItem('awesome-github-theme'); if (t !== 'light' && t !== 'dark') { t = window.matchMedia && matchMedia('(prefers-color-scheme:dark)').matches ? 'dark' : 'light'; } document.documentElement.setAttribute('data-theme', t); + document.documentElement.style.colorScheme = t; } catch(e) {} })(); </script>🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@website/src/layouts/BaseLayout.astro` around lines 20 - 31, The theme guard IIFE sets data-theme but doesn't update the browser color-scheme; inside the same IIFE (the anonymous function that reads localStorage into variable t and calls document.documentElement.setAttribute('data-theme', t)), also set document.documentElement.style.colorScheme = t (or an appropriate mapping for 'dark'/'light') so native form controls, scrollbars and UA elements follow the selected theme; place it after the setAttribute call and keep it inside the existing try block.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@website/public/design-system/colors_and_type.css`:
- Around line 339-347: Add a dark‑mode override for the inline code rule
(.ls-code, code.ls-code, kbd.ls-code) so the text color is readable on
--bg-muted in dark themes; for example, add a selector for your dark theme (e.g.
.dark .ls-code or `@media` (prefers-color-scheme: dark)) and set color:
var(--c-light-blue) or another light token that meets WCAG 2.2 AA contrast
(>=4.5:1) instead of var(--c-brand-blue-deep), keeping other properties intact.
- Around line 12-27: The `@font-face` rules in colors_and_type.css for font-family
"Inter" and "Manrope" use url("fonts/...") which resolves to a non-existent
subfolder; update both src URLs in those `@font-face` blocks to point to the
actual files by using ../fonts/... (i.e., change
url("fonts/Inter-VariableFont_opsz_wght.woff2") and
url("fonts/Manrope-VariableFont_wght.woff2") to
url("../fonts/Inter-VariableFont_opsz_wght.woff2") and
url("../fonts/Manrope-VariableFont_wght.woff2") respectively) so the browser
loads the .woff2 files from website/public/fonts/.
---
Nitpick comments:
In `@website/src/layouts/BaseLayout.astro`:
- Around line 20-31: The theme guard IIFE sets data-theme but doesn't update the
browser color-scheme; inside the same IIFE (the anonymous function that reads
localStorage into variable t and calls
document.documentElement.setAttribute('data-theme', t)), also set
document.documentElement.style.colorScheme = t (or an appropriate mapping for
'dark'/'light') so native form controls, scrollbars and UA elements follow the
selected theme; place it after the setAttribute call and keep it inside the
existing try block.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository YAML (base), Organization UI (inherited)
Review profile: CHILL
Plan: Pro
Run ID: bcc9d562-fc3b-421d-a410-faeb092cdec6
⛔ Files ignored due to path filters (7)
website/package-lock.jsonis excluded by!**/package-lock.jsonwebsite/public/assets/LS-Agency-Logo-Blue.svgis excluded by!**/*.svgwebsite/public/assets/LS-Agency-Logo-White.svgis excluded by!**/*.svgwebsite/public/assets/LS-Agency-Site-Icon-Blue.svgis excluded by!**/*.svgwebsite/public/assets/LS-Agency-Site-Icon-Light-Blue.svgis excluded by!**/*.svgwebsite/public/assets/LS-Agency-Site-Icon-White.svgis excluded by!**/*.svgwebsite/public/assets/wapuu-rocket.svgis excluded by!**/*.svg
📒 Files selected for processing (17)
website/astro.config.mjswebsite/package.jsonwebsite/public/design-system/colors_and_type.csswebsite/public/design-system/components.csswebsite/public/design-system/spacing_and_effects.csswebsite/src/components/.Slideshow.svelte.disabledwebsite/src/components/.SlideshowViewer.svelte.disabledwebsite/src/components/AwesomeGithub/.SearchPalette.svelte.disabledwebsite/src/layouts/AwesomeGithubLayout.astrowebsite/src/layouts/BaseLayout.astrowebsite/src/pages/index.astrowebsite/src/pages/slideshow.astrowebsite/src/pages/talk/index.astrowebsite/src/pages/talk/slides/[slug].astrowebsite/src/pages/talk/slides/index.astrowebsite/src/pages/talk/slideshow/index.astrowebsite/src/styles/site-tokens.css
💤 Files with no reviewable changes (6)
- website/src/pages/talk/slideshow/index.astro
- website/src/pages/slideshow.astro
- website/src/pages/talk/slides/index.astro
- website/src/pages/talk/index.astro
- website/src/pages/talk/slides/[slug].astro
- website/src/layouts/AwesomeGithubLayout.astro
📜 Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: copilot-pull-request-reviewer
🧰 Additional context used
📓 Path-based instructions (3)
**/*.{php,js,jsx,ts,tsx,css,scss,html}
📄 CodeRabbit inference engine (AGENTS.md)
Follow WordPress Coding Standards (CSS, HTML, JavaScript, PHP) and inline-documentation standards at all times
Files:
website/public/design-system/components.csswebsite/public/design-system/spacing_and_effects.csswebsite/src/styles/site-tokens.csswebsite/public/design-system/colors_and_type.css
**/*.{php,html,css,scss}
📄 CodeRabbit inference engine (CLAUDE.md)
Ensure WCAG 2.2 AA minimum accessibility compliance with semantic HTML, keyboard support, and sufficient contrast
Files:
website/public/design-system/components.csswebsite/public/design-system/spacing_and_effects.csswebsite/src/styles/site-tokens.csswebsite/public/design-system/colors_and_type.css
**/package.json
⚙️ CodeRabbit configuration file
**/package.json: Review package.json:
- Check for security vulnerabilities and outdated packages.
- Ensure scripts are documented with clear, descriptive names.
- Validate semantic versioning and proper version pinning.
- Confirm devDependencies vs dependencies separation.
- Ensure scripts follow org standards (lint, test, build, format).
Files:
website/package.json
🧠 Learnings (2)
📚 Learning: 2026-06-03T17:57:58.761Z
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
Applied to files:
website/public/design-system/colors_and_type.css
📚 Learning: 2026-06-03T17:57:58.761Z
Learnt from: CR
Repo: lightspeedwp/.github PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-06-03T17:57:58.761Z
Learning: Run `npm ci` to install dependencies, `npm test` to run all tests, `npm run lint:md` to lint Markdown files, `npm run lint:js` to lint JS/TS files, `npm run format` to format files, and `npm run validate:frontmatter` to validate frontmatter
Applied to files:
website/package.json
🪛 Stylelint (17.12.0)
website/public/design-system/colors_and_type.css
[error] 13-13: Expected no quotes around "Inter" (font-family-name-quotes)
(font-family-name-quotes)
[error] 21-21: Expected no quotes around "Manrope" (font-family-name-quotes)
(font-family-name-quotes)
[error] 7-7: Expected "url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Lora:ital,wght@0,400;0,500;1,400;1,500&display=swap')" to be "'https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Lora:ital,wght@0,400;0,500;1,400;1,500&display=swap'" (import-notation)
(import-notation)
[error] 184-184: Expected "Consolas" to be "consolas" (value-keyword-case)
(value-keyword-case)
[error] 185-185: Expected "Georgia" to be "georgia" (value-keyword-case)
(value-keyword-case)
[error] 274-274: Expected "optimizeLegibility" to be "optimizelegibility" (value-keyword-case)
(value-keyword-case)
[error] 355-355: Expected "currentColor" to be "currentcolor" (value-keyword-case)
(value-keyword-case)
🔇 Additional comments (13)
website/astro.config.mjs (1)
5-11: LGTM!website/package.json (1)
22-24: Move@astrojs/sitemaptodevDependencies
@astrojs/sitemapis only referenced at build/config time viawebsite/astro.config.mjs(import sitemap from '@astrojs/sitemap'/integrations: [sitemap()]), so it doesn’t need to ship as a production runtime dependency.Suggested tweak
"dependencies": { - "`@astrojs/sitemap`": "^3.2.2", "`@astrojs/svelte`": "^5.7.3", "`@phosphor-icons/core`": "^2.1.1", "astro": "^5.11.0", "gray-matter": "^4.0.3", "svelte": "^5.0.0" + }, + "devDependencies": { + "`@astrojs/sitemap`": "^3.2.2" }website/src/pages/index.astro (1)
4-8: LGTM!website/public/design-system/components.css (1)
1-2: LGTM!website/public/design-system/spacing_and_effects.css (1)
1-2: LGTM!website/src/styles/site-tokens.css (1)
1-2: LGTM!website/src/components/AwesomeGithub/.SearchPalette.svelte.disabled (1)
1-100: Fix TypeScript syntax vs missinglang="ts"in disabled Svelte file
website/src/components/AwesomeGithub/.SearchPalette.svelte.disabledremoveslang="ts"but still contains TypeScript-only syntax (e.g.,: HTMLInputElement,HTMLElement | null,as HTMLElement, typed event params,Record<string, string>). Either restorelang="ts"or strip the TS syntax—otherwise re-enabling/renaming to a real.sveltefile will likely faceplant the build.website/public/design-system/colors_and_type.css (4)
7-7: 💤 Low valueStylelint flags several case and notation preferences
Your linter has flagged a handful of stylistic inconsistencies:
- Line 7:
@import url(...)preferred as a plain string- Lines 184-185:
Consolas→consolas,Georgia→georgia- Line 274:
optimizeLegibility→optimizelegibility- Line 355:
currentColor→currentcolorThese are all valid CSS and won't break anything — just your linter's feelings! If you're enforcing Stylelint in CI, you may want to tidy these up or adjust the rules if the capitalisation is intentional.
Also applies to: 184-185, 274-274, 355-355
Source: Linters/SAST tools
357-361: LGTM!
29-137: LGTM!Also applies to: 148-233, 235-261, 267-337
124-125: WCAG AA contrast for--fg-linklooks good on light backgrounds
--fg-link(--c-brand-blue#1E6AFFon#FFFFFF) has a contrast ratio of 4.60:1, which meets WCAG 2.2 AA (normal text ≥ 4.5:1). The alt pairing--fg-link-alt-bg(#1557E0on#F9FAFB) is 5.79:1—also compliant. No contrast fix needed for these tokens.website/src/layouts/BaseLayout.astro (2)
16-49: LGTM!
1-14: LGTM!
…orScheme, broken links, and PR docs
…nt links to wceu slides
…ependencies - Add dark mode override for .ls-code class to use light-blue color for better contrast on dark backgrounds - Move @astrojs/sitemap to devDependencies (build-time only, not needed at runtime) https://claude.ai/code/session_01Fdipuy78tJkHUfMAtxYCqd
600b20c to
5962d43
Compare
- Downgrade astro from ^5.11.0 to ^4.16.0 for compatibility with @astrojs/svelte - Downgrade svelte from ^5.0.0 to ^4.0.0 to match Astro 4.x ecosystem - Remove @astrojs/sitemap due to incompatibility issues with Astro 4.x - Remove sitemap integration from astro.config.mjs - Regenerate package-lock.json with compatible dependency tree This fixes npm ci failures in CI environments that don't use --legacy-peer-deps. Website now builds successfully with 220 pages. https://claude.ai/code/session_01Fdipuy78tJkHUfMAtxYCqd
Resolves npm ci failures in CI environment by regenerating lock file with correct dependency tree. https://claude.ai/code/session_01Fdipuy78tJkHUfMAtxYCqd
Allows Astro build to proceed when the slides directory doesn't exist, returning empty array instead of throwing ENOENT error. https://claude.ai/code/session_01Fdipuy78tJkHUfMAtxYCqd
Linked issues
Closes #850
Changelog
Added
website/directory with static output adapterwebsite/public/design-system/website/public/fonts/website/public/assets/Changed
/awesome-github/for GitHub Pages deployment_assetsdirectory/design-system/(use../fonts/relative paths)Removed
/talk/*pages and slideshow routes (not part of Phase 01 scope; will be re-implemented in Phase 05)Risk Assessment
Risk Level: Low
Potential Impact:
Mitigation Steps:
npm run buildproducing 220 pages with zero errorshttp://localhost:4321/awesome-github/website/directoryHow to Test
Prerequisites
feat/ag-p01-scaffoldchecked outTest Steps
npm run buildfromwebsite/directory — should complete with zero errors (220 pages)npm run devfromwebsite/directory — should start serving athttp://localhost:4321/awesome-github/http://localhost:4321/awesome-github/in browser — should display placeholder "Phase 01 scaffold" messageExpected Results
/awesome-github/pathEdge Cases to Verify
/awesome-github/routingChecklist (Global DoD / PR)
References