Design kit · 02 Components

Every piece, in every state.

Each component is shown as it rests, and as it looks on hover, with the keyboard focus ring, when pressed, and when it cannot be used. Where a state does not exist, the page says so and why.

ButtonsNavigationAnnouncementProduct cardColour selectorStepperAccordionBreadcrumbTagsFormsCardsFooter

Buttons

btn-primary · btn-secondary · link · btn-light · radius-2

One primary button per view: the one thing she might do next. The outlined button is the quieter second choice. The text link is for reading on. The light versions are for dark grounds.

Primary

Disabled


Secondary

Disabled


Quiet text link

Disabled

Light version, for bordeaux and espresso grounds

Disabled


Disabled


Disabled

Filter button (shop filters)

Default

Hover

Focus

Active

Selected

Disabled

The focus ring is 2 px, 3 px away from the edge: bordeaux on light grounds, ivory on dark ones. Press Tab on any live control on this page to see the real one. Each page has one primary button at most.

Top navigation

hdr · bag · burger · space-16

The same four links on every page. The bag shows how many things are in it, as a plain number: never a badge, never a colour.

Desktop. Links on the left, the wordmark in the middle (deeper gold on ivory, 22 px, never narrower than 140 px), the bag on the right. No search box and no search overlay.

Page content below. Tap Menu to open it.

Phone, closed. Live: tap Menu.

Phone, open. The list slides down in 500 ms; with reduced motion it simply appears.

Link: default

Link: hover

Link: current page

Link: focus

Link: active


Bag: default

2

Bag: hover

2

Bag: focus

2

Bag: active

2

Bag: disabled

Menu button: focus

Announcement bar

ann · colour-bordeaux · colour-ivory

One calm line above the header. Ivory on bordeaux. The wording is a placeholder: delivery terms are to be confirmed. It must never show a countdown, a deadline or urgency.

Delivery details to be confirmed.

Delivery details to be confirmed.

Phone: still one line.

Not applicable. It is a plain line of text with no link and no close button. It never changes, counts down or rotates.

Product card

pcard · ratio 4:5 · font-heading 24 · font-label

Image, name, colour name, price. The name is the link. The picture is square-cornered and 4 : 5. No ratings, no badges, no "new" or "bestseller".

Default

Hover: side view

Focus

Active (pressed)

Disabled

Not applicable. A product that cannot be bought is simply not shown. There is no sold-out card and no "only a few left".

Live with colour choice

Hover or focus the card: the front image fades to the side image in 500 ms and eases in by 3%. With reduced motion, the side view simply appears. On a phone, with no hover, only the front shows. Choose a swatch and the card changes colour.

Colour selector

sw · colour-tan · colour-bordeaux

Two round swatches: Tan and Bordeaux. Each shape is one product with a colour choice.

Default (Tan chosen)

ColourColour: Tan

Bordeaux chosen

ColourColour: Bordeaux

Hover

ColourColour: Tan

Focus

ColourColour: Tan

Active

ColourColour: Tan

Disabled

ColourColour: Tan

Round, 26 px, in a 44 px tap area. The chosen one has a thin ring and the colour is also written out: "Colour: Tan", so colour alone never carries the meaning. The product image changes with the choice: try it on the live product card above and in the Shop patterns page.

Quantity stepper

qty · radius-2 · 44 px targets

Minus, number, plus. It never goes below 1 and stops at 9. There is no stock message and no limit warning.

Default

2

Hover (minus)

2

Focus (minus)

2

Active (plus)

2

At the minimum

1

Disabled

1

Every default one is live: press the buttons.

Size and detail accordion

acc · font-label · line-gold

Details, Care and Delivery on the product page. A plus that turns to a minus when open. Only true, plain statements.

Details

Full-grain, genuine leather, handcrafted in France. A brass ring joins each handle to a stitched leather tab. The lining is the other colour: bordeaux inside the Tan bag, tan inside the Bordeaux bag.

Care

Wipe gently with a soft, dry cloth. Keep away from direct heat. Store upright in a cool, dry place.

Delivery

Delivery details to be confirmed.

Live: open and close each section. Built on the browser's own details element, so it works with the keyboard and a screen reader.

Default (closed)

Care

Wipe gently with a soft, dry cloth.

Hover

Care

Wipe gently with a soft, dry cloth.

Focus

Care

Wipe gently with a soft, dry cloth.

Active

Care

Wipe gently with a soft, dry cloth.

Open

Care

Wipe gently with a soft, dry cloth.

Disabled

Not applicable. A section is always available.

Breadcrumb

crumb · colour-espresso-soft · font-label

Where she is: Home, Collection, then the product. The last step is plain text, not a link.

Default

Link hover

Link focus

Link active

Disabled

Not applicable. Every step is a real page.

Tag and label

tag · font-label · line-gold

A tag is a small square box with a hairline. A label is the small capital line above a heading (the "eyebrow").

Made in FranceFull-grainHandcraftedTanBordeauxGenuine leather

Label: Concept pitch · Her life, in the bag

Not applicable. Tags and labels are not clickable and have no states. They only ever say true things about the bag (made in France, full-grain, genuine leather, handcrafted). Nothing that suggests popularity: no "new", "bestseller" or "trending".

Thin divider

rule · line-gold · 1 px

A 1 px gold line, never thicker, never a shadow. The short one marks a pause between two thoughts.

Full hairline


Short hairline (72 px)


On a dark ground


Form fields

f-input · f-select · f-check · radius-2

Labels always sit above the field and are never replaced by placeholder text. Messages are written the way she is spoken to: plain and kind.

Email sign-up (live: try an empty or invalid address, then a valid one)

We write rarely, and never to hurry you.

Error

We write rarely, and never to hurry you.

Please enter an email address like name@example.com.

Success

We write rarely, and never to hurry you.

Thank you. This is a concept, so nothing was saved.

Text input

Default + helper

As you would like us to say it.

Hover

As you would like us to say it.

Focus / active

As you would like us to say it.

Disabled

Error

Please tell us your name, or leave this blank.

Success

Thank you.

Select

Default

Hover

Focus / active

Disabled

Error

Please choose a shape.

Checkbox

Default

Checked

Hover

Focus

Disabled

Error


Radio

Default

Selected

Hover

Focus

Disabled

Error

There is no red or green in the palette, so error and success are told apart by an icon, the words, and a heavier bordeaux border for an error. Field borders are soft espresso (7.4 : 1 on ivory), so the edge of every field is easy to see. Helper text sits under the field, never inside it.

Cards

scard · jcard · qcard · ratio 3:2 · radius-0

Three ways to tell a story: an image with words, a journal entry, and one quiet sentence.

For all that she is.

Saint Séverac

Hover (the picture eases in by 4% over 600 ms)

Not applicable. A quote card is not a link.

The quote card only ever carries the house voice, signed "Saint Séverac". It is never used for a customer review or a press quote: none exist, and none may be invented.