// Visual design guidelines for the music theory application. Use this skill when creating or improving UI components, designing new features, or working on visual aspects (typography, colors, spacing, animations). Applies to component creation, UI design, and visual styling tasks.
| name | music-theory-visual-design |
| description | Visual design guidelines for the music theory application. Use this skill when creating or improving UI components, designing new features, or working on visual aspects (typography, colors, spacing, animations). Applies to component creation, UI design, and visual styling tasks. |
This skill provides visual design guidelines for building UI components in the music theory application. It ensures consistent typography, color usage, spacing, and animations across all components while maintaining the application's distinctive aesthetic: modern, clean, with musical sophistication.
Create interfaces that balance professional elegance with approachability. Think "concert hall meets digital instrument." Prioritize visual clarity while incorporating subtle musical character through the custom color system.
Font Families:
font-sans (Noto Sans JP) for UI elementsfont-serif (Noto Serif JP) sparingly for decorative textWeight Contrast:
font-bold (700) or font-extrabold (800)font-normal (400) or font-light (300)font-extralight (200) paired with font-black (900))Size Hierarchy:
text-xs (0.75rem)text-sm (0.875rem)text-base (1rem) โ text-lg โ text-xlUse CSS Variables (not hex codes):
bg-background, bg-card, bg-paneltext-foreground, text-muted-foregroundborder-borderbg-accent, text-accent-foregroundbg-selectedMusical Color System (84 colors):
bg-key-c-lydian, text-key-g-dorianbg-key-{pitch}-{mode} (12 pitches ร 7 modes)Transparency for Layering:
bg-white/10, bg-black/5hover:bg-white/25bg-white/50Consistent Spacing:
p-4 (16px) standardspace-y-4gap-4Common Patterns:
bg-card border border-border rounded-lg p-4 shadow-smbg-panel space-y-4h-[var(--content-height-full)]Responsive:
md: prefix (768px+)Framer Motion Basics:
<motion.div
initial={{ opacity: 0, y: 20 }}
animate={{ opacity: 1, y: 0 }}
transition={{ duration: 0.3 }}
>
Hover Effects:
hover:bg-accent hover:text-accent-foreground transition-colorshover:scale-105 transition-transformState Transitions:
transition-colors or transition-transform for smooth changesclassName Management:
twMerge for component className props:
className={twMerge('bg-card border rounded p-4', className)}
clsx only when conditional logic is needed:
className={twMerge(clsx('base', isActive && 'text-primary'), className)}
Responsibility Separation:
w-, h-), position (m-, p-), responsive (md:)bg-, text-, border-), internal layout (flex, grid)Example Component:
interface ComponentProps {
className?: string;
}
export const Component: React.FC<ComponentProps> = ({ className }) => {
return <div className={twMerge('bg-card rounded-lg border p-4', className)}>{/* content */}</div>;
};
Color Contrast:
Focus States:
focus:ring-2 focus:ring-primaryfocus:outline-2 focus:outline-accentVisual Feedback:
hover:bg-accentactive:scale-95disabled:opacity-50 disabled:cursor-not-allowed