@tui/design-system 1.11.0 → 1.13.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.
@@ -16,125 +16,216 @@ $uilib-icon-button-included: false !default;
16
16
 
17
17
  @mixin uilib-icon-button-master() {
18
18
  .uilib-icon-button {
19
+ --uilib-icon-button-small-offset: calc(((var(--uilib-icon-button-size-small) - var(--uilib-icon-size-xsmall)) / 2) * -1);
20
+ --uilib-icon-button-medium-offset: calc(((var(--uilib-icon-button-size-medium) - var(--uilib-icon-size-medium)) / 2) * -1);
21
+ --uilib-icon-button-large-offset: calc(((var(--uilib-icon-button-size-large) - var(--uilib-icon-size-xlarge)) / 2) * -1);
22
+
19
23
  position: relative;
20
24
 
21
25
  display: inline-flex;
22
26
  flex-flow: row nowrap;
23
- justify-content: center;
27
+ gap: 0;
28
+ justify-content: flex-end;
24
29
  align-items: center;
25
30
 
26
- width: var(--uilib-icon-button-size-medium);
27
31
  padding: 0;
28
- aspect-ratio: 1/1;
29
32
 
30
- color: var(--uilib-icon-button-primary-color);
33
+ color: var(--uilib-icon-button-text-color);
31
34
  font: var(--uilib-typography-label-medium);
32
35
  text-decoration: none;
33
36
 
34
- border-radius: var(--uilib-icon-button-radius);
37
+ border: 0;
35
38
 
36
- background: var(--uilib-icon-button-primary-bg-color);
39
+ background: transparent;
37
40
 
38
41
  cursor: pointer;
39
42
 
40
43
  appearance: none;
41
44
 
42
- @media (prefers-reduced-motion: no-preference) {
43
- transition:
44
- border-color var(--uilib-motion-timing-inout) var(--uilib-motion-duration-medium),
45
- background-color var(--uilib-motion-timing-inout) var(--uilib-motion-duration-medium),
46
- color var(--uilib-motion-timing-inout) var(--uilib-motion-duration-medium),
47
- transform var(--uilib-motion-timing-inout) var(--uilib-motion-duration-medium);
45
+ &::after {
46
+ content: '';
47
+
48
+ order: 2;
49
+
50
+ flex-grow: 0;
51
+ flex-shrink: 0;
52
+
53
+ width: var(--uilib-icon-button-size-medium);
54
+ padding: 0;
55
+ aspect-ratio: 1/1;
56
+
57
+ border-radius: var(--uilib-icon-button-radius);
58
+
59
+ background: var(--uilib-icon-button-primary-bg-color);
60
+
61
+ @media (prefers-reduced-motion: no-preference) {
62
+ transition:
63
+ border-color var(--uilib-motion-timing-inout) var(--uilib-motion-duration-medium),
64
+ background-color var(--uilib-motion-timing-inout) var(--uilib-motion-duration-medium),
65
+ color var(--uilib-motion-timing-inout) var(--uilib-motion-duration-medium),
66
+ transform var(--uilib-motion-timing-inout) var(--uilib-motion-duration-medium);
67
+ }
48
68
  }
49
69
 
50
- &:hover:not(:disabled, .uilib-icon-button--disabled) {
70
+ &:hover:not(:disabled, .uilib-icon-button--disabled)::after {
51
71
  background: var(--uilib-icon-button-primary-hover-bg-color);
52
72
  }
53
73
 
54
74
  &:focus-visible {
55
75
  @include uilib-focus;
76
+
77
+ /* stylelint-disable-next-line order/order */
78
+ &::before {
79
+ border-radius: var(--uilib-icon-button-radius);
80
+ }
56
81
  }
57
82
 
58
83
  &:active:not(:disabled, .uilib-icon-button--disabled) {
59
- transform: scale(0.96);
84
+ &::after {
85
+ transform: scale(0.96);
86
+ }
87
+
88
+ .uilib-icon-button__icon {
89
+ transform: translate(var(--uilib-icon-button-medium-offset), 0) scale(0.96);
90
+ }
91
+ }
92
+
93
+ &:is(div) {
94
+ pointer-events: none;
95
+
96
+ &::after,
97
+ &::before,
98
+ .uilib-icon-button__icon {
99
+ pointer-events: none;
100
+ }
60
101
  }
61
102
 
62
103
  &__content {
63
- flex-grow: 1;
104
+ order: 1;
105
+
106
+ padding-right: var(--uilib-spacing-300);
107
+
108
+ font: var(--uilib-typography-label-large);
109
+ text-align: left;
64
110
  }
65
111
 
66
112
  &__icon {
113
+ position: relative;
114
+ z-index: 1;
115
+
116
+ order: 3;
117
+
118
+ flex-shrink: 0;
119
+
120
+ margin-left: calc((var(--uilib-icon-size-medium)) * -1);
121
+
122
+ color: var(--uilib-icon-button-primary-color);
123
+
124
+ transform: translate(var(--uilib-icon-button-medium-offset), 0);
125
+
67
126
  pointer-events: none;
127
+
128
+ @media (prefers-reduced-motion: no-preference) {
129
+ transition:
130
+ border-color var(--uilib-motion-timing-inout) var(--uilib-motion-duration-medium),
131
+ background-color var(--uilib-motion-timing-inout) var(--uilib-motion-duration-medium),
132
+ color var(--uilib-motion-timing-inout) var(--uilib-motion-duration-medium),
133
+ transform var(--uilib-motion-timing-inout) var(--uilib-motion-duration-medium);
134
+ }
68
135
  }
69
136
  }
70
137
 
71
138
  .uilib-icon-button--ghost {
72
- color: var(--uilib-icon-button-ghost-color);
73
-
74
- background: var(--uilib-icon-button-ghost-bg-color);
139
+ &::after {
140
+ background: var(--uilib-icon-button-ghost-bg-color);
141
+ }
75
142
 
76
- &:hover:not(:disabled, .uilib-icon-button--disabled) {
143
+ &:hover:not(:disabled, .uilib-icon-button--disabled)::after {
77
144
  background: var(--uilib-icon-button-ghost-hover-bg-color);
78
145
  }
146
+
147
+ .uilib-icon-button__icon {
148
+ color: var(--uilib-icon-button-ghost-color);
149
+ }
79
150
  }
80
151
 
81
152
  .uilib-icon-button--secondary {
82
- color: var(--uilib-icon-button-secondary-color);
83
-
84
- border: var(--uilib-stroke-size-050) var(--uilib-stroke-style-solid) var(--uilib-icon-button-secondary-color);
153
+ &::after {
154
+ border: var(--uilib-stroke-size-050) var(--uilib-stroke-style-solid) var(--uilib-icon-button-secondary-color);
85
155
 
86
- background: var(--uilib-icon-button-secondary-bg-color);
156
+ background: var(--uilib-icon-button-secondary-bg-color);
157
+ }
87
158
 
88
- &:hover:not(:disabled, .uilib-icon-button--disabled) {
159
+ &:hover:not(:disabled, .uilib-icon-button--disabled)::after {
89
160
  background: var(--uilib-icon-button-secondary-hover-bg-color);
90
161
  }
162
+
163
+ .uilib-icon-button__icon {
164
+ color: var(--uilib-icon-button-secondary-color);
165
+ }
91
166
  }
92
167
 
93
168
  .uilib-icon-button--control {
94
- color: var(--uilib-icon-button-control-color);
169
+ &::after {
170
+ background: var(--uilib-icon-button-control-bg-color);
95
171
 
96
- background: var(--uilib-icon-button-control-bg-color);
97
-
98
- box-shadow: var(--uilib-elevation-200);
172
+ box-shadow: var(--uilib-elevation-200);
173
+ }
99
174
 
100
- &:hover:not(:disabled, .uilib-icon-button--disabled) {
175
+ &:hover:not(:disabled, .uilib-icon-button--disabled)::after {
101
176
  background: var(--uilib-icon-button-control-hover-bg-color);
102
177
  }
178
+
179
+ .uilib-icon-button__icon {
180
+ color: var(--uilib-icon-button-control-color);
181
+ }
103
182
  }
104
183
 
105
184
  .uilib-icon-button--promotion {
106
- color: var(--uilib-icon-button-promotion-color);
107
-
108
- background: var(--uilib-icon-button-promotion-bg-color);
185
+ &::after {
186
+ background: var(--uilib-icon-button-promotion-bg-color);
187
+ }
109
188
 
110
- &:hover:not(:disabled, .uilib-icon-button--disabled) {
189
+ &:hover:not(:disabled, .uilib-icon-button--disabled)::after {
111
190
  background: var(--uilib-icon-button-promotion-hover-bg-color);
112
191
  }
192
+
193
+ .uilib-icon-button__icon {
194
+ color: var(--uilib-icon-button-promotion-color);
195
+ }
113
196
  }
114
197
 
115
198
  .uilib-icon-button--search {
116
- color: var(--uilib-icon-button-search-color);
117
-
118
- background: var(--uilib-icon-button-search-bg-color);
199
+ &::after {
200
+ background: var(--uilib-icon-button-search-bg-color);
201
+ }
119
202
 
120
- &:hover:not(:disabled, .uilib-icon-button--disabled) {
203
+ &:hover:not(:disabled, .uilib-icon-button--disabled)::after {
121
204
  background: var(--uilib-icon-button-search-hover-bg-color);
122
205
  }
206
+
207
+ .uilib-icon-button__icon {
208
+ color: var(--uilib-icon-button-search-color);
209
+ }
123
210
  }
124
211
 
125
212
  .uilib-icon-button--shortlist {
126
- color: var(--uilib-icon-button-shortlist-color);
213
+ &::after {
214
+ background: var(--uilib-icon-button-shortlist-bg-color);
127
215
 
128
- background: var(--uilib-icon-button-shortlist-bg-color);
129
-
130
- box-shadow: 0 0 var(--uilib-spacing-100) 0 var(--uilib-color-other-elevation);
216
+ box-shadow: 0 0 var(--uilib-spacing-100) 0 var(--uilib-color-other-elevation);
217
+ }
131
218
 
132
- &:hover:not(:disabled, .uilib-icon-button--disabled) {
219
+ &:hover:not(:disabled, .uilib-icon-button--disabled)::after {
133
220
  background: var(--uilib-icon-button-shortlist-hover-bg-color);
134
221
  }
135
222
 
136
- .uilib-icon-button__icon--selected {
137
- display: none;
223
+ .uilib-icon-button__icon {
224
+ color: var(--uilib-icon-button-shortlist-color);
225
+
226
+ &--selected {
227
+ display: none;
228
+ }
138
229
  }
139
230
 
140
231
  &[aria-pressed='true'] .uilib-icon-button__icon {
@@ -148,33 +239,119 @@ $uilib-icon-button-included: false !default;
148
239
 
149
240
  .uilib-icon-button:disabled,
150
241
  .uilib-icon-button--disabled {
151
- color: var(--uilib-icon-button-disabled-color);
242
+ cursor: default;
152
243
 
153
- border-color: var(--uilib-icon-button-disabled-bg-color);
244
+ &::after {
245
+ border-color: var(--uilib-icon-button-disabled-bg-color);
154
246
 
155
- background: var(--uilib-icon-button-disabled-bg-color);
247
+ background: var(--uilib-icon-button-disabled-bg-color);
156
248
 
157
- box-shadow: none;
249
+ box-shadow: none;
250
+ }
158
251
 
159
- cursor: default;
252
+ .uilib-icon-button__icon {
253
+ color: var(--uilib-icon-button-disabled-color);
254
+ }
255
+
256
+ .uilib-icon-button__content {
257
+ color: var(--uilib-icon-button-disabled-color);
258
+ }
160
259
  }
161
260
 
162
261
  .uilib-icon-button--ghost:disabled,
163
262
  .uilib-icon-button--ghost.uilib-icon-button--disabled {
164
- color: var(--uilib-icon-button-disabled-bg-color);
263
+ cursor: default;
165
264
 
166
- border-color: var(--uilib-icon-button-ghost-bg-color);
265
+ &::after {
266
+ color: var(--uilib-icon-button-disabled-bg-color);
167
267
 
168
- background: var(--uilib-icon-button-ghost-bg-color);
268
+ border-color: var(--uilib-icon-button-ghost-bg-color);
169
269
 
170
- cursor: default;
270
+ background: var(--uilib-icon-button-ghost-bg-color);
271
+ }
272
+
273
+ .uilib-icon-button__icon {
274
+ color: var(--uilib-icon-button-disabled-color);
275
+ }
276
+
277
+ .uilib-icon-button__content {
278
+ color: var(--uilib-icon-button-disabled-color);
279
+ }
171
280
  }
172
281
 
173
282
  .uilib-icon-button--small {
174
- width: var(--uilib-icon-button-size-small);
283
+ &::after {
284
+ width: var(--uilib-icon-button-size-small);
285
+ }
286
+
287
+ .uilib-icon-button__content {
288
+ padding-right: var(--uilib-spacing-200);
289
+
290
+ font: var(--uilib-typography-label-medium);
291
+ }
292
+
293
+ .uilib-icon-button__icon {
294
+ margin-left: calc((var(--uilib-icon-size-xsmall)) * -1);
295
+
296
+ transform: translate(var(--uilib-icon-button-small-offset), 0);
297
+ }
298
+
299
+ /* stylelint-disable-next-line order/order */
300
+ &:active:not(:disabled, .uilib-icon-button--disabled) {
301
+ .uilib-icon-button__icon {
302
+ transform: translate(var(--uilib-icon-button-small-offset), 0) scale(0.96);
303
+ }
304
+ }
175
305
  }
176
306
 
177
307
  .uilib-icon-button--large {
178
- width: var(--uilib-icon-button-size-large);
308
+ &::after {
309
+ width: var(--uilib-icon-button-size-large);
310
+ }
311
+
312
+ .uilib-icon-button__content {
313
+ padding-right: var(--uilib-spacing-400);
314
+
315
+ font: var(--uilib-typography-component-heading-xlarge);
316
+ }
317
+
318
+ .uilib-icon-button__icon {
319
+ margin-left: calc((var(--uilib-icon-size-xlarge)) * -1);
320
+
321
+ transform: translate(var(--uilib-icon-button-large-offset), 0);
322
+ }
323
+
324
+ /* stylelint-disable-next-line order/order */
325
+ &:active:not(:disabled, .uilib-icon-button--disabled) {
326
+ .uilib-icon-button__icon {
327
+ transform: translate(var(--uilib-icon-button-large-offset), 0) scale(0.96);
328
+ }
329
+ }
330
+ }
331
+
332
+ .uilib-icon-button--label-right {
333
+ justify-content: flex-start;
334
+
335
+ &::after {
336
+ order: 1;
337
+ }
338
+
339
+ .uilib-icon-button__icon {
340
+ order: 2;
341
+ }
342
+
343
+ .uilib-icon-button__content {
344
+ order: 3;
345
+
346
+ padding: 0 0 0 var(--uilib-spacing-300);
347
+ }
348
+
349
+ &.uilib-icon-button--small .uilib-icon-button__content {
350
+ padding-left: var(--uilib-spacing-200);
351
+ }
352
+
353
+ &.uilib-icon-button--large .uilib-icon-button__content {
354
+ padding-left: var(--uilib-spacing-400);
355
+ }
179
356
  }
180
357
  }
@@ -5,6 +5,7 @@
5
5
  // Icon button specific variables to allow theming
6
6
  $uilib-icon-button-variables: (
7
7
  radius: var(--uilib-border-radius-pill),
8
+ text-color: var(--uilib-color-core-interaction),
8
9
  ghost-color: var(--uilib-color-core-interaction),
9
10
  ghost-bg-color: transparent,
10
11
  ghost-hover-bg-color: var(--uilib-color-other-secondary-button-hover-state),
@@ -1,5 +1,6 @@
1
1
  // image / _mixins
2
2
  @use '../../variables/env-variables' as *;
3
+ @use '../grid/mixins' as *;
3
4
 
4
5
  $uilib-image-included: false !default;
5
6
 
@@ -18,6 +19,9 @@ $uilib-image-included: false !default;
18
19
  }
19
20
 
20
21
  .uilib-image {
22
+ // Active focal point — cascades from the largest set breakpoint down to base, then center.
23
+ --uilib-image-focus: var(--uilib-image-focus-base, center);
24
+
21
25
  display: flex;
22
26
 
23
27
  border-radius: var(--uilib-image-rectangle);
@@ -51,53 +55,77 @@ $uilib-image-included: false !default;
51
55
  border-radius: var(--uilib-image-rounded);
52
56
  }
53
57
 
54
- img {
55
- width: 100%;
56
- height: 100%;
57
-
58
- font-size: 0;
59
-
60
- object-fit: cover;
61
- object-position: center;
62
- }
63
-
58
+ // Static focal point classes — set the base var, applied at all breakpoints.
64
59
  /* stylelint-disable-next-line order/order */
65
60
  &--focus {
66
- &-top-left img {
67
- object-position: top left;
61
+ &-top-left {
62
+ --uilib-image-focus-base: top left;
68
63
  }
69
64
 
70
- &-top-center img {
71
- object-position: top center;
65
+ &-top-center {
66
+ --uilib-image-focus-base: top center;
72
67
  }
73
68
 
74
- &-top-right img {
75
- object-position: top right;
69
+ &-top-right {
70
+ --uilib-image-focus-base: top right;
76
71
  }
77
72
 
78
- &-center-left img {
79
- object-position: center left;
73
+ &-center-left {
74
+ --uilib-image-focus-base: center left;
80
75
  }
81
76
 
82
- &-center img {
83
- object-position: center;
77
+ &-center {
78
+ --uilib-image-focus-base: center;
84
79
  }
85
80
 
86
- &-center-right img {
87
- object-position: center right;
81
+ &-center-right {
82
+ --uilib-image-focus-base: center right;
88
83
  }
89
84
 
90
- &-bottom-left img {
91
- object-position: bottom left;
85
+ &-bottom-left {
86
+ --uilib-image-focus-base: bottom left;
92
87
  }
93
88
 
94
- &-bottom-center img {
95
- object-position: bottom center;
89
+ &-bottom-center {
90
+ --uilib-image-focus-base: bottom center;
96
91
  }
97
92
 
98
- &-bottom-right img {
99
- object-position: bottom right;
93
+ &-bottom-right {
94
+ --uilib-image-focus-base: bottom right;
100
95
  }
101
96
  }
97
+
98
+ // Per-breakpoint overrides, each falling back to the smaller breakpoints.
99
+ @include uilib-breakpoint(xs) {
100
+ --uilib-image-focus: var(--uilib-image-focus-xs, var(--uilib-image-focus-base, center));
101
+ }
102
+
103
+ @include uilib-breakpoint(sm) {
104
+ --uilib-image-focus: var(--uilib-image-focus-sm, var(--uilib-image-focus-xs, var(--uilib-image-focus-base, center)));
105
+ }
106
+
107
+ @include uilib-breakpoint(md) {
108
+ --uilib-image-focus: var(
109
+ --uilib-image-focus-md,
110
+ var(--uilib-image-focus-sm, var(--uilib-image-focus-xs, var(--uilib-image-focus-base, center)))
111
+ );
112
+ }
113
+
114
+ @include uilib-breakpoint(lg) {
115
+ --uilib-image-focus: var(
116
+ --uilib-image-focus-lg,
117
+ var(--uilib-image-focus-md, var(--uilib-image-focus-sm, var(--uilib-image-focus-xs, var(--uilib-image-focus-base, center))))
118
+ );
119
+ }
120
+
121
+ img {
122
+ width: 100%;
123
+ height: 100%;
124
+
125
+ font-size: 0;
126
+
127
+ object-fit: cover;
128
+ object-position: var(--uilib-image-focus, center);
129
+ }
102
130
  }
103
131
  }
@@ -37,7 +37,7 @@ $uilib-info-tag-list-included: false !default;
37
37
  padding: var(--uilib-spacing-050) var(--uilib-spacing-100); /* 2px 4px */
38
38
 
39
39
  color: var(--uilib-info-tag-text-color);
40
- font: var(--uilib-typography-label-xsmall);
40
+ font: var(--uilib-typography-label-small);
41
41
  text-align: left;
42
42
  text-decoration: none;
43
43
 
@@ -69,6 +69,12 @@ $uilib-info-tag-list-included: false !default;
69
69
  background: var(--uilib-info-tag-local-product-bg-color);
70
70
  }
71
71
 
72
+ .uilib-info-tag--platinum {
73
+ color: var(--uilib-info-tag-platinum-text-color);
74
+
75
+ background: var(--uilib-info-tag-platinum-bg-color);
76
+ }
77
+
72
78
  // Tooltip variant styles
73
79
  .uilib-info-tag .uilib-tooltip.uilib-tooltip--icon {
74
80
  margin: calc(var(--uilib-spacing-200) * -1);
@@ -8,6 +8,8 @@ $uilib-info-tag-variables: (
8
8
  text-color: var(--uilib-color-text-strong),
9
9
  info-bg-color: var(--uilib-color-status-info-surface),
10
10
  local-product-bg-color: var(--uilib-color-brand-local),
11
+ platinum-bg-color: var(--uilib-color-brand-platinum),
12
+ platinum-text-color: var(--uilib-color-core-neutral),
11
13
  neutral-bg-color: var(--uilib-color-core-neutral),
12
14
  scarcity-bg-color: var(--uilib-color-status-warning-surface),
13
15
  ) !default;
@@ -119,7 +119,8 @@ $uilib-modal-included: false !default;
119
119
  justify-content: end;
120
120
  align-items: center;
121
121
 
122
- slot[name='price'] {
122
+ slot[name='price'],
123
+ [slot='price'] {
123
124
  display: flex;
124
125
 
125
126
  margin-right: auto;
@@ -138,8 +139,11 @@ $uilib-modal-included: false !default;
138
139
  }
139
140
  }
140
141
 
141
- // show divider only if price slot is used
142
- &:not(:has(slot[name='price'] *)) .uilib-divider {
142
+ // show divider only if price slot has content
143
+ // V1: slot[name='price'] always exists in the template — use :not(:empty)
144
+ // to check it actually has distributed content.
145
+ // V2: [slot='price'] only exists when the consumer provides it.
146
+ &:not(:has(slot[name='price']:not(:empty), [slot='price'])) .uilib-divider {
143
147
  display: none;
144
148
  }
145
149
  }
@@ -149,6 +153,8 @@ $uilib-modal-included: false !default;
149
153
  mask-image: var(--uilib-modal-close-icon);
150
154
  }
151
155
 
156
+ // Scroll lock fallback for v1 (v2 handles this in JS).
157
+ // TODO(next-major): remove once v1 is retired.
152
158
  body:has(&[open]) {
153
159
  overflow: hidden;
154
160
  }
@@ -51,6 +51,7 @@ $uilib-color-semantic: (
51
51
  brand-tripadvisor-pine-green: map.get($uilib-primitives, 'color-brand-tripadvisor-pine-green'),
52
52
  brand-tripadvisor-inverse: map.get($uilib-primitives, 'color-brand-tripadvisor-trip-green'),
53
53
  brand-paypal: map.get($uilib-primitives, 'color-brand-paypal-blue'),
54
+ brand-platinum: map.get($uilib-primitives, 'color-brand-platinum-grey'),
54
55
  other-scroll-handle: map.get($uilib-primitives, 'color-neutral-50'),
55
56
  /* Deprecated */ brand-trip-advisor: map.get($uilib-primitives, 'color-brand-tripadvisor-green-60'),
56
57
  );
@@ -80,6 +80,7 @@ $uilib-primitives: (
80
80
  color-brand-tripadvisor-green-60: #00b747,
81
81
  color-brand-tripadvisor-pine-green: #002b11,
82
82
  color-brand-paypal-blue: #253b80,
83
+ color-brand-platinum-grey: #4b5560,
83
84
  color-brand-holidaycheck-blue: #0e55cd,
84
85
  color-brand-holidaycheck-yellow: #ffca3a,
85
86
  color-brand-holidaycheck-lightblue: #c7d5ed,
@@ -246,6 +246,11 @@
246
246
  "primitive": "color-brand-paypal-blue",
247
247
  "title": "PayPal",
248
248
  "darkColor": true
249
+ },
250
+ "color-brand-platinum": {
251
+ "primitive": "color-brand-platinum-grey",
252
+ "title": "Platinum",
253
+ "darkColor": true
249
254
  }
250
255
  }
251
256
  }
@@ -1464,6 +1469,12 @@
1464
1469
  "title": "Button radius",
1465
1470
  "description": "Button radius"
1466
1471
  },
1472
+ "icon-button-text-color": {
1473
+ "primitive": "uilib-color-core-interaction",
1474
+ "displayType": "color",
1475
+ "title": "Label text colour",
1476
+ "description": "Label text colour"
1477
+ },
1467
1478
  "icon-button-ghost-color": {
1468
1479
  "primitive": "uilib-color-core-interaction",
1469
1480
  "title": "Ghost text colour",
@@ -1672,6 +1683,16 @@
1672
1683
  "title": "Local product background colour",
1673
1684
  "description": "Local product background colour"
1674
1685
  },
1686
+ "info-tag-platinum-bg-color": {
1687
+ "primitive": "uilib-color-brand-platinum",
1688
+ "title": "Platinum background colour",
1689
+ "description": "Platinum background colour"
1690
+ },
1691
+ "info-tag-platinum-text-color": {
1692
+ "primitive": "uilib-color-core-neutral",
1693
+ "title": "Platinum text colour",
1694
+ "description": "Platinum text colour"
1695
+ },
1675
1696
  "info-tag-neutral-bg-color": {
1676
1697
  "primitive": "uilib-color-core-neutral",
1677
1698
  "title": "Neutral background colour",