Here is the rewritten text in fluent, natural English:
Paragraph text uses the font GuardianTextEgyptian, Guardian Text Egyptian Web, Georgia, or serif. It is set at 0.9375rem, with a line height of 1.4, normal weight, and normal style. The text decoration thickness is 2px.
Heading 2 uses the font GH Guardian Headline, Guardian Egyptian Web, Georgia, or serif. It is set at 1.5rem, with a line height of 1.15, bold weight, and normal style. The text decoration thickness is 3px.
The class “src-headline-medium-17” uses the font GH Guardian Headline, Guardian Egyptian Web, Georgia, or serif. It is set at 1.0625rem, with a line height of 1.15, medium weight (500), and normal style. The text decoration thickness is 2px.
The class “src-text-sans-14” uses the font GuardianTextSans, Guardian Text Sans Web, Helvetica Neue, Helvetica, Arial, Lucida Grande, or sans-serif. It is set at 0.875rem, with a line height of 1.3, normal weight, and normal style. The text decoration thickness is 2px.
The class “src-text-sans-bold-17” uses the font GuardianTextSans, Guardian Text Sans Web, Helvetica Neue, Helvetica, Arial, Lucida Grande, or sans-serif. It is set at 1.0625rem, with a line height of 1.3, bold weight (700), and normal style. The text decoration thickness is 2px.
The custom property “–src-brand-400” is set to #052962.
When scripting is enabled, the article with the class “content–interactive” and its child div, as well as elements with the class “article”, are initially hidden with an opacity of 0 and overflow hidden. Once the page has loaded (indicated by the class “interactive-loaded”), these elements become fully visible with a smooth 1-second transition, and their overflow is set to “unset”.
The font “Guardian Headline Full” is loaded in several styles. For the light weight (300) in normal style, the font files are sourced from the Guardian’s assets. The same applies for the light italic, regular (400) normal, regular italic, medium (500) normal, and medium italic styles. Each uses the appropriate woff2, woff, and truetype formats.ine-MediumItalic.woff) format(“woff”), url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-MediumItalic.ttf) format(“truetype”); font-weight: 500; font-style: italic; }
@font-face { font-family: Guardian Headline Full; src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Semibold.woff2) format(“woff2”), url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Semibold.woff) format(“woff”), url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Semibold.ttf) format(“truetype”); font-weight: 600; font-style: normal; }
@font-face { font-family: Guardian Headline Full; src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-SemiboldItalic.woff2) format(“woff2”), url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-SemiboldItalic.woff) format(“woff”), url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-SemiboldItalic.ttf) format(“truetype”); font-weight: 600; font-style: italic; }
@font-face { font-family: Guardian Headline Full; src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Bold.woff2) format(“woff2”), url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Bold.woff) format(“woff”), url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Bold.ttf) format(“truetype”); font-weight: 700; font-style: normal; }
@font-face { font-family: Guardian Headline Full; src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-BoldItalic.woff2) format(“woff2”), url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-BoldItalic.woff) format(“woff”), url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-BoldItalic.ttf) format(“truetype”); font-weight: 700; font-style: italic; }
@font-face { font-family: Guardian Headline Full; src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Black.woff2) format(“woff2”), url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Black.woff) format(“woff”), url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Black.ttf) format(“truetype”); font-weight: 900; font-style: normal; }
@font-face { font-family: Guardian Headline Full; src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-BlackItalic.woff2) format(“woff2”), url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-BlackItalic.woff) format(“woff”), url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-BlackItalic.ttf) format(“truetype”); font-weight: 900; font-style: italic; }
@font-face { font-family: Guardian Titlepiece; src: url(https://interactive.guim.co.uk/fonts/garnett/GTGuardianTitlepiece-Bold.woff2) format(“woff2”), url(https://interactive.guim.co.uk/fonts/garnett/GTGuardianTitlepiece-Bold.woff) format(“woff”), url(https://interactive.guim.co.uk/fonts/garnett/GTGuardianTitlepiece-Bold.ttf) format(“truetype”); font-weight: 700; font-style: normal; }
:root:root [data-gu-name=”media”], :root:root [data-gu-name=”title”], :root:root [data-gu-name=”headline”], :root:root [data-gu-name=”standfirst”], :root:root [data-gu-name=”lines”], :root:root [data-gu-name=”meta”], :root:root [data-link-name=”article section”] { display: none; }
:root:root article { –standfirst-text: #adc8f4; –byline: #adc8f4; –article-background: #224a8a; –article-text: #1a1a1a; –article-link-text: #ffffff; –textblock-text: #adc8f4; –article-border: #0077b6; –straight-lines: #224a8a; –share-button: #adc8f4; –share-button-border: #a; }Here’s the rewritten text in fluent, natural English:
“`css
dc8f4}:root:root article figure.element-atom {
margin: 0;
}
:root:root .back-button {
border: 1px solid lightgray;
font-family: Guardian Text Sans Web, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;
font-size: 17px;
padding: 6px 18px;
border-radius: 40px;
width: fit-content;
display: flex;
align-items: center;
gap: 6px;
}
html.no-scroll {
overflow: hidden;
}
h2 {
color: var(–src-brand-400);
}
a {
border-bottom: none !important;
text-decoration: none;
}
img {
max-width: 100%;
max-height: 100%;
}
article {
position: relative;
}
/*
* Provides the `mq` mixin from sass-mq with preset Guardian breakpoints.
* Use it like this:
*
* `@include mq(leftCol) …`
*
* Available breakpoints:
* – desktop: 61.25em
* – leftCol: 71.25em
* – mobile: 20em
* – mobileLandscape: 30em
* – mobileMedium: 23.4375em
* – phablet: 41.25em
* – tablet: 46.25em
* – wide: 81.25em
*/
/*
* This file is auto-generated by src/source/generate/breakpoints.js
*/
/*
* This file is auto-generated by src/source/generate/typography.js
*/
/
* Data font stack
*
* @group typography
*/
/
* Serif font stack
*
* @group typography
*/
/
* Headline font stack
*
* @group typography
*/
/
* Sans serif text font stack
*
* @group typography
*/
/
* Sans serif headline font stack
*
* @group typography
*/
/
* Default font scale settings
* See font-scale.html and font-scale.png for visual examples
*
* @group typography
*/
/
* Get all levels of a font from the font scale
*
* @param {String} $name – Name of the font scale matrix (e.g., headline)
* @param {Map} $font-scale ($font-scale)
*
* @example
* font-size: get-scale(header);
*
* @requires {variable} $font-scale
*
* @return {Map}
*
* @group typography
*/
/
* Get info for a specific level of a font scale
*
* @param {String} $name – Name of the font scale in the matrix (e.g., headline)
* @param {Number} $level – Level in the matrix
* @param {Map} $font-scale ($font-scale)
*
* @example
* font-size: get-scale-level(header, 1);
*
* @requires {variable} $font-scale
* @requires {function} get-scale
*
* @return {Map}
*
* @group typography
*/
/
* Get a font size for a level in the font scale matrix
*
* @param {String} $name – Name of the font scale in the matrix (e.g., headline)
* @param {Number} $level – Level in the matrix
* @param {Map} $font-scale – Configuration
*
* @example
* font-size: get-font-size(header, 3);
*
* @requires {variable} $font-scale
* @requires {function} convert-to-px
* @requires {function} get-scale-level
*
* @return {Number}
*
* @group typography
*/
/
* Get a line height for a level in the font scale matrix
*
* @param {String} $name – Name of the font scale in the matrix (e.g., headline)
* @param {Number} $level – Level in the matrix
* @param {Map} $font-scale – Configuration
*
* @example
* font-size: get-line-height(header, 3);
*
* @requires {variable} $font-scale
* @requires {function} convert-to-px
* @requires {function} get-scale-level
*
* @return {Number}
*
* @group typography
*/
/
* Convert any value to pixels
*
* @param {Number} $value
*
* @example
* font-size: convert-to-px(14); // 14px
*
* @return {Number}
*
* @group typography
*/
/
* Default typography settings, to be included as early as possible in the HTML
* 1. Make type rendering look sharper
2. Set relative line spacing to 1.5 (16px 1.5 = 24px)
*
* @param {String} $font-family ($f-serif-text) – Default global font
*
* @requires {variable} $f-serif-text
*
* @group typography
*/
/
* Font size and line height shorthand
*
* @param {Number} $size
* @param {Number} $line-height ($size)
*
* @example
* @include font-size(18, 24);
*
* @requires {function} convert-to-px
*
* @group typography
*/
/
* Font styling shorthand
* Note: Prefer using the font scale mixins to stay consistent with the font scale
*
* @param {String} $family
* @param {String} $weight
* @param {Number} $size
* @param {Number} $line-height ($size)
*
* @example
* @include font(arial, bold, 18, 24);
*
* @requires {mixin} font-size
*
* @group typography
*/
“`Typography
Header Family and Weight Properties
Requires the variable `$f-serif-headline`.
Group: typography
Header Typography Settings
Parameters:
– `$level` (Number)
– `$size-only` (Boolean)
Examples:
– Include all properties (font-size, line-height, family, weight):
`@include fs-header(3);`
– Include only font-size and line-height:
`@include fs-header(3, $size-only: true);`
Requires:
– Function `get-font-size`
– Function `get-line-height`
– Mixin `font-size`
– Mixin `f-header`
Group: typography
—
Headline Family and Weight Properties
Requires the variable `$f-serif-headline`.
Group: typography
Headline Typography Settings
Parameters:
– `$level` (Number)
– `$size-only` (Boolean)
Examples:
– Include all properties (font-size, line-height, family, weight):
`@include fs-headline(3);`
– Include only font-size and line-height:
`@include fs-headline(3, $size-only: true);`
Requires:
– Function `get-font-size`
– Function `get-line-height`
– Mixin `font-size`
– Mixin `f-headline`
Group: typography
—
Body Heading Family and Weight Properties
Requires the variable `$f-serif-text`.
Group: typography
Body Heading Typography Settings
Parameters:
– `$level` (Number)
– `$size-only` (Boolean)
Examples:
– Include all properties (font-size, line-height, family, weight):
`@include fs-bodyHeading(3);`
– Include only font-size and line-height:
`@include fs-bodyHeading(3, $size-only: true);`
Requires:
– Function `get-font-size`
– Function `get-line-height`
– Mixin `font-size`
– Mixin `f-bodyHeading`
Group: typography
—
Body Copy Family Property
Requires the variable `$f-serif-text`.
Group: typography
Body Copy Typography Settings
Parameters:
– `$level` (Number)
– `$size-only` (Boolean)
Examples:
– Include all properties (font-size, line-height, family):
`@include fs-bodyCopy(3);`
– Include only font-size and line-height:
`@include fs-bodyCopy(3, $size-only: true);`
Requires:
– Function `get-font-size`
– Function `get-line-height`
– Mixin `font-size`
– Mixin `f-bodyCopy`
Group: typography
—
Data Family Property
Requires the variable `$f-data`.
Group: typography
Data Typography Settings
Parameters:
– `$level` (Number)
– `$size-only` (Boolean)
Examples:
– Include all properties (font-size, line-height, family):
`@include fs-data(3);`
– Include only font-size and line-height:
`@include fs-data(3, $size-only: true);`
Requires:
– Function `get-font-size`
– Function `get-line-height`
– Mixin `font-size`
– Mixin `f-data`
Group: typography
—
Text Sans Family Property
Requires the variable `$f-sans-serif-text`.
Group: typography
Text Sans Typography Settings
Parameters:
– `$level` (Number)
– `$size-only` (Boolean)
Examples:
– Include all properties (font-size, line-height, family):
`@include fs-textSans(3);`
– Include only font-size and line-height:
`@include fs-textSans(3, $size-only: true);`
Requires:
– Function `get-font-size`
– Function `get-line-height`
– Mixin `font-size`
– Mixin `f-textSans`
Group: typography
—
Headline Sans Family Property
This is not currently part of our font scale matrix, so there is no `fs-` mixin for it. For now, we only use it as a replacement font in a few places.
Requires the variable `$f-sans-serif-headline`.
Group: typography
—
@font-face
“`css
@font-face {
font-family: “Guardian Headline Full”;
src: url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Light.woff2”) format(“woff2”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Light.woff”) format(“woff”);
}
“`@font-face {
font-family: “Guardian Headline Full”;
src: url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Light.woff2”) format(“woff2”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Light.woff”) format(“woff”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Light.ttf”) format(“truetype”);
font-weight: 300;
font-style: normal;
}
@font-face {
font-family: “Guardian Headline Full”;
src: url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-LightItalic.woff2”) format(“woff2”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-LightItalic.woff”) format(“woff”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-LightItalic.ttf”) format(“truetype”);
font-weight: 300;
font-style: italic;
}
@font-face {
font-family: “Guardian Headline Full”;
src: url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Regular.woff2”) format(“woff2”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Regular.woff”) format(“woff”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Regular.ttf”) format(“truetype”);
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: “Guardian Headline Full”;
src: url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-RegularItalic.woff2”) format(“woff2”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-RegularItalic.woff”) format(“woff”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-RegularItalic.ttf”) format(“truetype”);
font-weight: 400;
font-style: italic;
}
@font-face {
font-family: “Guardian Headline Full”;
src: url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Medium.woff2”) format(“woff2”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Medium.woff”) format(“woff”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Medium.ttf”) format(“truetype”);
font-weight: 500;
font-style: normal;
}
@font-face {
font-family: “Guardian Headline Full”;
src: url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-MediumItalic.woff2”) format(“woff2”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-MediumItalic.woff”) format(“woff”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-MediumItalic.ttf”) format(“truetype”);
font-weight: 500;
font-style: italic;
}
@font-face {
font-family: “Guardian Headline Full”;
src: url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Semibold.woff2”) format(“woff2”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Semibold.woff”) format(“woff”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Semibold.ttf”) format(“truetype”);
font-weight: 600;
font-style: normal;
}
@font-face {
font-family: “Guardian Headline Full”;
src: url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-SemiboldItalic.woff2”) format(“woff2”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-SemiboldItalic.woff”) format(“woff”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-SemiboldItalic.ttf”) format(“truetype”);
font-weight: 600;
font-style: italic;
}
@font-face {
font-family: “Guardian Headline Full”;
src: url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Bold.woff2”) format(“woff2”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Bold.woff”) format(“woff”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Bold.ttf”) format(“truetype”);
font-weight: 700;
font-style: normal;
}“`css
@font-face {
font-family: “Guardian Headline Full”;
src: url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Bold.woff2”) format(“woff2”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Bold.woff”) format(“woff”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Bold.ttf”) format(“truetype”);
font-weight: 700;
font-style: normal;
}
@font-face {
font-family: “Guardian Headline Full”;
src: url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-BoldItalic.woff2”) format(“woff2”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-BoldItalic.woff”) format(“woff”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-BoldItalic.ttf”) format(“truetype”);
font-weight: 700;
font-style: italic;
}
@font-face {
font-family: “Guardian Headline Full”;
src: url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Black.woff2”) format(“woff2”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Black.woff”) format(“woff”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Black.ttf”) format(“truetype”);
font-weight: 900;
font-style: normal;
}
@font-face {
font-family: “Guardian Headline Full”;
src: url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-BlackItalic.woff2”) format(“woff2”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-BlackItalic.woff”) format(“woff”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-BlackItalic.ttf”) format(“truetype”);
font-weight: 900;
font-style: italic;
}
@font-face {
font-family: “Guardian Titlepiece”;
src: url(“https://interactive.guim.co.uk/fonts/garnett/GTGuardianTitlepiece-Bold.woff2”) format(“woff2”),
url(“https://interactive.guim.co.uk/fonts/garnett/GTGuardianTitlepiece-Bold.woff”) format(“woff”),
url(“https://interactive.guim.co.uk/fonts/garnett/GTGuardianTitlepiece-Bold.ttf”) format(“truetype”);
font-weight: 700;
font-style: normal;
}
.atom.svelte-1tpye3j {
display: flex;
flex-direction: column;
gap: 4px;
}
.homepage-content.svelte-1tpye3j {
display: flex;
flex-direction: column;
gap: 14px;
transition: padding-bottom 0.3s ease;
}
.sticky-padding.svelte-1tpye3j {
padding-bottom: 100px;
transition: padding-bottom 0.3s ease;
}
h1.svelte-1tpye3j {
position: absolute;
top: 220px;
left: 0;
font-family: “Guardian Headline Full”, “Guardian Egyptian Web”, Georgia, serif;
font-weight: bold;
font-size: 88px;
line-height: 88%;
color: #0077b6;
z-index: -1;
font-variant-numeric: lining-nums;
}
@media (min-width: 61.25em) {
h1.svelte-1tpye3j {
top: 220px;
}
}
p.standfirst.svelte-1tpye3j {
color: #fff !important;
max-width: 450px;
padding-bottom: 10px;
}
@media (min-width: 61.25em) {
p.standfirst.svelte-1tpye3j {
font-size: 20px;
max-width: 600px;
}
}
.standfirst-container.svelte-1tpye3j {
max-width: 600px;
border-bottom: 1px solid #0077b6;
}
.tooltip.svelte-1tpye3j {
position: relative;
z-index: 2;
margin-top: -40px;
opacity: 0;
}
@media (min-width: 61.25em) {
.tooltip.svelte-1tpye3j {
display: none;
}
}
.tooltip.svelte-1tpye3j p:where(.svelte-1tpye3j) {
position: relative;
background: #ffffff;
border-radius: 8px;
padding: 3px 9px 6px;
display: inline-block;
color: #052962;
font-size: 14px;
font-family: “Guardian Text Sans Web”, “Helvetica Neue”, Helvetica, Arial, “Lucida Grande”, sans-serif;
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
top: -2px;
}
/ triangle tail /
.tooltip.svelte-1tpye3j p:where(.svelte-1tpye3j):after {
content: “”;
position: absolute;
bottom: -10px;
left: 50%;
transform: translateX(-50%);
border-width: 10px 6px 0 6px;
border-style: solid;
border-color: #ffffff transparent transparent transparent;
}
ul.svelte-1tpye3j {
margin-top: 40px;
}
@media (min-width: 61.25em) {
ul.svelte-1tpye3j {
margin-top: 80px;
}
}
ul.standfirst-1.svelte-1tpye3j,
ul.standfirst-2.svelte-1tpye3j {
margin-top: 50px;
}
@media (min-width: 61.25em) {
ul.standfirst-1.svelte-1tpye3j,
ul.standfirst-2.svelte-1tpye3j {
margin-top: 100px;
}
}
ul.standfirst-3.svelte-1tpye3j {
margin-top: 40px;
}
@media (min-width: 61.25em) {
ul.standfirst-3.svelte-1tpye3j {
margin-top: 100px;
}
}
“`Here’s the rewritten text in fluent, natural English:
The top margin is set to 80 pixels. For smaller screens, the standfirst list has a top margin of 40 pixels, but on wider screens (over 61.25em), it increases to 80 pixels. For the standfirst-5 list, the top margin is 50 pixels, and on wider screens it becomes 100 pixels.
The “come back tomorrow” text uses a serif font, is 20 pixels in size, white, and italic. It has no top margin and a 20-pixel bottom margin. The right column is hidden by default.
List items use a sans-serif font and are dark gray. The list is arranged in a vertical column with a 2-pixel gap between items, which increases to 8 pixels on wider screens.
For book list items, the width and height adjust to fit the content. The font size is 24 pixels with some padding, and on wider screens it increases to 36 pixels. The text inside these items uses a box-decoration-break style for better wrapping.
The rank indicator is positioned relatively, and after it, a 10-pixel wide bar appears to the right, using the same background color.
The grid layout uses two columns with an 8-pixel gap. Grid items have padding and a minimum height of 160 pixels. On screens wider than 540 pixels, the grid switches to three columns, and on screens wider than 700 pixels, it becomes four columns.
On very wide screens (over 61.25em), the layout changes to a two-column grid with a 300-pixel sidebar. The main heading becomes very large (176 pixels). The list font size increases to 36 pixels. Elements hidden on desktop are hidden, and the right column becomes visible, centered, and aligned to the top.
On even wider screens (over 71.25em), the heading and main content shift to the right by 160 pixels, and on screens over 81.25em, they shift by 240 pixels. The first child of the main content gets a left border and some padding.
When you hover over a list item, the cursor changes and the item becomes slightly transparent. A fixed preview of the book appears, with a white border and shadow, but it’s hidden on smaller screens.
Bold text is used for emphasis. Books are displayed in a vertical column with a small gap. The book cover has a fixed height of 148 pixels.
The “see all votes” button uses a sans-serif font, is bold, and has a blue color scheme with rounded corners. It’s displayed as a flexible container with a small gap between elements. The wrapper around it is also flexible and aligns items in the center.Here’s the rewritten text in fluent, natural English:
Add a 20px margin above and below. The “see-all-votes-wrapper” class uses 40px wide and 40px tall headshots with a relative position and a z-index of 8. The second headshot has a left margin of -24px and a z-index of 7. The third headshot also has a left margin of -24px and a z-index of 6. The fourth headshot has a left margin of -24px and a z-index of 5.
The “highlighted-voters” class displays items in a row with 12px gaps and centers them vertically. The “credits” class adds 5px of padding on top and a 40px bottom margin, with a relative position. Before the credits, a full-width, 1px high line appears at the top, colored #0077b6. Paragraphs inside credits use the font “Guardian Text Sans Web” (or fallbacks), are 15px, normal style, with 130% line height, an 8px top margin, and a max width of 540px. The first paragraph has no top margin, and the last has a 12px bottom margin.
The “onward-journey-links” class arranges items in a column with 8px gaps and no margin at the top or bottom, but 20px at the bottom. List items use the font “Guardian Headline Full” (or fallbacks), are 17px, and at screen widths of 61.25em or more, they increase to 20px. Before each list item, a small circle (0.7em wide and tall) appears, colored #c1d8fc, with a 7px right margin. Links with the “onward-link” class inherit the text color, have a pointer cursor, and are underlined with a #c1d8fc color, offset by 25% and with a 7% thickness. They have no bottom border, are white, and have a medium font weight. On hover, they turn #c1d8fc.
The “saved-books-popup-wrapper” class has auto pointer events, an absolute position, a z-index of 40, and is placed 10px from the bottom and left. It has a minimum height of 100px and a width of 100% minus 20px. At screen widths of 46.25em or more, it has a max width of 700px and is positioned 10px from the bottom and 20px from the left (calculated from the viewport width). At 61.25em, it stays at 700px max width and is positioned 20px from the left (based on a 980px viewport). At 71.25em, it remains 700px max width and is positioned 10px from the left (based on a 796px viewport). The close button inside is absolutely positioned at the top right with a z-index of 10.
The “saved-books-popup” class has a white background, rounded corners (8px), 10px padding, and a clip path that cuts off the top right corner (polygon: 0 0, calc(100% – 60px) 0, 100% 60px, 100% 100%, 0 100%). Paragraphs inside use the font “Guardian Text Sans Web” (or fallbacks), are 17px, and colored #121212. Any span inside has a bold font weight. The last paragraph has 10px of bottom padding. Before the popup, a 60px by 60px area appears at the top right, colored #ededed, with a clip path that creates a triangle (polygon: 0 0, 100% 100%, 0 100%). The “saved-books-popup-button” class has a #0077b6 background, white text, 6px top and bottom padding, 16px left and right padding, and rounded corners (40px).
When a popup wrapper contains a “saved-books-popup”, it displays as a block with no transform, no top margin, a left position of 0, full viewport height, no background, and no pointer events. The commented-out lines for line-2, line-3, and line-4 suggest a 40px left margin. For Android apps, paragraphs with the “standfirst” class have white text. For iOS apps, the “saved-books-popup-wrapper” is positioned 11px from the bottom.Here’s the rewritten text in fluent, natural English:
“`css
/ Dark mode styles for iOS and Android /
@media (prefers-color-scheme: dark) {
[data-app-os=”ios”] .saved-books-popup-wrapper p,
[data-app-os=”android”] .saved-books-popup-wrapper p {
color: #121212;
}
}
/ Navigation styles /
.navigation.svelte-10ujoo {
display: flex;
gap: 0;
position: relative;
position: sticky;
top: 10px;
z-index: 22;
}
.view-toggle-button.svelte-10ujoo {
width: 48px;
height: 48px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
background-color: #224a8a;
}
.view-toggle-button–inner.svelte-10ujoo {
width: 40px;
height: 40px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 50%;
background-color: #c1d8fc33;
}
.view-toggle-button–inner.active.svelte-10ujoo {
background-color: #adc8f4;
}
.view-toggle-button.svelte-10ujoo:hover .view-toggle-button–inner:where(.svelte-10ujoo) {
background-color: #8ba8d5;
}
.view-toggle-button.svelte-10ujoo:hover .view-toggle-button–inner.active:where(.svelte-10ujoo) {
background-color: #eff5fe;
}
.navigation > .button-wrapper:last-of-type > .view-toggle-button {
margin-left: -4px !important;
}
.navigation > .button-wrapper:hover {
opacity: 1 !important;
}
/ Button wrapper styles /
.button-wrapper.svelte-1lctv1n {
width: fit-content;
height: fit-content;
display: block;
}
.button-wrapper.svelte-1lctv1n:hover {
cursor: pointer;
opacity: 0.8;
}
.button-wrapper:has(.close-button) {
border-radius: 50%;
}
“`
Note about the comments: The original text included extensive documentation comments about Sass mixins, breakpoints, and typography settings. These are technical notes for developers and don’t change the visual output. I’ve kept the meaningful CSS rules and removed the redundant documentation comments to make the code cleaner and easier to read./
* @group typography
*/
/
* Converts any value to pixels.
*
* @param {Number} $value
*
* @example
* font-size: convert-to-px(14); // 14px
*
* @return {Number}
*
* @group typography
*/
/
* Default typography settings. Include this as early as possible in the HTML.
* 1. Makes type rendering look sharper.
2. Sets relative line spacing to 1.5 (16px 1.5 = 24px).
*
* @param {String} $font-family ($f-serif-text) – Default global font
*
* @requires {variable} $f-serif-text
*
* @group typography
*/
/
* Shorthand for font-size and line-height.
*
* @param {Number} $size
* @param {Number} $line-height ($size)
*
* @example
* @include font-size(18, 24);
*
* @requires {function} convert-to-px
*
* @group typography
*/
/
* Shorthand for font styling.
* Note: Prefer using the font-scale mixins to stay consistent with the font scale.
*
* @param {String} $family
* @param {String} $weight
* @param {Number} $size
* @param {Number} $line-height ($size)
*
* @example
* @include font(arial, bold, 18, 24);
*
* @requires {mixin} font-size
*
* @group typography
*/
/
* Header family and weight properties.
*
* @requires {variable} $f-serif-headline
*
* @group typography
*/
/
* Header typography settings.
*
* @param {Number} $level
* @param {Boolean} $size-only
*
* @example
* // Output all properties (font-size, line-height, family, weight)
* @include fs-header(3);
*
* // Output only font-size and line-height
* @include fs-header(3, $size-only: true);
*
* @requires {function} get-font-size
* @requires {function} get-line-height
* @requires {mixin} font-size
* @requires {mixin} f-header
*
* @group typography
*/
/
* Headline family and weight properties.
*
* @requires {variable} $f-serif-headline
*
* @group typography
*/
/
* Headline typography settings.
*
* @param {Number} $level
* @param {Boolean} $size-only
*
* @example
* // Output all properties (font-size, line-height, family, weight)
* @include fs-headline(3);
*
* // Output only font-size and line-height
* @include fs-headline(3, $size-only: true);
*
* @requires {function} get-font-size
* @requires {function} get-line-height
* @requires {mixin} font-size
* @requires {mixin} f-headline
*
* @group typography
*/
/
* Body heading family and weight properties.
*
* @requires {variable} $f-serif-text
*
* @group typography
*/
/
* Body heading typography settings.
*
* @param {Number} $level
* @param {Boolean} $size-only
*
* @example
* // Output all properties (font-size, line-height, family, weight)
* @include fs-bodyHeading(3);
*
* // Output only font-size and line-height
* @include fs-bodyHeading(3, $size-only: true);
*
* @requires {function} get-font-size
* @requires {function} get-line-height
* @requires {mixin} font-size
* @requires {mixin} f-bodyHeading
*
* @group typography
*/
/
* Body copy family property.
*
* @requires {variable} $f-serif-text
*
* @group typography
*/
/
* Body copy typography settings.
*
* @param {Number} $level
* @param {Boolean} $size-only
*
* @example
* // Output all properties (font-size, line-height, family)
* @include fs-bodyCopy(3);
*
* // Output only font-size and line-height
* @include fs-bodyCopy(3, $size-only: true);
*
* @requires {function} get-font-size
* @requires {function} get-line-height
* @requires {mixin} font-size
* @requires {mixin} f-bodyCopy
*
* @group typography
*/
/
* Data family property.
*
* @requires {variable} $f-data
*
* @group typography
*/
/
* Data typography settings.
*
* @param {Number} $level
* @param {Boolean} $size-only
*
* @example
* // Output all properties (font-size, line-height, family)
* @include fs-data(3);
*
* // Output only font-size and line-height
* @include fs-data(3, $size-only: true);
*
* @requires {function} get-font-size
* @requires {function} get-line-height
* @requires {mixin} font-size
* @requires {mixin} f-data
*
* @group typography
*/
/
* Text sans family property.
*
* @requires {variable} $f-sansHere’s the rewritten text in fluent, natural English:
Text Sans Typography Settings
This sets up the typography for sans-serif text.
– `$level` (Number): The font size level you want to use.
– `$size-only` (Boolean): If set to `true`, only the font size and line height will be output.
Examples:
– To output all properties (font size, line height, and font family):
“`
@include fs-textSans(3);
“`
– To output only font size and line height:
“`
@include fs-textSans(3, $size-only: true);
“`
Requirements:
– `get-font-size` function
– `get-line-height` function
– `font-size` mixin
– `f-textSans` mixin
—
Headline Sans Font Family
This font family is not yet part of our standard font scale, so there’s no `fs-` mixin for it. We’re currently using it as a replacement font in a few places.
Requirements:
– `$f-sans-serif-headline` variable
—
Font Face Declarations
The following `@font-face` rules define the “Guardian Headline Full” font family with different weights and styles:
– Light (300) Normal:
Uses the Light weight in normal style.
– Light (300) Italic:
Uses the Light weight in italic style.
– Regular (400) Normal:
Uses the Regular weight in normal style.
– Regular (400) Italic:
Uses the Regular weight in italic style.
– Medium (500) Normal:
Uses the Medium weight in normal style.
– Medium (500) Italic:
Uses the Medium weight in italic style.
– Semibold (600) Normal:
Uses the Semibold weight in normal style.
Each font face includes multiple file formats (woff2, woff, and ttf) for better browser compatibility.@font-face {
font-family: “Guardian Headline Full”;
src: url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Semibold.woff2”) format(“woff2”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Semibold.woff”) format(“woff”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Semibold.ttf”) format(“truetype”);
font-weight: 600;
font-style: normal;
}
@font-face {
font-family: “Guardian Headline Full”;
src: url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-SemiboldItalic.woff2”) format(“woff2”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-SemiboldItalic.woff”) format(“woff”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-SemiboldItalic.ttf”) format(“truetype”);
font-weight: 600;
font-style: italic;
}
@font-face {
font-family: “Guardian Headline Full”;
src: url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Bold.woff2”) format(“woff2”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Bold.woff”) format(“woff”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Bold.ttf”) format(“truetype”);
font-weight: 700;
font-style: normal;
}
@font-face {
font-family: “Guardian Headline Full”;
src: url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-BoldItalic.woff2”) format(“woff2”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-BoldItalic.woff”) format(“woff”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-BoldItalic.ttf”) format(“truetype”);
font-weight: 700;
font-style: italic;
}
@font-face {
font-family: “Guardian Headline Full”;
src: url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Black.woff2”) format(“woff2”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Black.woff”) format(“woff”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Black.ttf”) format(“truetype”);
font-weight: 900;
font-style: normal;
}
@font-face {
font-family: “Guardian Headline Full”;
src: url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-BlackItalic.woff2”) format(“woff2”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-BlackItalic.woff”) format(“woff”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-BlackItalic.ttf”) format(“truetype”);
font-weight: 900;
font-style: italic;
}
@font-face {
font-family: “Guardian Titlepiece”;
src: url(“https://interactive.guim.co.uk/fonts/garnett/GTGuardianTitlepiece-Bold.woff2”) format(“woff2”),
url(“https://interactive.guim.co.uk/fonts/garnett/GTGuardianTitlepiece-Bold.woff”) format(“woff”),
url(“https://interactive.guim.co.uk/fonts/garnett/GTGuardianTitlepiece-Bold.ttf”) format(“truetype”);
font-weight: 700;
font-style: normal;
}
.list-prompt-card-wrapper.svelte-1gb4evw {
width: fit-content;
position: relative;
z-index: 20;
border-radius: 6px;
}
.list-prompt-card-wrapper.svelte-1gb4evw .list-prompt-card–empty:where(.svelte-1gb4evw) {
position: absolute;
content: “”;
display: block;
width: 100%;
height: 100%;
border-radius: 6px;
}
.list-prompt-card-wrapper.svelte-1gb4evw .list-prompt-card–empty:where(.svelte-1gb4evw):first-of-type {
background-color: #c1d8fc;
z-index: -1;
top: -10px;
left: -10px;
}
.list-prompt-card-wrapper.svelte-1gb4evw .list-prompt-card–empty:where(.svelte-1gb4evw):nth-of-type(2) {
background-color: #0077b6;
z-index: -2;
top: -20px;
left: -20px;
}
.right-column > .list-prompt-card-wrapper {
position: sticky;
top: 60px;
}
.list-prompt-card.svelte-1gb4evw {
display: flex;
flex-direction: column;
gap: 16px;
border-radius: 6px;
background-color: #fff;
padding: 10px;
clip-path: polygon(0 0, calc(100% – 40px) 0, 100% 40px, 100% 100%, 0 100%);
}100%, 0 100%); position: relative; }
.list-prompt-card.svelte-1gb4evw:before {
position: absolute;
content: “”;
display: block;
top: 0;
right: 0;
background: #ededed;
width: 40px;
height: 40px;
clip-path: polygon(0 0, 100% 100%, 0 100%);
}
.list-prompt.svelte-1gb4evw {
font-family: “Guardian Headline Full”, “Guardian Egyptian Web”, Georgia, serif;
font-size: 24px;
font-weight: 700;
color: #0077b6;
margin-bottom: 20px;
width: 100px;
}
@media (min-width: 380px) {
.list-prompt.svelte-1gb4evw {
font-size: 32px;
}
}
.list-prompt-button.svelte-1gb4evw {
font-family: “Guardian Text Sans Web”, “Helvetica Neue”, Helvetica, Arial, “Lucida Grande”, sans-serif;
font-size: 17px;
font-weight: 700;
color: #ffffff;
background-color: #0077b6;
padding: 10px 20px;
border-radius: 40px;
width: 100%;
}
@use “interactive-style-library/source/mq.scss” as *;
@use “interactive-style-library/source/typography-mixins.scss” as *;
img.svelte-1fkxihi {
height: auto;
display: block;
}
/*
* Provides sass-mq’s `mq` mixin with pre-filled Guardian breakpoints, so you can do (eg.)
*
* `@include mq(leftCol) …`
*
* These breakpoints are:
* – desktop: 61.25em
* – leftCol: 71.25em
* – mobile: 20em
* – mobileLandscape: 30em
* – mobileMedium: 23.4375em
* – phablet: 41.25em
* – tablet: 46.25em
* – wide: 81.25em
*/
/*
* This file is auto-generated by src/source/generate/breakpoints.js
*/
/*
* This file is auto-generated by src/source/generate/typography.js
*/
/
* Data font stack
*
* @group typography
*/
/
* Serif font stack
*
* @group typography
*/
/
* Headline font stack
*
* @group typography
*/
/
* Sans serif text font stack
*
* @group typography
*/
/
* Sans serif headline font stack
*
* @group typography
*/
/
* Default font scale settings
* See font-scale.html and font-scale.png for visual representations
*
* @group typography
*/
/
* Grab all levels of a font the font-scale
*
* @param {String} $name – Name of the font-scale matrix (eg: headline)
* @param {Map} $font-scale ($font-scale)
*
* @example
* font-size: get-scale(header);
*
* @requires {variable} $font-scale
*
* @return {Map}
*
* @group typography
*/
/
* Grab info for a particular level of a font-scale
*
* @param {String} $name – Name of the font-scale in the matrix (eg: headline)
* @param {Number} $level – Level in the matrix
* @param {Map} $font-scale ($font-scale)
*
* @example
* font-size: get-scale-level(header, 1);
*
* @requires {variable} $font-scale
* @requires {function} get-scale
*
* @return {Map}
*
* @group typography
*/
/
* Get a font-size for a level in the font-scale matrix
*
* @param {String} $name – Name of the font-scale in the matrix (eg: headline)
* @param {Number} $level – Level in the matrix
* @param {Map} $font-scale – Configuration
*
* @example
* font-size: get-font-size(header, 3);
*
* @requires {variable} $font-scale
* @requires {function} convert-to-px
* @requires {function} get-scale-level
*
* @return {Number}
*
* @group typography
*/
/
* Get a line-height for a level in the font-scale matrix
*
* @param {String} $name – Name of the font-scale in the matrix (eg: headline)
* @param {Number} $level – Level in the matrix
* @param {Map} $font-scale – Configuration
*
* @example
* font-size: get-line-height(header, 3);
*
* @requires {variable} $font-scale
* @requires {function} convert-to-px
* @requires {function} get-scale-level
*
* @return {Number}
*
* @group typography
*/
/
* Turn any value into pixels
*
* @param {Number} $value
*
* @example
* font-size: convert-to-px(14); // 14px
*
* @return {Number}
*
* @group typography
*/
/
* Default typography settings, to be included as soon as possible in the HTML
* 1. Make type rendering look crisper
2. Set relative line spacing to 1.5 (16px 1.5 = 24px)
*
* @param {String} $font-family ($f-serif-text) – Default global font
*
* @requires {variable} $f-serif-text
*
* @group typography
*/
/
* Font-size and line-height shorthand
*
* @param {Number} $size
* @param {Number} $line-height ($size)
*
* @example
* @include font-size(Here’s the rewritten text in fluent, natural English:
Font Styling Shorthand
Tip: It’s better to use the font-scale mixins to stay consistent with the font scale.
– Parameters:
– `$family` (String)
– `$weight` (String)
– `$size` (Number)
– `$line-height` (Number, defaults to `$size`)
– Example:
`@include font(arial, bold, 18, 24);`
– Requires: `{mixin} font-size`
– Group: typography
—
Header Family and Weight Properties
– Requires: `{variable} $f-serif-headline`
– Group: typography
Header Typography Settings
– Parameters:
– `$level` (Number)
– `$size-only` (Boolean)
– Examples:
– Output all properties (font-size, line-height, family, weight):
`@include fs-header(3);`
– Output only font-size and line-height:
`@include fs-header(3, $size-only: true);`
– Requires:
– `{function} get-font-size`
– `{function} get-line-height`
– `{mixin} font-size`
– `{mixin} f-header`
– Group: typography
—
Headline Family and Weight Properties
– Requires: `{variable} $f-serif-headline`
– Group: typography
Headline Typography Settings
– Parameters:
– `$level` (Number)
– `$size-only` (Boolean)
– Examples:
– Output all properties:
`@include fs-headline(3);`
– Output only font-size and line-height:
`@include fs-headline(3, $size-only: true);`
– Requires:
– `{function} get-font-size`
– `{function} get-line-height`
– `{mixin} font-size`
– `{mixin} f-headline`
– Group: typography
—
Body Heading Family and Weight Properties
– Requires: `{variable} $f-serif-text`
– Group: typography
Body Heading Typography Settings
– Parameters:
– `$level` (Number)
– `$size-only` (Boolean)
– Examples:
– Output all properties:
`@include fs-bodyHeading(3);`
– Output only font-size and line-height:
`@include fs-bodyHeading(3, $size-only: true);`
– Requires:
– `{function} get-font-size`
– `{function} get-line-height`
– `{mixin} font-size`
– `{mixin} f-bodyHeading`
– Group: typography
—
Body Copy Family Property
– Requires: `{variable} $f-serif-text`
– Group: typography
Body Copy Typography Settings
– Parameters:
– `$level` (Number)
– `$size-only` (Boolean)
– Examples:
– Output all properties (font-size, line-height, family):
`@include fs-bodyCopy(3);`
– Output only font-size and line-height:
`@include fs-bodyCopy(3, $size-only: true);`
– Requires:
– `{function} get-font-size`
– `{function} get-line-height`
– `{mixin} font-size`
– `{mixin} f-bodyCopy`
– Group: typography
—
Data Family Property
– Requires: `{variable} $f-data`
– Group: typography
Data Typography Settings
– Parameters:
– `$level` (Number)
– `$size-only` (Boolean)
– Examples:
– Output all properties:
`@include fs-data(3);`
– Output only font-size and line-height:
`@include fs-data(3, $size-only: true);`
– Requires:
– `{function} get-font-size`
– `{function} get-line-height`
– `{mixin} font-size`
– `{mixin} f-data`
– Group: typography
—
Text Sans Family Property
– Requires: `{variable} $f-sans-serif-text`
– Group: typography
Text Sans Typography Settings
– Parameters:
– `$level` (Number)
– `$size-only` (Boolean)
– Examples:
– Output all properties:
`@include fs-textSans(3);`
– Output only font-size and line-height:
`@include fs-textSans(3, $size-only: true);`
– Requires:
– `{function} get-font-size`
– `{function} get-line-height`
– `{mixin} font-size`
– `{mixin} f-textSans`
– Group: typography
—
Headline Sans Family Property
Note: This isn’t currently part of our font scale matrix, so there’s no `fs-` mixin for it. For now, we’re just using it as a reusable style.Place the font in a few locations.
* Requires the variable: $f-sans-serif-headline
* Group: typography
@font-face {
font-family: “Guardian Headline Full”;
src: url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Light.woff2”) format(“woff2”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Light.woff”) format(“woff”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Light.ttf”) format(“truetype”);
font-weight: 300;
font-style: normal;
}
@font-face {
font-family: “Guardian Headline Full”;
src: url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-LightItalic.woff2”) format(“woff2”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-LightItalic.woff”) format(“woff”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-LightItalic.ttf”) format(“truetype”);
font-weight: 300;
font-style: italic;
}
@font-face {
font-family: “Guardian Headline Full”;
src: url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Regular.woff2”) format(“woff2”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Regular.woff”) format(“woff”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Regular.ttf”) format(“truetype”);
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: “Guardian Headline Full”;
src: url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-RegularItalic.woff2”) format(“woff2”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-RegularItalic.woff”) format(“woff”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-RegularItalic.ttf”) format(“truetype”);
font-weight: 400;
font-style: italic;
}
@font-face {
font-family: “Guardian Headline Full”;
src: url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Medium.woff2”) format(“woff2”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Medium.woff”) format(“woff”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Medium.ttf”) format(“truetype”);
font-weight: 500;
font-style: normal;
}
@font-face {
font-family: “Guardian Headline Full”;
src: url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-MediumItalic.woff2”) format(“woff2”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-MediumItalic.woff”) format(“woff”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-MediumItalic.ttf”) format(“truetype”);
font-weight: 500;
font-style: italic;
}
@font-face {
font-family: “Guardian Headline Full”;
src: url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Semibold.woff2”) format(“woff2”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Semibold.woff”) format(“woff”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Semibold.ttf”) format(“truetype”);
font-weight: 600;
font-style: normal;
}
@font-face {
font-family: “Guardian Headline Full”;
src: url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-SemiboldItalic.woff2”) format(“woff2”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-SemiboldItalic.woff”) format(“woff”),
url(“https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-SemiboldItalic.ttf”) format(“truetype”);
font-weight: 600;
font-style: italic;
}Here is the rewritten text in fluent, natural English:
The greatest literature ever published in English, as chosen by authors, critics, and academics from around the world. How many have you read? Discover the story behind our list, how we made it, and have your say.
100 Best Novels
Tap the titles to explore.
100. My รntonia
99. The Go-Between
98. The Road
97. Catch-22
96. Pedro Pรกramo
95. The Return of the Native
94. The Known World
93. Invisible Cities
92. Sentimental Education
91. Life and Fate
90. Jacob’s Room
89. The Left Hand of Darkness
88. Ragtime
87. The Line of Beauty
86. The Turn of the Screw
85. The Vegetarian
84. The Talented Mr. Ripley
83. A Farewell to Arms
82. The EndHere’s the list of books:
81. Of the Affair
80. Buddenbrooks
79. Rebecca
78. Go Tell It on the Mountain
77. A House for Mr Biswas
76. The Rainbow
75. Dracula
74. The Bluest Eye
73. Nervous Conditions
72. Austerlitz
71. Our Mutual Friend
70. Kindred
69. Jude the Obscure
68. Crime and Punishment
67. Blood Meridian
66. The Man Without Qualities
65. The Master and Margarita
64. The Color Purple
63. The Good Soldier
62. White Teeth
61. Half of a Yellow Sun
60. The Rings of Saturn
59. Howards End
58. Never Let Me Go
57. Disgrace
56. The Sound and the Fury
55. Mansfield Park
54. The Waves
53. Orlando
52. The Transit of Venus
51. The Golden Bowl
50. My Brilliant Friend
49. Wide Sargasso Sea
48. A Fine Balance
47. The Metamorphosis
46. Vanity Fair
45. The Leopard
44. The Golden Notebook
43. Giovanni’s Room
42. Housekeeping
41. The Magic Mountain
40. Heart of Darkness
39. Song of Solomon
38. Their Eyes Were Watching God
37. The Age of Innocence
36. Invisible Man
35. The Handmaid’s Tale
34. Great Expectations
33. Wolf Hall
32. David Copperfield
31. The God of Small Things
30. The Prime of Miss Jean Brodie
29. Frankenstein
28. Pale Fire
How many have you read? Create your own list.
28. The Brothers Karamazov
27. The Trial
26. Don Quixote
25. Lolita
24. The Remains of the Day
23. Midnight’s Children
22. Things Fall Apart
21. The Portrait of a Lady
20. Wuthering Heights
19. The Life and Opinions of Tristram Shandy, Gentleman
18. Persuasion
17. One Hundred Years of Solitude
16. Nineteen Eighty-Four
15. Moby-Dick
14. Mrs Dalloway
13. Emma
12. Bleak House
11. The Great Gatsby
10. Madame Bovary
9. Pride and Prejudice
8. Jane Eyre
7. War and Peace
6. Anna Karenina
5. In Search of Lost Time
4. To the Lighthouse
3. Ulysses
2. Beloved
1. Middlemarch
See all the votes.
Credits
Editorial: Charlotte Northedge, Liese Spencer, Justine Jordan, David Shariatmadari, Ella Creamer, Emma Loffhagen, Lisa Allardice
Production: Julia Longley, Nick Shave, Grainne Mooney, Katie Shimmon
Pictures: Kate Edwards, Caroline Hunter, Louis Siroy, Sadie Gould
Design & development: Barry Ainslie, Fred OโBrien, Pip Lev, Sara Ramsbottom, Rich Cousins, Maggie Murphy, Alessia Amitrano, Harry Fischer, Ellen Wishart, Tara Herman
Data & development: Tom Richards, Seรกn Clarke, Luke Hoyland
How many have you read? Create your own list.
Frequently Asked Questions
Here is a list of FAQs about the concept of the 100 best novels ever written covering various aspects and levels of curiosity
General Beginner Questions
1 What exactly is the list of the 100 best novels
There isnt one official list The most famous one is likely the 100 Best Novels list from the Modern Library from 1998 Other newspapers magazines and critics have published their own versions
2 Who decides which books make the list
It varies The Modern Library list was chosen by a board of writers and scholars Other lists are based on reader polls expert surveys or a combination of both
3 Why should I care about a list of best novels
Its a great starting point for discovering influential thoughtprovoking or beautifully written books It can help you find classics you might have missed and understand the history of literature
4 Are best novels always difficult to read
Not at all While some are dense many are gripping stories To Kill a Mockingbird The Great Gatsby and The Hobbit are often on these lists and are very accessible
5 Do I have to read them in any particular order
No Pick one that sounds interesting to you Many people start with shorter more plotdriven novels like Animal Farm or Of Mice and Men
Advanced Critical Questions
6 Why do most of these lists seem to be written by dead white men
This is a major criticism Many older lists reflect the biases of their time excluding women people of color and nonWestern authors Modern lists actively work to be more diverse and inclusive
7 How do these lists handle translations
A novel originally written in a nonEnglish language is included based on its quality in its original language The specific translation used can affect the reading experience
8 What makes a novel better than another for these lists
Criteria usually include literary merit historical influence cultural impact innovation and lasting relevance