Skip to content

shadcn.io is an independent project built on shadcn/ui

Luxury Watch Product Card Block for Solid

A narrow, centred mechanical watch card where a Dial and Caseback toggle crossfades between the hands and indices and a rotor with jewels and an engraving, and the details list swaps between Case and Movement.

UI library: Ark UI

Preview

Preview width

Installation

Part of Pro
Pro unlocks the code and one-line install of every Pro button and text effect, plus the MCP for your AI editor.
Have Pro already? Sign in to open it.Opens here as soon as you're Pro.

Overview

Turn the watch over with this luxury watch product card for Solid with Ark UI. A hairline frame with a plus mark on each corner holds one centred, narrow card: a greyscale mechanical watch, a Toggle Group with two items, Dial and Caseback, and a details list. Pressing Caseback crossfades the drawing from the dial (twelve indices and two hands) to the movement (a rotor, eight jewels and an engraved number), and the list swaps from Case (40 mm steel, sapphire crystal, 100 m) to Movement (automatic, 31 jewels, 70 h reserve) without the card changing height. The single Shine Button says "Add to bag" with the price and turns into "Added" with an Undo; a polite status line says what changed. Nothing is stored or bought. For product pages where the back of the object matters.

FAQ

How does the turn-over work?

Both sides are drawn in one grid cell and only their opacity changes, with a 500 ms fade. Under reduced motion the change is instant. The side that is not shown is hidden from assistive technology.

Why doesn't the card change height?

Both details lists sit in one cell, so the cell is as tall as the taller one. The hidden list is invisible and marked aria-hidden, so it adds no clutter for a screen reader.

How does the Dial and Caseback control work?

It is a toggle group where one item is always pressed. Arrow keys move between the two and Space or Enter presses one; the status line says which side is showing.

Can I change the engraving?

Yes, it is the string in Face. In a real project keep it short; long text on a small caseback is hard to read.

What stays local, and how do I wire it for real?

The side and the bag are page state; nothing is stored, charged or sent. Replace the body of add and undo with calls to your cart. The price, the ship date and the specifications are typed at the top of the file.

How does it look on a phone?

The card is already one column: the watch, the toggle, the details, the price and Add, stacked and centred, so nothing reflows.