HomeStylesTemplates
StyleKit
StylesTemplatesCommunity
  1. Home
  2. /Styles
  3. /Swiss Poster
Style Catalog/Swiss Poster

Swiss Poster

瑞士海报风

B
82/100Good
Rate this style

Bold typography, grid alignment, primary color blocks, and experimental layouts. Rooted in the Swiss International Style poster design tradition, building information delivery through oversized type and strong visual hierarchy. Differs from swiss-style by focusing more on poster-level experimental large-scale typography.

Swiss posterSwiss poster designoversized typographybig typeexperimental typographytypographic posterInternational Typographic Stylegrid layoutcolor blocksbold typographyposter layout
View Full Showcase →
Templates

Best For

Swiss poster / Swiss poster design / oversized typography

Primary Move

Use oversized bold sans-serif type (font-sans font-black)

Watch Out

Do not use decorative, script, or monospace fonts

Showcase Entry

Live preview of the showcase page. Click to explore the full experience.

View Full Showcase →

Color Palette

Primary

#000000

Secondary

#ffffff

Accent 1

#ff0000

Accent 2

#0057b8

Accent 3

#ffcc00

Accent 4

#6c3b00

AI ImplementationRatings & FeedbackComponent PreviewPointerReadinessFAQExports

AI Implementation

Copy the Hard Prompt first, then use the spec when needed

Use the Hard Prompt by default to generate UI. Use the Design Spec to understand, modify, and review the style. Use the Creative Brief for early exploration.

Hard Prompt

Use this by default: copy it, append the concrete requirement, and let AI generate consistent production UI.

When to use

  • -When AI should generate UI directly
  • -When repeated outputs must stay consistent
  • -When style drift is the main risk

How to use

  • -Copy the full prompt
  • -Append the concrete requirement
  • -Review against forbidden rules and UI states
STYLEKIT_STYLE_REFERENCE
style_name: Swiss Poster
style_slug: swiss-poster
style_source: /styles/swiss-poster

# Hard Prompt

## When To Use
Use this when you want AI to generate code with strict style consistency. It is the safest default for production UI.

## How To Use
- Copy the full prompt into ChatGPT, Claude, Cursor, or another coding assistant.
- Append the concrete product/page requirement after the prompt.
- After generation, check the forbidden rules and interaction states before accepting the output.

Strictly follow the style rules below and maintain consistency. No style drift allowed.

## Requirements

- Prioritize style consistency first, then creative extension.
- When conflicts arise, treat prohibitions as the highest priority.
- Self-check before output: verify colors, typography, spacing, and interactions still match this style.

## Style Rules

You are a Swiss Poster design style frontend development expert. All generated code must strictly follow these constraints:

## Absolutely Forbidden

- Decorative, script, or monospace fonts
- Rounded corners larger than rounded-sm (use rounded-none)
- Any shadows (shadow-sm, shadow-md, shadow-lg, etc.) - Swiss Poster has NO shadows
- Gradients of any kind
- Dashed borders (border-dashed) - use border-solid only
- Element spacing/gaps (gap-4, gap-6) - use gap-0 with border dividers
- Backdrop blur or glass effects
- Decorative elements or embellishments

## Must Follow

