griffincss-utils 0.21.4 → 0.22.1

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.
@@ -17,7 +17,7 @@ $gr-text-sizes: (
17
17
  4xl: 2.25rem,
18
18
  5xl: 3rem,
19
19
  6xl: 3.75rem
20
- );
20
+ ) !default;
21
21
 
22
22
  @each $name, $size in $gr-text-sizes {
23
23
  .gr-text-#{$name} { font-size: $size; }
@@ -45,7 +45,7 @@ $gr-text-rel-steps: (
45
45
  xl: 4px,
46
46
  2xl: 6px,
47
47
  3xl: 8px
48
- );
48
+ ) !default;
49
49
 
50
50
  @each $gr-name, $gr-delta in $gr-text-rel-steps {
51
51
  .gr-text-rel-#{$gr-name} {
@@ -70,19 +70,17 @@ $gr-weights: (
70
70
  "bold": 700,
71
71
  "extrabold": 800,
72
72
  "black": 900
73
- );
73
+ ) !default;
74
74
 
75
75
  @each $name, $weight in $gr-weights {
76
76
  .gr-font-#{$name} { font-weight: $weight; }
77
77
  }
78
78
 
79
79
  // Text alignment
80
- // left/right буквальны и остаются такими: их выбирают, когда сторона
81
- // действительно нужна физическая. Разворот по направлению письма даёт
82
- // пара start/end — в LTR она совпадает с left/right, в RTL меняется местами.
83
- .gr-text-left { text-align: left; }
80
+ // Стороны — только логические: start — начало строки, end — конец,
81
+ // в RTL они меняются местами сами. Физические left/right удалены
82
+ // Этапом 36 вместе с остальными односторонними классами.
84
83
  .gr-text-center { text-align: center; }
85
- .gr-text-right { text-align: right; }
86
84
  .gr-text-justify { text-align: justify; }
87
85
  .gr-text-start { text-align: start; }
88
86
  .gr-text-end { text-align: end; }
@@ -99,7 +97,7 @@ $gr-leading: (
99
97
  normal: 1.5,
100
98
  relaxed: 1.625,
101
99
  loose: 2
102
- );
100
+ ) !default;
103
101
 
