ustatic-css 0.0.1-b.2

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.
Files changed (99) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +202 -0
  3. package/dist/_ustatic-vars-Cx6_uZJY.cjs +1 -0
  4. package/dist/_ustatic-vars-D2NgNZNI.js +4 -0
  5. package/dist/css/modules/align.css +1 -0
  6. package/dist/css/modules/animations.css +1 -0
  7. package/dist/css/modules/base.css +1 -0
  8. package/dist/css/modules/bg.css +1 -0
  9. package/dist/css/modules/border.css +1 -0
  10. package/dist/css/modules/cursor.css +1 -0
  11. package/dist/css/modules/display.css +1 -0
  12. package/dist/css/modules/effects.css +1 -0
  13. package/dist/css/modules/filters.css +1 -0
  14. package/dist/css/modules/flexbox.css +1 -0
  15. package/dist/css/modules/grid.css +1 -0
  16. package/dist/css/modules/hide.css +1 -0
  17. package/dist/css/modules/interactivity.css +1 -0
  18. package/dist/css/modules/outline.css +1 -0
  19. package/dist/css/modules/position.css +1 -0
  20. package/dist/css/modules/scroll.css +1 -0
  21. package/dist/css/modules/sizing.css +1 -0
  22. package/dist/css/modules/spacing.css +1 -0
  23. package/dist/css/modules/typography.css +1 -0
  24. package/dist/css/ustatic-vars.css +1 -0
  25. package/dist/css/ustatic.css +1 -0
  26. package/dist/js/index.cjs.js +9 -0
  27. package/dist/js/index.es.js +175 -0
  28. package/dist/types/package.json.d.ts +102 -0
  29. package/dist/types/src/index.d.ts +4 -0
  30. package/dist/types/src/index.d.ts.map +1 -0
  31. package/dist/types/src/plugins/vue.plugin.d.ts +15 -0
  32. package/dist/types/src/plugins/vue.plugin.d.ts.map +1 -0
  33. package/dist/types/src/utils/styleLoader.d.ts +35 -0
  34. package/dist/types/src/utils/styleLoader.d.ts.map +1 -0
  35. package/dist/types/src/utils/styleloader.classmap.d.ts +2 -0
  36. package/dist/types/src/utils/styleloader.classmap.d.ts.map +1 -0
  37. package/dist/types/src/utils/useCssProperties.d.ts +17 -0
  38. package/dist/types/src/utils/useCssProperties.d.ts.map +1 -0
  39. package/dist/types/src/utils/useTokens.d.ts +21 -0
  40. package/dist/types/src/utils/useTokens.d.ts.map +1 -0
  41. package/dist/ustatic-index-1SZfqZon.js +4 -0
  42. package/dist/ustatic-index-QcZrD98s.cjs +1 -0
  43. package/package.json +99 -0
  44. package/src/css/assets/tokens/_ustatic-list.scss +460 -0
  45. package/src/css/assets/tokens/_ustatic-prefix.scss +1 -0
  46. package/src/css/assets/tokens/_ustatic-vars.scss +757 -0
  47. package/src/css/modules/align/index.scss +17 -0
  48. package/src/css/modules/animations/index.scss +151 -0
  49. package/src/css/modules/base/index.scss +406 -0
  50. package/src/css/modules/base/scrollbar.scss +21 -0
  51. package/src/css/modules/bg/index.scss +60 -0
  52. package/src/css/modules/border/border.scss +88 -0
  53. package/src/css/modules/border/divider.scss +38 -0
  54. package/src/css/modules/border/index.scss +3 -0
  55. package/src/css/modules/border/rounded.scss +70 -0
  56. package/src/css/modules/cursor/index.scss +33 -0
  57. package/src/css/modules/display/index.scss +19 -0
  58. package/src/css/modules/effects/index.scss +35 -0
  59. package/src/css/modules/filters/index.scss +34 -0
  60. package/src/css/modules/flexbox/flex.scss +132 -0
  61. package/src/css/modules/flexbox/gap.scss +15 -0
  62. package/src/css/modules/flexbox/index.scss +2 -0
  63. package/src/css/modules/grid/index.scss +94 -0
  64. package/src/css/modules/hide/index.scss +27 -0
  65. package/src/css/modules/interactivity/index.scss +28 -0
  66. package/src/css/modules/outline/index.scss +63 -0
  67. package/src/css/modules/position/index.scss +94 -0
  68. package/src/css/modules/scroll/index.scss +68 -0
  69. package/src/css/modules/sizing/index.scss +91 -0
  70. package/src/css/modules/spacing/index.scss +56 -0
  71. package/src/css/modules/typography/index.scss +139 -0
  72. package/src/css/tokens/base/animations/underline.yaml +5 -0
  73. package/src/css/tokens/base/border/color.yaml +17 -0
  74. package/src/css/tokens/base/border/radius.yaml +33 -0
  75. package/src/css/tokens/base/border/width.yaml +19 -0
  76. package/src/css/tokens/base/color/accent.yaml +416 -0
  77. package/src/css/tokens/base/color/base.yaml +492 -0
  78. package/src/css/tokens/base/color/opacity.yaml +4 -0
  79. package/src/css/tokens/base/color/variant.yaml +18 -0
  80. package/src/css/tokens/base/cursor/base.yaml +18 -0
  81. package/src/css/tokens/base/font/weight.yaml +23 -0
  82. package/src/css/tokens/base/grid/base.yaml +9 -0
  83. package/src/css/tokens/base/position/base.yaml +253 -0
  84. package/src/css/tokens/base/rotation/base.yaml +20 -0
  85. package/src/css/tokens/base/screen/base.yaml +10 -0
  86. package/src/css/tokens/base/scroll/base.yaml +16 -0
  87. package/src/css/tokens/base/size/base.yaml +16 -0
  88. package/src/css/tokens/base/text/color.yaml +20 -0
  89. package/src/css/tokens/base/text/size.yaml +37 -0
  90. package/src/css/tokens/base/visibility/base.yaml +61 -0
  91. package/src/css/ustatic-index.scss +24 -0
  92. package/src/css/utils/_token.scss +56 -0
  93. package/src/css/variables.scss +359 -0
  94. package/src/index.ts +6 -0
  95. package/src/plugins/vue.plugin.ts +77 -0
  96. package/src/utils/styleLoader.ts +257 -0
  97. package/src/utils/styleloader.classmap.ts +109 -0
  98. package/src/utils/useCssProperties.ts +152 -0
  99. package/src/utils/useTokens.ts +287 -0
