Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
13 changes: 8 additions & 5 deletions docs/projects/2509-css-migration/TASK-TRACKER.md
Original file line number Diff line number Diff line change
Expand Up @@ -461,7 +461,7 @@ follow_ups:

## 📅 PHASE C (CURRENT PLAN): Post-burn-down cleanup — sprints C1–C3

**Phase Status**: 🔄 C1 (PR #371, merged) · C2 (PR pending) · C3 next
**Phase Status**: C1 (PR #371) · C2 (PR #372) · C3 (PR #374) · C4 page re-keys (PR pending) - criterion 2 markup side COMPLETE: zero hashed fl-node classes in any template
**Source**: Spec §"Phase C — post-burn-down cleanup" (revision 2026-07-18) —
read it FIRST; it defines the gate stack, the preflight rule, the
dedup-trap warning, and the non-goals (no DOM restructuring, no rule-content
Expand Down Expand Up @@ -584,13 +584,16 @@ C2.1 all 10 testimonial nodes -> testimonials-* (incl. purge-safelist
companion: /^testimonials-/ + /^cta-banner/ greedy entries replace the
accidental /^fl-node/ shield for runtime pp-* classes); C2.2 all 7 CTA
nodes -> cta-banner-* (swept across the partial + 6 inline template
copies); C2.3 skin -> legacy-theme-skin.css (NAME AWAITING PAUL);
copies); C2.3 skin -> legacy-theme-skin.css (name APPROVED by Paul 2026-07-19);
C2.4 dynamic-404.css; C2.5 586.css masked-background deletion;
C2.6 safe-edit headers. Gate held: every re-key byte-identical after
guarded reverse substitution; renames fingerprint-identical.
FOLLOW-UP for Paul: .jt-reviews-box swiper-arrow design has been
silently purged in production (runtime classes, no shield) - restoring
it is an intentional visual change needing a design decision.
POSTPONED (Paul, 2026-07-19): .jt-reviews-box swiper-arrow design
restoration. The intended testimonial-slider arrow styling (hover
arrows, 44% placement, bottom position) is silently purged in
production (runtime pp-swiper classes have no purge shield). To
restore: add /^pp-swiper/ + /^pp-review/ to the purge greedy safelist,
re-baseline BOTH platforms, design review of the restored slider.

**Branch**: `css-migration/c2-deobfuscate-shared`
**Depends on**: C1 merged (re-key each shared block once, not 7×).
Expand Down
1 change: 1 addition & 0 deletions postcss.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ const purgecss = createPurgeCss({
// runtime classes like pp-swiper-button/pp-review-image are never in
// hugo_stats.json, so without this the renamed rules get purged).
/^testimonials-/, /^cta-banner/, /^career-/, /^clients-/,
/^notfound-/, /^use-case-/, /^services-/, /^service-/, /^about-/, /^home-/, /^careers-/,
// Brand CTA buttons — preserve any selector mentioning these classes.
// Standard safelist didn't catch tag+class compound selectors like
// `a.fl-button` on CI (produced blue pills instead of Ruby red).
Expand Down
4 changes: 2 additions & 2 deletions test/system/mobile_site_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -181,15 +181,15 @@ def test_about_page_section_core_values
visit "/about-us/"
preload_all_images

scroll_to(find(".fl-node-os8vrc1dwlji"))
scroll_to(find(".about-values-header-col"))
assert_stable_screenshot "about_page/values", tolerance: 0.03
end

def test_about_page_section_achievements
visit "/about-us/"
preload_all_images

scroll_to(find(".fl-node-nb2thxdw075q"))
scroll_to(find(".about-achievements-eyebrow"))
assert_stable_screenshot "about_page/achievements", tolerance: 0.03
end

Expand Down
Loading
Loading