Skip to main content
skill CX Codex

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.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add incluud/astro-agent-skills --skill create-component -a claude-code
Open on GitHub

What 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 .astro templates with typed props
  • Set up shared layouts in src/layouts/ or routes in src/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-code

2Manually: put the files in place

~/.claude/skills/create-component/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/create-component/

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.

From the same set6

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor