Spine-section styles for services, pricing, reviews and FAQ (steps 7–10)#26
Merged
Conversation
Steps 7-10 of the Aviendha redesign: the four remaining homepage sections move into aludra/spine-section and pick up the mockup's treatment. - services-block: is-style-list — hairline rows with a CSS-counter index - pricing-tiers: is-style-spec-sheet — one bordered sheet, internal rules - review-profiles: is-style-quotes — avatar-free cards with attribution - faq-tabs: native displayMode — real <details>, no JavaScript review-profiles was given a variant rather than swapping the pattern to testimonial-grid, which renders a Slick carousel and would have reintroduced jQuery and Slick right after 2.21.1 removed them. faq-tab-answer carries its own copy of displayMode because block context is not available inside save(); the parent keeps it in sync in the editor. Its existing `display: none` default, which tabs/accordion rely on view.js to undo, hid the whole FAQ in native mode and is now scoped to non-details. Also replaces the review avatar placeholder with the eos-face icon from Blade UI Kit (MIT, credited in readme.txt), recoloured warm and with a transparent backdrop. All 9 patterns pass npm run validate.
✅ 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.
Steps 7–10 of the Aviendha redesign. The four remaining homepage sections move into
aludra/spine-section(added in 2.22.0) and pick up the mockup's treatment. Released as 2.23.0.Design target:
designs/aviendha/aviendha-redesign.htmlin the imagewize.com repo; per-section rationale indocs/aludra/AVIENDHA-REDESIGN-BLOCKS.md§§5–8 there.What's in it
services-blockis-style-list— single-column hairline rows (icon, heading + copy, mono two-digit index) instead of two-per-row cardspricing-tiersis-style-spec-sheet— one bordered container split by internal hairlines, no shadow, no hover liftreview-profilesis-style-quotes— avatar-free quote cards with role + sector attributionfaq-tabsnativedisplay mode — real<details>/<summary>, no JavaScriptThe default styles (
cards/avatars/tabs) are untouched, so Elayne and other consumers are unaffected.patterns/page-homepage.phpwraps each of the four sections in a spine section, moves their standalone headings into the spine column, and replaces the pricing section's Nynaeve-specific font-size slugs (3xl,lg,xs) and per-element inline border/spacing styles with the shared scale and variant CSS.Decisions worth flagging
testimonial-gridwas the wrong answer for step 9. The plan floated swapping the pattern to it, on the strength of its description being avatar-free. But it ships adata-slickpayload and aviewScript— adopting it would have put jQuery and Slick straight back on the page that 2.21.1 had just cleared. A style variant onreview-profileskeeps the page script-free and reuses the existing content model.Native FAQ needed the child to carry its own
displayMode. Block context is only available ineditand server-siderender_callback, never insidesave()— sofaq-tab-answercan't read the parent's mode at save time, and it has to, because native mode changes its markup. The value is duplicated onto each child as a real attribute and mirrored by the parent'sedit.js(guarded by an equality check so it doesn't loop).Pricing turned out not to be a pure content rewrite. The featured tier's 3px top accent bar is a
::before; core column attributes can't express it, so it needed a real style variant rather than just pattern markup.The services index is a CSS counter, not authored
01/02text, so it can't drift out of step when an author reorders, adds or removes a row.Fixed along the way
.faq-tab-answer { display: none }hid the entire FAQ in native mode. The rule exists so tabs/accordion can reveal one answer at a time via an.activeclass thatview.jsadds — and native mode deliberately never runsview.js. All four<details>were in the page and validated fine, but rendered invisible. Now scoped sodetails.faq-tab-answerstays visible.Worth remembering as a class of bug: switching off a block's JavaScript can strand CSS that was relying on it.
Also
assets/placeholders/avatar.svg— replaced the hand-drawn front-facing bust, drawn in cool greys (#e5e7eb/#9ca3af) that the palette contract set out to remove, with the eos-face icon from Blade UI Kit (MIT, credited in readme.txt) recoloured into Aludra's warm neutrals. No background disc, so it takes on whatever surface it's dropped onto instead of stamping a fixed cream circle onto all of them.Testing
npm run validate— all 9 patterns pass, includingpage-homepage.php.http://demo.imagewize.test/aviendha/) at desktop and mobile: pricing stacks to a single sheet with horizontal dividers at 781px (matching where core stacks columns), the services index drops below 560px, and the first FAQ entry renders open.