CSS Phase C sprint C4: all 7 backlog pages off hashed fl-node classes (~221 re-keys)#375
Merged
Conversation
…ox restoration postponed Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
… prefixes notfound-/use-case-/services-/service-/about-/home-/careers- get the same greedy entries as prior sprints, landed BEFORE the renames so each re-key stays a pure substitution. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
…d-class drops use-case-* prefix (singular; the list page owns use-cases-*). All test refs are data-node attribute selectors (kept). Gate: converged builds; byte-identity modulo reverse substitution, escalated for one cssnano background-longhand regrouping to declaration-set + per-selector winner-map equality (both exact). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
…lass drops services-* prefix. Sweep covers critical/services-critical.css twins and the technologies.css shared rule. All test refs are data-node attribute selectors (kept). Gate: byte-identity modulo boundary-guarded reverse substitution; the services bundle itself passes at per-selector winner-map exactness (cssnano regrouping). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
…all 16 nodes Six nodes already carried error-page__* aliases; instead of adding a second notfound-* scheme, the CSS re-keys onto the aliases and the remaining 10 nodes join the same namespace. Duplicate class tokens from alias adoption collapsed (uniq per class attr). 3 dead col-group classes dropped. Gate: GATE OK (16 nodes) - byte-identity modulo substitution, two selector-group reorders; token dedupe verified bundle-inert. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
…-class drops service-* prefix (singular; list page owns services-*). All test refs are data-node attribute selectors (kept). Gate: GATE OK (36 nodes); single-service bundle at per-selector winner exactness (cssnano regrouping), all others byte-identical modulo substitution. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
…s drops about-* prefix; critical/about-us-critical.css twins swept in the same commit. The two mobile-suite CLASS selectors (.fl-node-os8vrc1dwlji, .fl-node-nb2thxdw075q - the only class-based test refs in all of C4) updated to the semantic names in this commit; mobile about tests verified green against a local-baseURL build. Gate: GATE OK (40 nodes), one selector-group reorder. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
…ass drops careers-* prefix; critical/careers-critical.css and the two c-hero-sections.css twins swept in the same commit. No test refs. Gate: GATE OK (57 nodes), one selector-group reorder. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
…s drops home-* prefix; sweeps cover critical/homepage-critical.css, critical/fl-layout-grid.css, style.css's :last-child rule, and the stale home selector in dynamic-404.css. Gate: GATE OK (80 nodes), selector-group reorders only in 10 bundles. BACKLOG COMPLETE: every C4 page (404, use-cases/single, services, services/single, about, careers, home) is now off hashed fl-node classes. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
Contributor
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (28)
📝 WalkthroughWalkthroughThis migration replaces Beaver Builder ChangesSemantic CSS migration
Estimated code review effort: 4 (Complex) | ~60 minutes Possibly related PRs
✨ Finishing Touches📝 Generate docstrings
🧪 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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this is
Phase C sprint C4 — the full page re-key backlog in one sprint. After this PR, zero hashed
fl-node-<hash>classes remain in any template: Phase C criterion 2's markup side is complete.Per-page re-keys (one gated commit each)
error-page__*use-case-*use-cases-*services-*technologies.cssruleservice-*about-*careers-*c-hero-sections.csstwins swepthome-*style.cssand the stale home selector indynamic-404.cssAll
data-nodeattributes kept — every other test selector is attribute-based, so no further test churn.Gate chain per page (batch driver, converged double-builds): byte-identity after boundary-guarded reverse substitution → canonical rule-set equality (cssnano alphabetizes selector groups) → per-selector last-wins declaration-map equality (cssnano regroups shared longhands). Every page passed; the only tolerated diffs are those two cssnano artifact classes, each verified content-exact.
Prep commit: greedy purge-safelist entries for all 7 prefixes (the C2 lesson — semantic selectors must inherit the
/^fl-node/shield for runtime descendant classes).Also in this PR: Paul's decisions recorded —
legacy-theme-skin.cssname approved;.jt-reviews-boxswiper-design restoration postponed with a concrete how-to in the tracker.Verification
bin/dtest-all): EXIT=0, 119 screenshots, no failuresWhat remains in Phase C after this
Generic framework classes (
fl-row/fl-col/fl-module/fl-node-content) + inertdata-nodeattrs — they die with wrapper collapse (needs design approval, per-page baseline updates) and thecritical/fl-*trio retirement; plus the critical-vs-pages dedup and the legacy-shared strangler as their own sprints.🤖 Generated with Claude Code
https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
Summary by CodeRabbit