Everything you need to make something that looks like it belongs to World 50: the palette, the two typefaces, the spacing discipline, and the component rules that hold it together.
Link the stylesheet and you have the fonts, the full color palette, the type scale and the spacing tokens as CSS custom properties. Add the bundle and you have the React components used on this page.
Styles & tokens
<link rel="stylesheet" href="styles.css">
<h1 class="w50-display-1">Member pulse</h1>
<p style="color:var(--text-secondary)">Body copy</p>
Components
<script src="_ds_bundle.js"></script>
<script>
const { Button, Card, Input } =
window.World50DesignSystem_66dae4;
</script>
.w50-display-1, .w50-h1, .w50-body-md, .w50-caption, .w50-label.var(--accent) survives a palette change; #109EDA does not.styles.css from Google Fonts.Near-black ink on white, condensed uppercase titles, hairline rules. It should read like a well-set print guideline, not a marketing page.
One accent, used for the primary action and little else. If two things on a screen are Sky Blue, one of them is probably wrong.
Wide gutters and generous leading do the work that borders, shadows and fills would do elsewhere. Let the page breathe.
A 1px rule under a section header beats a gray panel. Cards are white with a hairline border and almost no shadow.
Candid, in-the-room images of members are the visual richness. No illustration, no 3D, no abstract gradients.
The audience is a sitting C-suite executive. Short declarative sentences, sentence case, no hype words, no emoji.
Brand Black and White do most of the work. The warm-neutral ink ramp handles text, borders and fills. Sky Blue is the single accent. Semantic ramps are reserved for status and never used decoratively.
Monochrome core
--w50-black · #141413--w50-ink-900 · #21201B--w50-ink-800 · #45443F--w50-ink-700 · #686764--w50-ink-500 · #8C8B88--w50-ink-400 · #AFAEAD--w50-ink-300 · #D3D2D1--w50-ink-200 · #EDEDEDBlues
--accent · #109EDA--accent-hover · #177BBD--accent-pressed · #2158A1--w50-blue-300 · #53B7E4--accent-soft · #DAE8F8--w50-blue-50 · #F0F7FF--w50-blue-deep · #002393--w50-blue-bright · #36D6F9Semantic — status only
--success · #0C8D52--warning · #C1840D--danger · #C32F0B--info · #109EDADefault every surface to white. Use Ice Blue for the one tinted band (page header), and Sky Blue for the primary action, links, active states and focus rings.
Wash a section in saturated Sky Blue, introduce a second accent, tint body text, or use semantic colors for emphasis or decoration.
--text-primary for copy, --text-secondary for supporting lines, --text-tertiary for labels and captions only.--accent-hover.Display type is Oswald Regular, always uppercase, with tight leading. It is the brand's voice for page titles, section headers and big numbers. Everything functional — headings, body, data, labels — is Inter.
.w50-display-1.w50-display-2.w50-h1.w50-h2.w50-h3.w50-body-lg.w50-body-md.w50-caption.w50-labelfont-variant-numeric: tabular-nums in tables and data; Oswald for hero figures.Spacing scale
Radii
Elevation
Rules
--border-subtle or --border-default.gap rather than per-element margins.--w50-blue-300.<Button variant="primary" size="lg">Request a seat</Button>
<Button variant="secondary">Cancel</Button>
--shadow-focus) — don't replace it with a color change alone.<Input label="Work email" placeholder="you@company.com"
helperText="We never share this." />
<Card>…</Card>
<Card accent interactive padding={24}>…</Card>
strong for a Brand Black section rule, default for a neutral hairline, label for a centered uppercase caption.aria-label. Ghost in toolbars, outline when it needs to read as a control, solid round for a single add action.--dur-fast), 200ms for movement (--dur-normal), 320ms only for entering panels.--ease-standard for most things, --ease-out for entrances.Icons
<script src="https://unpkg.com/lucide@latest/dist/umd/lucide.js"></script>
<i data-lucide="search"></i>
<script>lucide.createIcons();</script>
The mark
Photography
:root{
/* monochrome */
--w50-black:#141413; --w50-white:#FFFFFF;
--w50-ink-900:#21201B; --w50-ink-800:#45443F; --w50-ink-700:#686764;
--w50-ink-500:#8C8B88; --w50-ink-400:#AFAEAD; --w50-ink-300:#D3D2D1; --w50-ink-200:#EDEDED;
/* blues */
--w50-blue-sky:#109EDA; --w50-blue-deep:#002393; --w50-blue-bright:#36D6F9; --w50-blue-ice:#DAE8F8;
--w50-blue-50:#F0F7FF; --w50-blue-100:#9BEDFF; --w50-blue-200:#97CFEE;
--w50-blue-300:#53B7E4; --w50-blue-500:#177BBD; --w50-blue-700:#2158A1;
/* semantic */
--success:#0C8D52; --warning:#C1840D; --danger:#C32F0B; --info:#109EDA;
/* aliases */
--text-primary:var(--w50-black); --text-secondary:var(--w50-ink-700); --text-tertiary:var(--w50-ink-500);
--surface-page:var(--w50-white); --surface-header:var(--w50-blue-ice); --surface-sunken:var(--w50-ink-200);
--border-strong:var(--w50-black); --border-default:var(--w50-ink-300); --border-subtle:var(--w50-ink-200);
--accent:var(--w50-blue-sky); --accent-hover:var(--w50-blue-500); --accent-pressed:var(--w50-blue-700); --accent-soft:var(--w50-blue-ice);
/* type */
--font-display:"Oswald",Arial,sans-serif; --font-sans:"Inter",-apple-system,"Segoe UI",Arial,sans-serif;
--fw-regular:400; --fw-medium:500; --fw-semibold:600; --fw-bold:700;
--type-display-1-size:42px; --type-display-1-lh:1.1;
--type-h1-size:24px; --type-body-md-size:14px; --type-caption-size:13px; --type-label-size:11px;
/* space, radius, motion */
--space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-6:24px;
--space-8:32px; --space-12:48px; --space-16:64px; --space-24:96px; --space-page-gutter:75px;
--radius-xs:2px; --radius-md:8px; --radius-xl:16px; --radius-pill:999px;
--shadow-sm:0 1px 3px rgba(20,20,19,.08),0 1px 2px rgba(20,20,19,.04);
--shadow-md:0 4px 12px rgba(20,20,19,.08),0 1px 3px rgba(20,20,19,.05);
--shadow-focus:0 0 0 3px rgba(16,158,218,.35);
--ease-standard:cubic-bezier(.2,0,0,1); --dur-fast:120ms; --dur-normal:200ms;
}
Fonts: Oswald 200–500 and Inter 300–700, both from Google Fonts. The full set of 132 tokens lives in tokens/colors.css, tokens/typography.css and tokens/spacing.css.