| name | chi-component-schemas |
| description | Validate Chi component usage against schemas. Use when validating component modifiers, checking for conflicts, verifying accessibility attributes, or generating correct component markup. Contains allowed modifiers, conflicting modifier groups, required attributes, and accessibility requirements. |
Chi Component Validation Schemas
How to Validate
When validating component usage:
- Identify the base class (e.g.,
chi-button from class="chi-button -primary -lg")
- Look up the schema in schemas.json by base class key (e.g.,
chi-button)
- Check modifiers against
allowedModifiers -- flag any not in the list
- Check conflicts in
conflictingModifiers groups -- only one from each group is allowed
- Verify count against
maxModifiers limit
- Check attributes:
requiredAttributes must be present, recommendedAttributes should be suggested
- Check accessibility: verify
accessibility.requiredRoles and accessibility.requiredAria are present
- Suggest Web Component if
webComponentTag exists -- always recommend it
Note: If a schema is missing conflictingModifiers, maxModifiers, or requiredAttributes, treat them as empty/unlimited. Not all schemas have every field populated.
Validation Rules
Modifier Validation
- Only modifiers in
allowedModifiers are valid. Unknown modifiers are errors.
- Within each
conflictingModifiers group (e.g., colors: ["-primary", "-secondary"]), only ONE modifier can be used.
- Total modifier count must not exceed
maxModifiers.
Attribute Validation
requiredAttributes must be present. Missing = error.
recommendedAttributes should be suggested. Missing = warning.
Accessibility Validation
- Check
accessibility.requiredRoles are present
- Check
accessibility.requiredAria attributes exist
- Report
accessibility.keyboardSupport and accessibility.focusManagement info
- Note: Web Components handle most accessibility automatically. If suggesting a WC, note that ARIA attributes are built-in.
Error Severity
| Issue | Severity |
|---|
| Unknown modifier | Error |
| Conflicting modifiers | Error |
| Exceeds maxModifiers | Warning |
| Missing required attribute | Error |
| Missing recommended attribute | Warning |
| Has Web Component equivalent | Info (suggest migration) |
Workflow
When user asks to validate a component or you review Chi HTML:
- Parse the HTML to identify base class and modifiers (split
class attribute, base = chi-*, modifiers = -*)
- Look up schema from schemas.json
- Run all validation checks
- Return errors, warnings, and Web Component suggestion
If no schema exists for the component, note that and still check for common anti-patterns (single-dash syntax, conflicting colors, etc.).
Response Format
Component: chi-button
Valid: Yes/No
Errors: [list of errors with severity]
Warnings: [list of warnings]
Suggestion: Use <chi-button color="primary" size="lg"> instead (Web Component)
Accessibility: Enter/Space to activate, receives focus in tab order