@oardi/css-utils 0.127.0 → 0.129.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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "package": "@oardi/css-utils",
3
- "version": "0.127.0",
3
+ "version": "0.129.0",
4
4
  "breakpoints": { "sm": "576px", "md": "768px", "lg": "992px", "xl": "1200px", "xxl": "1400px" },
5
5
  "utilities": {
6
6
  "Display": {
@@ -235,6 +235,19 @@
235
235
  },
236
236
  "Borders": {
237
237
  "families": [
238
+ {
239
+ "patterns": ["border-ring-{value}"],
240
+ "values": [
241
+ "accent",
242
+ "animated",
243
+ "error",
244
+ "glow",
245
+ "primary",
246
+ "secondary",
247
+ "success",
248
+ "warning"
249
+ ]
250
+ },
238
251
  {
239
252
  "patterns": ["border-{value}"],
240
253
  "values": [
@@ -249,6 +262,7 @@
249
262
  "e",
250
263
  "error",
251
264
  "primary",
265
+ "ring",
252
266
  "s",
253
267
  "secondary",
254
268
  "success",
@@ -367,7 +381,24 @@
367
381
  "950"
368
382
  ]
369
383
  },
370
- { "patterns": ["bg-opacity-{value}"], "values": ["10", "25", "50", "75"] },
384
+ {
385
+ "patterns": ["bg-opacity-{value}"],
386
+ "values": [
387
+ "0",
388
+ "10",
389
+ "100",
390
+ "20",
391
+ "25",
392
+ "30",
393
+ "40",
394
+ "50",
395
+ "60",
396
+ "70",
397
+ "75",
398
+ "80",
399
+ "90"
400
+ ]
401
+ },
371
402
  {
372
403
  "patterns": ["bg-{value}"],
373
404
  "values": [
@@ -3,7 +3,7 @@
3
3
  > Generated automatically. Do not edit manually.
4
4
 
5
5
  - Package: `@oardi/css-utils`
6
- - Version: `0.127.0`
6
+ - Version: `0.129.0`
7
7
  - Source: public SCSS entry point and utility configuration
8
8
 
9
9
  ## Usage guidance
@@ -192,7 +192,11 @@ Values: `0` | `1` | `2` | `3` | `4` | `5` | `first` | `last`
192
192
 
193
193
  ## Borders
194
194
 
195
- Values: `0` | `1` | `2` | `3` | `4` | `5` | `accent` | `b` | `e` | `error` | `primary` | `s` | `secondary` | `success` | `t` | `transparent` | `warning`
195
+ Values: `accent` | `animated` | `error` | `glow` | `primary` | `secondary` | `success` | `warning`
196
+
197
+ - `border-ring-{value}`
198
+
199
+ Values: `0` | `1` | `2` | `3` | `4` | `5` | `accent` | `b` | `e` | `error` | `primary` | `ring` | `s` | `secondary` | `success` | `t` | `transparent` | `warning`
196
200
 
197
201
  - `border-{value}`
198
202
 
@@ -268,7 +272,7 @@ Values: `100` | `150` | `200` | `250` | `300` | `350` | `400` | `450` | `50` | `
268
272
 
269
273
  - `bg-gray-{value}`
270
274
 
271
- Values: `10` | `25` | `50` | `75`
275
+ Values: `0` | `10` | `100` | `20` | `25` | `30` | `40` | `50` | `60` | `70` | `75` | `80` | `90`
272
276
 
273
277
  - `bg-opacity-{value}`
274
278
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oardi/css-utils",
3
- "version": "0.127.0",
3
+ "version": "0.129.0",
4
4
  "author": "Ardian Shala",
5
5
  "homepage": "https://css-utils.oardi.com",
6
6
  "description": "Powerful set of semantic css classes with support for breakpoints, directions and spacings",
package/scss/borders.scss CHANGED
@@ -4,6 +4,12 @@
4
4
 
5
5
  $borderWidths: 0, 1, 2, 3, 4, 5;
6
6
 
7
+ @property --border-ring-angle {
8
+ syntax: '<angle>';
9
+ inherits: false;
10
+ initial-value: 0deg;
11
+ }
12
+
7
13
  @layer utilities {
8
14
  .border {
9
15
  border: var(--border-width) solid var(--border-color);
@@ -40,4 +46,67 @@ $borderWidths: 0, 1, 2, 3, 4, 5;
40
46
  .border-transparent {
41
47
  --border-color: transparent;
42
48
  }
49
+
50
+ .border-ring {
51
+ --border-ring-color: currentColor;
52
+ --border-ring-width: 2px;
53
+ --border-ring-size: 90deg;
54
+ --border-ring-offset: 0px;
55
+ --border-ring-duration: 1.5s;
56
+ --border-ring-glow-blur: 6px;
57
+ --border-ring-glow-opacity: 0.8;
58
+
59
+ position: relative;
60
+
61
+ &::before,
62
+ &.border-ring-glow::after {
63
+ content: '';
64
+ position: absolute;
65
+ inset: calc(var(--border-ring-offset) * -1);
66
+ padding: var(--border-ring-width);
67
+ border-radius: inherit;
68
+ pointer-events: none;
69
+ background: conic-gradient(
70
+ from var(--border-ring-angle),
71
+ var(
72
+ --border-ring-stops,
73
+ var(--border-ring-color) 0 var(--border-ring-size),
74
+ transparent var(--border-ring-size)
75
+ )
76
+ );
77
+ mask:
78
+ linear-gradient(#000 0 0) content-box,
79
+ linear-gradient(#000 0 0);
80
+ mask-composite: exclude;
81
+ }
82
+
83
+ &.border-ring-glow::after {
84
+ filter: blur(var(--border-ring-glow-blur));
85
+ opacity: var(--border-ring-glow-opacity);
86
+ }
87
+ }
88
+
89
+ .border-ring-animated::before,
90
+ .border-ring-animated.border-ring-glow::after {
91
+ animation: border-ring-rotate var(--border-ring-duration, 1.5s) linear infinite;
92
+ }
93
+
94
+ @each $name, $value in map.get(theme.$theme, colors) {
95
+ .border-ring-#{$name} {
96
+ --border-ring-color: var(--#{$name});
97
+ }
98
+ }
99
+
100
+ @keyframes border-ring-rotate {
101
+ to {
102
+ --border-ring-angle: 360deg;
103
+ }
104
+ }
105
+
106
+ @media (prefers-reduced-motion: reduce) {
107
+ .border-ring-animated::before,
108
+ .border-ring-animated.border-ring-glow::after {
109
+ animation: none;
110
+ }
111
+ }
43
112
  }
@@ -1,5 +1,8 @@
1
1
  @use 'sass:color';
2
+ @use 'sass:list';
2
3
  @use 'sass:map';
4
+ @use 'sass:math';
5
+ @use 'sass:string';
3
6
  @use './layers.scss';
4
7
  @use './display.scss';
5
8
  @use './theme.scss' as theme;
@@ -40,6 +43,31 @@ $-inset-properties: (
40
43
 
41
44
  $-overflow-wrap-values: normal, break-word, anywhere;
42
45
 
46
+ $-background-opacities: (
47
+ 0: 0,
48
+ 10: 0.1,
49
+ 20: 0.2,
50
+ 25: 0.25,
51
+ 30: 0.3,
52
+ 40: 0.4,
53
+ 50: 0.5,
54
+ 60: 0.6,
55
+ 70: 0.7,
56
+ 75: 0.75,
57
+ 80: 0.8,
58
+ 90: 0.9,
59
+ 100: 1,
60
+ );
61
+
62
+ $-background-opacity-selectors: ();
63
+ @each $percentage, $opacity in $-background-opacities {
64
+ $-background-opacity-selectors: list.append(
65
+ $-background-opacity-selectors,
66
+ string.unquote('.bg-opacity-#{$percentage}'),
67
+ $separator: comma
68
+ );
69
+ }
70
+
43
71
  // Guard the dynamic value: a var() declaration can otherwise become invalid only
44
72
  // at computed-value time, when an earlier color declaration cannot rescue it.
45
73
  @mixin -background-foreground($background, $fallback) {
@@ -63,7 +91,7 @@ $-overflow-wrap-values: normal, break-word, anywhere;
63
91
  @supports (color: contrast-color(white)) {
64
92
  background-color: rgb(from #{$background} r g b / var(--bg-opacity));
65
93
 
66
- &:where(.bg-opacity-10, .bg-opacity-25, .bg-opacity-50, .bg-opacity-75) {
94
+ &:where(#{$-background-opacity-selectors}) {
67
95
  --bg-opacity-backdrop: inherit;
68
96
  --bg-opacity-composite: color-mix(
69
97
  in srgb,
@@ -76,8 +104,7 @@ $-overflow-wrap-values: normal, break-word, anywhere;
76
104
  fill: currentcolor;
77
105
  }
78
106
 
79
- :where(.bg-opacity-10, .bg-opacity-25, .bg-opacity-50, .bg-opacity-75)
80
- > &:where(.bg-opacity-10, .bg-opacity-25, .bg-opacity-50, .bg-opacity-75) {
107
+ :where(#{$-background-opacity-selectors}) > &:where(#{$-background-opacity-selectors}) {
81
108
  --bg-opacity-rendered: inherit;
82
109
  --bg-opacity-composite: color-mix(
83
110
  in srgb,
@@ -163,24 +190,11 @@ $-overflow-wrap-values: normal, break-word, anywhere;
163
190
  @include -background-utility(var(--bg-active), var(--text-color));
164
191
  }
165
192
 
166
- .bg-opacity-10 {
167
- --bg-opacity: 0.1;
168
- --bg-opacity-percentage: 10%;
169
- }
170
-
171
- .bg-opacity-25 {
172
- --bg-opacity: 0.25;
173
- --bg-opacity-percentage: 25%;
174
- }
175
-
176
- .bg-opacity-50 {
177
- --bg-opacity: 0.5;
178
- --bg-opacity-percentage: 50%;
179
- }
180
-
181
- .bg-opacity-75 {
182
- --bg-opacity: 0.75;
183
- --bg-opacity-percentage: 75%;
193
+ @each $percentage, $opacity in $-background-opacities {
194
+ .bg-opacity-#{$percentage} {
195
+ --bg-opacity: #{$opacity};
196
+ --bg-opacity-percentage: #{math.percentage($opacity)};
197
+ }
184
198
  }
185
199
 
186
200
  .img-responsive {