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 WOFF2, WOFF, and TrueType formats to ensure compatibility across different browsers.@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 text appears to be a snippet of CSS code defining font faces for the “Guardian Headline Full” font family. It specifies different font weights and styles (like regular, italic, medium, bold, etc.), each linking to specific font file formats (WOFF2, WOFF, TTF) hosted online.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:
This CSS code defines custom fonts and the layout for article content. It specifies two fonts: “Guardian Headline” in a heavy italic style and “Guardian Titlepiece” in bold.
The layout uses a grid system that changes based on screen size. On the smallest 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. For medium screens, the grid remains a single column but reorders some areas. On larger screens, it switches to a two-column layout with a main content area and a right sidebar. For the widest screens, it introduces a left border and further refines the placement of all grid areas, including the headline and sidebar.For interactive grid figures with immersive captions, the caption padding is set to 4 pixels at the top and 0 elsewhere. Within various content areas like article, comment, or feature bodies, elements named “lines” and “meta” are positioned in the grid from row 2, column 1 to row 5, column 2. The “lines” elements adjust their height to fit content and have a top margin of 5 pixels, while “meta” elements have an 18-pixel top margin.
On larger screens (81.25em and above), the interactive grid uses a five-column layout with specific widths: 219px, 1px, 620px, 80px, and 300px.
For iOS and Android devices, article headers use the Guardian Headline font family with a medium weight for standfirst text. Section kickers are displayed as blocks with their first letter capitalized. A keyline element receives 12 pixels of top padding. Author bylines appear in a bold Guardian Headline font. Within articles, image figures have their height set to auto, and paragraphs following atomic elements have no top margin.
Additionally, the Guardian Headline Full font is loaded in light and light italic weights from specific web sources.The provided text appears to be a series of CSS font-face rules defining the “Guardian Headline Full” font family in various weights and styles (normal and italic). Each rule specifies the font’s name, source URLs for different file formats (WOFF2, WOFF, TTF), and its weight and style.@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 an atom, sign-in gate, or horizontal rule gets a top padding of 14 pixels.
For the first letter of that first paragraph, the styling changes to use specific headline fonts with a bold weight, a large font size of 111px, and a line height of 92px. It floats to the left, is set to uppercase, and uses a custom color variable. It also has an 8-pixel margin on the right and aligns to the top of the text.
If a paragraph comes directly after a horizontal rule, its top padding is 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 span the full viewport width, minus the scrollbar. On screens smaller than 71.24em, these immersive elements are constrained to a maximum width of 978 pixels, and their figure captions receive internal 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];
}
}The grid template columns are set to repeat 5 columns of 1fr from the title-end to the portrait-start, then repeat 8 columns of 1fr from the portrait-end. The grid template rows are defined from the title-start and portrait-start at 0.25fr, then from the title-end to headline-start at 1fr, and from the headline-end to standfirst-start and meta-start at 0.75fr, ending at the standfirst-end, meta-end, and portrait-end.
For the furniture wrapper, the meta and standfirst elements have specific styles. The meta element’s before pseudo-element has a width of 620px, while the standfirst’s before pseudo-element is positioned 0.5px to the left. Labels within the article header or title have a top padding of 2px.
The headline h1 has a font weight of 600, a maximum width of 620px, and a font size of 32px. On larger screens (min-width: 71.25em), the maximum width changes to 540px with a font size of 50px.
For medium screens (min-width: 46.25em), the keyline-4 or lines element has no right margin. On larger screens (min-width: 61.25em), it is hidden. The SVG within these elements uses a stroke color defined by the custom property –headerBorder.
The meta element has no right margin on medium screens. Social and comment elements within the meta use a border color from –headerBorder, and specific child elements are hidden.
The standfirst element has a left margin of -10px, left padding of 10px, and relative positioning. On medium screens, it has a top padding of 2px. Paragraphs inside are set to a font weight of 400, font size of 20px, and bottom padding of 14px.
The main media area is positioned relatively, with no top margin and a 2px bottom margin, placed in the grid area named ‘portrait’. Its child divs take full width with no horizontal margin. On larger screens (min-width: 61.25em), the bottom margin is removed. On smaller screens (max-width: 46.24em), it spans the full viewport width minus the scrollbar, with a left margin of -10px. For screens between 30em and 46.24em, the left margin is -20px.
Figure captions are absolutely positioned at the bottom, with padding, a background color from –captionBackground, text color from –captionText, full width, no bottom margin, and a minimum height of 46px. Span elements inside use the –headerBorder color for text and SVG fill. The first span is hidden, while the second is displayed with a maximum width of 90%. On screens wider than 30em, the caption padding increases.
Captions with the ‘hidden’ class are fully transparent. The caption button is displayed as a block, absolutely positioned near the bottom right, with a background from –captionBackground, no border, circular shape, and padding. Its SVG is scaled to 85%. On screens wider than 30em, the button is positioned 10px from the right.
For very large screens (min-width: 71.25em), the interactive main column’s before pseudo-element is positioned 12px higher and extends 24px taller.The main column’s interactive headings have a maximum width of 620 pixels. For iOS and Android devices, the color scheme adjusts: a dark background is set, along with specific accent colors. In dark mode, the main accent color changes to a different shade.
On iOS and Android, the first letter of the first paragraph in various article types is styled with a secondary color. The article header height is set to zero, and the title area receives specific padding. Labels are displayed in a bold, capitalized font using the main accent color, while the main headline is set to a large, bold size in a near-black color.For iOS and Android devices, the following CSS rules apply to specific article containers:
For images within the furniture-wrapper:
– They are positioned relatively with a top margin of 14px, no bottom margin, and a left offset of -10px.
– Their width is set to the full viewport width minus the scrollbar width, with height adjusting automatically.
For inner elements of these images (like containers, images, and links):
– The background is transparent.
– The width matches the full viewport width minus the scrollbar width, and the height is set to auto, overriding any other styles.
For standfirst elements:
– They have 4px of padding on top, 24px on the bottom, and a right margin offset of -10px.
For paragraphs inside standfirst elements:
– The font family is set to Guardian Headline, Guardian Egyptian Web, Guardian Headline Full, Georgia, or a generic serif as fallback.
For links within standfirst elements, including those in lists:
– Specific styling is applied, though the exact rules are cut off in the provided text.For comment articles, links within the standfirst section should use the designated pillar color, have an underline with a specific offset and color, and no background image or bottom border. On iOS and Android devices, when hovering over these links in feature, standard, or comment articles, the underline color should change to match the pillar color. Also, on these devices, the meta section in these article types should have no margin. The author byline text and links within the meta section should also use the pillar color. Additionally, the miscellaneous meta information should have no padding.For iOS and Android devices, the following CSS rules apply across feature, standard, and comment article containers:
– SVG icons within the meta miscellaneous section use the new pillar color for their stroke.
– The caption button in showcase elements is displayed as a flex container, centered with 5px padding, and positioned 14px from the right with dimensions of 28px by 28px.
– The article body has a horizontal padding of 12px.
– Non-thumbnail, non-immersive image figures within the article body have no margin, a width calculated as the viewport width minus 24px and the scrollbar width, and an automatic height. Their captions have no padding.
– Immersive image figures have a width calculated as the viewport width minus the scrollbar width.
– Quoted blockquotes within the article body’s prose have a `:before` pseudo-element applied.For quoted blockquotes in the article body on iOS and Android, the color before the quote uses the new pillar color.
On iOS and Android, links within the article body for feature, standard, and comment articles are styled with the primary pillar color. They have an underline with an offset of 6px, using the header border color for the underline. When hovered over, the underline color changes to the new pillar color.
In dark mode, the furniture wrapper background for these article types on iOS and Android changes to #1a1a1a. The content labels use the new pillar color. The main headline has no background, and its text color is set to the header border color. Paragraphs in the standfirst also use the header border color. Links in the standfirst, as well as author bylines and author links in the meta section, are styled accordingly.This appears to be CSS code for styling web articles on Android and iOS devices. It sets colors for author bylines, icons, image 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 on iOS and Android devices. The selector applies to various article containers (feature, standard, comment) and looks for paragraphs following 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 various article containers will be styled with a custom color variable, defaulting to white.For comment articles on Android with the Garnett design, the standfirst section has a top padding of 24 pixels and no top margin. All second-level headings in the main text are set to a font size of 24 pixels.
On iOS devices, the caption button for feature, standard, and comment articles has specific padding. On Android devices, the same button has slightly different padding.
When the system is set to a dark color scheme, the theme adjusts various colors for elements like follow text, icons, standfirst text, links, and bylines to a lighter palette.
If the page header includes a Guardian organization logo, the branding element is always displayed.
On iOS and Android, labels and main headlines within article headers are given a medium font weight. This also applies to headlines and paragraph text within the standfirst section when they are inside the main page wrapper.
The root styling sets a specific background color for weekend essay pages and applies it to several page sections.
The lines element is hidden. The main page wrapper is positioned relatively. On wider screens, it uses a specific grid layout for its rows.
The article title section has a fixed height. Within it, the labels container inherits this height and includes a pseudo-element that displays an animated book GIF in the bottom-right corner. This GIF is larger on wider screens.
A pseudo-element also adds a horizontal line at the bottom of the labels container. This line spans the full viewport width on mobile and has a fixed width on tablet-sized screens and above.For screens with a minimum width of 61.25em, the content labels within the article header and title sections of the furniture wrapper will have their after-elements hidden. When the screen reaches at least 71.25em, the article header and title areas will have a fixed height of 80px. This height increases to 125px at 81.25em. At this same breakpoint, the headline, its data-gu-name counterpart, and the headline class will have a top margin of -2px.
Within the furniture wrapper, the headline, its data-gu-name equivalent, and the headline class have inner divs with no bottom padding. The portrait main media headline wrapper inside these sections takes up full height, uses relative positioning, hides overflow, and adds 24px of bottom padding. The h1 and a tags inside this wrapper have no maximum width. On hover, these elements get a 2px thick underline with a 6px offset.
The h1 tags, a tags, and byline spans within the portrait main media headline wrapper share a line-height of 115%, a font weight of 500, and a font size of 36px. This font size increases to 50px at the 71.25em breakpoint.
The standfirst section, its ID, and its data-gu-name equivalent are positioned relatively with 4px of top padding. This padding is removed at 61.25em and set to 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 and furniture wrapper with media data, the button is positioned 30px from the bottom. 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 opening paragraph is styled with a light weight, while specific paragraphs feature a large, uppercase drop cap in a headline font with a distinct color.
Headings at level 2 are styled in a dark orange, with larger sizes on wider screens, and a medium weight if they contain strong text. Figures with iframes also use the light background.
For apps on iOS and Android, the byline includes a follow section with adjusted spacing and smaller text. Media elements within these apps are set to fit their content. In dark mode, the background colors for the article section and weekend essay are changed to a dark gray.[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 equal-width columns, starting from the title and ending at the portrait. The rows are defined with specific heights for the title, headline, standfirst, and meta sections, with the portrait spanning from the title to the end.
For both iOS and Android devices, the title and GIF wrapper within the furniture container of feature, standard, and comment articles uses flexbox to arrange items in a row, spaced apart.
The content labels inside this wrapper have a bold font size of 17px with 115% line height. Links within these labels are colored using a custom variable for the pillar color, and text transformation is disabled.
The GIF container and its images are set to 70px by 70px. Specific classes for book GIFs with a white variant are also included.For Android devices, hide the white book GIFs in feature, standard, and comment article containers. When dark mode is enabled, hide the regular book GIFs and show the white versions instead on both iOS and Android. On iOS and Android, add a light gray horizontal line at the bottom of the title and GIF wrapper in these article containers. For larger screens, adjust the layout of the title and GIF wrapper in iOS feature and standard articles.The title-and-gif-wrapper class is assigned to the grid area named “title” for various article containers on both iOS and Android. For iOS devices, after this wrapper in feature, standard, and comment articles, its width is set to 50 viewport width units.
In dark mode, the background color after this wrapper is set to #606060 for the same article types on both iOS and Android.
On screens wider than 61.25em, the portrait-mainmedia__headline-wrapper is placed in the “headline” grid area for feature, standard, and comment articles on iOS and Android.
For headlines, bylines, and their links within the furniture-wrapper of feature, standard, and comment articles on iOS and Android, the font size is 36px with a normal style, medium weight, and 115% line height.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 in the byline are hidden. Headlines have no bottom margin or padding. The byline text is displayed in italics.For iOS and Android devices, the author’s byline in feature, standard, and comment articles should be displayed in a normal font style, not italicized.
In these same article types, the main media container should have an automatic height, a 4:5 aspect ratio, and a transparent background. Any figure elements within this container should take up the full height and have no left margin.
Inside these figures, the inner containers should be positioned normally at the top-left, with a transparent background, no padding, and visible overflow.
For images within these figure elements, the width should be the full viewport width minus 40 pixels, with a left margin of 20 pixels and a top margin of 25 pixels.The CSS code sets specific styles for images and captions within articles on iOS and Android devices. Images get a 13px top margin, while captions are set to auto height with block display and a gray text color. On screens wider than 46.25em, figures expand to their full width and have a left offset of 10px.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 left margin of 18 pixels and a top margin of 10 pixels.
For even larger screens (81.25em and above), the 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 and Android devices, the first image in articles (feature, standard, or comment) has a white frame background. On smaller screens, this image spans almost the full viewport width, with adjustments for scrollbars and padding. On wider screens (above 61.25em), the image width reduces to half the viewport, with specific margins and padding. At even larger breakpoints (above 81.25em), the width is further adjusted and the image is shifted upward slightly.For the main media figure element that is the first image, set the height to 100% and the maximum width to 620px as important.
On iOS and Android devices, for feature, standard, and comment article containers, before the first image figure in the main media within the furniture wrapper, set the width to half the viewport width minus 20px and the scrollbar width, align it to the left, and set the height to 100%.
For viewports at least 81.25em wide, adjust the left position of that pseudo-element to -20px.
For viewports at least 46.25em wide, position the caption button in the main media 45px from the bottom.
For viewports at least 61.25em wide, set the main media area to portrait, limit its maximum width to 620px as important, and set the height to auto.
For figure elements within the furniture wrapper, set the position to relative and remove the top margin.
For the inner figure container, position it absolutely 15px from the top and 20px from the left, with a width equal to the viewport width minus 40px, and an automatic height.
For images inside that inner container, ensure they display correctly.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 area adjusts to 680px wide with automatic height, positioned 10px from the top and left, while caption buttons move to 25px from the bottom.
On screens wider than 61.25em, figure elements themselves become 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 standfirst inners 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 grid area named ‘standfirst’.
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 grid area named ‘meta’.
On screens wider than 81.25em, the miscellaneous meta information will be styled for these article types on both iOS and Android.For iOS and Android devices, the following styles apply:
– The left margin for `.meta__misc` within `.meta` inside `.furniture-wrapper` is set to 0.
– In dark mode, the background color after `.meta__published` elements within `.meta` inside `.furniture-wrapper` for feature, standard, and comment articles is set to #606060.
– The `:before` pseudo-elements for `.meta` and `.keyline` inside `.furniture-wrapper` are hidden.
– `aside.element-rich-link` elements inside `.furniture-wrapper` are hidden.
– The `#cutout-container` within `#comment-header` is hidden with `!important`.
– The `#article-body` and `#feature-body` have a background color defined by the variable `–weekend-essay-bg`, defaulting to #fff4f2, with a top margin of 6px.
– Horizontal rules (`hr`) within these bodies 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 of 0, and top margin of 48px.
– The first letter of the first paragraph (excluding those containing a `span` or following an `hr`) is styled with a specific font family, a weight of 300, a size of 111px, a line height of 92px, floated left, uppercase text, box-sizing, a right margin of 8px, vertical alignment to the top, and a color defined by the `–drop-cap` variable, defaulting to `–secondary-pillar`.
– Any `h2` containing `strong` elements, or `strong`/`b` within `h2` in `.prose`, have a font weight of 500.When the operating system is set to dark mode, specific styles are applied for iOS and Android devices. Horizontal rules in article and feature bodies will have a background color of #606060. The first letter of the paragraph immediately following a horizontal rule will be colored using a custom variable (with a fallback to #ff5943). Links within paragraphs in these sections will have no text decoration.
For the first paragraph following certain elements in article and feature bodies, the first letter will have a font weight of 500.
In comment sections and specific body areas, the first letter of the first paragraph after certain elements will have a font weight of 300 and no top padding.
Heading level 2 elements (h2) on iOS and Android will be styled with a specific color (#8d2700), font size, weight, and margins. On Android, an element with the ID `cutout-container` will be hidden.
In dark mode, additional styles are applied: a gradient background is added to certain wrappers, the first letter of non-initial paragraphs in comments and body sections will be white, and h2 elements in those areas will use a custom color variable (with a fallback to #c74600).
When scripting is enabled, certain interactive content, wrappers, and header elements are initially hidden (opacity: 0). Once a class of `interactive-loaded` is applied to the root element, these become visible with a smooth fade-in transition.
It was a wake-up call for America. In January, Donald Trump took the oath of office, declared himself “saved by God to make America great again,” and issued a barrage of executive orders. In the ensuing months, the US president and his allies moved at breakneck speed and seemed indomitable.
But as 2025 draws to a close, with Trump struggling to stay awake at meetings, the prevailing image is of a driver asleep at the wheel. Opinion polls suggest that Americans are turning against him. Republicans are heading for the exit ahead of congressional contests next November that look bleak for the president’s party.
“He came into office and, like a blitzkrieg, was violating laws and the constitution,” said Larry Jacobs, director of the Center for tThe study of politics and governance at the University of Minnesota notes, “The American political process is slow-moving, so he was able to accomplish extraordinary things. But this is someone whose legacy may well be the political collapse of Republicans in this era. In other words, rather than asking who will inherit the Trump mantle and the so-called MAGA movement, we might be discussing in a year or so which candidates can avoid the negative association of having been linked to Trump.”
Emboldened by his political comeback in the 2024 election, Trump hit the ground running. On his first day in office, he pardoned nearly everyone involved in the January 6 insurrection at the U.S. Capitol and launched a radical expansion of executive power, a systematic campaign of retribution against perceived adversaries, and a sweeping overhaul of domestic and foreign policy.
A government-wide restructuring under the “Department of Government Efficiency” (DOGE), led by billionaire Elon Musk, resulted in mass federal layoffs and the dismantling of agencies like USAID. However, Trump and Musk eventually fell out, and DOGE collapsed.
The president’s domestic agenda included a hardline immigration crackdown featuring mass deportations and the deployment of the National Guard and other federal forces to U.S. cities, often against the wishes of local authorities. The 1798 Alien Enemies Act was invoked to deport Venezuelans to a mega-jail in El Salvador.
Wendy Schiller, a political scientist at Brown University in Providence, Rhode Island, said, “He promised to secure the border, but the deportations have gone too far. City after city, community after community has expressed frustration and dismay at the tactics.”
Trump had also promised to fix the economy, but his signature legislation, the “one big, beautiful bill”—rebranded as the Working Families Tax Cut Act—will, according to critics, transfer wealth from the poor to the rich and strip healthcare from millions of people. Meanwhile, the president’s disruptive policy centered on aggressive tariffs, which caused market volatility and drove up prices for consumers.
Schiller added, “The greatest self-inflicted wound that the president has brought on himself and the Republicans is the tariffs. In the first administration, they were primarily directed at China, and you can make an argument about that. In this administration, they are so much broader and more sweeping, and it’s showing in supply chains, consumer purchasing, pricing, and every corner of people’s lives. Whether it’s at the supermarket or holiday shopping, they’re feeling it.”
Trump’s appointment of Robert F. Kennedy Jr. helped fuel anti-vaccine sentiment, leading to a resurgence of preventable diseases and the politicization of the Centers for Disease Control and Prevention. He withdrew the U.S. from the Paris Agreement and systematically dismantled climate science infrastructure.
At his political peak, Trump’s embrace of authoritarianism seemed unstoppable. He quickly fired 17 independent inspectors general in apparent violation of federal law. He ordered the Justice Department to investigate perceived enemies, including former FBI Director James Comey and New York Attorney General Letitia James.
Skye Perryman of Democracy Forward said, “This administration has been governing in a way that is on a collision course with the Constitution.”
The administration targeted law firms representing adversaries, stripping contracts and security clearances to extract multimillion-dollar settlements. Billions in federal funding were frozen for universities like Harvard and Columbia, leveraging antisemitism and DEI policies to force changes in curricula and leadership.
Trump also pursued an aggressive campaign against mainstream media, suing news organizations such as CBS/Paramount, the Wall Street Journal, and the New York Times, and pushing the Federal Communications Commission to revoke broadcast licenses.In his first 11 months, the president signed 225 executive orders, 56 memorandums, and 114 proclamations. Many of these actions reflect proposals from the conservative Project 2025 policy document and have faced significant legal challenges, with federal judges repeatedly ruling them illegal and unconstitutional.
Skye Perryman, president of the legal organization Democracy Forward, which has filed numerous lawsuits against the administration, stated, “This administration has been ruthlessly breaking the law, disregarding the legal protections for people and communities. It is governing in a way that collides with the Constitution.” She cited examples including infringements on free speech, disregard for due process, attempts to replace civil servants with political loyalists, and a federal funding freeze that threatened food assistance for 42 million Americans. However, Perryman finds hope in the public response: “The American people have been pushing back. Nearly 500 lawsuits have been filed in federal court during these 11 months, and the administration is losing cases before judges appointed by Republicans, Democrats, and even President Trump himself.”
One unexpected focus of this term has been the considerable political time and capital invested in foreign policy. The president’s relationships in the Middle East and his involvement in cryptocurrency ventures have raised ethical concerns. His plan to accept a $400 million luxury jet from Qatar for use as Air Force One drew rare bipartisan criticism as a potential “bribe.” While he brokered a ceasefire and hostage release deal between Israel and Hamas, he also pressured Ukraine’s President Zelenskyy in the Oval Office and rolled out the red carpet for Russia’s Vladimir Putin. He ordered military strikes on alleged drug-trafficking boats in the Caribbean, leading to allegations of potential war crimes.
Henry Olsen, a senior fellow at the Ethics and Public Policy Center, noted, “The focus on foreign affairs has surprised me. This first year has been defined more by his actions overseas than at home, which I did not expect. I also expected less explosive social media use, similar to the campaign, but we’ve returned to the first term’s style, where provocative language on social media is a defining feature. People didn’t like it then, and they don’t like it now.”
For months, the president seemed unassailable as Democrats struggled to regain their footing and protests appeared muted compared to his first term. However, a demonstration called “No Kings” in June, coinciding with his 79th birthday and a military parade in Washington, drew 5 million people. A follow-up protest in October attracted 7 million, reportedly the largest civic action in the U.S. in over half a century.
Democrats also began to regain momentum. Amid the longest government shutdown in history, the party won key elections for governor in New Jersey and Virginia, the mayor of New York, and other offices. Their campaign focused on affordability, as millions of Americans struggle financially. Like under President Biden, Republican claims of a strong economy conflict with many people’s daily experiences at the supermarket. The president’s attempts to dismiss affordability concerns as a Democratic “con job,” “hoax,” or “scam” have rung hollow.The White House is planning a $400 million ballroom addition. Amid the ongoing fallout from the Jeffrey Epstein files, President Trump seems increasingly isolated. While he once traveled the country drawing large crowds to lively campaign rallies and meeting local officials, this year he has held only seven rallies, opting instead for overseas trips and visits to his luxury golf courses. The Atlantic magazine has dubbed him “the bubble-wrapped president.”
A recent Gallup poll shows Trump’s job approval rating at 36%, the lowest of his second term, with disapproval rising to 60%. His all-time low was 34% in 2021, following the January 6th Capitol attack. His approval is particularly weak on crime (43%), foreign affairs (41%), foreign trade (39%), and immigration (37%).
Polls indicate that key groups who shifted toward Trump in 2024—including young and Latino voters—are now returning to the Democrats, motivated by concerns over jobs, inflation, and healthcare.
Professor Schiller of Brown University commented, “This is approaching Biden-level numbers, and the question is why. The president and his team received clear signals from voters on issues like immigration and bringing manufacturing home, but they took those mandates to an extreme. They overreached. America is not an extremist country. Voters are unhappy whether you go too far left or too far right. What we’re seeing is frustration; voters are trying to send a signal, at least to the Republican Party, that they’re not happy with the current direction.”
The outlook for the November 2026 midterms looks difficult for Republicans. Historically, the party in the White House tends to lose seats. Democrats appear energized to curb Trump’s power, and some Republicans are already distancing themselves from what they may see as a failing effort. Several Republican senators, including Mitch McConnell, Thom Tillis, Joni Ernst, and Tommy Tuberville, have announced they will not seek re-election. More than two dozen House Republicans have also said they will not run again.
Patrick Gaspard, a former aide to Barack Obama and now a senior fellow at the Center for American Progress, said, “Trump has run out of runway to blame Biden. Initially, he could attribute people’s struggles to the previous administration, but now, by a two-to-one margin, voters hold Trump responsible for economic outcomes. That has to be worrying for Speaker Mike Johnson and others.” He added, “I’d put the odds at 70% that Democrats will recapture the House in a massive wave. Republicans lose every moment they spend talking about anything other than the economy, and Donald Trump keeps forcing them to discuss everything but the economy.”
Midterm elections often mark the start of the next presidential campaign, relegating the incumbent to a lame-duck status—a position Trump, who has hinted at an unconstitutional third term, is unlikely to enjoy. Conservative commentator Charlie Sykes noted, “For Donald Trump, ‘lame duck’ might just mean having nothing left to lose. He will still wield vast, unchecked power, which he has shown he’s willing to use in the rawest, most reckless ways possible. He has already demonstrated what he can do with the power of the pardon.”For my friends, everything; for my enemies, the law. He is pardoning major drug lords and corrupt politicians left and right, even before officially becoming a lame duck. How will Donald Trump act when he has nothing left to lose politically? That is a question I’m not sure we’ve fully grasped.
Frequently Asked Questions
FAQs The 2022 Midterm Elections and the Republican Partys Prospects
BeginnerLevel Questions
1 What are midterm elections
Midterm elections are national elections held in the United States every four years halfway through a presidents fouryear term Voters elect members of Congress governors and many state and local officials
2 Why is the current president considered unpopular
A presidents popularity measured by approval ratings can decline due to various factors like economic conditions handling of crises legislative successes or failures and general public sentiment Low approval ratings often indicate widespread voter dissatisfaction
3 What does weighing them down mean in politics
It means a political figure or issue is seen as a liability that hurts the electoral chances of other candidates from the same party Candidates in the same party may struggle when voters are unhappy with their partys leader
4 What is a heavy defeat in an election
It refers to a party losing a significant number of seats in Congress potentially losing its majority control This gives the opposing party more power to pass or block legislation
5 Which party does the president belong to and who are Republicans in this context
The president at the time of the 2022 midterms was Joe Biden a Democrat Republicans refers to the Republican Party which was the opposition party trying to win or maintain seats in Congress
Advanced Strategic Questions
6 How does an unpopular president historically affect their party in midterms
Historically the presidents party almost always loses seats in midterm elections This is often called a midterm backlash An unpopular president tends to amplify these losses as voters use the midterm to express disapproval
7 Besides the president what other factors contributed to Republican challenges in 2022
Key factors included the Supreme Courts decision overturning Roe v Wade energizing Democratic voters the quality and extremism of some Republican candidates ongoing investigations into former President Trump and voters concerns about threats to democracy
8 Did Republicans actually suffer a heavy defeat in the 2022 midterms
The outcome was