2.13.0-beta.20). Features may change before the next stable release.Switch to stable →Skills
Implement accessible UI with ak:ui-styling
Apply shadcn/ui, Tailwind, responsive theming, and visual checks without losing control of project files.
Use ak:ui-styling to implement or refine React-based interfaces with
shadcn/ui, Radix primitives, Tailwind CSS, theme tokens, responsive layouts, and
accessibility patterns. The Skill can advise from bundled references or mutate
the project by adding components and generating configuration.
Choose ak:ui-styling for UI implementation
Use ak:ui-styling when
- You need to add or compose shadcn/ui components in an existing project.
- You are implementing Tailwind utilities, tokens, dark mode, responsive layout, form behavior, focus states, or screen-reader support.
- You want a component-level accessibility and visual-consistency pass.
- You need a canvas-style visual artifact with an accompanying design philosophy.
Choose another workflow when
- You need product-level style, palette, typography, UX, or chart recommendations
before implementation. Use
ak:ui-ux-pro-max. - You only need an audit against current external web guidelines. Use
ak:web-design-guidelines. - You need logos, identity mockups, posters, or marketing graphics. Use
ak:design. - The task is backend-only or does not change a visible or interactive surface.
Prepare the project
- Read repository instructions and identify the existing framework, package manager, Tailwind version, theme source, aliases, and component conventions.
- Preserve current design tokens. Provide the relevant page or component, supported breakpoints, states, content, and acceptance criteria.
- Confirm
components.jsonexists before adding shadcn/ui components. The bundled installer does not initialize shadcn/ui for you. - Make Node.js and
npxavailable for shadcn/ui. Python is required only for the bundled helper scripts. - Define the file boundary and whether package manifests, lockfiles,
components/ui/, global CSS, or Tailwind configuration may change.
| Runtime | Invocation | Evidence boundary |
|---|---|---|
| Claude Code | /ak:ui-styling ... | Native delivery can use the full supported Claude Hook surface. Package installation and visual testing still depend on project tools. |
| Cursor | /ak:ui-styling ... | Slash invocation is user-verified; equivalent browser, Hook, or package-manager behavior is not established. |
| Codex | $ak:ui-styling ... | Native Skill discovery is supported, with partial Hook projection and session-dependent render tools. |
See Runtime adapters for delivery details.
Run the Skill
The top-level Skill takes a component or layout request and has no documented mode flags. Put the desired states, responsive behavior, accessibility checks, and file boundary in the request.
/ak:ui-styling "Add an accessible account dialog using existing tokens; preserve components.json, support keyboard focus and reduced motion, test light/dark at mobile and desktop, and do not overwrite existing UI files"/ak:ui-styling "Add an accessible account dialog using existing tokens; preserve components.json, support keyboard focus and reduced motion, test light/dark at mobile and desktop, and do not overwrite existing UI files"$ak:ui-styling "Add an accessible account dialog using existing tokens; preserve components.json, support keyboard focus and reduced motion, test light/dark at mobile and desktop, and do not overwrite existing UI files"Choose the mutation path deliberately
| Path | Default behavior | Important boundary |
|---|---|---|
| Reference or review | Reads bundled component, theme, accessibility, Tailwind, responsive, and canvas guidance | Recommendations are not runtime proof; test the actual UI. |
shadcn_add.py | Calls npx shadcn@latest add for named components | Network and package resolution may occur. The CLI writes component and dependency files. Existing components stop the helper unless --overwrite is passed. |
shadcn_add.py --dry-run | Prints the npx command without running it | Use this to review scope; it does not prove the component will install. |
tailwind_config_gen.py | Writes tailwind.config.ts for React in the current directory | It writes directly to the resolved output path. Use --output or --validate-only to avoid replacing an existing config unexpectedly. |
| Canvas workflow | Produces a design-philosophy Markdown file and a PNG or PDF visual expression | Requires a renderer and visual QA; it is a visual-artifact path, not application component code. |
The Tailwind generator supports --framework, --js, --colors, --fonts,
--spacing, --breakpoints, --plugins, --output, and --validate-only.
Generated plugin entries still require the named packages to be installed.
Follow the observable stages
- Inspect the system. Identify versions, tokens, component patterns, accessibility requirements, responsive boundaries, and protected files.
- Select primitives and states. Prefer semantic HTML and Radix-backed behavior; define default, hover, focus, pressed, disabled, loading, error, empty, and dark-mode states before styling.
- Review the file plan. Distinguish component copies, package changes, global theme changes, and generated configuration. Use dry-run or validation-only helpers when appropriate.
- Implement with existing tokens. Keep utilities static and discoverable, use semantic color names, preserve visible focus, and build mobile-first.
- Verify behavior and visuals. Run focused project checks, keyboard flows, contrast checks, reduced motion, zoom, and breakpoint inspection.
- Report evidence. List changed files, installed packages, commands, test results, screenshots or manual checks, and any unverified state.
Keep approvals with the project owner
Component installation changes source code
shadcn/ui uses a copy-into-your-codebase model. Approve package installation,
new component files, and any overwrite separately. Never use --overwrite to
bypass a conflict you have not inspected.
npx shadcn@latestcan contact a package registry and execute downloaded CLI code. Record the resolved package changes and use the repository package manager when its policy requires one.- The configuration generator can replace an existing file at its output path. Compare or choose a new path before writing.
- Dark-mode and token changes can affect the entire application. Treat global CSS and shared primitives as broader scope than one component.
- An accessible primitive does not make its composition accessible. Labels, focus order, errors, contrast, keyboard behavior, zoom, and reduced motion still require verification.
Verify outputs and evidence
A complete run should show:
- The exact component, stylesheet, config, manifest, and lockfile diff.
- The source token mapping and confirmation that no accidental raw colors or one-off spacing values replaced semantic tokens.
- Keyboard navigation, visible focus, dialog focus return, labels, live-region behavior, error association, touch targets, and color-contrast results.
- Light and dark mode at relevant breakpoints, including 320px, 640px, 768px, 1024px, landscape, 200% zoom, and reduced motion when applicable.
- Focused tests and build/type evidence available in the project, plus explicit notes for anything checked manually or not checked.
Troubleshoot and limits
| Symptom | Safe next step |
|---|---|
components.json is missing | Inspect the project and obtain approval before running npx shadcn@latest init; the helper only adds components to an initialized project. |
| A component already exists | Diff the local component against the requested upstream component. Modify deliberately or stop; do not reach for --overwrite first. |
| The generated Tailwind config conflicts with the project | Use --validate-only or write to a review path, then merge compatible fields by hand. |
| A layout works at one width only | Return to mobile-first styles and test exact breakpoint boundaries, orientation, zoom, and overflow. |
| Radix behavior works but the audit fails | Check composition-specific labels, descriptions, focus order, live regions, and foreground/background pairs. |
| Visual output looks correct but evidence is missing | Run focused keyboard, contrast, responsive, and project checks before claiming completion. |
The reference files are bundled guidance and can lag current shadcn/ui,
Tailwind, browser, or accessibility documentation. Confirm version-sensitive
syntax against the installed project. Stable and beta contain identical
ak:ui-styling content and helpers in the documented releases.
Continue with Runtime adapters, Projects, artifacts, and checkpoints, or the Engineer Kit overview.
Create visual assets with ak:design
Route a visual-design request, generate or assemble the right artifact, and verify the files before delivery.
Build a UI decision system with ak:ui-ux-pro-max
Turn product context into bundled design recommendations, persist approved rules, and verify the implemented experience.