Skip to content

No.227 · Commerce· New

Exploded View

A product drawing whose parts separate along their own axes, like an assembly sheet. Numbered balloons and a parts list are linked to the drawing both ways: point at a part in either place and it comes out on its own. A scrub sets how far everything spreads.

The prompt

Copy this text

Automatic copying is unavailable. Copy the selected text using your device’s copy command.

Written for the variant you picked above: Light

Build an exploded product drawing (here an original drawing of a small desk lamp, 'Qalam desk lamp, model DL-2', 7 parts). Each part is { id, name, detail, shape (SVG in a shared 480×520 viewBox), dir (where it travels at full explosion), anchor (where its callout attaches) }. Layout: a drafting sheet card in IBM Plex Sans with a faint 20-unit blue grid, the title and a mono stamp 'Exploded view · 7 parts'. Parts are line drawings: white fills with 1.5px ink outlines, tubes drawn as a 10px ink stroke with a 7px paper stroke inside. Each part translates by dir × amount; a dash-dot blue axis line runs from its resting anchor to where it is now. Numbered balloons sit in the left and right margins (by which half the part is in), spread so they never overlap and never cross within a column, each with a thin leader that runs out horizontally and then straight to the part. Under the drawing: 'Explode 35%' and a range slider with an Explode/Assemble button. Beside it (from 50rem) a parts card: numbered rows with the name and a muted spec line. Linking: hovering or focusing a part in the list, or hovering it in the drawing, draws that part all the way out (whatever the slider says), tints it pale blue (the bulb glows warm), fades the others to 45%, and turns its balloon and leader blue. Clicking pins it. Selected variant — Light (light): Palette for this theme (Light): --xview-accent #2f6db5; --xview-bg #eef1f4; --xview-focus #2f6db5; --xview-glow #fff3c4; --xview-grid rgb(48 104 168 / 0.07); --xview-ink #1c2733; --xview-line rgb(28 39 51 / 0.12); --xview-muted #66727f; --xview-paper #ffffff; --xview-sheet #fbfcfd; --xview-tint #dfe9f6. Treat these as the root colour tokens, one value per role, and name them to suit your code. Select it with the theme option set to "light". Keep every dimension, spacing value, state and motion from the brief unchanged, and keep text at 4.5:1 contrast or better on these surfaces. This selection takes precedence over references to other themes or options in the general brief. Implement this selected appearance; do not add a variant picker or alternative appearances unless requested. Implementation requirements: Use React and TypeScript. Keep the component self-contained, with uniquely scoped CSS and no animation libraries. Include required imports, styles and font setup in the result. Interaction: The parts list is the keyboard layer: Tab through the rows; focus draws a part out; Enter or Space pins it (aria-pressed). The slider and button set the explosion for all parts. In the drawing, hover draws out and click pins. Motion: Parts ease toward their positions in JavaScript so the leaders and axes move with them, not ahead of them. Reduced motion or motion={false} snaps instead. Accessibility: The drawing is a labelled img that states the explosion amount and the part drawn out; the parts list is real buttons in an ordered list carrying the same numbers as the balloons. Responsive behavior: Below 50rem the parts list moves under the sheet; the drawing scales with its viewBox. Touch: Tap a row or a part to pin it out; tap again to put it back. Preserve keyboard access, visible focus and reduced-motion behavior. Keep fictional demo data and simulated service calls in a separate usage example; expose callbacks for real actions and recover from rejected requests. Keep usage-example links inside the demo: use local buttons or prevent navigation. Demonstration links must not navigate to Vitrine routes or open other pages; preserve real URL support in the reusable component itself. Verify the result at narrow and wide viewport sizes, with keyboard input and reduced motion enabled.

Notes

Interaction
The parts list is the keyboard layer: Tab through the rows; focus draws a part out; Enter or Space pins it (aria-pressed). The slider and button set the explosion for all parts. In the drawing, hover draws out and click pins.
Motion
Parts ease toward their positions in JavaScript so the leaders and axes move with them, not ahead of them. Reduced motion or motion={false} snaps instead.
Accessibility
The drawing is a labelled img that states the explosion amount and the part drawn out; the parts list is real buttons in an ordered list carrying the same numbers as the balloons.
Responsive
Below 50rem the parts list moves under the sheet; the drawing scales with its viewBox.
On touch
Tap a row or a part to pin it out; tap again to put it back.

Featured

363 components