css`
- ${textSans.small()};
+ ${textSans15};
text-align: left;
color: ${disabled
? schemedPalette('--discussion-text')
@@ -139,7 +145,7 @@ const expandedStyles = css`
`;
const labelStyles = css`
- ${textSans.small({ fontWeight: 'bold' })};
+ ${textSansBold15};
color: ${schemedPalette('--discussion-subdued')};
`;
diff --git a/dotcom-rendering/src/components/Discussion/FirstCommentWelcome.tsx b/dotcom-rendering/src/components/Discussion/FirstCommentWelcome.tsx
index 121e0c31362..be80b894800 100644
--- a/dotcom-rendering/src/components/Discussion/FirstCommentWelcome.tsx
+++ b/dotcom-rendering/src/components/Discussion/FirstCommentWelcome.tsx
@@ -1,5 +1,9 @@
import { css } from '@emotion/react';
-import { headline, space, textSans } from '@guardian/source-foundations';
+import {
+ headlineBold20,
+ space,
+ textSans15,
+} from '@guardian/source-foundations';
import { Link, TextInput } from '@guardian/source-react-components';
import { useState } from 'react';
import { palette as schemedPalette } from '../../palette';
@@ -9,7 +13,7 @@ import { Preview } from './Preview';
import { Row } from './Row';
const textStyling = css`
- ${textSans.small()};
+ ${textSans15};
`;
const linkStyles = css`
@@ -33,7 +37,7 @@ const textInputStyles = css`
`;
const h3Style = css`
- ${headline.xxsmall({ fontWeight: 'bold' })};
+ ${headlineBold20};
`;
type Props = {
diff --git a/dotcom-rendering/src/components/Discussion/Pagination.tsx b/dotcom-rendering/src/components/Discussion/Pagination.tsx
index 92db4d5169b..80bda684207 100644
--- a/dotcom-rendering/src/components/Discussion/Pagination.tsx
+++ b/dotcom-rendering/src/components/Discussion/Pagination.tsx
@@ -1,5 +1,10 @@
import { css } from '@emotion/react';
-import { space, textSans, until } from '@guardian/source-foundations';
+import {
+ space,
+ textSans15,
+ textSansBold15,
+ until,
+} from '@guardian/source-foundations';
import type { ThemeButton } from '@guardian/source-react-components';
import {
Button,
@@ -18,7 +23,7 @@ type Props = {
const pageButtonStyles = (isSelected: boolean) => css`
cursor: pointer;
- ${textSans.small({ fontWeight: 'bold' })}
+ ${textSansBold15}
text-decoration: none;
border-radius: 62.5rem;
@@ -62,7 +67,7 @@ const ellipsisStyles = css`
`;
const wrapperStyles = css`
- ${textSans.small()};
+ ${textSans15};
color: ${schemedPalette('--discussion-pagination-text')};
display: flex;
@@ -86,7 +91,7 @@ const paginationButtons = css`
`;
const paginationText = css`
- ${textSans.small()};
+ ${textSans15};
margin-left: 5px;
${until.mobileLandscape} {
padding-top: 10px;
diff --git a/dotcom-rendering/src/components/Discussion/PillarButton.tsx b/dotcom-rendering/src/components/Discussion/PillarButton.tsx
index a0796f9e08f..268a398a046 100644
--- a/dotcom-rendering/src/components/Discussion/PillarButton.tsx
+++ b/dotcom-rendering/src/components/Discussion/PillarButton.tsx
@@ -1,5 +1,5 @@
import { css } from '@emotion/react';
-import { textSans } from '@guardian/source-foundations';
+import { textSansBold15 } from '@guardian/source-foundations';
import { Button } from '@guardian/source-react-components';
import { palette as themePalette } from '../../palette';
@@ -19,7 +19,7 @@ const buttonOverrides = (priority: 'primary' | 'secondary' | 'subdued') => {
case 'primary':
return css`
button {
- ${textSans.small({ fontWeight: 'bold' })}
+ ${textSansBold15}
background-color: ${themePalette(
'--discussion-primary-button-background',
)};
@@ -36,7 +36,7 @@ const buttonOverrides = (priority: 'primary' | 'secondary' | 'subdued') => {
case 'secondary':
return css`
button {
- ${textSans.small({ fontWeight: 'bold' })}
+ ${textSansBold15}
background-color: transparent;
border: 1px solid
${themePalette('--discussion-accent-text')};
@@ -57,7 +57,7 @@ const buttonOverrides = (priority: 'primary' | 'secondary' | 'subdued') => {
case 'subdued':
return css`
button {
- ${textSans.small({ fontWeight: 'bold' })}
+ ${textSansBold15}
background-color: transparent;
color: ${themePalette('--discussion-accent-text')};
border-radius: 0;
diff --git a/dotcom-rendering/src/components/Discussion/Preview.tsx b/dotcom-rendering/src/components/Discussion/Preview.tsx
index 55e05a078b9..13eae9ea12d 100644
--- a/dotcom-rendering/src/components/Discussion/Preview.tsx
+++ b/dotcom-rendering/src/components/Discussion/Preview.tsx
@@ -1,5 +1,5 @@
import { css } from '@emotion/react';
-import { space, textSans } from '@guardian/source-foundations';
+import { space, textSans15 } from '@guardian/source-foundations';
import { palette as schemedPalette } from '../../palette';
type Props = {
@@ -8,7 +8,7 @@ type Props = {
};
const previewStyle = css`
- ${textSans.small()}
+ ${textSans15}
padding: ${space[2]}px ${space[4]}px;
background-color: ${schemedPalette('--discussion-preview-background')};
border-radius: 5px;
diff --git a/dotcom-rendering/src/components/Discussion/TopPick.tsx b/dotcom-rendering/src/components/Discussion/TopPick.tsx
index 7c6d2e250f1..d13bb7c4e94 100644
--- a/dotcom-rendering/src/components/Discussion/TopPick.tsx
+++ b/dotcom-rendering/src/components/Discussion/TopPick.tsx
@@ -1,5 +1,5 @@
import { css } from '@emotion/react';
-import { from, space, textSans } from '@guardian/source-foundations';
+import { from, space, textSans15 } from '@guardian/source-foundations';
import { Link } from '@guardian/source-react-components';
import type {
CommentType,
@@ -28,7 +28,7 @@ const pickStyles = css`
width: 100%;
min-width: 250px;
margin-bottom: ${space[5]}px;
- ${textSans.small()};
+ ${textSans15};
blockquote {
margin-top: ${space[3]}px;
@@ -55,7 +55,7 @@ const avatarMargin = css`
const smallFontSize = css`
a {
- ${textSans.small()}
+ ${textSans15}
}
`;
@@ -87,7 +87,7 @@ const inCommentLinkStyling = css`
`;
const titleStyles = css`
- ${textSans.small()};
+ ${textSans15};
font-weight: bold;
margin: 0px;
margin-bottom: ${space[1]}px;
diff --git a/dotcom-rendering/src/components/Distribution.tsx b/dotcom-rendering/src/components/Distribution.tsx
index 2ae0016902d..38b30d8be14 100644
--- a/dotcom-rendering/src/components/Distribution.tsx
+++ b/dotcom-rendering/src/components/Distribution.tsx
@@ -1,5 +1,5 @@
import { css } from '@emotion/react';
-import { headline, text } from '@guardian/source-foundations';
+import { headlineBold34, text } from '@guardian/source-foundations';
import { isLight } from '../lib/isLight';
type Props = {
@@ -36,7 +36,7 @@ const Bar = ({
}) => (
css`
- ${headline.small({ fontWeight: 'bold' })}
+ ${headlineBold28}
fill: ${isLight(background) ? text.ctaSecondary : text.ctaPrimary};
text-anchor: middle;
`;
const labelStyles = (background: string) => css`
- ${textSans.small()}
+ ${textSans15}
fill: ${isLight(background) ? text.ctaSecondary : text.ctaPrimary};
text-anchor: middle;
`;
diff --git a/dotcom-rendering/src/components/Dropcap.stories.tsx b/dotcom-rendering/src/components/Dropcap.stories.tsx
index d9577c63605..6cb8662ce6e 100644
--- a/dotcom-rendering/src/components/Dropcap.stories.tsx
+++ b/dotcom-rendering/src/components/Dropcap.stories.tsx
@@ -1,6 +1,6 @@
import { css } from '@emotion/react';
import { ArticleDesign, ArticleDisplay, Pillar } from '@guardian/libs';
-import { body } from '@guardian/source-foundations';
+import { article17 } from '@guardian/source-foundations';
import { splitTheme } from '../../.storybook/decorators/splitThemeDecorator';
import { DropCap } from './DropCap';
@@ -11,7 +11,7 @@ const Wrapper = ({ children }: { children: React.ReactNode }) => (
padding: 20px;
p {
- ${body.medium()};
+ ${article17};
}
`}
>
diff --git a/dotcom-rendering/src/components/Dropdown.tsx b/dotcom-rendering/src/components/Dropdown.tsx
index 0dfc870443d..0150a0af7e0 100644
--- a/dotcom-rendering/src/components/Dropdown.tsx
+++ b/dotcom-rendering/src/components/Dropdown.tsx
@@ -5,7 +5,10 @@ import {
from,
palette,
palette as sourcePalette,
- textSans,
+ textSans12,
+ textSans14,
+ textSans15,
+ textSans17,
until,
visuallyHidden,
} from '@guardian/source-foundations';
@@ -84,7 +87,7 @@ const displayNone = css`
`;
const linkStyles = css`
- ${textSans.small()};
+ ${textSans15};
color: ${sourcePalette.neutral[7]};
transition: color 80ms ease-out;
margin: -1px 0 0 0;
@@ -138,7 +141,7 @@ const linkFirst = css`
`;
const buttonStyles = css`
- ${textSans.medium()};
+ ${textSans17};
display: block;
cursor: pointer;
background: none;
@@ -193,7 +196,7 @@ const notificationBadgeStyles = css`
display: flex;
justify-content: center;
align-items: center;
- ${textSans.xsmall()};
+ ${textSans14};
line-height: 1;
flex-shrink: 0;
`;
@@ -207,7 +210,7 @@ const dropdownButtonNotificationBadgeStyles = css`
`;
const notificationTextStyles = css`
- ${textSans.xxsmall()};
+ ${textSans12};
`;
const buildOphanComponentWithNotifications = (
diff --git a/dotcom-rendering/src/components/EmailSignup.tsx b/dotcom-rendering/src/components/EmailSignup.tsx
index b63363b22f5..5ee43c92645 100644
--- a/dotcom-rendering/src/components/EmailSignup.tsx
+++ b/dotcom-rendering/src/components/EmailSignup.tsx
@@ -1,7 +1,7 @@
import { css } from '@emotion/react';
import {
from,
- headline,
+ headlineBold20,
palette as sourcePalette,
space,
textSans,
@@ -42,7 +42,7 @@ const stackBelowTabletStyles = css`
`;
const titleStyles = (theme: string) => css`
- ${headline.xxsmall({ fontWeight: 'bold' })}
+ ${headlineBold20};
flex-grow: 1;
span {
color: ${theme === 'news' ? sourcePalette.sport[400] : 'inherit'};
diff --git a/dotcom-rendering/src/components/EmbedBlockComponent.importable.tsx b/dotcom-rendering/src/components/EmbedBlockComponent.importable.tsx
index a2b37ec3c2e..84c9d2b603d 100644
--- a/dotcom-rendering/src/components/EmbedBlockComponent.importable.tsx
+++ b/dotcom-rendering/src/components/EmbedBlockComponent.importable.tsx
@@ -1,5 +1,5 @@
import { css } from '@emotion/react';
-import { from, space, text, textSans } from '@guardian/source-foundations';
+import { from, space, text, textSans12 } from '@guardian/source-foundations';
import { unescapeData } from '../lib/escapeData';
import type { RoleType } from '../types/content';
import { ClickToView } from './ClickToView';
@@ -15,7 +15,7 @@ type Props = {
};
const emailCaptionStyle = css`
- ${textSans.xxsmall()};
+ ${textSans12};
word-break: break-all;
color: ${text.supporting};
padding-bottom: ${space[1]}px;
diff --git a/dotcom-rendering/src/components/Epic.amp.tsx b/dotcom-rendering/src/components/Epic.amp.tsx
index 3ed09ea1d66..1ebd43d1e3a 100644
--- a/dotcom-rendering/src/components/Epic.amp.tsx
+++ b/dotcom-rendering/src/components/Epic.amp.tsx
@@ -1,11 +1,17 @@
/* eslint-disable jsx-a11y/anchor-is-valid -- It’s AMP! */
import { css } from '@emotion/react';
import {
- body,
+ article17,
brandBackground,
- headline,
+ headlineBold17,
+ headlineMedium20,
palette,
- textSans,
+ textEgyptian17,
+ textSans15,
+ textSans17,
+ textSansBold15,
+ textSansBold17,
+ textSansItalic15,
} from '@guardian/source-foundations';
import {
MoustacheSection,
@@ -73,7 +79,7 @@ const epicStyle = css`
const epicHeaderStyle = css`
font-size: 1.25rem;
line-height: 1.4375rem;
- ${headline.xxsmall()};
+ ${headlineMedium20};
text-rendering: optimizeLegibility;
font-kerning: normal;
font-variant-ligatures: common-ligatures;
@@ -86,7 +92,7 @@ const epicParagraphStyle = css`
display: block;
margin-block-start: 0.5rem;
margin-block-end: 0.5rem;
- ${body.medium()};
+ ${textEgyptian17};
text-rendering: optimizeLegibility;
font-kerning: normal;
font-variant-ligatures: common-ligatures;
@@ -106,7 +112,7 @@ const highlightedTextStyle = css`
padding: 0.125rem;
margin-left: 5px;
color: ${palette.neutral[7]};
- ${headline.xxxsmall({ fontWeight: 'bold' })};
+ ${headlineBold17};
text-rendering: optimizeLegibility;
font-kerning: normal;
font-variant-ligatures: common-ligatures;
@@ -120,7 +126,7 @@ const genericButtonStyle = css`
display: inline-flex;
justify-content: space-between;
align-items: center;
- ${textSans.medium()};
+ ${textSans17};
text-rendering: optimizeLegibility;
font-kerning: normal;
font-variant-ligatures: common-ligatures;
@@ -248,13 +254,13 @@ const tickerBackgroundStyle = css`
border: none;
`;
const topLeftStyle = css`
- ${textSans.small({ fontWeight: 'bold' })};
+ ${textSansBold15};
`;
const topRightStyle = css`
- ${textSans.small({ fontWeight: 'bold' })};
+ ${textSansBold15};
`;
const labelStyle = css`
- ${textSans.small()};
+ ${textSans15};
`;
const goalExceededMarkerStyle = css`
width: 1px;
@@ -286,11 +292,11 @@ const reminderFormTopStyle = css`
`;
const inputLabelStyle = css`
color: ${palette.neutral[7]};
- ${textSans.medium({ fontWeight: 'bold' })};
+ ${textSansBold17};
margin-bottom: 4px;
`;
const invalidInputLabelStyle = css`
- ${textSans.medium()};
+ ${textSans17};
color: ${palette.error[400]};
display: flex;
`;
@@ -308,12 +314,12 @@ const emailInputStyle = css`
line-height: 1.35;
box-sizing: border-box;
height: 44px;
- ${textSans.medium()};
+ ${textSans17};
color: ${palette.neutral[7]};
margin-bottom: 10px;
`;
const reminderTermsStyle = css`
- ${textSans.small({ fontStyle: 'italic' })};
+ ${textSansItalic15};
line-height: 1.5;
a {
@@ -322,7 +328,7 @@ const reminderTermsStyle = css`
}
`;
const successMessageStyle = css`
- ${body.medium()};
+ ${article17};
a {
text-decoration: underline;
@@ -330,7 +336,7 @@ const successMessageStyle = css`
}
`;
const reminderErrorStyle = css`
- ${textSans.small({ fontStyle: 'italic' })};
+ ${textSansItalic15};
color: ${palette.error[400]};
font-weight: 600;
margin-bottom: 10px;
diff --git a/dotcom-rendering/src/components/Expandable.amp.tsx b/dotcom-rendering/src/components/Expandable.amp.tsx
index 34a113b17d4..8efda461d27 100644
--- a/dotcom-rendering/src/components/Expandable.amp.tsx
+++ b/dotcom-rendering/src/components/Expandable.amp.tsx
@@ -1,9 +1,9 @@
import { css } from '@emotion/react';
import {
- body,
- headline,
+ article17,
+ headlineMedium20,
palette,
- textSans,
+ textSans15,
} from '@guardian/source-foundations';
import React from 'react';
import { neutralBorder, pillarPalette_DO_NOT_USE } from '../lib/pillars';
@@ -48,7 +48,7 @@ const TextStyle = (pillar: ArticleTheme) => css`
}
p {
padding: 0 0 12px;
- ${body.medium()};
+ ${article17};
font-weight: 300;
word-wrap: break-word;
color: ${palette.neutral[7]};
@@ -58,9 +58,7 @@ const TextStyle = (pillar: ArticleTheme) => css`
margin-left: 20px;
font-style: italic;
}
-
- ${body.medium()};
-
+ ${article17};
${LinkStyle(pillar)};
${ListStyle(neutralBorder(pillar))};
`;
@@ -83,7 +81,7 @@ const wrapper = (pillar: ArticleTheme) => css`
${TextStyle(pillar)}
- ${body.medium()};
+ ${article17};
`;
const buttonStyles = css`
@@ -92,7 +90,7 @@ const buttonStyles = css`
border-radius: 1600px;
color: ${palette.neutral[100]};
border: none;
- ${textSans.small()};
+ ${textSans15};
font-weight: 700;
padding: 0 15px 0 7px;
@@ -117,11 +115,11 @@ const buttonStyles = css`
`;
const headerStyle = css`
- ${headline.xxsmall()};
+ ${headlineMedium20};
`;
const creditStyle = css`
- ${textSans.small()};
+ ${textSans15};
display: block;
margin: 12px 0;
`;
diff --git a/dotcom-rendering/src/components/ExpandableAtom/Body.tsx b/dotcom-rendering/src/components/ExpandableAtom/Body.tsx
index 7d22be18036..91990b77b21 100644
--- a/dotcom-rendering/src/components/ExpandableAtom/Body.tsx
+++ b/dotcom-rendering/src/components/ExpandableAtom/Body.tsx
@@ -1,8 +1,8 @@
import { css } from '@emotion/react';
import {
- body,
+ article17,
palette as sourcePalette,
- textSans,
+ textSans14,
} from '@guardian/source-foundations';
import { SvgInfo } from '@guardian/source-react-components';
import { palette as themePalette } from '../../palette';
@@ -20,7 +20,7 @@ const imageStyling = css`
`;
const creditStyling = css`
- ${textSans.xsmall()};
+ ${textSans14};
margin: 12px 0;
display: flex;
align-items: center;
@@ -31,7 +31,8 @@ const creditStyling = css`
`;
const bodyStyling = css`
- ${body.medium()}
+ ${article17};
+
p {
margin-bottom: 0.5rem;
}
diff --git a/dotcom-rendering/src/components/ExpandableAtom/Footer.tsx b/dotcom-rendering/src/components/ExpandableAtom/Footer.tsx
index 05692396306..7b69a13e48c 100644
--- a/dotcom-rendering/src/components/ExpandableAtom/Footer.tsx
+++ b/dotcom-rendering/src/components/ExpandableAtom/Footer.tsx
@@ -1,5 +1,5 @@
import { css } from '@emotion/react';
-import { textSans } from '@guardian/source-foundations';
+import { textSans14 } from '@guardian/source-foundations';
import { useState } from 'react';
import { palette as themePalette } from '../../palette';
@@ -64,7 +64,7 @@ export const Footer = ({
css={css`
display: flex;
align-items: center;
- ${textSans.xsmall()};
+ ${textSans14};
`}
>
Was this helpful?
@@ -99,7 +99,7 @@ export const Footer = ({