Resources
3Install
npx skillscat add pluginagentmarketplace/custom-plugin-css/css-architecture Install via the SkillsCat registry.
SKILL.md
CSS Architecture Skill
Implement scalable CSS architecture patterns for maintainable, organized codebases.
Overview
This skill provides atomic, focused guidance on CSS architecture methodologies with practical implementation patterns and migration strategies.
Skill Metadata
| Property | Value |
|---|---|
| Category | Organization |
| Complexity | Intermediate to Expert |
| Dependencies | css-fundamentals |
| Bonded Agent | 04-css-architecture |
Usage
Skill("css-architecture")Parameter Schema
parameters:
methodology:
type: string
required: true
enum: [bem, smacss, oocss, itcss, atomic, css-modules]
description: CSS architecture methodology
project_size:
type: string
required: false
default: medium
enum: [small, medium, large, enterprise]
description: Project scale for appropriate recommendations
include_tokens:
type: boolean
required: false
default: true
description: Include design token patterns
validation:
- rule: methodology_required
message: "methodology parameter is required"
- rule: valid_methodology
message: "methodology must be one of: bem, smacss, oocss, itcss, atomic, css-modules"Topics Covered
BEM (Block Element Modifier)
- Block: Standalone component
- Element: Part of block (__)
- Modifier: Variant/state (--)
SMACSS
- Base, Layout, Module, State, Theme
ITCSS (Inverted Triangle CSS)
- Settings, Tools, Generic, Elements, Objects, Components, Utilities
Design Tokens
- Primitive, semantic, component tokens
- CSS custom properties organization
Retry Logic
retry_config:
max_attempts: 3
backoff_type: exponential
initial_delay_ms: 1000
max_delay_ms: 10000Logging & Observability
logging:
entry_point: skill_invoked
exit_point: skill_completed
metrics:
- invocation_count
- methodology_distribution
- project_size_distributionQuick Reference
BEM Naming
/* Block */
.card { }
/* Element */
.card__header { }
.card__body { }
.card__footer { }
/* Modifier */
.card--featured { }
.card--compact { }
.card__header--large { }ITCSS Layers
/styles
โโโ 1-settings/ โ $variables, tokens
โโโ 2-tools/ โ @mixins, functions
โโโ 3-generic/ โ reset, normalize
โโโ 4-elements/ โ h1, p, a (bare HTML)
โโโ 5-objects/ โ .o-grid, .o-container
โโโ 6-components/ โ .c-card, .c-button
โโโ 7-utilities/ โ .u-hidden, .u-text-centerDesign Token Hierarchy
/* 1. Primitive Tokens */
:root {
--color-blue-500: #3b82f6;
--color-gray-900: #111827;
--space-4: 1rem;
--font-size-lg: 1.125rem;
}
/* 2. Semantic Tokens */
:root {
--color-primary: var(--color-blue-500);
--color-text: var(--color-gray-900);
--spacing-md: var(--space-4);
}
/* 3. Component Tokens */
.button {
--button-bg: var(--color-primary);
--button-padding: var(--spacing-md);
}File Structure Templates
Small Project
styles/
โโโ base.css
โโโ components.css
โโโ utilities.css
โโโ main.cssMedium Project
styles/
โโโ base/
โ โโโ reset.css
โ โโโ typography.css
โโโ components/
โ โโโ button.css
โ โโโ card.css
โโโ layouts/
โ โโโ grid.css
โโโ utilities/
โ โโโ helpers.css
โโโ main.cssLarge/Enterprise Project
styles/
โโโ settings/
โ โโโ _tokens.scss
โ โโโ _breakpoints.scss
โโโ tools/
โ โโโ _mixins.scss
โ โโโ _functions.scss
โโโ generic/
โ โโโ _reset.scss
โโโ elements/
โ โโโ _typography.scss
โโโ objects/
โ โโโ _grid.scss
โโโ components/
โ โโโ _button.scss
โ โโโ _card.scss
โโโ utilities/
โ โโโ _helpers.scss
โโโ main.scssNaming Convention Comparison
| Methodology | Example | Best For |
|---|---|---|
| BEM | .block__element--modifier |
Component systems |
| SMACSS | .l-grid, .is-active |
Multi-page sites |
| OOCSS | .media, .media-body |
Reusable patterns |
| Atomic | .flex, .p-4, .text-center |
Utility-first |
Test Template
describe('CSS Architecture Skill', () => {
test('validates methodology parameter', () => {
expect(() => skill({ methodology: 'invalid' }))
.toThrow('methodology must be one of: bem, smacss...');
});
test('returns BEM examples for bem methodology', () => {
const result = skill({ methodology: 'bem' });
expect(result).toContain('__');
expect(result).toContain('--');
});
test('scales recommendations based on project_size', () => {
const smallResult = skill({ methodology: 'itcss', project_size: 'small' });
const largeResult = skill({ methodology: 'itcss', project_size: 'large' });
expect(largeResult.layers).toBeGreaterThan(smallResult.layers);
});
});Error Handling
| Error Code | Cause | Recovery |
|---|---|---|
| INVALID_METHODOLOGY | Unknown methodology | Show valid options |
| SIZE_MISMATCH | Methodology too complex for project size | Suggest simpler alternative |
| TOKEN_CONFLICT | Conflicting token names | Show naming resolution |
Related Skills
- css-fundamentals (prerequisite)
- css-sass (preprocessor integration)
- css-tailwind (utility-first approach)