barbican-reset 3.36.0 → 3.40.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 (120) hide show
  1. package/components/BrAlert.vue +2 -2
  2. package/components/BrButton.vue +11 -3
  3. package/components/BrCard.vue +1 -1
  4. package/components/BrCardTearoff.vue +1 -1
  5. package/components/BrCollapse/Button.vue +1 -1
  6. package/components/BrConfirmDone.vue +6 -6
  7. package/components/BrConfirmEmail.vue +6 -6
  8. package/components/BrDetails.vue +5 -1
  9. package/components/BrFormCheckbox.vue +3 -3
  10. package/components/BrFormCheckboxGroup.vue +1 -1
  11. package/components/BrFormDate.vue +1 -1
  12. package/components/BrFormEdit.vue +2 -2
  13. package/components/BrFormEmail.vue +1 -1
  14. package/components/BrFormInput.vue +18 -1
  15. package/components/BrFormPassword.vue +2 -2
  16. package/components/BrFormRadio.vue +3 -3
  17. package/components/BrFormRadioGroup.vue +2 -2
  18. package/components/BrFormRow.vue +2 -2
  19. package/components/BrFormSelect.vue +3 -57
  20. package/components/BrFormSelectItem.vue +1 -7
  21. package/components/BrFormTel.vue +1 -1
  22. package/components/BrFormTextarea.vue +1 -1
  23. package/components/BrFormToggle.vue +6 -9
  24. package/components/BrFormUpdate.vue +1 -1
  25. package/components/BrFormVisible.vue +3 -3
  26. package/components/BrLink.vue +20 -5
  27. package/components/BrLoader.vue +1 -1
  28. package/components/BrOverlay.vue +57 -23
  29. package/components/BrQrCode.vue +21 -0
  30. package/icons/{city_of_london_lockup.vue → CityOfLondonLockup.vue} +5 -12
  31. package/icons/Dropdown.vue +6 -0
  32. package/icons/Renew.vue +5 -0
  33. package/icons/dots.vue +50 -0
  34. package/icons/index.js +18 -18
  35. package/index.js +52 -102
  36. package/package.json +8 -14
  37. package/scss/_atomic.scss +1 -1
  38. package/scss/_br-button.scss +13 -19
  39. package/scss/_br-form-select.scss +52 -0
  40. package/scss/_br-form-toggle.scss +27 -24
  41. package/scss/_br-overlay.scss +29 -4
  42. package/scss/_br-qr-code.scss +3 -0
  43. package/scss/_br-table-row.scss +1 -1
  44. package/scss/_input.scss +1 -1
  45. package/scss/_variables.scss +176 -22
  46. package/scss/card/_membership-new.scss +10 -23
  47. package/scss/index.scss +2 -1
  48. package/scss/mixins/_br-alert.scss +1 -1
  49. package/scss/mixins/_br-card.scss +1 -1
  50. package/scss/mixins/_br-form-radio.scss +1 -1
  51. package/scss/mixins/_content.scss +1 -1
  52. package/scss/mixins/_focus.scss +1 -1
  53. package/scss/mixins/_font-size.scss +3 -3
  54. package/scss/mixins/buttons/_custom.scss +12 -85
  55. package/scss/mixins/buttons/_outline.scss +8 -12
  56. package/scss/mixins/buttons/_setup.scss +3 -7
  57. package/scss/mixins/buttons/custom/_edit-input.scss +22 -0
  58. package/scss/mixins/buttons/custom/_exit-overlay-bg.scss +12 -0
  59. package/scss/mixins/buttons/custom/_exit-overlay.scss +3 -19
  60. package/scss/mixins/buttons/custom/_exit.scss +11 -0
  61. package/scss/mixins/buttons/custom/_invisible.scss +2 -2
  62. package/scss/mixins/buttons/custom/_link.scss +19 -0
  63. package/scss/mixins/buttons/custom/_manage-order.scss +4 -4
  64. package/scss/mixins/buttons/custom/_outline-secondary.scss +1 -5
  65. package/scss/mixins/buttons/custom/_renew-membership.scss +3 -3
  66. package/scss/mixins/buttons/custom/_select-form.scss +15 -5
  67. package/scss/mixins/buttons/custom/_voucher-amount.scss +18 -0
  68. package/scss/mixins/card/_membership.scss +10 -49
  69. package/scss/mixins/card/_qrcode.scss +60 -3
  70. package/scss/mixins/input/_checkbox.scss +1 -1
  71. package/scss/mixins/input/_generic.scss +1 -1
  72. package/scss/mixins/input/_select.scss +1 -1
  73. package/scss/mixins/input/_text.scss +1 -1
  74. package/scss/mixins/table/_details.scss +1 -1
  75. package/scss/mixins/table/_etickets.scss +1 -1
  76. package/scss/mixins/table/_gifts.scss +1 -1
  77. package/scss/mixins/table/_orders.scss +1 -1
  78. package/scss/mixins/table/_preferences.scss +1 -1
  79. package/scss/mixins/table/_tickets.scss +1 -1
  80. package/scss/reset.scss +4 -0
  81. package/utils/datetimes.js +162 -0
  82. package/utils/numbers.js +23 -0
  83. package/utils.js +6 -0
  84. package/components/BrAnchor.vue +0 -34
  85. package/components/BrButton/dot_typing.vue +0 -60
  86. package/components/BrButton/remove_ticket.vue +0 -46
  87. package/icons/account/index.js +0 -20
  88. package/icons/confirm/index.js +0 -4
  89. package/icons/password/index.js +0 -4
  90. package/icons/qr_code.vue +0 -5
  91. package/icons/stream/airplay.vue +0 -15
  92. package/icons/stream/cast.vue +0 -13
  93. package/icons/stream/chat.vue +0 -15
  94. package/icons/stream/cog.vue +0 -13
  95. package/icons/stream/index.js +0 -15
  96. package/icons/stream/live.vue +0 -12
  97. package/icons/stream/volume.vue +0 -13
  98. package/icons/wheelchair.vue +0 -18
  99. package/logos/arts-council-england.svg +0 -1
  100. package/logos/barbican.svg +0 -1
  101. package/logos/city-of-london.svg +0 -1
  102. package/logos/lso.svg +0 -1
  103. package/scripts/helpers.js +0 -6
  104. package/scss/_br-form-select-link.scss +0 -15
  105. /package/{scripts/animations → animations}/confirm.js +0 -0
  106. /package/icons/{account/contact.vue → AccountContact.vue} +0 -0
  107. /package/icons/{account/edit.vue → AccountEdit.vue} +0 -0
  108. /package/icons/{account/membership.vue → AccountMembership.vue} +0 -0
  109. /package/icons/{account/orders.vue → AccountOrders.vue} +0 -0
  110. /package/icons/{account/payment.vue → AccountPayment.vue} +0 -0
  111. /package/icons/{person.vue → AccountPerson.vue} +0 -0
  112. /package/icons/{account/personal.vue → AccountPersonal.vue} +0 -0
  113. /package/icons/{account/ticket.vue → AccountTicket.vue} +0 -0
  114. /package/icons/{back_arrow.vue → BackArrow.vue} +0 -0
  115. /package/icons/{city_of_london.vue → CityOfLondon.vue} +0 -0
  116. /package/icons/{information.vue → Info.vue} +0 -0
  117. /package/{scripts/helpers → utils}/compareArrays.js +0 -0
  118. /package/{scripts/helpers → utils}/constrainTabbing.js +0 -0
  119. /package/{scripts/helpers → utils}/formatKebabCase.js +0 -0
  120. /package/{scripts/helpers → utils}/logObject.js +0 -0
