From cre8
Agent-to-UI schema for CRE8 Web Components (@tmorrow/cre8-wc). Use when building vanilla JS/HTML UIs with CRE8/Innovexa design system using cre8-* custom elements, creating static landing pages, or integrating with non-React frameworks. Triggers on requests mentioning CRE8 web components, cre8-wc, cre8-* elements, Lit components, or vanilla HTML with CRE8 design system. For React projects, use cre8-a2ui-react instead.
How this skill is triggered — by the user, by Claude, or both
Slash command
/cre8:cre8-a2uiThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Web Components (Lit) library for the CRE8 design system. Uses custom elements with `cre8-` prefix.
Web Components (Lit) library for the CRE8 design system. Uses custom elements with cre8- prefix.
You MUST follow this workflow for all CRE8 UI generation tasks:
Before writing any code, validate the UI design:
/ui-designer skill or UI design validator to review the proposed interfaceGenerate the HTML/CSS using CRE8 web components following this schema.
After code generation is complete, you MUST perform visual and DevTools testing before marking the task as complete.
Option A: Use /chrome skill (if available)
/chrome
Then navigate to the generated HTML file and verify rendering.
Option B: Use Chrome DevTools MCP
If the user doesn't have browser automation configured, help them add this to their MCP settings:
{
"mcpServers": {
"chrome-devtools": {
"command": "npx",
"args": ["-y", "chrome-devtools-mcp@latest"]
}
}
}
Then use Chrome DevTools MCP to:
Before marking complete, confirm:
DO NOT mark the task as complete until visual testing confirms the UI renders correctly.
library: "@tmorrow/cre8-wc"
framework: Web Components (Lit)
baseClass: Cre8Element
formBaseClass: Cre8FormElement
prefix: cre8-
naming: kebab-case (cre8-button, cre8-card, etc.)
Both the design tokens CSS and the web components script are required:
<!-- 1. Design Tokens (REQUIRED) - must load before components -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@cre8_dev/[email protected]/lib/web/brands/cre8/css/tokens_cre8.css"/>
<!-- 2. CRE8 Web Components -->
<script type="module" src="https://cdn.jsdelivr.net/npm/@tmorrow/[email protected]/cdn/cre8-wc.esm.js"></script>
Important: The design tokens stylesheet provides all CSS custom properties (--cre8-*) that components depend on. Without it, components will render without proper styling.
<!-- Use components as custom elements -->
<cre8-button text="Submit" variant="primary"></cre8-button>
| Web Component | React Component | Category |
|---|---|---|
<cre8-button> | <Cre8Button> | Actions |
<cre8-danger-button> | <Cre8DangerButton> | Actions |
<cre8-field> | <Cre8Field> | Forms |
<cre8-select> | <Cre8Select> | Forms |
<cre8-card> | <Cre8Card> | Layout |
<cre8-grid> | <Cre8Grid> | Layout |
<cre8-heading> | <Cre8Heading> | Typography |
<cre8-alert> | <Cre8Alert> | Feedback |
<cre8-modal> | <Cre8Modal> | Disclosure |
<cre8-table> | <Cre8Table> | Data |
<cre8-layout>
<cre8-header>
<cre8-global-nav>
<cre8-global-nav-item href="/">Home</cre8-global-nav-item>
</cre8-global-nav>
</cre8-header>
<main>
<cre8-layout-container>
<!-- Content -->
</cre8-layout-container>
</main>
<cre8-footer></cre8-footer>
</cre8-layout>
<cre8-card>
<cre8-heading type="h2">Sign In</cre8-heading>
<cre8-field label="Email" type="email"></cre8-field>
<cre8-field label="Password" type="password"></cre8-field>
<cre8-button text="Sign In" variant="primary" full-width></cre8-button>
</cre8-card>
<cre8-hero>
<cre8-layout-container>
<cre8-heading type="h1">Welcome</cre8-heading>
<cre8-text-passage>
<p>Build amazing things.</p>
</cre8-text-passage>
<cre8-button text="Get Started" variant="primary"></cre8-button>
</cre8-layout-container>
</cre8-hero>
full-width, error-note)@event-name in Lit or addEventListener<!-- Boolean true -->
<cre8-button text="Save" disabled></cre8-button>
<!-- Boolean false (omit attribute) -->
<cre8-button text="Save"></cre8-button>
<!-- String/enum values -->
<cre8-button text="Cancel" variant="secondary"></cre8-button>
<cre8-button text="Click Me" @click="${handleClick}"></cre8-button>
<!-- Or vanilla JS -->
<script>
document.querySelector('cre8-button').addEventListener('click', handleClick);
</script>
Component details match the React version with kebab-case naming:
Use Web Components (cre8-a2ui) when:
Use React (cre8-a2ui-react) when:
Creates bite-sized, testable implementation plans from specs or requirements, with file structure and task decomposition. Activates before coding multi-step tasks.
npx claudepluginhub tmorrowdev/cre8-plugin