eliasoulkadi/shokunin/taste
Claude Code and agent skill by eliasoulkadi/shokunin
- community
Checking that the SKILL.md file is still in the repository.
Senior UI/UX Engineer. Architect digital interfaces overriding default LLM biases. Enforces metric-based rules, strict component architecture, hardware-accelerated CSS, and balanced design engineering. By Leon Lin & blueemi. Multi-runtime improved by shokunin.
Install
npx vskill@latest install eliasoulkadi/shokunin/tasteSKILL.md
High-Agency Frontend Skill
Authority References (shokunin improvement)
The rules in this skill are based on patterns observed across:
- Linear, Vercel, Stripe, Notion — product UI
- Apple Human Interface Guidelines
- Material Design 3
- Emil Kowalski's design engineering (Sonner, Vaul, animations.dev)
- Paul Lewis (Google Chrome) — compositor-only properties
- Ahmad Shadeed — Container Queries and CSS architecture
- WCAG 2.2 — Accessibility guidelines
- CSS Working Group — modern CSS features
1. ACTIVE BASELINE CONFIGURATION
- DESIGN_VARIANCE: 8 (1=Perfect Symmetry, 10=Artsy Chaos)
- MOTION_INTENSITY: 6 (1=Static, 10=Cinematic/Magic Physics)
- VISUAL_DENSITY: 4 (1=Art Gallery/Airy, 10=Pilot Cockpit/Packed Data)
These are the standard baselines. ALWAYS listen to the user: adapt these values dynamically based on what they explicitly request. Use these values as global variables driving Sections 3 through 7.
2. DEFAULT ARCHITECTURE & CONVENTIONS
Framework & Interactivity
- React or Next.js. Default to Server Components (RSC).
- INTERACTIVITY ISOLATION: Interactive UI components with motion MUST be extracted as isolated leaf components with
'use client'at top. - DEPENDENCY VERIFICATION [MANDATORY]: Before importing ANY 3rd party library (framer-motion, lucide-react, zustand), check
package.json. If missing, outputnpm install <package>before code. Never assume.
Styling
- Use Tailwind CSS (v3/v4) for 90% of styling.
- CSS vanilla alternative (shokunin improvement): For projects without Tailwind, use CSS custom properties + modern CSS (Container Queries, clamp(), :has(), OKLCH).
- TAILWIND VERSION LOCK: Check
package.json. No v4 syntax in v3 projects. - ANTI-EMOJI POLICY: NEVER use emojis in code, markup, text, or alt text. Replace with Phosphor, Lucide, or clean SVG primitives.
Responsiveness
- Viewport Stability [CRITICAL]: NEVER
h-screen. Alwaysmin-h-[100dvh]for iOS Safari. - Grid over Flex-Math: NEVER
w-[calc(33%-1rem)]. Always CSS Gridgrid-cols-3 gap-6. - Standardize breakpoints: sm(640), md(768), lg(1024), xl(1280).
Icons
@phosphor-icons/reactor@radix-ui/react-icons. StandardizestrokeWidth(1.5 or 2.0).
3. DESIGN ENGINEERING DIRECTIVES (Bias Correction)
Rule 1: Deterministic Typography
- Display/Headlines:
text-4xl md:text-6xl tracking-tighter leading-none. UseGeist,Outfit,Cabinet Grotesk, orSatoshi. NEVER Inter for premium. - TECHNICAL UI: Serif fonts strictly BANNED for Dashboards. Use high-end Sans-Serif:
Geist+Geist Mono. - Body:
text-base text-gray-600 leading-relaxed max-w-[65ch].
Rule 2: Color Calibration
- Max 1 Accent Color. Saturation < 80%.
- THE AI PURPLE BAN: No purple button glows, no neon gradients. Use neutral bases (Zinc/Slate) with singular accents (Emerald, Electric Blue, Deep Rose).
- OKLCH preferred (shokunin improvement):
oklch(50% 0.2 170)over hex#10b981. - One palette for entire project. No warm/cool gray mix.
Rule 3: Layout Diversification
- ANTI-CENTER BIAS: When
DESIGN_VARIANCE > 4, centered Hero sections are BANNED. Use Split Screen (50/50), Left Aligned content + Right Aligned asset, or Asymmetric White-space.
Rule 4: Materiality and Shadows
- DASHBOARD HARDENING: For
VISUAL_DENSITY > 7, cards are BANNED. Useborder-t,divide-y, or negative space. Data breathes without boxes. - Cards only when elevation communicates hierarchy. Tint shadow to background hue.
Rule 5: Interactive UI States
- Mandatory: Loading (skeletal, not spinners) → Empty (beautiful, with guidance) → Error (inline, specific) → Success.
- Tactile Feedback:
:active→scale-[0.98].transition: transform 160ms ease-out.
Rule 6: Data & Form Patterns
- Labels ABOVE inputs. Error text BELOW input. Standard
gap-2for input blocks.
4. CREATIVE PROACTIVITY (Anti-Slop Implementation)
- "Liquid Glass": When glassmorphism is needed, add 1px inner border + inner shadow. Never default decoration.
- Magnetic Micro-physics (MOTION_INTENSITY > 5): Use Framer Motion
useMotionValue+useTransformoutside React render cycle. NEVERuseStatefor continuous animations. - Perpetual Micro-Interactions: Pulse, Typewriter, Float, Shimmer. Spring physics (
type: "spring", stiffness: 100, damping: 20). No linear easing. - Staggered Orchestration:
animation-delay: calc(var(--index) * 100ms). 30-80ms between items. Parent + Children in same Client Component tree. - WAAPI fallback for heavy load (shokunin improvement): When Framer Motion drops frames under load, use WAAPI:
element.animate(...). Runs off main thread.
5. PERFORMANCE GUARDRAILS
- GPU-Safe: Only animate
transformandopacity. Nevertop,left,width,height. - Grain/Noise: Apply exclusively to
position: fixed; pointer-events: nonepseudo-elements. Never on scrolling containers. - Blur: Only on fixed/sticky elements. Never on scrolling content.
- Z-Index Discipline: Only for systemic layers (sticky nav, modals, overlays).
- `prefers-reduced-motion` (shokunin improvement): Mandatory on every animation:
6. TECHNICAL REFERENCE (Dial Definitions)
DESIGN_VARIANCE (1-10)
- 1-3 (Predictable):
justify-center, 12-column grids, equal paddings. - 4-7 (Offset): Overlapping, varied aspect ratios, left-aligned over center.
- 8-10 (Asymmetric): Masonry, fractional grids, massive empty zones.
- MOBILE OVERRIDE: Levels 4-10: collapse to single-column (
w-full,px-4,py-8) below768px.
MOTION_INTENSITY (1-10)
- 1-3 (Static):
:hoverand:activeonly. - 4-7 (Fluid):
transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1). Stagger reveals. - 8-10 (Choreography): Complex scroll-triggers. Framer Motion. NEVER
window.addEventListener('scroll').
VISUAL_DENSITY (1-10)
- 1-3 (Gallery): Lots of white space. Expensive, clean.
- 4-7 (Daily App): Normal spacing.
- 8-10 (Cockpit): Tiny paddings. No cards. 1px lines. Monospace for all numbers.
7. AI TELLS (Forbidden Patterns)
| Category | Banned | Use Instead | |
|---|---|---|---|
| Visual | Neon glows, #000000, oversaturated accents, gradient text, custom cursors | Inner borders, tinted shadows, zinc/slate neutrals | |
| Typography | Inter font, oversized H1s, serif on dashboards | Geist, Outfit, Satoshi. Hierarchy via weight + color, not just scale | |
| Layout | Centered heroes, 3-column equal cards | Split screen, zig-zag, asymmetric | |
| Content | "John Doe", "99.99%", "Acme", "Elevate", "Seamless" | Creative names, messy numbers, concrete verbs | |
| Resources | Unsplash (broken links), default shadcn/ui | picsum.photos, customized shadcn |
8. THE CREATIVE ARSENAL (High-End Inspiration)
Reference library of advanced UI concepts. Never default to generic. Use Framer Motion for Bento/UI interactions. Use GSAP/ThreeJS exclusively for isolated full-page scrolltelling or canvas backgrounds, wrapped in strict useEffect cleanup.
Hero Paradigms: Split Screen, Slide-Away Text, Curtain Reveal, Zoom Parallax
Navigation: Mac OS Dock, Magnetic Button, Dynamic Island, Radial Menu
Layouts: Bento Grid, Masonry, Chroma Grid, Split Scroll
Cards: Parallax Tilt, Spotlight Border, Holographic Foil, Tinder Swipe
Scroll: Sticky Stack, Horizontal Hijack, Scroll Progress Path, Liquid Swipe
Text: Kinetic Marquee, Text Mask Reveal, Scramble Effect, Circular Path
Micro: Particle Explosion, Ripple Click, Skeleton Shimmer, Animated SVG Line Drawing
Error Handling
| Error | Cause | Fix | |
|---|---|---|---|
| Layout shift on iOS Safari | h-screen used | Replace with min-h-[100dvh] | |
| Framer Motion frames drop under load | Using x/y shorthand | Use transform: "translateX()" string or WAAPI | |
| Grain causes scroll jank | Grain on scrolling container | Move to position: fixed; pointer-events: none | |
| Touch hover state fires incorrectly | No @media (hover: hover) guard | Gate hover behind pointer media query | |
| Magnetic button causes layout shift | Using useState for animation | Use useMotionValue + useTransform | |
| Perpetual animation causes re-renders | Not in isolated Client Component | React.memo + isolated leaf component | |
| Bento cards break on mobile | No mobile collapse rules | Force single-column below 768px |
10. PRE-FLIGHT CHECKLIST
- [ ] Mobile:
min-h-[100dvh](noth-screen) - [ ] Mobile collapse below 768px for asymmetric layouts
- [ ]
prefers-reduced-motionon every animation - [ ] Only
transform+opacityanimated - [ ] Hover gated behind
@media (hover: hover) - [ ] No emojis in code or content
- [ ] No Inter as display font
- [ ] No neon glows or AI purple
- [ ] No
#000000or#ffffff— tinted neutrals - [ ] Grid used instead of complex flexbox math
- [ ] Loading, empty, error states all rendered
- [ ] Buttons:
scale-[0.98]on:active - [ ] Grain/noise:
position: fixed; pointer-events: noneonly - [ ] Perpetual animations in isolated Client Components
- [ ] Dependency verification: all imports exist in package.json
Workflow
- Read user intent — extract product type, style keywords, motion preference, visual density preference. Map to the three dial values (DESIGN_VARIANCE, MOTION_INTENSITY, VISUAL_DENSITY).
- Lock dependencies — check package.json before importing. Tailwind version (v3 vs v4 syntax). Icon library availability. Framer Motion presence.
- Establish the global config — set typography (display sans, body sans, mono). Set 1 accent color (saturation < 80%). Set neutral palette (Zinc or Slate, never mixed).
- Apply bias corrections — anti-center for DESIGN_VARIANCE > 4. No cards for VISUAL_DENSITY > 7. No serif for dashboards. No purple glows. No Inter as display.
- Build component tree — extract interactive/motion components into isolated Client Components with
'use client'. Static content stays server-rendered. - Layer creative effects — apply grain/noise to fixed pseudo-elements only. Add scroll-entry reveals (staggered at 100ms intervals). Spring physics for magnetic micro-interactions.
- Guard performance — only animate
transform+opacity. Gate hover behind@media (hover: hover). Mandatoryprefers-reduced-motionon every animation. - Run pre-flight checklist — verify mobile
min-h-[100dvh], no emojis, no banned patterns, all states rendered (loading, empty, error, success).
Anti-Patterns
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryChecking.pack/skills/taste/SKILL.md
Popularity
- Repository stars
- 91
- Repository forks
- 10
- 7-day trend score
- 23
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/eliasoulkadi/shokunin/taste)