BEM (Block, Element, Modifier) Methodology

repository·bem-info-data·Indexed 20 days ago

https://github.com/bem-site/bem-method

A comprehensive educational resource and implementation guide for the BEM methodology. It covers core principles, naming conventions for CSS, HTML, and JavaScript, file structure organization, and library development principles. The documentation includes guides on block modification, redefinition, and practical tutorials for building both static and dynamic projects, including the use of bem-components.

Tokens
170.8K
Snippets
457
Records
817
Agent score
68%

What's inside BEM Method

  1. Overview of BEM-related tools and libraries

    bem-info-data

    This repository serves as a collection of various projects and libraries built using the BEM methodology. Key categories include:

    • CSS/Stylus Tools: pobem (PostCSS plugin), bem-grid (CSS grid library).
    • Framework Integrations: bem-ng (AngularJS), angular-bem (AngularJS directives), gem bem-on-rails (Ruby on Rails).
    • Code Generation & Snippets: generator-bem-ng (AngularJS project generator), atom-bemjson-snippets, sublime-bemjson-snippets.
    • Utilities: bemy (Node.js structure manipulation), bem-cn and b_ (BEM-friendly class name generators).
    • Specialized Libraries: bem-social (social widget blocks), bnsf (One-page application framework).
  2. What is borschik?

    bem-info-data

    borschik is a builder for text-based file formats designed for assembling static files for web projects (such as CSS and JS). It performs three main operations:

    1. Merge: Combining multiple files into one.
    2. Modify: Transforming content (e.g., rewriting URLs).
    3. Minify: Reducing file size for production.

    borschik uses a plugin-based architecture where plugins are called "technologies". It operates on two core concepts:

    • include: A link to a file that is replaced by the actual file content.
    • link: A link to a file that is transformed (e.g., rewriting relative paths to absolute paths).

    Each technology defines how to identify and process these include and link expressions.

  3. Overview of BEM Project Assembly and Optimization Webinar

    bem-info-data

    This webinar covers the process of assembling a BEM (Block Element Modifier) project, specifically focusing on how to manage the methodology's recommendation of keeping each block in a separate file.

    Key topics include:

    • Assembling BEM blocks into CSS and images using Gulp.
    • Building only the specific blocks required by your HTML files.
    • Optimizing the workflow using browser-sync and postCSS.
    • Automating routine tasks via the command line.

    Prerequisites:

    • Basic knowledge of HTML and CSS.
    • Understanding of web development processes.
    • Familiarity with the command line.
    • Installed: git, Node.js, and npm.
  4. Overview of BEM methodology for small projects

    bem-info-data
    BEM (Block, Element, Modifier) is a methodology developed by Yandex designed to provide a structured approach to writing HTML and CSS. While often associated with large-scale enterprise development and complex toolchains, the core abstraction of BEM—consisting of three entities: Blocks, Elements, and Modifiers—can be applied to small projects to achieve code reuse, maintain a 'living' Style Guide, and ensure scalability without needing a heavy infrastructure.
  5. Overview of the BEM Methodology

    bem-info-data

    The bem-method repository provides comprehensive documentation and tutorials for the BEM (Block, Element, Modifier) methodology. It covers the core principles of the methodology, including naming conventions for CSS, HTML, and JavaScript, file structure organization, and how to manage block modifications and redefinitions.

    Users can explore the methodology through:

    • Core Methodology Guides: Deep dives into CSS, HTML, JS, and file structures.
    • Tutorials: Practical guides for building static and dynamic projects, including using dist bem-components to add blocks to a page.
  6. Overview of the Mail.Ru Group Mobile Web Framework

    bem-info-data

    The Mail.Ru Group mobile web framework is a design and technical platform used to unify the visual style, interface principles, and information architecture across a large portfolio of products (e.g., News, Auto, Currencies, Horoscopes, etc.).

    Instead of the traditional design workflow (Prototype $\rightarrow$ Layout $\rightarrow$ Markup $\rightarrow$ Code) for every individual screen, the framework promotes a modern design process based on assembly directly in code. This approach allows developers to build interfaces quickly using a library of pre-existing blocks and components, ensuring consistency across the brand and making it easier to launch new products or redesign existing ones.

  7. What is i-bem.js?

    bem-info-data

    i-bem.js is a framework designed to complement, not replace, general-purpose libraries like jQuery. It allows you to:

    • Develop web interfaces using the BEM mental model (blocks, elements, modifiers).
    • Integrate JavaScript logic with BEM-style CSS rules and templates.
    • Describe block logic as a set of states.
  8. Overview of BEM Library Development Principles

    bem-info-data
    The BEM (Block Element Modifier) methodology provides a set of principles for developing scalable, maintainable, and lightweight component libraries. These principles were derived from historical lessons learned while building large-scale libraries like bem-components. The core goal is to avoid common pitfalls such as bloated codebases, rigid APIs, and difficult-to-maintain styling systems by following a structured checklist during development.