Командата composes за класове в CSS modules в React

В този урок ще разгледаме много полезна техника за повторно използване на CSS стилове от един клас в друг в CSS modules.

Да се върнем към приложението buttons, което правихме в предишните уроци. Да погледнем файла Buttons.module.css:

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, в който ще поставим тези еднакви свойства. И за да приложим свойствата от този клас в други, трябва да използваме в тях синтаксиса:

cssселектор {
  composes: име на клас;
}

Сега кодът на нашия Buttons.module.css ще изглежда така:

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;
}
Задание 1

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