crucıble

Gazette

A print / newspaper theme preset: a warm-newsprint editorial panel with a serif masthead, a red section kicker, folio rules, a spanning headline with an italic deck, a small-caps byline, justified body columns with column rules and a drop-cap, and a genuine halftone-dot photo. The switcher cycles editions, swapping content and paper tone (cream / gray / sepia) with a soft page crossfade. ARIA tablist over a tabpanel; reduced motion swaps instantly.

motionpro

Installation

CLI

npx shadcn@latest add @crucible/gazette

Manual — install dependencies, then copy the source

npm install motion

Props

PropTypeDefaultDescription
editionsGazetteEdition[]three built-in front pagesEditions the switcher cycles through.
editionnumberControlled edition index.
defaultEditionnumber0Initial edition index when uncontrolled.
onEditionChange(index: number) => voidFires with the next edition index on every switch.
columnsnumber3Body column count.
accentstring"#b3261e"Masthead / kicker / drop-cap accent (the red).
tonesPartial<Record<GazetteTone, Partial<GazetteTonePalette>>>Per-tone palette overrides, deep-merged over the built-in tones.
showSwitcherbooleantrueRender the edition switcher chrome.
durationnumber0.5Seconds a page-swap crossfade takes.
pausedbooleanfalseFreeze all transitions to an instant static swap.
labelstring"Choose an edition"Accessible label for the switcher tablist.
Also accepts all props of Omit<React.ComponentPropsWithoutRef<"article">, "onChange">they pass through to the underlying element.

Honors prefers-reduced-motion with a designed static fallback, and passes className through.