Skip to content

refactor(css): WP1.1 sprints 1+2 — font-system-ui extraction + dead Bootstrap :root purge#355

Merged
pftg merged 32 commits into
masterfrom
emdash/early-readers-greet-f50x3
Jul 11, 2026
Merged

refactor(css): WP1.1 sprints 1+2 — font-system-ui extraction + dead Bootstrap :root purge#355
pftg merged 32 commits into
masterfrom
emdash/early-readers-greet-f50x3

Conversation

@pftg

@pftg pftg commented Jul 11, 2026

Copy link
Copy Markdown
Member

Summary

First two sprints of Project 2509 CSS Migration, WP1.1 (CSS Variables Foundation). Total: −700 lines of CSS duplication/dead code (+44/−744), 21 commits, zero visual regressions on both platforms.

Sprint 1 — wire css-variables foundation + extract --font-system-ui (12 commits)

Eliminates all exact-match literal system-ui font stacks from the critical CSS layer: 25 byte-identical stacks replaced with var(--font-system-ui), and the pre-existing foundations/css-variables.css wired (via @import, same pattern as critical/base.css) into the 3 bundles that never loaded it. This fixed a real defect: /careers/ had 4 var(--font-system-ui) usages resolving to nothing. Variant stacks (short system-ui, Bootstrap-reboot) deliberately untouched — converting them would be value changes.

Sprint 2 — delete the dead Bootstrap :root block (9 commits)

An identical 35-line Bootstrap :root block (--blue--font-family-monospace, 28 vars) was copy-pasted in 8 critical files. Three independent checks (scope agent, reviewer, lead) confirmed zero var() consumers of any of those 28 variables anywhere in live source — so the copies were deleted outright (280 lines), not relocated. The vendor copy in base-4.min.css is untouched. Post-sweep: zero :root blocks remain in critical/; compiled bundles verified.

Safety protocol (every commit)

  • bin/rake test:critical (macOS): 46 runs / 84 screenshots / 0 diffs — per commit
  • bin/dtest (Linux/Docker via Colima): 46 runs / 0 failures — per commit
  • Independent reviewer agent verified every diff hunk-by-hunk (21/21 approved, several claims corrected/strengthened along the way)
  • Chrome DevTools spot-checks on /careers/, /clients/agent-inbox/, /use-cases/emergency-cto-leadership/ (pages without automated coverage): fonts resolve, console clean, rendering correct

Follow-ups queued (not in this PR)

  1. use-cases-critical.css is orphaned — no template loads it; wire in or delete.
  2. Stray mid-file @charset in single-services.css, single-use-cases.css, fl-common-modules.css (pre-existing concat leftovers; invalid per spec, ignored by browsers).
  3. skin-65eda28877e04.css still carries 8+ literal font-stack copies — next extraction target.
  4. WP1.1 remaining: reconcile --color-primary/--color-text token extraction with the existing variables/colors.css naming.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Style
    • Standardized typography across critical pages by switching to a shared system-font CSS variable.
    • Reduced duplicated critical CSS by removing inlined variable blocks and reusing shared foundation variables across key page templates.
    • Updated accent/ruby styling to use a shared color variable (including navigation buttons and course/blog elements).
    • Improved consistency with added/reset box-sizing and minor button/typography tweaks.
  • Documentation
    • Updated the CSS Variables task tracker and release update log with sprint progress, validation notes, and follow-ups.

Paul Keen and others added 12 commits July 11, 2026 19:02
…tical.css

The careers bundle loads careers-critical.css first and never includes
critical/base.css, so its 4 var(--font-system-ui) usages resolved to
nothing (invalid at computed-value time, font fell back to inherited).
Mirrors the @import already used by critical/base.css line 5.

Tests: 46 runs, 124 assertions, 0 failures. Screenshots: 84 compared, 0 diffs.
Reviewed: css-reviewer agent — APPROVE (no cascade risk, no :root collision).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ers.css

