refactor(css): strangler migration — FL export CSS retired page-by-page at pixel parity#365
Draft
pftg wants to merge 12 commits into
Draft
refactor(css): strangler migration — FL export CSS retired page-by-page at pixel parity#365pftg wants to merge 12 commits into
pftg wants to merge 12 commits into
Conversation
…ed plan) All encode the dead 70-80%-duplication-elimination goal: foundation-extraction ROI math, 'NEVER touch FL layouts' preservation rules, swarm execution prompts, stale baselines. Falsified by compiled+gzip evidence (Phase 1 WP1.2/1.4 + Phase 2 sprint-7 audits). Moved whole into 70-79-archives/superseded-2026-07-12/ with a README stating why. No content edits. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…e 0 deliverable 19 external bundles mapped to owning templates, FL files, and measured gzip sizes (converged production build 2026-07-12); reverse map of all 16 live FL layout files with consuming bundles and retirement status. Includes the easy-to-miss repo-root layouts/course/list.html → course-list bundle. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… superseded, Phase 0 + rewrite sprints added GOAL OVERVIEW re-goaled (FL burn-down 16→0 replaces the falsified 70-80% line-count target); CUMULATIVE METRICS → burn-down + historical note; Phase 3 WP definitions closed as superseded (preserved in git history + archives); QUICK ACTIONS + navigation repointed to the spec and ownership map; sprint-8 update-log entry added. Spec count fix: 17→16 live FL files (PR #363 merged e93d9b85 away — reviewer finding). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…r doc; repoint CLAUDE.md CSS row PROJECT-INDEX was wall-to-wall dead plan (35.04 as PRIMARY AUTHORITY, 44,420→ 11,884 line targets, WP tables) — replaced with a slim hub: spec, tracker, ownership map, banner'd loading-order reference, standing constraints. css-loading-order-analysis keeps its accurate load-order mechanics but gets a supersede banner on its extraction-strategy framing. CLAUDE.md 'ANY CSS changes' pointer now sends readers to the spec + ownership map instead of the inverted FL-preservation rules. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…try, dead sprint-3 link) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… (Mermaid, Chroma, inline-style, youtube) Desktop+mobile screenshots for one representative post per surface; volatile regions (async Mermaid SVG, external iframe, images) skipped for determinism. Replaces the dead skipped DiagramComponentTest (deleted; it was outside the test:critical pattern anyway). Baselines committed for macOS AND Linux, both suites 6/6 green; zero existing baselines touched. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…exposed Guard walks resources.Get from all templates, transitive @import chains (file-relative AND css-root-relative, postcss-import style), and postcss-mixins usage (@mixin <basename> against mixinsDir) — the mixin class was learned live: deleting mixins/responsive-visibility.css crashed the production build (undefined mixin in 590-layout), so it stays and the guard now models it. The 26 deleted files (components/ leftovers 'migrated from' long ago, utilities/ trees, powerpack originals) are proven dead: clean production builds before/after deletion have byte-identical CSS bundles. Second assertion catches the inverse defect (template referencing a missing file). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Contributor
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ 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 |
…le privacy-policy screenshots P0.2 gate for the first rewrite targets: baselines captured from the UNCHANGED pages on both OSes (4 new baselines; desktop privacy-policy already existed and matched). Course-landing h1 assertion moved off the .fl-heading anchor to plain h1 ahead of the semantic rewrite. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ist rewritten to semantic HTML at pixel parity First FL file down (924 lines): both consumers rewritten in one atomic commit. - page/single.html: FL row/col/module divs → main/article + css/pages/simple-page.css on the existing box model (hero 200/20/130 → 150@1115 → 100/50@860; 800px cap; h1 keeps skin's 70px strut with the clamp() span like .fl-heading-text did; fl-rich-text spacing cloned; single-content class kept for 586.css h2-h4 rules). - layouts/course/list.html: FL wrapper dropped, h1.fl-heading → h1.course-title with the style.css/single-post.css rules cloned at identical specificity+order (css/pages/course-list.css). - critical/privacy-policy-critical.css: page node rules stripped; FL header/nav rules stay until the header's own sprint. - Both bundles drop bf72bba… too (7 consumers left). Parity caught and fixed two real deltas: dropped single-content class (h2 sizing) and a phantom 15px container padding (skin zeroes Bootstrap's trio under .fl-builder). Verified: only the 2 target bundles changed bytes (17 others md5-identical); privacy-policy 17.1→14.1KB gz, course-list 17.6→14.2KB gz; bin/test + bin/dtest 54/54 green with ZERO baseline changes. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…mantic HTML at pixel parity Second FL file down (2,202 lines). FL row/col/module shell → semantic contact-hero / contact-intro / contact-band / contact-list-panel / contact-form-panel; the PowerPack infolist and Gravity Forms component markup kept verbatim (5 checkmark items now a range loop). Live node rules ported 1:1 into css/pages/contact-us.css (~8 dead-node blocks + FL framework block dropped with the file); 586.css's .contact-page height chain replicated de-layered since the shared file must stay byte-identical. Conversion-surface safety: compiled <form> element byte-identical pre/post (md5 c34fac4d…); form partial untouched. All other bundles md5-identical (only contact-us changed). bin/test + bin/dtest 54/54, 93 screenshots, ZERO baseline changes — first-try parity. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ly moved site-wide single.html (all 584 blog posts) drops 3114-layout.css + bf72bba… from its slice: FL wrapper → .single-post-row, h1.fl-heading → h1.post-title (style.css already covers post-title in its shared 43rem block; the one single-post.css override cloned into css/pages/blog-single.css). .fl-rich-text class kept until the shared single-post.css re-key sweep. Parity gate caught a real trap: baseof's skip-link relies on .sr-only, which only existed in FL layout files — dropping 3114 unhid 'Skip to main content' and shifted every blog page 28px. .sr-only now lives in the site-wide inline navigation.css so no future FL retirement can unhide it. Also fixed nested <main> landmarks from R1/R2 (baseof already provides main#main-content) and the mobile test's .fl-heading anchor. Verified: only blog-single bundle changed bytes; all 8 blog screenshots (special-content matrix + post) 0-diff; bin/test + bin/dtest 54/54, 93 screenshots, ZERO baseline changes. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…apter coverage) course/single.html (course chapters) mirrors R3a: drops 3114-layout.css + bf72bba… from its slice, FL wrapper → .single-post-row, h1.fl-heading → h1.post-title, reusing css/pages/blog-single.css. New desktop+mobile course/chapter screenshots added FIRST from the unchanged page (P0.2), then verified 0-diff after the rewrite. Only the course-single bundle changed bytes (now hash-identical to blog-single — same slice). Both suites 56/56, zero baseline changes. 3114-layout.css consumers remaining: single-career, single-client. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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
Execution of the approved maintainability plan (docs/projects/2509-css-migration/2026-07-12-css-maintainability-redesign.md): Phase 0 safety scaffolding, then per-page strangler rewrites — semantic HTML + token-based page CSS, FL file deleted in the same commit — at strict pixel parity (group decision by a 3-advisor panel: architect/QA/product all converged on parity-only with no baseline regeneration; all JetVelocity modernization deferred to per-page sessions with Paul).
Stacked on
css-migration/docs-realignment(PR #364).Safety invariants (every page commit)
css/pages/*.css+ slice swap + FL deletion — onegit revertrestores everything.bin/testmacOS +bin/dtestLinux) green with zero baseline changes — parity means even the target page's baselines stay.Progress
🤖 Generated with Claude Code