This CSS code defines a custom font family called “Guardian Headline Full” with multiple font weights and styles. It includes light, regular, medium, and semibold weights, each with normal and italic versions. The fonts are loaded from the Guardian’s servers in three different file formats: WOFF2, WOFF, and TrueType.@font-face {
font-family: Guardian Headline Full;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Bold.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Bold.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-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/noalts-not-hinted/GHGuardianHeadline-BoldItalic.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BoldItalic.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-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/noalts-not-hinted/GHGuardianHeadline-Black.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Black.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-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/noalts-not-hinted/GHGuardianHeadline-BlackItalic.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BlackItalic.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BlackItalic.ttf) format(“truetype”);
font-weight: 900;
font-style: italic;
}
@font-face {
font-family: Guardian Titlepiece;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-titlepiece/noalts-not-hinted/GTGuardianTitlepiece-Bold.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-titlepiece/noalts-not-hinted/GTGuardianTitlepiece-Bold.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-titlepiece/noalts-not-hinted/GTGuardianTitlepiece-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/noalts-not-hinted/GHGuardianHeadline-Light.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Light.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-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/noalts-not-hinted/GHGuardianHeadline-LightItalic.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-LightItalic.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-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/noalts-not-hinted/GHGuardianHeadline-Regular.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Regular.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-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/noalts-not-hinted/GHGuardianHeadline-RegularItalic.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-RegularItalic.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-RegularItalic.ttf) format(“truetype”);
font-weight: 400;
font-style: italic;
}The font “Guardian Headline Full” is defined with multiple styles and weights. For the regular italic style, the font files are available in woff2, woff, and truetype formats, with a font-weight of 400 and an italic font-style. The medium weight has a normal style and a weight of 500, also provided in the same three formats. Similarly, the medium italic style uses a weight of 500 and an italic style. The semibold weight (600) and its italic variant are included, along with bold (700) and bold italic styles. Additionally, black (900) and black italic styles are defined, all accessible in woff2, woff, and truetype formats.The provided text appears to be a mix of CSS font definitions and responsive grid layout rules for a website, likely The Guardian. Here is a fluent, natural English rewrite that simplifies the technical phrasing while preserving the meaning:
The code defines custom fonts for the website, including “Guardian Headline” in various weights and styles, and “Guardian Titlepiece” in bold. It then sets up a responsive grid layout for article content. This layout changes based on screen size:
* On smaller screens, the grid is a single column with areas stacked vertically for media, title, headline, and other elements.
* As the screen gets wider, the layout adjusts. Captions for immersive images get added padding, and the main content area gains right-hand padding.
* On even larger screens, the grid splits into two columns: a main content area and a right-hand sidebar. The specific arrangement of title, headline, media, and body shifts within these columns.
* On the largest screens, the grid expands further to include a left-hand border and more precise positioning of all elements.For interactive grid figures with immersive captions, the caption padding is set to 4 pixels at the top and 0 elsewhere. In various content areas, elements like lines and meta are positioned in the grid from row 2, column 1 to row 5, column 2. The lines element has a height that adjusts to its content and a top margin of 5 pixels, while the meta element has an 18-pixel top margin.
On larger screens, the interactive grid uses a five-column layout with specific widths.
For iOS and Android devices, article headers use specific fonts and styling: the standfirst text uses a serif font with medium weight, section kickers are displayed as blocks with the first letter capitalized, keylines have adjusted padding, and bylines use a bold serif font. Images within articles have automatic height, and paragraphs following atomic elements have no top margin.
Additionally, custom font faces are defined for the Guardian Headline Full font family, including light and light italic variants with their respective source files and formats.The provided text is CSS code defining a custom font family called “Guardian Headline Full” with various weights and styles. It specifies the font files and their formats for web use.@font-face {
font-family: ‘Guardian Headline Full’;
src: url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Black.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Black.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-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/noalts-not-hinted/GHGuardianHeadline-BlackItalic.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BlackItalic.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BlackItalic.ttf’) format(‘truetype’);
font-weight: 900;
font-style: italic;
}
@font-face {
font-family: ‘Guardian Titlepiece’;
src: url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-titlepiece/noalts-not-hinted/GTGuardianTitlepiece-Bold.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-titlepiece/noalts-not-hinted/GTGuardianTitlepiece-Bold.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-titlepiece/noalts-not-hinted/GTGuardianTitlepiece-Bold.ttf’) format(‘truetype’);
font-weight: 700;
font-style: normal;
}
@media (min-width: 71.25em) {
.content__main-column–interactive {
margin-left: 160px;
}
}
@media (min-width: 81.25em) {
.content__main-column–interactive {
margin-left: 240px;
}
}
.content__main-column–interactive .element-atom {
max-width: 620px;
}
@media (max-width: 46.24em) {
.content__main-column–interactive .element-atom {
max-width: 100%;
}
}
.content__main-column–interactive .element-showcase {
margin-left: 0;
}
@media (min-width: 46.25em) {
.content__main-column–interactive .element-showcase {
max-width: 620px;
}
}
@media (min-width: 71.25em) {
.content__main-column–interactive .element-showcase {
max-width: 860px;
}
}
.content__main-column–interactive .element-immersive {
max-width: 1100px;
}
@media (max-width: 46.24em) {
.content__main-column–interactive .element-immersive {
width: calc(100vw – var(–scrollbar-width, 0px));
position: relative;
left: 50%;
right: 50%;
margin-left: calc(-50vw + var(–half-scrollbar-width, 0px)) !important;
margin-right: calc(-50vw + var(–half-scrollbar-width, 0px)) !important;
}
}
@media (min-width: 46.25em) {
.content__main-column–interactive .element-immersive {
transform: translate(-20px);
width: calc(100% + 60px);
}
}
@media (max-width: 71.24em) {
.content__main-column–interactive .element-immersive {
margin-left: 0;
margin-right: 0;
}
}
@media (min-width: 71.25em) {
.content__main-column–interactive .element-immersive {
transform: translate(0);
width: auto;
}
}
@media (min-width: 81.25em) {
.content__main-column–interactive .element-immersive {
max-width: 1260px;
}
}
.content__main-column–interactive p,
.content__main-column–interactive ul {
max-width: 620px;
}
.content__main-column–interactive:before {
position: absolute;
top: 0;
height: calc(100% + 15px);
min-height: 100px;
content: “”;
}
@media (min-width: 71.25em) {
.content__main-column–interactive:before {
border-left: 1px solid #dcdcdc;
z-index: -1;
left: -10px;
}
}
@media (min-width: 81.25em) {
.content__main-column–interactive:before {
border-left: 1px solid #dcdcdc;
left: -11px;
}
}
.content__main-column–interactive .element-atom {
margin-top: 0;
margin-bottom: 0;
padding-bottom: 12px;
padding-top: 12px;
}
.content__main-column–interactive p + .element-atom {
padding-top: 0;
padding-bottom: 0;
margin-top: 12px;
margin-bottom: 12px;
}
.content__main-column–interactive .element-inline {
max-width: 620px;
}
@media (min-width: 61.25em) {
figure[data-spacefinder-role=”inline”].element {
max-width: 620px;
}
}
:root {
–dateline: #606060;
–headerBorder: #dcdcdc;
–captionText: #999;
–captionBackground: hsla(0, 0%, 7%, 0.72);
–feature: #c70000;
–new-pillar-colour: var(–primary-pillar, var(–feature));
}
.content__main-column–interactive .element.element-atom,
.element.element-atom {
padding: 0;
}
#article-body > div .element-atom:first-of-type + p:first-of-type,
#article-body > div .element-atom:first-of-type {The first paragraph after certain elements like a sign-in gate, horizontal rule, or specific atoms gets a top padding of 14 pixels.
For the first letter of that first paragraph in the same contexts, specific styling is applied: it uses the Guardian headline font with a bold weight, a size of 111 pixels, and a line height of 92 pixels. It floats to the left, is set to uppercase, and uses a box-sizing model with an 8-pixel right margin. The vertical alignment is set to the text top, and the color uses a custom CSS property for drop caps.
Paragraphs that come directly after a horizontal rule have their top padding removed.
Elements with the attribute `data-gu-name=”pullquote”` are given a maximum width of 620 pixels.
For showcase elements within the main content or specific article containers, the figure caption is positioned statically, takes the full width, and is also limited to a maximum width of 620 pixels.
Immersive elements are set to occupy the full viewport width, minus the scrollbar width. On screens smaller than 71.24 ems, these immersive elements are constrained to a maximum width of 978 pixels, and their figure captions receive inline padding.@media (max-width: 71.24em) and (min-width: 30em) {
.element.element–immersive.element-immersive figcaption {
padding-inline: 20px;
}
}
@media (min-width: 46.25em) and (max-width: 61.24em) {
.element.element–immersive.element-immersive {
max-width: 738px;
}
}
@media (max-width: 46.24em) {
.element.element–immersive.element-immersive {
margin-left: -10px !important;
margin-right: 0 !important;
left: 0;
}
}
@media (max-width: 46.24em) and (min-width: 30em) {
.element.element–immersive.element-immersive {
margin-left: -20px !important;
}
.element.element–immersive.element-immersive figcaption {
padding-inline: 20px;
}
}
@media (min-width: 61.25em) {
.furniture-wrapper {
display: grid;
grid-column-gap: 20px;
grid-row-gap: 0px;
grid-template-columns: [title-start headline-start meta-start standfirst-start] repeat(5, 1fr) [title-end headline-end meta-end standfirst-end portrait-start] repeat(5, 1fr) [portrait-end];
grid-template-rows: [title-start portrait-start] .25fr [title-end headline-start] 1fr [headline-end standfirst-start] .75fr [standfirst-end meta-start] auto [meta-end portrait-end];
}
.furniture-wrapper #headline > div:first-child,
.furniture-wrapper [data-gu-name=headline] > div:first-child,
.furniture-wrapper .headline > div:first-child {
border-top: 1px solid var(–headerBorder);
}
.furniture-wrapper #meta,
.furniture-wrapper [data-gu-name=meta] {
position: relative;
padding-top: 2px;
margin-right: 0;
}
.furniture-wrapper .standfirst .content__standfirst,
.furniture-wrapper #standfirst .content__standfirst,
.furniture-wrapper [data-gu-name=standfirst] .content__standfirst {
margin-bottom: 4px;
}
.furniture-wrapper .standfirst ul li,
.furniture-wrapper #standfirst ul li,
.furniture-wrapper [data-gu-name=standfirst] ul li {
font-size: 20px;
}
.furniture-wrapper .standfirst li a,
.furniture-wrapper .standfirst a,
.furniture-wrapper #standfirst li a,
.furniture-wrapper #standfirst a,
.furniture-wrapper [data-gu-name=standfirst] li a,
.furniture-wrapper [data-gu-name=standfirst] a {
border-bottom: none;
background-image: none !important;
text-decoration: underline;
text-underline-offset: 6px;
text-decoration-color: var(–headerBorder, #dcdcdc);
}
.furniture-wrapper .standfirst li a:hover,
.furniture-wrapper .standfirst a:hover,
.furniture-wrapper #standfirst li a:hover,
.furniture-wrapper #standfirst a:hover,
.furniture-wrapper [data-gu-name=standfirst] li a:hover,
.furniture-wrapper [data-gu-name=standfirst] a:hover {
text-decoration-color: var(–new-pillar-colour);
}
.furniture-wrapper .standfirst p:first-of-type,
.furniture-wrapper #standfirst p:first-of-type,
.furniture-wrapper [data-gu-name=standfirst] p:first-of-type {
border-top: 1px solid var(–headerBorder);
padding-bottom: 0;
}
}
@media (min-width: 61.25em) and (min-width: 71.25em) {
.furniture-wrapper .standfirst p:first-of-type,
.furniture-wrapper #standfirst p:first-of-type,
.furniture-wrapper [data-gu-name=standfirst] p:first-of-type {
border-top: unset;
}
}
@media (min-width: 61.25em) {
.furniture-wrapper figure {
margin: 0 0 0 -10px;
}
.furniture-wrapper figure[data-spacefinder-role=inline].element {
max-width: 630px;
}
}
@media (min-width: 71.25em) {
.furniture-wrapper {
grid-template-columns: [title-start headline-start meta-start] repeat(2, 1fr) [meta-end standfirst-start] repeat(5, 1fr) [title-end headline-end standfirst-end portrait-start] repeat(7, 1fr) [portrait-end];
grid-template-rows: [title-start portrait-start] 80px [title-end headline-start] auto [headline-end standfirst-start meta-start] auto [standfirst-end meta-end portrait-end];
}
.furniture-wrapper #meta:before,
.furniture-wrapper [data-gu-name=meta]:before {
content: “”;
width: 540px;
position: absolute;
top: 0;
background-color: var(–headerBorder);
height: 1px;
}
.furniture-wrapper .standfirst p,
.furniture-wrapper #standfirst p,
.furniture-wrapper [data-gu-name=standfirst] p {
border-top: unset;
}
.furniture-wrapper .standfirst:before,
.furniture-wrapper #standfirst:before,
.furniture-wrapper [data-gu-name=standfirst]:before {
content: “”;
width: 1px;
background-color: var(–headerBorder);
height: 100%;
position: absolute;
top: 0;
left: .5px;
}
}
@media (min-width: 81.25em) {
.furniture-wrapper {
grid-template-columns: [title-start headline-start meta-start] repeat(3, 1fr) [meta-end standfirst-start];
}
}repeat(5, 1fr) [title-end headline-end standfirst-end portrait-start] repeat(8, 1fr) [portrait-end];
grid-template-rows: [title-start portrait-start] 0.25fr [title-end headline-start] 1fr [headline-end standfirst-start meta-start] 0.75fr [standfirst-end meta-end portrait-end]
}
.furniture-wrapper #meta:before,
.furniture-wrapper [data-gu-name=meta]:before {
width: 620px
}
.furniture-wrapper .standfirst:before,
.furniture-wrapper #standfirst:before,
.furniture-wrapper [data-gu-name=standfirst]:before {
left: -0.5px
}
}
.furniture-wrapper .article-header .content__labels>div,
.furniture-wrapper [data-gu-name=title] .content__labels>div {
padding-top: 2px
}
.furniture-wrapper #headline h1,
.furniture-wrapper [data-gu-name=headline] h1,
.furniture-wrapper .headline h1 {
font-weight: 600;
max-width: 620px;
font-size: 32px
}
@media (min-width: 71.25em) {
.furniture-wrapper #headline h1,
.furniture-wrapper [data-gu-name=headline] h1,
.furniture-wrapper .headline h1 {
max-width: 540px;
font-size: 50px
}
}
@media (min-width: 46.25em) {
.furniture-wrapper .keyline-4,
.furniture-wrapper [data-gu-name=lines] {
margin-right: 0
}
}
@media (min-width: 61.25em) {
.furniture-wrapper .keyline-4,
.furniture-wrapper [data-gu-name=lines] {
display: none
}
}
.furniture-wrapper .keyline-4 svg,
.furniture-wrapper [data-gu-name=lines] svg {
stroke: var(–headerBorder)
}
@media (min-width: 46.25em) {
.furniture-wrapper #meta,
.furniture-wrapper [data-gu-name=meta] {
margin-right: 0
}
}
.furniture-wrapper #meta .meta__social,
.furniture-wrapper #meta .meta__social ul li a span,
.furniture-wrapper #meta .meta__comment,
.furniture-wrapper [data-gu-name=meta] .meta__social,
.furniture-wrapper [data-gu-name=meta] .meta__social ul li a span,
.furniture-wrapper [data-gu-name=meta] .meta__comment {
border-color: var(–headerBorder)
}
.furniture-wrapper #meta .content__meta-container_dcr>div>gu-island,
.furniture-wrapper [data-gu-name=meta] .content__meta-container_dcr>div>gu-island {
display: none
}
.furniture-wrapper .standfirst,
.furniture-wrapper #standfirst,
.furniture-wrapper [data-gu-name=standfirst] {
margin-left: -10px;
padding-left: 10px;
position: relative
}
@media (min-width: 46.25em) {
.furniture-wrapper .standfirst,
.furniture-wrapper #standfirst,
.furniture-wrapper [data-gu-name=standfirst] {
padding-top: 2px
}
}
.furniture-wrapper .standfirst p,
.furniture-wrapper #standfirst p,
.furniture-wrapper [data-gu-name=standfirst] p {
font-weight: 400;
font-size: 20px;
padding-bottom: 14px
}
.furniture-wrapper #main-media,
.furniture-wrapper [data-gu-name=media] {
position: relative;
margin-top: 0;
margin-bottom: 2px;
grid-area: portrait
}
.furniture-wrapper #main-media div div,
.furniture-wrapper [data-gu-name=media] div div {
width: 100%;
margin-inline: 0
}
@media (min-width: 61.25em) {
.furniture-wrapper #main-media,
.furniture-wrapper [data-gu-name=media] {
margin-bottom: 0
}
}
@media (max-width: 46.24em) {
.furniture-wrapper #main-media,
.furniture-wrapper [data-gu-name=media] {
width: calc(100vw – var(–scrollbar-width, 0px));
margin-left: -10px
}
}
@media (max-width: 46.24em) and (min-width: 30em) {
.furniture-wrapper #main-media,
.furniture-wrapper [data-gu-name=media] {
margin-left: -20px
}
}
.furniture-wrapper figcaption {
position: absolute;
bottom: 0;
padding: 4px 10px 12px;
background-color: var(–captionBackground);
color: var(–captionText);
max-width: unset;
width: 100%;
margin-bottom: 0;
min-height: 46px
}
.furniture-wrapper figcaption span {
color: var(–headerBorder)
}
.furniture-wrapper figcaption span svg {
fill: var(–headerBorder)
}
.furniture-wrapper figcaption span:nth-of-type(1) {
display: none
}
.furniture-wrapper figcaption span:nth-of-type(2) {
display: block;
max-width: 90%
}
@media (min-width: 30em) {
.furniture-wrapper figcaption {
padding: 4px 20px 12px
}
}
.furniture-wrapper figcaption.hidden {
opacity: 0
}
.furniture-wrapper #caption-button {
display: block;
position: absolute;
bottom: 10px;
right: 8px;
z-index: 30;
background-color: var(–captionBackground);
border: none;
border-radius: 50%;
padding: 6px 5px 5px
}
.furniture-wrapper #caption-button svg {
transform: scale(0.85)
}
@media (min-width: 30em) {
.furniture-wrapper #caption-button {
right: 10px
}
}
@media (min-width: 71.25em) {
.content__main-column–interactive:before {
top: -12px !important;
height: calc(100% + 24px) !important
}The main column for interactive content has a maximum width of 620 pixels for h2 headings. On iOS and Android devices, the color scheme adjusts for dark mode, using specific background and accent colors. When the system is set to dark mode, the accent color changes accordingly.
For the first letter of the first paragraph in articles on iOS and Android, the color is set to a secondary accent. The article header height is set to zero, and the furniture wrapper (which contains labels and headlines) has specific padding. Labels are styled with a bold font, a headline font family, and colored using the accent color, with text in capital letters. Headlines are set to 32 pixels, bold, with bottom padding and a dark gray color.For iOS and Android devices, the image elements within furniture wrappers across feature, standard, and comment article containers are positioned relatively. They have a top margin of 14px, a left offset of -10px, and a width that fills the viewport minus the scrollbar. Their height adjusts automatically.
Inside these image elements, the inner figure, image, and link components have a transparent background. Their width also matches the viewport minus the scrollbar, and their height is set to auto as important.
The standfirst sections within these same wrappers have a top padding of 4px, bottom padding of 24px, and a right margin of -10px.
The paragraph text inside the standfirst uses the Guardian Headline font family or fallback serif fonts.
Links within the standfirst, including those inside list items, are styled consistently across all specified contexts.This CSS code styles links and metadata in article containers. It sets link colors to a custom variable, removes backgrounds, and adds underlines. On iOS and Android devices, it changes the underline color on hover and adjusts margins and colors for author bylines and other metadata.On iOS and Android devices, for feature, standard, and comment article containers, the following styles apply:
– SVG icons within the meta miscellaneous section use the new pillar color for strokes.
– The caption button in showcase elements is displayed as a flex container, centered with 5px padding, dimensions of 28px by 28px, and positioned 14px from the right.
– The article body has 12px padding on the left and right.
– Non-thumbnail, non-immersive image figures within the article body have no margin, a width calculated as 100vw minus 24px and the scrollbar width, and an automatic height. Their captions have no padding.
– Immersive image figures have a width calculated as 100vw minus the scrollbar width.
– Quoted blockquotes within the article body’s prose have a `:before` pseudo-element applied.For iOS and Android devices, quoted text in articles will use the new pillar color. Links within articles will be underlined with a specific color and offset, changing color on hover.
In dark mode, article backgrounds become dark gray. Labels use the new pillar color, headlines and standfirst text adopt a border color, and author names in bylines are styled accordingly.This appears to be CSS code for styling web pages on Android and iOS devices. The code sets colors for various elements like author names, icons, captions, and blockquotes using custom color variables. It also applies a dark background to article content areas.This appears to be a CSS selector targeting the first letter of paragraphs in specific containers for iOS and Android devices. The selector applies to various article containers and body sections, focusing on paragraphs that follow certain elements like `.element-atom`, `.sign-in-gate`, or `#sign-in-gate`.For Android and iOS devices, the first letter of paragraphs following specific elements in article containers will be styled with a custom color variable.For comment articles on iOS and Android, the standfirst section has a top padding of 24px and no top margin. The main heading (h2) in the article text is set to 24px.
On iOS, the caption button for feature, standard, and comment articles has specific padding. On Android, the same button has slightly different padding.
In dark mode, the color scheme changes for follow buttons, standfirst text, links, and bylines to use lighter text and specific accent colors.
When the page has a Guardian organization logo, the branding element is forced to display.
On iOS and Android, labels and headlines within article containers are set to a medium font weight (500). This also applies to headlines and standfirst paragraphs within the furniture wrapper.
The page uses a custom background color (#fff4f2) for weekend essays, which is applied to the body and specific article sections. A decorative lines element is hidden.
For larger screens, the furniture wrapper uses a grid layout with defined rows.
The article header has a fixed height and contains the content labels. A decorative animated book image is positioned in the bottom-right corner of this area, with its size increasing on larger screens.
A horizontal line is added below the labels, spanning the viewport width (accounting for scrollbars) and aligned to the left. On medium-sized screens, this line’s width and position are adjusted.For screens with a minimum width of 61.25em, the content labels after div elements within the article header and title sections of the furniture wrapper will be hidden. When the screen width reaches at least 71.25em, the article header and title sections will have a height of 80px. This increases to 125px at 81.25em. At this same breakpoint, the headline, its data attribute counterpart, and the headline class will have a top margin of -2px.
Within the furniture wrapper, the headline, its data attribute, and class have inner divs with no bottom padding. The portrait main media headline wrapper inside these sections takes up full height, is positioned relatively, hides overflow, and has 24px of bottom padding. The h1 and a tags inside this wrapper have no maximum width. On hover, their underline thickness is 2px with a 6px offset.
The h1, a tags, and byline spans within the portrait main media headline wrapper have a line height of 115%, a font weight of 500, and a font size of 36px. This font size increases to 50px for screens at least 71.25em wide.
The standfirst section, its ID, and data attribute are positioned relatively with 4px top padding. This padding is removed at 61.25em and becomes 2px at 71.25em.
Within the meta section, the branding island inside the content meta container is set to display as a block..furniture-wrapper [data-gu-name=media] {
position: relative;
}
@media (min-width: 61.25em) {
.furniture-wrapper #main-media,
.furniture-wrapper [data-gu-name=media] {
grid-area: portrait;
}
}
.furniture-wrapper #main-media > div,
.furniture-wrapper [data-gu-name=media] > div {
position: relative;
}
.furniture-wrapper #main-media div + span,
.furniture-wrapper [data-gu-name=media] div + span {
display: block;
}
.furniture-wrapper #main-media figure,
.furniture-wrapper [data-gu-name=media] figure {
height: 100%;
margin-left: 10px;
}
.furniture-wrapper #main-media figure picture img,
.furniture-wrapper #main-media figure figcaption,
.furniture-wrapper [data-gu-name=media] figure picture img,
.furniture-wrapper [data-gu-name=media] figure figcaption {
width: calc(100vw – 40px – var(–scrollbar-width, 0px));
height: auto;
margin-left: 10px;
padding: 10px 0;
}
.furniture-wrapper #main-media figure figcaption,
.furniture-wrapper [data-gu-name=media] figure figcaption {
margin-bottom: 10px;
padding: 10px;
}
.furniture-wrapper #main-media figure:before,
.furniture-wrapper [data-gu-name=media] figure:before {
content: “”;
display: block;
width: calc(100vw – 20px – var(–scrollbar-width, 0px));
background-image: url(https://interactive.guim.co.uk/atoms/2025/04/2025-weekend-essay-test/assets/v/1764331689/frame.png);
background-size: contain;
background-position: center;
background-repeat: no-repeat;
position: absolute;
top: 0;
left: 10px;
height: inherit;
}
@media (min-width: 46.25em) {
.furniture-wrapper #main-media figure,
.furniture-wrapper [data-gu-name=media] figure {
margin-left: 0;
}
.furniture-wrapper #main-media figure picture img,
.furniture-wrapper [data-gu-name=media] figure picture img {
width: 670px;
height: auto;
margin-left: 5px;
padding: 15px 10px;
}
.furniture-wrapper #main-media figure:before,
.furniture-wrapper [data-gu-name=media] figure:before {
width: 700px;
left: -10px;
}
.furniture-wrapper #main-media figure figcaption,
.furniture-wrapper [data-gu-name=media] figure figcaption {
width: 650px;
margin-left: 15px;
margin-bottom: 15px;
padding: 15px 10px;
}
}
@media (min-width: 61.25em) {
.furniture-wrapper #main-media figure:before,
.furniture-wrapper [data-gu-name=media] figure:before {
width: 470px;
}
.furniture-wrapper #main-media figure picture img,
.furniture-wrapper #main-media figure figcaption,
.furniture-wrapper [data-gu-name=media] figure picture img,
.furniture-wrapper [data-gu-name=media] figure figcaption {
width: 450px;
margin-left: 0;
}
.furniture-wrapper #main-media figure picture img,
.furniture-wrapper [data-gu-name=media] figure picture img {
padding: 10px 0;
}
.furniture-wrapper #main-media figure figcaption,
.furniture-wrapper [data-gu-name=media] figure figcaption {
margin-bottom: 10px;
}
}
@media (min-width: 71.25em) {
.furniture-wrapper #main-media figure:before,
.furniture-wrapper [data-gu-name=media] figure:before {
width: 550px;
}
.furniture-wrapper #main-media figure picture img,
.furniture-wrapper [data-gu-name=media] figure picture img {
width: 520px;
margin-left: 5px;
padding: 10px 5px;
}
.furniture-wrapper #main-media figure figcaption,
.furniture-wrapper [data-gu-name=media] figure figcaption {
width: 510px;
margin-left: 10px;
margin-bottom: 10px;
}
}
@media (min-width: 81.25em) {
.furniture-wrapper #main-media figure:before,
.furniture-wrapper [data-gu-name=media] figure:before {
width: 630px;
}
.furniture-wrapper #main-media figure picture img,
.furniture-wrapper [data-gu-name=media] figure picture img {
width: 600px;
padding: 15px 0;
}
.furniture-wrapper #main-media figure figcaption,
.furniture-wrapper [data-gu-name=media] figure figcaption {
width: 600px;
margin-left: 5px;
margin-bottom: 15px;
}
}
.furniture-wrapper #main-media #caption-button,
.furniture-wrapper [data-gu-name=media] #caption-button {
right: 15px;
bottom: 20px;
}
@media (min-width: 46.25em) {
.furniture-wrapper #main-media #caption-button,
.furniture-wrapper [data-gu-name=media] #caption-button {
right: 45px;
bottom: 30px;
}
}
@media (min-width: 61.25em) {
.furniture-wrapper #main-media #caption-button,
.furniture-wrapper [data-gu-name=media] #caption-button {
right: 15px;
bottom: 20px;
}
}
@media (min-width: 71.25em) {
.furniture-wrapper #main-media #caption-button,
.furniture-wrapper [data-gu-name=media] #caption-button {
right: 20px;
}
}
@media (min-width: 81.25em) {
.furniture-wrap
}For the main media caption button, the furniture wrapper sets the bottom position to 30px. When there’s no media, a centered div displays a bold, underlined, 24px text in a specific color.
On larger screens, the interactive main column aligns to the left without a preceding element. Supporting content with blockquotes uses a light background. The first letter of the first paragraph is styled lightly, while drop caps in specific contexts are large, uppercase, and colored. Headings are orange-brown, 28px (32px on large screens), and light, turning bold if they contain strong text. Figures with iframes also have a light background.
In apps, the byline’s follow section appears with 14px text, and media elements fit their content. For dark mode, the background colors switch to dark gray, and certain header elements have adjusted styling.[data-app-os=android] .furniture-wrapper .article-header:after,
[data-app-os=android] .furniture-wrapper [data-gu-name=title] .content__labels:after {
background-image: url(https://interactive.guim.co.uk/atoms/2025/04/2025-weekend-essay-test/assets/v/1764331689/book-white.gif)
}
[data-rendering-target=apps] .furniture-wrapper .meta__byline gu-island[name=FollowWrapper] svg path,
[data-rendering-target=apps] .furniture-wrapper [data-component=meta-byline] gu-island[name=FollowWrapper] svg path,
[data-app-os=ios] .furniture-wrapper .meta__byline gu-island[name=FollowWrapper] svg path,
[data-app-os=ios] .furniture-wrapper [data-component=meta-byline] gu-island[name=FollowWrapper] svg path,
[data-app-os=android] .furniture-wrapper .meta__byline gu-island[name=FollowWrapper] svg path,
[data-app-os=android] .furniture-wrapper [data-component=meta-byline] gu-island[name=FollowWrapper] svg path {
fill: var(–byline-anchor, #ffffff) !important
}
[data-rendering-target=apps] .furniture-wrapper #main-media figure:before,
[data-rendering-target=apps] .furniture-wrapper [data-gu-name=media] figure:before,
[data-app-os=ios] .furniture-wrapper #main-media figure:before,
[data-app-os=ios] .furniture-wrapper [data-gu-name=media] figure:before,
[data-app-os=android] .furniture-wrapper #main-media figure:before,
[data-app-os=android] .furniture-wrapper [data-gu-name=media] figure:before {
background-image: url(https://interactive.guim.co.uk/atoms/2025/04/2025-weekend-essay-test/assets/v/1764331689/frame-white.png) !important
}
body.ios,
body.android {
background-color: #fff
}
body.ios #feature-article-container .furniture-wrapper .content__labels,
body.ios #standard-article-container .furniture-wrapper .content__labels,
body.ios #comment-article-container .furniture-wrapper .content__labels,
body.android #feature-article-container .furniture-wrapper .content__labels,
body.android #standard-article-container .furniture-wrapper .content__labels,
body.android #comment-article-container .furniture-wrapper .content__labels,
body.ios #feature-article-container .furniture-wrapper h1.headline,
body.ios #standard-article-container .furniture-wrapper h1.headline,
body.ios #comment-article-container .furniture-wrapper h1.headline,
body.android #feature-article-container .furniture-wrapper h1.headline,
body.android #standard-article-container .furniture-wrapper h1.headline,
body.android #comment-article-container .furniture-wrapper h1.headline {
font-weight: 500
}
@media (prefers-color-scheme: light) {
html:has(body.ios, body.android) {
background-color: var(–weekend-essay-bg, #fff4f2)
}
}
html:has(body.ios, body.android) body.ios,
html:has(body.ios, body.android) body.android {
–opinion-primary: #c74600;
–byline-anchor: var(–opinion-primary, #c74600);
–primary-pillar: var(–opinion-primary, #c74600)
}
@media (prefers-color-scheme: light) {
html:has(body.ios, body.android) body.ios,
html:has(body.ios, body.android) body.android {
background-color: var(–weekend-essay-bg, #fff4f2)
}
}
@media (prefers-color-scheme: dark) {
html:has(body.ios, body.android) body.ios,
html:has(body.ios, body.android) body.android {
–weekend-essay-bg: #1a1a1a;
–opinion-primary: #ff7f0f
}
html:has(body.ios, body.android) .garnett–pillar-opinion:not(.garnett–type-media).ios .article__body,
html:has(body.ios, body.android) .garnett–pillar-opinion:not(.garnett–type-media).ios .tags {
background-color: unset
}
}
body.ios #feature-article-container,
body.ios #standard-article-container,
body.ios #comment-article-container,
body.android #feature-article-container,
body.android #standard-article-container,
body.android #comment-article-container {
background-color: var(–weekend-essay-bg, #fff4f2)
}
@media (min-width: 61.25em) {
body.ios #feature-article-container .furniture-wrapper,
body.ios #standard-article-container .furniture-wrapper,
body.ios #comment-article-container .furniture-wrapper,
body.android #feature-article-container .furniture-wrapper,
body.android #standard-article-container .furniture-wrapper,
body.android #comment-article-container .furniture-wrapper {
grid-column-gap: 20px;
grid-row-gap: 0px;
grid-template-columns: [title-start headline-start meta-start standfirst-s
}
}The grid is set up with five columns, each taking up one fraction of the available space. The rows are defined with specific starting and ending points for the title, headline, standfirst, meta information, and portrait. The title and portrait share the first row, which takes up a quarter of the space. The headline row takes up one fraction, the standfirst row takes up 1.25 fractions, and the meta row adjusts automatically to its content.
On iOS and Android devices, for feature, standard, and comment articles, the title and GIF wrapper is displayed as a flexible row layout. It uses space-between alignment and is positioned relatively. The content labels within this wrapper have a font size of 17 pixels, are in normal style, bold, and have a line height of 115%. Links inside these labels are colored using a custom variable for the new pillar color, defaulting to #c74600, and their text transformation is set to none.
The GIF container and its images are set to 70 pixels in both width and height. If the GIF container or image has the class “book-gif-white,” the same dimensions apply.On Android devices, hide the white book GIFs in the title sections of feature, standard, and comment articles.
When dark mode is enabled:
– On iOS and Android, hide the regular book GIFs in those same title sections.
– Then, show the white book GIFs instead.
For both iOS and Android, add a thin gray line at the bottom of the title sections in feature, standard, and comment articles.The title-and-gif-wrapper element is assigned to the grid area named “title” for several article containers on both iOS and Android. For these same containers, an after pseudo-element is set to 50vw wide. In dark mode, this after element’s background color changes to #606060.
On larger screens (61.25em and above), the portrait-mainmedia__headline-wrapper is assigned to the grid area “headline” for the same article containers.
For the headline, byline, and related links within these article containers, the text styling is set to: font size 36px, normal style, medium weight (500), and a line height of 115%.For feature, standard, and comment article containers on iOS and Android, the byline text and links are set to a red color (#c70000) or a custom variable. In dark mode, this changes to a darker orange (#c74600). Avatars are hidden, headlines have no bottom margin or padding, and bylines appear in italics.For iOS and Android devices, the author’s byline in feature, standard, and comment articles should have a normal font style. The main media container in these articles should have an automatic height, a 4:5 aspect ratio, and a transparent background.
Within this container, the figure element should take up the full height and have no left margin. Its inner figure and element containers should be positioned at the top left, with a transparent background, no padding, and visible overflow.
Images inside these elements should have a width equal to the full viewport width minus 40 pixels, with a left margin of 20 pixels and a top margin of 25 pixels.Images within article figures have a top margin of 13 pixels. On iOS and Android devices, figure captions in feature, standard, and comment articles have an automatic height. Within these captions, paragraph and span elements are displayed as blocks with no maximum height, are positioned relatively, and use a custom color for text (defaulting to #999).
For screens wider than 46.25em, the maximum width for these figures is removed. Additionally, a pseudo-element before these figures is positioned 10 pixels from the left, with its width calculated dynamically.For iOS and Android devices, the image width within article containers is set to the full viewport width minus 60 pixels, with a left margin of 30 pixels and a top margin of 40 pixels.
On larger screens (61.25em and above), the width adjusts to half the viewport width minus 40 pixels and the scrollbar width, with a reduced left margin of 18 pixels and a top margin of 10 pixels.
For even larger screens (71.25em and above), the positioning is fine-tuned with a top offset of -4 pixels.
On the largest screens (81.25em and above), the left margin is set to -20 pixels, the image width becomes half the viewport width minus 90 pixels and the scrollbar width, with a left margin of 12 pixels, a top margin of -10 pixels, and a top padding of 21 pixels.
In dark mode, additional styles are applied for iOS devices within article containers.For iOS and Android devices, the first image in articles (feature, standard, or comment types) has a white frame background. On smaller screens, this image spans almost the full viewport width with some padding. On wider screens (above 61.25em), the image width reduces to about half the viewport, with adjusted margins and padding. At the largest breakpoint (above 81.25em), the width is slightly narrower and the image is moved up slightly.#main-media figure.element.is-first-image {
height: 100%;
max-width: 620px !important;
}
body.ios #feature-article-container .furniture-wrapper #main-media figure.element.is-first-image:before,
body.ios #standard-article-container .furniture-wrapper #main-media figure.element.is-first-image:before,
body.ios #comment-article-container .furniture-wrapper #main-media figure.element.is-first-image:before,
body.android #feature-article-container .furniture-wrapper #main-media figure.element.is-first-image:before,
body.android #standard-article-container .furniture-wrapper #main-media figure.element.is-first-image:before,
body.android #comment-article-container .furniture-wrapper #main-media figure.element.is-first-image:before {
width: calc(50vw – 20px – var(–scrollbar-width, 0px));
left: 0;
height: 100%;
}
@media (min-width: 81.25em) {
body.ios #feature-article-container .furniture-wrapper #main-media figure.element.is-first-image:before,
body.ios #standard-article-container .furniture-wrapper #main-media figure.element.is-first-image:before,
body.ios #comment-article-container .furniture-wrapper #main-media figure.element.is-first-image:before,
body.android #feature-article-container .furniture-wrapper #main-media figure.element.is-first-image:before,
body.android #standard-article-container .furniture-wrapper #main-media figure.element.is-first-image:before,
body.android #comment-article-container .furniture-wrapper #main-media figure.element.is-first-image:before {
left: -20px;
}
}
@media (min-width: 46.25em) {
body.ios #feature-article-container .furniture-wrapper #main-media #caption-button,
body.ios #standard-article-container .furniture-wrapper #main-media #caption-button,
body.ios #comment-article-container .furniture-wrapper #main-media #caption-button,
body.android #feature-article-container .furniture-wrapper #main-media #caption-button,
body.android #standard-article-container .furniture-wrapper #main-media #caption-button,
body.android #comment-article-container .furniture-wrapper #main-media #caption-button {
bottom: 45px;
}
}
@media (min-width: 61.25em) {
body.ios #feature-article-container .furniture-wrapper #main-media,
body.ios #standard-article-container .furniture-wrapper #main-media,
body.ios #comment-article-container .furniture-wrapper #main-media,
body.android #feature-article-container .furniture-wrapper #main-media,
body.android #standard-article-container .furniture-wrapper #main-media,
body.android #comment-article-container .furniture-wrapper #main-media {
grid-area: portrait;
max-width: 620px !important;
height: auto;
}
}
body.ios #feature-article-container .furniture-wrapper figure.element,
body.ios #standard-article-container .furniture-wrapper figure.element,
body.ios #comment-article-container .furniture-wrapper figure.element,
body.android #feature-article-container .furniture-wrapper figure.element,
body.android #standard-article-container .furniture-wrapper figure.element,
body.android #comment-article-container .furniture-wrapper figure.element {
position: relative;
margin-top: 0;
}
body.ios #feature-article-container .furniture-wrapper figure.element .figure__inner,
body.ios #standard-article-container .furniture-wrapper figure.element .figure__inner,
body.ios #comment-article-container .furniture-wrapper figure.element .figure__inner,
body.android #feature-article-container .furniture-wrapper figure.element .figure__inner,
body.android #standard-article-container .furniture-wrapper figure.element .figure__inner,
body.android #comment-article-container .furniture-wrapper figure.element .figure__inner {
position: absolute;
top: 15px;
left: 20px;
width: calc(100vw – 40px);
height: auto;
}
body.ios #feature-article-container .furniture-wrapper figure.element .figure__inner img,
body.ios #standard-article-container .furniture-wrapper figure.element .figure__inner img,
body.ios #comment-article-container .furniture-wrapper figure.element .figure__inner img,
body.android #feature-article-container .furniture-wrapper figure.element .figure__inner img,
body.android #standard-article-container .furniture-wrapper figure.element .figure__inner img,
body.android #comment-article-container .furniture-wrapper figure.element .figure__inner img {
/ Image styling would continue here /
}Images within figure elements are set to cover their containers fully. On iOS and Android devices, caption buttons in article containers are positioned 24px from the right and 20px from the bottom.
For screens wider than 46.25em, the inner figure dimensions adjust to 680px wide with automatic height, shifted 10px from the top and left, while caption buttons move to 25px from the bottom.
On screens wider than 61.25em, figures in article containers on iOS and Android take up half the viewport width, minus 20px and any scrollbar width.
Standfirst sections in these article containers have no top margin, 8px top padding, and 10px right padding, with their before pseudo-elements hidden. Paragraphs, links, and list items within the standfirst inner container maintain consistent styling.For Android devices, links, list items, and paragraphs within the standfirst section of feature, standard, and comment articles will have a font size of 20px, normal style, medium weight, 115% line height, and no bottom padding.
On screens wider than 61.25em, the standfirst section for these article types on both iOS and Android will be placed in the ‘standfirst’ grid area.
For all these article types on iOS and Android, the meta section will have no top padding. The published date within the meta section will be positioned relatively. A thin gray line will appear below the published date, extending the full viewport width on smaller screens. On screens wider than 61.25em, this line will only extend half the viewport width, and the meta section will be displayed as a block in the ‘meta’ grid area.
On screens wider than 81.25em, the miscellaneous meta information will be styled for both iOS and Android devices.For iOS and Android devices, the following styles apply:
– The left margin for `.meta .meta__misc` is removed.
– In dark mode, the background color after the published date in article containers is set to #606060.
– The `:before` pseudo-elements for `.meta` and `.keyline` are hidden.
– Rich link elements are hidden.
– The cutout container in comment headers is hidden.
– The article body background uses a custom variable for weekend essay background, defaulting to #fff4f2, with a top margin of 6px.
– Horizontal rules are styled with a height of 1px, no border, a bottom margin of 3px, a background color of #dcdcdc, a width of 150px, left margin removed, and a top margin of 48px.
– The first letter of the first paragraph (or the paragraph after a horizontal rule) is styled with specific font properties, size, line height, float, text transform, box sizing, right margin, vertical alignment, and color using custom variables.
– Headings (h2) containing strong or b elements, or within prose, have a font weight of 500.
These styles are applied across feature, standard, and comment article containers.When the color scheme is set to dark, the following styles apply on iOS and Android devices: horizontal rules in article and feature bodies have a background color of #606060. The first letter of the first paragraph following a horizontal rule is colored with a custom variable (–new-pillar-colour, defaulting to #ff5943). Links within paragraphs in these sections have no text decoration.
Additionally, the first letter of the first paragraph following the initial atom element in article and feature bodies has a font weight of 500.
In comment bodies or elements named “body,” the first letter of the first paragraph after an atom element (or a sign-in gate) has a font weight of 300 and no top padding.
Headings (h2) on iOS and Android are styled with the color #8d2700, a font size of 28px, normal style, a font weight of 300, normal line height, and margins of 28px on top, 0 on the sides, and 8px on the bottom. On Android, the cutout container is hidden.
In dark mode, additional styles are applied: a gradient background is added to portrait main media headline wrappers, the first letter of non-initial paragraphs in comment or body sections is white, and h2 headings in these areas use a custom color variable (–byline, defaulting to #c74600).
When scripting is enabled, certain interactive elements, headers, and headings start with an opacity of 0. Once the “interactive-loaded” class is added to the root, these elements become fully opaque with a 0.3-second transition.
It was 1981, and Nigel Farage was turning 17. He was already a figure of some controversy—a habit that would last a lifetime—among the younger pupils and staff at Dulwich College in south-east London.
“I remember it was either in a particular English lesson or a particular form period that his name came up,” said Chloë Deakin, then a young English teacher, recalling a discussion with a class of 11- and 12-year-olds. “There was something about bullying, and he was being referred to, quite specifically, as a bully. And I thought: ‘Who is this boy?’”
Deakin checked with colleagues in the staff room, who confirmed the accounts.
Nazi salutes and racism: the allegations about Nigel Farage’s school days – podcast
Read moreThere were allegations of harassment against other students and of Farage’s apparent interest in the far right, including claims that he had been “goose-stepping” during combined cadet force marches.
“But initially I had heard it from boys,” she said. “I was shocked to hear that this Dulwich boy was apparently getting away with this kind of behaviour, at cadet camp and so on, and I thought: ‘This is seriously out of order. It’s horrible.'”
Despite the rumors among students and staff, the headteacher, David Emms, and his deputy, Terry Walsh, included Farage on a draft list of prefects. A meeting was held where strong opinions were expressed, though Emms and Walsh believed Farage was mischievous rather than a malicious racist.
“So when I heard that Farage’s name was on the finalised prefect list, I was appalled and that was why I wrote independently to Emms, because I felt strongly about it—I still do,” Deakin recalled.
Deakin’s letter from June 1981, first revealed by Channel 4 journalist Michael Crick in 2013, is direct. She had never spoken about this incident before; the letter—written after Farage’s 17th birthday—only came to light because she had given a copy to a senior teacher at the time, as was customary at the school.
She wrote: “You will recall that at the recent and lengthy meeting about the selection of prefects, the remark by a colleague that Farage was a ‘fascist but that was no reason why he would not make a good prefect’ provoked considerable reaction from members of the staff common room.
“Another colleague, who teaches the boy, described his publicly professed racist and neo-fascist views, and he cited a particular incident in which Farage was so offensive to a boy in his class that he had to be removed from the lesson…
“Yet another colleague described how, at a combined cadet force camp organised by the college, Farage and others had marched through a quiet Sussex village very late at night shouting Hitler Youth songs; and when it was suggested by a teacher that boys who expressed such views ‘don’t really mean them,’ the college chaplain himself commented that, on the contrary, in his experience views of that kind expressed by boys of that age are deep-seated and are meant.”
The letter concluded: “You will appreciate that I regard this as a very serious matter. I have often heard you tell our senior boys that they are the nation’s future leaders. It is our collective responsibility to ensure that these leaders are enlightened and compassionate.”
The Guardian has spoken to more than 30 of Farage’s contemporaries from Dulwich College who have given accounts of receiving or witnessing racist or antisemitic abuse from him.
Recent and detailed allegations about Farage’s teenage past, reported by the Guardian in recent weeks, have created what has been described as the greatest crisis in the Reform leader’s political career, largely due to his response.
Farage’s lawyer initially denied any racist or antisemitic behaviour entirely and threatened to sue the Guardian. Farage later conceded in an interview with the BBC’s political editor in Wales that some things said in “banter” more than four decades ago might be viewed differently today, but denied targeting anyone “directly” or with “intent” to hurt.
The Guardian has now spoken to more than 30 school contemporaries of Farage who have given testimony of being subjected to racist orNigel Farage is accused of antisemitic abuse or of witnessing it at school. His alleged behavior reportedly lasted from age 13 to 18, before he began a career in finance. Despite strong calls for him to show remorse and acknowledge the hurt he is said to have caused—including an open letter from 26 former schoolmates—he has not apologized.
Deakin, now 74, does not remember who told her that Farage sang Hitler Youth songs, for which no evidence has been found. However, the Guardian has received testimony that he participated in singing songs about gassing Jews and other ethnic minorities.
She did not know Farage personally and did not witness his alleged racism and antisemitism. But she believes the public should have no doubt, given her memories of boys complaining about bullying, subsequent staff testimony, a letter she wrote decades before Farage became well-known, and the volume of credible allegations in recent weeks.
“Of course Farage directly abused pupils,” Deakin said. “His was the only name I recall boys mentioning to me.”
Despite her efforts at the time, her protests to the headteacher did not stop him from making Farage a prefect. This contributed to her decision to leave the school; she later became a civil servant in the Department for Education.
“Emms [the headteacher] called me in; he was quite a forbidding figure for me as a young teacher,” she said. “He was very pleasant and polite, but nothing came of it; he had made his decision. Soon after that, I started thinking, I don’t want to stay here. This is not the place where I’m going to make my future.”
In a 2013 broadcast by Crick, the deputy headteacher, Walsh, suggested Deakin might have been part of a “leftist” group in the teachers’ common room. Farage has claimed the accusations are part of a political plot to undermine him.
Deakin responded: “I was not then and never have been a member of a political party—in fact, over the years, I have voted differently in local and general elections. Nor did any of us expect Farage to become a politician; at that time, he seemed focused on a City career.
“My reason for writing to Emms was not political or anti-school, but driven by my disgust at the accounts I had heard of Farage’s racist and neo-fascist views and behavior: that he was a bully, that his right-wing views were extreme, that he reveled in having the same initials as the National Front, that he imitated neo-Nazi singing and marching, etc.
“I had previously taught in a large, culturally diverse comprehensive school in Brent, with many Jewish colleagues and staff of color. Such behavior would have been unthinkable there, and would not have gone unpunished.”
Among those recently disappointed by Farage’s response to the allegations are 11 Holocaust survivors, who are concerned by attempts to dismiss his behavior as mere banter.
Deakin said she has been similarly appalled by what she sees as a disregard for the truth.
“Of course, it is normal for teenagers to debate politics, religion, and other important issues,” she said. “But Farage’s extremist views and behavior appeared to be unique and went far beyond any normal discussion of party politics, freedom of speech, or even…”In June 1981, I wrote a letter to the then headmaster of Dulwich College, David Emms, about a teenage pupil named Nigel Farage. This followed a heated meeting between Emms and my fellow teachers, where several of us objected to Farage being included on a list of nominations for new prefects.
At the time, I was a young English teacher in my late twenties. I didn’t teach Farage or know him personally, but I had heard about him from colleagues and students.
In his book about Farage, Michael Crick quotes Emms later describing him as a “naughty boy” who annoyed staff with his “chirpiness and cheekiness.” However, in 1981, we took a more serious view of his reputation and behavior, arguing it was wrong to reward him and that he was not a suitable role model. I was dismayed to learn Emms intended to ignore our concerns and proceed with the appointment.
I wrote a personal letter to Emms detailing my objections. We met cordially to discuss it, but he would not change his mind. Farage became a prefect, and I assumed my letter had been thrown away.
My motivation was not, as a former deputy head suggested in a 2013 Channel 4 program, that I was part of some “leftist” group among the staff. I have never been a member of a political party and have voted for different parties over the years. Nor did we expect Farage to become a politician; he seemed focused on a career in finance.
It also wasn’t true, as a former colleague claimed in the Guardian, that my letter was mainly driven by a dislike of the school’s culture. Dulwich College offered excellent facilities and opportunities, including to many boys on assisted places whose families couldn’t otherwise afford it. I was fully involved in school life and enjoyed teaching such bright and talented students.
There was a house system for sports, a form system for admin, and a sanatorium for health issues, but no pastoral care or counseling like schools have today. So it’s not surprising pupils—mostly day students—kept their problems to themselves.
My reason for writing was neither political nor anti-school. It was driven by disgust at what I had heard about Farage’s racist and neo-fascist views and behavior: that he was a bully, held extreme right-wing opinions, and gloried in…His initials matched those of the National Front, and he imitated neo-Nazi singing and marching, among other things. I had previously taught at a large, culturally diverse comprehensive school in Brent, where I worked with many Jewish colleagues and staff of color. In that environment, such behavior would have been unthinkable—it would never have been tolerated or gone unpunished.
Of course, it’s completely normal for teenagers and students to engage in heated debates about politics, religion, and other important issues. But Farage’s extremist views and actions seemed exceptional, going far beyond ordinary political discussion, free speech, or even typical teenage mischief. It concerned and disillusioned me that Emms, Walsh, and some other members of the Common Room appeared to take an indulgent and, in my view, somewhat naive attitude toward Farage’s reputation. This was likely a sign of the times: I recall Emms once thanking me by saying, “Thank you, Chloë, that’s very white of you.” I was puzzled at the time, having never heard that phrase before. Years later, I realized its meaning with distaste.
Soon after, I decided to leave the college and continue my career in the public sector. Over time, I forgot about the letter and must have destroyed my copy at some point. So I was surprised when Michael Crick contacted me in 2013 after seeing a copy, asking me to participate in a Channel 4 program about Farage. At first, I didn’t remember the letter until I saw a redacted version online and recalled my feelings about the original events. However, my professional role at the time prevented me from commenting on or engaging in political debate, so I had to decline. The program’s criticism of Farage focused once again on his broadly racist and neo-fascist views and behavior.
Recently, I was distressed to read accounts from many former pupils—now middle-aged men—describing Farage’s targeted racist and antisemitic bullying of individuals, both before and after he was appointed a prefect. It seems his behavior was far worse than I had been aware of in 1981. Multiple, consistent accounts describe him generally acting alone, singling out and repeatedly targeting specific pupils solely because they were Jewish or because of their skin color.
Richard Tice, the Reform deputy leader, has dismissed these accounts as “made-up twaddle.” Farage himself has offered various explanations, including that anything he might have said at the time was merely “banter.” There have also been allegations of an orchestrated effort to “smear” the Reform party due to its rising position in recent polls.
I am writing this letter, like my original letter to Emms, of my own free will. I have not been approached by the Guardian or any former Dulwich pupil to support their views, nor am I being paid for it. I write simply because, after nearly fifty years working in education and mental health, I find these pupils’ accounts painfully authentic and sadly consistent with Farage’s previously recorded views and behavior as a pupil at Dulwich College.
I agree with the many online comments from people unconnected to the college who confirm that, over the years, you never forget the names, faces, words, or actions of those who bullied you.
Anyone who has worked with people deliberately targeted and demeaned—through bullying or assault, for instance—knows that such experiences leave legacies of shame and secrecy. The shame that rightfully belongs to the perpetrator is often felt by the victim.
It has taken time and courage for these men to speak out—courage that has been met with derision and dismissal by Farage, Reform, and some media commentators, who have dismissed Farage’s words as playground “banter” and…Nigel Farage has dismissed former pupils’ accounts as politically-motivated “smears.” The word “banter” typically implies a playful, good-humored exchange, but there was nothing playful, good-humored, or reciprocal about Farage’s reported attacks on former pupils who endured them.
Similarly, “smear” suggests a false accusation meant to damage a reputation, but the reports I recorded about Farage in 1981 were not false. Recent accounts are consistent with those.
Meanwhile, Farage has claimed (BBC, 24 November 2025) that he “never directly racially abused anybody… by taking it out on an individual on the basis of who they are or what they are” and that he would “never, ever do it in a hurtful or insulting way.” This statement contradicts multiple accounts of his targeted behavior, and I fail to see how racial abuse could ever be used in a way that isn’t hurtful or insulting. (In the same interview, Farage also invoked free speech—”Sometimes you say things that people don’t like”—as a defense. “Free speech” seems to have become, for some, a justification for saying anything to or about anyone.)
But where does this leave us now? Does any of it matter? Some argue that Farage’s schooldays are irrelevant—that the reports are unfounded, too old, or that we should focus on larger, current issues.
Yet there appears to be a curious link between Farage’s teenage obsession with targeting, demeaning, and frightening only those pupils identifiable in ways that aligned with his far-right views—such as their Jewishness or skin color (not, for example, red hair or lack of athletic skill)—and how this has grown into his adult fixation on immigration and deportation as the central theme of his political campaign.
Farage’s refusal to offer a straightforward apology to those affected by his past behavior is both puzzling and concerning. The prime minister, the attorney general, a group of Holocaust survivors, and now a group of former Dulwich pupils and staff—to which I add my own name—have all called on him to do so, but there is no evidence so far of any regret or change of view on his part.
Recent polls suggest a strong possibility that Reform could win the next general election and that Farage could become prime minister. Anyone in public life is expected to uphold the seven Nolan Principles: selflessness, integrity, objectivity, accountability, openness, honesty, and leadership. We need Farage to demonstrate his active commitment to all these principles now if we are to have any confidence in his future leadership.
Some commentators argue that pressing current issues—like ensuring Jews and others can live safely in our communities—are more important than events from Farage’s school days over forty years ago. Of course, current issues need urgent attention. But we should also remember that the small seeds of larger problems find space to grow wherever prejudice, discrimination, victimization, and persecution are allowed to go unchallenged. They need to be rooted out.
Chloë Deakin
Quick Guide
Contact us about this story
The best public interest journalism relies on first-hand accounts from people in the know. If you have something to share on this subject, you can contact us confidentially using the following methods.
Secure Messaging in the Guardian app
The Guardian app has a tool to send tips about stories. Messages are end-to-end encrypted and concealed within the routine activity that every Guardian mobile app performs. This prevents an observer from knowing that you are communicating with us at all, let alone what is being said. If you don’t already have the Guardian app, download it.Download the app (iOS/Android) and go to the menu. Select ‘Secure Messaging’. This includes options like SecureDrop, instant messengers, email, telephone, and postal mail.
If you can use the Tor network safely without being observed, you can send messages and documents to the Guardian through our SecureDrop platform.
You can also visit our guide at theguardian.com/tips, which lists several secure ways to contact us and discusses the advantages and disadvantages of each method.
Illustration: Guardian Design / Rich Cousins
Was this helpful?
Thank you for your feedback.
Frequently Asked Questions
Of course Here is a list of FAQs about the story framed as questions a real person might ask
Basic Understanding The Allegation
Q What is this story about
A A former teacher at Nigel Farages old school Dulwich College has publicly stated that Farage bullied other pupils based on their race and background during his time there in the 1970s
Q Who is making this allegation
A A man named Andrew Morgan who was a young teacher at the prestigious private school Dulwich College when Nigel Farage was a student
Q What exactly is Nigel Farage accused of doing
A The teacher alleges Farage was part of a group that used racist and homophobic language mocked workingclass students on scholarships and displayed generally unpleasant bullying behavior
Q Has Nigel Farage responded
A Yes Nigel Farage has strongly denied the allegations calling them nonsense and total lies and suggested they are a politically motivated smear
Context Credibility
Q Why is this coming out now
A The teacher Andrew Morgan says he was motivated to speak out after seeing Farages recent comments on immigration and race in the current election campaign feeling a duty to address Farages character
Q Is there any proof
A Currently it is one persons account from roughly 50 years ago The teacher says he remembers the incidents clearly No contemporaneous school records or other witnesses from the student body have been publicly corroborated at this stage
Q What is Dulwich College
A Its a longestablished expensive and elite private school in London known for educating children from wealthy and influential families
Q Does this matter if it happened so long ago
A Thats a point of debate Supporters of the teacher say it reveals a pattern of character and attitude Supporters of Farage say its irrelevant to his current political policies and an unfair dredging up of childhood behavior
Broader Implications Politics
Q How could this affect the election
A It could influence voters perceptions of Farages character and judgment For some it may confirm existing views of him for others it may seem