@@ -1,19 +1,58 @@
1
1
  // Global CSS custom properties for the design system.
2
2
  // Defines all design tokens — colours, spacing, typography, layout, and more —
3
3
  // as CSS variables on the `:root` element so they are available throughout the cascade.
4
+
4
5
  :root {
5
- // --- Border ---
6
+
7
+ // --- Background colours ---
8
+
9
+ --background-color-button-manage-order: transparent;
10
+ --background-color-button-manage-order-focus: var(--color-brand-generic-15-lighten);
11
+ --background-color-button-select-form: white;
12
+
13
+ --background-color-button-outline: white;
14
+ --background-color-card-membership: var(--color-black-50-lighten);
15
+
16
+ --background-color-toggle-checked: var(--color-status-success);
17
+ --background-color-toggle-unchecked: var(--color-black-50-lighten);
18
+ --background-color-toggle-before-checked: white;
19
+ --background-color-toggle-before-unchecked: white;
20
+
21
+ --background-color-button-select-form-focus: var(--color-black-60-lighten);
22
+ --background-color-form-select-link-focus: var(--color-black-5-lighten);
23
+
24
+ // --- Background images ---
25
+
26
+ --background-image-card-membership: none;
27
+
28
+ // --- Border colours ---
29
+
30
+ --border-color-button-manage-order-focus: var(--color-brand-generic-90-darken);
31
+ --border-color-toggle-checked: var(--color-status-success);
32
+ --border-color-toggle-unchecked: var(--color-black-50-lighten);
33
+ --border-color-card-membership: var(--color-card-membership-dark);
34
+
35
+ // --- Border radius ---
6
36
 
7
37
  --border-radius-sm: 0.25rem;
8
- --border-radius-lg: 0.375rem;
38
+ --border-radius-md: 0.375rem;
39
+ --border-radius-lg: 0.5rem;
40
+ --border-radius-xl: 0.75rem;
41
+
42
+ --border-radius-card-membership-label: 0.9375rem;
43
+ --border-radius-toggle: calc(var(--height-toggle) * 0.5);
44
+
45
+ // --- Border widths ---
46
+
9
47
  --border-width-sm: 0.0625rem;
10
48
  --border-width-lg: 0.125rem;
11
49
  --border-width-xl: 0.25rem;
12
50
 
51
+ --border-width-toggle-before: var(--border-width-sm);
52
+
13
53
  // --- Box shadow ---
14
54
 
15
- // Card box shadow. Uses `--padding-sm` for the blur radius.
16
- --box-shadow-card: 0 0 var(--padding-sm) rgba(0, 0, 0, 0.125);
55
+ --box-shadow-card-membership: 0 0.25rem 0.25rem rgba(0, 0, 0, 0.18);
17
56
 
18
57
  // --- Colours: black scale ---
19
58
 
@@ -36,6 +75,8 @@
36
75
  --color-brand-art: #e60077;
37
76
  // Art brand darkened 65%
38
77
  --color-brand-art-35-darken: color-mix(in oklab, var(--color-brand-art) 35%, black);
78
+ // Art brand darkened 50%
79
+ --color-brand-art-50-darken: color-mix(in oklab, var(--color-brand-art) 50%, black);
39
80
  // Art brand darkened 20%
40
81
  --color-brand-art-80-darken: color-mix(in oklab, var(--color-brand-art) 80%, black);
41
82
  // Art brand darkened 10%
@@ -57,6 +98,8 @@
57
98
  --color-brand-cinema: #20882a;
58
99
  // Cinema brand darkened 65%
59
100
  --color-brand-cinema-35-darken: color-mix(in oklab, var(--color-brand-cinema) 35%, black);
101
+ // Cinema brand darkened 50%
102
+ --color-brand-cinema-50-darken: color-mix(in oklab, var(--color-brand-cinema) 50%, black);
60
103
  // Cinema brand darkened 20%
61
104
  --color-brand-cinema-80-darken: color-mix(in oklab, var(--color-brand-cinema) 80%, black);
62
105
  // Cinema brand darkened 10%
@@ -78,6 +121,8 @@
78
121
  --color-brand-classical: #946f2e;
79
122
  // Classical brand darkened 65%
80
123
  --color-brand-classical-35-darken: color-mix(in oklab, var(--color-brand-classical) 35%, black);
124
+ // Classical brand darkened 50%
125
+ --color-brand-classical-50-darken: color-mix(in oklab, var(--color-brand-classical) 50%, black);
81
126
  // Classical brand darkened 20%
82
127
  --color-brand-classical-80-darken: color-mix(in oklab, var(--color-brand-classical) 80%, black);
83
128
  // Classical brand darkened 10%
@@ -99,6 +144,8 @@
99
144
  --color-brand-contemporary: #402f79;
100
145
  // Contemporary brand darkened 65%
101
146
  --color-brand-contemporary-35-darken: color-mix(in oklab, var(--color-brand-contemporary) 35%, black);
147
+ // Contemporary brand darkened 50%
148
+ --color-brand-contemporary-50-darken: color-mix(in oklab, var(--color-brand-contemporary) 50%, black);
102
149
  // Contemporary brand darkened 20%
103
150
  --color-brand-contemporary-80-darken: color-mix(in oklab, var(--color-brand-contemporary) 80%, black);
104
151
  // Contemporary brand darkened 10%
@@ -120,6 +167,8 @@
120
167
  --color-brand-generic: #d14900;
121
168
  // Generic brand darkened 65%
122
169
  --color-brand-generic-35-darken: color-mix(in oklab, var(--color-brand-generic) 35%, black);
170
+ // Generic brand darkened 50%
171
+ --color-brand-generic-50-darken: color-mix(in oklab, var(--color-brand-generic) 50%, black);
123
172
  // Generic brand darkened 20%
124
173
  --color-brand-generic-80-darken: color-mix(in oklab, var(--color-brand-generic) 80%, black);
125
174
  // Generic brand darkened 10%
@@ -141,6 +190,8 @@
141
190
  --color-brand-membership: #3173dd;
142
191
  // Membership brand darkened 65%
143
192
  --color-brand-membership-35-darken: color-mix(in oklab, var(--color-brand-membership) 35%, black);
193
+ // Membership brand darkened 50%
194
+ --color-brand-membership-50-darken: color-mix(in oklab, var(--color-brand-membership) 50%, black);
144
195
  // Membership brand darkened 20%
145
196
  --color-brand-membership-80-darken: color-mix(in oklab, var(--color-brand-membership) 80%, black);
146
197
  // Membership brand darkened 10%
@@ -162,6 +213,8 @@
162
213
  --color-brand-programme: var(--color-black-60-lighten);
163
214
  // Programme brand darkened 65%
164
215
  --color-brand-programme-35-darken: color-mix(in oklab, var(--color-brand-programme) 35%, black);
216
+ // Programme brand darkened 50%
217
+ --color-brand-programme-50-darken: color-mix(in oklab, var(--color-brand-programme) 50%, black);
165
218
  // Programme brand darkened 20%
166
219
  --color-brand-programme-80-darken: color-mix(in oklab, var(--color-brand-programme) 80%, black);
167
220
  // Programme brand darkened 10%
@@ -183,6 +236,8 @@
183
236
  --color-brand-shop: #13866f;
184
237
  // Shop brand darkened 65%
185
238
  --color-brand-shop-35-darken: color-mix(in oklab, var(--color-brand-shop) 35%, black);
239
+ // Shop brand darkened 50%
240
+ --color-brand-shop-50-darken: color-mix(in oklab, var(--color-brand-shop) 50%, black);
186
241
  // Shop brand darkened 20%
187
242
  --color-brand-shop-80-darken: color-mix(in oklab, var(--color-brand-shop) 80%, black);
188
243
  // Shop brand darkened 10%
@@ -204,6 +259,8 @@
204
259
  --color-brand-talks: #5778a2;
205
260
  // Talks brand darkened 65%
206
261
  --color-brand-talks-35-darken: color-mix(in oklab, var(--color-brand-talks) 35%, black);
262
+ // Talks brand darkened 50%
263
+ --color-brand-talks-50-darken: color-mix(in oklab, var(--color-brand-talks) 50%, black);
207
264
  // Talks brand darkened 20%
208
265
  --color-brand-talks-80-darken: color-mix(in oklab, var(--color-brand-talks) 80%, black);
209
266
  // Talks brand darkened 10%
@@ -225,6 +282,8 @@
225
282
  --color-brand-theatre: #017e9d;
226
283
  // Theatre brand darkened 65%
227
284
  --color-brand-theatre-35-darken: color-mix(in oklab, var(--color-brand-theatre) 35%, black);
285
+ // Theatre brand darkened 50%
286
+ --color-brand-theatre-50-darken: color-mix(in oklab, var(--color-brand-theatre) 50%, black);
228
287
  // Theatre brand darkened 20%
229
288
  --color-brand-theatre-80-darken: color-mix(in oklab, var(--color-brand-theatre) 80%, black);
230
289
  // Theatre brand darkened 10%
@@ -240,16 +299,67 @@
240
299
  // Theatre brand lightened 95%
241
300
  --color-brand-theatre-5-lighten: color-mix(in oklab, var(--color-brand-theatre) 5%, white);
242
301
 
302
+ // --- Colours: brand — Young Barbican ---
303
+
304
+ --color-brand-young-barbican-purple: #8205FF;
305
+ --color-brand-young-barbican-pink: #C030AC;
306
+ --color-brand-young-barbican-orange: #FE5A59;
307
+
308
+ --color-brand-young-barbican: var(--color-brand-young-barbican-purple);
309
+ // Young Barbican brand darkened 50%
310
+ --color-brand-young-barbican-50-darken: color-mix(in oklab, var(--color-brand-young-barbican) 50%, black);
311
+ // Young Barbican orange brand lightened 95%
312
+ --color-brand-young-barbican-orange-5-lighten: color-mix(in oklab, var(--color-brand-young-barbican-orange) 5%, white);
313
+
314
+ // --- Colours: button ---
315
+
316
+ --color-button-manage-order-focus: var(--color-brand-generic-90-darken);
317
+ --color-button-outline: var(--color-brand-generic);
318
+ --color-button-outline-secondary: var(--color-black-60-lighten);
319
+ --color-button-select-form: var(--color-black-60-lighten);
320
+ --color-button-select-form-focus: white;
321
+
322
+ // --- Colours: card ---
323
+
324
+ --color-card-membership: white;
325
+ --color-card-membership-dark: black;
326
+ --color-card-membership-light: blue;
327
+
243
328
  // --- Colours: donor ---
244
329
 
245
- // Patron donor colour. Alias of `--color-black-50-lighten`.
330
+ --color-donor-member-plus: var(--color-brand-membership-35-darken);
331
+
246
332
  --color-donor-patron: var(--color-black-50-lighten);
247
- // Patron donor light variant. Alias of `--color-black-25-lighten`.
248
- --color-donor-patron-light: var(--color-black-25-lighten);
249
- // Principle donor colour. Alias of `--color-brand-classical`.
250
- --color-donor-principle: var(--color-brand-classical);
251
- // Principle donor light variant. Alias of `--color-brand-classical-60-lighten`.
252
- --color-donor-principle-light: var(--color-brand-classical-60-lighten);
333
+ // Patron donor darkened 50%
334
+ --color-donor-patron-50-darken: color-mix(in oklab, var(--color-donor-patron) 50%, black);
335
+ // Patron donor lightened 40%
336
+ --color-donor-patron-60-lighten: color-mix(in oklab, var(--color-donor-patron) 60%, white);
337
+ // Patron donor lightened 95%
338
+ --color-donor-patron-5-lighten: color-mix(in oklab, var(--color-donor-patron) 5%, white);
339
+
340
+ --color-donor-premier-patron: var(--color-donor-patron);
341
+ // Premier patron donor darkened 50%
342
+ --color-donor-premier-patron-50-darken: var(--color-donor-patron-50-darken);
343
+ // Premier patron donor lightened 40%
344
+ --color-donor-premier-patron-60-lighten: var(--color-donor-patron-60-lighten);
345
+ // Premier patron donor lightened 95%
346
+ --color-donor-premier-patron-5-lighten: var(--color-donor-patron-5-lighten);
347
+
348
+ --color-donor-principal-patron: var(--color-brand-classical);
349
+ // Principal patron donor darkened 50%
350
+ --color-donor-principal-patron-50-darken: var(--color-brand-classical-50-darken);
351
+ // Principal patron donor lightened 40%
352
+ --color-donor-principal-patron-60-lighten: var(--color-brand-classical-60-lighten);
353
+ // Principal patron donor lightened 95%
354
+ --color-donor-principal-patron-5-lighten: var(--color-brand-classical-5-lighten);
355
+
356
+ --color-donor-directors-circle: var(--color-donor-principal-patron);
357
+ // Directors circle donor darkened 50%
358
+ --color-donor-directors-circle-50-darken: var(--color-donor-principal-patron-50-darken);
359
+ // Directors circle donor lightened 40%
360
+ --color-donor-directors-circle-60-lighten: var(--color-donor-principal-patron-60-lighten);
361
+ // Directors circle donor lightened 95%
362
+ --color-donor-directors-circle-5-lighten: var(--color-donor-principal-patron-5-lighten);
253
363
 
254
364
  // --- Colours: design ---
255
365
 
@@ -258,6 +368,10 @@
258
368
  --color-design-supply: #ff0000;
259
369
  --color-design-system: #6b45a1;
260
370
 
371
+ // --- Colours: forms ---
372
+
373
+ --color-form-select-list: inherit;
374
+
261
375
  // --- Colours: mindsets ---
262
376
 
263
377
  --color-mindsets-addicts: #e6433a;
@@ -287,12 +401,6 @@
287
401
  // Success status lightened 60%
288
402
  --color-status-success-40-lighten: color-mix(in oklab, var(--color-status-success) 40%, white);
289
403
 
290
- // --- Colours: Young Barbican ---
291
-
292
- --color-youngbarbican-1: #8205FF;
293
- --color-youngbarbican-2: #C030AC;
294
- --color-youngbarbican-3: #FE5A59;
295
-
296
404
  // --- Columns (grid-template-columns) ---
297
405
 
298
406
  --columns-simple: auto 8rem;
@@ -326,10 +434,14 @@
326
434
  // Small font size 14px
327
435
  --font-size-sm: 0.875rem;
328
436
 
437
+ --font-size-card-membership: 0.9375rem;
438
+ --font-size-card-subtitle: var(--font-size-h4);
439
+ --font-size-card-subtitle-mobile: var(--font-size-h5);
440
+
329
441
  // --- Gaps ---
330
442
 
331
- // Extra-small gap 8px
332
- --gap-xs: 0.5rem;
443
+ // Extra-small gap 10px
444
+ --gap-xs: 0.625rem;
333
445
  // Small gap 12px
334
446
  --gap-sm: 0.75rem;
335
447
  // Medium gap 16px
@@ -339,6 +451,10 @@
339
451
  // Extra-large gap 32px
340
452
  --gap-xl: 2rem;
341
453
 
454
+ --gap-card-membership-details: 1.25rem;
455
+
456
+ --height-toggle: calc(var(--width-toggle-before) + calc(var(--margin-toggle-before) * 2) + calc(var(--border-width-toggle-before) * 2));
457
+
342
458
  // --- Line heights ---
343
459
 
344
460
  --line-height-xs: 1;
@@ -349,6 +465,28 @@
349
465
  // Fixed line height for button/menu items 38px
350
466
  --line-height-button-menu: 2.375rem;
351
467
 
468
+ // --- Gradients ---
469
+
470
+ --gradient-angle-membership: 110deg;
471
+
472
+ --gradient-member-plus: var(--color-donor-member-plus) 20%, var(--color-brand-membership) 70%;
473
+ --gradient-member-plus-sm: var(--gradient-member-plus);
474
+
475
+ --gradient-patron: var(--color-donor-patron) 55%, var(--color-donor-patron-60-lighten) 70%, var(--color-donor-patron) 85%;
476
+ --gradient-patron-sm: var(--color-donor-patron) 20%, var(--color-donor-patron-60-lighten) 35%, var(--color-donor-patron) 50%;
477
+
478
+ --gradient-premier-patron: var(--gradient-patron);
479
+ --gradient-premier-patron-sm: var(--gradient-patron-sm);
480
+
481
+ --gradient-principal-patron: var(--color-donor-principal-patron) 55%, var(--color-donor-principal-patron-60-lighten) 70%, var(--color-donor-principal-patron) 85%;
482
+ --gradient-principal-patron-sm: var(--color-donor-principal-patron) 20%, var(--color-donor-principal-patron-60-lighten) 35%, var(--color-donor-principal-patron) 50%;
483
+
484
+ --gradient-directors-circle: var(--gradient-principal-patron);
485
+ --gradient-directors-circle-sm: var(--gradient-principal-patron-sm);
486
+
487
+ --gradient-young-barbican: var(--color-brand-young-barbican-purple) 20%, var(--color-brand-young-barbican-pink) 50%, var(--color-brand-young-barbican-orange) 85%;
488
+ --gradient-young-barbican-sm: var(--gradient-young-barbican);
489
+
352
490
  // --- Margins ---
353
491
 
354
492
  // Extra-small margin 5px
@@ -366,11 +504,16 @@
366
504
  // 3× extra-large margin 40px
367
505
  --margin-xxxl: 2.5rem;
368
506
 
369
- // Negative wrap offset for `--margin-xs`. Used to counteract child margins.
507
+ --margin-card-membership: var(--padding-card-sm);
508
+ --margin-toggle-before: 0.25rem;
509
+
510
+ // Negative wrap offsets. Used to counteract child margins.
370
511
  --margin-wrap-xs: calc(var(--margin-xs) * -1);
371
512
  --margin-wrap-sm: calc(var(--margin-sm) * -1);
372
513
  --margin-wrap-md: calc(var(--margin-md) * -1);
373
514
 
515
+ --max-width-card-membership: var(--width-layout-xs);
516
+
374
517
  // --- Minimum heights ---
375
518
 
376
519
  // Minimum button height 40px
@@ -382,6 +525,9 @@
382
525
 
383
526
  // --- Offsets & outlines ---
384
527
 
528
+ --outline-color-toggle-checked: var(--background-color-toggle-checked);
529
+ --outline-color-toggle-unchecked: var(--background-color-toggle-unchecked);
530
+
385
531
  // Navlink offset. Negative `--border-width-sm` to align active indicator flush with edge.
386
532
  --offset-navlink: calc(var(--border-width-sm) * -1);
387
533
  // Large outline inset -4px
@@ -422,11 +568,15 @@
422
568
  // Large responsive layout side padding 10%
423
569
  --padding-layout-lg: 10%;
424
570
 
571
+ --padding-card-membership: var(--padding-card-sm);
572
+
425
573
  // --- Scale ---
426
574
 
427
575
  // Click/press scale transform. Applied on active states to give tactile feedback.
428
576
  --scale-click: scale(0.98);
429
577
 
578
+ --stroke-qr-code: currentColor;
579
+
430
580
  // --- Widths ---
431
581
 
432
582
  // Standard column width 80px
@@ -443,6 +593,10 @@
443
593
  --width-layout-md: 60rem;
444
594
  // Large layout max-width 1200px
445
595
  --width-layout-lg: 75rem;
446
- // QR code display width 112px
447
- --width-qrcode: 7rem;
596
+ // QR code display width 120px
597
+ --width-qrcode: 7.5rem;
598
+
599
+ --width-select-form: 12.5rem;
600
+ --width-toggle: calc(calc(var(--width-toggle-before) * 2) + calc(var(--margin-toggle-before) * 2) + calc(var(--border-width-toggle-before) * 2));
601
+ --width-toggle-before: 1.25rem;
448
602
  }
