Migrate Work section patterns to the Core Icon block (LS-3229) - #47
Open
brandonmarshal wants to merge 6 commits into
Open
Migrate Work section patterns to the Core Icon block (LS-3229)#47brandonmarshal wants to merge 6 commits into
brandonmarshal wants to merge 6 commits into
Conversation
Icon block conversion
- Replace outermost/icon-block with core/icon across 8 nav files
- Reference lightspeed/{name} icons instead of inline SVG
- Cover all 81 instances: mega-menus, mobile menu, menu-item-card pattern
Icons used
- about-mega-menu: lightbulb, rocket, shield, trend-up, seal-check, wheelchair
- insights-mega-menu: cube, brain, arrows-clockwise, tray, palette, book
- pricing-mega-menu: stack, building-office, archive, trending-up, calculator, seal-check
- solutions-mega-menu: credit-card, newspaper, brain, chat, cart, airplane-tilt, palette
- work-mega-menu: folder (x2), puzzle-piece, cart, database, quote
- mobile-menu, services-mega-menu: dot (per lifecycle phase) + chevron-right
- All mega-menus, menu-item-card: arrow-right (chevron)
Verification
- Zero remaining outermost/icon-block references across all 8 files
- PHP block-rendering test confirms correct SVG output, no errors
- Manual QA in Site Editor and live frontend, light and dark
Icon block conversion
- Replace outermost/icon-block with core/icon across 8 homepage files
- Reference lightspeed/{name} icons instead of inline SVG
- Cover 35 of 37 instances (2 skipped, see below)
Icons used
- home-hero, home-hero-static, homepage-cta, homepage-featured-work: dot
- home-hero: special-interests, arrow-right
- homepage-what-we-build: category, cart, puzzle-piece, arrows-clockwise
- homepage-where-to-fit: house, trending-up, building-office, check (x12)
- homepage-where-to-start: folder
- homepage-why-lightspeed: check (x5)
Known gaps
- homepage-where-to-start.php: 2 instances left as outermost/icon-block
(notepad and clipboard-text shapes have no lightspeed collection match
yet); tracked in LS-3229's "Missing icons" list for a later bulk pass
Verification
- Zero unintended remaining outermost/icon-block references (2 expected exceptions)
- PHP block-rendering test confirms correct SVG output, no errors
Icon block conversion
- Replace outermost/icon-block with core/icon across 8 Work files
- Reference lightspeed/{name} icons instead of inline SVG
- Cover all 19 instances, zero remaining outermost/icon-block
Icons used
- work-hero, work-single-hero, work-discuss-project, work-selected-projects: dot
- work-capability-list, work-categories: category, cart, cube
- work-next-steps-card, work-related-routes: arrow-right (x8 total)
Verification
- Zero remaining outermost/icon-block references across all 8 files
- PHP block-rendering test confirms correct SVG output, no errors
- Nested pattern includes (work-capability-list, eyebrow-badge) verified
to inflate render counts as expected, not indicative of any issue
There was a problem hiding this comment.
🟢 Approval recommended
The migrations are consistent with existing wp:icon usage in the repo and the updated pattern markup remains valid and self-contained.
Pull request overview
This PR continues the LS-3229 migration away from the third-party outermost/icon-block plugin block by converting all Work-section pattern icon instances in this batch to the native core/icon (wp:icon) block, using the lightspeed/* icon collection.
Changes:
- Replaced decorative “dot” icons in Work hero/section headers with
wp:iconinstances using semantic colour tokens. - Replaced “category/cart/cube” capability icons with
wp:iconinstances sized viastyle.dimensions.width. - Replaced all “arrow-right” trailing icons in Work route cards with
wp:iconinstances, preserving semantic colour usage and sizing.
File summaries
| File | Description |
|---|---|
| patterns/hero/work-hero.php | Migrates the hero eyebrow dot from outermost/icon-block to wp:icon (lightspeed/dot). |
| patterns/hero/work-single-hero.php | Migrates the single-work hero eyebrow dot to wp:icon (lightspeed/dot). |
| patterns/cards/work-capability-list.php | Migrates the three capability icons to wp:icon (lightspeed/category, lightspeed/cart, lightspeed/cube). |
| patterns/cards/work-next-steps-card.php | Migrates the trailing arrow icon to wp:icon (lightspeed/arrow-right) with semantic colour token. |
| patterns/sections/work-categories.php | Migrates the three category card icons to wp:icon with consistent sizing. |
| patterns/sections/work-discuss-project.php | Migrates the section eyebrow dot to wp:icon (lightspeed/dot). |
| patterns/sections/work-related-routes.php | Migrates the section eyebrow dot and all trailing arrows to wp:icon (lightspeed/dot, lightspeed/arrow-right). |
| patterns/sections/work-selected-projects.php | Migrates the section eyebrow dot to wp:icon (lightspeed/dot). |
Review details
- Files reviewed: 8/8 changed files
- Comments generated: 0
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
This was referenced Sep 9, 2026
brandonmarshal
added a commit
that referenced
this pull request
Sep 9, 2026
…ration (LS-3720) (#49) * Fix legacy outermost/icon-block CSS selectors broken by Core Icon migration (LS-3720) Bug fix - Add .wp-block-icon alongside .wp-block-outermost-icon-block in _menu-motion.scss (mega-menu chevron hover/focus color + reduced-motion) - Add .wp-block-icon alongside .wp-block-outermost-icon-block .icon-container in work-archive-sections.scss (card-link-row hover/focus icon color) - Both fixes are additive: any not-yet-converted outermost/icon-block instance keeps working, core/icon instances now get the same treatment Cleanup - Remove dead .site-footer .icon-container svg{fill:currentColor} rule from _footer-motion.scss — redundant now that every lightspeed/* icon bakes fill="currentColor" into its own path, and WP core's default stylesheet already forces .wp-block-icon svg{fill:currentColor} - Delete assets/css/animations.min.css — stale, unenqueued build artifact with no reference anywhere in the codebase Context - Found via audit LS-3719, filed as bug LS-3720 - Not stacked on the LS-3229 batch PR chain (#44/#45/#47/#48) since none of these files overlap with those diffs; branched off develop Verification - npm run build:css run in full; only animations.css and work-archive-sections.css changed - Compiled CSS selector counts verified (4+4 and 2+2 respectively) - Confirmed zero remaining references to animations.min.css before deleting * Move mega-menu icon hover colour out of the motion partial (LS-3720) Bug fix - Relocate `.is-style-mega-menu-item-default` icon hover/focus `color` rule from `src/scss/animations/_menu-motion.scss` to `src/scss/structural/_mega-menu.scss` - Animations partial now only holds the `transition` property and its reduced-motion override, per AGENTS.md's motion-only rule for `src/scss/animations/**` Context - Addresses Copilot review feedback on PR #49: the colour swap is a non-motion property and belongs in the structural partial alongside the existing `.is-style-mega-menu-item-default` rules - Rebuilt `assets/css/animations.css` to reflect the change * Updating CHANGELOG.md
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.
Summary
Replaces
outermost/icon-block(third-party "Icon Block" plugin) instances in the Work section patterns with WordPress 7.1's native Core Icon block (core/icon), referencing icons from thelightspeedcollection registered inls-plugin. Third of 5 stacked batches migrating all 38outermost/icon-blockusages across the theme (see LS-3229). Stacked onfeature/ls-3229-icon-block-homepage(#45).Files changed (8 files, 19 icon instances — all converted, no gaps)
patterns/hero/work-hero.php—dotpatterns/hero/work-single-hero.php—dotpatterns/cards/work-capability-list.php—category,cart,cubepatterns/cards/work-next-steps-card.php—arrow-rightpatterns/sections/work-categories.php—category,cart,cubepatterns/sections/work-discuss-project.php—dotpatterns/sections/work-related-routes.php—dot+arrow-right×7patterns/sections/work-selected-projects.php—dotNo missing icons in this batch — nothing added to LS-3229's tracking list.
Markup change
Same pattern as Batches 1–2 —
core/iconis dynamic (server-rendered), so every instance collapses to a single self-closing comment, e.g.:Icon mapping verification
Every icon assignment was verified by exact-path-matching the source
<svg>against the real files inls-plugin/assets/icons/lightspeed/.work-capability-list.phpandwork-categories.phpboth had an icon exact-matchlightspeed/cartin a slot the mapping doc had attributed tofolder— same doc-correction pattern already confirmed in Batch 2'shomepage-what-we-build.php, verified against the actual collection file, not guessed.Test plan
outermost/icon-blockcount is 0 across all 8 changed files (scripted check)wp:iconinstance count matches the verified 19-instance mapping table exactly, per filewp:iconJSON attribute payload parses as valid JSON (scripted check across all 8 files)parse_blocks+render_blockviawp eval-file) on all 8 files — zero errors, correct<svg>/.wp-block-iconcount per file, including nested-pattern inflation (work-hero.phppulling inwork-capability-list.php's icons;work-categories.phppulling in the still-unconvertedeyebrow-badge.php, correctly left alone as a Batch 4 file) confirmed as expected rather than a bugPart of LS-3229 (Batch 3 of 5). Next: Batch 4 (Blog, cards & misc content) on a branch stacked on top of this one, once this PR is reviewed.