# Проект
Расположение файлов проекта: source/scss/project
.
Проект состоит из набора основных конфигурационных файлов и является ungic.project sass модулем.
Основные задачи проекта:
- предоставление общего функционала при работе с компонентами,
- создание общего стиля проекта,
- переопределение конфигураций и стилей компонентов.
Структура проекта:
- themes, обязательное присутствие темы по умолчанию - темы проекта.
- config.scss, опциональный - конфигурационный файл
- properties.scss, опциональный - CSS свойства для стилизации компонентов.
- config-over.scss, опциональный - служит для переопределения конфигураций (config.scss) компонентов.
- properties-over.scss, опциональный - служит для переопределения properties компонентов.
# Конфигурация проекта (config.scss)
Опциональный файл
Содержит общую конфигурацию проекта. Данный файл, может содержать любые конфиг. значения проекта, доступ к которым можно получить из любого компонента с помощью включения ungic.project модуля.
TIP
Для получения доступа к конфигурации проекта из компонента, следует включить ungic.project модуль проекта и использовать config метод:
// project/config.scss
$available-theme-colors: (third, sumptuous); // Добавили доп. доступные цвета тем.
$grid-columns: 12;
// components/mygrid/render.scss
@use "ungic.project" as project;
@debug project.config(grid-columns); // 12
# CSS свойства (properties.scss)
Опциональный файл
Данный файл участвует в процессе стилизации компонентов, содержит список переменных в виде CSS свойств со значениями по умолчанию, наследуется каждым компонентом проекта.
# config-over.scss
Данный файл отвечает за переопределение конфигураций компонентов, он включается для каждого компонента и принимает следующие значения:
$cid: null !default;
$config: () !default;
после чего, мы можем изменить входные данные отталкиваясь от CID компонента
// Изменяем исходные параметры конкретного helloworld компонента.
@if($cid == helloworld) {
$config: map.merge($config, (param: 1));
}
тем самым, мы изменим конфигурацию helloworld компонента не затрагивая его файлы.
# properties-over.scss
Данный файл отвечает за переопределение properties компонентов, он включается для каждого компонента и принимает следующие значения:
$cid: null !default;
$properties: () !default;
после чего, мы можем изменить входные данные отталкиваясь от CID компонента
// Изменяем исходные параметры конкретного helloworld компонента.
@if($cid == helloworld) {
$properties: map.merge($properties, (font-size: 18px));
}
Ссылки по теме:
← Файловая система Темы →