Skip to content

Editorial spine layout (step 5) + homepage pattern validation fixes#25

Merged
jasperf merged 1 commit into
mainfrom
redesign/spine-section
Jul 21, 2026
Merged

Editorial spine layout (step 5) + homepage pattern validation fixes#25
jasperf merged 1 commit into
mainfrom
redesign/spine-section

Conversation

@jasperf

@jasperf jasperf commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Step 5 of the Aviendha redesign — the editorial spine layout that steps 7–10 build on.

New block: aludra/spine-section

A page section with a sticky label/heading/aside column on the left and its content on the right, collapsing to a single stacked column (sticky disabled) below 860px. Ported from designs/aviendha/aviendha-redesign.html (.section/.shell/.spine).

Label/heading/aside are RichText attributes; content is InnerBlocks, so the block wraps existing section blocks rather than replacing them.

Deviation from the plan

docs/aludra/AVIENDHA-REDESIGN-BLOCKS.md §3 recommended option C (per-block is-style-spine variants sharing an SCSS partial), rejecting a wrapper block because "existing blocks already render their own heading/label internally."

That isn't true of the code. about, services-block, faq-tabs, pricing-tiers and review-profiles are all thin InnerBlocks wrappers with no heading — the headings are core/heading blocks inside the InnerBlocks in page-homepage.php. With that objection gone, the wrapper wins on what option C was trying to buy: one CSS source instead of six, no per-block attribute plumbing, and free retrofitting of future sections. Decision recorded in the doc.

Two things the sketch didn't anticipate:

  • Every Aludra section block ships its own page shell (content-size max-width, auto margins, inline + vertical padding), because until now each one was the section. Nested in the spine's already-constrained track that double-applies — the content column gets capped again and indented past the spine's own label, most visibly on mobile. Suppressed for direct children only, so standalone use is unaffected.
  • The sticky offset is --aludra-spine-top (default 100px) rather than hardcoded, so a theme with a different masthead height can retune it.

Pattern validation fixes

page-homepage.php failed block validation on main before this branch. Accumulated mismatches:

  • class ordering normalized by the editor (alignfull is-style-night)
  • attributes explicitly set to their block.json defaults
  • wp:image width/height as numbers rather than "26px" strings, plus stale is-resized classes
  • paragraphs using deprecated "align":"center" instead of "style":{"typography":{"textAlign":"center"}}

The pattern body is now the editor's own canonical serialization. All 9 patterns pass.

Why it went unnoticed

The validator (npm run validate, @imwz/wp-pattern-sentinel) was documented in neither CLAUDE.md nor AGENTS.md, so the last few PRs shipped without it — and these mismatches only surface in the editor console, never in a frontend screenshot. Both files now require it for any PR touching patterns/ and document fixing a failure from the validator's own savedContent rather than by hand. sentinel-*.log.json is now gitignored.

Verification

  • All 9 patterns pass npm run validate
  • Desktop + mobile screenshots on http://demo.imagewize.test/aviendha/: spine renders as designed, collapses correctly, and the canonical pattern rewrite caused no visual regressions
  • Docs updated: README.md, docs/BLOCKS.md, CHANGELOG.md, readme.txt, version 2.22.0

Step 5 of the Aviendha redesign: the editorial spine layout.

New aludra/spine-section wraps a section's content with a sticky
label/heading/aside column beside it, collapsing to a single stacked
column below 860px. Implemented as a wrapper block rather than the
per-block is-style-spine variant the plan called for — that option was
rejected on the grounds that section blocks render their own headings,
which none of them actually do (all five are thin InnerBlocks wrappers,
headings live in the pattern). One CSS source instead of six.

Also fixes page-homepage.php, which failed block validation on main:
class ordering, attributes set to their defaults, numeric image
width/height, and deprecated paragraph align attributes had accumulated
across steps 3, 4 and 6. The pattern body is now the editor's own
canonical serialization; all 9 patterns pass.

The validator was documented in neither CLAUDE.md nor AGENTS.md, which
is why this went unnoticed — both now require it for PRs touching
patterns/ and describe how to fix a failure.
@github-actions

Copy link
Copy Markdown

✅ WordPress Plugin Check Report

✅ Status: Passed

📊 Report

All checks passed! No errors or warnings found.


🤖 Generated by WordPress Plugin Check Action • Learn more about Plugin Check

@jasperf
jasperf merged commit 61482be into main Jul 21, 2026
2 checks passed
@jasperf
jasperf deleted the redesign/spine-section branch July 21, 2026 08:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant