uikit-react-public 0.37.2 → 0.38.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 (116) hide show
  1. package/dist/components/Alert/Alert.d.ts +1 -1
  2. package/dist/components/Alert/Alert.stories.d.ts +1 -1
  3. package/dist/components/Alert/AlertTitle.d.ts +1 -1
  4. package/dist/components/Toggle/ToggleHandle.d.ts +1 -1
  5. package/dist/components/UclLogoNew/UclLogo.d.ts +2 -1
  6. package/dist/components/UclLogoNew/__tests__/UclLogo.test.d.ts +1 -0
  7. package/dist/components/WeekPicker/__tests__/WeekPicker.test.d.ts +1 -0
  8. package/dist/index.js +1287 -1234
  9. package/dist/theme/dark/darkColour.d.ts +1 -0
  10. package/dist/theme/index.d.ts +1 -1
  11. package/dist/theme/light/lightColour.d.ts +1 -0
  12. package/dist/theme/original/defaultTheme.d.ts +7 -0
  13. package/dist/theme/original/originalColourNewStructure.d.ts +1 -0
  14. package/dist/theme/useTheme.d.ts +12 -0
  15. package/lib/components/Alert/AlertMessage.tsx +5 -4
  16. package/lib/components/Alert/AlertTitle.tsx +6 -8
  17. package/lib/components/AppHeader/AppHeader.stories.tsx +3 -3
  18. package/lib/components/AppHeader/AppHeader.tsx +2 -2
  19. package/lib/components/AppHeader/AppHeaderBottom.tsx +2 -3
  20. package/lib/components/AppHeader/AppHeaderTop.tsx +1 -1
  21. package/lib/components/AppHeader/__tests__/__snapshots__/AppHeader.test.tsx.snap +1 -1
  22. package/lib/components/AppMenu/AppMenuContent.tsx +4 -5
  23. package/lib/components/AppMenu/AppMenuDivider.tsx +5 -6
  24. package/lib/components/AppMenu/AppMenuItem.tsx +6 -6
  25. package/lib/components/AppMenu/__tests__/__snapshots__/AppMenu.test.tsx.snap +1 -1
  26. package/lib/components/Avatar/Avatar.tsx +7 -5
  27. package/lib/components/Avatar/__tests__/__snapshots__/Avatar.test.tsx.snap +18 -18
  28. package/lib/components/Badge/Badge.tsx +12 -12
  29. package/lib/components/Badge/__tests__/Badge.test.tsx +84 -1
  30. package/lib/components/Badge/__tests__/__snapshots__/Badge.test.tsx.snap +2 -2
  31. package/lib/components/Blanket/Blanket.tsx +1 -1
  32. package/lib/components/Blanket/__tests__/__snapshots__/Blanket.test.tsx.snap +1 -1
  33. package/lib/components/Button/__tests__/Button.test.tsx +46 -1
  34. package/lib/components/Button/__tests__/__snapshots__/Button.test.tsx.snap +2 -2
  35. package/lib/components/Button/style/buttonAccentStyle.ts +1 -1
  36. package/lib/components/Button/style/buttonPrimaryDestructiveStyle.ts +1 -1
  37. package/lib/components/Button/style/buttonPrimaryWarningStyle.ts +1 -1
  38. package/lib/components/Button/style/buttonSecondarySubtleStyle.ts +1 -1
  39. package/lib/components/Calendar/Calendar.tsx +1 -0
  40. package/lib/components/Calendar/__tests__/__snapshots__/Calendar.test.tsx.snap +17 -17
  41. package/lib/components/Calendar/subcomponents/AcademicWeek.tsx +0 -1
  42. package/lib/components/Calendar/subcomponents/Day.tsx +2 -2
  43. package/lib/components/Chip/Chip.tsx +7 -8
  44. package/lib/components/Chip/__tests__/__snapshots__/Chip.test.tsx.snap +5 -5
  45. package/lib/components/CookieNotice/CookieNotice.tsx +3 -3
  46. package/lib/components/Datepicker/__tests__/Datepicker.test.tsx +34 -1
  47. package/lib/components/Datepicker/__tests__/__snapshots__/Datepicker.test.tsx.snap +6 -6
  48. package/lib/components/Datepicker/subcomponents/DatepickerInput.tsx +7 -6
  49. package/lib/components/Datepicker/subcomponents/VisibleField.tsx +6 -8
  50. package/lib/components/Dialog/BaseDialog.tsx +3 -3
  51. package/lib/components/Divider/Divider.tsx +5 -3
  52. package/lib/components/FileInput/FileInput.tsx +1 -1
  53. package/lib/components/FileInput/__tests__/__snapshots__/FileInput.test.tsx.snap +2 -2
  54. package/lib/components/Footer/Footer.tsx +17 -17
  55. package/lib/components/Footer/FooterNavLink.tsx +3 -3
  56. package/lib/components/Footer/SocialLink.tsx +3 -3
  57. package/lib/components/Footer/__tests__/__snapshots__/Footer.test.tsx.snap +55 -55
  58. package/lib/components/FooterNew/BackToTop.tsx +1 -1
  59. package/lib/components/FooterNew/FooterColumn.tsx +1 -2
  60. package/lib/components/FooterNew/FooterNavLink.tsx +6 -5
  61. package/lib/components/FooterNew/LegalAndCopyright.tsx +15 -15
  62. package/lib/components/FooterNew/LogoAddressAndSocial.tsx +8 -6
  63. package/lib/components/FooterNew/SocialLink.tsx +4 -4
  64. package/lib/components/FooterNew/__tests__/__snapshots__/Footer.test.tsx.snap +44 -44
  65. package/lib/components/Header/Header.tsx +3 -3
  66. package/lib/components/Header/__tests__/__snapshots__/Header.test.tsx.snap +2 -2
  67. package/lib/components/HeaderDraft/HeaderBottomBreadcrumbs.tsx +3 -4
  68. package/lib/components/HeaderDraft/HeaderBottomHeadingAndAvatar.tsx +7 -7
  69. package/lib/components/HeaderDraft/HeaderBreadcrumb.tsx +4 -4
  70. package/lib/components/HeaderDraft/HeaderDraft.tsx +7 -7
  71. package/lib/components/HeaderDraft/__tests__/__snapshots__/Header.test.tsx.snap +5 -5
  72. package/lib/components/HeaderNew/Header.tsx +2 -2
  73. package/lib/components/HeaderNew/__tests__/__snapshots__/Header.test.tsx.snap +2 -2
  74. package/lib/components/Input/Input.tsx +6 -6
  75. package/lib/components/Input/__tests__/__snapshots__/Input.test.tsx.snap +4 -4
  76. package/lib/components/Label/Label.tsx +2 -2
  77. package/lib/components/Label/__tests__/__snapshots__/Label.test.tsx.snap +1 -1
  78. package/lib/components/Layout/Layout.stories.tsx +12 -12
  79. package/lib/components/Link/Link.tsx +4 -4
  80. package/lib/components/Menu/MenuContent.tsx +3 -3
  81. package/lib/components/Menu/MenuItem.tsx +10 -8
  82. package/lib/components/Menu/MenuSection.tsx +1 -1
  83. package/lib/components/Modal/Modal.tsx +5 -15
  84. package/lib/components/Modal/__tests__/__snapshots__/Modal.test.tsx.snap +2 -2
  85. package/lib/components/NativeDatepicker/NativeDatepicker.tsx +9 -7
  86. package/lib/components/Radio/Radio.tsx +13 -4
  87. package/lib/components/Radio/__tests__/__snapshots__/Radio.test.tsx.snap +3 -3
  88. package/lib/components/Search/Search.tsx +2 -2
  89. package/lib/components/Search/__tests__/__snapshots__/Search.test.tsx.snap +2 -2
  90. package/lib/components/Select/subcomponents/CustomSelect.tsx +4 -4
  91. package/lib/components/Spinner/Spinner.stories.tsx +3 -3
  92. package/lib/components/Spinner/Spinner.tsx +1 -1
  93. package/lib/components/Table/__tests__/__snapshots__/Table.test.tsx.snap +3 -3
  94. package/lib/components/Table/subcomponents/Head.tsx +2 -2
  95. package/lib/components/Table/subcomponents/Row.tsx +1 -1
  96. package/lib/components/Textarea/Textarea.tsx +7 -8
  97. package/lib/components/Textarea/__tests__/__snapshots__/Textarea.test.tsx.snap +4 -4
  98. package/lib/components/Timepicker/Timepicker.tsx +6 -4
  99. package/lib/components/Toggle/Toggle.tsx +3 -1
  100. package/lib/components/Toggle/ToggleHandle.tsx +4 -2
  101. package/lib/components/Tooltip/Tooltip.tsx +8 -5
  102. package/lib/components/Tooltip/__tests__/__snapshots__/tooltip.test.tsx.snap +2 -2
  103. package/lib/components/UclLogo/UclLogoNegativeSpace.tsx +7 -3
  104. package/lib/components/UclLogoNew/UclLogo.tsx +8 -9
  105. package/lib/components/UclLogoNew/__tests__/UclLogo.test.tsx +41 -0
  106. package/lib/components/WeekPicker/__tests__/WeekPicker.test.tsx +36 -0
  107. package/lib/components/WeekPicker/subcomponents/DatepickerInput.tsx +6 -6
  108. package/lib/components/WeekPicker/subcomponents/VisibleField.tsx +9 -9
  109. package/lib/theme/dark/darkColour.ts +2 -1
  110. package/lib/theme/dark/darkTheme.ts +8 -1
  111. package/lib/theme/index.ts +1 -0
  112. package/lib/theme/light/lightColour.ts +2 -1
  113. package/lib/theme/light/lightTheme.ts +7 -0
  114. package/lib/theme/original/defaultTheme.ts +10 -0
  115. package/lib/theme/original/originalColourNewStructure.ts +2 -1
  116. package/package.json +2 -2