@@ -0,0 +1,88 @@
1
+ @use "sass:list";
2
+ @import '../../utils/token';
3
+ @import '../../variables.scss';
4
+
5
+ @mixin border($direction, $bw: -1) {
6
+ @if $direction == "all" {
7
+ border-style: solid;
8
+ @if $bw == -1 {
9
+ border-width: token("base.border.width.def");
10
+ } @else {
11
+ border-width: token("base.border.width." + $bw);
12
+ }
13
+ } @else {
14
+ border-#{$direction}-style: solid;
15
+ @if $bw == -1 {
16
+ border-#{$direction}-width: token("base.border.width.def");
17
+ } @else {
18
+ border-#{$direction}-width: token("base.border.width." + $bw);
19
+ }
20
+ }
21
+ }
22
+
23
+ .border {
24
+ &-none {
25
+ border: 0;
26
+ }
27
+
28
+ @for $i from -1 through 5 {
29
+ @each $key, $value in $directions {
30
+ @if $key == "" {
31
+ @if $i == -1 {
32
+ @include border("all");
33
+ } @else {
34
+ &-#{$i} {
35
+ @include border("all", $i);
36
+ }
37
+ }
38
+ } @else {
39
+ &-#{$key} {
40
+ @each $subKey in $value {
41
+ @if $subKey == "" {
42
+ } @else {
43
+ @if $i == -1 {
44
+ @include border($subKey);
45
+ } @else {
46
+ &-#{$i} {
47
+ @include border($subKey, $i);
48
+ }
49
+ }
50
+ }
51
+ }
52
+ }
53
+ }
54
+ }
55
+ }
56
+
57
+ // Цвета границ для всех сторон
58
+ @each $name, $value in $palette-rgb {
59
+ &-#{"" + $name} {
60
+ border-color: token("base.color.border");
61
+ @include set-token("base.color.border", rgba($value, token("base.color.opacity")));
62
+ }
63
+ }
64
+
65
+ // Цвета границ по сторонам (border-t-red-500, border-b-blue-300, etc.)
66
+ @each $dirKey, $dirValue in $directions {
67
+ @if $dirKey != "" {
68
+ @each $subKey in $dirValue {
69
+ @if $subKey != "" {
70
+ @each $name, $value in $palette-rgb {
71
+ &-#{$dirKey}-#{"" + $name} {
72
+ border-#{$subKey}-color: token("base.color.border");
73
+ @include set-token("base.color.border", rgba($value, token("base.color.opacity")));
74
+ }
75
+ }
76
+ }
77
+ }
78
+ }
79
+ }
80
+
81
+ &-transparent {
82
+ border-color: token("base.color.transparent");
83
+ }
84
+
85
+ &-dashed {
86
+ border-style: dashed;
87
+ }
88
+ }
@@ -0,0 +1,38 @@
1
+ @use "sass:list";
2
+ @import '../../utils/token';
3
+ @import '../../variables.scss';
4
+
5
+ .divider {
6
+ &-x {
7
+ width: 100%;
8
+ height: 1px;
9
+ background-color: #000;
10
+ margin: 20px 0;
11
+
12
+ &--small {
13
+ margin: 10px 0;
14
+ }
15
+ &--medium {
16
+ margin: 20px 0;
17
+ }
18
+ &--large {
19
+ margin: 30px 0;
20
+ }
21
+ }
22
+ &-y {
23
+ width: 1px;
24
+ height: 100%;
25
+ background-color: #000;
26
+ margin: 20px 0;
27
+
28
+ &--small {
29
+ margin: 10px 0;
30
+ }
31
+ &--medium {
32
+ margin: 20px 0;
33
+ }
34
+ &--large {
35
+ margin: 30px 0;
36
+ }
37
+ }
38
+ }
@@ -0,0 +1,3 @@
1
+ @import './border.scss';
2
+ @import './rounded.scss';
3
+ @import './divider.scss';
@@ -0,0 +1,70 @@
1
+ @import '../../utils/token';
2
+ @import '../../variables.scss';
3
+
4
+ // @function rounded-position($position) {
5
+ // @return (
6
+ // t: "border-top-right-radius: #{$position}; border-top-left-radius: #{$position}",
7
+ // r: "border-top-right-radius: #{$position}; border-bottom-right-radius: #{$position}",
8
+ // b: "border-bottom-right-radius: #{$position}; border-bottom-left-radius: #{$position}",
9
+ // l: "border-top-left-radius: #{$position}; border-bottom-left-radius: #{$position}",
10
+
11
+ // tr: "border-top-right-radius: #{$position}",
12
+ // tl: "border-top-left-radius: #{$position}",
13
+ // br: "border-bottom-right-radius: #{$position}",
14
+ // bl: "border-bottom-left-radius: #{$position}"
15
+ // );
16
+ // }
17
+
18
+ .rounded {
19
+ @each $key, $value in $radiuses {
20
+ &-#{$key} {
21
+ @if $key == "base" {
22
+ border-radius: $value;
23
+ } @else {
24
+ border-radius: $value;
25
+ }
26
+ }
27
+
28
+ &-t-#{$key} {
29
+ border-top-right-radius: #{$value};
30
+ border-top-left-radius: #{$value};
31
+ }
32
+
33
+ &-r-#{$key} {
34
+ border-top-right-radius: #{$value};
35
+ border-bottom-right-radius: #{$value};
36
+ }
37
+
38
+ &-b-#{$key} {
39
+ border-bottom-right-radius: #{$value};
40
+ border-bottom-left-radius: #{$value};
41
+ }
42
+
43
+ &-l-#{$key} {
44
+ border-top-left-radius: #{$value};
45
+ border-bottom-left-radius: #{$value};
46
+ }
47
+
48
+ &-tr-#{$key} {
49
+ border-top-right-radius: #{$value};
50
+ }
51
+
52
+ &-tl-#{$key} {
53
+ border-top-left-radius: #{$value};
54
+ }
55
+
56
+ &-br-#{$key} {
57
+ border-bottom-right-radius: #{$value};
58
+ }
59
+
60
+ &-bl-#{$key} {
61
+ border-bottom-left-radius: #{$value};
62
+ }
63
+ }
64
+ &-none {
65
+ border-radius: 0;
66
+ }
67
+ }
68
+ .circle {
69
+ border-radius: token("base.border.rounded");
70
+ }
@@ -0,0 +1,33 @@
1
+ @import '../../utils/token';
2
+ @import '../../variables.scss';
3
+
4
+ .cursor {
5
+ &-pointer {
6
+ cursor: token("base.cursor.pointer");
7
+ }
8
+
9
+ &-move {
10
+ cursor: token("base.cursor.move");
11
+ }
12
+
13
+ &-default {
14
+ cursor: token("base.cursor.default");
15
+ }
16
+
17
+ &-disabled {
18
+ cursor: token("base.cursor.disabled");
19
+ }
20
+
21
+ &-resize-x {
22
+ cursor: token("base.cursor.resize.ew");
23
+ }
24
+ &-resize-y {
25
+ cursor: token("base.cursor.resize.ns");
26
+ }
27
+ &-wait {
28
+ cursor: token("base.cursor.wait");
29
+ }
30
+ &-help {
31
+ cursor: token("base.cursor.help");
32
+ }
33
+ }
@@ -0,0 +1,19 @@
1
+
2
+ .inline { display: inline }
3
+ .block { display: block }
4
+ .inline-block { display: inline-block }
5
+ .table { display: table }
6
+ .table-cell { display: table-cell }
7
+
8
+ .overflow-hidden { overflow: hidden }
9
+ .overflow-y-hidden { overflow-y: hidden }
10
+ .overflow-x-hidden { overflow-x: hidden }
11
+
12
+ .overflow-scroll { overflow: scroll }
13
+ .overflow-y-scroll { overflow-y: scroll }
14
+ .overflow-x-scroll { overflow-x: scroll }
15
+
16
+ .overflow-auto { overflow: auto }
17
+ .overflow-y-auto { overflow-y: auto }
18
+ .overflow-x-auto { overflow-x: auto }
19
+
@@ -0,0 +1,35 @@
1
+ @import '../../utils/token';
2
+ @import '../../variables.scss';
3
+
4
+ .opacity {
5
+ @each $step in $opacities {
6
+ &-#{$step} {
7
+ opacity: calc($step / 100);
8
+ }
9
+ }
10
+ }
11
+
12
+ .hover\:opacity {
13
+ @each $step in $opacities {
14
+ &-#{$step} {
15
+ &:hover {
16
+ opacity: calc($step / 100);
17
+ }
18
+ }
19
+ }
20
+ }
21
+
22
+ .required::after {
23
+ position: absolute;
24
+ margin-left: token("base.position.1");
25
+ color: token("base.color.variant.danger");
26
+ content: "*";
27
+ }
28
+
29
+ .rotate {
30
+ @each $key, $value in $rotations {
31
+ &-#{$key} {
32
+ transform: rotate(calc($value * 1deg));
33
+ }
34
+ }
35
+ }
@@ -0,0 +1,34 @@
1
+ @import '../../utils/token';
2
+ @import '../../variables.scss';
3
+
4
+ .grayscale {
5
+ filter: grayscale(100%);
6
+ -webkit-filter: grayscale(100%);
7
+ -moz-filter: grayscale(100%);
8
+ -ms-filter: grayscale(100%);
9
+ -o-filter: grayscale(100%);
10
+
11
+ &-0 {
12
+ filter: grayscale(0%);
13
+ -webkit-filter: grayscale(0%);
14
+ -moz-filter: grayscale(0%);
15
+ -ms-filter: grayscale(0%);
16
+ -o-filter: grayscale(0%);
17
+ }
18
+ }
19
+
20
+ .no-filter {
21
+ filter: none;
22
+ -webkit-filter: none;
23
+ -moz-filter: none;
24
+ -ms-filter: none;
25
+ -o-filter: none;
26
+
27
+ &:hover {
28
+ filter: none;
29
+ -webkit-filter: none;
30
+ -moz-filter: none;
31
+ -ms-filter: none;
32
+ -o-filter: none;
33
+ }
34
+ }
@@ -0,0 +1,132 @@
1
+ @import "../../variables";
2
+
3
+ $align-types: (
4
+ start: flex-start,
5
+ end: flex-end,
6
+ center: center,
7
+ baseline: baseline,
8
+ stretch: stretch
9
+ );
10
+
11
+ $content-types: (
12
+ start: flex-start,
13
+ end: flex-end,
14
+ center: center,
15
+ between: space-between,
16
+ around: space-around
17
+ );
18
+
19
+ .flex {
20
+ display: flex;
21
+
22
+ &-column, &-col {
23
+ flex-direction: column;
24
+
25
+ &-reverse {
26
+ flex-direction: column-reverse;
27
+ }
28
+ }
29
+
30
+ &-row {
31
+ flex-direction: row;
32
+
33
+ &-reverse {
34
+ flex-direction: row-reverse;
35
+ }
36
+ }
37
+
38
+ &-wrap {
39
+ flex-wrap: wrap;
40
+ }
41
+
42
+ &-nowrap {
43
+ flex-wrap: nowrap;
44
+ }
45
+
46
+ &-0 {
47
+ flex: 0 0 auto;
48
+ }
49
+
50
+ &-auto {
51
+ flex: 1 1 auto;
52
+ min-width: 0; /* 1 */
53
+ min-height: 0; /* 1 */
54
+ }
55
+
56
+ &-1 {
57
+ flex: 1;
58
+ }
59
+
60
+ &-none {
61
+ flex: none;
62
+ }
63
+ }
64
+
65
+ .items {
66
+ @each $key, $value in $align-types {
67
+ &-#{$key} {
68
+ align-items: $value;
69
+ }
70
+ }
71
+ }
72
+
73
+ .self {
74
+ @each $key, $value in $align-types {
75
+ &-#{$key} {
76
+ align-self: $value;
77
+ }
78
+ }
79
+ }
80
+
81
+ .justify {
82
+ @each $key, $value in $content-types {
83
+ &-#{$key} {
84
+ justify-content: $value;
85
+ }
86
+ }
87
+
88
+ &-evenly {
89
+ justify-content: space-evenly;
90
+ }
91
+ }
92
+
93
+ .content {
94
+ @each $key, $value in $align-types {
95
+ &-#{$key} {
96
+ align-content: $value;
97
+ }
98
+ }
99
+
100
+ &-stretch {
101
+ align-content: stretch;
102
+ }
103
+ }
104
+
105
+ .shrink {
106
+ flex-shrink: 1;
107
+
108
+ @for $i from 0 through 3 {
109
+ &-#{$i} {
110
+ flex-shrink: $i;
111
+ }
112
+ }
113
+ }
114
+
115
+ .grow {
116
+ flex-grow: 1;
117
+
118
+ @for $i from 0 through 3 {
119
+ &-#{$i} {
120
+ flex-grow: $i;
121
+ }
122
+ }
123
+ }
124
+
125
+ .order {
126
+ @each $key, $value in $flex-orders {
127
+ &-#{$key} {
128
+ order: $value;
129
+ }
130
+ }
131
+ }
132
+
@@ -0,0 +1,15 @@
1
+ @import "../../variables";
2
+
3
+ .gap {
4
+ @each $key, $value in $steps {
5
+ &-#{$key} {
6
+ gap: $value;
7
+ }
8
+ &-y-#{$key} {
9
+ row-gap: $value;
10
+ }
11
+ &-x-#{$key} {
12
+ column-gap: $value;
13
+ }
14
+ }
15
+ }
@@ -0,0 +1,2 @@
1
+ @import './flex.scss';
2
+ @import './gap.scss';
@@ -0,0 +1,94 @@
1
+ @import "../../variables";
2
+
3
+ $grid-template-columns: token("base.grid.template.columns") !default;
4
+ $grid-template-rows: token("base.grid.template.rows") !default;
5
+ $grid-template-colspan: token("base.grid.template.colspan") !default;
6
+
7
+ .grid {
8
+ display: grid;
9
+ }
10
+
11
+ .grid-container {
12
+ container-type: inline-size;
13
+ container-name: grid;
14
+ }
15
+
16
+ .grid-columns {
17
+ grid-template-columns: $grid-template-columns;
18
+
19
+ &--1fr-auto {
20
+ grid-template-columns: 1fr auto;
21
+ }
22
+
23
+ &--auto-1fr {
24
+ grid-template-columns: auto 1fr;
25
+ }
26
+
27
+ &--1fr-1fr {
28
+ grid-template-columns: 1fr 1fr;
29
+ }
30
+
31
+ &--1fr-2fr {
32
+ grid-template-columns: 1fr 2fr;
33
+ }
34
+
35
+ &--1fr-1fr-1fr {
36
+ grid-template-columns: repeat(3, 1fr);
37
+ }
38
+
39
+ $columns: ();
40
+ @for $i from 1 through 10 {
41
+ $columns: append($columns, $i);
42
+ }
43
+ $columns: append($columns, auto-fill);
44
+
45
+ @each $size, $sizeValue in $sizes {
46
+ @each $n, $nValue in $columns {
47
+ &--#{$n}-#{$size} {
48
+ grid-template-columns: repeat($n, minmax($sizeValue, 1fr));
49
+ @container grid (max-width: 1800px) {
50
+ // grid-template-columns: repeat(auto-fill, minmax($sizeValue, 1fr));
51
+ grid-template-columns: 1fr;
52
+ }
53
+ }
54
+ }
55
+ }
56
+ }
57
+
58
+ .grid-rows {
59
+ grid-template-rows: $grid-template-rows;
60
+
61
+ &--auto-1fr-auto {
62
+ grid-template-rows: auto 1fr auto;
63
+ }
64
+
65
+ &--1fr-auto {
66
+ grid-template-rows: 1fr auto;
67
+ }
68
+
69
+ &--auto-1fr {
70
+ grid-template-rows: auto 1fr;
71
+ }
72
+
73
+ &--1fr-1fr-1fr {
74
+ grid-template-rows: repeat(3, 1fr);
75
+ }
76
+
77
+ &--1fr-1fr {
78
+ grid-template-rows: 1fr 1fr;
79
+ }
80
+ }
81
+
82
+ .grid-col-span {
83
+ &-1 {
84
+ grid-column: span 1;
85
+ }
86
+
87
+ &-2 {
88
+ grid-column: span 2;
89
+ }
90
+
91
+ &-3 {
92
+ grid-column: span 3;
93
+ }
94
+ }
@@ -0,0 +1,27 @@
1
+ @import "../../variables";
2
+
3
+ .hide {
4
+ display: none !important;
5
+ }
6
+
7
+ @each $breakpoint, $width in $screens {
8
+ @if $breakpoint == 'xs' {
9
+ // Пропускаем `xs`, так как это начальный брейкпоинт.
10
+ } @else {
11
+ // Получаем предыдущий брейкпоинт в списке.
12
+ $prev-breakpoint: nth(nth(map-keys($screens), index(map-keys($screens), $breakpoint) - 1), 1);
13
+ $prev-width: map-get($screens, $prev-breakpoint);
14
+
15
+ // Создаем custom media query для текущего брейкпоинта.
16
+ @media (min-width: $prev-width) and (max-width: calc($width - 1px)) {
17
+ .hide-#{$breakpoint} { display: none !important }
18
+ }
19
+ }
20
+ }
21
+
22
+ // Генерация custom media для последнего брейкпоинта без max-width.
23
+ $last-breakpoint: nth(map-keys($screens), length(map-keys($screens)));
24
+ $last-width: map-get($screens, $last-breakpoint);
25
+ @media (min-width: $last-width) {
26
+ .hide-full { display: none !important }
27
+ }
@@ -0,0 +1,28 @@
1
+
2
+ .pointer-events {
3
+ &-none {
4
+ pointer-events: none;
5
+ }
6
+
7
+ &-auto {
8
+ pointer-events: auto;
9
+ }
10
+ }
11
+
12
+ .user-select {
13
+ &-none {
14
+ user-select: none;
15
+ }
16
+
17
+ &-auto {
18
+ user-select: auto;
19
+ }
20
+
21
+ &-all {
22
+ user-select: all;
23
+ }
24
+
25
+ &-text {
26
+ user-select: text;
27
+ }
28
+ }
@@ -0,0 +1,63 @@
1
+ @use "sass:list";
2
+ @import '../../utils/token';
3
+ @import '../../variables.scss';
4
+
5
+ .outline {
6
+ &-none {
7
+ outline: none;
8
+ }
9
+
10
+ // Только ширина
11
+ @each $size, $sizeValue in $sizes-short {
12
+ &-#{$size} {
13
+ outline-width: $sizeValue;
14
+ outline-style: solid;
15
+ }
16
+ }
17
+
18
+ // Только цвет
19
+ @each $color, $value in $palette-rgb {
20
+ &-#{"#{$color}"} {
21
+ outline-color: token("base.color.outline");
22
+ @include set-token("base.color.outline", rgba($value, token("base.color.opacity")));
23
+ }
24
+ }
25
+
26
+ &-style {
27
+ &--solid {
28
+ outline-style: solid;
29
+ }
30
+
31
+ &--dotted {
32
+ outline-style: dotted;
33
+ }
34
+
35
+ &--dashed {
36
+ outline-style: dashed;
37
+ }
38
+
39
+ &--groove {
40
+ outline-style: groove;
41
+ }
42
+
43
+ &--ridge {
44
+ outline-style: ridge;
45
+ }
46
+
47
+ &--inset {
48
+ outline-style: inset;
49
+ }
50
+
51
+ &--outset {
52
+ outline-style: outset;
53
+ }
54
+ }
55
+ }
56
+
57
+ @for $offsetStep from -10 through 10 {
58
+ $modifier: if($offsetStep < 0, "\-outline-offset", "outline-offset");
59
+ $value: abs($offsetStep);
60
+ .#{$modifier}-#{$value} {
61
+ outline-offset: #{$offsetStep}px;
62
+ }
63
+ }