@@ -2,36 +2,23 @@
2
2
 
3
3
  $colors: (
4
4
  "member": var(--color-brand-membership),
5
- "member-plus": var(--color-brand-membership-35-darken),
5
+ "member-plus": var(--color-donor-member-plus),
6
6
  "patron": var(--color-donor-patron),
7
7
  "premier-patron": var(--color-donor-patron),
8
- "principal-patron": var(--color-donor-principle),
9
- "directors-circle": var(--color-donor-principle),
10
- "young-barbican": var(--color-youngbarbican-1),
8
+ "principal-patron": var(--color-donor-principal-patron),
9
+ "directors-circle": var(--color-donor-principal-patron),
10
+ "young-barbican": var(--color-brand-young-barbican),
11
11
  );
12
12
 
13
13
  $gradients: (
14
- "member-plus": linear-gradient(120deg, var(--color-brand-membership-35-darken) 20%, var(--color-brand-membership) 100%),
15
- "patron": linear-gradient(120deg, var(--color-donor-patron) 60%, var(--color-donor-patron-light) 75%, var(--color-donor-patron) 90%),
16
- "premier-patron": linear-gradient(120deg, var(--color-donor-patron) 60%, var(--color-donor-patron-light) 75%, var(--color-donor-patron) 90%),
17
- "principal-patron": linear-gradient(120deg, var(--color-donor-principle) 60%, var(--color-donor-principle-light) 75%, var(--color-donor-principle) 90%),
18
- "directors-circle": linear-gradient(120deg, var(--color-donor-principle) 60%, var(--color-donor-principle-light) 75%, var(--color-donor-principle) 90%),
19
- "young-barbican": linear-gradient(120deg, var(--color-youngbarbican-1) 0%, var(--color-youngbarbican-2) 50%, var(--color-youngbarbican-3) 95%),
14
+ "member-plus": linear-gradient(var(--gradient-angle-membership), var(--gradient-member-plus)),
15
+ "patron": linear-gradient(var(--gradient-angle-membership), var(--gradient-patron)),
16
+ "premier-patron": linear-gradient(var(--gradient-angle-membership), var(--gradient-premier-patron)),
17
+ "principal-patron": linear-gradient(var(--gradient-angle-membership), var(--gradient-principal-patron)),
18
+ "directors-circle": linear-gradient(var(--gradient-angle-membership), var(--gradient-directors-circle)),
19
+ "young-barbican": linear-gradient(var(--gradient-angle-membership), var(--gradient-young-barbican)),
20
20
  );
