Команда composes для классов в CSS modules в React

В этом уроке мы рассмотрим очень полезный прием для переиспользования CSS стилей одного класса в другом в CSS modules.

Вернемся к приложению buttons, которое мы делали на прошлых уроках. Заглянем в файл Buttons.module.css:

.btn1 { background-color: orange; border: 2px solid brown; color: white; } .btn2 { background-color: red; border: 2px solid green; color: yellow; } .btn3 { background-color: brown; border: 2px solid yellowgreen; color: orange; }

Предполжим, мы хотим, чтобы у всех кнопочек было одинаковое скругление и размер шрифта. Можно было бы, конечно, наплодить в каждом классе одинаковые свойства. Но благодаря команде composes из CSS modules, мы будем действовать по-другому.

Для начала создадим еще один класс, к примеру common-btn, в который поместим эти одинаковые свойства. А чтобы применить свойства из этого класса в других, нужно использовать в них синтаксис:

селектор { composes: название класса; }

Теперь код нашего Buttons.module.css будет выглядеть так:

.common-btn { font-size: 16px; border-radius: 3px; } .btn1 { composes: common-btn; background-color: orange; border: 2px solid brown; color: white; } .btn2 { composes: common-btn; background-color: red; border: 2px solid green; color: yellow; } .btn3 { composes: common-btn; background-color: brown; border: 2px solid yellowgreen; color: orange; }

Возьмите свое React приложение inputs, которое вы делали в задачах к прошлым урокам. Добавьте для всех инпутов парочку одинаковых CSS стилей с одинаковыми значениями. Создайте дополнительный класс, в котором будут написаны эти стили. С помощью composes растиражируйте их по всем остальным классам для инпутов.



Чат с GPT Компилятор