ui-design-styling
SKILL.md
ryOS UI Design & Styling
The 4 Themes
| Theme | ID | Key Traits |
|---|---|---|
| System 7 | system7 |
Black/white, square corners, Chicago font, dotted patterns |
| macOS Aqua | macosx |
Pinstripes, traffic lights, glossy buttons, Lucida Grande |
| Windows XP | xp |
Blue gradients, Luna style, soft shadows, Tahoma |
| Windows 98 | win98 |
Gray 3D bevels, classic blue title bars, MS Sans Serif |
Essential Utilities
import { cn } from "@/lib/utils";
import { useTheme } from "@/contexts/ThemeContext";
const { osTheme } = useTheme();
// Theme-conditional classes
className={cn(
"base-classes",
osTheme === "macosx" && "aqua-specific",
osTheme === "system7" && "system7-specific"
)}
OS-Aware Tailwind Classes
className="bg-os-window-bg" // Window background
className="border-os-window" // Window border
className="rounded-os" // Theme-appropriate radius
className="font-os-ui" // UI font stack
className="font-os-mono" // Monospace font
className="shadow-os-window" // Window shadow
className="h-os-titlebar" // Title bar height
CSS Variables
Access via var(--name):
--os-font-ui, --os-font-mono
--os-color-window-bg, --os-color-window-border
--os-color-titlebar-active-bg, --os-color-titlebar-inactive-bg
--os-color-button-face, --os-color-button-highlight, --os-color-button-shadow
--os-color-selection-bg, --os-color-selection-text
--os-metrics-border-width, --os-metrics-radius
--os-metrics-titlebar-height, --os-metrics-menubar-height
Theme-Specific Styling
System 7
<div className={cn(
"border-2 border-black bg-white rounded-none",
"font-chicago text-black",
"shadow-[2px_2px_0px_0px_rgba(0,0,0,0.5)]"
)}>
macOS Aqua
<div className={cn(
"bg-[#E8E8E8] border border-black/30",
"rounded-lg font-lucida-grande",
"shadow-[0_3px_10px_rgba(0,0,0,0.3)]"
)}>
<button className="aqua-button primary">OK</button>
</div>
Windows XP
<div className={cn(
"bg-[#ECE9D8] border-[3px] border-[#0054E3]",
"rounded-[0.5rem] font-tahoma",
"shadow-[0_4px_8px_rgba(0,0,0,0.25)]"
)}>
Windows 98
<div className={cn(
"bg-[#C0C0C0] border-2 rounded-none font-ms-sans-serif",
"border-t-white border-l-white",
"border-b-[#808080] border-r-[#808080]"
)}>
Theme Specifications
System 7 (system7)
| Property | Value |
|---|---|
| Fonts | Chicago, Monaco (mono) |
| Window BG | #FFFFFF |
| Border | 2px solid #000000 |
| Radius | 0px |
| Selection | Black bg, white text |
| Shadow | 2px 2px 0px 0px rgba(0,0,0,0.5) |
macOS Aqua (macosx)
| Property | Value |
|---|---|
| Fonts | Lucida Grande, Monaco (mono) |
| Window BG | #E8E8E8 |
| Border | 0.5px solid rgba(0,0,0,0.3) |
| Radius | 0.45rem (8px) |
| Selection | #3875D7 bg, white text |
| Shadow | 0 3px 10px rgba(0,0,0,0.3) |
| Traffic Lights | Red #FF5F57, Yellow #FEBC2E, Green #28C840 |
Windows XP (xp)
| Property | Value |
|---|---|
| Fonts | Tahoma, Consolas (mono) |
| Window BG | #ECE9D8 |
| Border | 3px solid #0054E3 |
| Radius | 0.5rem (8px) |
| Selection | #316AC5 bg, white text |
| Shadow | 0 4px 8px rgba(0,0,0,0.25) |
| Title Bar | Blue gradient #0A246A → #0054E3 |
Windows 98 (win98)
| Property | Value |
|---|---|
| Fonts | MS Sans Serif, Fixedsys (mono) |
| Window BG | #C0C0C0 |
| Raised Bevel | border: 2px solid; border-color: #FFF #808080 #808080 #FFF |
| Sunken Bevel | border: 2px solid; border-color: #808080 #FFF #FFF #808080 |
| Radius | 0px |
| Selection | #000080 bg, white text |
| Title Bar | Gradient #000080 → #1084D0 |
Component Patterns
Theme-Adaptive Button
import { Button } from "@/components/ui/button";
<Button variant="default">Standard</Button>
<Button variant="retro">Retro Style</Button>
<Button variant="aqua">Aqua (macOS)</Button>
Aqua Buttons (CSS classes)
<button className="aqua-button">Default</button>
<button className="aqua-button primary">Primary (pulsing)</button>
<button className="aqua-button secondary">Secondary</button>
Win98 3D Button
<button className={cn(
"px-4 py-1 bg-[#C0C0C0]",
"border-2 border-t-white border-l-white",
"border-b-[#808080] border-r-[#808080]",
"active:border-t-[#808080] active:border-l-[#808080]",
"active:border-b-white active:border-r-white"
)}>
Glassmorphism
<div className="bg-white/80 backdrop-blur-lg rounded-lg">
<div className="bg-black/40 backdrop-blur-xl text-white">
Theme-Aware Panel
<div className={cn(
"p-4 bg-os-window-bg border-os-window rounded-os",
osTheme === "system7" && "border-2 border-black",
osTheme === "macosx" && "shadow-md",
osTheme === "win98" && "border-2 border-t-white border-l-white border-b-[#808080] border-r-[#808080]"
)}>
Custom Components
| Component | Usage |
|---|---|
AudioBars |
Frequency visualization |
PlaybackBars |
Equalizer animation |
VolumeBar |
Horizontal volume indicator |
Dial |
Circular dial control (sm/md/lg) |
RightClickMenu |
Context menu wrapper |
Dial Example
import { Dial } from "@/components/ui/dial";
<Dial value={50} onChange={setValue} size="md" label="Volume" />
Window Materials
| Mode | Use Case |
|---|---|
default |
Standard opaque windows |
transparent |
Semi-transparent (iPod, Photo Booth) |
notitlebar |
Immersive with floating controls (Videos) |
Best Practices
- Always search for existing patterns before creating new styles or components
- Always use
cn()for conditional class merging - Use OS-aware classes (
bg-os-*,border-os-*) when available - Check theme with
useTheme()for complex conditional rendering - Prefer CSS variables over hardcoded colors
- Test all 4 themes when adding styled components x
Weekly Installs
31
Repository
ryokun6/ryosGitHub Stars
1.1K
First Seen
Jan 30, 2026
Security Audits
Installed on
gemini-cli31
codex31
cline31
cursor31
opencode30
antigravity30