Card

shadcn/ui card on DESIGN.md tokens. Surface on a hairline, 8px radius, no shadow. Padding follows the density token; the title is a real h3. The footer is the one place a card takes a second fill. A first- or last-child image sits flush against the card's edge, so it takes rounded-nested on its outer corners instead of a hardcoded radius, keeping its curve concentric with the card's own.

<Card>
  <CardHeader>
    <CardTitle>Pricing 24 pallets of shampoo</CardTitle>
    <CardDescription>3,840 units, best before 03/2027</CardDescription>
    <CardAction><TaskStateBadge state="running" /></CardAction>
  </CardHeader>
  <CardContent>…</CardContent>
  <CardFooter><Button size="sm">Open lot</Button></CardFooter>
</Card>

Anatomy

Pricing 24 pallets of shampoo

3,840 units, best before 03/2027

Running

The pricing agent is comparing the last three Hair care lots. Nothing needed from you yet.

Lot summary

16px padding regardless of density.

For the inspector beside the lot editor: seller, location, packaging.

Lot card — grid

The marketplace card in the browse grid: cover (4:3, flush with the card edge, cover-cropped) on top, title link over the whole card, a three-line teaser, the units line at text-lg, date fact over availability in muted, the pills, and the price closing the card at the right with published, location and the urgency-coloured auction end beneath it.

Mixed personal care returns, 6 pallets

Six pallets of assorted personal care returned by the customer. Boxes are opened and re-taped, contents checked and stacked on shrink-wrapped pallets.

1,920 units
Available in 9 days
AuctionCustomer returns
From€1.12/unit
Today, Antwerp, BEEnds at 18:00
Dishwasher tablets, 8 pallets

All-in-one dishwasher tablets, boxes of 100. Outer cartons dented in transport; inner packaging intact.

1,440 units
Production date 02/2026Available today
Fixed priceDamaged packaging
€12.99/unit
5 days ago, Hamburg, DEEnds in 12 days
Sports drinks 500 ml, 12 pallets

Branded isotonic sports drinks in retail bottles, 12 full pallets from a discontinued flavour. Sealed and palletised as delivered.

3,456 units
Best before 06/2028Available tomorrow
AuctionNew
From€1.85/unit
Yesterday, Lille, FRTomorrow at 09:00

Lot card — list

The same lot as a row on desktop: cover (4:3, flush with the card edge, cover-cropped) · facts with unit count and lot price at text-lg and the product-type date fact beside availability · a right column with the per-unit price and published on top and location beside the auction end at the bottom, coloured by urgency (today red, ≤3 days amber, later muted). Below md it stacks: cover beside title, availability and units line; teaser; price and pills; published, location and the end date as a footer.

Shampoo 400 ml, 24 palletsAvailable now3,840 units
From€2.55/unit
OffersNew
2 days ago, Tilburg, NLEnds in 3 days
Mixed personal care returns, 6 palletsAvailable in 9 days1,920 units
From€1.12/unit
AuctionCustomer returns
Today, Antwerp, BEEnds at 18:00
Dishwasher tablets, 8 palletsAvailable today1,440 units
€12.99/unit
Fixed priceDamaged packaging
5 days ago, Hamburg, DEEnds in 12 days
Sports drinks 500 ml, 12 palletsAvailable tomorrow3,456 units
From€1.85/unit
AuctionNew
Yesterday, Lille, FRTomorrow at 09:00

Lot card — seller row

The same three-track row on the seller's own list (/lots/our-lots): a 144px 4:3 cover, the title over the units | price line and the last-changed time, then the per-unit price above the sale-form and lifecycle pills. The checkbox is a sibling of the card, never inside it — the card is one link into the editor, and a control nested in an anchor is invalid HTML that would navigate on click. A selected row reads as a quiet choice card: surface-1 fill and a border-strong edge around checkbox and card together, with padding so that edge never lands on the card's own hairline.

Shampoo 400 ml, 24 pallets3,840 units€9,8002 hours ago
€2.55 /unit
OffersPublished
Mixed personal care returns, 6 pallets1,920 units€2,150Yesterday
€1.12 /unit
AuctionDraft
Energy drink 25cl, 12 pallets8,640 units€4,3205 days ago
€0.50 /unit
Fixed priceSold

Status cards

variant = info · success · warning · danger · hold. Surface and hairline as always, plus a 3px bar on the left running from the status colour's strong tier at the top to its base at the bottom; the footer's primary action is the matching status button with an icon, ending on the right. Carrying the depth shadow stack while it is tuned (shadow-depth-tint), cast in the status colour instead of ink.

Three lots priced by AI

They publish in 24 hours unless you hold them.

Queued

Publishing tomorrow at 09:00 CET.

Payout released

€18,420.00 for order SL-2026-0418, delivery confirmed.

Done

No action needed.

Bid expires at 17:00

Nordic Retail AB offered €9,800 for 24 pallets of shampoo.

Waiting on you

€2.55 per unit, 38% under retail.

Couldn't publish the lot

12 of 340 products have no EAN. Add them or remove the rows.

Failed

Excel import from yesterday, 14:20 CET.

Lot on hold

Paused until Nordic Retail AB's VAT number clears VIES.

On hold

The listing is ready; nothing publishes until you resume.

Depth (experiment)

The shadow-depth token under tuning: two ink shadows and a glow in the card's own surface colour; status cards above cast shadow-depth-tint, the same stack in their status colour. Flat card on the left for comparison.

Flat (current)

Surface on a hairline, no shadow.

Running

The pricing agent is comparing the last three Hair care lots. Nothing needed from you yet.

Depth

Same card with the shadow stack.

Running

The pricing agent is comparing the last three Hair care lots. Nothing needed from you yet.

Media card

A flush first-child image takes the card's radius (8px) minus the card's own zero padding at that edge — rounded-nested, not a hardcoded corner. The bottom corners square off against the header below, and the card clips (overflow-hidden).

Cover placeholder

Shampoo 400 ml, 24 pallets

The cover photo's top corners match the card's, not their own.

Top corners round to 8px, concentric with the card; bottom corners are square.

Compact region

Inside data-density=compact: 16px padding, description 13px; content keeps text-base (15px) and the heading is unchanged.

Excel import: 340 products

Uploaded 14:20 CET

Failed
12 of 340 products have no EAN. Add them or remove the rows.