Matyas.
ServicesProjectsExperienceBlogContact
CSGet in touch
Back to Dictionary
web-dev

BEM

BEM (Block Element Modifier) is a CSS naming convention that structures class names as .block__element--modifier to create clear, predictable relationships between HTML and CSS. For example, .card__title--highlighted identifies a highlighted title element within a card block. While modern tooling like CSS Modules and utility frameworks have reduced BEM's necessity, it remains widely used in large codebases and design systems where explicit naming conventions aid team coordination.

#web-dev

Related Terms

Virtual DOM

The Virtual DOM is a lightweight in-memory representation of the actual browser DOM that React uses to optimize UI updates. When state changes, React creates a new Virtual DOM tree, compares it with the previous one through a process called reconciliation, and calculates the minimal set of real DOM mutations needed. This batching and diffing approach avoids expensive direct DOM manipulation and was a key innovation that made React's declarative programming model performant.

Static Site Generation

Static Site Generation (SSG) is a rendering strategy where HTML pages are pre-built at build time rather than generated on each request. The resulting static files can be served from a CDN with extremely fast load times and minimal server infrastructure. Frameworks like Next.js, Gatsby, and Astro support SSG, often combined with Incremental Static Regeneration (ISR) to update specific pages in the background without rebuilding the entire site.

Code Splitting

Code splitting is an optimization technique that breaks a JavaScript bundle into smaller chunks that are loaded on demand, rather than forcing users to download the entire application upfront. In React, this is achieved through `React.lazy()` and dynamic `import()` statements, which create separate bundles loaded only when the corresponding component or route is accessed. This dramatically improves initial load times, especially for large single-page applications with many routes.

CSS Modules

CSS Modules are CSS files where all class names are locally scoped by default, meaning they're automatically transformed into unique identifiers at build time to prevent naming collisions. You import them into your JavaScript as an object and reference classes like `styles.button` instead of plain strings. This approach is natively supported by bundlers like Webpack, Vite, and Next.js, offering style isolation without the runtime overhead of CSS-in-JS.

CSS Custom Properties

CSS Custom Properties (also called CSS Variables) let you define reusable values with `--my-variable` syntax and reference them anywhere using `var(--my-variable)`. Unlike preprocessor variables in Sass or Less, they are live in the browser, cascade through the DOM, and can be updated dynamically with JavaScript. They're essential for theming systems, dark mode implementations, and maintaining consistent design tokens across large stylesheets.

Dart

Dart is the programming language created by Google and used as the sole language for Flutter development. It features a sound type system, null safety, async/await support, and compiles both ahead-of-time (AOT) for production performance and just-in-time (JIT) for fast development cycles with hot reload. Dart's syntax feels familiar to developers coming from JavaScript, TypeScript, Java, or Kotlin, making the transition to Flutter relatively smooth.

All Words
Matyas.

Web apps, mobile apps, AI automation. I help businesses save time and money with tech that actually works.

Links

  • Services
  • Projects
  • Experience
  • Blog
  • Dictionary
  • Contact

Coming Soon

  • Case StudiesSoon
  • Resources

© 2026 Matyas Prochazka. All rights reserved.