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:

Add to your project's .claude/settings.json:

json
{
  "permissions": {
    "extraKnownMarketplaces": {
      "webplatform4sync": {
        "source": { "source": "github", "repo": "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.