# Ignix Lite Reference & System Instructions Ignix Lite is a minimal, CSS-first classless UI system (~8KB CSS). It uses semantic HTML elements with data attributes for state and intent, avoiding framework-specific markup, JS libraries, or utility classes. This specification serves as the absolute source of truth for LLM agents to write correct HTML/CSS using Ignix Lite without hallucination, even when the MCP server is unavailable. --- ## Core Design Principles - **No CSS Classes**: Never use `class="..."` or inline styles for layout/variants. Styling is applied directly to semantic elements. - **Data Intents**: Use `data-intent="..."` for variant styling instead of custom class names or colors. - **Native HTML Attributes for State**: Use standard HTML attributes like `disabled`, `checked`, `required`, `open`, `aria-busy="true"`, `aria-invalid="true"`, etc., to manage component state. - **Accessibility (A11y)**: Built-in focus states, ARIA roles, and keyboard support via standard semantic elements. - **Light & Dark Theme**: Supported automatically. Custom themes are configured via CSS variables under `:root`. --- ## 27 Core Components Specification ### Component: accordion **Description**: Displays expandable content sections using native HTML details and summary elements. Works without JavaScript and is accessible by default. - **HTML Tag / Element**: `
` - **Emmet Template**: `details[open?]>summary{title}+p{content}` #### Allowed Attributes & Properties - `open` (`boolean`): Use open to keep accordion expanded by default. #### Specifications & Constraints - **Supported States**: `open` - **Forbidden Attributes (DO NOT USE)**: `expanded`, `isOpen`, `collapsed`, `variant`, `class` - **Required Children**: `summary` #### DOs - Use summary as the accordion trigger - Use open to expand by default - Use native details element for accessibility #### DONTs - Do not replace details with div - Do not use JavaScript for open state - Do not use class attribute #### Examples **Default accordion**: - Emmet: `details>summary{What is ignix-lite?}+p{Lightweight semantic UI library}` ```html
What is ignix-lite?

Lightweight semantic UI library

``` **Open by default**: - Emmet: `details[open]>summary{How does this work?}+p{Uses native browser behavior}` ```html
How does this work?

Uses native browser behavior

``` **FAQ item**: - Emmet: `details>summary{Does it require JS?}+p{No, it works without JavaScript}` ```html
Does it require JS?

No, it works without JavaScript

``` --- ### Component: alert **Description**: Displays semantic feedback messages using native