- Где вы можете найти таблицы стилей и компилятор .scss для использования в Joomla 4?
- Предварительные условия
- Установите зависимости (пакеты)
- Как заново сгенерировать таблицы стилей CSS в Joomla 4
- Компиляция собственных файлов SCSS для вашего шаблона Joomla 4
- Разница CSS, SCSS и Sass
- Из существующего CSS в SCSS / импорт CSS-файлов
Большинство таблиц стилей по умолчанию Joomla 4.x написаны с использованием SCSS, а затем скомпилированы для создания CSS-файлов.
Где вы можете найти таблицы стилей и компилятор .scss для использования в Joomla 4?
Файлы ядра .scss
находятся в разных каталогах. В частности, вот эти файлыː
- templates/cassiopeia/scss/template.scss
- administrator/templates/atum/scss/bootstrap.scss
- administrator/templates/atum/scss/font-awesome.scss
- administrator/templates/atum/scss/template.scss
- administrator/templates/atum/scss/template-rtl.scss
- media/plg_installer_webinstaller/scss/client.scss
Сценарий генерации CSS, компилятор SCSS и другие аналогичные инструменты сборки находятся в каталоге build/
исходного кода Joomla 4, расположенного на GitHub. Обратитесь к Git for Coders для получения дополнительной информации об использовании GitHub. Каталог сборки доступен только из исходного кода Joomla, он не включен в официальный релиз Joomla.
Предварительные условия
Для компиляции ваших собственных файлов SCSS с помощью ядра Joomla 4 требуется, чтобы на вашем локальном компьютере был установлен Node.js. Для установки Node.js, пожалуйста, зайдите на Node.js официальный веб-сайт, загрузите соответствующую настройку для своей операционной системы и установите ее, следуя мастеру установки. NPM (Менеджер пакетов узлов) используется для управления и настройки среды тестирования JavaScript.
Установите зависимости (пакеты)
Откройте командную строку и перейдите в корневой каталог Joomla 4.x.
Выполните команду npm install
$ npm install
...
added 1354 packages in 193.687s
$
Это приведет к установке всех зависимостей в каталог /node_modules
. Если папка /node_modules
не существует, npm автоматически создаст папку. Это нормально, если вы видите некоторые предупреждения, но вы не должны видеть сообщение об ошибке.
Как заново сгенерировать таблицы стилей CSS в Joomla 4
Чтобы повторно сгенерировать все CSS-файлы из дистрибутива ядра Joomla, вам нужно будет выполнить сценарии генерации в качестве приложения CLI.
Все файлы scss ядра Joomla 4
Вы можете скомпилировать все основные css-файлы Joomla с помощью команды node build --compile css
. Напримерː
$ node build --compile-css
Prefixing for: last 1 version
Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.
template.css was updated.
Prefixing for: last 1 version
template-rtl.css was updated.
Prefixing for: last 1 version
font-awesome.css was updated.
Prefixing for: last 1 version
client.css was updated.
Prefixing for: last 1 version
bootstrap.css was updated.
Prefixing for: last 1 version
template.css was updated.
$
Все файлы в одном каталоге
Вы можете скомпилировать все файлы в одном каталоге с помощью командной строки build --compile-css путь-к-каталогу
. Например, node build --compile-css templates/cassiopeia/scss
.
$ node build --compile-css templates/cassiopeia/scss
Prefixing for: last 1 version
Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.
template.css was updated.
Один специальный файл
Вы можете скомпилировать один файл с помощью команды node build --compile-css путь-к-файлу
. Например, node build --compile-css templates/cassiopeia/scss/template.scss
.
$ node build --compile-css templates/cassiopeia/scss/template.scss
Prefixing for: last 1 version
Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.
template.css was updated.
Примечание
- Расширение файла
.scss
должно быть в нижнем регистре. - Файл css должен быть создан.
Компиляция собственных файлов SCSS для вашего шаблона Joomla 4
Чтобы скомпилировать файлы scss для вашего собственного шаблона, вам нужно будет сделать копию JOOMLA4/build/build-modules-js/compilecescss.js
напишите сценарий и настройте его в соответствии с вашей средой.
В качестве альтернативы вы можете использовать плагин компилятора SCSS, который автоматически компилирует ваши файлы .scss
при перезагрузке страницы. В каталоге расширений Joomla JED вы найдете плагин для этой целиː Joomlaǃ Extension Directory.
Больше альтернатив и инструментов вы можете найти на http://sass-lang.com/install
Компилятор SCSS, используемый для ядра Joomla 4.x, является node-sass. В ядре Joomla вы можете найти его в каталоге JOOMLA4/node_modules/node-sass
.
Разница CSS, SCSS и Sass
SCSS
или Sass
упрощает применение CSS
и определяет переменные. Это обеспечивает более четкое представление, меньшее количество кода и более простую ревизию за счет использования переменных.
CSS
С помощью CSS мы пишем код, как показано ниже:
#header {
margin: 0;
border: 1px solid blue;
}
#header p {
font-size: 14px;
color: blue;
}
#header a {
text-decoration: none;
}
Sass
Sass — это препроцессор CSS с улучшенным синтаксисом. Таблицы стилей в расширенном синтаксисе обрабатываются препроцессором и преобразуются в обычные таблицы стилей CSS.
Для SASS доступны два синтаксисаː SCSS
и Sass
.
SCSS
SCSS
используется в ядре Joomla. SCSS
— это расширение синтаксиса CSS.
$color: blue;
#header {
margin: 0;
border: 1px solid $color;
p {
color: $colorRed;
font: {
size: 14px;
}
}
a {
text-decoration: none;
}
}
Sass
Более старый синтаксис Sass
обеспечивает более лаконичный способ написания CSS.
$color: blue
#header
margin: 0
border: 1px solid $color
p
color: $colorRed
font:
size: 14px
a
text-decoration: none
Вы можете найти дополнительную информацию в документации Sass.
Из существующего CSS в SCSS / импорт CSS-файлов
Возможно, вы захотите добавить существующие CSS-файлы и классы в свой шаблон Cassiopeia с поддержкой SCSS или начать с того, что у вас есть. Все объявления CSS совместимы с SCSS, поэтому вы можете просто переименовать свои файлы .css
в .scss
, скомпилировать и использовать их. Затем вы можете шаг за шагом использовать функции, которые может предложить SCSS:
- Расширения языка, такие как переменные, вложенность и миксины.
- Множество полезных функций для управления цветами и другими значениями.
- Расширенные функции, такие как директивы управления для библиотек.
- Хорошо отформатированный, настраиваемый вывод.
Подробнее: https://sass-lang.com/
Обратите внимание: Если вы хотите настроить шаблон Cassiopeia, рекомендуется сделать копию шаблона и производить настройки уже в копии, чтобы обновления Joomla не перезаписывали ваши настройки.
Импортируйте файлы .css в формате .scss для вашего шаблона Joomla 4
Теперь давайте предположим, что вы хотите включить свои пользовательские файлы и проанализировать их компилятором SCSS — вам НЕ нужно переписывать файл .css
в SCSS, потому что простой файл .css
также работает. Единственное, что нужно сделать, это
- чтобы переименовать ваши файлы
.css
в.scss
и - добавить префикс
_
и - оператор
@import
в вышеупомянутые основныеtemplates/cassiopeia/scss/template.scss
Я предполагаю, что вы поместили свой пользовательский файл mystyles.css
, переименованный в _mystyles.scss
, в папку /templates/cassiopeia/scss
. Теперь вы открываете /templates/cassiopeia/scss/template.scss
и в нижней части файла ваш файл _mystyles.scss
, чтобы он переопределял существующие объявления:
// Bootstrap functions
@import "../../../media/vendor/bootstrap/scss/functions";
// Variables
@import "variables";
// Flying Focus
@import "../../../media/vendor/flying-focus-a11y/scss/flying-focus";
// Bootstrap
@import "../../../media/vendor/bootstrap/scss/variables";
@import "../../../media/vendor/bootstrap/scss/bootstrap";
// FontAwesome
@import "../../../media/vendor/font-awesome/scss/font-awesome";
// B/C for Icomoon
@import "../../../media/system/scss/icomoon";
// Alert
@import "../../../media/system/scss/jalert";
// Blocks
@import "blocks/global"; // Leave this first
@import "blocks/alerts";
@import "blocks/banner";
@import "blocks/demo-styling";
@import "blocks/footer";
@import "blocks/form";
@import "blocks/frontend-edit";
@import "blocks/header";
@import "blocks/icons";
@import "blocks/iframe";
@import "blocks/layout";
@import "blocks/modals";
@import "blocks/modifiers";
@import "blocks/utilities";
@import "blocks/css-grid"; // Last to allow fallback
// Vendor overrides
@import "vendor/awesomplete";
@import "vendor/bootstrap/buttons";
@import "vendor/bootstrap/card";
@import "vendor/bootstrap/custom-forms";
@import "vendor/bootstrap/collapse";
@import "vendor/bootstrap/dropdown";
@import "vendor/bootstrap/lists";
@import "vendor/bootstrap/modal";
@import "vendor/bootstrap/nav";
@import "vendor/bootstrap/pagination";
@import "vendor/bootstrap/table";
@import "vendor/chosen";
@import "vendor/dragula";
@import "vendor/minicolors";
@import "vendor/tinymce";
@import "mystyles";
Если вы теперь скомпилируете свой основной файл template.scss
, вы получите один основной template.css
, оптимизированный и минифицированный. Вы также сократили количество http-запросов, и сайт должен загружаться быстрее.
Перевод с английского официальной документации Joomla 4:
https://docs.joomla.org/J4.x:SCSS_and_Sass
Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)