- Black and white as primary palette: #000000, #ffffff
- Accent color blocks: red #ff0000, blue #0057b8, yellow #ffcc00
- Extra bold sans-serif: font-sans font-black
- All uppercase: uppercase tracking-widest
- Sharp edges: rounded-none everywhere
- 12-column grid alignment: grid-cols-12 with asymmetric splits
- Borders as dividers: border-2 border-[#000000]
- Zero gaps: gap-0, elements butt against each other
- Extreme type scale contrast (160px heading vs 10px label)
- Non-symmetric layouts (3/9, 8/4 column splits)

## Color Palette

Primary:
- Black: #000000 (text, borders, backgrounds)
- White: #ffffff (backgrounds)
- Red: #ff0000 (color blocks, hover states)
- Blue: #0057b8 (color blocks)
- Yellow: #ffcc00 (color blocks)

## Special Elements

- 12-column grid system with visible structural lines
- Asymmetric column splits (not 6/6 - use 3/9, 8/4, etc.)
- Color block backgrounds (full sections in red/blue/yellow)
- Visible grid column markers
- Extreme font size contrasts (160px vs 10px)
- Edge-to-edge button groups (gap-0, border-l-0)
- Vertical text using writing-mode: vertical-lr
- Section borders as visual separators instead of spacing

## Animation & Interaction Rules

- Absolute Objectivity: Zero `translate`, `scale`, or `shadow` changes on any interactive element. Swiss Poster communicates through color and typography alone -- motion is visual noise that undermines the grid's authority.
- Snap Transitions: All state changes use `transition-none` -- color flips are instantaneous, like ink stamped onto paper in a single press. Never use `duration-100` or any timed transition.
- Color Block Invasion: Hover replaces the entire background with solid black `hover:bg-[#000000]` and text inverts to `hover:text-[#ffffff] transition-none`. The color block takes over completely -- no partial fills, no gradients.
- Typographic Highlighting: The year/category label activates to `group-hover:text-[#ff0000] transition-none` on hover -- the red typographic accent fires like a stamp imprint, the only color note in a black-and-white composition.

---

# Swiss Poster Design System

> Bold typography, grid alignment, primary color blocks, and experimental layouts. Rooted in the Swiss International Style poster design tradition, building information delivery through oversized type and strong visual hierarchy. Differs from swiss-style by focusing more on poster-level experimental large-scale typography.

## Design Philosophy

Swiss Poster style originates from the poster tradition of the Swiss International Style design movement, pursuing the ultimate in typographic expressiveness.

Core principles:
- Oversized typography: Using extreme font sizes to create visual impact (160px headings vs 10px labels)
- 12-column grid system: All content strictly aligned to grid-cols-12, using asymmetric column splits
- Primary color blocks: Black and white as primary, with red, blue, and yellow as large-area color block accents
- Border separation: Using border-2 border-[#000000] to divide regions, not shadows or spacing
- Zero spacing: gap-0 keeps element edges flush, using border lines as visual separators
- No decoration: No rounded corners, shadows, gradients, or blur -- only solid colors and lines

---

## Token Dictionary (exact class mapping)

### Border
```
Width: border-2
Color: border-[#000000]
Radius: rounded-none
```

### Shadow
```
sm: shadow-none
md: shadow-none
lg: shadow-none
hover: shadow-none
focus: shadow-none
```

### Interaction
```
Hover translate: hover:-translate-y-0.5
Hover scale: (none)
Hover opacity: (none)
Transition: transition-all duration-100 ease-out
Active: active:scale-[0.98]
```

### Typefaces
```
Heading: font-sans font-black uppercase tracking-tighter
Body: font-sans
Mono: font-mono
```

### Type scale
```
Hero: text-6xl md:text-[10rem] lg:text-[12rem]
H1: text-5xl md:text-7xl lg:text-8xl
H2: text-3xl md:text-5xl lg:text-6xl
H3: text-xl md:text-2xl lg:text-3xl
Body: text-sm md:text-base
Small: text-xs md:text-sm
```

### Spacing
```
Section: py-0
Container: px-0
Card: p-6 md:p-8
Gap sm: gap-0
Gap md: gap-0
Gap lg: gap-0
```

### Color roles
```
Background primary: bg-[#ffffff]
Background secondary: bg-[#f5f5f5]
Background accent: bg-[#ff0000], bg-[#0057b8], bg-[#ffcc00]
Text primary: text-[#000000]
Text secondary: text-[#000000]/70
Text muted: text-[#000000]/30
Button primary: bg-[#000000] text-[#ffffff]
Button secondary: bg-[#ff0000] text-[#ffffff]
```

---

## [FORBIDDEN]

These classes are banned in this style. Check for them before returning code:

### Banned classes
- `rounded-md`
- `rounded-lg`
- `rounded-xl`
- `rounded-2xl`
- `rounded-full`
- `bg-gradient-to-r`
- `bg-gradient-to-b`
- `bg-gradient-to-br`
- `shadow-sm`
- `shadow-md`
- `shadow-lg`
- `shadow-xl`
- `backdrop-blur`
- `backdrop-blur-sm`
- `font-serif`
- `font-mono`
- `border-dashed`
- `gap-4`
- `gap-6`
- `gap-8`

### Banned patterns
- matches `^rounded-(?:md|lg|xl|2xl|full)$`
- matches `^bg-gradient-`
- matches `^shadow-(?:sm|md|lg|xl|2xl)$`
- matches `^backdrop-blur`
- matches `^font-serif$`
- matches `^font-mono$`

### Why they are banned
- `rounded-lg`: Swiss Poster uses sharp edges only (rounded-none) - geometric precision
- `bg-gradient-to-r`: Swiss Poster uses flat solid color blocks only, no gradients
- `shadow-md`: Swiss Poster does not use shadows at all - relies on borders and color blocks for hierarchy
- `backdrop-blur`: Swiss Poster is clean and opaque, no blur or glass effects
- `font-serif`: Swiss Poster uses sans-serif only (Helvetica/Akzidenz-Grotesk tradition)
- `font-mono`: Swiss Poster uses sans-serif only - monospace breaks the typographic tradition
- `border-dashed`: Swiss Poster uses solid borders only - dashed lines break the clean grid aesthetic
- `gap-4`: Swiss Poster uses gap-0 - elements butt against each other with borders as separators

> WARNING: if your code contains any of the above, replace it before shipping.

---

## [REQUIRED]

### Every button must include
```
rounded-none
font-sans font-black uppercase tracking-widest
border-2 border-[#000000]
transition-all duration-100 ease-out
```

### Every card must include
```
rounded-none
bg-[#ffffff]
border-2 border-[#000000]
```

### Every input must include
```
rounded-none
border-0 border-b-2 border-[#000000]
bg-transparent
font-sans font-bold
focus:outline-none
```

---

## [COMPARE] Swiss Poster wrong vs right

The wrong examples below stand for generic library defaults that were never adapted to this style. Do not read them as visual suggestions.

### Button

[WRONG] **Wrong** (generic component library default, do not copy):
```html
<button class="{GENERIC_LIBRARY_BUTTON_DEFAULT}">
 Click me
</button>
```

[CORRECT] **Right** (uses this style's tokens):
```html
<button class="rounded-none font-sans font-black uppercase tracking-widest border-2 border-[#000000] transition-all duration-100 ease-out bg-[#000000] text-[#ffffff]">
 Click me
</button>
```

### Card

[WRONG] **Wrong** (generic card, not adapted to this style):
```html
<div class="{GENERIC_LIBRARY_CARD_DEFAULT}">
 <h3>{TITLE}</h3>
</div>
```

[CORRECT] **Right** (uses this style's card tokens):
```html
<div class="rounded-none bg-[#ffffff] border-2 border-[#000000] p-6 md:p-8">
 <h3 class="font-sans font-black uppercase tracking-tighter text-xl md:text-2xl lg:text-3xl">{TITLE}</h3>
</div>
```

### Input

[WRONG] **Wrong** (generic input, not adapted to this style):
```html
<input class="{GENERIC_LIBRARY_INPUT_DEFAULT}" />
```

[CORRECT] **Right** (uses this style's input tokens):
```html
<input class="rounded-none border-0 border-b-2 border-[#000000] bg-transparent font-sans font-bold focus:outline-none" placeholder="{PLACEHOLDER}" />
```

---

## [TEMPLATES] Swiss Poster page skeletons

These skeletons use this style's tokens only. Replace `{PLACEHOLDER}` values, but keep every token in place:

### Navigation
```html
<nav class="bg-[#ffffff] text-[#000000] border-2 border-[#000000] px-0">
 <div class="flex items-center justify-between max-w-6xl mx-auto gap-0">
 <a href="/" class="font-sans font-black uppercase tracking-tighter text-xl md:text-2xl lg:text-3xl">
 {LOGO_TEXT}
 </a>
 <div class="flex gap-0 font-sans text-xs md:text-sm">
 {NAV_LINKS}
 </div>
 </div>
</nav>
```

### Hero section
```html
<section class="bg-[#ff0000] text-[#000000] py-0 px-0">
 <div class="max-w-4xl mx-auto">
 <h1 class="font-sans font-black uppercase tracking-tighter text-6xl md:text-[10rem] lg:text-[12rem]">
 {HEADLINE}
 </h1>
 <p class="font-sans text-sm md:text-base max-w-xl">
 {SUBHEADLINE}
 </p>
 <button class="rounded-none font-sans font-black uppercase tracking-widest border-2 border-[#000000] transition-all duration-100 ease-out bg-[#000000] text-[#ffffff]">
 {CTA_TEXT}
 </button>
 </div>
</section>
```

### Card grid
```html
<section class="bg-[#ffffff] text-[#000000] py-0 px-0">
 <div class="max-w-6xl mx-auto">
 <h2 class="font-sans font-black uppercase tracking-tighter text-3xl md:text-5xl lg:text-6xl">{SECTION_TITLE}</h2>
 <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-0">
 <!-- Card template - repeat for each card -->
 <div class="rounded-none bg-[#ffffff] border-2 border-[#000000] p-6 md:p-8">
 <h3 class="font-sans font-black uppercase tracking-tighter text-xl md:text-2xl lg:text-3xl">{CARD_TITLE}</h3>
 <p class="font-sans text-sm md:text-base text-[#000000]/30">{CARD_DESCRIPTION}</p>
 </div>
 </div>
 </div>
</section>
```

### Form input
```html
<input class="rounded-none border-0 border-b-2 border-[#000000] bg-transparent font-sans font-bold focus:outline-none" placeholder="{PLACEHOLDER}" />
```

### Footer
```html
<footer class="bg-[#f5f5f5] text-[#000000]/70 py-0 px-0">
 <div class="max-w-6xl mx-auto">
 <div class="grid grid-cols-1 md:grid-cols-3 gap-0">
 <div>
 <span class="font-sans font-black uppercase tracking-tighter text-xl md:text-2xl lg:text-3xl">{LOGO_TEXT}</span>
 <p class="font-sans text-xs md:text-sm">{TAGLINE}</p>
 </div>
 <div>
 <h4 class="font-sans font-black uppercase tracking-tighter text-xl md:text-2xl lg:text-3xl">{COLUMN_TITLE}</h4>
 <ul class="font-sans text-xs md:text-sm">
 {FOOTER_LINKS}
 </ul>
 </div>
 </div>
 </div>
</footer>
```

---

## [CHECKLIST] Swiss Poster post-generation self check

**Before returning code, verify every token and rule below. Fix any violation before delivering:**

### Token check
- [ ] Button includes: `rounded-none font-sans font-black uppercase tracking-widest border-2 border-[#000000] transition-all duration-100 ease-out`
- [ ] Card includes: `rounded-none bg-[#ffffff] border-2 border-[#000000]`
- [ ] Input includes: `rounded-none border-0 border-b-2 border-[#000000] bg-transparent font-sans font-bold focus:outline-none`

### Forbidden check
- [ ] Not using `rounded-md`
- [ ] Not using `rounded-lg`
- [ ] Not using `rounded-xl`
- [ ] Not using `rounded-2xl`
- [ ] Not using `rounded-full`
- [ ] Not using `bg-gradient-to-r`
- [ ] Not using `bg-gradient-to-b`
- [ ] Not using `bg-gradient-to-br`

### Style rule check
- [ ] Use oversized bold sans-serif type (font-sans font-black)
- [ ] Strictly follow 12-column grid alignment (grid-cols-12)
- [ ] Use black and white as primary colors
- [ ] Use primary colors (red #ff0000, blue #0057b8, yellow #ffcc00) as color block accents
- [ ] Keep sharp edges (rounded-none)

### Style drift check
- [ ] Does not violate: Do not use decorative, script, or monospace fonts
- [ ] Does not violate: Do not use rounded corners larger than rounded-sm
- [ ] Does not violate: Do not use any shadows (shadow-sm and above)
- [ ] Does not violate: Do not use gradients
- [ ] Does not violate: Do not use dashed borders (border-dashed)

### Delivery check
- [ ] Responsive layout holds on phone, tablet and desktop with no horizontal overflow
- [ ] Every interactive element has a visible focus state, an accessible name and a reduced-motion path
- [ ] Text contrast meets WCAG AA and colour alone never carries state
- [ ] The result is still recognizable at a glance as Swiss Poster

---

## [EXAMPLES] Example prompts

### 1. 

12

```
Use Swiss Poster style to create a landing page:
1. Background: white with visible 12-column structural grid
2. Title: extremely large (160px) black sans-serif, uppercase, tight tracking
3. Layout: asymmetric grid-cols-12 splits (8/4, 3/9), never symmetric
4. Cards: border-only, no shadows, color block hover states
5. Buttons: edge-to-edge gap-0, joined with border-l-0
6. Color blocks: large red/blue/yellow sections as accents
7. Section dividers: border-2 border-[#000000], no spacing
8. Overall bold, grid-based, mathematical typographic poster aesthetic
```

## Absolute Bans (Match and Refuse)

If any of the following patterns appear, it is a style violation — rewrite without exception.

- use decorative, script, or monospace fonts
- use rounded corners larger than rounded-sm
- use any shadows (shadow-sm and above)
- use gradients
- use dashed borders (border-dashed)
- use element spacing (gap-4, etc.) -- use gap-0 + borders
- use any `translate`, `scale`, or `rotate` animations (Absolute Objectivity -- Swiss Poster communicates through color and typography, not motion)
- use `active:scale-[0.98]` or any scale (posters do not shrink when touched)

## Self-Check (Verify Before Shipping)

If any item fails, the style has drifted — fix before shipping.

- [ ] No purple-to-blue gradients
- [ ] No overused fonts (Inter, Roboto, Geist, Fraunces, Plus Jakarta Sans)
- [ ] No nested cards (cards inside cards)
- [ ] No gray text on colored backgrounds
- [ ] Body text contrast meets WCAG AA (>= 4.5:1)
- [ ] No bounce or elastic easing curves
- [ ] Animations have a prefers-reduced-motion fallback
- [ ] Body text line length capped at 65-75 characters
- [ ] No side-stripe accent borders (border-left/right > 1px)
- [ ] No gradient text (background-clip: text)
- [ ] No glassmorphism used as the default surface treatment
- [ ] No tiny uppercase tracked eyebrow labels above every section heading
- [ ] do not use decorative, script, or monospace fonts
- [ ] do not use rounded corners larger than rounded-sm
- [ ] do not use any shadows (shadow-sm and above)
- [ ] do not use gradients
- [ ] do not use dashed borders (border-dashed)

More prompt libraries: All UI Prompts · Tailwind UI Prompts · Dark Mode UI Prompts

Community

Ratings & Feedback

No ratings yet - be the firstSign in to rate
0 comments
Sign in to post a comment. Sign In

Component Templates

Component Preview

按钮

Swiss Poster 风格按钮,Color Block Invasion 整块颜色翻转 + Snap Transitions `transition-none` + active 反转为白底黑字

Pointer Interactions

How Swiss Poster moves

Pointer interactions tailored to this style — same cursor, completely different character. Move around the stage to feel it.

GRID
TiltTilt block
StaticMove the cursor
Perspective gridSubtle 3D tiltExplore all rooms in Cursor Lab

Frontend Readiness

Dark Mode, States, Motion, and Accessibility

This layer tracks whether the style is ready for real websites: theme modes, state feedback, keyboard access, and performance constraints.

Overall

51%

Fallback

Dark Mode

0%

Missing

UI States

79%

Partial

Motion

70%

Partial

A11y

70%

Partial

Performance

35%

Fallback

Key State Coverage

light
HoverFocus VisibleDisabledLoadingEmptyErrorSuccess

Button

Default / Hover / Focus Visible / Active / Disabled

Input

Default / Hover / Focus Visible / Disabled / Error

Card

Default / Hover / Focus Visible / Loading / Skeleton

Form

Default / Focus Visible / Disabled / Loading / Error

Implementation Notes

  • No curated dark-mode contract exists yet.
  • Check contrast in both light and dark modes.
  • Check heavy shadows, blur, large media, and scroll-linked effects manually.
  • No style-specific performance cost profile has been curated yet.

FAQ

Swiss Poster — Frequently Asked Questions

01What is the Swiss Poster design style?
Bold typography, grid alignment, primary color blocks, and experimental layouts. Rooted in the Swiss International Style poster design tradition, building information delivery through oversized type and strong visual hierarchy. Differs from swiss-style by focusing more on poster-level experimental large-scale typography. Its core principle: Swiss Poster style originates from the poster tradition of the Swiss International Style design movement, pursuing the ultimate in typographic expressiveness.
02What colors does Swiss Poster use?
Swiss Poster uses #000000 as its primary color and #ffffff as its secondary color, with accent colors #ff0000, #0057b8, #ffcc00, #6c3b00. Every hex value can be copied from the palette on this page.
03How do I apply Swiss Poster correctly?
Key practices: Use oversized bold sans-serif type (font-sans font-black). Strictly follow 12-column grid alignment (grid-cols-12). Use black and white as primary colors.
04What are common mistakes with Swiss Poster?
Avoid: Do not use decorative, script, or monospace fonts. Do not use rounded corners larger than rounded-sm. Do not use any shadows (shadow-sm and above).
05How do I prompt AI to generate Swiss Poster UI?
Copy the ready-made AI prompt on this page — it bundles the design tokens and component rules — and paste it into ChatGPT, Claude, Claude Code, or Codex. Effective prompts include the keywords: Swiss poster, Swiss poster design, oversized typography, big type.
Global Styles

Global CSS

css
/* Swiss Poster Global Styles */

:root {
  --sp-black: #000000;
  --sp-white: #ffffff;
  --sp-red: #ff0000;
  --sp-blue: #0057b8;
  --sp-yellow: #ffcc00;
}

/* Structural grid overlay for development */
.sp-grid-overlay {
  background-image:
    linear-gradient(rgba(0, 0, 0, 0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0, 0, 0, 0.03) 1px, transparent 1px);
  background-size: calc(100% / 12) 100px;
}

/* Color block accents */
.sp-block-red { background-color: var(--sp-red); }
.sp-block-blue { background-color: var(--sp-blue); }
.sp-block-yellow { background-color: var(--sp-yellow); }

/* Tight tracking for poster headings */
.sp-tight { letter-spacing: -0.05em; }

/* Structural divider line */
.sp-divider {
  border-top: 2px solid var(--sp-black);
}

/* Vertical text for sidebar labels */
.sp-vertical-text {
  writing-mode: vertical-lr;
  transform: rotate(180deg);
  letter-spacing: 0.5em;
}

/* Asymmetric grid helper - 3/9 split */
.sp-grid-3-9 {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
}
.sp-grid-3-9 > :first-child { grid-column: span 3; }
.sp-grid-3-9 > :last-child { grid-column: span 9; }

/* Edge-to-edge buttons */
.sp-button-group {
  display: flex;
  gap: 0;
}
.sp-button-group > * + * {
  border-left: 0;
}
@keyframes swiss-poster-fade-in {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes swiss-poster-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.7; }
}

.swiss-poster-card {
  position: relative;
  overflow: hidden;
}

.swiss-poster-card::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 0.3s ease;
  background: linear-gradient(135deg, rgba(0, 0, 0, 0.05), transparent);
  pointer-events: none;
}

.swiss-poster-card:hover::before {
  opacity: 1;
}

.swiss-poster-frosted {
  backdrop-filter: blur(12px) saturate(180%);
  -webkit-backdrop-filter: blur(12px) saturate(180%);
  background: rgba(0, 0, 0, 0.08);
}

.swiss-poster-accent-corner {
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 2rem), calc(100% - 2rem) 100%, 0 100%);
}

.swiss-poster-animate-in {
  animation: swiss-poster-fade-in 0.5s ease-out both;
}

IDE Integration

IDE Configuration Export

Download configuration files for AI coding assistants to generate code in this style.

Style Pack

Export Style Pack

Get complete machine-readable style assets including design tokens, Tailwind presets, CSS variables, and shadcn/ui themes.

Metadata

Style metadata including version information

Design Tokens

Compatible with Figma / Style Dictionary / Tokens Studio

Tailwind Preset

Tailwind CSS theme preset, import directly in config

Global CSS

CSS variables and base styles

shadcn Theme

shadcn/ui theme configuration

CSS Variables

Pure CSS variables, works with any project

SKILL.md

Loadable skill pack for Cursor / Claude Code / VS Code

Design Philosophy

Swiss Poster style originates from the poster tradition of the Swiss International Style design movement, pursuing the ultimate in typographic expressiveness.

Accessibility

Accessibility Score

WCAG 2.1 compliance analysis based on color contrast and typography readability.

82

Overall Score

Grade: B - Good

Contrast Ratios

Score: 82/100Average Ratio: 13.91:1
AA FailAAA Fail
ContextColorsRatioAAAAA
Text on background
/#000000 / #ffffff
21:1
Secondary text on background
/#000000 / #ffffff
21:1
Muted text on background
/#000000 / #ffffff
21:1
Text on secondary background
/#000000 / #f5f5f5
19.26:1
Secondary text on secondary
/#000000 / #f5f5f5
19.26:1
Button primary
/#ffffff / #000000
21:1
Text on accent 1
/#000000 / #ff0000
5.25:1
Alt text on accent 1
/#000000 / #ff0000
5.25:1
Text on accent 2
/#000000 / #0057b8
3.06:1
Alt text on accent 2
/#000000 / #0057b8
3.06:1
Text on accent 3
/#000000 / #ffcc00
13.89:1
Alt text on accent 3
/#000000 / #ffcc00
13.89:1

Readability

Score

83/100

Font Size

text-sm md:text-base

Font Weight

font-sans font-black uppercase tracking-tighter

Line Height

default

Scoring is based on WCAG 2.1 standards. AA requires 4.5:1 contrast for normal text, 3:1 for large text; AAA requires 7:1 for normal text, 4.5:1 for large text.

StyleKit

A curated web design style library to help AI generate better-looking websites.

FeedbackSupport Maintenance
Explore+
StylesTemplatesAnimationsResource LibraryPromptsCollectionsCommunity
Learn+
FoundationsGuideRecipesChangelogBlog
Trust+
AboutContactPrivacyTermsSupport UsRefunds

(c) 2026 StyleKit. Open source project.

闄旾CP澶?025065501鍙?3

Colophon/SK — 2026

Built with the Editorial style

01FeedbackTell us what could work better02Support MaintenanceIf StyleKit helps your workflow, voluntary support helps cover servers, domains, and ongoing upkeep.

StyleKit

A curated web design style library to help AI generate better-looking websites.

GitHub Repository

Explore

StylesTemplatesAnimationsResource LibraryPromptsCollectionsCommunity

Learn

FoundationsGuideRecipesChangelogBlog

Dispatch

Get notified when new styles, templates and tools ship.

Stay Updated

By subscribing, you agree to our Privacy Policy and Terms.

(c) 2026 StyleKit. Open source project.

AboutContactPrivacyTermsSupport UsRefunds/陕ICP备2025065501号-3

StyleKit