Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
c2a161f
refactor(css): WP1.1 import css-variables foundation into careers-cri…
Jul 11, 2026
ff82c3d
refactor(css): WP1.1 import css-variables foundation into single-care…
Jul 11, 2026
8e7a373
refactor(css): WP1.1 extract --font-system-ui in single-careers.css (…
Jul 11, 2026
1eb4fed
refactor(css): WP1.1 extract --font-system-ui in homepage-critical.cs…
Jul 11, 2026
865bd56
refactor(css): WP1.1 import css-variables foundation into single-use-…
Jul 11, 2026
c57d27d
refactor(css): WP1.1 extract --font-system-ui in single-use-cases.css…
Jul 11, 2026
baf180a
refactor(css): WP1.1 extract --font-system-ui in single-services.css …
Jul 11, 2026
bcf8720
refactor(css): WP1.1 extract --font-system-ui in single-clients.css (…
Jul 11, 2026
6743cee
refactor(css): WP1.1 extract --font-system-ui in free-consultation-cr…
Jul 11, 2026
7d1cbe6
refactor(css): WP1.1 extract --font-system-ui in services-critical.cs…
Jul 11, 2026
498edbb
refactor(css): WP1.1 extract --font-system-ui in use-cases-critical.c…
Jul 11, 2026
b3db194
docs(css-migration): WP1.1 sprint 1 tracker update - font-system-ui e…
Jul 11, 2026
763996f
refactor(css): WP1.1 S2 delete dead Bootstrap :root block from about-…
Jul 11, 2026
28e7142
refactor(css): WP1.1 S2 delete dead Bootstrap :root block from career…
Jul 11, 2026
937623d
refactor(css): WP1.1 S2 delete dead Bootstrap :root block from homepa…
Jul 11, 2026
7281931
refactor(css): WP1.1 S2 delete dead Bootstrap :root block from single…
Jul 11, 2026
cc09441
refactor(css): WP1.1 S2 delete dead Bootstrap :root block from single…
Jul 11, 2026
f814370
refactor(css): WP1.1 S2 delete dead Bootstrap :root block from single…
Jul 11, 2026
e0dc593
refactor(css): WP1.1 S2 delete dead Bootstrap :root block from single…
Jul 11, 2026
17838e2
refactor(css): WP1.1 S2 delete dead Bootstrap :root block from fl-com…
Jul 11, 2026
4139306
docs(css-migration): sprint 2 tracker update - dead Bootstrap :root p…
Jul 11, 2026
dd607e5
refactor(css): S3 delete orphaned use-cases-critical.css
Jul 11, 2026
ec3275b
refactor(css): S3 remove 8 invalid mid-file @charset declarations
Jul 11, 2026
b111664
feat(css): S3 wire css-variables foundation into the 4 bundles lackin…
Jul 11, 2026
a69c215
docs(css-migration): sprint 3 tracker - orphan+charset+wiring landed,…
Jul 11, 2026
d0da5e7
refactor(css): S3 extract --font-system-ui in skin (3 button groups o…
Jul 11, 2026
987935a
feat(css): S3 inline css-variables foundation site-wide via baseof na…
Jul 11, 2026
91d5da2
feat(css): S3 add --color-ruby design token (brand red #cc342d)
Jul 11, 2026
6ba9b23
refactor(css): S3 tokenize brand red in style.css (9 literals -> --co…
Jul 11, 2026
ef907fc
refactor(css): S3 tokenize brand red in navigation.css (3 literals ->…
Jul 11, 2026
1ae080e
refactor(css): S3 tokenize brand red in single-post.css (2 literals -…
Jul 11, 2026
24439e3
docs(css-migration): sprint 3 complete - option-a protocol, --color-r…
Jul 11, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
81 changes: 70 additions & 11 deletions docs/projects/2509-css-migration/TASK-TRACKER.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,32 +52,47 @@ Lines Eliminated: 0 / 27,394-31,936 target (0% complete)

### Work Package Status

#### WP1.1: CSS Variables Foundation 🔲 NOT STARTED
#### WP1.1: CSS Variables Foundation 🔄 IN PROGRESS
```yaml
status: 🔲 Not Started
status: 🔄 In Progress (font-system-ui extraction COMPLETE 2026-07-11)
priority: P0 🔥 Critical
duration: 4-6 hours
files_affected: 12 inline critical CSS files
impact: 2.8KB savings, ~50 lines eliminated
micro_commits_target: 15-20 commits

tasks:
- [ ] Create _css-variables.scss with design tokens
- [ ] Extract --font-system-ui variable (18 font-family declarations)
- [x] Create foundations/css-variables.css with design tokens (pre-existing, 2025-10-12)
- [x] Extract --font-system-ui variable — ALL exact-match literal stacks
(25 stacks across 8 critical files) replaced with var(--font-system-ui);
@import wired into the 3 no-base bundles (careers, single-careers,
single-use-cases) that never defined the variable
- [ ] Extract --color-primary, --color-secondary, --color-text
- [ ] Extract --border-radius-default, --spacing-unit
- [ ] Update 12 inline critical CSS files to reference variables
- [ ] Validation: bin/rake test:critical (all pass)
- [x] Dedup the identical 35-line Bootstrap :root block copied across
8 critical files — DELETED outright (sprint 2, 2026-07-11): zero
var() consumers repo-wide, so no relocation needed; 280 lines
removed; vendor base-4.min.css copy untouched
- [x] Validation: bin/rake test:critical (46/46 pass, 84 screenshots 0 diffs)
- [x] Validation: bin/dtest Linux gate (46/46 pass, per commit)
- [ ] Validation: FCP metrics unchanged

blockers: NONE
dependencies: NONE (can start immediately)
assigned_to: TBD
started_date: -
assigned_to: Claude (sprint 1, 2026-07-11)
started_date: 2026-07-11
completed_date: -
actual_duration: -
actual_commits: -
notes: Foundation for all CSS variable usage
actual_duration: ~2.5 hours (sprint 1)
actual_commits: 10 (c2a161f6..498edbba), 9 files, +44/-420 lines
notes: |
Foundation for all CSS variable usage.
Sprint-1 findings:
- careers bundle had 4 var(--font-system-ui) usages with NO definition
(unresolved var since a prior partial extraction) — fixed by @import.
- use-cases-critical.css is ORPHANED (no template loads it; repo-wide
grep finds zero loaders). Follow-up: wire into use-cases bundle or delete.
- Variant stacks (short system-ui + Bootstrap-reboot -apple-system-first)
intentionally NOT converted — different values, would be value changes.
```

#### WP1.2: Reset Utilities Extraction 🔲 NOT STARTED
Expand Down Expand Up @@ -533,6 +548,50 @@ fcp_metrics:

## 🔄 UPDATE LOG

### 2026-07-11 (sprint 3)
- **Landed**: orphaned use-cases-critical.css deleted (265 lines); 8 invalid
mid-file @charset removed; css-variables foundation wired into the 4
bundles that lacked it (blog-single, taxonomy list, not_found, course-single)
- **ROLLED BACK**: skin-65eda28877e04.css font-stack extraction (6 stacks).
Root cause: postcss-delete-duplicate-css (production builds only) deletes
the later of two byte-identical declarations; converting skin's body
font-family to var() made it duplicate an earlier critical-CSS declaration,
unmasking a short-variant body rule as cascade winner → 17 macOS screenshot
diffs (Linux green — font resolution masks it). See memory
project-css-var-extraction-dedup-trap.
- **RESOLVED (Paul chose option a — per-case production-bundle masking
analysis)**: skin extraction landed for the 3 button-group stacks only
(d0da5e7b); body/h1/h1-h6 stay literal with KEEP LITERAL comments —
v2 attempt confirmed the minifier hoists merged h1 rules up-cascade
(reviewer hand-traced h1 70px→40px inversion; 17 macOS diffs).
--color-ruby rollout complete: token defined (91d5da27), foundation
inlined site-wide via baseof navigation bundle (987935a1), all 14
literal declarations replaced across style.css/navigation.css/
single-post.css (6ba9b23b, ef907fc8, 1ae080e0) — each commit gated by
production-bundle rule-level diff + rule-count check + both platform
suites; zero rollbacks needed under the option-a protocol.
- **New follow-ups**: root list.html is dead code (no taxonomy pages
generated; its "blog-list" bundleName collides with blog/list.html's) —
rename or remove; --color-ruby token name approved by Paul for #cc342d.

### 2026-07-11 (sprint 2)
- **Action**: Dead Bootstrap :root block deleted from all 8 critical files
- **Metrics**: 8 commits (763996f2..17838e2d), 280 lines removed, 0 added
- **Quality**: 100% test pass both platforms per commit, 0 visual regressions;
reviewer independently re-verified zero consumers of all 28 vars
- **New follow-ups**: stray mid-file @charset in single-services.css,
single-use-cases.css, fl-common-modules.css (pre-existing concat leftovers)
- **Next**: WP1.1 remaining variables (--color-primary already exists in
variables/colors.css naming — reconcile), orphaned use-cases-critical.css

### 2026-07-11
- **Action**: WP1.1 sprint 1 executed — --font-system-ui extraction complete
- **Status**: WP1.1 🔄 In Progress; Phase 1 progress 0→~0.5/4 WPs
- **Metrics**: 10 commits, 9 files, +44/-420 lines (376 net eliminated)
- **Quality**: 100% test pass maintained (macOS + Linux gates per commit), 0 visual regressions
- **Findings**: careers bundle unresolved-var defect fixed; use-cases-critical.css orphaned (follow-up); 35-line :root Bootstrap block duplicated across 8 critical files (queued for sprint 2)
- **Next**: WP1.1 remaining variables (--color-primary, --color-text, spacing/radius) + :root dedup

### 2025-01-27
- **Action**: Initial task tracker created
- **Status**: All phases set to "Not Started"
Expand Down
1 change: 0 additions & 1 deletion themes/beaver/assets/css/586.css
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
/******* Do not edit this file *******
Simple Custom CSS and JS - by Silkypress.com
Saved: Nov 25 2022 | 22:27:19 */
@charset "UTF-8";
/*
* Services Menu Properties
* Please change the variable value below to update
Expand Down
35 changes: 0 additions & 35 deletions themes/beaver/assets/css/critical/about-us-critical.css
Original file line number Diff line number Diff line change
Expand Up @@ -1319,41 +1319,6 @@ button::-moz-focus-inner {
padding: 0;
border: 0;
}
:root {
--blue: #007bff;
--indigo: #6610f2;
--purple: #6f42c1;
--pink: #e83e8c;
--red: #dc3545;
--orange: #fd7e14;
--yellow: #ffc107;
--green: #28a745;
--teal: #20c997;
--cyan: #17a2b8;
--white: #fff;
--gray: #6c757d;
--gray-dark: #343a40;
--primary: #007bff;
--secondary: #6c757d;
--success: #28a745;
--info: #17a2b8;
--warning: #ffc107;
--danger: #dc3545;
--light: #f8f9fa;
--dark: #343a40;
--breakpoint-xs: 0;
--breakpoint-sm: 576px;
--breakpoint-md: 768px;
--breakpoint-lg: 992px;
--breakpoint-xl: 1200px;
--font-family-sans-serif:
-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue",
Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji",
"Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
--font-family-monospace:
SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New",
monospace;
}
*,
::after,
::before {
Expand Down
40 changes: 5 additions & 35 deletions themes/beaver/assets/css/critical/careers-critical.css
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
@charset "UTF-8";

/* CSS Variables Foundation (WP1.1) — careers bundle has no critical/base.css,
so --font-system-ui used below must be imported here */
@import "foundations/css-variables.css";

.fl-node-lru5v2k7htgj {
width: 100%;
}
Expand Down Expand Up @@ -1236,41 +1241,6 @@ button::-moz-focus-inner {
padding: 0;
border: 0;
}
:root {
--blue: #007bff;
--indigo: #6610f2;
--purple: #6f42c1;
--pink: #e83e8c;
--red: #dc3545;
--orange: #fd7e14;
--yellow: #ffc107;
--green: #28a745;
--teal: #20c997;
--cyan: #17a2b8;
--white: #fff;
--gray: #6c757d;
--gray-dark: #343a40;
--primary: #007bff;
--secondary: #6c757d;
--success: #28a745;
--info: #17a2b8;
--warning: #ffc107;
--danger: #dc3545;
--light: #f8f9fa;
--dark: #343a40;
--breakpoint-xs: 0;
--breakpoint-sm: 576px;
--breakpoint-md: 768px;
--breakpoint-lg: 992px;
--breakpoint-xl: 1200px;
--font-family-sans-serif:
-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue",
Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji",
"Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
--font-family-monospace:
SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New",
monospace;
}
*,
::after,
::before {
Expand Down
37 changes: 0 additions & 37 deletions themes/beaver/assets/css/critical/fl-common-modules.css
Original file line number Diff line number Diff line change
Expand Up @@ -261,7 +261,6 @@
}

/* Custom JT Rich Text Styles */
@charset "UTF-8";
.fl-rich-text p {
margin-bottom: 0 !important;
}
Expand Down Expand Up @@ -420,42 +419,6 @@ button::-moz-focus-inner {
}

/* Theme Base Styles (Bootstrap + JT Theme) */
@charset "UTF-8";
:root {
--blue: #007bff;
--indigo: #6610f2;
--purple: #6f42c1;
--pink: #e83e8c;
--red: #dc3545;
--orange: #fd7e14;
--yellow: #ffc107;
--green: #28a745;
--teal: #20c997;
--cyan: #17a2b8;
--white: #fff;
--gray: #6c757d;
--gray-dark: #343a40;
--primary: #007bff;
--secondary: #6c757d;
--success: #28a745;
--info: #17a2b8;
--warning: #ffc107;
--danger: #dc3545;
--light: #f8f9fa;
--dark: #343a40;
--breakpoint-xs: 0;
--breakpoint-sm: 576px;
--breakpoint-md: 768px;
--breakpoint-lg: 992px;
--breakpoint-xl: 1200px;
--font-family-sans-serif:
-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue",
Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji",
"Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
--font-family-monospace:
SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New",
monospace;
}
*,
*::before,
*::after {
Expand Down
45 changes: 3 additions & 42 deletions themes/beaver/assets/css/critical/free-consultation-critical.css
Original file line number Diff line number Diff line change
Expand Up @@ -225,20 +225,7 @@
gap: 25px;
}
.fl-node-ot4qbyieg3xm .pp-infolist-title .pp-infolist-title-text {
font-family:
system-ui,
-apple-system,
"Segoe UI",
Roboto,
"Helvetica Neue",
"Noto Sans",
"Liberation Sans",
Arial,
sans-serif,
"Apple Color Emoji",
"Segoe UI Emoji",
"Segoe UI Symbol",
"Noto Color Emoji";
font-family: var(--font-system-ui);
font-weight: 300;
font-size: 18px;
}
Expand Down Expand Up @@ -388,20 +375,7 @@
padding-left: 35px;
}
.fl-node-bmn85orw3pj1 .pp-gf-content .gform_wrapper .gfield .gfield_label {
font-family:
system-ui,
-apple-system,
"Segoe UI",
Roboto,
"Helvetica Neue",
"Noto Sans",
"Liberation Sans",
Arial,
sans-serif,
"Apple Color Emoji",
"Segoe UI Emoji",
"Segoe UI Symbol",
"Noto Color Emoji";
font-family: var(--font-system-ui);
font-weight: 700;
font-size: 14px;
}
Expand All @@ -413,20 +387,7 @@
[type="button"]
):not([type="image"]):not([type="file"]),
.fl-node-bmn85orw3pj1 .pp-gf-content .gform_wrapper .gfield textarea {
font-family:
system-ui,
-apple-system,
"Segoe UI",
Roboto,
"Helvetica Neue",
"Noto Sans",
"Liberation Sans",
Arial,
sans-serif,
"Apple Color Emoji",
"Segoe UI Emoji",
"Segoe UI Symbol",
"Noto Color Emoji";
font-family: var(--font-system-ui);
font-weight: 400;
font-size: 18px;
}
Expand Down
Loading
Loading