Skip to content
Back to skills

Compound Components Prefer Over Prop Soup

ASecurity

'Sub-skill of elite-frontend-ux: Compound Components (prefer over prop

  • 17 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 9, 2026
developmentgofrontend

Security analysis

A100/100

Scanned September 9, 2026

npx -y skills add vamseeachanta/workspace-hub --skill compound-components-prefer-over-prop-soup --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Compound Components Prefer Over Prop Soup?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Compound Components Prefer Over Prop Soup
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vamseeachanta-compound-components-prefer-over-prop-soup/badge)](https://www.skillsdirectory.com/skills/vamseeachanta-compound-components-prefer-over-prop-soup)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: elite-frontend-ux-compound-components-prefer-over-prop-soup
description: 'Sub-skill of elite-frontend-ux: Compound Components (prefer over prop
  soup) (+3).'
version: 1.0.0
category: development
type: reference
scripts_exempt: true
---

# Compound Components (prefer over prop soup) (+3)

## Compound Components (prefer over prop soup)

```tsx
<Tabs defaultValue="tab1">
  <TabsList>
    <TabsTrigger value="tab1">Tab 1</TabsTrigger>
    <TabsTrigger value="tab2">Tab 2</TabsTrigger>
  </TabsList>
  <TabsContent value="tab1">Content 1</TabsContent>
  <TabsContent value="tab2">Content 2</TabsContent>
</Tabs>
```


## Reduced Motion

```tsx
import { useReducedMotion } from "framer-motion";

function AnimatedCard() {
  const reduce = useReducedMotion();
  return (
    <motion.div
      initial={{ opacity: 0, y: reduce ? 0 : 20 }}
      animate={{ opacity: 1, y: 0 }}
      transition={{ duration: reduce ? 0 : 0.3 }}
    />
  );
}
```


## Loading States (skeleton > spinner)

```tsx
<div className="animate-pulse space-y-2">
  <div className="h-4 bg-muted rounded w-3/4" />
  <div className="h-4 bg-muted rounded w-1/2" />
</div>
```


## Animation Rules

- Button feedback: 100–150ms (must feel instantaneous)
- ONLY animate `transform` and `opacity` (GPU accelerated)
- NEVER animate `width`, `height`, `margin`, `padding` (triggers reflow)

---

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.