Вам следует просмотреть Добавление таблиц стилей (CSS) и Javascript (JS) в Друпал модуль и Друпал тема документы К сожалению, в одном есть информация, которой нет в другом, но Полагаю вся информация, относящаяся к определению библиотеки, т. е. созданию файла library.yml, относится как к модулям, так и к темам.
Глядя на mytheme.libraries.yml, я вижу «база», «компонент», «макет»,
«тема» и так далее. Эти обозначения представляют/делают что-либо в
упражняться?
Да, они делают вещи. Прежде всего, они изменяют порядок загрузки файлов (сначала загружаются файлы с более низким весом). Это также хороший способ организовать ваш CSS (эти ключи применимы только к CSS, а не к JS) концептуально, чтобы упростить поиск, отладку и исправление любых проблем или внесение изменений.
Из документов:
[основа, макет, компонент, состояние, ключи темы] указывают тип стиля, к которому принадлежит файл CSS.
Вы можете установить веса CSS с 5 различными уровнями стиля:
- base: сброс/нормализация CSS плюс стилизация элементов HTML. Ключ назначает вес
CSS_BASE = -200
- Макет: макрокомпоновка веб-страницы, включая любые сеточные системы. Ключ назначает вес
CSS_LAYOUT = -100
- компонент: дискретные, многократно используемые элементы пользовательского интерфейса. Ключ назначает вес
CSS_КОМПОНЕНТ = 0
- состояние: стили, связанные с изменениями компонентов на стороне клиента. Ключ назначает вес
CSS_STATE = 100
- тема: чисто визуальный стиль («внешний вид») для компонента. Ключ назначает вес
CSS_THEME = 200
Это определяется SMACSS стандарт. Так что здесь, если вы укажете тему
это означает, что файл CSS содержит стиль, связанный с темой, который
чистый внешний вид. Подробнее здесь. Вы не можете использовать другие клавиши, так как эти
вызовет строгие предупреждения.
Эти ключи не обеспечивают никакой условной загрузки файлов.Все они всегда загружаются при включенной библиотеке, ключи изменяют только порядок загрузки отдельных файлов. (Если вы используете агрегацию, все они будут в одном файле, но порядок будет сохранен.) Для условной загрузки файлов вам потребуется создать отдельные библиотеки (вы можете определить несколько библиотек в одном файле library.yml файл), а затем присоединяйте отдельные библиотеки только тогда, когда они вам нужны.
Есть несколько способов прикрепить библиотеку к странице, см. Присоединение библиотеки к страницам раздел документа модуля и темы, упомянутый выше.