@@ -20,11 +20,12 @@ const FooterNavLink = ({
20
20
 
21
21
  const baseStyle = css`
22
22
  text-decoration: none;
23
- color: #fafafa; // todo: fix ${theme.colour.text.brandInverse};
23
+ color: ${theme.colour.text.brandInverse};
24
24
  font-family: ${theme.typography.body.md.fontFamily};
25
25
  font-size: 14px;
26
- line-height: ${theme.typography.body.md
27
- .lineHeight}%; // todo: change foundations lib to use non-percent number
26
+ line-height: ${
27
+ theme.typography.body.md.lineHeight
28
+ }%; // todo: change foundations lib to use non-percent number
28
29
  transition: color 0.2s ease-out;
29
30
 
30
31
  &:focus-visible {
@@ -33,12 +34,12 @@ const FooterNavLink = ({
33
34
  }
34
35
 
35
36
  &:visited {
36
- color: ${theme.color.text.inverted};
37
+ color: ${theme.colour.text.brandInverse};
37
38
  }
38
39
 
39
40
  &:hover {
40
41
  text-decoration: underline;
41
- color: ${theme.color.text.inverted};
42
+ color: ${theme.colour.text.brandInverse};
42
43
  }
43
44
 
44
45
  @media screen and (min-width: ${theme.breakpoints.desktop}px) {
@@ -78,7 +78,7 @@ const LegalAndCopyright = ({
78
78
 
79
79
  const copyrightStyle = css`
80
80
  margin-top: ${theme.margin.m24};
81
- color: ${theme.colour.text.inverse};
81
+ color: ${theme.colour.text.brandInverse};
82
82
  opacity: 0.6; // todo
83
83
  font-family: ${theme.typography.body.md.fontFamily};
84
84
  line-height: ${theme.typography.body.md.lineHeight}%;
@@ -100,48 +100,48 @@ const LegalAndCopyright = ({
100
100
  <a
101
101
  className={linkStyle}
102
102
  href={disclaimer}
103
- target="_blank"
104
- rel="noopener noreferrer"
103
+ target='_blank'
104
+ rel='noopener noreferrer'
105
105
  >
106
106
  Disclaimer
107
107
  </a>
108
108
  <a
109
109
  className={linkStyle}
110
110
  href={freedomOfInformation}
111
- target="_blank"
112
- rel="noopener noreferrer"
111
+ target='_blank'
112
+ rel='noopener noreferrer'
113
113
  >
114
114
  Freedom of Information
115
115
  </a>
116
116
  <a
117
117
  className={linkStyle}
118
118
  href={accessibility}
119
- target="_blank"
120
- rel="noopener noreferrer"
119
+ target='_blank'
120
+ rel='noopener noreferrer'
121
121
  >
122
122
  Accessibility
123
123
  </a>
124
124
  <a
125
125
  className={linkStyle}
126
126
  href={cookies}
127
- target="_blank"
128
- rel="noopener noreferrer"
127
+ target='_blank'
128
+ rel='noopener noreferrer'
129
129
  >
130
130
  Cookies
131
131
  </a>
132
132
  <a
133
133
  className={linkStyle}
134
134
  href={privacy}
135
- target="_blank"
136
- rel="noopener noreferrer"
135
+ target='_blank'
136
+ rel='noopener noreferrer'
137
137
  >
138
138
  Privacy
139
139
  </a>
140
140
  <a
141
141
  className={linkStyle}
142
142
  href={slaveryStatement}
143
- target="_blank"
144
- rel="noopener noreferrer"
143
+ target='_blank'
144
+ rel='noopener noreferrer'
145
145
  >
146
146
  Slavery statement
147
147
  </a>
@@ -149,8 +149,8 @@ const LegalAndCopyright = ({
149
149
  <a
150
150
  className={linkStyle}
151
151
  href={login}
152
- target="_blank"
153
- rel="noopener noreferrer"
152
+ target='_blank'
153
+ rel='noopener noreferrer'
154
154
  >
155
155
  Login
156
156
  </a>
@@ -61,11 +61,12 @@ const LogoAddressAndSocial = ({
61
61
  `;
62
62
 
63
63
  const addressStyle = css`
64
- color: ${theme.colour.text.inverse};
64
+ color: ${theme.colour.text.brandInverse};
65
65
  opacity: 0.6; // todo: use alpha white colour from theme
66
66
  font-family: ${theme.typography.body.md.fontFamily};
67
- line-height: ${theme.typography.body.md
68
- .lineHeight}%; // todo: change foundations lib to use non-percent number
67
+ line-height: ${
68
+ theme.typography.body.md.lineHeight
69
+ }%; // todo: change foundations lib to use non-percent number
69
70
  `;
70
71
 
71
72
  const telephoneStyle = css`
@@ -73,11 +74,12 @@ const LogoAddressAndSocial = ({
73
74
  `;
74
75
 
75
76
  const telephoneLinkStyle = css`
76
- color: ${theme.colour.text.inverse};
77
+ color: ${theme.colour.text.brandInverse};
77
78
  opacity: 0.6; // todo: use alpha white colour from theme
78
79
  font-family: ${theme.typography.body.md.fontFamily};
79
- line-height: ${theme.typography.body.md
80
- .lineHeight}%; // todo: change foundations lib to use non-percent number
80
+ line-height: ${
81
+ theme.typography.body.md.lineHeight
82
+ }%; // todo: change foundations lib to use non-percent number
81
83
  text-decoration: none;
82
84
  transition: color 0.2s ease-out;
83
85
 
@@ -51,7 +51,7 @@ const SocialLink = ({
51
51
  width: 36px;
52
52
  height: 36px;
53
53
  box-sizing: border-box;
54
- color: ${theme.colour.icon.inverse};
54
+ color: ${theme.colour.icon.brandInverse};
55
55
  border: 1px solid ${theme.colour.border.brandInverseSecondary};
56
56
  transition: color 0.2s ease-out;
57
57
  display: inline-flex;
@@ -60,7 +60,7 @@ const SocialLink = ({
60
60
 
61
61
  &:visited,
62
62
  &:active {
63
- color: ${theme.colour.icon.inverse};
63
+ color: ${theme.colour.icon.brandInverse};
64
64
  }
65
65
 
66
66
  &:focus-visible {
@@ -69,8 +69,8 @@ const SocialLink = ({
69
69
  }
70
70
 
71
71
  &:hover {
72
- color: ${theme.colour.icon.inverse};
73
- background-color: ${theme.colour.fill.brandInverseSecondary};
72
+ color: ${theme.colour.icon.brandInverse};
73
+ background-color: ${theme.colour.fill.inverseHover};
74
74
  }
75
75
  `;
76
76
 
@@ -29,7 +29,7 @@ exports[`Footer > snapshot: footer links provided 1`] = `
29
29
  class="css-x7g5ai"
30
30
  >
31
31
  <div
32
- class="css-hv3fjn"
32
+ class="css-zrpfhw"
33
33
  >
34
34
  University College London
35
35
  <br />
@@ -39,7 +39,7 @@ exports[`Footer > snapshot: footer links provided 1`] = `
39
39
  class="css-ems5xl"
40
40
  >
41
41
  <a
42
- class="css-1elkdu3"
42
+ class="css-iyfaeh"
43
43
  href="tel:+4402076792000"
44
44
  >
45
45
  Tel: +44 (0) 20 7679 2000
@@ -51,7 +51,7 @@ exports[`Footer > snapshot: footer links provided 1`] = `
51
51
  >
52
52
  <a
53
53
  aria-label="Instagram"
54
- class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-41h657"
54
+ class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1x2yumo"
55
55
  data-testid="ucl-uikit-footer__social-link"
56
56
  href="https://www.instagram.com/ucl/"
57
57
  target="_blank"
@@ -80,7 +80,7 @@ exports[`Footer > snapshot: footer links provided 1`] = `
80
80
  </a>
81
81
  <a
82
82
  aria-label="LinkedIn"
83
- class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-41h657"
83
+ class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1x2yumo"
84
84
  data-testid="ucl-uikit-footer__social-link"
85
85
  href="https://www.linkedin.com/school/university-college-london/"
86
86
  target="_blank"
@@ -108,7 +108,7 @@ exports[`Footer > snapshot: footer links provided 1`] = `
108
108
  </a>
109
109
  <a
110
110
  aria-label="YouTube"
111
- class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-41h657"
111
+ class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1x2yumo"
112
112
  data-testid="ucl-uikit-footer__social-link"
113
113
  href="https://www.youtube.com/ucltv"
114
114
  target="_blank"
@@ -134,7 +134,7 @@ exports[`Footer > snapshot: footer links provided 1`] = `
134
134
  </a>
135
135
  <a
136
136
  aria-label="TikTok"
137
- class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-41h657"
137
+ class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1x2yumo"
138
138
  data-testid="ucl-uikit-footer__social-link"
139
139
  href="https://www.tiktok.com/@uclofficial"
140
140
  target="_blank"
@@ -160,7 +160,7 @@ exports[`Footer > snapshot: footer links provided 1`] = `
160
160
  </a>
161
161
  <a
162
162
  aria-label="Facebook"
163
- class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-41h657"
163
+ class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1x2yumo"
164
164
  data-testid="ucl-uikit-footer__social-link"
165
165
  href="https://www.facebook.com/uclofficial/"
166
166
  target="_blank"
@@ -186,7 +186,7 @@ exports[`Footer > snapshot: footer links provided 1`] = `
186
186
  </a>
187
187
  <a
188
188
  aria-label="Bluesky"
189
- class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-41h657"
189
+ class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1x2yumo"
190
190
  data-testid="ucl-uikit-footer__social-link"
191
191
  href="https://bsky.app/profile/ucl.ac.uk"
192
192
  target="_blank"
@@ -212,7 +212,7 @@ exports[`Footer > snapshot: footer links provided 1`] = `
212
212
  </a>
213
213
  <a
214
214
  aria-label="Threads"
215
- class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-41h657"
215
+ class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1x2yumo"
216
216
  data-testid="ucl-uikit-footer__social-link"
217
217
  href="https://www.threads.com/@ucl"
218
218
  target="_blank"
@@ -239,7 +239,7 @@ exports[`Footer > snapshot: footer links provided 1`] = `
239
239
  </a>
240
240
  <a
241
241
  aria-label="SoundCloud"
242
- class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-41h657"
242
+ class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1x2yumo"
243
243
  data-testid="ucl-uikit-footer__social-link"
244
244
  href="https://soundcloud.com/uclsound"
245
245
  target="_blank"
@@ -273,7 +273,7 @@ exports[`Footer > snapshot: footer links provided 1`] = `
273
273
  data-testid="ucl-uikit-footer__back-to-top"
274
274
  >
275
275
  <button
276
- class="css-zla959"
276
+ class="css-18idfzv"
277
277
  >
278
278
  Back to top
279
279
  <svg
@@ -353,7 +353,7 @@ exports[`Footer > snapshot: footer links provided 1`] = `
353
353
  </a>
354
354
  </div>
355
355
  <div
356
- class="css-4n563l"
356
+ class="css-i2x11w"
357
357
  >
358
358
  ©
359
359
  2026
@@ -376,23 +376,23 @@ exports[`Footer > snapshot: nav links 1`] = `
376
376
  data-testid="ucl-uikit-footer__links"
377
377
  >
378
378
  <div
379
- class="ucl-uikit-footer__column css-1jpmiw0"
379
+ class="ucl-uikit-footer__column css-1qdqdud"
380
380
  data-testid="ucl-uikit-footer__column"
381
381
  >
382
382
  <h3
383
- class="css-fab13s"
383
+ class="css-18ul2r4"
384
384
  >
385
385
  Category 1
386
386
  </h3>
387
387
  <a
388
- class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__nav-link css-55xi1m"
388
+ class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__nav-link css-138c06l"
389
389
  data-testid="ucl-uikit-footer__nav-link"
390
390
  href="#"
391
391
  >
392
392
  Item 1
393
393
  </a>
394
394
  <a
395
- class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__nav-link css-55xi1m"
395
+ class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__nav-link css-138c06l"
396
396
  data-testid="ucl-uikit-footer__nav-link"
397
397
  href="#"
398
398
  >
@@ -400,23 +400,23 @@ exports[`Footer > snapshot: nav links 1`] = `
400
400
  </a>
401
401
  </div>
402
402
  <div
403
- class="ucl-uikit-footer__column css-1jpmiw0"
403
+ class="ucl-uikit-footer__column css-1qdqdud"
404
404
  data-testid="ucl-uikit-footer__column"
405
405
  >
406
406
  <h3
407
- class="css-fab13s"
407
+ class="css-18ul2r4"
408
408
  >
409
409
  Category 2
410
410
  </h3>
411
411
  <a
412
- class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__nav-link css-55xi1m"
412
+ class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__nav-link css-138c06l"
413
413
  data-testid="ucl-uikit-footer__nav-link"
414
414
  href="#"
415
415
  >
416
416
  Item 1
417
417
  </a>
418
418
  <a
419
- class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__nav-link css-55xi1m"
419
+ class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__nav-link css-138c06l"
420
420
  data-testid="ucl-uikit-footer__nav-link"
421
421
  href="#"
422
422
  >
@@ -445,7 +445,7 @@ exports[`Footer > snapshot: nav links 1`] = `
445
445
  class="css-x7g5ai"
446
446
  >
447
447
  <div
448
- class="css-hv3fjn"
448
+ class="css-zrpfhw"
449
449
  >
450
450
  University College London
451
451
  <br />
@@ -455,7 +455,7 @@ exports[`Footer > snapshot: nav links 1`] = `
455
455
  class="css-ems5xl"
456
456
  >
457
457
  <a
458
- class="css-1elkdu3"
458
+ class="css-iyfaeh"
459
459
  href="tel:+4402076792000"
460
460
  >
461
461
  Tel: +44 (0) 20 7679 2000
@@ -467,7 +467,7 @@ exports[`Footer > snapshot: nav links 1`] = `
467
467
  >
468
468
  <a
469
469
  aria-label="Instagram"
470
- class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-41h657"
470
+ class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1x2yumo"
471
471
  data-testid="ucl-uikit-footer__social-link"
472
472
  href="https://www.instagram.com/ucl/"
473
473
  target="_blank"
@@ -496,7 +496,7 @@ exports[`Footer > snapshot: nav links 1`] = `
496
496
  </a>
497
497
  <a
498
498
  aria-label="LinkedIn"
499
- class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-41h657"
499
+ class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1x2yumo"
500
500
  data-testid="ucl-uikit-footer__social-link"
501
501
  href="https://www.linkedin.com/school/university-college-london/"
502
502
  target="_blank"
@@ -524,7 +524,7 @@ exports[`Footer > snapshot: nav links 1`] = `
524
524
  </a>
525
525
  <a
526
526
  aria-label="YouTube"
527
- class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-41h657"
527
+ class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1x2yumo"
528
528
  data-testid="ucl-uikit-footer__social-link"
529
529
  href="https://www.youtube.com/ucltv"
530
530
  target="_blank"
@@ -550,7 +550,7 @@ exports[`Footer > snapshot: nav links 1`] = `
550
550
  </a>
551
551
  <a
552
552
  aria-label="TikTok"
553
- class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-41h657"
553
+ class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1x2yumo"
554
554
  data-testid="ucl-uikit-footer__social-link"
555
555
  href="https://www.tiktok.com/@uclofficial"
556
556
  target="_blank"
@@ -576,7 +576,7 @@ exports[`Footer > snapshot: nav links 1`] = `
576
576
  </a>
577
577
  <a
578
578
  aria-label="Facebook"
579
- class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-41h657"
579
+ class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1x2yumo"
580
580
  data-testid="ucl-uikit-footer__social-link"
581
581
  href="https://www.facebook.com/uclofficial/"
582
582
  target="_blank"
@@ -602,7 +602,7 @@ exports[`Footer > snapshot: nav links 1`] = `
602
602
  </a>
603
603
  <a
604
604
  aria-label="Bluesky"
605
- class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-41h657"
605
+ class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1x2yumo"
606
606
  data-testid="ucl-uikit-footer__social-link"
607
607
  href="https://bsky.app/profile/ucl.ac.uk"
608
608
  target="_blank"
@@ -628,7 +628,7 @@ exports[`Footer > snapshot: nav links 1`] = `
628
628
  </a>
629
629
  <a
630
630
  aria-label="Threads"
631
- class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-41h657"
631
+ class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1x2yumo"
632
632
  data-testid="ucl-uikit-footer__social-link"
633
633
  href="https://www.threads.com/@ucl"
634
634
  target="_blank"
@@ -655,7 +655,7 @@ exports[`Footer > snapshot: nav links 1`] = `
655
655
  </a>
656
656
  <a
657
657
  aria-label="SoundCloud"
658
- class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-41h657"
658
+ class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1x2yumo"
659
659
  data-testid="ucl-uikit-footer__social-link"
660
660
  href="https://soundcloud.com/uclsound"
661
661
  target="_blank"
@@ -689,7 +689,7 @@ exports[`Footer > snapshot: nav links 1`] = `
689
689
  data-testid="ucl-uikit-footer__back-to-top"
690
690
  >
691
691
  <button
692
- class="css-zla959"
692
+ class="css-18idfzv"
693
693
  >
694
694
  Back to top
695
695
  <svg
@@ -769,7 +769,7 @@ exports[`Footer > snapshot: nav links 1`] = `
769
769
  </a>
770
770
  </div>
771
771
  <div
772
- class="css-4n563l"
772
+ class="css-i2x11w"
773
773
  >
774
774
  ©
775
775
  2026
@@ -808,7 +808,7 @@ exports[`Footer > snapshot: no nav links 1`] = `
808
808
  class="css-x7g5ai"
809
809
  >
810
810
  <div
811
- class="css-hv3fjn"
811
+ class="css-zrpfhw"
812
812
  >
813
813
  University College London
814
814
  <br />
@@ -818,7 +818,7 @@ exports[`Footer > snapshot: no nav links 1`] = `
818
818
  class="css-ems5xl"
819
819
  >
820
820
  <a
821
- class="css-1elkdu3"
821
+ class="css-iyfaeh"
822
822
  href="tel:+4402076792000"
823
823
  >
824
824
  Tel: +44 (0) 20 7679 2000
@@ -830,7 +830,7 @@ exports[`Footer > snapshot: no nav links 1`] = `
830
830
  >
831
831
  <a
832
832
  aria-label="Instagram"
833
- class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-41h657"
833
+ class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1x2yumo"
834
834
  data-testid="ucl-uikit-footer__social-link"
835
835
  href="https://www.instagram.com/ucl/"
836
836
  target="_blank"
@@ -859,7 +859,7 @@ exports[`Footer > snapshot: no nav links 1`] = `
859
859
  </a>
860
860
  <a
861
861
  aria-label="LinkedIn"
862
- class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-41h657"
862
+ class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1x2yumo"
863
863
  data-testid="ucl-uikit-footer__social-link"
864
864
  href="https://www.linkedin.com/school/university-college-london/"
865
865
  target="_blank"
@@ -887,7 +887,7 @@ exports[`Footer > snapshot: no nav links 1`] = `
887
887
  </a>
888
888
  <a
889
889
  aria-label="YouTube"
890
- class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-41h657"
890
+ class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1x2yumo"
891
891
  data-testid="ucl-uikit-footer__social-link"
892
892
  href="https://www.youtube.com/ucltv"
893
893
  target="_blank"
@@ -913,7 +913,7 @@ exports[`Footer > snapshot: no nav links 1`] = `
913
913
  </a>
914
914
  <a
915
915
  aria-label="TikTok"
916
- class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-41h657"
916
+ class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1x2yumo"
917
917
  data-testid="ucl-uikit-footer__social-link"
918
918
  href="https://www.tiktok.com/@uclofficial"
919
919
  target="_blank"
@@ -939,7 +939,7 @@ exports[`Footer > snapshot: no nav links 1`] = `
939
939
  </a>
940
940
  <a
941
941
  aria-label="Facebook"
942
- class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-41h657"
942
+ class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1x2yumo"
943
943
  data-testid="ucl-uikit-footer__social-link"
944
944
  href="https://www.facebook.com/uclofficial/"
945
945
  target="_blank"
@@ -965,7 +965,7 @@ exports[`Footer > snapshot: no nav links 1`] = `
965
965
  </a>
966
966
  <a
967
967
  aria-label="Bluesky"
968
- class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-41h657"
968
+ class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1x2yumo"
969
969
  data-testid="ucl-uikit-footer__social-link"
970
970
  href="https://bsky.app/profile/ucl.ac.uk"
971
971
  target="_blank"
@@ -991,7 +991,7 @@ exports[`Footer > snapshot: no nav links 1`] = `
991
991
  </a>
992
992
  <a
993
993
  aria-label="Threads"
994
- class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-41h657"
994
+ class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1x2yumo"
995
995
  data-testid="ucl-uikit-footer__social-link"
996
996
  href="https://www.threads.com/@ucl"
997
997
  target="_blank"
@@ -1018,7 +1018,7 @@ exports[`Footer > snapshot: no nav links 1`] = `
1018
1018
  </a>
1019
1019
  <a
1020
1020
  aria-label="SoundCloud"
1021
- class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-41h657"
1021
+ class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1x2yumo"
1022
1022
  data-testid="ucl-uikit-footer__social-link"
1023
1023
  href="https://soundcloud.com/uclsound"
1024
1024
  target="_blank"
@@ -1052,7 +1052,7 @@ exports[`Footer > snapshot: no nav links 1`] = `
1052
1052
  data-testid="ucl-uikit-footer__back-to-top"
1053
1053
  >
1054
1054
  <button
1055
- class="css-zla959"
1055
+ class="css-18idfzv"
1056
1056
  >
1057
1057
  Back to top
1058
1058
  <svg
@@ -1132,7 +1132,7 @@ exports[`Footer > snapshot: no nav links 1`] = `
1132
1132
  </a>
1133
1133
  </div>
1134
1134
  <div
1135
- class="css-4n563l"
1135
+ class="css-i2x11w"
1136
1136
  >
1137
1137
  ©
1138
1138
  2026
@@ -39,15 +39,15 @@ const Header = ({
39
39
  const [theme] = useTheme();
40
40
 
41
41
  const baseStyle = css`
42
- background-color: ${theme.color.neutral.white};
42
+ background-color: ${theme.colour.surface.default};
43
43
  font-family: ${theme.font.family.primary};
44
44
  font-synthesis: none;
45
45
  text-rendering: optimizeLegibility;
46
46
  -webkit-font-smoothing: antialiased;
47
47
  -moz-osx-font-smoothing: grayscale;
48
48
  position: relative;
49
- background-color: ${theme.color.neutral.grey90};
50
- color: ${theme.color.text.inverted};
49
+ background-color: ${theme.colour.surface.inverseBrandPrimary};
50
+ color: ${theme.colour.text.brandInverse};
51
51
  display: flex;
52
52
  justify-content: center;
53
53
  align-items: center;
@@ -2,7 +2,7 @@
2
2
 
3
3
  exports[`Header > snapshot: variant=avatar 1`] = `
4
4
  <header
5
- class="ucl-uikit-header css-bvzw7v"
5
+ class="ucl-uikit-header css-u33frp"
6
6
  data-testid="ucl-uikit-header"
7
7
  >
8
8
  <svg
@@ -30,7 +30,7 @@ exports[`Header > snapshot: variant=avatar 1`] = `
30
30
 
31
31
  exports[`Header > snapshot: variant=breadcrumbs 1`] = `
32
32
  <header
33
- class="ucl-uikit-header css-bvzw7v"
33
+ class="ucl-uikit-header css-u33frp"
34
34
  data-testid="ucl-uikit-header"
35
35
  >
36
36
  <svg
@@ -4,8 +4,7 @@ import { useTheme } from '../..';
4
4
 
5
5
  export const NAME = 'ucl-uikit-header__bottom--breadcrumbs';
6
6
 
7
- export interface HeaderBottomBreadcrumbsProps
8
- extends HTMLAttributes<HTMLElement> {
7
+ export interface HeaderBottomBreadcrumbsProps extends HTMLAttributes<HTMLElement> {
9
8
  testId?: string;
10
9
  }
11
10
 
@@ -18,10 +17,10 @@ const HeaderBottomBreadcrumbs = ({
18
17
  const [theme] = useTheme();
19
18
 
20
19
  const baseStyle = css`
21
- color: ${theme.color.text.primary};
20
+ color: ${theme.colour.text.default};
22
21
  padding: ${theme.padding.p16} 60px;
23
22
  box-sizing: border-box;
24
- border-bottom: 1px solid ${theme.color.neutral.grey15};
23
+ border-bottom: 1px solid ${theme.colour.border.subtle};
25
24
  font-size: ${theme.font.size.f14};
26
25
  `;
27
26
 
@@ -30,10 +30,10 @@ const Header = ({
30
30
  const [theme] = useTheme();
31
31
 
32
32
  const baseStyle = css`
33
- color: ${theme.color.text.primary};
33
+ color: ${theme.colour.text.default};
34
34
  padding: ${theme.padding.p20} 60px;
35
35
  box-sizing: border-box;
36
- border-bottom: 1px solid ${theme.color.neutral.grey15};
36
+ border-bottom: 1px solid ${theme.colour.border.subtle};
37
37
  display: flex;
38
38
  justify-content: space-between;
39
39
  align-items: center;
@@ -54,7 +54,7 @@ const Header = ({
54
54
 
55
55
  const subheadingStyle = css`
56
56
  margin: ${theme.margin.m8} 0 0 0;
57
- color: ${theme.color.text.secondary};
57
+ color: ${theme.colour.text.secondary};
58
58
  font-size: ${theme.font.size.f16};
59
59
  font-weight: 400;
60
60
  line-height: 16px;
@@ -65,7 +65,7 @@ const Header = ({
65
65
  margin-bottom: -4px;
66
66
  margin-right: -${theme.padding.p8}; // subtract padding-right
67
67
  padding: ${theme.padding.p8} ${theme.padding.p8};
68
- color: ${theme.color.text.primary};
68
+ color: ${theme.colour.text.default};
69
69
  display: flex;
70
70
  justify-content: space-between;
71
71
  align-items: center;
@@ -73,7 +73,7 @@ const Header = ({
73
73
  transition: background-color 0.15s ease-out;
74
74
 
75
75
  &:hover {
76
- background-color: ${theme.color.neutral.grey5};
76
+ background-color: ${theme.colour.fill.brandSubtleHover};
77
77
  }
78
78
  `;
79
79
 
@@ -92,7 +92,7 @@ const Header = ({
92
92
  const nameAndRoleStyle = css`
93
93
  flex: 1;
94
94
  font-size: ${theme.font.size.f14};
95
- color: ${theme.color.text.primary};
95
+ color: ${theme.colour.text.default};
96
96
  `;
97
97
 
98
98
  const nameStyle = css`
@@ -100,7 +100,7 @@ const Header = ({
100
100
  `;
101
101
 
102
102
  const roleStyle = css`
103
- color: ${theme.color.text.secondary};
103
+ color: ${theme.colour.text.secondary};
104
104
  `;
105
105
 
106
106
  const chevronStyle = css`