Design System

This is the Carpet Care Club design system: the single source of truth for the interface. Every screen on the public site is assembled from the components documented here, so designers and engineers work from one shared language and one set of names.

It is organised by atomic design. Foundations are the indivisible tokens — brand, colour, typography, spacing and shape. Atoms are the smallest components (icons, buttons, badges); icons in particular are an atom reused inside almost everything else. Atoms combine into molecules, molecules into organisms, and organisms into templates — the full pages, which this system showcases inside Content with their key states rather than linking away to the live site.

Names follow the conventions set by established libraries such as Material Design and PrimeReact, so they are recognisable across tools. The distinctions those libraries draw are kept deliberately: Forms is a family, not one component — it holds inputs (text field, textarea, select, stepper), selection controls (radio card), pickers (date picker), lists and validation. Feedback (toast, banner) is a separate family from forms.

The navigation is multi-level: drill from a family into a sub-group and then into a single component. Each component page lays its variants down the rows and its states across the columns; interaction states that cannot exist in static HTML are simulated so every state is visible at once.

Foundations

Design tokens

The indivisible design decisions every component is built from. These are tokens, not components.

Brand

The supplied logo is the only wordmark. Do not redraw it or force capitalisation with CSS.

Open Brand

Color

Colour lives in tokens.css. Surfaces stay cream; accent is lime; member cards invert to teal.

Open Color

Typography

One family: DM Sans. Three heading sizes from a 1rem body and the golden ratio.

Open Typography

Spacing

A nine-step rem scale from 0.25rem to 5rem.

Open Spacing

Shape

Corner radii, control size and hairline width. Pills and savings labels use the pill radius.

Open Shape

Atoms

Atoms

The smallest reusable UI elements. Icons are an atom in their own right, reused inside almost every other component.

Icon

Iconsax Linear through the shared icon component. Size is one body line. Close rotates the add mark 45 degrees.

Open Icon

Button

Primary, secondary, accent, text, icon and quantity, across their default, hover, focus and disabled states.

Open Button

Badge

Neutral tags describe; savings badges are non-interactive lime pills. Plain labels stay unstyled text.

Open Badge

Divider

A repeating wave, coloured with --color-border. Used above sign out and between pricing sections.

Open Divider

Forms

Molecules

The data-entry family. Forms is not a single component: it is inputs, selection controls, pickers, lists and validation working together.

Inputs

Text Field

Single-line text and telephone entry across every field state.

Open Text field

Textarea

Multi-line entry for notes, across every field state.

Open Textarea

Select

A native dropdown for a small set of options, across every field state.

Open Select

Stepper

A pill-shaped quantity stepper: two icon buttons around a numeric field.

Open Stepper

Selection

Radio Card

A selectable card wrapping a radio input, shown unselected, selected, focused and disabled.

Open Radio card

Pickers

Date Picker

A month calendar for choosing an available weekend visit date.

Open Date picker

Lists

List

A ticked benefit list used on the membership billing step.

Open List

Validation

Validation

The shared error message and the invalid-field treatment.

Open Validation

Feedback

Molecules

How the interface tells someone what just happened. Kept separate from forms.

Toast

A transient confirmation (snackbar) shown after adding an item.

Open Toast

Banner

The membership prompt on the review step, in its guest and member states.

Open Banner

Surfaces

Molecules

Containers that group content: cards, prices and composed rows.

Card

Default cards are white with no visible border. The member variant is the dark membership plan.

Open Card

Price

The unit-price display, with the member discount treatment.

Open Price

Quantity Row

A booking item: thumbnail, label, stepper and unit price on one row.

Open Quantity row

Booking Card

A booked visit: UK date, a status label, a progress timeline, and the paid deposit — shown at each stage.

Open Booking card

Content

Organisms

Larger compositions assembled from the atoms and molecules above, up to the whole-page templates.

Product Card

A service card: image, identity overlay, unit price and a booking action.

Open Product card

Process Step

A single step in the cleaning process, with a photograph and copy.

Open Process step

Carousel

A horizontally scrolling row of process steps.

Open Carousel

Hero

The landing hero. The live collage layout and the previous split layout.

Open Hero

Templates

Home

The landing page, in its signed-out and signed-in / member states.

Open Home

Booking

The booking wizard, step by step: choose items, create an account, review and schedule.

Open Booking

Account

The account page, in its guest, member and non-member states.

Open Account