bem / bem/bem-components

Reorganize library structure

Open
#1,586 2 comments 0 reactions 0 assignees View on GitHub
question v3
Dominant language
JavaScript
Stars
330
Forks
88
PR merge metrics
No merged PRs in 30d

Description

Current scheme:

```
common.blocks/
input/
__control/
_type/
input.tests/
input.bemhtml
input.js
desktop.blocks/
input/
_autofocus/
input.js
touch.blocks/
input/
__control/
input.js
design/
common.blocks/
input/_theme/
input_theme_islands.styl
desktop.blocks/
input/_theme/
input_theme_islands.styl
```

Proposal:

```
blocks/
input/
__control/
_type/
input.design/_theme/
input_theme_islands.styl
input.desktop/
_autofocus/
input.design/_theme/
input_theme_islands.styl
input.js
input.tests/
input.touch/
__control/
input.js
input.bemhtml
input.js
```

Move design and platform-specific redefinitions to the blocks folder.
Look [the branch](https://github.com/bem/bem-components/tree/reorganize-library-structure) for more detailed illustration.
We can keep all knowledge about the block in it's folder.
This change can help us to keep the codebase more clear and convenient.

Contributor guide

Open the contributing guide

Research direction

Start by comparing the current common.blocks/, desktop.blocks/, touch.blocks/, and design/ directories with the reorganize-library-structure branch linked in the issue. Review how the proposed blocks/input/ layout groups shared, platform-specific, test, and design files. Done means the library structure follows the proposal and keeps each block’s related knowledge in its folder.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
frontend
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.