Skip to content

Build Services page: closing CTA section (LS-1598) - #56

Open
brandonmarshal wants to merge 4 commits into
feature/ls-1598-services-page-batch-3from
feature/ls-1598-services-page-batch-4
Open

Build Services page: closing CTA section (LS-1598)#56
brandonmarshal wants to merge 4 commits into
feature/ls-1598-services-page-batch-3from
feature/ls-1598-services-page-batch-4

Conversation

@brandonmarshal

Copy link
Copy Markdown
Collaborator

Summary

Adds the Services page's closing CTA: "Let's scope it properly." This is the last of the 3 remaining content sections for LS-1598 — together with the sections in the earlier stacked PRs, the page's content is now complete.

Stacked on #55 — this branch is feature/ls-1598-services-page-batch-4, based off feature/ls-1598-services-page-batch-3.

CTA pattern

  • Renamed patterns/section-cta.php (an empty, unused stub — no template or pattern anywhere referenced it) to patterns/sections/services-cta.php, built out fully: eyebrow, heading, description, and a single button.
  • The button reuses the exact "Request a systems review" label and /free-consultation/ link already established in services-hero.php, rather than introducing a new destination.
  • Panel set to an 800px max width via contentSize, with align:"wide" removed (it was overriding that constraint).

Shared corner-glow background

  • Added src/scss/structural/corner-glow.scss: a shared, multi-consumer two-corner radial-gradient glow (.ls-corner-glow). color.gradient block support only accepts a single gradient value, not layered gradients — same JSON limitation already documented in search-hero.scss/work-hero.scss/blog-hero.scss.
  • Built to be genuinely reusable across future CTAs with different colors: the two glow colors/opacities are CSS custom properties with sensible fallbacks (effect.hero.brand/effect.hero.cyan), so a future consumer overrides them inline rather than duplicating the file.
  • Wired into inc/animations.php with a real is_page( 'services' ) condition from the start (matching the same-session convention already applied to other Services bundles), package.json, and functions.php.

Fixed

  • The gradient's size was initially decoded wrong from Figma's SVG matrix: the base circle has r="10" (user-space units), scaled by the transform's 76.861 — the actual radius is 10 × 76.861, not 76.861 alone. Using the scale factor alone produced glow blobs roughly 10x too small, reading as small hard circles instead of the intended soft, wide wash. Corrected to 87.5% 172.4% (from 8.75% 17.24%), with the mistake documented directly in the file's own comment.

Test plan

  • npm run schema:validate — all JSON files pass
  • npm run patterns:escape — clean
  • npm run security:scan — clean
  • php -l on the new pattern file — no syntax errors
  • vendor/bin/phpcs --standard=WordPress on the new pattern file and inc/animations.php — clean
  • Verified live on a local WP install: correct copy, panel confirmed at exactly 800px width, gradient background-image computed values confirmed the corrected size/position/color after the fix, stylesheet confirmed loading in <head>
  • Manual visual QA in the Site Editor / cross-browser check

Stacks on #55 (LS-1598).

- Rename patterns/section-cta.php (empty, unused stub) to
  patterns/sections/services-cta.php, built out: "Let's scope it
  properly." — eyebrow, heading, description, and a single button
  reusing the exact "Request a systems review" button already
  established in services-hero.php (same label, same link)
- Add src/scss/structural/corner-glow.scss: a shared, multi-consumer
  two-corner gradient glow class (.ls-corner-glow) — colours and
  opacities are CSS custom properties so future consumers can
  override them inline instead of duplicating the file
- Wire into build/enqueue like the other sections (real
  is_page('services') condition from the start)

Bug fix
- Corrected a Figma SVG gradient matrix decode error: the gradient's
  base circle has r="10" (user-space units), scaled by the matrix's
  76.861 — actual radius is 10 × 76.861, not 76.861 alone. Using the
  scale factor alone produced blobs ~10x too small, reading as hard
  circles instead of the intended soft, wide wash
- Set the CTA panel to a real 800px max width (contentSize, with
  align:"wide" removed since it was overriding the constraint)
- Rename patterns/section-cta.php (empty, unused stub) to
  patterns/sections/services-cta.php, built out: "Let's scope it
  properly." — eyebrow, heading, description, and a single button
  reusing the exact "Request a systems review" button already
  established in services-hero.php (same label, same link)