single-career bundle (careers/single.html) loads this file first and has
no critical/base.css, so the variable foundation must be imported here.
Prep for extracting this file's 7 literal system-ui font stacks to
var(--font-system-ui) in the next commit.

Tests: 46 runs, 0 failures; 84 screenshots, 0 diffs. Reviewer: APPROVE.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…7 stacks)

Replace 7 byte-identical literal system-ui font stacks with
var(--font-system-ui) (defined in foundations/css-variables.css,
imported by this file in the previous commit). 91 lines eliminated.

Intentional exception to the ≤10-line micro-change rule: per-file commit
is the documented unit for this mechanical substitution (WP1.1 task 7,
TASK-TRACKER.md), all 7 edits are one identical transformation.

Tests: macOS 46 runs/0 failures, 84 screenshots 0 diffs; Linux (bin/dtest)
46 runs/0 failures. Reviewer: APPROVE (diff verified hunk-by-hunk).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…s (7 stacks)

Replace 7 byte-identical literal system-ui stacks with
var(--font-system-ui). Variable available via critical/base.css
(first in homepage bundle), which imports foundations/css-variables.css.
Line 1604's different Bootstrap-reboot stack variant left untouched
(converting it would be a value change). 91 lines eliminated.

Tests: macOS 46/0, 84 screenshots 0 diffs; Linux (bin/dtest) 46/0.
Reviewer: APPROVE.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…cases.css

use-cases/single.html loads this file first with no critical/base.css,
and neither 3027-layout.css nor the shared layout bundle imports the
variable foundation. Prep for extracting this file's 3 literal
system-ui stacks in the next commit. Verified :root definition present
in the compiled single-use-cases bundle.

Tests: 46/0 macOS, 84 screenshots 0 diffs. Reviewer: APPROVE.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… (3 stacks)

Replace 3 byte-identical literal system-ui stacks with
var(--font-system-ui) (imported in previous commit). The different
Bootstrap-reboot variant stack left untouched. 39 lines eliminated.

No critical-suite test covers use-case single pages, so verified via
chrome-devtools on /use-cases/emergency-cto-leadership/: desktop
1280x800 + mobile 390x844 render correctly, console 0 errors, network
0 failures, h1/.fl-button compute the full system-ui stack via the var.
Tests: macOS 46/0 84 screenshots 0 diffs; Linux (bin/dtest) 46/0.
Reviewer: APPROVE.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…(3 stacks)

Replace 3 byte-identical literal system-ui stacks with
var(--font-system-ui). Variable available on both load paths:
service-template bundle via critical/base.css, services/single bundle
via 2949-layout.css import (custom properties resolve at computed-value
time regardless of source order). Bootstrap-reboot variant untouched.
39 lines eliminated.

Tests: macOS 46/0, 84 screenshots 0 diffs; Linux (bin/dtest) 46/0;
targeted test_service* 17 screenshots 0 diffs. Reviewer: APPROVE.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…3 stacks)

Replace 3 byte-identical literal system-ui stacks with
var(--font-system-ui). Variable available via critical/base.css (first
in clients/single bundle). Bootstrap-reboot variant untouched.
39 lines eliminated.

Tests: macOS 46/0, 84 screenshots 0 diffs; Linux (bin/dtest) 46/0;
targeted test_clients* 9 screenshots 0 diffs. Reviewer: APPROVE.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…itical.css (3 stacks)

Replace 3 byte-identical literal system-ui stacks with
var(--font-system-ui). Variable available via critical/base.css (first
in free-consultation bundle). 39 lines eliminated.

Tests: macOS 46/0, 84 screenshots 0 diffs; Linux (bin/dtest) 46/0;
targeted free_consultation 2 screenshots 0 diffs. Reviewer: APPROVE.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…s (3 stacks)

Replace 3 byte-identical literal system-ui stacks with
var(--font-system-ui). Variable available via critical/base.css (first
in services bundle). 39 lines eliminated.

Tests: macOS 46/0, 84 screenshots 0 diffs; Linux (bin/dtest) 46/0;
targeted test_services* 17 screenshots 0 diffs. Reviewer: APPROVE.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ss (1 stack)

Replace the single byte-identical literal system-ui stack with
var(--font-system-ui), completing the exact-match extraction across
all critical CSS files (grep sweep: 0 literal stacks remain).

NOTE: review found this file is ORPHANED - no template references it
(page/use-cases.html bundles 3021-layout.css instead; repo-wide grep
finds zero loaders). This edit is consistency-only and no-op at
runtime. Follow-up needed: wire the file into the use-cases bundle if
its styles are still wanted, or delete it as dead code.

Tests: macOS 46/0, 84 screenshots 0 diffs; Linux (bin/dtest) 46/0.
Reviewer: APPROVE (with orphan finding).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…xtraction complete

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jul 11, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

CSS foundations now provide shared font and Ruby color tokens. Critical CSS consumes the font token and removes duplicated Bootstrap variables, while page bundles include the foundation stylesheet and migration tracking records updated sprint status and validation details.

Changes

CSS variable migration

Layer / File(s) Summary
Foundation tokens and bundle wiring
themes/beaver/assets/css/foundations/css-variables.css, themes/beaver/layouts/*.html
Adds --color-ruby and includes the shared foundation stylesheet in page and navigation bundles.
Critical font variable migration
themes/beaver/assets/css/critical/*.css, themes/beaver/assets/css/skin-65eda28877e04.css
Replaces hard-coded system font stacks with var(--font-system-ui) and adds required foundation imports.
Critical stylesheet cleanup
themes/beaver/assets/css/critical/*.css, themes/beaver/assets/css/{586,services-layout}.css
Removes duplicated Bootstrap-style :root blocks and stray @charset directives while retaining or normalizing reset rules.
Color token rollout and migration tracking
themes/beaver/assets/css/{navigation,single-post,style}.css, docs/projects/2509-css-migration/TASK-TRACKER.md
Replaces selected hard-coded Ruby colors, documents literal-preservation cases, and updates WP1.1 sprint status and validation notes.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Possibly related PRs

Suggested reviewers: AucT, dgorodnichy

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title captures the main refactor: extracting font-system-ui and purging duplicated Bootstrap :root blocks, and is specific enough despite omitting follow-up work.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch emdash/early-readers-greet-f50x3

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.

Paul Keen and others added 9 commits July 11, 2026 20:12
…us-critical.css

The 35-line Bootstrap :root block (--blue..--font-family-monospace) is
duplicated byte-identically in 8 critical files and has ZERO var()
consumers anywhere in themes/, layouts/, assets/, static/, content/
(verified independently by scope agent, reviewer, and lead). Deleting
rather than consolidating - no dead-code relocation.

Tests: macOS 46/0, 84 screenshots 0 diffs; Linux (bin/dtest) 46/0;
targeted test_about* 10 screenshots 0 diffs. Reviewer: APPROVE
(re-verified all 28 var names and block byte-identity independently).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…s-critical.css

Same byte-identical 35-line dead block (zero var() consumers repo-wide).
The careers bundle keeps vendor base-4.min.css's own copy (untouched).

Tests: macOS 46/0, 84 screenshots 0 diffs; Linux (bin/dtest) 46/0;
targeted test_careers* 8 screenshots 0 diffs. Chrome-devtools spot
check on /careers/ at 1280x800: fonts resolve, hero/nav/CTA correct.
Reviewer: APPROVE.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ge-critical.css

Same byte-identical 35-line dead block (zero var() consumers repo-wide).
Homepage bundle retains the block via fl-common-modules (base.css
import chain) until that file's own deletion commit.

Tests: macOS 46/0, 84 screenshots 0 diffs; Linux (bin/dtest) 46/0;
targeted test_homepage* 7 screenshots 0 diffs. Reviewer: APPROVE
(traced the import-chain retention claim independently).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…-careers.css

Same byte-identical 35-line dead block (zero var() consumers repo-wide).
single-career bundle retains vendor base-4.min.css's copy (untouched).

Tests: macOS 46/0, 84 screenshots 0 diffs; Linux (bin/dtest) 46/0;
targeted test_careers_ruby 3 screenshots 0 diffs. Reviewer: APPROVE.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…-clients.css

Same byte-identical 35-line dead block (zero var() consumers repo-wide).
clients/single bundle retains the block via fl-common-modules until its
own deletion commit.

Tests: macOS 46/0, 84 screenshots 0 diffs; Linux (bin/dtest) 46/0;
targeted test_clients* 9 screenshots 0 diffs. Chrome-devtools spot
check on /clients/agent-inbox/: fonts resolve, hero correct.
Reviewer: APPROVE.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…-services.css

Same byte-identical 35-line dead block (zero var() consumers repo-wide).
service-template bundle retains via fl-common-modules; services/single
via vendor base-4.min.css.

Tests: macOS 46/0, 84 screenshots 0 diffs; Linux (bin/dtest) 46/0;
targeted test_service* 17 screenshots 0 diffs. Reviewer: APPROVE
(FYI noted: pre-existing stray mid-file @charset at line 1333 -
queued as future cleanup, untouched here).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…-use-cases.css

Same byte-identical 35-line dead block (zero var() consumers repo-wide).
Bundle retains vendor base-4.min.css's copy. No automated coverage for
use-case singles: chrome-devtools verified /use-cases/emergency-cto-
leadership/ at 1280x800 - fonts resolve, hero/nav/CTA correct.

Tests: macOS 46/0, 84 screenshots 0 diffs; Linux (bin/dtest) 46/0.
Reviewer: APPROVE.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…mon-modules.css

Final copy outside vendor CSS - this file reaches all 10 base.css
bundles. Post-deletion sweep: zero :root blocks remain in critical/;
the only source-tree definition of the Bootstrap var set is
vendors/base-4.min.css (untouchable). Newest compiled homepage bundle
verified: 1 :root (--font-system-ui foundation), 0 --blue definitions.

Tests: macOS 46/0, 84 screenshots 0 diffs (one blog-post cover-image
load flake on first run, re-verified green in isolation and in full
re-run); Linux (bin/dtest) 46/0. Reviewer: APPROVE (independent
zero-consumer re-check of all 28 vars across live source; cleared the
5 other :root files as unrelated live tokens).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…urged

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@pftg pftg changed the title refactor(css): WP1.1 sprint 1 — wire css-variables foundation + extract --font-system-ui refactor(css): WP1.1 sprints 1+2 — font-system-ui extraction + dead Bootstrap :root purge Jul 11, 2026
No template loads this file: page/use-cases.html bundles
3021-layout.css instead; repo-wide reference grep (html/toml/js/rb/
yaml/md) finds only historical planning-doc mentions. Created by
6f76dc9 (inline-CSS extraction), orphaned in a later refactor.
Reviewer independently re-verified zero references and ran
bin/hugo-build post-deletion (722 pages, 0 errors).

Tests: macOS 46/0, 84 screenshots 0 diffs; Linux (bin/dtest) 46/0.
Reviewer: APPROVE.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

@coderabbitai coderabbitai 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.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
themes/beaver/assets/css/critical/single-services.css (1)

1474-1477: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Use var(--font-system-ui) for body
body still hardcodes a shorter stack than --font-system-ui and misses the Noto/Liberation/emoji fallbacks. Switching this rule to the shared token keeps the typography consistent with the rest of the theme.

🤖 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 `@themes/beaver/assets/css/critical/single-services.css` around lines 1474 -
1477, Update the body rule to use var(--font-system-ui) for font-family instead
of the hardcoded stack, preserving the shared theme typography token and its
complete fallback list.
🧹 Nitpick comments (1)
themes/beaver/assets/css/critical/single-clients.css (1)

1379-1384: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Box-sizing selector notation inconsistent with sibling files.

This file uses *, ::after, ::before while single-services.css and single-use-cases.css use *, *::before, *::after. Both are functionally equivalent, but normalizing the notation across files in the same PR improves consistency.

♻️ Optional: align selector notation with sibling files
 *,
-::after,
-::before {
+*::before,
+*::after {
   box-sizing: border-box;
 }
🤖 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 `@themes/beaver/assets/css/critical/single-clients.css` around lines 1379 -
1384, Normalize the box-sizing selectors in the affected rule to match the
sibling stylesheet convention: use the universal-element pseudo-element form for
both ::before and ::after, while preserving the existing box-sizing declaration.
🤖 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.

Outside diff comments:
In `@themes/beaver/assets/css/critical/single-services.css`:
- Around line 1474-1477: Update the body rule to use var(--font-system-ui) for
font-family instead of the hardcoded stack, preserving the shared theme
typography token and its complete fallback list.

---

Nitpick comments:
In `@themes/beaver/assets/css/critical/single-clients.css`:
- Around line 1379-1384: Normalize the box-sizing selectors in the affected rule
to match the sibling stylesheet convention: use the universal-element
pseudo-element form for both ::before and ::after, while preserving the existing
box-sizing declaration.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: ad738289-5630-4090-9b30-771066a51999

📥 Commits

Reviewing files that changed from the base of the PR and between fbb0437 and 4139306.

📒 Files selected for processing (12)
  • docs/projects/2509-css-migration/TASK-TRACKER.md
  • themes/beaver/assets/css/critical/about-us-critical.css
  • themes/beaver/assets/css/critical/careers-critical.css
  • themes/beaver/assets/css/critical/fl-common-modules.css
  • themes/beaver/assets/css/critical/free-consultation-critical.css
  • themes/beaver/assets/css/critical/homepage-critical.css
  • themes/beaver/assets/css/critical/services-critical.css
  • themes/beaver/assets/css/critical/single-careers.css
  • themes/beaver/assets/css/critical/single-clients.css
  • themes/beaver/assets/css/critical/single-services.css
  • themes/beaver/assets/css/critical/single-use-cases.css
  • themes/beaver/assets/css/critical/use-cases-critical.css
💤 Files with no reviewable changes (2)
  • themes/beaver/assets/css/critical/about-us-critical.css
  • themes/beaver/assets/css/critical/fl-common-modules.css

Paul Keen and others added 5 commits July 11, 2026 21:11
@charset is honored only at byte 0 of a stylesheet; these 8 (in
586.css, services-layout.css, fl-common-modules.css x2,
single-services.css x2, single-use-cases.css x2) sat mid-file as
ignored no-ops left over from old file concatenation. None of the 5
files has a line-1 @charset. Valid line-1 declarations in the other
critical files untouched.

Tests: macOS 46/0, 84 screenshots 0 diffs; Linux (bin/dtest) 46/0.
Reviewer: APPROVE (independent full-tree sweep confirms zero remain).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…g it

Prepend css/foundations/css-variables.css as the FIRST resource in
blog-single, taxonomy list, not_found, and course-single bundles - the
only skin-loading bundles with no --font-system-ui definition. Prep for
extracting skin's 6 literal font stacks.

Note: the initially planned @import at the top of the skin FILE fails -
skin concatenates mid-bundle where @import is invalid CSS, and
postcss-import silently drops it (verified in compiled output).
Template-level prepend is the only correct wiring for non-first files.

Compiled-output verification: blog-single/not_found/course-single/
blog-list each carry exactly 1 :root definition; homepage still 1 (no
duplicates - postcss-import skipDuplicates).

Tests: macOS 46/0, 84 screenshots 0 diffs; Linux (bin/dtest) 46/0.
Reviewer: APPROVE (ran own build, verified all 5 bundles).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… skin extraction rolled back with root cause

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…nly)

Replace the two woocommerce button-group stacks and the .fl-page
button:visited group stack with var(--font-system-ui). body, h1, and
the h1-h6 group DELIBERATELY stay literal, with KEEP LITERAL comments:
converting them lets production-only postcss plugins dedup/merge the
declarations with earlier identical var() rules and hoist skin's
styling up the cascade - reviewer hand-traced h1 dropping 70px->40px
(Bootstrap reboot in fl-common-modules wins after the hoist), and the
body variant was caught by 17 macOS screenshot diffs in two failed
attempts (v1 full 6-stack, v2 5-stack).

Gates (option-a protocol): production-bundle rule-level diff shows
pure in-place swaps, rule counts identical (contact-us 1195=1195,
homepage 2375=2375, reviewer-verified); macOS suite 46/0 with 84
screenshots 0 diffs; Linux (bin/dtest) 46/0; KEEP LITERAL comments
verified byte-identical in minified output. Reviewer: APPROVE.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…vigation bundle

Prepend foundations/css-variables.css to the inlined navigation bundle
so design tokens are defined on EVERY page regardless of per-template
bundle wiring - closes the /blog/ gap (blog/list.html has no foundation)
and future-proofs new templates. Verified inline in rendered
/blog/index.html.

Tests: macOS 46/0, 84 screenshots 0 diffs; Linux (bin/dtest) 46/0.
Reviewer: APPROVE (verified baseof is the single universal wrapper,
20 templates define main against it).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Paul Keen and others added 5 commits July 11, 2026 21:50
Name approved by Paul. NOT --color-primary: that token already exists
as #1a8cff (blue) with 89 usages; redefining it would repaint them.
Zero consumers yet - literal replacements follow per-file with the
option-a production-diff gate.

Tests: macOS 46/0, 84 screenshots 0 diffs; Linux (bin/dtest) 46/0.
Reviewer: APPROVE.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…lor-ruby)

Option-a gate: rule counts identical in all 5 checked production
bundles, 18 changed lines each = 9 in-place swaps + the :root delta
(purgecss variables:true now retains --color-ruby where consumed).
Reviewer verified the .blog blockquote same-selector triple has no
shared properties, so no dedup collapse possible.

Tests: macOS 46/0, 84 screenshots 0 diffs; Linux (bin/dtest) 46/0.
Reviewer: APPROVE (independent 5-bundle verification).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… --color-ruby)

The inline navigation bundle (baseof) carries the foundation since
987935a, so definition + consumers live in the same inline style
block - verified in rendered /blog/index.html (1 definition, 3 var
consumers, 0 remaining literals). Comment mention on line 28 untouched.

Tests: macOS 46/0, 84 screenshots 0 diffs; Linux (bin/dtest) 46/0.
Reviewer: APPROVE (verified rendered inline block occurrence counts).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…> --color-ruby)

Final replacement: zero #cc342d declaration literals remain outside
vendors/ (the token definition and one comment mention are the only
occurrences left). blog-list bundle consumers resolve via the inline
baseof definition (its compiled bundle has no :root at all -
pre-existing purgecss behavior, reviewer-verified against baselines).

Tests: macOS 46/0, 84 screenshots 0 diffs; Linux (bin/dtest) 46/0.
Mechanism gate: both blog bundles rule-count identical, pure in-place
swaps. Reviewer: APPROVE (full inline-definition chain verified).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…uby rollout done

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

@coderabbitai coderabbitai 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.

Actionable comments posted: 1

🤖 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 `@themes/beaver/assets/css/style.css`:
- Line 323: Update every bundle that consumes themes/beaver/assets/css/style.css
to load css/foundations/css-variables.css before style.css, ensuring variables
such as --color-ruby are defined before use. Apply this ordering consistently
across all bundle entry points.
🪄 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: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 56f8abef-7645-40b4-b734-25441c8f13a3

📥 Commits

Reviewing files that changed from the base of the PR and between 4139306 and 24439e3.

📒 Files selected for processing (17)
  • docs/projects/2509-css-migration/TASK-TRACKER.md
  • themes/beaver/assets/css/586.css
  • themes/beaver/assets/css/critical/fl-common-modules.css
  • themes/beaver/assets/css/critical/single-services.css
  • themes/beaver/assets/css/critical/single-use-cases.css
  • themes/beaver/assets/css/critical/use-cases-critical.css
  • themes/beaver/assets/css/foundations/css-variables.css
  • themes/beaver/assets/css/navigation.css
  • themes/beaver/assets/css/services-layout.css
  • themes/beaver/assets/css/single-post.css
  • themes/beaver/assets/css/skin-65eda28877e04.css
  • themes/beaver/assets/css/style.css
  • themes/beaver/layouts/404.html
  • themes/beaver/layouts/baseof.html
  • themes/beaver/layouts/course/single.html
  • themes/beaver/layouts/list.html
  • themes/beaver/layouts/single.html
💤 Files with no reviewable changes (6)
  • themes/beaver/assets/css/586.css
  • themes/beaver/assets/css/critical/use-cases-critical.css
  • themes/beaver/assets/css/services-layout.css
  • themes/beaver/assets/css/critical/fl-common-modules.css
  • themes/beaver/assets/css/critical/single-use-cases.css
  • themes/beaver/assets/css/critical/single-services.css


.blog .post-tags a:hover {
color: #cc342d;
color: var(--color-ruby);

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.

🩺 Stability & Availability | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Description: Verify css-variables.css is bundled before style.css in all consuming templates.
rg -n 'style\.css' themes/beaver/layouts/ --type=html -C5
rg -n 'css-variables' themes/beaver/layouts/ --type=html -C5

Repository: jetthoughts/jetthoughts.github.io

Length of output: 22002


🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Inspect the shared CSS bundling path and the layouts that call it.
files=(
  "themes/beaver/layouts/partials/assets/css-processor.html"
  "themes/beaver/layouts/_default/baseof.html"
  "themes/beaver/layouts/index.html"
  "themes/beaver/layouts/list.html"
  "themes/beaver/layouts/single.html"
  "themes/beaver/layouts/blog/list.html"
  "themes/beaver/layouts/services/single.html"
  "themes/beaver/layouts/page/single.html"
  "themes/beaver/layouts/page/services.html"
  "themes/beaver/layouts/page/use-cases.html"
  "themes/beaver/layouts/page/service-template.html"
  "themes/beaver/layouts/clients/single.html"
  "themes/beaver/layouts/course/single.html"
  "themes/beaver/layouts/use-cases/single.html"
  "themes/beaver/layouts/page/clients.html"
)

for f in "${files[@]}"; do
  if [ -f "$f" ]; then
    echo "=== $f ==="
    cat -n "$f" | sed -n '1,220p'
    echo
  fi
done

Repository: jetthoughts/jetthoughts.github.io

Length of output: 50390


Load css-variables.css before style.css in every bundle
Several bundles still include style.css without css/foundations/css-variables.css first, so var(--color-ruby) can be undefined on those pages. Add the variables sheet to each consuming bundle before style.css.

🤖 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 `@themes/beaver/assets/css/style.css` at line 323, Update every bundle that
consumes themes/beaver/assets/css/style.css to load
css/foundations/css-variables.css before style.css, ensuring variables such as
--color-ruby are defined before use. Apply this ordering consistently across all
bundle entry points.

@pftg
pftg merged commit 166b99d into master Jul 11, 2026
3 checks passed
@pftg
pftg deleted the emdash/early-readers-greet-f50x3 branch July 11, 2026 20:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant