100 lines
2.1 KiB
Markdown
100 lines
2.1 KiB
Markdown
# @dss/rules
|
|
|
|
Versioned design system rules for enterprise DSS enforcement.
|
|
|
|
## Installation
|
|
|
|
```bash
|
|
npm install @dss/rules
|
|
```
|
|
|
|
## Usage
|
|
|
|
### In Your Project
|
|
|
|
```javascript
|
|
const rules = require('@dss/rules');
|
|
|
|
// Load all rules
|
|
const allRules = rules.loadRules();
|
|
|
|
// Get specific category
|
|
const colorRules = rules.getRulesByCategory('colors');
|
|
|
|
// Validate a value
|
|
const result = rules.validateValue('colors/no-hardcoded-colors', '#ff0000');
|
|
// { valid: false, violations: [...] }
|
|
|
|
// Get required tokens
|
|
const required = rules.getRequiredTokens();
|
|
// { colors: ['colors.primary', ...], spacing: [...] }
|
|
```
|
|
|
|
### In CI/CD Pipeline
|
|
|
|
```yaml
|
|
- name: Validate DSS Rules
|
|
run: |
|
|
npx @dss/rules validate src/**/*.tsx --json > dss-report.json
|
|
```
|
|
|
|
### Pre-commit Hook
|
|
|
|
```bash
|
|
#!/bin/bash
|
|
npx @dss/rules validate $(git diff --cached --name-only --diff-filter=ACM | grep -E '\.(tsx?|jsx?|css|scss)$')
|
|
```
|
|
|
|
## Rule Categories
|
|
|
|
| Category | Description |
|
|
|----------|-------------|
|
|
| `colors` | Color token usage, semantic naming, contrast |
|
|
| `spacing` | Spacing scale compliance, consistent values |
|
|
| `typography` | Font size scale, semantic elements |
|
|
| `components` | Component usage, prop requirements |
|
|
| `accessibility` | WCAG 2.1 AA compliance |
|
|
|
|
## Rule Severities
|
|
|
|
- **error**: Blocks CI pipeline, must fix
|
|
- **warning**: Advisory, should fix
|
|
- **info**: Suggestion, optional
|
|
|
|
## Version Policy
|
|
|
|
Rules follow semantic versioning:
|
|
|
|
- **MAJOR**: Breaking changes (new errors that may fail existing code)
|
|
- **MINOR**: New rules added as warnings
|
|
- **PATCH**: Bug fixes, documentation
|
|
|
|
Projects should pin to minor version: `@dss/rules@^1.0.0`
|
|
|
|
## API Reference
|
|
|
|
### `loadRules()`
|
|
Returns all rule sets organized by category.
|
|
|
|
### `getRulesByCategory(category)`
|
|
Returns rules for a specific category.
|
|
|
|
### `getAllRuleIds()`
|
|
Returns array of all rule IDs in format `category/rule-id`.
|
|
|
|
### `getRule(ruleId)`
|
|
Returns a specific rule definition.
|
|
|
|
### `validateValue(ruleId, value)`
|
|
Validates a value against rule patterns.
|
|
|
|
### `getRequiredTokens()`
|
|
Returns required tokens organized by category.
|
|
|
|
### `getCIConfig()`
|
|
Returns configuration object for CI pipelines.
|
|
|
|
## License
|
|
|
|
MIT
|