Skip to main content

CSS Methodologies, Standards & Conventions

Modern CSS architectures, naming conventions, and organizational patterns for scalable stylesheets

Overview

Category:UI FUNDAMENTALS
Difficulty:INTERMEDIATE
Last Updated:2025-09-21
Tags:
cssbemsmacssoocssatomic-csscss-modulesarchitecture

Modern CSS architectures, naming conventions, and organizational patterns for scalable stylesheets

Reference Content

Popular Methodologies

Structure

/ Block /
.card {}

/ Element /
.card__title {}
.card__content {}
.card__footer {}

/ Modifier /
.card--featured {}
.card__title--large {}

Example Component

Naming Conventions

/ kebab-case (recommended) /
.my-component-name {}

/ camelCase /
.myComponentName {}

/ PascalCase /
.MyComponentName {}

/ snake_case /
.my_component_name {}

File Organization

styles/
ā”œā”€ā”€ abstracts/
│ ā”œā”€ā”€ _variables.scss
│ ā”œā”€ā”€ _mixins.scss
│ └── _functions.scss
ā”œā”€ā”€ base/
│ ā”œā”€ā”€ _reset.scss
│ └── _typography.scss
ā”œā”€ā”€ components/
│ ā”œā”€ā”€ _buttons.scss
│ └── _cards.scss
ā”œā”€ā”€ layout/
│ ā”œā”€ā”€ _header.scss
│ └── _footer.scss
ā”œā”€ā”€ pages/
│ ā”œā”€ā”€ _home.scss
│ └── _about.scss
ā”œā”€ā”€ themes/
│ └── _dark.scss
ā”œā”€ā”€ vendors/
│ └── _bootstrap.scss
└── main.scss

Best Practices

/ Low specificity (good) /
.button {}
.button-primary {}

/ High specificity (avoid) /
div.container > ul.list > li.item > a.link {}

/ Use data attributes for state /
[data-state="active"] {}
[aria-expanded="true"] {}

Modern Standards

.component {
--component-padding: 1rem;
--component-color: blue;

padding: var(--component-padding);
color: var(--component-color);
}

.component--large {
--component-padding: 2rem;
}

Ā© 2025 John Dilig. Built with Next.js & TypeScript. Open Source (MIT) • Wiki

v... • Auto-versioned