Every value on this page is generated from the Figma library. Nothing is typed by hand. Change a variable in Figma, regenerate, and every product that imports this file moves together. Prefer a component library? Browse the same tokens rendered through flowbite-react or flowbite-angular.
<link rel="stylesheet" href="https://design-tokens.clubready.com/staging/foundation.css">
.panel {
background: var(--bg-primary);
color: var(--text-heading);
border: 1px solid var(--border-base);
}
# Fetch the file from CloudFront at build time BASE=https://design-tokens.clubready.com/staging curl -fsSL $BASE/foundation-tailwind.css -o src/tokens/foundation-tailwind.css # Then import the local copy @import "tailwindcss"; @import "./tokens/foundation-tailwind.css"; Vite, webpack and PostCSS cannot @import a remote URL, so the CDN fetch happens in CI rather than in the stylesheet.
<html class="dark"> <!-- Tailwind --> <html data-theme="dark"> <!-- anything else --> Both flip the same variables. No JS required.
Colour is edited in Figma. This gallery is built from the three JSON exports in GitHub and served from CloudFront. There is no npm package — the examples above point at https://design-tokens.clubready.com/staging/, the copy you are reading now.
| Who | Does |
|---|---|
| Design | Export Value_tokens.json, Light_mode_tokens.json, Dark_mode_tokens.json and overwrite them in tokens/ on main. Do not upload CSS or HTML. |
| CI — staging | Push of those files builds CSS and this page, then publishes /staging/. |
| Engineering — release | Publish the next unused v1.x tag, currently v1.8 or later. It writes an immutable prefix and updates /production/latest/; v1.7 remains the app pin. |
| Product apps | Pin https://design-tokens.clubready.com/production/v1.7/foundation.css (or vendor the Tailwind file from that URL). Do not parse JSON. Do not hardcode hex. |
| CDN prefix | Mutability |
|---|---|
/staging/ | Overwritten on every JSON push to main |
/production/v1.1/ | Immutable. Never overwrite. |
/production/v1.2/ | Immutable historical prefix. Never overwrite. |
/production/v1.3/ | Immutable historical prefix. Never overwrite. |
/production/v1.4/ | Immutable historical prefix. Never overwrite. |
/production/v1.5/ | Immutable historical prefix. Never overwrite. |
/production/v1.6/ | Immutable historical prefix. Never overwrite. |
/production/v1.7/ | Immutable current pin. Never overwrite. |
/production/latest/ | Alias of the current GitHub Release |
Design checklist before asking for a release:
--bg-primary.Spacing, radius, font sizes and border widths are not in the token CSS. Those scales already match stock Tailwind v4 exactly, so shipping them as overrides would resize every Flowbite component. Use p-4, rounded-xl, text-sm and they will match the mockups. The reference tables below are there so you can check a value without opening Figma.
The brand ramp. Use these directly only when no semantic token fits — prefer the semantic layer so a rebrand stays a one-line change.
Surfaces and fills. Each chip is split: left half is light mode, right half is dark.
Foreground colours. The badge shows contrast against
--bg-primary in the mode you are viewing — 4.5 or above passes WCAG AA for body text.
Strokes, dividers and outlines.
Real Flowbite markup and stock Tailwind utilities. Colours come from ClubReady
semantic tokens (var(--bg-clubready), …) so the dark mode toggle flips every sample.
Interactive pieces (accordion, carousel, drawer, dropdown, modal, popover, tabs, tooltip, speed dial, …)
use Flowbite’s JS. Charts & breakdowns are CSS/SVG with token colours (no ApexCharts). DataTables,
WYSIWYG, QR Code, and the full datepicker calendar need separate libraries and are omitted. This page
ships no custom CSS — only
foundation.css plus stock Tailwind.
foundation.css from the CDN, or vendor both CSS files for Tailwind.
p-4, rounded-xl, text-sm).
Next class starts at 6:00pm. Surfaces use --bg-secondary on --border-base.
Front desk check-in, billing, and class packs in one place.
Not in the Figma Dropdown set — unchanged:
| Member | Status | Plan |
|---|---|---|
| Alex Rivera | Active | Unlimited |
| Jordan Miles | Expiring | 10-class pack |
| Sam Chen | Past due | Trial |
Overview uses --text-body on --bg-secondary.
Recent check-ins and billing events appear here.
Front desk notes for this member.
Front desk scanner used --bg-clubready-soft.
Unlimited plan renewal · card on file.
Can I switch to the 6pm class tomorrow?
DeliveredFilter by plan, status, and home studio. Surfaces use --bg-primary.
Token-driven surfaces keep every product on brand — from front desk to member app.
Press Ctrl + K to open command search.
And here's some amazing content. It's very engaging. Right?
4.0 out of 5
Pie, donut, radial, and stacked breakdowns built with Tailwind + token colours (CSS conic-gradient / SVG). No chart library.
Sample membership breakdown
Channels this week
Studio floor tonight
Month to date
Live count from this build
Body copy uses --text-body on --bg-primary, inside a --border-base container.
Subtle text uses --text-body-subtle.
"Colour is edited in Figma. Apps consume CSS variables — never hex."
--clubready-500)--bg-clubready)Omitted (need separate libraries): DataTables, WYSIWYG, QR Code, full Datepicker calendar. Flowbite’s ApexCharts plugin is not loaded — charts above are CSS/SVG only.
Composable Flowbite patterns assembled into ClubReady surfaces. Colours are semantic tokens only — no custom CSS and no chart libraries.
Product example · Connect › Conversations
Shared SMS/MMS inbox for 1:1 member & lead threads. Unread badge on Connect, staff sender ID, templates / attach / emoji in composer. Campaigns live on a sibling tab.
Today
Hi — can I switch from HIIT at 5 to Yoga at 6 tonight?
11:42 AM · SMSYoga 6pm still has 4 spots. Want me to move you?
11:44 AM · Maya (Front desk)Yes please 🙏 keep the late cancel on HIIT if you can.
11:45 AM · SMSDone. You’re on Yoga · Floor A · 6:00–6:45. See you there!
11:46 AM · Maya (Front desk)Product example · Bookings › Classes
Day / Week / Month schedule with class side panel: roster checkboxes, Show / No Show / Pending, waitlist, email & text roster actions.
Listed so you can look up a value quickly. Do not redeclare these — the stock utilities already produce these numbers.