A review summary that earns its numbers: as it scrolls into view the average counts up, the stars fill to the exact fraction and the five rating bars grow one after another with their counts; click a bar to filter the reviews below to that star level.
Everything derives from `[[stars, count]…]`: average = Σs·n / Σn, star clip width = avg / 5, bar width = n / max(n) (not of total, so the top bar always reaches full width and smaller levels stay legible). Fill uses `transform: scaleX()` from the left with a 900 ms `cubic-bezier(.2,.8,.2,1)` and per-row delay.
From prompt to a block in your page.
The preview is the shipped block inside a neutral demo page. Scroll, hover, drag: everything is live.
Token sets re-tint the block live. The prompt carries the one you chose.
A paste-in snippet, or a component for Next.js, React, Vue, Astro, WordPress, Shopify or Webflow.
It quotes the block's markup, styles and script verbatim with the tokens and the rules that keep it self-contained.
Add the head lines it names, paste the block, replace the placeholder copy. Tokens live on :root.