Skills julianoczkowski designer-skills Designer Skills
design-tokens
- Use it when:
- You're setting up a project's visual system, or your tokens lack dark mode, a full spacing scale or motion values.
- It does:
- Extends any tokens you already have, reads the brief's aesthetic philosophy and derives values from frontend-design's parameters for it.
- You get:
- Semantic color, spacing, type, layout, shadow, motion and breakpoint tokens, in your Tailwind config and globals.css, a tokens.css or a theme file.
- Dark mode:
- Always generated and tuned to the philosophy rather than inverted, with both a system-preference query and a data-theme toggle.
Skill 4 of 7 in the Designer Skills bundle, after information-architecture and before brief-to-tasks.
TL;DR
The design-tokens step of Julian Oczkowski's designer workflow: every component built afterwards is meant to use these tokens instead of hard-coded values. It first scans for :root variables, Tailwind config, Material UI, Chakra or shadcn themes, Style Dictionary or Figma token files and UI dependencies, and fills gaps rather than replacing what exists. It reads the design brief if there is one; without one it asks what direction you want. Colors are named by role (backgrounds, text, borders, accents with hover and active states, status, overlay). The spacing scale's base unit follows the philosophy: 4px for tight styles like Brutalist or Swiss, 8px with bigger steps for spacious ones like Japanese minimalism or Editorial. Typography covers display, body and mono families, sizes, weights, line heights and letter spacing, and motion durations, easings and five breakpoints from 375px come with set values. Tailwind projects get their config extended, plain CSS gets tokens.css, CSS-in-JS gets theme.ts, and anything unclear gets CSS custom properties. It ends by saying which philosophy the values come from and where it deviated.
Summarizes the skill at c259656.
npx skills add https://github.com/julianoczkowski/designer-skills --skill design-tokens skills.sh pageSource on GitHubAll skills from julianoczkowski/designer-skills
- Total Downloads
- 6,100 on skills.sh, Nov 9, 2026
- Repo stars
- 601 julianoczkowski/designer-skills
- First seen
- Mar 28, 2026 on skills.sh
Weekly values
| Week to | Installs |
|---|---|
| Sep 21 | 142 |
| Sep 28 | 148 |
| Oct 5 | 101 |
| Oct 12 | 82 |
| Oct 19 | 108 |
| Oct 26 | 86 |
| Nov 2 | 79 |
| Nov 9 | 79 |
| Category |
Taste for interfaces that don't look generated: direction, motion and accessibility. Everything for building software: planning, coding, debugging, design, frameworks, cloud, agents and skills. |
|---|---|
| Type |
A multi-step process the agent follows: interview, debug, run a TDD loop, review. |
| Effect |
Its own steps create or change files, git state or local tools. |
| Needs |
Instructions only. Works in any agent that supports skills. |
| Publisher |
Everyone else. Unverified vendor claims default to community. |
| Topics |
SKILL.md
From julianoczkowski/designer-skills at c259656. Checked daily, last changed Nov 7, 2026.
Frontmatter
name: design-tokens
description: Generate a design tokens file (CSS variables or Tailwind config) based on a chosen aesthetic philosophy, with light and dark mode palettes, spacing scale, type ramp, and component-level tokens. Use when starting a new project, establishing a visual system, setting up tokens, or mentions "tokens" or "design system".This skill generates the foundational design tokens for a project. Run this after the design brief and before building any components. Every component built after this references these tokens instead of hardcoding values.
Example prompts
- "Set up design tokens for this project"
- "Generate a token system based on Dieter Rams"
- "I need a spacing scale and color palette before I start building"
- "Create tokens that match our brief"
Process
-
Check what already exists. Before generating anything, scan the codebase for:
- CSS variable definitions (
:root,[data-theme], custom property files) - Tailwind config (
tailwind.config.js,tailwind.config.ts) and any theme extensions - Theme provider files (Material UI
createTheme, ChakraextendTheme, shadcnglobals.css) - Design token JSON files (Style Dictionary format, Figma token exports)
- Any
tokens.css,variables.css,theme.css, or similarly named files package.jsonfor UI framework dependencies (tailwindcss, @mui/material, @chakra-ui/react, etc.)
If tokens already exist, extend them rather than replacing. Identify gaps (missing dark mode, incomplete spacing scale, no motion tokens) and fill those.
- CSS variable definitions (
-
Read the brief. Look for a design brief at
.design/*/DESIGN_BRIEF.md. If multiple subfolders exist, use the most recently modified one, or ask the user which feature they are working on. If a philosophy is named, use the parameters from/frontend-designto derive token values. If no brief exists, ask the user what direction they want. -
Generate tokens in the format that matches the project's tech stack:
- Tailwind project โ extend
tailwind.config.jsand write toglobals.css - CSS/HTML project โ write to a
tokens.cssfile - CSS-in-JS project โ write to a
theme.tsortheme.jsfile - If unclear, default to CSS custom properties (most portable)
- Tailwind project โ extend
-
Always generate both light and dark mode palettes. Use
[data-theme="dark"]orprefers-color-schememedia query. Both palettes should feel intentional for the chosen philosophy, not just inverted values.
Token Categories
Color
/* Semantic color tokens, not raw values */
--color-bg-primary: /* Main background */
--color-bg-secondary: /* Secondary/card background */
--color-bg-tertiary: /* Subtle background (inputs, wells) */
--color-bg-inverse: /* Inverted background */
--color-text-primary: /* Main text */
--color-text-secondary: /* Subdued text */
--color-text-tertiary: /* Placeholder, disabled text */
--color-text-inverse: /* Text on inverse backgrounds */
--color-text-link: /* Link color */
--color-border-primary: /* Default borders */
--color-border-secondary: /* Subtle borders */
--color-border-focus: /* Focus ring color */
--color-accent-primary: /* Primary action color */
--color-accent-primary-hover:
--color-accent-primary-active:
--color-accent-secondary: /* Secondary action color */
--color-status-success:
--color-status-warning:
--color-status-error:
--color-status-info:
--color-surface-overlay: /* Modal/dropdown backdrop */
Spacing
Generate a consistent scale. The base unit should match the philosophy:
- Tight philosophies (Brutalist, Swiss): 4px base
- Balanced philosophies (Rams, Scandinavian): 4px or 8px base
- Spacious philosophies (Japanese Minimalism, Editorial): 8px base with larger multipliers
--space-0: 0;
--space-1: /* base * 0.25 */
--space-2: /* base * 0.5 */
--space-3: /* base * 0.75 */
--space-4: /* base * 1 */
--space-5: /* base * 1.5 */
--space-6: /* base * 2 */
--space-7: /* base * 3 */
--space-8: /* base * 4 */
--space-9: /* base * 6 */
--space-10: /* base * 8 */
--space-11: /* base * 12 */
--space-12: /* base * 16 */
Typography
--font-family-display: /* Headline/display font */
--font-family-body: /* Body text font */
--font-family-mono: /* Code/monospace font */
--font-size-xs:
--font-size-sm:
--font-size-base:
--font-size-md:
--font-size-lg:
--font-size-xl:
--font-size-2xl:
--font-size-3xl:
--font-size-4xl: /* Hero/display size */
--font-weight-normal:
--font-weight-medium:
--font-weight-semibold:
--font-weight-bold:
--line-height-tight: /* Headings: 1.1-1.3 */
--line-height-normal: /* Body: 1.4-1.6 */
--line-height-relaxed: /* Spacious body: 1.6-1.8 */
--letter-spacing-tight: /* Display type */
--letter-spacing-normal:
--letter-spacing-wide: /* All-caps, labels */
Layout
--max-width-content: /* Max reading width (65-75ch equivalent) */
--max-width-wide: /* Wide content area */
--max-width-page: /* Full page max width */
--border-radius-sm:
--border-radius-md:
--border-radius-lg:
--border-radius-full: /* Pill/circle */
--shadow-sm:
--shadow-md:
--shadow-lg:
--shadow-focus: /* Focus ring shadow */
Motion
--duration-instant: 50ms;
--duration-fast: 150ms;
--duration-normal: 250ms;
--duration-slow: 400ms;
--duration-slower: 600ms;
--easing-default: cubic-bezier(0.4, 0, 0.2, 1);
--easing-in: cubic-bezier(0.4, 0, 1, 1);
--easing-out: cubic-bezier(0, 0, 0.2, 1);
--easing-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);
Responsive Breakpoints
--breakpoint-sm: 375px; /* Mobile */
--breakpoint-md: 768px; /* Tablet */
--breakpoint-lg: 1024px; /* Small desktop */
--breakpoint-xl: 1280px; /* Desktop */
--breakpoint-2xl: 1536px; /* Wide desktop */
Dark Mode
Always generate dark mode tokens alongside light mode. Rules:
- Do not simply invert colors. Dark backgrounds should be warm or cool depending on the philosophy.
- Reduce contrast slightly in dark mode (pure white text on pure black is harsh).
- Shadows should use darker, more transparent values in dark mode, not the same shadows as light.
- Accent colors may need lightness adjustments to maintain contrast ratios.
- Include a
prefers-color-schememedia query AND a[data-theme="dark"]attribute selector so the user can support both system preference and manual toggle.
:root {
/* Light mode tokens */
}
[data-theme="dark"] {
/* Dark mode overrides */
}
@media (prefers-color-scheme: dark) {
:root:not([data-theme="light"]) {
/* System-preference dark mode, unless user explicitly chose light */
}
}
Output
Save the tokens file in the appropriate location for the project's tech stack. State which philosophy the tokens are derived from and note any deviations or choices made.