21
21
 
22
- .br-card.membership-new {
23
- background-color: var(--color-black-60-lighten);
24
- border-width: 0;
25
- color: white;
26
- width: 196px;
27
- }
28
-
29
- .br-card.membership-new+.br-card.membership-new {
30
- @include small-up {
31
- margin-top: 0;
32
- }
33
- }
34
-
35
22
  @each $name, $value in $colors {
36
23
  .br-card.membership-new.#{$name} {
37
24
  background-color: #{$value};
package/scss/index.scss CHANGED
@@ -11,7 +11,7 @@
11
11
  @use "br-form-label";
12
12
  @use "br-form-radio";
13
13
  @use "br-form-row";
14
- @use "br-form-select-link";
14
+ @use "br-form-select";
15
15
  @use "br-form-textarea";
16
16
  @use "br-form-toggle";
17
17
  @use "br-form-update";
@@ -21,6 +21,7 @@
21
21
  @use "br-loader";
22
22
  @use "br-overlay";
23
23
  @use "br-promo";
24
+ @use "br-qr-code";
24
25
  @use "br-select";
25
26
  @use "br-skiplink";
26
27
  @use "br-table-cell";
@@ -4,7 +4,7 @@
4
4
 
5
5
  @mixin br-alert-wrap--setup {
6
6
  padding: var(--padding-md) var(--padding-lg);
7
- border-radius: var(--border-radius-lg);
7
+ border-radius: var(--border-radius-md);
8
8
  border-width: var(--border-width-sm);
9
9
  border-style: solid;
10
10
  }
@@ -7,7 +7,7 @@
7
7
 
8
8
  @mixin br-card--setup {
9
9
  border-color: var(--color-black-25-lighten);
10
- border-radius: var(--border-radius-lg);
10
+ border-radius: var(--border-radius-md);
11
11
  border-width: var(--border-width-sm);
12
12
  background-color: white;
13
13
  border-style: solid;
@@ -57,7 +57,7 @@
57
57
 
58
58
  @mixin br-form-radio--label {
59
59
  border-color: var(--color-black-25-lighten);
60
- border-radius: var(--border-radius-lg);
60
+ border-radius: var(--border-radius-md);
61
61
  border-width: var(--border-width-sm);
62
62
  padding: var(--padding-md);
63
63
  background-color: white;
@@ -34,7 +34,7 @@
34
34
  }
35
35
 
36
36
  @mixin card-container {
37
- border-radius: var(--border-radius-lg);
37
+ border-radius: var(--border-radius-md);
38
38
  background-color: white;
39
39
  overflow: hidden;
40
40
  }
@@ -126,7 +126,7 @@
126
126
  outline-width: var(--border-width-lg);
127
127
  outline-color: currentColor;
128
128
  outline-style: solid;
129
- border-radius: 50%;
129
+ border-radius: 50%;
130
130
 
131
131
  path.cross {
132
132
  fill: white;
@@ -1,9 +1,9 @@
1
1
  @use "../mixins/breakpoints" as *;
2
2
 
3
3
  @mixin font-size-subtitle {
4
- font-size: var(--font-size-h5);
4
+ font-size: var(--font-size-card-subtitle);
5
5
 
6
- @include medium-up {
7
- font-size: var(--font-size-h4);
6
+ @include medium-down {
7
+ font-size: var(--font-size-card-subtitle-mobile);
8
8
  }
9
9
  }
@@ -8,14 +8,19 @@
8
8
  @use "slim" as *;
9
9
  @use "solid" as *;
10
10
 
11
+ @use "custom/link" as *;
11
12
  @use "custom/outline-primary" as *;
12
13
  @use "custom/outline-secondary" as *;
13
14
  @use "custom/primary" as *;
14
15
  @use "custom/secondary" as *;
15
16
 
16
17
  @forward "custom/add-to-wallet";
18
+ @forward "custom/edit-input";
19
+ @forward "custom/exit";
17
20
  @forward "custom/exit-overlay";
21
+ @forward "custom/exit-overlay-bg";
18
22
  @forward "custom/invisible";
23
+ @forward "custom/link";
19
24
  @forward "custom/manage-order";
20
25
  @forward "custom/select-form";
21
26
  @forward "custom/outline-alert-neutral";
@@ -25,25 +30,7 @@
25
30
  @forward "custom/renew-membership";
26
31
  @forward "custom/secondary";
27
32
  @forward "custom/summary";
28
-
29
- @mixin link-button($color: inherit,
30
- $background: transparent,
31
- $padding: 0,
32
- $line-height: false) {
33
- background-color: $background;
34
- text-decoration: underline;
35
- vertical-align: baseline;
36
- padding: $padding;
37
- border-radius: 0;
38
- font-weight: normal;
39
- text-align: left;
40
- color: $color;
41
- border: none;
42
-
43
- @if $line-height {
44
- line-height: $line-height;
45
- }
46
- }
33
+ @forward "custom/voucher-amount";
47
34
 
48
35
  @mixin btn-returns {
49
36
  @include btn-outline-primary($border-width: var(--border-width-lg));
@@ -67,21 +54,6 @@
67
54
  @include outline-button($color: white, $background: var(--color-brand-generic), $border-width: var(--border-width-lg));
68
55
  }
69
56
 
70
- @mixin btn-edit-input {
71
- @include outline-button($color: var(--color-black-50-lighten), $background: var(--color-black-10-lighten), $padding: var(--padding-sm) var(--padding-md));
72
-
73
- & {
74
- border-color: var(--color-black-25-lighten);
75
- border-width: var(--border-width-sm);
76
- border-bottom-left-radius: 0;
77
- border-top-left-radius: 0;
78
- }
79
-
80
- @include focus {
81
- border-color: var(--color-black-50-lighten);
82
- }
83
- }
84
-
85
57
  @mixin btn-cinema {
86
58
  @include solid-button(var(--color-brand-cinema));
87
59
  }
@@ -98,46 +70,9 @@
98
70
  @include outline-button(var(--color-brand-cinema));
99
71
  }
100
72
 
101
- @mixin btn-remove {
102
- @include solid-button($background: var(--color-black-60-lighten),
103
- $padding: 0.625em,
104
- $line-height: var(--line-height-md));
105
- }
106
-
107
- @mixin btn-link {
108
- @include link-button($line-height: var(--line-height-md));
109
-
110
- @include focus {
111
- @include focus-tabs;
112
- }
113
- }
114
-
115
- @mixin btn-video-help {
116
- @include link-button($padding: 1.25em, $background: var(--color-black-5-lighten));
117
- font-weight: bold;
118
- width: 100%;
119
-
120
- @include focus {
121
- background-color: var(--color-black-50-lighten);
122
- color: white;
123
- }
124
- }
125
-
126
- @mixin btn-exit {
127
- @include link-button;
128
-
129
- svg {
130
- display: block;
131
- }
132
-
133
- @include focus {
134
- @include close-icon-focus;
135
- }
136
- }
137
-
138
73
  @mixin btn-remove-ticket {
139
74
  @include small-down {
140
- @include btn-remove;
75
+ @include btn-secondary;
141
76
  width: 100%;
142
77
  }
143
78
 
@@ -148,7 +83,7 @@
148
83
 
149
84
  @mixin btn-remove-gift {
150
85
  @include x-large-down {
151
- @include btn-remove;
86
+ @include btn-secondary;
152
87
  width: 100%;
153
88
  }
154
89
 
@@ -163,8 +98,10 @@
163
98
 
164
99
  @mixin btn-cta {
165
100
  @include solid-button($background: var(--color-black-60-lighten));
166
- // @include flex-button;
167
- fill: white;
101
+
102
+ & {
103
+ fill: white;
104
+ }
168
105
  }
169
106
 
170
107
  @mixin btn-carousel {
@@ -205,8 +142,6 @@
205
142
  $margin: var(--margin-xs),
206
143
  $line-height: var(--line-height-lg));
207
144
 
208
- // @include flex-button;
209
-
210
145
  vertical-align: middle;
211
146
  min-height: var(--min-height-button);
212
147
 
@@ -225,7 +160,6 @@
225
160
  $padding: 0 var(--padding-md),
226
161
  $margin: var(--margin-xs),
227
162
  $line-height: var(--line-height-lg));
228
- // @include flex-button;
229
163
  vertical-align: middle;
230
164
  min-height: var(--min-height-button);
231
165
 
@@ -240,7 +174,6 @@
240
174
 
241
175
  @mixin btn-discover {
242
176
  @include outline-button(white, var(--color-black-60-lighten));
243
- // @include flex-button;
244
177
 
245
178
  span {
246
179
  position: relative;
@@ -274,34 +207,28 @@
274
207
 
275
208
  @mixin btn-priority-row {
276
209
  @include btn-outline-primary;
277
- // @include flex-button;
278
210
  }
279
211
 
280
212
  @mixin btn-login-to-book {
281
213
  @include btn-primary;
282
- // @include flex-button;
283
214
  }
284
215
 
285
216
  @mixin btn-sold-out {
286
217
  @include btn-secondary;
287
- // @include flex-button;
288
218
  pointer-events: none;
289
219
  min-width: initial;
290
220
  }
291
221
 
292
222
  @mixin btn-add-membership-to-basket {
293
223
  @include solid-button($background: var(--color-brand-membership));
294
- // @include flex-button;
295
224
  }
296
225
 
297
226
  @mixin btn-remove-membership-from-basket {
298
227
  @include solid-button($background: var(--color-status-error));
299
- // @include flex-button;
300
228
  }
301
229
 
302
230
  @mixin btn-additional-information {
303
231
  @include btn-outline-primary;
304
- // @include flex-button;
305
232
  }
306
233
 
307
234
  @mixin btn-toggle-password {