Использование important в новом React проекте, это норма?
Вошел в ново сформированную команду разработки на React. Они стартанули новый проект (На react естественно) с нуля примерно недели 2-3 назад. Собственно смотрю код и вижу примерно 15-20 использование !important в CSS. Если точнее то SCSS.
Собственно вопрос: это вообще нормально или криворукий этот код писал?
И второй вопрос.
На сколько вообще норм начинать новый проект на React с SCSS и не понятной БЭМ нотацией в 2K17? Непонятной потому что это не чистый БЭМ, а какое то свое вольное наименование классов через дефисы. Не легче хотя бы как минимум взять css-modules в webpack, что бы он классам сам названия прописывал. Или вообще инлайн стили использовать. Ну или что нибудь экзотическое и веселое типо styled-components?
У меня опыта разработки в команде практически нету и крупных проектов тоже можно сказать. Спасибо.
1. Ну на стадии прототипа оно может быть и допустимо, только вот зачем усложнять себе жизнь и создавать лиший рефакторинг на будущее?
2. Вольное наименование может как соответствовать методологии, так и абсолютно ей противоречить, так что сложно ответить. CSS Modules vs БЭМ vs inline CSS вопрос холиварного характера, поскольку у каждого подхода есть свои стороники и противники.
Илья Ростопка: Я думал CSS Modules стоит выше БЭМ, т.к. можно не учить (придумывать) наименование классов. Если конечно брать БЭМ только для нейминга и стиля написания css
К сожалению это криворучка писал) important используется уж в крайних случаях, когда срочно что то нужно пофиксить, а времени нет разбираться в чужом коде. и др оправданий нет)
React + scss совершенно нормально, ну и лучше конечно использовать css-moduls, не надо будет заморачиваться с БЭМом.
Путь твой в Webpack лежит, дабы не потеряться в зависимостях и выдавать конечные файлы без тонные подключенных модулей.)
В css ест такая штука, что класс ниже по приоритету, чем id. #id .class будет выше, чем просто .class - и чем длиннее цепочка - тем больше приоритет.)
Попробуй больше цепочку.)
Потому что important - это жесткое указание.)