@taiga-ui/styles 5.7.0-canary.da2a2ed → 5.8.0-canary.4405e2d

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.
@@ -43,6 +43,7 @@
43
43
  padding: 0.25rem;
44
44
  font: var(--tui-typography-body-l);
45
45
  font-weight: bold;
46
+ aspect-ratio: 1;
46
47
  opacity: 0.999; // Kick in hardware rendering layer to avoid artifacts on the edges
47
48
 
48
49
  .interactive({
@@ -133,7 +134,7 @@
133
134
  }
134
135
 
135
136
  &:not([data-shape='square']) {
136
- --t-radius: calc(var(--t-size) / 2);
137
+ --t-radius: calc(var(--t-size) / 2) !important;
137
138
  }
138
139
 
139
140
  &._initials {
@@ -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)));
@@ -116,7 +116,9 @@
116
116
  }
117
117
  }
118
118
 
119
- // hide an element visually without hiding it from screen readers
119
+ /**
120
+ * @deprecated remove in v6
121
+ */
120
122
  .sr-only() {
121
123
  position: absolute;
122
124
  clip: rect(1px, 1px, 1px, 1px);
@@ -165,5 +167,5 @@
165
167
  }
166
168
 
167
169
  .tui-mask(@x, @y, @r) {
168
- mask-image: radial-gradient(circle at @x @y, transparent @r, black @r);
170
+ mask-image: radial-gradient(circle at @x @y, transparent calc(@r - 0.5px), black @r);
169
171
  }
@@ -113,7 +113,9 @@
113
113
  }
114
114
  }
115
115
 
116
- // hide an element visually without hiding it from screen readers
116
+ /**
117
+ * @deprecated remove in v6
118
+ */
117
119
  @mixin sr-only() {
118
120
  position: absolute;
119
121
  clip: rect(1px, 1px, 1px, 1px);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taiga-ui/styles",
3
- "version": "5.7.0-canary.da2a2ed",
3
+ "version": "5.8.0-canary.4405e2d",
4
4
  "description": "Framework-agnostic package with styles for Taiga UI",
5
5
  "repository": {
6
6
  "type": "git",
@@ -25,6 +25,6 @@
25
25
  "./*": "./*"
26
26
  },
27
27
  "peerDependencies": {
28
- "@taiga-ui/design-tokens": "~0.301.0"
28
+ "@taiga-ui/design-tokens": "~0.302.0"
29
29
  }
30
30
  }
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);