create-component · incluud — Claude Code skill: what it does, how to install
Scaffolds Astro components, pages, and layouts with accessible markup and minimal JavaScript. Turns designs or static HTML into structured Astro code.
npx skills add incluud/astro-agent-skills --skill create-component -a claude-codeWhat create-component does
The skill places files into their proper project directories: layouts in src/layouts/, routes in src/pages/, and shared elements in src/components/. Every template starts with a typed interface Props, scoped CSS, and semantic elements instead of generic containers. Framework islands such as React or Vue enter the picture only when client-side state is required.
Hydration directives like client:visible keep client bundles minimal by isolating interactive parts to leaf nodes. Before finalizing markup, the skill checks accessibility details: visible focus outlines, sensible heading levels, image alt attributes, and keyboard navigation. If astro-best-practices is available, it follows those conventions alongside this workflow.
What it helps with
- Scaffold accessible Astro components from design mockups
- Convert static HTML snippets into
.astrotemplates with typed props - Set up shared layouts in
src/layouts/or routes insrc/pages/ - Isolate interactive UI elements into lightweight framework islands
Example prompts for the agent
- Create an Astro card component with an interface Props and a default slot
- Scaffold a blog index route in src/pages/ using our existing layout
- Convert this HTML snippet into an accessible Astro component with scoped styles
How to install create-component
1Skills CLI (Vercel)
npx skills add incluud/astro-agent-skills --skill create-component -a claude-code2Manually: put the files in place
~/.claude/skills/create-component/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/create-component/
1Skills CLI (Vercel)
npx skills add incluud/astro-agent-skills --skill create-component -a codex2Manually: put the files in place
.agents/skills/create-component/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add incluud/astro-agent-skills --skill create-component -a cursor2Manually: put the files in place
.cursor/skills/create-component/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install incluud/astro-agent-skills create-component2Manually: put the files in place
.github/skills/create-component/SKILL.md1Skills CLI (Vercel)
npx skills add incluud/astro-agent-skills --skill create-component -a gemini-cli2Platform CLI
gemini skills install https://github.com/incluud/astro-agent-skills --path skills/create-componentManually: put the files in place
.devin/skills/create-component/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add incluud/astro-agent-skills --skill create-component -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about create-component
How to install create-component in Claude Code?
Run npx skills add incluud/astro-agent-skills --skill create-component -a claude-code in your terminal. The skill file is placed in ~/.claude/skills/create-component/SKILL.md.
When does create-component introduce framework components?
It uses pure .astro files by default and brings in React or Vue only when client state is required. Even then, it isolates interactivity to small leaf components with directives like client:visible.
What accessibility checks does the skill perform?
It verifies semantic HTML tags, keyboard navigation, logical heading hierarchy, image alt text, and visible focus states before finishing the scaffold.
Source text
SKILL.md · MIT
---
name: create-component
description: Create Astro components, pages, and layouts with accessible markup and minimal client-side JavaScript.
---
# Create Astro Component
Use this skill when scaffolding a new Astro component, page, layout, or route from a feature request, design, or static markup.
If `astro-best-practices` is available, apply it alongside this skill for project-wide conventions and review criteria.
## Workflow
### 1. Pick the right file type
Choose the simplest primitive that fits the requirement:
- component: reusable UI in `src/components/`
- page: route entry in `src/pages/`
- layout: shared shell in `src/layouts/`
- framework island: React, Vue, or similar only when interactivity is required
Start with `.astro` unless there is a real need for client-side framework state.
### 2. Clarify the contract
Before scaffolding, determine:
- what props the file accepts
- whether it renders children or named slots
- whether it fetches data
- whether any interactivity is required
- which styling approach the project already uses
Keep the public surface small. If a prop does not change rendering in a meaningful way, it probably should not exist.
### 3. Scaffold with strong defaults
Use typed props and semantic structure:
```astro
---
interface Props {
title: string
variant?: 'primary' | 'secondary'
}
const { title, variant = 'primary' } = Astro.props
---
<section class:list={['card', variant]}>
<h2>{title}</h2>
<slot />
</section>
<style>
.card {
padding: 1rem;
}
</style>
```
Good defaults:
- semantic elements over generic `div`s
- logical heading structure
- sensible prop defaults
- scoped styles unless the project uses another pattern intentionally
- `class:list` for conditional classes when it keeps markup clear
### 4. Add interactivity only when needed
If the component needs client-side behavior:
- keep the interactive part as small as possible
- isolate it in a framework component if that is the project pattern
- choose the lightest hydration directive that works
Example:
```astro
---
import SearchBox from './SearchBox.tsx'
---
<SearchBox client:visible />
```
Avoid turning large sections of a page into islands when a small interactive leaf component is enough.
### 5. Review accessibility and resilience
Before calling the component done, check:
- semantic HTML is appropriate
- interactive elements are keyboard reachable
- visible labels and accessible names exist
- images have correct `alt` behavior
- heading levels make sense in context
- focus states remain visible
### 6. Fit the component into the project
Align with the existing codebase:
- follow naming conventions
- preserve the established layout and styling approach
- keep imports relative and readable
- do not introduce a framework dependency just to mimic static HTML
## Use This Skill For
- converting static HTML into Astro components
- scaffolding new routes or layouts
- breaking large Astro files into smaller pieces
- turning a design into accessible Astro markup
© incluud · MIT · incluud/astro-agent-skills
Similar skills
All skills for Frontend and UI →create-component by other authors comes first.