Skip to content

Quick Start

Get from zero to themed UI in five steps. The same tokens work in Vite, Cloudflare Workers, Next.js, or any bundler that handles CSS imports.

1. Install

bash
pnpm add @syncupsuite/themes

Or with npm/bun:

bash
npm install @syncupsuite/themes
# or
bun add @syncupsuite/themes

2. Pick a Cultural Identity

Twelve design identities, each grounded in a real design tradition. Browse the gallery for color previews, or pick from the list:

SlugOrigin
swiss-internationalInternational Typographic Style, Switzerland
nihon-traditionalJapanese calligraphy, woodblock printing, temple architecture
nordic-modernScandinavian democratic design and natural materials
tang-imperialTang Dynasty China -- silk, lacquer, jade
shuimo-modernChinese ink wash painting (shuimo hua)
nihon-minimalWabi-sabi and ma (negative space)
renaissanceItalian Renaissance frescoes and illuminated manuscripts
art-decoJazz Age geometry -- Chrysler Building, Tamara de Lempicka
wiener-werkstaetteVienna Workshops, Josef Hoffmann and Koloman Moser
milanese-designItalian industrial design -- Olivetti, Gio Ponti, Sottsass
de-stijlMondrian and van Doesburg -- primary colors, black lines
swiss-modernistSwiss graphic design -- Helvetica era, signal red, strict grid

3. Import the CSS

Each theme ships as CSS custom properties and Tailwind v4 @theme output. Pick the format that matches your stack.

css
/* In your main CSS file */
@import "@syncupsuite/themes/swiss-international/tailwind.css";
css
/* In your main CSS file */
@import "@syncupsuite/themes/swiss-international/tokens.css";
ts
import tokens from "@syncupsuite/themes/swiss-international/tokens.json";
import meta from "@syncupsuite/themes/swiss-international/meta.json";

Replace swiss-international with any slug from the table above.

4. Use the Tokens

Every theme provides the same semantic token API. Your components stay the same -- swap the import and the entire palette changes.

html
<!-- Tailwind classes map directly to theme tokens -->
<div class="bg-canvas text-foreground border-border">
  <h1 class="text-foreground font-heading">Dashboard</h1>
  <p class="text-foreground-secondary">Welcome back.</p>
  <button class="bg-primary text-foreground-inverse hover:bg-primary-hover">
    Save
  </button>
</div>
css
/* Use semantic custom properties */
.page {
  background: var(--background-canvas);
  color: var(--text-primary);
  border-color: var(--border-default);
}

.button-primary {
  background: var(--interactive-primary);
  color: var(--text-inverse);
}

.button-primary:hover {
  background: var(--interactive-primary-hover);
}

Semantic tokens available in every theme:

TokenPurpose
--background-canvas / bg-canvasPage background
--background-surface / bg-surfaceCard/panel background
--background-muted / bg-mutedSubdued background
--text-primary / text-foregroundPrimary text
--text-secondary / text-foreground-secondarySecondary text
--text-muted / text-foreground-mutedDisabled/muted text
--interactive-primary / bg-primaryButtons, links
--interactive-primary-hover / bg-primary-hoverHover state
--border-default / border-borderDefault borders
--status-error / text-errorError state
--status-success / text-successSuccess state
--focus-ring / ring-ringFocus indicator

Dark mode is built in. Add data-theme="dark" to any parent element:

html
<html data-theme="dark">

All semantic tokens remap automatically. No additional imports required.

5. Deploy

The tokens are plain CSS -- they work anywhere CSS works. No runtime, no JavaScript overhead, no bundler plugin.

bash
# Cloudflare Workers (with Doppler secrets)
doppler run -- wrangler deploy

# Vite dev server
pnpm dev

# Any static build
pnpm build

The CSS file is small (under 10KB per theme) and cacheable. It ships as part of your bundle with zero additional network requests.

Next Steps

Using Claude Code?

The marketplace plugin gives you guided adoption instead of manual setup:

claude install-plugin syncupsuite/webplatform4sync

Then in a Claude Code session:

/webplatform4sync:shu

Tell it what you want -- "I need a theme grounded in Japanese minimalism" -- and it applies the tokens, wires the imports, and configures your Tailwind setup.

Released under the MIT License.