Crucible

Atelier

A monochrome-elegant portfolio one-pager: oversized editorial hero, an indexed selected-work list with a cursor-following gradient art panel, services strip, studio statement, and a magnetized contact footer — all props-driven with one brass accent.

motionpro

Installation

CLI

npx shadcn@latest add @crucible/atelier

Manual — install dependencies, then copy the source

npm install motion

Props

PropTypeDefaultDescription
namestring"Atelier Vasa"Studio name, rendered lowercase in the nav and oversized in the hero.
logoReact.ReactNodethe Vasa monogramInline logo mark (should be a 1em-scalable SVG using currentColor).
taglinestring"Considered interfaces."Short kicker line above the hero name.
statementstringHero statement paragraph, revealed word by word.
navAtelierNavItem[]Top navigation links.
projectsAtelierProject[]Portfolio entries for the selected-work list.
servicesAtelierService[]Service line items.
aboutstringStudio statement paragraph in the about section.
contactEmailstring"hello@ateliervasa.studio"Contact email rendered as the oversized footer link.
socialsAtelierSocial[]Footer social links.
footerNotestringClosing footer line.
accentstring"#c4a265"The single accent color (warm brass by default) used for hairline rules, hover states, and the contact glow.
Also accepts all props of Omit<React.ComponentPropsWithoutRef<"div">, "children">they pass through to the underlying element.

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