WireKit v2.15.0
Feature release. A broad set of marketing, ecommerce, control and mobile components — the blocks a landing page, a store, and a mobile app-shell were missing — plus SEO structured-data builders and a drop-in dark-mode toggle. All additive; one existing component (Carousel) was rebuilt on a more robust foundation with no API break.
Added
- Pricing Table. The plan grid — tiers, features, a highlighted plan, monthly/annual framing — the shape a SaaS pricing page needs, composed from tokens rather than a bespoke layout.
- Testimonial. A cited quote with author, role, avatar and an optional read-only star rating (announced as a single record, never an operable control), plus a grid to lay several out.
- FAQ. An accordion of questions that emits
FAQPageJSON-LD derived from what it actually rendered — the structured data can't drift from the visible copy because it is generated from it. - Logo Cloud and Team Section. The two marketing blocks WireKit had no exemplar for — a "trusted by" logo strip and a people grid.
- Announcement Banner. A dismissible page-edge bar (top or bottom) with an optional inline CTA. The dismissal persists by default; set
persistoff for a session-only bar that reappears next visit instead of being remembered. - Bento Grid. An asymmetric feature showcase — cells span a real column/row ladder and collapse to a single stacked column when the grid itself is narrow (a container query — a sidebar, a card, a split view — reflowing on its own width, independent of the viewport), reclaiming their spans once it is wide again; an unknown span degrades to a normal cell rather than a broken track claim.
- Mockup. Frame chrome — browser, window, code, phone and tablet — for screenshots and demos. Every surface, border and shadow is a design token, so the frame follows the theme; the chrome is decorative and hidden from assistive technology.
- Product Card. The ecommerce keystone — image, price with an optional compare-at, rating, stock state, and a call-to-action.
- Button Group. Welds adjacent controls (buttons, an input + button) into one unit — inner radii collapsed to a single seam, RTL-safe via logical properties.
- Toggle Button. An
aria-pressedtoggle — a button that stays down, for a single on/off state. Opt intoself-toggleand it flips its own pressed state on click (a formatting toolbar with no wiring); the controlled form — the pressed state lives in your app — stays the default. - Indicator. A corner-badge positioner — a count or dot that rides the corner of any element (an avatar, an icon button) via logical insets.
- Radial Progress. A circular progress ring — a real
progressbarwith the value announced, drawn from tokens. Opt intoanimateto sweep the fill from empty on first paint and animate later value changes instead of snapping, gated byprefers-reduced-motion. - Bottom Nav and FAB. The two mobile app-shell pieces WireKit was missing — a fixed bottom tab bar (opt into
interactiveto track the current tab client-side: clicking a tab marks it active with no page load) and a floating action button that fans out into secondary actions (keyboard-operable). - Theme Controller and Swap. Drop-in dark mode — a control that toggles the theme with no wiring and no flash-of-wrong-theme, and a
swapprimitive that cross-fades between two states (the sun/moon icon being the canonical case). - Schema builders. Typed PHP builders for schema.org JSON-LD (the same engine the FAQ block uses to derive its
FAQPagedata), for emitting structured data from your own components.
Changed
- Carousel was rebuilt on native scroll-snap. The slider now rides the browser's own scroll-snap instead of a JavaScript transform, so it is smoother, keyboard- and touch-native, and lighter; autoplay gained a stop button, and a
perViewshows 2–4 slides at once. No API break — existing usage keeps working.
Fixed
- Progress — label and value no longer jam at narrow widths. The label / value row gained a column gap so the two can never touch.