@newlogic-digital/ui 3.0.1 → 3.1.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.
Files changed (113) hide show
  1. package/README.md +8 -12
  2. package/gulpfile.js +16 -168
  3. package/package.json +13 -8
  4. package/src/emails/email.css +15 -9
  5. package/src/emails/email.twig +7 -7
  6. package/src/icons.svg +32 -0
  7. package/src/main.json +14 -27
  8. package/src/scripts/Components/+.js +2 -2
  9. package/src/scripts/Components/CookieConsent.js +66 -64
  10. package/src/scripts/Components/Form.js +28 -21
  11. package/src/scripts/Layout/+.js +2 -1
  12. package/src/scripts/Layout/Header.js +18 -0
  13. package/src/scripts/Layout/Main.js +49 -45
  14. package/src/scripts/Libraries/+.js +12 -10
  15. package/src/scripts/Libraries/Anchor.js +18 -43
  16. package/src/scripts/Libraries/CookieConsent.js +37 -58
  17. package/src/scripts/Libraries/Dialog.js +56 -55
  18. package/src/scripts/Libraries/Drawer.js +23 -23
  19. package/src/scripts/Libraries/NativeSlider.js +86 -86
  20. package/src/scripts/Libraries/ReCaptcha.js +20 -18
  21. package/src/scripts/Libraries/Ripple.js +16 -32
  22. package/src/scripts/Libraries/Stimulus.js +30 -34
  23. package/src/scripts/Libraries/Swup.js +47 -50
  24. package/src/scripts/Libraries/Tabs.js +12 -18
  25. package/src/scripts/Libraries/Tippy.js +118 -0
  26. package/src/scripts/Ui/+.js +5 -3
  27. package/src/scripts/Ui/Checkbox.js +19 -0
  28. package/src/scripts/Ui/Input.js +188 -161
  29. package/src/scripts/Ui/Radio.js +23 -0
  30. package/src/scripts/Ui/Select.js +64 -37
  31. package/src/scripts/Ui/Text.js +25 -0
  32. package/src/scripts/Utils/Functions/+.js +6 -6
  33. package/src/scripts/Utils/Functions/dataValue.js +28 -25
  34. package/src/scripts/Utils/Functions/importScript.js +9 -11
  35. package/src/scripts/Utils/Functions/importStyle.js +18 -5
  36. package/src/scripts/Utils/Functions/inView.js +19 -21
  37. package/src/scripts/Utils/Functions/loadStimulus.js +22 -20
  38. package/src/scripts/Utils/cdn.js +6 -4
  39. package/src/scripts/Utils/global.js +10 -33
  40. package/src/scripts/main.js +6 -6
  41. package/src/styles/Components/CookieConsent.css +40 -179
  42. package/src/styles/Components/Dialog/Default.css +12 -15
  43. package/src/styles/Components/Form/CookieConsent.css +7 -12
  44. package/src/styles/Components/Item/+.css +1 -0
  45. package/src/styles/Layout/+.css +2 -0
  46. package/src/{templates/Components/Dialogs/.gitkeep → styles/Layout/Header.css} +0 -0
  47. package/src/styles/Layout/Main.css +28 -63
  48. package/src/styles/Layout/Nav.css +43 -0
  49. package/src/styles/Libraries/+.css +1 -1
  50. package/src/styles/Libraries/Datepicker.css +85 -39
  51. package/src/styles/Libraries/Dialog.css +6 -5
  52. package/src/styles/Libraries/Drawer.css +15 -15
  53. package/src/styles/Libraries/Hint.css +29 -23
  54. package/src/styles/Libraries/Lazysizes.css +2 -1
  55. package/src/styles/Libraries/NativeSlider.css +19 -18
  56. package/src/styles/Libraries/Ripple.css +8 -5
  57. package/src/styles/Libraries/Tabs.css +4 -4
  58. package/src/styles/Libraries/Tippy.css +87 -0
  59. package/src/styles/Sections/+.css +1 -0
  60. package/src/styles/Ui/+.css +5 -1
  61. package/src/styles/Ui/Badge.css +33 -19
  62. package/src/styles/Ui/Btn.css +80 -53
  63. package/src/styles/Ui/Checkbox.css +80 -41
  64. package/src/styles/Ui/Dropdown.css +5 -0
  65. package/src/styles/Ui/Heading.css +12 -12
  66. package/src/styles/Ui/Icon.css +27 -8
  67. package/src/styles/Ui/Image.css +23 -0
  68. package/src/styles/Ui/Input.css +295 -220
  69. package/src/styles/Ui/Label.css +14 -0
  70. package/src/styles/Ui/Link.css +3 -3
  71. package/src/styles/Ui/Notice.css +14 -16
  72. package/src/styles/Ui/Progress.css +10 -21
  73. package/src/styles/Ui/Radio.css +3 -8
  74. package/src/styles/Ui/Select.css +63 -112
  75. package/src/styles/Ui/Switch.css +70 -0
  76. package/src/styles/Ui/{Wsw.css → Text.css} +61 -80
  77. package/src/styles/Ui/Title.css +8 -4
  78. package/src/styles/Utils/default.css +75 -67
  79. package/src/styles/Utils/icons.css +9 -0
  80. package/src/styles/Utils/keyframes.css +182 -0
  81. package/src/styles/Utils/normalize.css +223 -0
  82. package/src/styles/Utils/print.css +1 -0
  83. package/src/styles/Utils/tailwind/base.css +15 -0
  84. package/src/styles/Utils/tailwind/gutters.css +264 -263
  85. package/src/styles/Utils/theme/main.css +24 -21
  86. package/src/styles/Utils/vars.css +58 -35
  87. package/src/styles/Utils/vendor.css +1 -2
  88. package/src/styles/main.css +6 -3
  89. package/src/styles/tailwind.css +1 -4
  90. package/src/templates/Components/CookieConsent.twig +30 -0
  91. package/src/templates/Components/Dialogs/Basic.twig +7 -3
  92. package/src/templates/Layout/Header.twig +42 -0
  93. package/src/templates/Layout/Main.twig +47 -64
  94. package/src/templates/Sections/Gdpr.twig +64 -0
  95. package/src/templates/Sections/Ui.twig +2104 -0
  96. package/src/templates/dialog-basic.twig +2 -2
  97. package/src/templates/gdpr.json +11 -0
  98. package/src/templates/index.json +8 -2
  99. package/src/templates/json-tippy.twig +16 -0
  100. package/src/templates/ui.json +11 -0
  101. package/CHANGELOG +0 -231
  102. package/src/icons/selection.json +0 -1
  103. package/src/icons/style.css +0 -171
  104. package/src/icons/variables.css +0 -31
  105. package/src/scripts/Ui/Wsw.js +0 -25
  106. package/src/scripts/Utils/Functions/bodyLoaded.js +0 -12
  107. package/src/styles/Libraries/Animate.css +0 -184
  108. package/src/styles/Utils/reference.css +0 -2
  109. package/src/styles/Utils/tailwind/content.css +0 -24
  110. package/src/styles/Utils/theme/vars.css +0 -19
  111. package/src/styles/preload.css +0 -29
  112. package/src/templates/Layout/Preload.twig +0 -21
  113. package/src/templates/Sections/.gitkeep +0 -0
