Brand
The supplied logo is the only wordmark. Do not redraw it or force capitalisation with CSS.
Open BrandThis 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.
The indivisible design decisions every component is built from. These are tokens, not components.
The supplied logo is the only wordmark. Do not redraw it or force capitalisation with CSS.
Open BrandColour lives in tokens.css. Surfaces stay cream; accent is lime; member cards invert to teal.
Open ColorOne family: DM Sans. Three heading sizes from a 1rem body and the golden ratio.
Open TypographyA nine-step rem scale from 0.25rem to 5rem.
Open SpacingCorner radii, control size and hairline width. Pills and savings labels use the pill radius.
Open ShapeThe smallest reusable UI elements. Icons are an atom in their own right, reused inside almost every other component.
Iconsax Linear through the shared icon component. Size is one body line. Close rotates the add mark 45 degrees.
Open IconPrimary, secondary, accent, text, icon and quantity, across their default, hover, focus and disabled states.
Open ButtonNeutral tags describe; savings badges are non-interactive lime pills. Plain labels stay unstyled text.
Open BadgeA repeating wave, coloured with --color-border. Used above sign out and between pricing sections.
Open DividerThe data-entry family. Forms is not a single component: it is inputs, selection controls, pickers, lists and validation working together.
Single-line text and telephone entry across every field state.
Open Text fieldMulti-line entry for notes, across every field state.
Open TextareaA native dropdown for a small set of options, across every field state.
Open SelectA pill-shaped quantity stepper: two icon buttons around a numeric field.
Open StepperA selectable card wrapping a radio input, shown unselected, selected, focused and disabled.
Open Radio cardA month calendar for choosing an available weekend visit date.
Open Date pickerA ticked benefit list used on the membership billing step.
Open ListThe shared error message and the invalid-field treatment.
Open ValidationHow the interface tells someone what just happened. Kept separate from forms.
A transient confirmation (snackbar) shown after adding an item.
Open ToastThe membership prompt on the review step, in its guest and member states.
Open BannerContainers that group content: cards, prices and composed rows.
Default cards are white with no visible border. The member variant is the dark membership plan.
Open CardThe unit-price display, with the member discount treatment.
Open PriceA booking item: thumbnail, label, stepper and unit price on one row.
Open Quantity rowA booked visit: UK date, a status label, a progress timeline, and the paid deposit — shown at each stage.
Open Booking cardThe chrome that frames a page and moves people through it.
The landing top bar: wordmark, booking link and the signed-out actions.
Open App barThe booking and account header. Close is icon-only; the avatar appears when signed in.
Open Wizard headerLarger compositions assembled from the atoms and molecules above, up to the whole-page templates.
A service card: image, identity overlay, unit price and a booking action.
Open Product cardA single step in the cleaning process, with a photograph and copy.
Open Process stepA horizontally scrolling row of process steps.
Open CarouselThe landing hero. The live collage layout and the previous split layout.
Open HeroThe landing page, in its signed-out and signed-in / member states.
Open HomeThe booking wizard, step by step: choose items, create an account, review and schedule.
Open BookingThe account page, in its guest, member and non-member states.
Open Account