npx claudepluginhub x-cmd/skill --plugin anthropics-example-skillsThis skill uses the workspace's default tool permissions.
Build complete, production-ready frontend pages by orchestrating 5 specialized capabilities: design engineering, motion systems, AI-generated assets, persuasive copy, and generative art.
canvas-fonts/ArsenalSC-OFL.txtcanvas-fonts/ArsenalSC-Regular.ttfcanvas-fonts/BigShoulders-Bold.ttfcanvas-fonts/BigShoulders-OFL.txtcanvas-fonts/BigShoulders-Regular.ttfcanvas-fonts/Boldonse-OFL.txtcanvas-fonts/Boldonse-Regular.ttfcanvas-fonts/BricolageGrotesque-Bold.ttfcanvas-fonts/BricolageGrotesque-OFL.txtcanvas-fonts/BricolageGrotesque-Regular.ttfcanvas-fonts/CrimsonPro-Bold.ttfcanvas-fonts/CrimsonPro-Italic.ttfcanvas-fonts/CrimsonPro-OFL.txtcanvas-fonts/CrimsonPro-Regular.ttfcanvas-fonts/DMMono-OFL.txtcanvas-fonts/DMMono-Regular.ttfcanvas-fonts/EricaOne-OFL.txtcanvas-fonts/EricaOne-Regular.ttfcanvas-fonts/GeistMono-Bold.ttfcanvas-fonts/GeistMono-OFL.txtCreates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
Build complete, production-ready frontend pages by orchestrating 5 specialized capabilities: design engineering, motion systems, AI-generated assets, persuasive copy, and generative art.
/frontend-dev <request>
The user provides their request as natural language (e.g. "build a landing page for a music streaming app").
frontend-dev/
โโโ SKILL.md # Core skill (this file)
โโโ scripts/ # Asset generation scripts
โ โโโ minimax_tts.py # Text-to-speech
โ โโโ minimax_music.py # Music generation
โ โโโ minimax_video.py # Video generation (async)
โ โโโ minimax_image.py # Image generation
โโโ references/ # Detailed guides (read as needed)
โ โโโ minimax-cli-reference.md # CLI flags quick reference
โ โโโ asset-prompt-guide.md # Asset prompt engineering rules
โ โโโ minimax-tts-guide.md # TTS usage & voices
โ โโโ minimax-music-guide.md # Music prompts & lyrics format
โ โโโ minimax-video-guide.md # Camera commands & models
โ โโโ minimax-image-guide.md # Ratios & batch generation
โ โโโ minimax-voice-catalog.md # All voice IDs
โ โโโ motion-recipes.md # Animation code snippets
โ โโโ env-setup.md # Environment setup
โ โโโ troubleshooting.md # Common issues
โโโ templates/ # Visual art templates
โ โโโ viewer.html # p5.js interactive art base
โ โโโ generator_template.js # p5.js code reference
โโโ canvas-fonts/ # Static art fonts (TTF + licenses)
All frameworks use the same asset organization:
assets/
โโโ images/
โ โโโ hero-landing-1710xxx.webp
โ โโโ icon-feature-01.webp
โ โโโ bg-pattern.svg
โโโ videos/
โ โโโ hero-bg-1710xxx.mp4
โ โโโ demo-preview.mp4
โโโ audio/
โโโ bgm-ambient-1710xxx.mp3
โโโ tts-intro-1710xxx.mp3
Asset naming: {type}-{descriptor}-{timestamp}.{ext}
| Framework | Asset Location | Component Location |
|---|---|---|
| Pure HTML | ./assets/ | N/A (inline or ./js/) |
| React/Next.js | public/assets/ | src/components/ |
| Vue/Nuxt | public/assets/ | src/components/ |
| Svelte/SvelteKit | static/assets/ | src/lib/components/ |
| Astro | public/assets/ | src/components/ |
project/
โโโ index.html
โโโ assets/
โ โโโ images/
โ โโโ videos/
โ โโโ audio/
โโโ css/
โ โโโ styles.css
โโโ js/
โโโ main.js # Animations (GSAP/vanilla)
project/
โโโ public/assets/ # Static assets
โโโ src/
โ โโโ components/
โ โ โโโ ui/ # Button, Card, Input
โ โ โโโ sections/ # Hero, Features, CTA
โ โ โโโ motion/ # RevealSection, StaggerGrid
โ โโโ lib/
โ โโโ styles/
โ โโโ app/ # Pages
โโโ package.json
project/
โโโ public/assets/
โโโ src/ # or root for Nuxt
โ โโโ components/
โ โ โโโ ui/
โ โ โโโ sections/
โ โ โโโ motion/
โ โโโ composables/ # Shared logic
โ โโโ pages/
โ โโโ assets/ # Processed assets (optional)
โโโ package.json
project/
โโโ public/assets/
โโโ src/
โ โโโ components/ # .astro, .tsx, .vue, .svelte
โ โโโ layouts/
โ โโโ pages/
โ โโโ styles/
โโโ package.json
Component naming: PascalCase (HeroSection.tsx, HeroSection.vue, HeroSection.astro)
All rules in this skill are mandatory. Violating any rule is a blocking error โ fix before proceeding or delivering.
Generate all image/video/audio assets using scripts/. NEVER use placeholder URLs (unsplash, picsum, placeholder.com, via.placeholder, placehold.co, etc.) or external URLs.
Follow copywriting frameworks (AIDA, PAS, FAB) to craft all text content. Do NOT use "Lorem ipsum" โ write real copy.
Scaffold the project and build each section following Design and Motion rules. Integrate generated assets and copy. All <img>, <video>, <source>, and CSS background-image MUST reference local assets from Phase 3.
Run final checklist (see Quality Gates section).
| Dial | Default | Range |
|---|---|---|
| DESIGN_VARIANCE | 8 | 1=Symmetry, 10=Asymmetric |
| MOTION_INTENSITY | 6 | 1=Static, 10=Cinematic |
| VISUAL_DENSITY | 4 | 1=Airy, 10=Packed |
Adapt dynamically based on user requests.
package.json before importing any library. Output install command if missing."use client" leaf components.package.json โ NEVER mix v3/v4 syntax.min-h-[100dvh] not h-screen. Use CSS Grid not flex percentage math.max-w-[1400px] mx-auto or max-w-7xl.| Rule | Directive |
|---|---|
| Typography | Headlines: text-4xl md:text-6xl tracking-tighter. Body: text-base leading-relaxed max-w-[65ch]. NEVER use Inter โ use Geist/Outfit/Satoshi. NEVER use Serif on dashboards. |
| Color | Max 1 accent, saturation < 80%. NEVER use AI purple/blue. Stick to one palette. |
| Layout | NEVER use centered heroes when VARIANCE > 4. Force split-screen or asymmetric layouts. |
| Cards | NEVER use generic cards when DENSITY > 7. Use border-t, divide-y, or spacing. |
| States | ALWAYS implement: Loading (skeleton), Empty, Error, Tactile feedback (scale-[0.98]). |
| Forms | Label above input. Error below. gap-2 for input blocks. |
backdrop-blur + border-white/10 + shadow-[inset_0_1px_0_rgba(255,255,255,0.1)]useMotionValue/useTransform โ never useState for continuous animationslayout and layoutId propsstaggerChildren or CSS animation-delay: calc(var(--index) * 100ms)| Category | Banned |
|---|---|
| Visual | Neon glows, pure black (#000), oversaturated accents, gradient text on headers, custom cursors |
| Typography | Inter font, oversized H1s, Serif on dashboards |
| Layout | 3-column equal card rows, floating elements with awkward gaps |
| Components | Default shadcn/ui without customization |
| Category | Patterns |
|---|---|
| Navigation | Dock magnification, Magnetic button, Gooey menu, Dynamic island, Radial menu, Speed dial, Mega menu |
| Layout | Bento grid, Masonry, Chroma grid, Split-screen scroll, Curtain reveal |
| Cards | Parallax tilt, Spotlight border, Glassmorphism, Holographic foil, Swipe stack, Morphing modal |
| Scroll | Sticky stack, Horizontal hijack, Locomotive sequence, Zoom parallax, Progress path, Liquid swipe |
| Gallery | Dome gallery, Coverflow, Drag-to-pan, Accordion slider, Hover trail, Glitch effect |
| Text | Kinetic marquee, Text mask reveal, Scramble effect, Circular path, Gradient stroke, Kinetic grid |
| Micro | Particle explosion, Pull-to-refresh, Skeleton shimmer, Directional hover, Ripple click, SVG draw, Mesh gradient, Lens blur |
#f9fafb, cards pure white with border-slate-200/50rounded-[2.5rem], diffusion shadowtracking-tight headersstiffness: 100, damping: 20), infinite loops, React.memo isolation5-Card Archetypes:
layoutIdWhen brand styling is active:
#141413, Light: #faf9f5, Mid: #b0aea5, Subtle: #e8e6dc#d97757, Blue #6a9bcc, Green #788c5d| Need | Tool |
|---|---|
| UI enter/exit/layout | Framer Motion โ AnimatePresence, layoutId, springs |
| Scroll storytelling (pin, scrub) | GSAP + ScrollTrigger โ frame-accurate control |
| Looping icons | Lottie โ lazy-load (~50KB) |
| 3D/WebGL | Three.js / R3F โ isolated <Canvas>, own "use client" boundary |
| Hover/focus states | CSS only โ zero JS cost |
| Native scroll-driven | CSS โ animation-timeline: scroll() |
Conflict Rules [MANDATORY]:
| Level | Techniques |
|---|---|
| 1-2 Subtle | CSS transitions only, 150-300ms |
| 3-4 Smooth | CSS keyframes + Framer animate, stagger โค3 items |
| 5-6 Fluid | whileInView, magnetic hover, parallax tilt |
| 7-8 Cinematic | GSAP ScrollTrigger, pinned sections, horizontal hijack |
| 9-10 Immersive | Full scroll sequences, Three.js particles, WebGL shaders |
See references/motion-recipes.md for full code. Summary:
| Recipe | Tool | Use For |
|---|---|---|
| Scroll Reveal | Framer | Fade+slide on viewport entry |
| Stagger Grid | Framer | Sequential list animations |
| Pinned Timeline | GSAP | Horizontal scroll with pinning |
| Tilt Card | Framer | Mouse-tracking 3D perspective |
| Magnetic Button | Framer | Cursor-attracted buttons |
| Text Scramble | Vanilla | Matrix-style decode effect |
| SVG Path Draw | CSS | Scroll-linked path animation |
| Horizontal Scroll | GSAP | Vertical-to-horizontal hijack |
| Particle Background | R3F | Decorative WebGL particles |
| Layout Morph | Framer | Card-to-modal expansion |
GPU-only properties (ONLY animate these): transform, opacity, filter, clip-path
NEVER animate: width, height, top, left, margin, padding, font-size โ if you need these effects, use transform: scale() or clip-path instead.
Isolation:
React.memo leaf componentswill-change: transform ONLY during animationcontain: layout style paint on heavy containersMobile:
prefers-reduced-motionpointer: coarseCleanup: Every useEffect with GSAP/observers MUST return () => ctx.revert()
| Feel | Framer Config |
|---|---|
| Snappy | stiffness: 300, damping: 30 |
| Smooth | stiffness: 150, damping: 20 |
| Bouncy | stiffness: 100, damping: 10 |
| Heavy | stiffness: 60, damping: 20 |
| CSS Easing | Value |
|---|---|
| Smooth decel | cubic-bezier(0.16, 1, 0.3, 1) |
| Smooth accel | cubic-bezier(0.7, 0, 0.84, 0) |
| Elastic | cubic-bezier(0.34, 1.56, 0.64, 1) |
prefers-reduced-motion checkoutline not box-shadow)aria-live="polite" for dynamically revealed contentnpm install framer-motion # UI (keep at top level)
npm install gsap # Scroll (lazy-load)
npm install lottie-react # Icons (lazy-load)
npm install three @react-three/fiber @react-three/drei # 3D (lazy-load)
| Type | Script | Pattern |
|---|---|---|
| TTS | scripts/minimax_tts.py | Sync |
| Music | scripts/minimax_music.py | Sync |
| Video | scripts/minimax_video.py | Async (create โ poll โ download) |
| Image | scripts/minimax_image.py | Sync |
Env: MINIMAX_API_KEY (required).
<project>/public/assets/{images,videos,audio}/ as {type}-{descriptor}-{timestamp}.{ext} โ MUST save locally| Shortcut | Spec |
|---|---|
hero | 16:9, cinematic, text-safe |
thumb | 1:1, centered subject |
icon | 1:1, flat, clean background |
avatar | 1:1, portrait, circular crop ready |
banner | 21:9, OG/social |
bg-video | 768P, 6s, [Static shot] |
video-hd | 1080P, 6s |
bgm | 30s, no vocals, loopable |
tts | MiniMax HD, MP3 |
references/minimax-cli-reference.md โ CLI flagsreferences/asset-prompt-guide.md โ Prompt rulesreferences/minimax-voice-catalog.md โ Voice IDsreferences/minimax-tts-guide.md โ TTS usagereferences/minimax-music-guide.md โ Music generation (prompts, lyrics, structure tags)references/minimax-video-guide.md โ Camera commandsreferences/minimax-image-guide.md โ Ratios, batchAIDA (landing pages, emails):
ATTENTION: Bold headline (promise or pain)
INTEREST: Elaborate problem ("yes, that's me")
DESIRE: Show transformation
ACTION: Clear CTA
PAS (pain-driven products):
PROBLEM: State clearly
AGITATE: Make urgent
SOLUTION: Your product
FAB (product differentiation):
FEATURE: What it does
ADVANTAGE: Why it matters
BENEFIT: What customer gains
| Formula | Example |
|---|---|
| Promise | "Double open rates in 30 days" |
| Question | "Still wasting 10 hours/week?" |
| How-To | "How to automate your pipeline" |
| Number | "7 mistakes killing conversions" |
| Negative | "Stop losing leads" |
| Curiosity | "The one change that tripled bookings" |
| Transformation | "From 50 to 500 leads" |
Be specific. Lead with outcome, not method.
Bad: Submit, Click here, Learn more
Good: "Start my free trial", "Get the template now", "Book my strategy call"
Formula: [Action Verb] + [What They Get] + [Urgency/Ease]
Place: above fold, after value, multiple on long pages.
| Trigger | Example |
|---|---|
| FOMO | "Only 3 spots left" |
| Fear of loss | "Every day without this, you're losing $X" |
| Status | "Join 10,000+ top agencies" |
| Ease | "Set it up once. Forget forever." |
| Frustration | "Tired of tools that deliver nothing?" |
| Hope | "Yes, you CAN hit $10K MRR" |
| Objection | Response |
|---|---|
| Too expensive | Show ROI: "Pays for itself in 2 weeks" |
| Won't work for me | Social proof from similar customer |
| No time | "Setup takes 10 minutes" |
| What if it fails | "30-day money-back guarantee" |
| Need to think | Urgency/scarcity |
Place in FAQ, testimonials, near CTA.
Testimonials (with name/title), Case studies, Data/metrics, Social proof, Certifications
Philosophy-first workflow. Two output modes.
| Mode | Output | When |
|---|---|---|
| Static | PDF/PNG | Posters, print, design assets |
| Interactive | HTML (p5.js) | Generative art, explorable variations |
Name the movement (1-2 words). Articulate philosophy (4-6 paragraphs) covering:
Identify subtle, niche reference โ sophisticated, not literal. Jazz musician quoting another song.
Static Mode:
canvas-fonts/.pdf or .png + philosophy .mdInteractive Mode:
templates/viewer.html firstrandomSeed(seed); noiseSeed(seed);Refine, don't add. Make it crisp. Polish into masterpiece.
Design:
w-full, px-4) for high-variance designsmin-h-[100dvh] not h-screenMotion:
useEffect have cleanup returnsprefers-reduced-motion respectedReact.memo leaf componentsGeneral:
package.jsonunsplash, picsum, placeholder, placehold, via.placeholder, lorem.space, dummyimage. If ANY found, STOP and replace with generated assets before delivering.React and Next.js are trademarks of Meta Platforms, Inc. and Vercel, Inc., respectively. Vue.js is a trademark of Evan You. Tailwind CSS is a trademark of Tailwind Labs Inc. Svelte and SvelteKit are trademarks of their respective owners. GSAP/GreenSock is a trademark of GreenSock Inc. Three.js, Framer Motion, Lottie, Astro, and all other product names are trademarks of their respective owners.