_stylebase.styl

Глобальный медиатор стилей собирает не компилируемые /utils, компилируемые /core сущности и необходимые глобально кастомизации используемых сторонних модулей /libs (но, те которые позволяют это сделать без scoped - стоит разместить в SFC-обертках).

@/src/stylus/_stylebase.styl библиотеки:

// utils
@import "utils/_variables";
@import "utils/_placeholders";
@import "utils/_mixins";
@import "utils/_typography";

// core
@import "core/_base"; // normalize
@import "core/_animations";

// libs
// ...
1
2
3
4
5
6
7
8
9
10
11
12

Теперь можно использовать всю эту кухню на компонентах:

<style lang="stylus" scoped>
@import "~/src/stylus/_stylebase.styl";

...
</style>
1
2
3
4
5

Это можно назвать «глобальными стилями-невидимками», что-то такое - они, с одной стороны - участвуют в правильном оформлении везде, но, при этом, «их не видно». Мы предоставляем глобальные константы гайдлайна и всю прочую мощь препроцессора всем компонентным системам - библиотеке и всем ее «читателям».

Mixins and placeholders

UI Library Starter дает надежду на то, что в вашей разметке код будет полностью оптимальный и консистентный. Это способно сделать даже крупную систему из нескольких проектов базирующихся на одном визуальном языке - и полностью управляемой, и, в тоже время - гибкой.

DANGER

Не копируйте код кусками по компонентам - оптимизируйте очевидно одинаковые наборы в миксинах и плейсхолдерах!

@/src/stylus/utils/_placeholders.styl

// Project placeholders
//////////////////////////////////////////////////////
//////////////////////////////////////////////////////
//////////////////////////////////////////////////////

// Utilities
//////////////////////////////////////////////////////

$flex--center
  display flex
  align-items center
  justify-content center
1
2
3
4
5
6
7
8
9
10
11
12

Или вы можете делать примеси без параметров для того чтобы - забегая вперед (см. раздел Breakpoints) - такой же пассаж стал доступен внутри медиа-миксинов:

@/src/stylus/utils/_mixins.styl

// Utilities
//////////////////////////////////////////////////////
// Mixins without arguments duplicate placeholders,
// so it can be passed to media mixins

$flex--center()
  display flex
  align-items center
  justify-content center
1
2
3
4
5
6
7
8
9

Теперь:

.selector
  +$tablet()
    $flex--center()
1
2
3
Last Updated:
Contributors: ushliypakostnik