thehighhomie
@thehighhomie

SASS и CSS модули?

В общем верстал все с bootstrap + jquery и все в статический файлах и примерно месяца 2 назад решил пойти дальше.
Начал изучать nodejs, сборщики (webpack, gulp) react, sass. Все круто, все нравится, удобно + интересно развиваться, но тема с компонентной версткой меня немного ставит в ступор.

Как раз на примере реакта хочу понять как лучше всего структурировать стили для компонентов.
Вот сегодня увидел крутую штуку - css модули. Это замечательно, но есть 2 момента, которые мне не очень нравятся.
1) Как я понял все стили идут в тег head документа а это меня не устраивает.
2) Нельзя использовать препроцессоры. Конечно в css модулях есть компрессы и можно включить некоторые фичи, например вложеность и т.д., но всех крутых возможностей как например фунцкии в css модулях нет.

Так вот, хочу понять как лучше всего работать со стилями без css модулей, например с sass.
Все что я сам смог придумать так это каждый sass файл ложить в папку с компонентом и импортировать его в общий файл sass.

Пример на реакте:

src/components/Button/Button.jsx
import React, { Component } from 'react';

export default class Button extends Component {

	render() {
		return (
			<button type="button" className="button">
				{children}
			</button>
		);
	}

}


src/components/Button/Button.scss:
.button {
    background-color: blue;
    box-shadow: 0 0 3px rgba(0,0,0,.1);
    padding: 5px 20px;
}


src/app.scss
import './components/Button/Button.scss';

Как-то так. Но, что-то мне подсказывает, что этот способ не очень то и хороший, даже если писать по БЭМУ чтобы оградить код от поломок с переопределением и т.д. то уж как то не уклюже постоянно импортировать scss файлы из компонентов в общий файл.

В общем хочу найти хороший способ компонентной верстки но у меня не получается найти информацию. Уверен что просто не правильно вбиваю в гугл, возможно есть еще какие-то термины о которых я не знаю.
  • Вопрос задан
  • 3209 просмотров
Решения вопроса 1
AlekSays
@AlekSays
FrontEnd developer
если webpack юзать, то не надо в отдельный файл все импротить. Но css-modules в купе с postcss делают жизнь проще.
А твой вариант вполне имеет право на жизнь. Сам долгое время так делал, потом stylus с его require решил эту проблему, но все-таки советую смотреть в сторону css-modules. А если не нравится или еще какая причина по поводу styles.someClass, то есть альтернатива react-css-modules (насколько я понял ты с реактом работаешь).
https://github.com/gajus/react-css-modules
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы