Reorganize library structure
- 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
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