- Add src/scss/structural/corner-glow.scss: a shared, multi-consumer
  two-corner gradient glow class (.ls-corner-glow) — colours and
  opacities are CSS custom properties so future consumers can
  override them inline instead of duplicating the file
- Wire into build/enqueue like the other sections (real
  is_page('services') condition from the start)

Bug fix
- Corrected a Figma SVG gradient matrix decode error: the gradient's
  base circle has r="10" (user-space units), scaled by the matrix's
  76.861 — actual radius is 10 × 76.861, not 76.861 alone. Using the
  scale factor alone produced blobs ~10x too small, reading as hard
  circles instead of the intended soft, wide wash
- Set the CTA panel to a real 800px max width (contentSize, with
  align:"wide" removed since it was overriding the constraint)
@brandonmarshal brandonmarshal added area:theme Theme & styles (templates, template parts, FSE) comp:block-patterns Patterns library/registration comp:style-variations JSON style variations lang:css Stylesheets lang:php PHP code priority:normal Default priority for most issues. status:needs-review Awaiting code review labels Sep 11, 2026
@linear-code

linear-code Bot commented Sep 11, 2026

Copy link
Copy Markdown

LS-1598

@brandonmarshal brandonmarshal self-assigned this Sep 11, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Two moderate issues remain, along with minor UK-English spelling nits.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

Adds the closing Services CTA and reusable corner-glow styling, with frontend/editor asset wiring.

Changes:

  • Adds the Services CTA pattern and removes the unused stub.
  • Adds and compiles shared corner-glow CSS.
  • Updates asset loading, build configuration, and changelog documentation.
File summaries
File Summary
src/scss/structural/corner-glow.scss Adds reusable glow styling.
patterns/sections/services-cta.php Adds the closing CTA pattern; icon dimensions and documentation spelling need updates.
patterns/section-cta.php Removes the unused CTA stub.
package.json Adds CSS build targets.
inc/animations.php Adds conditional asset loading; reusable copies may load styling too late.
functions.php Adds editor stylesheet loading.
CHANGELOG.md Documents the changes; spelling nit remains.
assets/css/corner-glow.css Compiled glow stylesheet.
Review details

Files not reviewed (1)

  • assets/css/corner-glow.css: Generated file

Suppressed comments (2)

patterns/sections/services-cta.php:29

  • The dimensions object is outside style, unlike the working core/icon markup in services-hero.php:114 and the other Services sections. Core Icon dimensions are serialised under style.dimensions; with this shape the 8px width is ignored and the dot renders at the default icon size. Move dimensions into style.
			<!-- wp:icon {"icon":"lightspeed/dot","className":"has-text-color","style":{"color":{"text":"var(--wp--custom--color--text--brand)"}},"dimensions":{"width":"8px"}} /-->

patterns/sections/services-cta.php:7

  • This pattern description uses US spelling; please use “centred” to keep the repository's documentation in UK English.
 * Description: The Services page's closing CTA: "Let's scope it properly." A centered eyebrow/
  • Files reviewed: 7/8 changed files
  • Comments generated: 3
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread inc/animations.php Outdated
Comment thread CHANGELOG.md Outdated
Comment thread patterns/sections/services-cta.php Outdated
Bug fix
- services-cta.php: fix wp:icon dimensions being a sibling of style
  instead of nested inside it — same bug class already fixed on
  PR #55, the eyebrow dot was rendering at the 24px default instead
  of 8px
- inc/animations.php: load corner-glow.css unconditionally instead
  of gating it on is_page('services') — services-cta.php declares
  Inserter: true, so an editor can place it (and this shared class)
  on any page, where the condition would leave it caught only by
  the render_block/footer fallback. Same precedent as card-shells/
  cta-buttons: cheap enough (~400 bytes) to load unconditionally

Cleanup
- Use UK-English spelling ("colour"/"colours", "centred") in prose
  documentation comments in services-cta.php and CHANGELOG.md,
  matching AGENTS.md's own established convention — CSS property
  names and values are unaffected, only English prose
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:theme Theme & styles (templates, template parts, FSE) comp:block-patterns Patterns library/registration comp:style-variations JSON style variations lang:css Stylesheets lang:php PHP code priority:normal Default priority for most issues. status:needs-review Awaiting code review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants