Agent skill

UI Design Styling

by ryokun6 in ryokun6/ryos

Design and style ryOS UI using the current OS theme token system, Tailwind variants, shared primitives, Aqua Glass, dark mode, and accent conventions.

AGPL-3.0Auto-check passedFrontend & Design

Install UI Design Styling

skills CLI
$ npx skills add ryokun6/ryos --skill ui-design-styling -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install ryokun6/ryos ui-design-styling --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/ryokun6/ryos.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.cursor/skills/ui-design-styling .claude/skills/ui-design-styling && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
ui-design-styling
GitHub stars
1.3k
Token cost
~3.1k tokens
SKILL.md length
1,073 words
Files
1
Skills in repo
10
Repo updated
First seen
Licence
AGPL-3.0

At a glance

Design and style ryOS UI using the current OS theme token system, Tailwind variants, shared primitives, Aqua Glass, dark mode, and accent conventions.

  • Works in 8 steps: tokens.css - defaults, per-theme token… → platform.css - rules shared by mac or… → containment.css - reduced motion and… → …
  • Creating UI components
  • SKILL.md covers Canonical References, Supported Themes, Root Attributes and CSS Layers, plus 11 more sections
  • Calls rg and bun

What it does

UI Design Styling is an agent skill from ryokun6/ryos. Design and style ryOS UI using the current OS theme token system, Tailwind variants, shared primitives, Aqua Glass, dark mode, and accent conventions. Use when creating UI components, styling elements, working with themes, adding visual effects, or implementing retro OS aesthetics.

Its SKILL.md is about 3.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Frontend & Design, covering CSS and styling, UI design and Theming and dark mode. It works with Tailwind CSS. The repository describes itself as: ryOS, made with Cursor. The licence is AGPL-3.0.

When your agent uses it

  • Creating UI components
  • Styling elements
  • Working with themes
  • Adding visual effects

Example prompts

  • “/ui-design-styling”

Workflow steps

8 steps, taken from the first numbered list in SKILL.md.

  1. tokens.css - defaults, per-theme token blocks, [data-selected="true"], z-index scale.
  2. platform.css - rules shared by mac or windows platform buckets.
  3. containment.css - reduced motion and third-party/app isolation.
  4. aqua.css - Aqua structural chrome, .aqua-button, brushed metal, typography.
  5. windows.css - Windows structural landing rules.
  6. dark-aqua.css - Aqua dark tokens and structural overrides.
  7. aqua-glass.css - Aqua Glass overrides, imported after dark Aqua.
  8. control-panels-mac.css / control-panels-themed.css - Control Panels skins.

What it can do on your machine

Read from SKILL.md and the folder at commit d68b815. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • rg
    • bun

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

UI Design Styling loads about 3.1k tokens when it runs. Until then it costs about 75 tokens; SKILL.md has 1,073 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~75
When it runs · the whole SKILL.md, loaded when a task matches
~3.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from ryokun6/ryos at commit d68b815, republished under its AGPL-3.0 licence (© ryokun6). 1,073 words, ~3,056 tokens.

