- BEM Methodology
- Strict modularity is implemented: each component (example
search-form,card) is autonomous - The naming scheme
block__element_modifieris used (example:.header__link_active) - Styles almost isolated
- Strict modularity is implemented: each component (example
- Zero-Build Approach
- Project works without buildtools (Webpack/Vite/Gulp)
- All dependencies include in
<script>and<link> - Pure Vanilla JS realization without translation
css/
├── components/ # BEM-blocks
│ ├── auth-form/ # auth-form component
│ ├── footer/ # footer component
│ └── alert/ # alert component
├── global.css # global styles for a page
├── normalize.css # normalize styles
└── utilites.js # utilites
fonts/
img/
index.html # main page
validator.js # validator library
alert.js # alert library
- Challenge: Supporting Safari 14+ without build tools
- Solution:
- Manual vendor prefixes for Flexbox
- Challenge: No hot-reload for CSS changes
- Solution: Live Server extension with file watchers