@comicrelief/component-library 8.47.2 → 8.47.4

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 (26) hide show
  1. package/dist/components/Atoms/SocialIcons/Icon/Icon.js +1 -1
  2. package/dist/components/Atoms/SocialIcons/SocialIcons.js +39 -14
  3. package/dist/components/Atoms/SocialIcons/__snapshots__/SocialIcons.test.js.snap +36 -12
  4. package/dist/components/Molecules/EmailSignUp/EmailSignUp.js +13 -1
  5. package/dist/components/Molecules/EmailSignUp/EmailSignUp.style.js +6 -6
  6. package/dist/components/Molecules/HeroBanner/HeroBanner.md +1 -3
  7. package/dist/components/Organisms/Footer/FundraisingRegulatorLogo/FundraisingRegulatorLogo.js +2 -2
  8. package/dist/components/Organisms/Footer/__snapshots__/Footer.test.js.snap +12 -4
  9. package/dist/components/Organisms/FooterNew/FooterNew.js +4 -2
  10. package/dist/components/Organisms/FooterNew/FooterNew.style.js +68 -68
  11. package/dist/components/Organisms/FooterNew/__snapshots__/FooterNew.test.js.snap +281 -177
  12. package/dist/theme/shared/animations.js +14 -2
  13. package/package.json +1 -1
  14. package/src/components/Atoms/SocialIcons/Icon/Icon.js +1 -0
  15. package/src/components/Atoms/SocialIcons/SocialIcons.js +7 -3
  16. package/src/components/Atoms/SocialIcons/__snapshots__/SocialIcons.test.js.snap +36 -12
  17. package/src/components/Molecules/EmailSignUp/EmailSignUp.js +7 -1
  18. package/src/components/Molecules/EmailSignUp/EmailSignUp.style.js +56 -6
  19. package/src/components/Molecules/HeroBanner/HeroBanner.md +1 -3
  20. package/src/components/Molecules/HeroBanner/HeroBanner.style.js +0 -1
  21. package/src/components/Organisms/Footer/FundraisingRegulatorLogo/FundraisingRegulatorLogo.js +2 -2
  22. package/src/components/Organisms/Footer/__snapshots__/Footer.test.js.snap +12 -4
  23. package/src/components/Organisms/FooterNew/FooterNew.js +2 -2
  24. package/src/components/Organisms/FooterNew/FooterNew.style.js +27 -12
  25. package/src/components/Organisms/FooterNew/__snapshots__/FooterNew.test.js.snap +281 -177
  26. package/src/theme/shared/animations.js +27 -1
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.springScaleAnimation = exports.logoRotateAnimation = exports.bounceUpAnimation = void 0;
6
+ exports.springScaleAnimation = exports.logoRotateAnimation = exports.formFieldInputAnimation = exports.bounceUpAnimation = void 0;
7
7
  var _styledComponents = require("styled-components");
8
8
  /**
9
9
  * Logo rotation animation on hover
@@ -44,6 +44,18 @@ const springScaleAnimation = function (animateScale) {
44
44
  return (0, _styledComponents.css)(["transition:transform ", "s cubic-bezier(0.68,", ",0.265,", ");transform-origin:center;&:hover,&:focus{transform:scale(", ");}"], duration, pullBack, overshoot, scaleFactor);
45
45
  };
46
46
 
47
+ /**
48
+ * formFieldInputAnimation on hover / focus-within
49
+ * Slides the text inside an input a few pixels to the right.
50
+ * @param {number} shiftPx - Pixel amount to indent the text (default: 4)
51
+ * @returns {css}
52
+ */
53
+ exports.springScaleAnimation = springScaleAnimation;
54
+ const formFieldInputAnimation = function () {
55
+ let shiftPx = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 4;
56
+ return (0, _styledComponents.css)(["input,textarea{text-indent:0;transition:text-indent 0.18s ease;}&:hover input,&:hover textarea,&:focus-within input,&:focus-within textarea{text-indent:", "px;}"], shiftPx);
57
+ };
58
+
47
59
  /**
48
60
  * bounceUpAnimation animation on hover
49
61
  * Applies a smooth spring-like position transition that moves the element up on hover/focus
@@ -52,7 +64,7 @@ const springScaleAnimation = function (animateScale) {
52
64
  * @param {number} bounceIntensity - Intensity of the springy bounce effect (0-3, default: 1)
53
65
  * @returns {css} template literal for the animation
54
66
  */