104
102
  @each $name, $value in $gr-leading {
105
103
  .gr-leading-#{$name} { line-height: $value; }
@@ -189,9 +187,7 @@ $gr-leading: (
189
187
  }
190
188
 
191
189
  // Text alignment responsive
192
- .gr-text-left#{$suffix} { text-align: left; }
193
190
  .gr-text-center#{$suffix} { text-align: center; }
194
- .gr-text-right#{$suffix} { text-align: right; }
195
191
  .gr-text-justify#{$suffix} { text-align: justify; }
196
192
  .gr-text-start#{$suffix} { text-align: start; }
197
193
  .gr-text-end#{$suffix} { text-align: end; }
@@ -1,11 +1,18 @@
1
1
  // Griffincss Utils — версия, ограниченная областью .griffin
2
2
  // Утилитарные классы действуют только внутри элементов с классом .griffin,
3
3
  // что позволяет подключать библиотеку в чужую разметку без конфликтов.
4
- // Токены (из griffincss-core) объявляются вне @scope: :root должен остаться глобальным.
4
+ // Токены (из griffincss-core) объявляются вне области: :root должен остаться глобальным.
5
5
  //
6
- // Слой тот же, что и у обычной сборки, — griffincss.utils.
7
- //
8
- // Требует поддержки CSS @scope (Chrome 118+, Safari 17.4+, Firefox 128+).
6
+ // Слой тот же, что и у обычной сборки, — griffincss.utils.//
7
+ // Область задаётся префиксом :where(.griffin), а не правилом @scope.
8
+ // Вес у них одинаковый — нулевой: неявный :scope внутри @scope
9
+ // специфичности не добавляет, и :where() не добавляет тоже, поэтому
10
+ // scoped-сборка остаётся каскадным двойником обычной. Разница в пороге
11
+ // браузеров: @scope требует Chrome 118, Safari 17.4 и Firefox 146,
12
+ // а :where() — Chrome 88, Safari 14 и Firefox 78, то есть ниже
13
+ // каскадных слоёв, на которых стоит вся библиотека. Файл, который
14
+ // встраивают в чужую разметку, не вправе быть самым требовательным
15
+ // в наборе.
9
16
 
10
17
  @use 'sass:meta';
11
18
  @layer griffincss.reset, griffincss.core, griffincss.ui, griffincss.utils, griffincss.style;
@@ -14,24 +21,28 @@
14
21
  @layer griffincss.utils {
15
22
  @include meta.load-css('griffincss-core/scss/tokens');
16
23
 
17
- // Тема — тоже вне @scope: атрибут data-gr-theme стоит на <html>,
24
+ // Тема — тоже вне области: атрибут data-gr-theme стоит на <html>,
18
25
  // то есть заведомо снаружи области .griffin.
19
26
  @include meta.load-css('griffincss-core/scss/theme');
20
27
 
21
- // @keyframes внутри @scope недействительны — подключаются вне области.
28
+ // @keyframes — вне области: имя анимации ищется глобально, префикс
29
+ // области к нему неприменим.
22
30
  @include meta.load-css('keyframes');
23
31
 
24
- @scope (.griffin) {
32
+ :where(.griffin) {
25
33
  @include meta.load-css('animations');
26
34
  @include meta.load-css('border-radius');
27
35
  @include meta.load-css('borders');
28
36
  @include meta.load-css('colors');
29
37
  @include meta.load-css('effects');
38
+ @include meta.load-css('filters');
39
+ @include meta.load-css('gradients');
30
40
  @include meta.load-css('interactivity');
31
41
  @include meta.load-css('position');
32
42
  @include meta.load-css('shadows');
33
43
  @include meta.load-css('sizing');
34
44
  @include meta.load-css('spacing');
45
+ @include meta.load-css('transforms');
35
46
  @include meta.load-css('typography');
36
47
  @include meta.load-css('visibility');
37
48
  }
@@ -28,11 +28,14 @@
28
28
  @include meta.load-css('borders');
29
29
  @include meta.load-css('colors');
30
30
  @include meta.load-css('effects');
31
+ @include meta.load-css('filters');
32
+ @include meta.load-css('gradients');
31
33
  @include meta.load-css('interactivity');
32
34
  @include meta.load-css('position');
33
35
  @include meta.load-css('shadows');
34
36
  @include meta.load-css('sizing');
35
37
  @include meta.load-css('spacing');
38
+ @include meta.load-css('transforms');
36
39
  @include meta.load-css('typography');
37
40
  @include meta.load-css('visibility');
38
41
  }
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Griffincss Utils — Runtime v0.21.4
2
+ * Griffincss Utils — Runtime v0.22.1
3
3
  * Достраивает то, чего статический CSS выразить не может.
4
4
  * Пишется руками и не компилируется — правится этот файл.
5
5
  */
@@ -23,7 +23,7 @@
23
23
  })(function () {
24
24
  'use strict';
25
25
 
26
- var VERSION = '0.21.4';
26
+ var VERSION = '0.22.1';
27
27
 
28
28
  // Таблица правил выводится из SCSS-карт скриптом scripts/sync-rule-table.mjs.
29
29
  // Правьте карты в SCSS, а не этот блок: npm run sync -- --fix перепишет его.
@@ -275,6 +275,14 @@
275
275
  // а `.gr-text-white` — цвет, и `.gr-text-[13px]` пришлось бы угадывать.
276
276
  // Угадывать рантайм не будет.
277
277
  //
278
+ // Физических односторонних свойств в таблице нет с Этапа 36: таблица
279
+ // повторяет статические классы один в один, а статические удалены.
280
+ // Привязку к строке произвольным значением дают gr-start-/gr-end- —
281
+ // логическая пара, заведённая взамен gr-left-/gr-right- тем же этапом:
282
+ // удаление без пары забрало бы возможность, а не перевело её. Верх
283
+ // и низ (mt/mb, pt/pb, top/bottom) — физические по устройству
284
+ // и остаются.
285
+ //
278
286
  // Запись единая — `свойство:{}` в каждой строке, даже там, где
279
287
  // объявление одно. Короткая форма замерена и отвергнута: gzip
280
288
  // повторение съедает сам, и выигрыш в 11 Б не стоит второй формы
@@ -282,18 +290,14 @@
282
290
  var PROPS = {
283
291
  'gr-m-': 'margin:{}',
284
292
  'gr-mt-': 'margin-top:{}',
285
- 'gr-mr-': 'margin-right:{}',
286
293
  'gr-mb-': 'margin-bottom:{}',
287
- 'gr-ml-': 'margin-left:{}',
288
294
  'gr-ms-': 'margin-inline-start:{}',
289
295
  'gr-me-': 'margin-inline-end:{}',
290
296
  'gr-mx-': 'margin-inline:{}',
291
297
  'gr-my-': 'margin-top:{};margin-bottom:{}',
292
298
  'gr-p-': '--gr-p:{};padding:var(--gr-p)',
293
299
  'gr-pt-': 'padding-top:{}',
294
- 'gr-pr-': 'padding-right:{}',
295
300
  'gr-pb-': 'padding-bottom:{}',
296
- 'gr-pl-': 'padding-left:{}',
297
301
  'gr-ps-': 'padding-inline-start:{}',
298
302
  'gr-pe-': 'padding-inline-end:{}',
299
303
  'gr-px-': 'padding-inline:{}',
@@ -307,9 +311,9 @@
307
311
  'gr-min-h-': 'min-height:{}',
308
312
  'gr-max-h-': 'max-height:{}',
309
313
  'gr-top-': 'top:{}',
310
- 'gr-right-': 'right:{}',
311
314
  'gr-bottom-': 'bottom:{}',
312
- 'gr-left-': 'left:{}',
315
+ 'gr-start-': 'inset-inline-start:{}',
316
+ 'gr-end-': 'inset-inline-end:{}',
313
317
  'gr-inset-': 'inset:{}',
314
318
  'gr-z-': 'z-index:{}'
315
319
  };