@@ -1,15 +1,21 @@
1
1
  .ui-btn {
2
- --ui-btn-width: 2.375rem;
2
+ --ui-btn-width: auto;
3
+ --ui-btn-height: 2.375rem;
3
4
  --ui-btn-py: 0.375rem;
4
5
  --ui-btn-px: 1rem;
5
6
  --ui-btn-size: 0.875rem;
7
+ --ui-btn-radius: var(--radius);
6
8
  --ui-btn-weight: var(--font-medium);
7
- --ui-btn-bg: var(--color-primary);
8
- --ui-btn-color: var(--color-light);
9
+ --ui-btn-bg-opacity: var(--tw-bg-opacity, 1);
10
+ --ui-btn-text-opacity: var(--tw-text-opacity, 1);
11
+ --ui-btn-bg: rgb(var(--color-accent) / var(--ui-btn-bg-opacity));
12
+ --ui-btn-color: rgb(var(--color-light) / var(--ui-btn-text-opacity));
9
13
  --ui-btn-hover-opacity: 0.2;
14
+ --ui-btn-outline-width: 2px;
10
15
  --ui-btn-outline-opacity: 0.5;
11
16
  --ui-btn-icon-size: 1.125rem;
12
- --ui-btn-icon-offset: calc((var(--ui-btn-py) / 1) * -1);
17
+ --ui-btn-icon-offset: calc((var(--ui-btn-py) / 1) * -1);
18
+
13
19
  display: inline-flex;
14
20
  align-items: center;
15
21
  text-align: center;
@@ -19,39 +25,52 @@
19
25
  position: relative;
20
26
  z-index: 1;
21
27
  white-space: nowrap;
28
+ flex-shrink: 0;
22
29
  font-size: var(--ui-btn-size);
23
30
  font-weight: var(--ui-btn-weight);
24
- height: var(--ui-btn-width);
31
+ width: var(--ui-btn-width);
32
+ height: var(--ui-btn-height);
25
33
  padding: var(--ui-btn-py) var(--ui-btn-px);
26
- border-radius: var(--radius);
34
+ border-radius: var(--ui-btn-radius);
27
35
  transition: var(--transition-opacity), var(--transition-background);
28
- background-color: rgb(var(--ui-btn-bg));
29
- color: rgb(var(--ui-btn-color));
36
+ background-color: var(--ui-btn-bg);
37
+ color: var(--ui-btn-color);
38
+
39
+ @nest .dark &.bg-default {
40
+ --ui-btn-color: rgb(var(--color-dark));
41
+ }
30
42
 
31
- @nest .dark .bg-default& {
32
- --ui-btn-color: var(--color-dark);
43
+ &:--theme-light {
44
+ --ui-btn-color: rgb(var(--color-light) / var(--tw-text-opacity, 1));
33
45
  }
34
46
 
35
- &:before {
47
+ &:--theme-dark {
48
+ --ui-btn-color: rgb(var(--color-dark) / var(--tw-text-opacity, 1));
49
+ }
50
+
51
+ &::before {
36
52
  position: absolute;
37
53
  inset: 0;
38
54
  width: 100%;
39
55
  height: 100%;
40
56
  content: "";
41
- background-color: currentColor;
57
+ background-color: var(--ui-btn-color);
42
58
  z-index: -1;
43
59
  opacity: 0;
44
60
  transition: var(--transition-opacity);
45
61
 
46
- @nest .no-touch :hover&, [data-state="active"]& {
62
+ @nest .no-touch :is(:hover, :focus)&, :is(:--state-active)& {
47
63
  opacity: var(--ui-btn-hover-opacity);
48
64
  }
49
65
  }
50
66
 
51
- & > span {
52
- &[class^="icon"] {
53
- font-size: var(--ui-btn-icon-size);
54
- }
67
+ & > svg {
68
+ width: 1em;
69
+ height: 1em;
70
+ }
71
+
72
+ & > [class^="icon"] {
73
+ font-size: var(--ui-btn-icon-size);
55
74
 
56
75
  &.icon-l {
57
76
  &:not([class*="mr-"]) {
@@ -73,62 +92,64 @@
73
92
  &[disabled] {
74
93
  pointer-events: none;
75
94
 
76
- &:before {
95
+ &::before {
77
96
  opacity: 0.5;
78
97
  }
79
98
  }
80
99
 
81
- &[data-type*="outline"] {
82
- --ui-btn-bg: transparent;
83
- --ui-btn-color: var(--color-primary);
84
- --ui-btn-hover-opacity: 0.05;
100
+ &:--type-outline {
101
+ --ui-btn-color: currentColor;
102
+ --ui-btn-hover-opacity: 0.1;
103
+
104
+ background-color: transparent;
105
+
106
+ &::before {
107
+ background-color: var(--ui-btn-bg);
108
+ }
85
109
 
86
- &:after {
110
+ &::after {
87
111
  position: absolute;
88
112
  inset: 0;
89
113
  width: 100%;
90
114
  height: 100%;
91
115
  content: "";
92
116
  background-color: transparent;
93
- border: 1px solid currentColor;
117
+ border: var(--ui-btn-outline-width) solid var(--ui-btn-bg);
94
118
  box-sizing: border-box;
95
119
  opacity: var(--ui-btn-outline-opacity);
96
- border-radius: var(--radius);
120
+ border-radius: var(--ui-btn-radius);
97
121
  }
98
122
  }
99
123
 
100
- &[data-type^="square"], &[data-type^="circle"] {
124
+ &:--type-square, &:--type-circle {
101
125
  --ui-btn-py: var(--ui-btn-py);
102
- width: var(--ui-btn-width);
126
+ --ui-btn-width: var(--ui-btn-height);
103
127
  }
104
128
 
105
- &[data-type^="circle"] {
129
+ &:--type-circle {
106
130
  border-radius: 50%;
107
131
  }
108
132
 
109
- &[data-size="lg"] {
133
+ &:--size-lg {
110
134
  --ui-btn-icon-size: 1.5rem;
111
- --ui-btn-width: 3rem;
135
+ --ui-btn-height: 3rem;
112
136
  --ui-btn-px: 1.25rem;
113
137
  }
114
138
 
115
- &[data-state="loading"] {
139
+ &:--state-loading {
116
140
  pointer-events: none;
141
+ color: var(--ui-btn-bg);
117
142
 
118
- & > span {
119
- opacity: 0;
120
- }
121
-
122
- &:before {
143
+ &::before {
123
144
  z-index: 1;
124
145
  width: 1rem;
125
146
  height: 1rem;
126
147
  content: "";
127
148
  background-color: transparent;
128
- border: 2px solid currentColor;
149
+ border: 2px solid var(--ui-btn-color);
129
150
  border-right-color: transparent;
130
151
  border-radius: 50%;
131
- animation: load 0.45s infinite linear;
152
+ animation: spin 0.45s infinite linear;
132
153
  position: absolute;
133
154
  margin-left: -0.625rem;
134
155
  margin-top: -0.625rem;
@@ -138,17 +159,17 @@
138
159
  }
139
160
  }
140
161
 
141
- @media (--media-400) {
142
- &[data-type*="m:square"], &[data-type*="m:circle"] {
162
+ @media (--media-m) {
163
+ &:--type-square-m, &:--type-circle-m {
143
164
  --ui-btn-py: var(--ui-btn-py);
144
- width: var(--ui-btn-width);
165
+ --ui-btn-width: var(--ui-btn-height);
145
166
 
146
- & > span {
167
+ & > * {
147
168
  margin: 0 !important;
148
169
  }
149
170
  }
150
171
 
151
- &[data-type*="m:circle"] {
172
+ &:--type-circle-m {
152
173
  border-radius: 50%;
153
174
  }
154
175
  }
@@ -158,24 +179,30 @@
158
179
  display: flex;
159
180
 
160
181
  & .ui-btn {
161
- &:not(:first-of-type) {
162
- box-shadow: -1px 0 rgba(var(--ui-btn-color),var(--ui-btn-hover-opacity));
182
+ &:not(:last-of-type) {
183
+ &, &::after {
184
+ border-top-right-radius: 0;
185
+ border-bottom-right-radius: 0;
186
+ }
187
+ }
163
188
 
164
- &, &:after {
189
+ &:not(:first-of-type) {
190
+ &, &::after {
165
191
  border-top-left-radius: 0;
166
192
  border-bottom-left-radius: 0;
167
193
  }
168
194
 
169
- &:after {
195
+ &::after {
170
196
  border-left: 0;
171
197
  }
172
- }
173
198
 
174
- &:not(:last-of-type) {
175
- &, &:after {
176
- border-top-right-radius: 0;
177
- border-bottom-right-radius: 0;
199
+ &, &:--theme-light {
200
+ box-shadow: -1px 0 rgb(var(--color-light) / var(--ui-btn-hover-opacity));
201
+ }
202
+
203
+ &:--theme-dark {
204
+ box-shadow: -1px 0 rgb(var(--color-dark) / var(--ui-btn-hover-opacity));
178
205
  }
179
206
  }
180
207
  }
181
- }
208
+ }
@@ -1,50 +1,74 @@
1
1
  .ui-checkbox, .ui-radio {
2
2
  --ui-checkbox-width: 1.25rem;
3
3
  --ui-checkbox-size: 0.875rem;
4
- --ui-checkbox-bg: var(--color-background);
5
4
  --ui-checkbox-bg-opacity: 0.1;
6
- --ui-checkbox-border-color: var(--color-default);
5
+ --ui-checkbox-bg-raw: var(--color-background);
7
6
  --ui-checkbox-border-opacity: 0.3;
8
- --ui-checkbox-checked-bg: var(--color-primary);
9
- --ui-checkbox-checked-fg: var(--color-light);
7
+ --ui-checkbox-border-color-raw: var(--color-current);
8
+ --ui-checkbox-checked-bg: rgb(var(--ui-checkbox-checked-bg-raw));
9
+ --ui-checkbox-checked-bg-raw: var(--color-accent);
10
+ --ui-checkbox-checked-fg: rgb(var(--color-light));
11
+ --ui-checkbox-color: currentColor;
12
+ --ui-checkbox-radius: 0.375rem;
13
+ --ui-checkbox-icon: var(--icon-check);
14
+ --ui-checkbox-icon-size: 1.125rem;
15
+
16
+ transition: var(--transition-color);
10
17
  display: inline-flex;
11
18
  align-self: flex-start;
12
19
  position: relative;
13
20
  user-select: none;
14
21
  font-size: var(--ui-checkbox-size);
15
22
  z-index: 1;
23
+ color: var(--ui-checkbox-color);
16
24
 
17
25
  @nest .text-light & {
18
- --ui-checkbox-border-color: var(--color-light);
26
+ --ui-checkbox-border-color-raw: var(--color-light);
27
+ }
28
+
29
+ &:--theme-light {
30
+ --ui-checkbox-checked-fg: rgb(var(--color-light));
31
+ }
32
+
33
+ &:--theme-dark {
34
+ --ui-checkbox-checked-fg: rgb(var(--color-dark));
35
+ }
36
+
37
+ &:--state-invalid {
38
+ --ui-checkbox-border-color-raw: var(--color-error);
39
+ --ui-checkbox-color: rgb(var(--color-error));
19
40
  }
20
41
 
21
42
  & input {
22
43
  position: relative;
23
44
  display: inline-flex;
24
- -moz-appearance: none;
25
45
  appearance: none;
26
46
  height: var(--ui-checkbox-width);
27
47
  width: var(--ui-checkbox-width);
28
- background-color: rgba(var(--ui-checkbox-bg), var(--ui-checkbox-bg-opacity));
29
- border: 1px solid rgba(var(--ui-checkbox-border-color), var(--ui-checkbox-border-opacity));
30
- border-radius: var(--radius);
48
+ background-color: rgb(var(--ui-checkbox-bg-raw) / var(--ui-checkbox-bg-opacity));
49
+ border: 1px solid rgb(var(--ui-checkbox-border-color-raw) / var(--ui-checkbox-border-opacity));
50
+ border-radius: var(--ui-checkbox-radius);
31
51
  cursor: pointer;
32
52
  outline: none;
33
53
  justify-content: center;
34
54
  align-items: center;
35
- transition: var(--transition-border), var(--transition-background);
55
+ transition: var(--transition-border), var(--transition-background), var(--transition-shadow);
36
56
 
37
- &:checked {
38
- --ui-checkbox-border-opacity: 0;
39
-
40
- &:not([class*="checked:bg"]) {
41
- background-color: rgb(var(--ui-checkbox-checked-bg));
42
- }
43
-
44
- &:before {
45
- opacity: 1;
46
- transform: scale(1);
47
- }
57
+ &::before {
58
+ line-height: var(--ui-checkbox-icon-size);
59
+ font-size: var(--ui-checkbox-icon-size);
60
+ text-indent: 0;
61
+ display: block;
62
+ transition: var(--transition-color), var(--transition-opacity), var(--transition-transform);
63
+ color: var(--ui-checkbox-checked-fg);
64
+ content: "";
65
+ background-color: currentColor;
66
+ mask: var(--ui-checkbox-icon);
67
+ opacity: 0;
68
+ transform: scale(0);
69
+ will-change: transform;
70
+ width: 1em;
71
+ height: 1em;
48
72
  }
49
73
 
50
74
  &:not(:only-child) {
@@ -56,31 +80,46 @@
56
80
  }
57
81
  }
58
82
 
59
- &:before {
60
- @mixin iconfont;
61
- line-height: 1.125rem;
62
- font-size: 1.125rem;
63
- text-indent: 0;
64
- display: block;
65
- transition: var(--transition-color), var(--transition-opacity), var(--transition-transform);
66
- color: rgb(var(--ui-checkbox-checked-fg));
67
- content: var(--icon-checkbox-filled);
68
- opacity: 0;
69
- transform: scale(0);
70
- will-change: transform;
83
+ &:focus, &:hover {
84
+ --ui-checkbox-bg-raw: var(--ui-checkbox-checked-bg-raw);
85
+ --ui-checkbox-border-color-raw: var(--ui-checkbox-checked-bg-raw);
86
+ --ui-checkbox-border-opacity: 0.75;
87
+ --ui-checkbox-bg-opacity: 0.1;
88
+ }
89
+
90
+ &:checked {
91
+ --ui-checkbox-border-opacity: 0;
92
+
93
+ background-color: var(--ui-checkbox-checked-bg);
94
+
95
+ &:focus {
96
+ box-shadow:
97
+ 0 0 0 0 rgb(var(--color-current)),
98
+ 0 0 0 3px rgb(var(--ui-checkbox-checked-bg-raw) / 0.15),
99
+ 0 1px 2px 0 rgb(var(--color-current) / 0.05);
100
+
101
+ @nest .dark & {
102
+ box-shadow:
103
+ 0 0 0 0 rgb(var(--color-current)),
104
+ 0 0 0 3px rgb(var(--ui-checkbox-checked-bg-raw) / 0.3),
105
+ 0 1px 2px 0 rgb(var(--color-current) / 0.05);
106
+ }
107
+ }
108
+
109
+ &::before {
110
+ opacity: 1;
111
+ transform: scale(1);
112
+ }
71
113
  }
72
114
  }
73
115
 
74
116
  & a {
75
117
  text-decoration: underline;
76
- transition: var(--transition-color);
118
+ transition: var(--transition-opacity);
119
+ color: rgb(var(--color-accent));
77
120
 
78
- &:not([class*="text-"]) {
79
- color: rgb(var(--color-primary));
80
-
81
- @nest .no-touch &[href]:hover {
82
- color: rgba(var(--color-primary), 0.8);
83
- }
121
+ @nest .no-touch &[href]:hover {
122
+ opacity: 0.8;
84
123
  }
85
124
  }
86
- }
125
+ }
@@ -0,0 +1,5 @@
1
+ .ui-dropdown {
2
+ padding: 1.25rem 1.5rem;
3
+ overflow: hidden;
4
+ max-width: 22rem;
5
+ }
@@ -1,21 +1,21 @@
1
1
  .ui-heading {
2
+ --ui-heading-size: 1.5rem;
3
+ --ui-heading-size-line: 0.5rem;
4
+
2
5
  display: block;
3
6
  font-weight: var(--font-bold);
4
- line-height: 1.15;
5
-
6
- &:not([data-size]) {
7
- font-size: 1.5rem;
8
- }
7
+ font-size: var(--ui-heading-size);
8
+ line-height: calc(var(--ui-heading-size) + var(--ui-heading-size-line));
9
9
 
10
- &[data-size^="lg"] {
11
- font-size: 1.625rem;
10
+ &:--size-lg {
11
+ --ui-heading-size: 1.75rem;
12
12
 
13
- @media (--media-min-768) {
14
- font-size: 2rem;
13
+ @media (--media-t) {
14
+ --ui-heading-size: 2rem;
15
15
  }
16
16
  }
17
17
 
18
- &[data-size^="sm"] {
19
- font-size: 1.125rem;
18
+ &:--size-sm {
19
+ --ui-heading-size: 1.25rem;
20
20
  }
21
- }
21
+ }
@@ -1,14 +1,33 @@
1
1
  .ui-icon {
2
+ --ui-icon-hover-opacity: 0.7;
3
+ --ui-icon-size: 1.25rem;
4
+
2
5
  display: inline-flex;
3
- font-size: 1.25rem;
6
+ position: relative;
7
+ font-size: var(--ui-icon-size);
8
+
9
+ &, & svg {
10
+ width: 1em;
11
+ height: 1em;
12
+ }
4
13
 
5
- &[class*="icon-"], & [class*="icon-"] {
6
- &:before {
7
- transition: var(--transition-opacity);
14
+ & > * {
15
+ transition: var(--transition-opacity);
8
16
 
9
- @nest .no-touch [href]:hover&, .no-touch button:hover& {
10
- opacity: 0.8;
11
- }
17
+ @nest .no-touch :is([href]:hover, button:hover)& {
18
+ opacity: var(--ui-icon-hover-opacity);
12
19
  }
13
20
  }
14
- }
21
+ }
22
+
23
+ .ui-icon-text {
24
+ --ui-icon-hover-opacity: 0.7;
25
+
26
+ display: inline-flex;
27
+ align-items: center;
28
+ transition: var(--transition-opacity), var(--transition-color);
29
+
30
+ @nest .no-touch &:is([href]:hover, button:hover) {
31
+ opacity: var(--ui-icon-hover-opacity);
32
+ }
33
+ }
@@ -0,0 +1,23 @@
1
+ .ui-image {
2
+ position: relative;
3
+
4
+ &:not(.bg-transparent) {
5
+ background-color: rgb(var(--color-background-100));
6
+ }
7
+
8
+ &::before {
9
+ content: "";
10
+ display: block;
11
+ }
12
+
13
+ & > * {
14
+ position: absolute;
15
+ inset: 0;
16
+ width: 100%;
17
+ height: 100%;
18
+ }
19
+
20
+ @nest picture& > img {
21
+ object-fit: cover;
22
+ }
23
+ }