taste-skill/SKILL.md
Senior UI/UX Engineer. Architect digital interfaces overriding default LLM biases. Enforces metric-based rules, strict component architecture, CSS hardware acceleration, and balanced design engineering.
npx skillsauth add Leonxlnx/taste-skill design-taste-frontendInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
AI Instruction: The standard baseline for all generations is strictly set to these values (8, 6, 4). Do not ask the user to edit this file. Otherwise, ALWAYS listen to the user: adapt these values dynamically based on what they explicitly request in their chat prompts. Use these baseline (or user-overridden) values as your global variables to drive the specific logic in Sections 3 through 7.
Unless the user explicitly specifies a different stack, adhere to these structural constraints to maintain consistency:
framer-motion, lucide-react, zustand), you MUST check package.json. If the package is missing, you MUST output the installation command (e.g. npm install package-name) before providing the code. Never assume a library exists.RSC).
"use client" component.'use client' at the very top. Server Components must exclusively render static layouts.useState/useReducer for isolated UI. Use global state strictly for deep prop-drilling avoidance.package.json first. Do not use v4 syntax in v3 projects.tailwindcss plugin in postcss.config.js. Use @tailwindcss/postcss or the Vite plugin.sm, md, lg, xl).max-w-[1400px] mx-auto or max-w-7xl.h-screen for full-height Hero sections. ALWAYS use min-h-[100dvh] to prevent catastrophic layout jumping on mobile browsers (iOS Safari).w-[calc(33%-1rem)]). ALWAYS use CSS Grid (grid grid-cols-1 md:grid-cols-3 gap-6) for reliable structures.@phosphor-icons/react or @radix-ui/react-icons as the import paths (check installed version). Standardize strokeWidth globally (e.g., exclusively use 1.5 or 2.0).LLMs have statistical biases toward specific UI cliché patterns. Proactively construct premium interfaces using these engineered rules:
Rule 1: Deterministic Typography
text-4xl md:text-6xl tracking-tighter leading-none.
Inter for "Premium" or "Creative" vibes. Force unique character using Geist, Outfit, Cabinet Grotesk, or Satoshi.Geist + Geist Mono or Satoshi + JetBrains Mono).text-base text-gray-600 leading-relaxed max-w-[65ch].Rule 2: Color Calibration
Rule 3: Layout Diversification
LAYOUT_VARIANCE > 4. Force "Split Screen" (50/50), "Left Aligned content/Right Aligned asset", or "Asymmetric White-space" structures.Rule 4: Materiality, Shadows, and "Anti-Card Overuse"
VISUAL_DENSITY > 7, generic card containers are strictly BANNED. Use logic-grouping via border-t, divide-y, or purely negative space. Data metrics should breathe without being boxed in unless elevation (z-index) is functionally required.Rule 5: Interactive UI States
:active, use -translate-y-[1px] or scale-[0.98] to simulate a physical push indicating success/action.Rule 6: Data & Form Patterns
gap-2 for input blocks.To actively combat generic AI designs, systematically implement these high-end coding concepts as your baseline:
backdrop-blur. Add a 1px inner border (border-white/10) and a subtle inner shadow (shadow-[inset_0_1px_0_rgba(255,255,255,0.1)]) to simulate physical edge refraction.useState for magnetic hover or continuous animations. Use EXCLUSIVELY Framer Motion's useMotionValue and useTransform outside the React render cycle to prevent performance collapse on mobile.MOTION_INTENSITY > 5, embed continuous, infinite micro-animations (Pulse, Typewriter, Float, Shimmer, Carousel) in standard components (avatars, status dots, backgrounds). Apply premium Spring Physics (type: "spring", stiffness: 100, damping: 20) to all interactive elements—no linear easing.layout and layoutId props for smooth re-ordering, resizing, and shared element transitions across state changes.staggerChildren (Framer) or CSS cascade (animation-delay: calc(var(--index) * 100ms)) to create sequential waterfall reveals. CRITICAL: For staggerChildren, the Parent (variants) and Children MUST reside in the identical Client Component tree. If data is fetched asynchronously, pass the data as props into a centralized Parent Motion wrapper.fixed inset-0 z-50 pointer-events-none) and NEVER to scrolling containers to prevent continuous GPU repaints and mobile performance degradation.top, left, width, or height. Animate exclusively via transform and opacity.z-50 or z-10 unprompted. Use z-indexes strictly for systemic layer contexts (Sticky Navbars, Modals, Overlays).justify-center, strict 12-column symmetrical grids, equal paddings.margin-top: -2rem overlapping, varied image aspect ratios (e.g., 4:3 next to 16:9), left-aligned headers over center-aligned data.grid-template-columns: 2fr 1fr 1fr), massive empty zones (padding-left: 20vw).md: MUST aggressively fall back to a strict, single-column layout (w-full, px-4, py-8) on viewports < 768px to prevent horizontal scrolling and layout breakage.:hover and :active states only.transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1). Use animation-delay cascades for load-ins. Focus strictly on transform and opacity. Use will-change: transform sparingly.window.addEventListener('scroll').font-mono) for all numbers.To guarantee a premium, non-generic output, you MUST strictly avoid these common AI design signatures unless explicitly requested:
box-shadow glows or auto-glows. Use inner borders or subtle tinted shadows.#000000. Use Off-Black, Zinc-950, or Charcoal.Geist, Outfit, Cabinet Grotesk, or Satoshi.99.99%, 50%, or basic phone numbers (1234567). Use organic, messy data (47.2%, +1 (312) 847-1928).https://picsum.photos/seed/{random_string}/800/600 or SVG UI Avatars.shadcn/ui, but NEVER in its generic default state. You MUST customize the radii, colors, and shadows to match the high-end project aesthetic.Do not default to generic UI. Pull from this library of advanced concepts to ensure the output is visually striking and memorable. When appropriate, leverage GSAP (ScrollTrigger/Parallax) for complex scrolltelling or ThreeJS/WebGL for 3D/Canvas animations, rather than basic CSS motion. CRITICAL: Never mix GSAP/ThreeJS with Framer Motion in the same component tree. Default to Framer Motion for UI/Bento interactions. Use GSAP/ThreeJS EXCLUSIVELY for isolated full-page scrolltelling or canvas backgrounds, wrapped in strict useEffect cleanup blocks.
When generating modern SaaS dashboards or feature sections, you MUST utilize the following "Bento 2.0" architecture and motion philosophy. This goes beyond static cards and enforces a "Vercel-core meets Dribbble-clean" aesthetic heavily reliant on perpetual physics.
#f9fafb. Cards are pure white (#ffffff) with a 1px border of border-slate-200/50.rounded-[2.5rem] for all major containers. Apply a "diffusion shadow" (a very light, wide-spreading shadow, e.g., shadow-[0_20px_40px_-15px_rgba(0,0,0,0.05)]) to create depth without clutter.Geist, Satoshi, or Cabinet Grotesk font stack. Use subtle tracking (tracking-tight) for headers.p-8 or p-10 padding inside cards.All cards must contain "Perpetual Micro-Interactions." Use the following Framer Motion principles:
type: "spring", stiffness: 100, damping: 20 for a premium, weighty feel.layout and layoutId props to ensure smooth re-ordering, resizing, and shared element state transitions.<AnimatePresence> and optimize for 60fps. PERFORMANCE CRITICAL: Any perpetual motion or infinite loop MUST be memoized (React.memo) and completely isolated in its own microscopic Client Component. Never trigger re-renders in the parent layout.Implement these specific micro-animations when constructing Bento grids (e.g., Row 1: 3 cols | Row 2: 2 cols split 70/30):
layoutId, simulating an AI prioritizing tasks in real-time.x: ["0%", "-100%"]) with a speed that feels effortless.Evaluate your code against this matrix before outputting. This is the last filter you apply to your logic.
w-full, px-4, max-w-7xl mx-auto) guaranteed for high-variance designs?min-h-[100dvh] instead of the bugged h-screen?useEffect animations contain strict cleanup functions?development
Anti-slop frontend skill for landing pages, portfolios, and redesigns. The agent reads the brief, infers the right design direction, and ships interfaces that do not look templated. Real design systems when applicable, audit-first on redesigns, strict pre-flight check.
development
The original v1 taste-skill, preserved for projects depending on its exact behavior. The current default is `design-taste-frontend` (v2 experimental), which is a substantial rewrite. Use this v1 install name only if you need exact backward compatibility.
development
Elite frontend image-direction skill for generating premium, conversion-aware website design references. CRITICAL OUTPUT RULE — generate ONE separate horizontal image FOR EVERY section. A landing page with 8 sections produces 8 images. Never compress multiple sections into one image. Enforces composition variety (not always left-text / right-image), background-image freedom, varied CTAs, varied hero scales (giant / mid / mini minimalist), narrative concept spine, second-read moments, and a single consistent palette across all images. Optimized for landing pages, marketing sites, and product comps that developers or coding models can accurately recreate.
development
Elite mobile app image-generation skill for creating premium, app-native screen concepts and flows. Designed for iOS, Android, and cross-platform mobile products. Prioritizes clean hierarchy, comfortably readable text, strong multi-screen consistency, controlled color palettes, non-generic creative direction, textured surfaces, image-led composition, tasteful custom iconography, and clean phone mockup framing. By default, screens should be shown inside a subtle premium iPhone or similar phone mockup with a visible frame, while the main focus stays on the app content itself. This skill generates images only. It does not write code.