@taiga-ui/styles 5.7.0 → 5.8.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.
@@ -20,24 +20,26 @@
20
20
  @bubble-shift: translate(calc(var(--tui-inline) * -@bubble-width), -@bubble-width);
21
21
  @ground-shift: translate(calc(var(--tui-inline) * -50%), -50%);
22
22
 
23
- .transition(~'inline-size, block-size, border, margin');
23
+ .transition(~'min-inline-size, grid-template-columns, block-size, border, margin, font', @tui-duration-fast);
24
24
  .button-clear();
25
25
 
26
26
  position: relative;
27
- display: flex;
28
- inline-size: var(--t-size);
27
+ display: grid;
28
+ isolation: isolate;
29
+ align-items: center;
30
+ grid-template-rows: 100%;
31
+ grid-template-columns: var(--t-size) 1fr;
32
+ min-inline-size: var(--t-size);
33
+ max-inline-size: 11.25rem;
29
34
  block-size: var(--t-size);
30
- align-items: stretch;
31
- flex-direction: column;
32
- justify-content: center;
33
35
  text-align: center;
34
- border-radius: 100%;
35
- font: var(--tui-typography-body-s);
36
+ border-radius: 100rem;
37
+ font: var(--tui-typography-ui-xs);
36
38
  font-weight: bold;
37
39
  box-sizing: border-box;
38
40
  color: var(--tui-text-primary-on-accent-2);
39
41
  background: var(--tui-background-accent-2);
40
- box-shadow: 0 0 0 0.125rem var(--tui-background-elevation-2);
42
+ box-shadow: 0 0 0 0.125rem var(--tui-background-elevation-1);
41
43
  border: 0 solid var(--tui-background-accent-2);
42
44
  transform: @ground-shift;
43
45
 
@@ -53,6 +55,17 @@
53
55
  }
54
56
  }
55
57
 
58
+ &:has([tuiPin]) {
59
+ border-color: currentColor;
60
+ background: var(--tui-background-elevation-1);
61
+ }
62
+
63
+ > *,
64
+ &::before,
65
+ &::after {
66
+ transition-duration: inherit !important;
67
+ }
68
+
56
69
  > input {
57
70
  .fullsize();
58
71
 
@@ -64,32 +77,113 @@
64
77
  max-block-size: 100%;
65
78
  box-sizing: border-box;
66
79
  border-radius: 100%;
67
- background: var(--tui-background-base);
80
+ background: var(--tui-background-elevation-1);
68
81
  }
69
82
 
70
- > tui-icon {
71
- .transition(~'inline-size, block-size');
83
+ > tui-icon:not([tuiBadge]) {
84
+ .transition(~'inline-size, font-size');
72
85
 
73
86
  font-size: 1.25rem;
74
- align-self: center;
87
+ block-size: 100%;
88
+ inline-size: 100%;
89
+ border-radius: 100%;
90
+
91
+ &::before {
92
+ .transition(font-size, inherit);
93
+ }
94
+ }
95
+
96
+ > [tuiPin] {
97
+ color: inherit;
98
+ border: 0.125rem solid;
99
+ font: inherit;
100
+ background: none;
101
+ transform: none;
102
+ box-shadow: none;
103
+ grid-template-columns: 100% 0fr;
104
+ }
105
+
106
+ > [tuiBadge] {
107
+ .transition(inset);
108
+
109
+ position: absolute;
110
+ inset-block-start: -0.25rem;
111
+ inset-inline-end: -0.25rem;
112
+ }
113
+
114
+ > [tuiTitle] {
115
+ .transition(~'opacity, margin');
116
+
117
+ position: static;
118
+ font: var(--tui-typography-ui-xs);
119
+ font-weight: bold;
120
+ color: var(--tui-text-primary);
121
+ margin-inline: 0.5rem 0.75rem;
122
+ gap: 0.125rem;
123
+ white-space: nowrap;
124
+
125
+ &::before {
126
+ .transition(mask-position, inherit);
127
+
128
+ content: '';
129
+ position: absolute;
130
+ inset: 0;
131
+ z-index: -1;
132
+ inset-inline-end: -1px;
133
+ background: var(--tui-background-elevation-1);
134
+ border-radius: 100rem;
135
+ mask-image: radial-gradient(
136
+ circle closest-corner at left center,
137
+ transparent calc(100% - 0.5px),
138
+ black calc(100%)
139
+ );
140
+ mask-position: calc(var(--t-size) / 2);
141
+ mask-repeat: no-repeat;
142
+ }
143
+
144
+ [tuiSubtitle] {
145
+ display: flex;
146
+ gap: 0.125rem;
147
+ font: var(--tui-typography-ui-2xs);
148
+ color: var(--tui-text-secondary);
149
+
150
+ tui-icon:not([tuiBadge]) {
151
+ font-size: 0.75rem;
152
+ }
153
+ }
75
154
  }
76
155
 
77
156
  &:has(:checked) {
78
157
  --t-size: 3.5rem;
79
158
 
80
- font: var(--tui-typography-body-m);
159
+ font: var(--tui-typography-body-l);
81
160
  font-weight: bold;
82
- border-width: 0;
161
+ grid-template-columns: var(--t-size) 0fr;
83
162
  margin-block-start: -2.75rem;
84
163
 
85
164
  > img {
86
165
  padding: 0.125rem;
87
166
  }
88
167
 
89
- > tui-icon {
168
+ tui-icon:not([tuiBadge]) {
90
169
  font-size: 2.125rem;
91
170
  }
92
171
 
172
+ > [tuiPin] {
173
+ border-color: transparent;
174
+ }
175
+
176
+ > [tuiBadge] {
177
+ inset-block-start: 0;
178
+ inset-inline-end: 0;
179
+ }
180
+
181
+ > [tuiTitle] {
182
+ pointer-events: none;
183
+ opacity: 0;
184
+ margin: 0;
185
+ }
186
+
93
187
  &::before {
94
188
  transform: scale(0.99) @bubble-shift;
95
189
  opacity: 1;
@@ -105,19 +199,34 @@
105
199
  &._open {
106
200
  --t-size: 3.5rem;
107
201
 
108
- font: var(--tui-typography-body-m);
202
+ font: var(--tui-typography-body-l);
109
203
  font-weight: bold;
110
- border-width: 0;
204
+ grid-template-columns: var(--t-size) 0fr;
111
205
  margin-block-start: -2.75rem;
112
206
 
113
207
  > img {
114
208
  padding: 0.125rem;
115
209
  }
116
210
 
117
- > tui-icon {
211
+ tui-icon:not([tuiBadge]) {
118
212
  font-size: 2.125rem;
119
213
  }
120
214
 
215
+ > [tuiPin] {
216
+ border-color: transparent;
217
+ }
218
+
219
+ > [tuiBadge] {
220
+ inset-block-start: 0;
221
+ inset-inline-end: 0;
222
+ }
223
+
224
+ > [tuiTitle] {
225
+ pointer-events: none;
226
+ opacity: 0;
227
+ margin: 0;
228
+ }
229
+
121
230
  &::before {
122
231
  transform: scale(0.99) @bubble-shift;
123
232
  opacity: 1;
@@ -134,6 +243,7 @@
134
243
 
135
244
  content: '';
136
245
  position: absolute;
246
+ z-index: -1;
137
247
  inset-block: 50% -0.625rem;
138
248
  inset-inline: 50% -0.25rem;
139
249
  box-sizing: border-box;
@@ -51,9 +51,12 @@ tui-textfield:where(*&) {
51
51
  &[tuiIcons] {
52
52
  &::before {
53
53
  z-index: 1;
54
+ block-size: var(--t-height);
54
55
  inline-size: 1.5rem;
55
56
  margin-inline-end: 1rem;
56
57
  pointer-events: none;
58
+ // Cancelling zoom so it does not shift label
59
+ zoom: 1;
57
60
  }
58
61
 
59
62
  &::after {
@@ -62,10 +65,6 @@ tui-textfield:where(*&) {
62
65
  cursor: pointer;
63
66
  margin-inline-start: calc(0.25rem - var(--t-padding));
64
67
  margin-inline-end: calc(-1 * var(--t-padding));
65
- }
66
-
67
- &::before,
68
- &::after {
69
68
  block-size: var(--t-height);
70
69
  // Compensating zoomed icons at high font-scaling
71
70
  max-block-size: calc(var(--t-height) * (1 - 0.2 * var(--t-zoom)));
@@ -218,7 +217,6 @@ tui-textfield:where(*&) {
218
217
  box-sizing: border-box;
219
218
  border-radius: inherit;
220
219
  border-width: 0;
221
- overscroll-behavior: none;
222
220
  padding-inline-start: calc(var(--t-start) + var(--t-padding));
223
221
  padding-inline-end: calc(var(--t-end) + var(--t-side) + var(--t-padding) + var(--t-space));
224
222
  white-space: nowrap;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taiga-ui/styles",
3
- "version": "5.7.0",
3
+ "version": "5.8.0",
4
4
  "description": "Framework-agnostic package with styles for Taiga UI",
5
5
  "repository": {
6
6
  "type": "git",
package/utils.less CHANGED
@@ -4,4 +4,5 @@
4
4
  @import 'mixins/slider.less';
5
5
  @import 'mixins/appearance.less';
6
6
  @import 'mixins/hitbox.less';
7
+ @import 'variables/duration.less';
7
8
  @import 'variables/media.less';
package/utils.scss CHANGED
@@ -4,4 +4,5 @@
4
4
  @import 'mixins/slider.scss';
5
5
  @import 'mixins/appearance.scss';
6
6
  @import 'mixins/hitbox.scss';
7
+ @import 'variables/duration.scss';
7
8
  @import 'variables/media.scss';
@@ -0,0 +1,4 @@
1
+ @tui-duration-slowest: ~'calc(var(--tui-duration) / 0.429)';
2
+ @tui-duration-slow: ~'calc(var(--tui-duration) / 0.6)';
3
+ @tui-duration-fast: ~'calc(var(--tui-duration) / 2)';
4
+ @tui-duration-fastest: ~'calc(var(--tui-duration) / 4)';
@@ -0,0 +1,4 @@
1
+ $tui-duration-slowest: calc(var(--tui-duration) / 0.429);
2
+ $tui-duration-slow: calc(var(--tui-duration) / 0.6);
3
+ $tui-duration-fast: calc(var(--tui-duration) / 2);
4
+ $tui-duration-fastest: calc(var(--tui-duration) / 4);