diff --git a/.changeset/blue-places-guess.md b/.changeset/blue-places-guess.md new file mode 100644 index 0000000000..1afcd215d2 --- /dev/null +++ b/.changeset/blue-places-guess.md @@ -0,0 +1,5 @@ +--- +"@sumup-oss/design-tokens": minor +--- + +Deprecated `--cui-icon-sizes-kilo`, `--cui-icon-sizes-mega`, `--cui-icon-sizes-giga`, and `--cui-icon-sizes-tera` in favour of new t-shirt-sized tokens that use `rem` units so that icons scale with the user's base font size (WCAG SC 1.4.4). diff --git a/packages/circuit-ui/components/ActionMenu/components/ActionMenuItem.module.css b/packages/circuit-ui/components/ActionMenu/components/ActionMenuItem.module.css index 90f2967d2b..d4a29892c0 100644 --- a/packages/circuit-ui/components/ActionMenu/components/ActionMenuItem.module.css +++ b/packages/circuit-ui/components/ActionMenu/components/ActionMenuItem.module.css @@ -10,7 +10,7 @@ } .icon { - width: var(--cui-icon-sizes-mega); - height: var(--cui-icon-sizes-mega); + width: var(--cui-icon-sizes-m); + height: var(--cui-icon-sizes-m); margin-right: var(--cui-spacings-byte); } diff --git a/packages/circuit-ui/components/Button/base.module.css b/packages/circuit-ui/components/Button/base.module.css index 4def1d52f7..78a6234fbe 100644 --- a/packages/circuit-ui/components/Button/base.module.css +++ b/packages/circuit-ui/components/Button/base.module.css @@ -157,14 +157,14 @@ } .trailing-icon { - width: var(--cui-icon-sizes-kilo); - height: var(--cui-icon-sizes-kilo); + width: var(--cui-icon-sizes-s); + height: var(--cui-icon-sizes-s); } /* Sizes */ .s { --content-gap: var(--cui-spacings-bit); - --leading-icon-size: var(--cui-icon-sizes-kilo); + --leading-icon-size: var(--cui-icon-sizes-s); --loader-diameter: 4px; --loader-gap: 3px; --loader-transform: scale(150%); @@ -176,7 +176,7 @@ .m { --content-gap: var(--cui-spacings-byte); - --leading-icon-size: var(--cui-icon-sizes-mega); + --leading-icon-size: var(--cui-icon-sizes-m); --loader-diameter: 6px; --loader-gap: 5px; --loader-transform: scale(133%); diff --git a/packages/circuit-ui/components/Field/Field.module.css b/packages/circuit-ui/components/Field/Field.module.css index e41d1f1166..2d223cddea 100644 --- a/packages/circuit-ui/components/Field/Field.module.css +++ b/packages/circuit-ui/components/Field/Field.module.css @@ -95,8 +95,8 @@ display: block; flex-shrink: 0; align-self: flex-start; - width: var(--cui-icon-sizes-kilo); - height: var(--cui-icon-sizes-kilo); + width: var(--cui-icon-sizes-s); + height: var(--cui-icon-sizes-s); margin-right: var(--cui-spacings-bit); } @@ -124,7 +124,7 @@ .s .validation-hint-icon { margin-top: calc( - (var(--cui-compact-s-line-height) - var(--cui-icon-sizes-kilo)) / + (var(--cui-compact-s-line-height) - var(--cui-icon-sizes-s)) / 2 ); } @@ -148,7 +148,7 @@ .m .validation-hint-icon { margin-top: calc( - (var(--cui-body-s-line-height) - var(--cui-icon-sizes-kilo)) / + (var(--cui-body-s-line-height) - var(--cui-icon-sizes-s)) / 2 ); } diff --git a/packages/circuit-ui/components/Flag/Flag.module.css b/packages/circuit-ui/components/Flag/Flag.module.css index 6133f9f160..165ad57f23 100644 --- a/packages/circuit-ui/components/Flag/Flag.module.css +++ b/packages/circuit-ui/components/Flag/Flag.module.css @@ -22,16 +22,16 @@ } .s { - width: var(--cui-icon-sizes-kilo); - height: calc(var(--cui-icon-sizes-kilo) * 3 / 4); + width: var(--cui-icon-sizes-s); + height: calc(var(--cui-icon-sizes-s) * 3 / 4); } .m { - width: var(--cui-icon-sizes-mega); - height: calc(var(--cui-icon-sizes-mega) * 3 / 4); + width: var(--cui-icon-sizes-m); + height: calc(var(--cui-icon-sizes-m) * 3 / 4); } .l { - width: var(--cui-icon-sizes-giga); - height: calc(var(--cui-icon-sizes-giga) * 3 / 4); + width: var(--cui-icon-sizes-l); + height: calc(var(--cui-icon-sizes-l) * 3 / 4); } diff --git a/packages/circuit-ui/components/Hamburger/Hamburger.module.css b/packages/circuit-ui/components/Hamburger/Hamburger.module.css index 40ef3b08ef..4e62568774 100644 --- a/packages/circuit-ui/components/Hamburger/Hamburger.module.css +++ b/packages/circuit-ui/components/Hamburger/Hamburger.module.css @@ -10,13 +10,13 @@ } .skeleton.s { - width: var(--cui-icon-sizes-kilo); - height: var(--cui-icon-sizes-kilo); + width: var(--cui-icon-sizes-s); + height: var(--cui-icon-sizes-s); } .skeleton.m { - width: var(--cui-icon-sizes-mega); - height: var(--cui-icon-sizes-mega); + width: var(--cui-icon-sizes-m); + height: var(--cui-icon-sizes-m); } .base { @@ -59,14 +59,14 @@ .base.s, .base.s::after, .base.s::before { - --hamburger-width: calc(var(--cui-icon-sizes-kilo) - 2px); + --hamburger-width: calc(var(--cui-icon-sizes-s) - 2px); --hamburger-offset: 5px; } .base.m, .base.m::after, .base.m::before { - --hamburger-width: calc(var(--cui-icon-sizes-mega) - 2px); + --hamburger-width: calc(var(--cui-icon-sizes-m) - 2px); --hamburger-offset: 7px; } diff --git a/packages/circuit-ui/components/ImageInput/ImageInput.module.css b/packages/circuit-ui/components/ImageInput/ImageInput.module.css index 491d44edf0..ab0582eccd 100644 --- a/packages/circuit-ui/components/ImageInput/ImageInput.module.css +++ b/packages/circuit-ui/components/ImageInput/ImageInput.module.css @@ -147,8 +147,8 @@ top: calc(50% - 16px); left: calc(50% - 16px); visibility: hidden; - width: var(--cui-icon-sizes-giga); - height: var(--cui-icon-sizes-giga); + width: var(--cui-icon-sizes-l); + height: var(--cui-icon-sizes-l); color: var(--cui-fg-on-strong); pointer-events: none; opacity: 0; diff --git a/packages/circuit-ui/components/Select/Select.module.css b/packages/circuit-ui/components/Select/Select.module.css index 1eb11cc0e5..eda6c81e83 100644 --- a/packages/circuit-ui/components/Select/Select.module.css +++ b/packages/circuit-ui/components/Select/Select.module.css @@ -120,8 +120,8 @@ button.prefix, } .wrapper.s .icon { - width: var(--cui-icon-sizes-giga); - height: var(--cui-icon-sizes-giga); + width: var(--cui-icon-sizes-l); + height: var(--cui-icon-sizes-l); padding: var(--cui-spacings-byte); } @@ -146,7 +146,7 @@ button.prefix, } .wrapper.m .icon { - width: var(--cui-icon-sizes-tera); - height: var(--cui-icon-sizes-tera); + width: var(--cui-icon-sizes-xl); + height: var(--cui-icon-sizes-xl); padding: var(--cui-spacings-kilo); } diff --git a/packages/circuit-ui/components/SideNavigation/components/DesktopNavigation/DesktopNavigation.module.css b/packages/circuit-ui/components/SideNavigation/components/DesktopNavigation/DesktopNavigation.module.css index 4c649cd1c4..ecd8869d35 100644 --- a/packages/circuit-ui/components/SideNavigation/components/DesktopNavigation/DesktopNavigation.module.css +++ b/packages/circuit-ui/components/SideNavigation/components/DesktopNavigation/DesktopNavigation.module.css @@ -30,7 +30,7 @@ z-index: var(--cui-z-index-navigation); display: flex; flex-direction: column; - width: var(--cui-icon-sizes-tera); + width: var(--cui-icon-sizes-xl); height: calc(100vh - var(--top-navigation-height, 0px)); /* biome-ignore lint/suspicious/noDuplicateProperties: Browser compatibility */ diff --git a/packages/circuit-ui/components/SideNavigation/components/PrimaryLink/PrimaryLink.module.css b/packages/circuit-ui/components/SideNavigation/components/PrimaryLink/PrimaryLink.module.css index 49ae68767a..babf2a0a6b 100644 --- a/packages/circuit-ui/components/SideNavigation/components/PrimaryLink/PrimaryLink.module.css +++ b/packages/circuit-ui/components/SideNavigation/components/PrimaryLink/PrimaryLink.module.css @@ -97,8 +97,8 @@ .icon { position: relative; flex-shrink: 0; - width: var(--cui-icon-sizes-mega); - height: var(--cui-icon-sizes-mega); + width: var(--cui-icon-sizes-m); + height: var(--cui-icon-sizes-m); margin-right: var(--cui-spacings-kilo); } @@ -150,8 +150,8 @@ .suffix { flex-shrink: 0; - width: var(--cui-icon-sizes-mega); - height: var(--cui-icon-sizes-mega); + width: var(--cui-icon-sizes-m); + height: var(--cui-icon-sizes-m); margin-left: auto; transition: transform var(--cui-transitions-default); } diff --git a/packages/circuit-ui/components/Spinner/Spinner.module.css b/packages/circuit-ui/components/Spinner/Spinner.module.css index ae85249824..28358d278f 100644 --- a/packages/circuit-ui/components/Spinner/Spinner.module.css +++ b/packages/circuit-ui/components/Spinner/Spinner.module.css @@ -18,16 +18,16 @@ } .s { - width: var(--cui-icon-sizes-mega); - height: var(--cui-icon-sizes-mega); + width: var(--cui-icon-sizes-m); + height: var(--cui-icon-sizes-m); } .m { - width: var(--cui-icon-sizes-giga); - height: var(--cui-icon-sizes-giga); + width: var(--cui-icon-sizes-l); + height: var(--cui-icon-sizes-l); } .l { - width: var(--cui-icon-sizes-tera); - height: var(--cui-icon-sizes-tera); + width: var(--cui-icon-sizes-xl); + height: var(--cui-icon-sizes-xl); } diff --git a/packages/circuit-ui/components/SumUpLogo/SumUpLogo.module.css b/packages/circuit-ui/components/SumUpLogo/SumUpLogo.module.css index 95cc2456bd..0eedc4b045 100644 --- a/packages/circuit-ui/components/SumUpLogo/SumUpLogo.module.css +++ b/packages/circuit-ui/components/SumUpLogo/SumUpLogo.module.css @@ -9,13 +9,13 @@ /* Sizes */ .s { - height: var(--cui-icon-sizes-mega); + height: var(--cui-icon-sizes-m); } .m { - height: var(--cui-icon-sizes-giga); + height: var(--cui-icon-sizes-l); } .l { - height: var(--cui-icon-sizes-tera); + height: var(--cui-icon-sizes-xl); } diff --git a/packages/circuit-ui/components/TopNavigation/TopNavigation.module.css b/packages/circuit-ui/components/TopNavigation/TopNavigation.module.css index 19c4842985..46fe314a75 100644 --- a/packages/circuit-ui/components/TopNavigation/TopNavigation.module.css +++ b/packages/circuit-ui/components/TopNavigation/TopNavigation.module.css @@ -69,6 +69,6 @@ button.hamburger { } .logo svg { - height: var(--cui-icon-sizes-mega); + height: var(--cui-icon-sizes-m); color: var(--cui-fg-normal); } diff --git a/packages/circuit-ui/components/TopNavigation/components/UtilityLinks/UtilityLinks.module.css b/packages/circuit-ui/components/TopNavigation/components/UtilityLinks/UtilityLinks.module.css index 2d497bcf55..aaec6207b8 100644 --- a/packages/circuit-ui/components/TopNavigation/components/UtilityLinks/UtilityLinks.module.css +++ b/packages/circuit-ui/components/TopNavigation/components/UtilityLinks/UtilityLinks.module.css @@ -19,8 +19,8 @@ .icon { flex-shrink: 0; - width: var(--cui-icon-sizes-mega); - height: var(--cui-icon-sizes-mega); + width: var(--cui-icon-sizes-m); + height: var(--cui-icon-sizes-m); } @media (min-width: 480px) { diff --git a/packages/design-tokens/themes/schema.ts b/packages/design-tokens/themes/schema.ts index 1f517e68e9..d4d7559c51 100644 --- a/packages/design-tokens/themes/schema.ts +++ b/packages/design-tokens/themes/schema.ts @@ -221,10 +221,32 @@ export const schema = [ { name: '--cui-font-weight-semibold', type: 'fontWeight' }, { name: '--cui-font-weight-bold', type: 'fontWeight' }, /* Icon sizes */ - { name: '--cui-icon-sizes-kilo', type: 'dimension' }, - { name: '--cui-icon-sizes-mega', type: 'dimension' }, - { name: '--cui-icon-sizes-giga', type: 'dimension' }, - { name: '--cui-icon-sizes-tera', type: 'dimension' }, + { name: '--cui-icon-sizes-s', type: 'dimension' }, + { name: '--cui-icon-sizes-m', type: 'dimension' }, + { name: '--cui-icon-sizes-l', type: 'dimension' }, + { name: '--cui-icon-sizes-xl', type: 'dimension' }, + /* eslint-disable circuit-ui/no-deprecated-custom-properties */ + { + name: '--cui-icon-sizes-kilo', + type: 'dimension', + deprecation: { replacement: '--cui-icon-sizes-s' }, + }, + { + name: '--cui-icon-sizes-mega', + type: 'dimension', + deprecation: { replacement: '--cui-icon-sizes-m' }, + }, + { + name: '--cui-icon-sizes-giga', + type: 'dimension', + deprecation: { replacement: '--cui-icon-sizes-l' }, + }, + { + name: '--cui-icon-sizes-tera', + type: 'dimension', + deprecation: { replacement: '--cui-icon-sizes-xl' }, + }, + /* eslint-enable circuit-ui/no-deprecated-custom-properties */ /* Spacings */ { name: '--cui-spacings-bit', type: 'dimension' }, { name: '--cui-spacings-byte', type: 'dimension' }, diff --git a/packages/design-tokens/themes/shared.ts b/packages/design-tokens/themes/shared.ts index 06a5200e76..fbd648ecc5 100644 --- a/packages/design-tokens/themes/shared.ts +++ b/packages/design-tokens/themes/shared.ts @@ -120,6 +120,27 @@ export const shared = [ type: 'dimension', }, /* Icon sizes */ + { + name: '--cui-icon-sizes-s', + value: '1rem', + type: 'dimension', + }, + { + name: '--cui-icon-sizes-m', + value: '1.5rem', + type: 'dimension', + }, + { + name: '--cui-icon-sizes-l', + value: '2rem', + type: 'dimension', + }, + { + name: '--cui-icon-sizes-xl', + value: '3rem', + type: 'dimension', + }, + /* eslint-disable circuit-ui/no-deprecated-custom-properties */ { name: '--cui-icon-sizes-kilo', value: '16px', @@ -140,6 +161,7 @@ export const shared = [ value: '48px', type: 'dimension', }, + /* eslint-enable circuit-ui/no-deprecated-custom-properties */ /* Spacings */ { name: '--cui-spacings-bit', diff --git a/skills/circuit-ui/references/design-tokens.md b/skills/circuit-ui/references/design-tokens.md index 640bc08ef8..fb486dca4e 100644 --- a/skills/circuit-ui/references/design-tokens.md +++ b/skills/circuit-ui/references/design-tokens.md @@ -180,10 +180,10 @@ CSS variables provided by the Circuit UI design system and their values. | `--cui-font-weight-regular` | `fontWeight` | no | | `375` | `375` | | `--cui-font-weight-semibold` | `fontWeight` | no | | `550` | `550` | | `--cui-font-weight-bold` | `fontWeight` | no | | `650` | `650` | -| `--cui-icon-sizes-kilo` | `dimension` | no | | `16px` | `16px` | -| `--cui-icon-sizes-mega` | `dimension` | no | | `24px` | `24px` | -| `--cui-icon-sizes-giga` | `dimension` | no | | `32px` | `32px` | -| `--cui-icon-sizes-tera` | `dimension` | no | | `48px` | `48px` | +| `--cui-icon-sizes-s` | `dimension` | no | | `1rem` | `1rem` | +| `--cui-icon-sizes-m` | `dimension` | no | | `1.5rem` | `1.5rem` | +| `--cui-icon-sizes-l` | `dimension` | no | | `2rem` | `2rem` | +| `--cui-icon-sizes-xl` | `dimension` | no | | `3rem` | `3rem` | | `--cui-spacings-bit` | `dimension` | no | | `4px` | `4px` | | `--cui-spacings-byte` | `dimension` | no | | `8px` | `8px` | | `--cui-spacings-kilo` | `dimension` | no | | `12px` | `12px` |