@ws-serenity/sass-styling 1.2.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/sass/adaptive.scss +44 -0
- package/lib/sass/alignment.scss +61 -0
- package/lib/sass/keyframes.scss +1 -1
- package/lib/sass/styling.scss +10 -0
- package/lib/sass/textUtils.scss +18 -0
- package/package.json +1 -1
- package/readme.md +2 -2
package/lib/sass/adaptive.scss
CHANGED
|
@@ -9,3 +9,47 @@
|
|
|
9
9
|
@content;
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* при использовании основного механизма ввода можно без труда навести указатель на элемент
|
|
15
|
+
* e.g. desktop
|
|
16
|
+
*/
|
|
17
|
+
@mixin device-with-hover {
|
|
18
|
+
@media (hover: hover) {
|
|
19
|
+
@content;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* основной механизм ввода не позволяет навести указатель на элемент, или позволяет, но это не очень-то просто
|
|
25
|
+
* (например — для имитации наведения указателя на элемент используется длительное касание экрана)
|
|
26
|
+
* e.g. tablet, mobile
|
|
27
|
+
*/
|
|
28
|
+
@mixin device-without-hover {
|
|
29
|
+
@media (hover: none) {
|
|
30
|
+
@content;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* стили для пользователей, включивших в системе параметр
|
|
36
|
+
* минимизации движения или анимаций (accessibility)
|
|
37
|
+
*/
|
|
38
|
+
@mixin prefers-reduced-motion {
|
|
39
|
+
@media (prefers-reduced-motion: reduce) {
|
|
40
|
+
@content;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* touch-devices-friendly hover
|
|
46
|
+
* примененный hover-стиль будет работать только для устройств,
|
|
47
|
+
* которые полноценно поддерживают hover (e.g. desktop)
|
|
48
|
+
*/
|
|
49
|
+
@mixin hover-friendly {
|
|
50
|
+
@include device-with-hover {
|
|
51
|
+
&:hover {
|
|
52
|
+
@content;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
package/lib/sass/alignment.scss
CHANGED
|
@@ -38,6 +38,27 @@
|
|
|
38
38
|
bottom: 0;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
+
/**
|
|
42
|
+
* миксин для автоматической гернерации CSS Grid областей и классов
|
|
43
|
+
* на основе переданного grid-template-areas
|
|
44
|
+
*
|
|
45
|
+
* @param $grid-template-areas - строковое представление grid-областей
|
|
46
|
+
* строка или несколько строк, разделенные пробелом. допускается многострочная запись
|
|
47
|
+
* точка (.) обозначает пустую ячейку, класс для (.) не создается
|
|
48
|
+
* e.g.
|
|
49
|
+
* 'a b b . с с с'
|
|
50
|
+
*
|
|
51
|
+
* или
|
|
52
|
+
* 'a b b' '. с с с .'
|
|
53
|
+
*
|
|
54
|
+
* или
|
|
55
|
+
* 'a b b'
|
|
56
|
+
* '. с с с .'
|
|
57
|
+
*
|
|
58
|
+
* @param $isGlobal - управление скоупом (scope), в котором будут созданы классы
|
|
59
|
+
* false (по умолчанию) - создаются обычные CSS-классы
|
|
60
|
+
* true - глобальные классы через :global() (актуально для CSS Modules)
|
|
61
|
+
*/
|
|
41
62
|
@mixin grid-areas($grid-template-areas, $isGlobal:false) {
|
|
42
63
|
display: grid;
|
|
43
64
|
grid-template-areas: $grid-template-areas;
|
|
@@ -64,3 +85,43 @@
|
|
|
64
85
|
}
|
|
65
86
|
}
|
|
66
87
|
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* автоматическое проставление grid-areas дочерним элементам
|
|
91
|
+
* согласно переданного массива названий $grid-areas.
|
|
92
|
+
* удобно использовать, если элеметны рендерятся динамически
|
|
93
|
+
* и явно задать grid-area для каждого элемента не представляется возможным
|
|
94
|
+
*
|
|
95
|
+
* e.g.
|
|
96
|
+
* $grid-areas: a, b, c;
|
|
97
|
+
*
|
|
98
|
+
* .some-grid-class {
|
|
99
|
+
* @include set-children-grid-areas($grid-areas);
|
|
100
|
+
*
|
|
101
|
+
* grid-template-areas:
|
|
102
|
+
* 'a b'
|
|
103
|
+
* 'c c';
|
|
104
|
+
* }
|
|
105
|
+
*/
|
|
106
|
+
@mixin set-children-grid-areas($grid-areas) {
|
|
107
|
+
@for $i from 1 through length($grid-areas) {
|
|
108
|
+
> :nth-child(#{$i}) {
|
|
109
|
+
grid-area: nth($grid-areas, $i);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* автоматическое удаление проставленных grid-areas дочерним эл-там
|
|
116
|
+
* согласно переданного массива названий $grid-areas.
|
|
117
|
+
* убирает проставленное свойство grid-template-areas у grid-контейнера
|
|
118
|
+
*/
|
|
119
|
+
@mixin unset-children-grid-areas($grid-areas) {
|
|
120
|
+
@for $i from 1 through length($grid-areas) {
|
|
121
|
+
> :nth-child(#{$i}) {
|
|
122
|
+
grid-area: unset !important;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
grid-template-areas: initial;
|
|
127
|
+
}
|
package/lib/sass/keyframes.scss
CHANGED
|
@@ -23,7 +23,7 @@ $default-shimmer-color: rgba(255, 255, 255, 0.5);
|
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
/**
|
|
26
|
-
|
|
26
|
+
* Миксин для создания эффекта пульсации (осцилляции) прозрачности элемента
|
|
27
27
|
*/
|
|
28
28
|
// @formatter:off
|
|
29
29
|
@keyframes oscillating {
|
package/lib/sass/styling.scss
CHANGED
|
@@ -53,3 +53,13 @@
|
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
+
/**
|
|
57
|
+
* миксин для выставление стилей по кол-ву дочерних эл-тов
|
|
58
|
+
* @param $childrenNumber - количество дочерних элементов.
|
|
59
|
+
*/
|
|
60
|
+
// выставление стилей по кол-ву дочерних эл-тов
|
|
61
|
+
@mixin has-n-children($childrenNumber) {
|
|
62
|
+
&:has(> :nth-child(#{$childrenNumber}):last-child) {
|
|
63
|
+
@content;
|
|
64
|
+
}
|
|
65
|
+
}
|
package/lib/sass/textUtils.scss
CHANGED
|
@@ -17,3 +17,21 @@
|
|
|
17
17
|
overflow: hidden;
|
|
18
18
|
text-overflow: ellipsis;
|
|
19
19
|
}
|
|
20
|
+
|
|
21
|
+
%user-select-none {
|
|
22
|
+
-webkit-user-select: none;
|
|
23
|
+
-moz-user-select: none;
|
|
24
|
+
-ms-user-select: none;
|
|
25
|
+
user-select: none;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* миксин для регулирования возможности выделять текст
|
|
30
|
+
* @param $value - none, text, all, auto (default)
|
|
31
|
+
*/
|
|
32
|
+
@mixin user-select($value: auto) {
|
|
33
|
+
-webkit-user-select: $value;
|
|
34
|
+
-moz-user-select: $value;
|
|
35
|
+
-ms-user-select: $value;
|
|
36
|
+
user-select: $value;
|
|
37
|
+
}
|
package/package.json
CHANGED
package/readme.md
CHANGED
|
@@ -13,10 +13,10 @@
|
|
|
13
13
|
|
|
14
14
|
### Содержимое
|
|
15
15
|
- `adaptive` - миксины для адаптива
|
|
16
|
-
- `alignment` - размещение элементов (flex, margin-center
|
|
16
|
+
- `alignment` - размещение элементов (flex, margin-center, grid, ...)
|
|
17
17
|
- `functions` - полезные sass-функции
|
|
18
18
|
- `keyframes` - анимации
|
|
19
|
-
- `styling` - внешний вид (максимальное скругление, background-alpha)
|
|
19
|
+
- `styling` - внешний вид (максимальное скругление, background-alpha, ...)
|
|
20
20
|
- `svgUtils` - цвет и размер svg
|
|
21
21
|
- `textUtils` - оверфлоу текста
|
|
22
22
|
|