55
- exports.springScaleAnimation = springScaleAnimation;
67
+ exports.formFieldInputAnimation = formFieldInputAnimation;
56
68
  const bounceUpAnimation = function (animateScale) {
57
69
  let pixelMovement = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 10;
58
70
  let bounceIntensity = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@comicrelief/component-library",
3
3
  "author": "Comic Relief Engineering Team",
4
- "version": "8.47.2",
4
+ "version": "8.47.4",
5
5
  "main": "dist/index.js",
6
6
  "license": "ISC",
7
7
  "jest": {
@@ -73,6 +73,7 @@ const StyledLink = styled.a`
73
73
  background-color: ${({ theme }) => theme.color('grey_4')};
74
74
  border-radius: 0.5rem;
75
75
  padding: 0.5rem;
76
+ box-sizing: border-box;
76
77
  display: flex;
77
78
  align-items: center;
78
79
  justify-content: center;
@@ -8,8 +8,10 @@ import spacing from '../../../theme/shared/spacing';
8
8
 
9
9
  const StyledList = styled.ul`
10
10
  display: flex;
11
+ flex-wrap: ${({ newStyle }) => (newStyle ? 'wrap' : 'nowrap')};
12
+ gap: ${({ newStyle }) => (newStyle ? `${spacing('l')}` : '0')};
11
13
  list-style-type: none;
12
- justify-content: ${newStyle => (newStyle ? 'space-around' : 'center')};
14
+ justify-content: ${newStyle => (newStyle ? 'flex-start' : 'center')};
13
15
  margin: ${({ newStyle }) => (newStyle ? `${spacing('lg')} 0` : '0 auto 0 0')};
14
16
  padding: 0;
15
17
  align-items: center;
@@ -21,11 +23,13 @@ const StyledList = styled.ul`
21
23
  `;
22
24
 
23
25
  const StyledItem = styled.li`
24
- width: 48px;
26
+ width: ${({ newStyle }) => (newStyle ? '54px' : '48px')};
27
+ height: ${({ newStyle }) => (newStyle ? '54px' : 'auto')};
28
+ flex: 0 0 ${({ newStyle }) => (newStyle ? '54px' : '48px')};
25
29
  margin-right: ${({ newStyle }) => (newStyle ? '0' : spacing('m'))};
26
30
 
27
31
  @media ${({ theme }) => theme.breakpoints2026('M')} {
28
- margin-right: ${({ newStyle }) => (newStyle ? spacing('md') : spacing('m'))};
32
+ margin-right: ${({ newStyle }) => (newStyle ? 0 : spacing('m'))};
29
33
  }
30
34
  `;
31
35
 
@@ -25,11 +25,15 @@ exports[`renders correctly with Comic Relief links 1`] = `
25
25
  display: -webkit-flex;
26
26
  display: -ms-flexbox;
27
27
  display: flex;
28
+ -webkit-flex-wrap: nowrap;
29
+ -ms-flex-wrap: nowrap;
30
+ flex-wrap: nowrap;
31
+ gap: 0;
28
32
  list-style-type: none;
29
- -webkit-box-pack: space-around;
30
- -webkit-justify-content: space-around;
31
- -ms-flex-pack: space-around;
32
- justify-content: space-around;
33
+ -webkit-box-pack: start;
34
+ -webkit-justify-content: flex-start;
35
+ -ms-flex-pack: start;
36
+ justify-content: flex-start;
33
37
  margin: 0 auto 0 0;
34
38
  padding: 0;
35
39
  -webkit-align-items: center;
@@ -40,6 +44,10 @@ exports[`renders correctly with Comic Relief links 1`] = `
40
44
 
41
45
  .c1 {
42
46
  width: 48px;
47
+ height: auto;
48
+ -webkit-flex: 0 0 48px;
49
+ -ms-flex: 0 0 48px;
50
+ flex: 0 0 48px;
43
51
  margin-right: 1.5rem;
44
52
  }
45
53
 
@@ -166,11 +174,15 @@ exports[`renders correctly with Red Nose Day links and self target 1`] = `
166
174
  display: -webkit-flex;
167
175
  display: -ms-flexbox;
168
176
  display: flex;
177
+ -webkit-flex-wrap: nowrap;
178
+ -ms-flex-wrap: nowrap;
179
+ flex-wrap: nowrap;
180
+ gap: 0;
169
181
  list-style-type: none;
170
- -webkit-box-pack: space-around;
171
- -webkit-justify-content: space-around;
172
- -ms-flex-pack: space-around;
173
- justify-content: space-around;
182
+ -webkit-box-pack: start;
183
+ -webkit-justify-content: flex-start;
184
+ -ms-flex-pack: start;
185
+ justify-content: flex-start;
174
186
  margin: 0 auto 0 0;
175
187
  padding: 0;
176
188
  -webkit-align-items: center;
@@ -181,6 +193,10 @@ exports[`renders correctly with Red Nose Day links and self target 1`] = `
181
193
 
182
194
  .c1 {
183
195
  width: 48px;
196
+ height: auto;
197
+ -webkit-flex: 0 0 48px;
198
+ -ms-flex: 0 0 48px;
199
+ flex: 0 0 48px;
184
200
  margin-right: 1.5rem;
185
201
  }
186
202
 
@@ -307,11 +323,15 @@ exports[`renders correctly with Sport Relief links 1`] = `
307
323
  display: -webkit-flex;
308
324
  display: -ms-flexbox;
309
325
  display: flex;
326
+ -webkit-flex-wrap: nowrap;
327
+ -ms-flex-wrap: nowrap;
328
+ flex-wrap: nowrap;
329
+ gap: 0;
310
330
  list-style-type: none;
311
- -webkit-box-pack: space-around;
312
- -webkit-justify-content: space-around;
313
- -ms-flex-pack: space-around;
314
- justify-content: space-around;
331
+ -webkit-box-pack: start;
332
+ -webkit-justify-content: flex-start;
333
+ -ms-flex-pack: start;
334
+ justify-content: flex-start;
315
335
  margin: 0 auto 0 0;
316
336
  padding: 0;
317
337
  -webkit-align-items: center;
@@ -322,6 +342,10 @@ exports[`renders correctly with Sport Relief links 1`] = `
322
342
 
323
343
  .c1 {
324
344
  width: 48px;
345
+ height: auto;
346
+ -webkit-flex: 0 0 48px;
347
+ -ms-flex: 0 0 48px;
348
+ flex: 0 0 48px;
325
349
  margin-right: 1.5rem;
326
350
  }
327
351
 
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
+ import Arrow from '../../Atoms/Icons/Arrow';
3
4
  import {
4
5
  EmailSignUpWrapper,
5
6
  LabelWrapper,
@@ -39,7 +40,12 @@ const EmailSignUp = ({ formContext, ...rest }) => {
39
40
  </InputWrapper>
40
41
  <ButtonWrapper>
41
42
  <StyledEmailSignUpButton type="submit" color="white">
42
- Sign up
43
+ <span className="emailSignUpButtonContent">
44
+ <span className="emailSignUpButtonLabel">Sign up</span>
45
+ <span className="emailSignUpButtonArrow" aria-hidden="true">
46
+ <Arrow direction="right" colour="white" size={18} />
47
+ </span>
48
+ </span>
43
49
  </StyledEmailSignUpButton>
44
50
  </ButtonWrapper>
45
51
  </FormWrapper>
@@ -2,7 +2,7 @@ import styled, { css } from 'styled-components';
2
2
  import Input from '../../Atoms/Input/Input';
3
3
  import Button from '../../Atoms/Button/Button';
4
4
  import spacing from '../../../theme/shared/spacing';
5
- import { springScaleAnimation } from '../../../theme/shared/animations';
5
+ import { formFieldInputAnimation } from '../../../theme/shared/animations';
6
6
  import fontHelper from '../../../theme/crTheme/fontHelper';
7
7
 
8
8
  export const EmailSignUpWrapper = styled.div`
@@ -57,15 +57,20 @@ export const StyledEmailInput = styled(Input)`
57
57
  overflow: visible;
58
58
 
59
59
  @media ${({ theme }) => theme.breakpoints2026('M')} {
60
- ${springScaleAnimation(true, 1.04, 1)}
60
+ ${formFieldInputAnimation(4)}
61
61
  }
62
62
 
63
63
  input {
64
64
  ${({ theme }) => css`
65
- ${fontHelper(theme, 'formFieldInput')}
65
+ // Here we're not using the fontHelper because we want to override the font size. It's a special case where we don't
66
+ // want the default size for the formFieldInput field type.
67
+ font-size: 1rem;
68
+ line-height: 1.25rem;
69
+ font-family: ${theme.fontFamilies('Montserrat')};
66
70
  background-color: ${theme.color('grey_5')};
67
71
  border-color: transparent;
68
- transition: background-color 0.2s ease;
72
+ padding-left: 18px;
73
+ transition: background-color 0.2s ease, text-indent 0.18s ease;
69
74
  border: 1px solid ${theme.color('white')};
70
75
  color: ${theme.color('white')};
71
76
  &::placeholder {
@@ -92,16 +97,61 @@ export const ButtonWrapper = styled.div`
92
97
  export const StyledEmailSignUpButton = styled(Button)`
93
98
  margin: 0;
94
99
  font-family: ${({ theme }) => theme.fontFamilies('Montserrat')};
100
+ padding: ${spacing('md')};
95
101
  border-radius: 0.5rem;
102
+ overflow: hidden;
96
103
 
97
104
  @media ${({ theme }) => theme.breakpoints2026('M')} {
98
- ${springScaleAnimation(true, 1.02, 1)}
99
105
  margin: 0;
100
106
  }
101
107
 
108
+ .emailSignUpButtonContent {
109
+ display: inline-grid;
110
+ grid-auto-flow: column;
111
+ grid-template-columns: auto 18px;
112
+ column-gap: 0.5rem;
113
+ align-items: center;
114
+ justify-content: center;
115
+ line-height: 1;
116
+ }
117
+
118
+ .emailSignUpButtonLabel {
119
+ display: inline-block;
120
+ /* Counterbalance the reserved arrow slot so the label is centered at rest */
121
+ transform: translateX(13px);
122
+ transition: transform 0.22s ease;
123
+ will-change: transform;
124
+ }
125
+
126
+ .emailSignUpButtonArrow {
127
+ display: inline-flex;
128
+ align-items: center;
129
+ justify-content: center;
130
+ width: 18px;
131
+ height: 18px;
132
+ opacity: 0;
133
+ /* Start from the midpoint between the label and the arrow slot */
134
+ transform: translateX(-13px);
135
+ transition: opacity 0.22s ease, transform 0.22s ease;
136
+ will-change: transform, opacity;
137
+
138
+ svg {
139
+ fill: currentColor !important;
140
+ }
141
+ }
142
+
102
143
  &:hover,
103
144
  &:focus {
104
- background-color: ${({ theme }) => theme.color('white')};
145
+ background-color: ${({ theme }) => theme.color('grey_2')};
105
146
  color: ${({ theme }) => theme.color('black')};
147
+
148
+ .emailSignUpButtonLabel {
149
+ transform: translateX(0);
150
+ }
151
+
152
+ .emailSignUpButtonArrow {
153
+ opacity: 1;
154
+ transform: translateX(0);
155
+ }
106
156
  }
107
157
  `;
@@ -145,13 +145,11 @@ import variants from './_variants';
145
145
  </HeroBanner>
146
146
 
147
147
  <HeroBanner
148
- pageBackgroundColour="grey"
149
- textBannerCopyBackgroundColour="deep_violet"
150
148
  variant={variants.TEXT_BANNER}
151
149
  copyColour="white"
152
150
  >
153
151
  <Text tag="h1">
154
- Responsive Text Banner, default padding
152
+ Responsive Text Banner, default padding and colours
155
153
  </Text>
156
154
  <Text tag="p">
157
155
  Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua
@@ -142,7 +142,6 @@ const Copy = styled.div`
142
142
  : theme.color('white')
143
143
  )};
144
144
 
145
-
146
145
  ${({ variant, theme }) => (variant !== variants.TEXT_BANNER && `
147
146
  @media ${theme.breakpoints2026('L')} {
148
147
  padding: 2rem 2rem 1.75rem;
@@ -8,13 +8,13 @@ const FundraisingRegulatorWrapper = styled.div`
8
8
  // Overriding the baked-in styles for ease of update
9
9
  width: 75%;
10
10
  margin: ${({ $noMargin }) => ($noMargin ? '0' : `${spacing('lg')} 0`)};
11
- max-width: 200px;
11
+ max-width: 166px;
12
12
 
13
13
  img {
14
14
  display: block;
15
15
  }
16
16
 
17
- ${({ animateOnHover }) => animateOnHover && springScaleAnimation(true)}
17
+ ${({ animateOnHover }) => animateOnHover && springScaleAnimation(true, 1.03, 1)}
18
18
  `;
19
19
 
20
20
  const FundraisingRegulatorLogo = ({ animateOnHover = false, noMargin = false }) => (
@@ -164,11 +164,15 @@ exports[`renders correctly 1`] = `
164
164
  display: -webkit-flex;
165
165
  display: -ms-flexbox;
166
166
  display: flex;
167
+ -webkit-flex-wrap: nowrap;
168
+ -ms-flex-wrap: nowrap;
169
+ flex-wrap: nowrap;
170
+ gap: 0;
167
171
  list-style-type: none;
168
- -webkit-box-pack: space-around;
169
- -webkit-justify-content: space-around;
170
- -ms-flex-pack: space-around;
171
- justify-content: space-around;
172
+ -webkit-box-pack: start;
173
+ -webkit-justify-content: flex-start;
174
+ -ms-flex-pack: start;
175
+ justify-content: flex-start;
172
176
  margin: 0 auto 0 0;
173
177
  padding: 0;
174
178
  -webkit-align-items: center;
@@ -179,6 +183,10 @@ exports[`renders correctly 1`] = `
179
183
 
180
184
  .c4 {
181
185
  width: 48px;
186
+ height: auto;
187
+ -webkit-flex: 0 0 48px;
188
+ -ms-flex: 0 0 48px;
189
+ flex: 0 0 48px;
182
190
  margin-right: 1.5rem;
183
191
  }
184
192
 
@@ -82,7 +82,7 @@ const FooterNew = ({
82
82
 
83
83
  <LogosContainer $mobileOnly>
84
84
  <Brand href="/" title={`Go to ${campaign} homepage`} animateRotate={animateRotate}>
85
- <Logo sizeSm="48px" sizeMd="72px" rotate={false} campaign={campaign} />
85
+ <Logo sizeSm="59px" sizeMd="72px" rotate={false} campaign={campaign} />
86
86
  </Brand>
87
87
  </LogosContainer>
88
88
 
@@ -154,7 +154,7 @@ const FooterNew = ({
154
154
  </FooterCopyright>
155
155
 
156
156
  <LogosContainer $mobileOnly $showFundraiserAtBottom>
157
- {showFundraisingRegulatorLogo && <FundraisingRegulatorLogo />}
157
+ {showFundraisingRegulatorLogo && <FundraisingRegulatorLogo noMargin />}
158
158
  </LogosContainer>
159
159
  </InnerWrapper>
160
160
  </FooterWrapper>
@@ -9,10 +9,15 @@ const FooterWrapper = styled.footer.attrs(() => ({
9
9
  }))`
10
10
  text-align: left;
11
11
  background: ${({ theme }) => theme.color('grey_5')};
12
- padding-top: 6rem;
12
+ padding-top: 4.5rem; // Rather than using lg spacing like below, this needs a bit more space so that it sits 'under' the main content of the page, which has rounded corners behind which you see the black of this footer.
13
13
  @media ${({ theme }) => theme.breakpoints2026('M')} {
14
14
  padding-bottom: ${spacing('lg')};
15
15
  }
16
+
17
+ @media ${({ theme }) => theme.breakpoints2026('L')} {
18
+ padding-top: 5.5rem;
19
+ padding-bottom: 5rem;
20
+ }
16
21
  `;
17
22
 
18
23
  const InnerWrapper = styled.div`
@@ -22,9 +27,9 @@ const InnerWrapper = styled.div`
22
27
  height: 100%;
23
28
  max-width: 1200px;
24
29
  margin: 0 auto;
25
- padding: 0 ${spacing('md')};
30
+ padding: 0 ${spacing('l')};
26
31
  @media ${({ theme }) => theme.breakpoints2026('L')} {
27
- padding: 0 ${spacing('md')}};
32
+ padding: 0 9rem;
28
33
  }
29
34
  `;
30
35
 
@@ -35,7 +40,8 @@ const FooterLegalLine = styled(Text).attrs({
35
40
  margin-top: 1rem;
36
41
  margin-bottom: ${spacing('md')};
37
42
  line-height: 1.5rem;
38
- color: ${({ theme }) => theme.color('grey')};
43
+ color: ${({ theme }) => theme.color('white')};
44
+ opacity: 0.8;
39
45
  `;
40
46
 
41
47
  const TopSection = styled.div`
@@ -114,6 +120,7 @@ const PrimaryNavLink = styled(Link)`
114
120
  color: ${({ theme }) => theme.color('white')};
115
121
  text-decoration: none;
116
122
  font-weight: bold;
123
+ font-size: ${({ theme }) => theme.fontSize('s')};
117
124
 
118
125
  &:hover,
119
126
  &:focus {
@@ -150,7 +157,8 @@ const SecondaryNavItem = styled.li`
150
157
  &:not(:last-child)::after {
151
158
  content: '|';
152
159
  margin-left: ${spacing('sm')};
153
- color: ${({ theme }) => theme.color('grey')};
160
+ color: ${({ theme }) => theme.color('white')};
161
+ opacity: 0.8;
154
162
  }
155
163
  `;
156
164
 
@@ -158,11 +166,12 @@ const SecondaryNavLink = styled(Link)`
158
166
  text-decoration: none;
159
167
 
160
168
  > span {
161
- color: ${({ theme }) => theme.color('grey')};
169
+ color: ${({ theme }) => theme.color('white')};
170
+ opacity: 0.8;
162
171
  text-decoration: underline;
163
- text-decoration-color: ${({ theme }) => theme.color('grey')};
172
+ text-decoration-color: ${({ theme }) => theme.color('white')};
164
173
  font-weight: normal;
165
- font-size: ${({ theme }) => theme.fontSize('xs')};
174
+ font-size: 0.875rem;
166
175
  }
167
176
 
168
177
  @media ${({ theme }) => theme.breakpoints2026('M')} {
@@ -174,13 +183,14 @@ const SecondaryNavLink = styled(Link)`
174
183
  &:hover,
175
184
  &:focus {
176
185
  text-decoration: underline;
177
- text-decoration-color: ${({ theme }) => theme.color('grey')};
186
+ text-decoration-color: ${({ theme }) => theme.color('white')};
178
187
  }
179
188
 
180
189
  `;
181
190
 
182
191
  const SecondaryNavText = styled(Text)`
183
192
  color: ${({ theme }) => theme.color('white')};
193
+ opacity: 0.8;
184
194
  font-weight: normal;
185
195
  `;
186
196
 
@@ -190,7 +200,6 @@ const LogosContainer = styled.div`
190
200
  align-items: center;
191
201
  gap: ${spacing('l')};
192
202
  justify-content: ${({ $mobileOnly }) => ($mobileOnly ? 'flex-start' : 'center')};
193
- margin-top: ${({ $mobileOnly }) => ($mobileOnly ? spacing('md') : '0')};
194
203
  margin-bottom: ${({ $mobileOnly }) => ($mobileOnly ? spacing('l') : '0')};
195
204
 
196
205
  /* Hide desktop containers on mobile */
@@ -261,13 +270,19 @@ const FooterCopyright = styled.div`
261
270
  width: 100%;
262
271
  height: 100%;
263
272
  text-align: left;
273
+ margin-bottom: ${spacing('l')};
274
+
275
+ @media ${({ theme }) => theme.breakpoints2026('L')} {
276
+ margin-bottom: 0;
277
+ }
264
278
  `;
265
279
 
266
280
  const FooterCopyrightText = styled(Text).attrs({
267
281
  tag: 'p'
268
282
  })`
269
- color: ${({ theme }) => theme.color('grey')};
270
- font-size: ${({ theme }) => theme.fontSize('xs')};
283
+ color: ${({ theme }) => theme.color('white')};
284
+ opacity: 0.8;
285
+ font-size: 0.875rem;
271
286
  margin-bottom: ${spacing('sm')};
272
287
  `;
273
288