Editorial spine layout (step 5) + homepage pattern validation fixes#25
Merged
Conversation
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.
✅ WordPress Plugin Check Report
📊 ReportAll checks passed! No errors or warnings found. 🤖 Generated by WordPress Plugin Check Action • Learn more about Plugin Check |
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.
Step 5 of the Aviendha redesign — the editorial spine layout that steps 7–10 build on.
New block:
aludra/spine-sectionA 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-blockis-style-spinevariants 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-tiersandreview-profilesare all thinInnerBlockswrappers with no heading — the headings arecore/headingblocks inside the InnerBlocks inpage-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:
--aludra-spine-top(default 100px) rather than hardcoded, so a theme with a different masthead height can retune it.Pattern validation fixes
page-homepage.phpfailed block validation onmainbefore this branch. Accumulated mismatches:alignfull is-style-night)block.jsondefaultswp:imagewidth/heightas numbers rather than"26px"strings, plus staleis-resizedclasses"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 touchingpatterns/and document fixing a failure from the validator's ownsavedContentrather than by hand.sentinel-*.log.jsonis now gitignored.Verification
npm run validatehttp://demo.imagewize.test/aviendha/: spine renders as designed, collapses correctly, and the canonical pattern rewrite caused no visual regressionsREADME.md,docs/BLOCKS.md,CHANGELOG.md,readme.txt, version 2.22.0