schwarzit/onyx/onyx-components
Claude Code and agent skill by schwarzit/onyx
Trust tier 3
- community
Source check pending
Checking that the SKILL.md file is still in the repository.
Best practices and dynamic API lookup instructions for Onyx UI components. Use when implementing UI features, forms, or building Vue templates.
Install
npx vskill@latest install schwarzit/onyx/onyx-componentsSKILL.md
Onyx Components
Implement and configure Onyx Vue 3 UI components using authoritative API definitions.
Rule: Mandatory Dynamic API Lookups (MCP)
Onyx component APIs are dynamic and change across versions. NEVER guess or assume props, events, or slots.
Action Components (Buttons & Links)
- Props-based Links: Components like
OnyxButton,OnyxIconButton,OnyxSystemButton,OnyxMenuItem, andOnyxNavItemsupport alinkprop. Do not wrap these components in raw<a>tags; pass the URL to thelinkprop. - Headless Links: Use the
useLinkcomposable (const { navigate, isActive } = useLink()) orOnyxRouterLinkfor custom unstyled navigation components.
Composition
- Compose, don't reinvent. Data page = OnyxHeadline + OnyxTabs + OnyxDataGrid. Dashboard = OnyxCard + OnyxHeadline + OnyxFlyoutMenu + OnyxSystemButton.
- Always use the recommended components for a slot. These are usually mentioned in the API description of the slot itself.
- Always use the appropriate Onyx component instead of building components from scratch: E.g.
OnyxButton,OnyxSystemButtonorOnyxIconButtoninstead of<button>OnyxInput,OnyxTimepicker,OnyxDatepickerorOnyxStepperinstead of<input>OnyxTextareainstead of<textarea>OnyxSelectinstead<select>OnyxDatagridinstead of<table>OnyxSidebarinstead of building a sidebar from scratch
Form Elements
- Labels & Messages: Always configure standard
MessageandLabelPositionsproperties consistently. - Loading State: Implement built-in
Skeletonloading states when loading form data. - Accessibility: Use proper labels for complex multi-input forms (
date-picker,radio-group,checkbox-group).
Cards & Layout Structure
- Nest and structure basic components (
Accordion,Cards,Badge,Tag) inside the Onyx grid layout (seeonyx-foundation) to prevent layout breaking.
Data presentation
- Tabular data: Always prefer the use of the
OnyxDataGridover theOnyxTablecomponent.
Validation & Quality Check
After writing or updating components, you MUST run the following verification steps:
- Type Check: Run TypeScript verification (e.g.,
npx vue-tsc --noEmitornpm run type-check) to confirm no invalid props or event bindings exist. - Linter Check: Run standard project linters (e.g.,
npm run lintoreslint .) to confirm code style and rules are respected. - Manual Verification: Confirm all slots and custom events mapped conform to the authoritative API fetched from the MCP.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingpackages/modelcontextprotocol/src/resources/skills/onyx-components/SKILL.md
Popularity
- Repository stars
- 126
- Repository forks
- 18
- 7-day trend score
- 0
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/schwarzit/onyx/onyx-components)