Download SKILL.mdSave it as .claude/skills/ui-design-styling/SKILL.md (or your agent's skills folder).
name
ui-design-styling
description
Design and style ryOS UI using the current OS theme token system, Tailwind variants, shared primitives, Aqua Glass, dark mode, and accent conventions. Use when creating UI components, styling elements, working with themes, adding visual effects, or implementing retro OS aesthetics.

ryOS UI Design & Styling

Canonical References

  • Implementation spec: docs/3.3.1-theme-architecture.md
  • User-facing overview: docs/3.3-theme-system.md
  • Token source of truth: src/styles/themes/tokens.css
  • Theme CSS import order: src/styles/themes.css
  • Tailwind mappings and variants: tailwind.config.js
  • Theme metadata/state: src/themes/, src/stores/useThemeStore.ts, src/hooks/useThemeFlags.ts

Visual values belong in CSS --os-* tokens. TypeScript theme files hold metadata, platform behavior, dark-mode support flags, and wallpaper defaults; do not duplicate palettes in TS or component code.

Supported Themes

ThemeIDPlatformKey traits
macOS Aquamacosxmac / aquaGlossy controls, traffic lights, dock, pinstripe or Aqua Glass, light/dark, accents
System 7system7mac / system7Black/white, square corners, Chicago-style type, dotted titlebars, accents
Windows XPxpwindowsLuna blue chrome, rounded window borders, taskbar, legacy XP CSS
Windows 98win98windowsGray bevels, square corners, classic taskbar, legacy 98 CSS

Default theme is macosx; default Aqua material is glass.

Root Attributes

useThemeStore applies attributes to <html>. Prefer targeting these through tokens and Tailwind variants.

Attribute / classMeaning
data-os-themeExact theme id: system7, macosx, xp, win98
data-os-platformShared platform bucket: mac or windows
data-os-mac-chromeMac chrome variant: aqua or system7; absent for Windows
data-os-color-scheme="dark"Present only when the active theme supports dark mode and dark is enabled
data-os-aqua-material="glass"Present only for macOS Aqua Glass
data-os-accentPresent for non-default Mac chrome accents
data-os-system-fontPresent for debug font overrides
.darkMirrors Aqua dark mode for Tailwind dark:* compatibility

CSS Layers

src/styles/themes.css imports theme CSS in this order:

  1. tokens.css - defaults, per-theme token blocks, [data-selected="true"], z-index scale.
  2. platform.css - rules shared by mac or windows platform buckets.
  3. containment.css - reduced motion and third-party/app isolation.
  4. aqua.css - Aqua structural chrome, .aqua-button, brushed metal, typography.
  5. windows.css - Windows structural landing rules.
  6. dark-aqua.css - Aqua dark tokens and structural overrides.
  7. aqua-glass.css - Aqua Glass overrides, imported after dark Aqua.
  8. control-panels-mac.css / control-panels-themed.css - Control Panels skins.

Windows themes also load /css/xp-custom.css or /css/98-custom.css dynamically. When a rule applies to both XP and Win98, use data-os-platform="windows" instead of duplicated exact-theme selectors.

Tokens and Utilities

Use token-backed Tailwind utilities first:

tsx
className="bg-os-window-bg border-os-window rounded-os shadow-os-window"
className="font-os-ui text-os-text-primary"
className="bg-os-panel-bg border-[length:var(--os-metrics-border-width)]"
className="bg-os-input-bg border-os-input-border focus:border-os-input-focusBorder"
className="text-os-link bg-os-selection-bg text-os-selection-text"
className="h-os-titlebar h-os-menubar z-menubar"

Core token groups:

  • Fonts: --os-font-ui, --os-font-mono
  • Surfaces: --os-color-window-bg, --os-color-panel-bg, --os-color-input-bg
  • Borders/separators: --os-color-window-border, --os-color-separator, --os-color-input-border
  • Text: --os-color-text-primary, --os-color-text-secondary, --os-color-text-disabled, --os-color-link
  • Chrome: --os-color-menubar-*, --os-color-titlebar-*, --os-color-button-*
  • Selection/accent: --os-color-selection-*, --os-color-selection-glow, --os-color-selection-ring-gap
  • Metrics/shadows: --os-metrics-*, --os-window-shadow
  • Aqua extras: --os-color-traffic-light-*, --os-pinstripe-*, --os-texture-*, --os-typography-*
  • Layering: --z-base, --z-dialog, --z-menubar, --z-dropdown, --z-spotlight

Shadcn HSL variables (--background, --primary, etc.) still exist for generic UI primitives. For OS chrome and app surfaces, prefer --os-* tokens and bg-os-* / text-os-* utilities.

Tailwind Variants

Use root-attribute variants for small static visual differences:

tsx
className={cn(
  "bg-os-window-bg text-os-text-primary",
  "os-windows:border-os os-mac-aqua:rounded-os",
  "os-mac-system7:rounded-none os-theme-win98:shadow-none",
  "os-dark:bg-os-window-bg os-mac-aqua-dark:text-os-text-primary"
)}

Available variants:

  • os-mac:, os-windows:
  • os-mac-aqua:, os-mac-system7:
  • os-theme-system7:, os-theme-macosx:, os-theme-xp:, os-theme-win98:
  • os-dark:, os-mac-aqua-dark:, os-theme-<id>-dark:

Prefer CSS variants and tokens over React theme branches when the DOM and behavior do not change.

Theme State and Flags

Use useThemeFlags() for component decisions:

tsx
const {
  currentTheme,
  osPlatform,
  macChrome,
  metadata,
  isWindowsTheme,
  isMacTheme,
  isMacOSTheme,
  isSystem7Theme,
  isWinXp,
  isWin98,
  isClassicTheme,
  isAquaMenuChrome,
  isMacAquaChrome,
  supportsDarkMode,
  isDarkMode,
  darkModePreference,
  supportsAccent,
  accent,
  aquaMaterial,
  isAquaGlass,
} = useThemeFlags();

Use React branches only when structure, behavior, assets, layout math, or app logic differs. For non-React code, use useThemeStore.getState() or helpers from @/themes such as getOsPlatform, getOsMacChrome, isWindowsTheme, isMacTheme, isThemeWinXp, and isThemeWin98.

Shared Surface Primitives

Prefer shared primitives before adding new four-way class branches:

tsx
import {
  osCardClassName,
  osDrawerSurfaceClassName,
  osToolbarSurfaceClassName,
  osAppSidebarSurfaceClassName,
  osSeparatorBorderClassName,
  osSubtleIconButtonClassName,
  windowsBevelClassName,
} from "@/components/shared/osThemePrimitives";

Pass isAquaGlass when a primitive supports it. Use windowsBevelClassName("raised" | "sunken") instead of hand-writing Win98 bevel borders.

Icon and Asset Sourcing

When choosing app icons, toolbar glyphs, file-type art, dialog icons, devices, folders, or other OS-flavored imagery, search the repo icon libraries before drawing new assets or using external sources.

Active theme icons live under public/icons/<theme>/... and are resolved through public/icons/manifest.json by helpers such as pickIconPath, resolveIconLegacyAware, and useIconPath. Historical source libraries live outside active theme resolution:

  • Mac OS X Panther/Tiger catalogs: public/resources/macos-icon-catalogs/{panther,tiger}/catalog.md
  • Windows 98/XP catalogs: public/resources/windows-icon-catalogs/{win98,xp}/catalog.md

Use this order:

  1. Prefer an existing logical icon in public/icons/default, then matching theme variants in public/icons/macosx, public/icons/win98, or public/icons/xp.
  2. If no active icon fits, search the resource catalogs by concept and source era-appropriate art from categories such as applications, system-preferences, control-panels, dialog-ui-assets, folders, devices, and file-types.
  3. Copy/adapt the chosen catalog asset into public/icons/<theme>/... only when it should participate in active UI rendering; keep public/resources/... as the source catalog, not as runtime app metadata.
  4. Run bun run generate:icons after changing active public/icons files.
  5. Preserve cross-theme fallback behavior: add default assets first, then theme-specific variants where they materially improve the UI.

Useful searches:

bash
rg -i "calculator|paint|printer|warning|folder" public/resources/*-icon-catalogs
rg -i "\"themes\"|\"macosx\"|\"win98\"|\"xp\"" public/icons/manifest.json
Show full SKILL.md (397 more words)Show less

Component Patterns

Button
tsx
import { Button } from "@/components/ui/button";

<Button variant="default">Standard</Button>
<Button variant="secondary">Secondary</Button>
<Button variant="retro">Retro</Button>
<Button variant="aqua">Aqua</Button>

Button maps variants to .aqua-button on macOS Aqua and legacy .button on Windows.

Aqua CSS Buttons
tsx
<button className="aqua-button">Default</button>
<button className="aqua-button primary">Primary</button>
<button className="aqua-button secondary">Secondary</button>
<button className="aqua-button orange">Orange</button>
Tokenized Panel
tsx
<div
  className={cn(
    "rounded-os bg-os-window-bg text-os-text-primary shadow-os-window",
    "border-[length:var(--os-metrics-border-width)] border-os-window",
    "os-theme-win98:shadow-none"
  )}
>
Selected Rows

Use the built-in selection utility when possible:

tsx
<div data-selected={isSelected ? "true" : undefined}>Song</div>

Aqua Glass, Dark Mode, and Accents

  • Aqua Glass is the default material for macosx; it is driven by data-os-aqua-material="glass" and src/styles/themes/aqua-glass.css.
  • Do not build ad hoc glass with generic bg-white/80 backdrop-blur-* unless the surface is intentionally outside the OS material system.
  • Only macosx currently supports dark mode. Use --os-* tokens, os-dark:, or os-mac-aqua-dark:; branch on isDarkMode only for behavioral or structural differences.
  • Mac chromes (macosx, system7) support accents. The default accent is wallpaper; default means "System" and clears inline overrides so stylesheet tokens win.
  • Accent-aware UI should read --os-color-selection-*, --os-color-link, focus-ring tokens, or Tailwind bg-os-selection-bg / text-os-link.

Window Materials

WindowFrame supports per-window materials:

MaterialUse case
defaultStandard opaque windows
transparentSemi-transparent app windows such as media surfaces
notitlebarImmersive windows with floating or hover chrome
brushedmetalClassic Mac brushed-metal apps

Global Aqua Glass is separate from WindowFrame material. Regular Aqua windows receive glass classes when the global material is glass; brushed-metal windows keep brushed-metal semantics and are adjusted by CSS.

Typography

  • Use font-os-ui and font-os-mono; avoid theme-specific font utility names.
  • WindowFrame content has .window-body, which consumes --os-typography-window.
  • For shell or portaled copy outside a WindowFrame, use OS_SHELL_TEXT_SCALE_CLASS from @/lib/themeChrome.
  • For custom native chrome that must avoid Aqua global typography selectors, put OS_NATIVE_CHROME_SKIP_CLASS on an ancestor.
  • Use the prose-textedit typography variant for TextEdit-like rich content so Aqua dark mode stays readable.

Anti-Patterns

  • Do not copy hex values from old examples; add or consume --os-* tokens.
  • Do not make currentTheme === "xp" || currentTheme === "win98" branches for shared Windows styling; use platform attributes, variants, or helpers.
  • Do not use React branches for static colors, borders, radii, shadows, or text colors.
  • Do not create one-off glassmorphism when Aqua Glass tokens and CSS apply.
  • Do not add new theme-specific components before checking src/components/shared/osThemePrimitives.ts and existing app patterns.

Checklist

  1. Search for an existing primitive or app pattern before styling from scratch.
  2. Use cn() for conditional class merging.
  3. Prefer --os-* tokens, token-backed Tailwind utilities, and os-*: variants.
  4. Use useThemeFlags() or @/themes helpers only when structure or behavior changes.
  5. Consider Aqua Glass, Aqua dark mode, accents, inactive-window selection, and Windows legacy CSS.
  6. Test styled components across all four themes; include Aqua Glass and Aqua dark mode when touching macosx surfaces.

© ryokun6, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .cursor/skills/ui-design-styling of ryokun6/ryos.

Open the folder on GitHubat commit d68b815

Compare with similar skills

UI Design Styling next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

UI Design Styling compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
UI Design Styling this skillryokun6/ryos1.3k—~3.1kAutomated safety check: PassAGPL-3.0
UI StylingOhh-889/skyroc79513 repos~2.5kAutomated safety check: PassMIT
MCP Developmentcoollabsio/coolify63k1 repos~949Automated safety check: PassMIT
Liuguang Banlan UIsickn33/agentic-awesome-skills47k1 repos~2.5kAutomated safety check: PassMIT
Tailwind Theme Builderjezweb/claude-skills1.1k1 repos~3.2kAutomated safety check: PassMIT
Preline Theme Generatorhtmlstreamofficial/preline6.5k—~619Automated safety check: WarnCustom licence

Similar skills

  • UI Styling

    Ohh-889/skyroc

    Create beautiful, accessible user interfaces with shadcn/ui components (built on Radix UI + Tailwind), Tailwind CSS utility-first styling, and canvas-based visual designs.

    795 GitHub starsUsed in 13 repos~2.5k tokens
    Frontend & DesignAuto-check passed
  • MCP Development

    coollabsio/coolify

    A skill your agent uses for Laravel MCP development. An agent skill from coollabsio/coolify.

    63k GitHub starsUsed in 1 repo~949 tokens
    Frontend & DesignAuto-check passed
  • Liuguang Banlan UI

    sickn33/agentic-awesome-skills

    Implements an interface in one of two named color modes, iridescent white or colorful black, from a parameterized starter that reports measured color intensity.

    47k GitHub starsUsed in 1 repo~2.5k tokens
    Frontend & DesignAuto-check passed
  • Tailwind Theme Builder

    jezweb/claude-skills

    Set up Tailwind v4 + shadcn/ui themed UI with dark mode. An agent skill from jezweb/claude-skills.

    1.1k GitHub starsUsed in 1 repo~3.2k tokens
    Frontend & DesignAuto-check passed
  • Preline Theme Generator

    htmlstreamofficial/preline

    Generates light and dark Preline theme CSS from a brand color or mood, previews it, and validates token coverage through bundled local scripts.

    6.5k GitHub stars~619 tokensUpdated 1 mo ago
    Frontend & DesignAuto-check: warnings
  • UI Design System

    try-works/role-model

    React UI component systems with TailwindCSS + Radix + shadcn/ui.

    118 GitHub stars~5k tokensUpdated 2 days ago
    Frontend & DesignAuto-check passed

More from ryokun6/ryos

All 10 skills in this repo
  • Add AI Chat Tool

    ryokun6/ryos

    Add or modify an AI chat tool ("Ask Ryo" capability) in ryOS.

    1.3k GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Create Ryos App

    ryokun6/ryos

    Create new applications for ryOS following established patterns and conventions.

    1.3k GitHub stars~3.7k tokensUpdated today
    Auto-check passed
  • Create Store

    ryokun6/ryos

    Create or modify ryOS Zustand stores following repo conventions — persist middleware, partialize, versioned migrations, the debounced write-behind storage adapter for large slices, and cloud-sync…

    1.3k GitHub stars~2.1k tokensUpdated today
    Auto-check passed
  • Desktop Release

    ryokun6/ryos

    Cut and publish ryOS Electron desktop releases on GitHub. An agent skill from ryokun6/ryos.

    1.3k GitHub stars~1k tokensUpdated today
    Auto-check: notes
  • Localize

    ryokun6/ryos

    Localize ryOS apps and components by extracting hardcoded strings, replacing with translation keys, and syncing across languages.

    1.3k GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • React performance optimization guidelines from Vercel Engineering (vercel-labs/agent-skills).

    1.3k GitHub stars~2k tokensUpdated today
    Auto-check passed

Works with

Questions about UI Design Styling

What does UI Design Styling do?

Design and style ryOS UI using the current OS theme token system, Tailwind variants, shared primitives, Aqua Glass, dark mode, and accent conventions. UI Design Styling is an agent skill from ryokun6/ryos. Design and style ryOS UI using the current OS theme token system, Tailwind variants, shared primitives, Aqua Glass, dark mode, and accent conventions.

When should I use UI Design Styling?

UI Design Styling fits situations like: creating UI components; styling elements; working with themes; adding visual effects.

How do I install UI Design Styling in Claude Code?

Run `npx skills add ryokun6/ryos --skill ui-design-styling -a claude-code`. Or copy the skill folder (.cursor/skills/ui-design-styling in ryokun6/ryos) into .claude/skills/ui-design-styling in your project. Claude Code loads it when a task matches its description.

How do I install UI Design Styling in Codex?

Run `npx skills add ryokun6/ryos --skill ui-design-styling -a codex`. Or copy the skill folder (.cursor/skills/ui-design-styling in ryokun6/ryos) into .agents/skills/ui-design-styling in your project. Codex loads it when a task matches its description.

Can I use UI Design Styling in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ryokun6/ryos --skill ui-design-styling -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ui-design-styling, .gemini/skills/ui-design-styling, .github/skills/ui-design-styling and .opencode/skills/ui-design-styling in your project.

What does UI Design Styling need to run?

Going by SKILL.md and its folder, UI Design Styling needs the command-line tools its instructions call (rg and bun).

Does UI Design Styling access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is UI Design Styling safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does UI Design Styling use?

UI Design Styling is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does UI Design Styling use?

About 3.1k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to UI Design Styling?

Skills that share tags, products or a category with UI Design Styling: UI Styling (Ohh-889/skyroc, 795 stars), MCP Development (coollabsio/coolify, 63k stars), Liuguang Banlan UI (sickn33/agentic-awesome-skills, 47k stars) and Tailwind Theme Builder (jezweb/claude-skills, 1.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains UI Design Styling?

ryokun6 (a GitHub user) maintains it in ryokun6/ryos, which has 1,264 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on October 9, 2026.

Source: ryokun6/ryos on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.