The following elements are initially hidden (opacity 0): .content–interactive, .content–interactive-grid, .furniture-wrapper, and specific header divs and h1 elements. When the class “interactive-loaded” is applied to the root, these elements become visible (opacity 1) with a smooth 0.3-second fade-in transition.
Additionally, the Guardian Headline Full font family is defined with multiple weights and styles (light, regular, medium, semibold, each in normal and italic variants). Each variant includes links to woff2, woff, and ttf font files hosted on the Guardian’s assets server.The Guardian uses a custom font called “Guardian Headline Full” for its headlines. This font comes in various styles and weights, such as light, semibold, bold, and black, each with regular and italic versions. The font files are available in multiple formats (WOFF2, WOFF, and TTF) and are hosted on the Guardian’s own servers. Additionally, there is a separate font named “Guardian Titlepiece” in bold weight for specific uses.The Guardian Headline Full font family includes several styles, each available in multiple formats (WOFF2, WOFF, and TTF). The styles are:
– Regular (weight 400, normal style)
– Regular Italic (weight 400, italic style)
– Medium (weight 500, normal style)
– Medium Italic (weight 500, italic style)
– Semibold (weight 600, normal style)
– Semibold Italic (weight 600, italic style)
– Bold (weight 700, normal style)
– Bold Italic (weight 700, italic style)
– Black (weight 900, normal style)
Each font file is hosted at the specified URL.@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;
}
#article-body > div .content–interactive-grid,
.content–interactive > div .content–interactive-grid,
#comment-body .content–interactive-grid,
[data-gu-name=body] .content–interactive-grid,
#feature-body .content–interactive-grid {
grid-column-gap: 0px;
grid-template-columns: 100%;
grid-template-areas:
“media”
“title”
“headline”
“standfirst”
“lines”
“meta”
“body”;
}
@media (min-width: 30em) {
#article-body > div .content–interactive-grid figure.element–immersive figcaption,
.content–interactive > div .content–interactive-grid figure.element–immersive figcaption,
#comment-body .content–interactive-grid figure.element–immersive figcaption,
[data-gu-name=body] .content–interactive-grid figure.element–immersive figcaption,
#feature-body .content–interactive-grid figure.element–immersive figcaption {
padding: 0 20px;
max-width: 620px;
}
}
@media (min-width: 46.25em) {
#article-body > div .content–interactive-grid,
.content–interactive > div .content–interactive-grid,
#comment-body .content–interactive-grid,
[data-gu-name=body] .content–interactive-grid,
#feature-body .content–interactive-grid {
grid-template-columns: 100%;
grid-column-gap: 10px;
grid-template-areas:
“title”
“headline”
“standfirst”
“media”
“lines”
“meta”
“body”;
}
#article-body > div .content–interactive-grid #maincontent,
.content–interactive > div .content–interactive-grid #maincontent,
#comment-body .content–interactive-grid #maincontent,
[data-gu-name=body] .content–interactive-grid #maincontent,
#feature-body .content–interactive-grid #maincontent {
padding-right: 80px;
}
}
@media (min-width: 61.25em) {
#article-body > div .content–interactive-grid,
.content–interactive > div .content–interactive-grid,
#comment-body .content–interactive-grid,
[data-gu-name=body] .content–interactive-grid,
#feature-body .content–interactive-grid {
grid-template-columns: 620px 300px;
grid-template-areas:
“title right-column”
“headline right-column”
“standfirst right-column”
“media right-column”
“lines right-column”
“meta right-column”
“body right-column”
“. right-column”;
}
#article-body > div .content–interactive-grid #maincontent,
.content–interactive > div .content–interactive-grid #maincontent,
#comment-body .content–interactive-grid #maincontent,
[data-gu-name=body] .content–interactive-grid #maincontent,
#feature-body .content–interactive-grid #maincontent {
padding-right: unset;
}
}
@media (min-width: 71.25em) {
#article-body > div .content–interactive-grid,
.content–interactive > div .content–interactive-grid,
#comment-body .content–interactive-grid,
[data-gu-name=body] .content–interactive-grid,
#feature-body .content–interactive-grid {
grid-template-columns: 140px 1px 620px 300px;
grid-template-areas:
“title border headline right-column”
“. border standfirst right-column”
“. border media right-column”
“. border body right-column”
“. border”;
}
}This appears to be CSS code for styling a webpage, likely for The Guardian website. It includes rules for layout, fonts, and responsive design across different screen sizes and devices. The code defines styles for elements like article bodies, captions, grids, and typography, including specific font families and weights. It also contains media queries to adjust the layout for larger screens and custom styles for iOS and Android devices.@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;
}
@font-face {
font-family: Guardian Headline Full;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Medium.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Medium.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Medium.ttf) format(“truetype”);
font-weight: 500;
font-style: normal;
}
@font-face {
font-family: Guardian Headline Full;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-MediumItalic.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-MediumItalic.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-MediumItalic.ttf) format(“truetype”);
font-weight: 500;
font-style: italic;
}
@font-face {
font-family: Guardian Headline Full;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Semibold.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Semibold.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Semibold.ttf) format(“truetype”);
font-weight: 600;
font-style: normal;
}
@font-face {
font-family: Guardian Headline Full;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-SemiboldItalic.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-SemiboldItalic.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-SemiboldItalic.ttf) format(“truetype”);
font-weight: 600;
font-style: italic;
}
@font-face {
font-family: Guardian Headline Full;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/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;
}The Guardian website uses custom fonts for its headlines and titles. These fonts are loaded from specific URLs in different formats (WOFF2, WOFF, TTF) and have defined weights and styles.
The layout adjusts based on screen size:
– On wider screens, the main content column has a left margin and a vertical border.
– Elements like atoms, showcases, and immersive content have maximum widths that change with screen size.
– On smaller screens, immersive elements span the full width of the viewport.
– Paragraphs and lists are constrained to a maximum width for readability.
– Spacing and padding are applied to maintain a clean, organized appearance.The main column for interactive content limits inline elements to a maximum width of 620 pixels. For screens wider than 61.25em, inline figures are also capped at 620 pixels.
Several color variables are defined for styling elements like datelines, headers, captions, and featured content. Interactive content areas have no padding by default.
The first paragraph following certain elements or a horizontal rule gets a top padding of 14px. The first letter of these paragraphs is styled with a large, bold, uppercase drop cap in a specific font and color, floated to the left with a right margin.
Paragraphs immediately after a horizontal rule have no top padding. Captions within showcase elements in designated containers follow specific styling rules.The element has a static position and a width of 100%, with a maximum width of 620px. For immersive elements, the width adjusts to the full viewport width minus the scrollbar width.
On screens up to 71.24em wide, immersive elements have a maximum width of 978px, and their captions have 10px of horizontal padding. For screens between 30em and 71.24em, captions get 20px of horizontal padding. Between 46.25em and 61.24em, immersive elements max out at 738px wide.
Below 46.24em, immersive elements shift left by 10px and lose right margin. Between 30em and 46.24em, the left margin increases to 20px, and captions get 20px of horizontal padding.
For screens 61.25em and wider, a grid layout is used with defined columns and rows. Headlines get a top border, meta sections have top padding, and standfirst text has adjusted margins and styling. Links in standfirst are underlined with a specific color that changes on hover. The first paragraph in standfirst has a top border and bottom padding, which is removed on screens 71.25em and up.
Figures in the grid have a left margin of -10px, and inline elements max out at 630px wide. On screens 71.25em and up, the grid columns and rows are adjusted, meta sections get a top border via a pseudo-element, and standfirst paragraphs lose their top borders.The CSS code defines styles for a layout wrapper, adjusting grid structure, typography, spacing, and responsive behavior across different screen sizes. It includes rules for elements like headlines, metadata, captions, and images, with specific properties for positioning, colors, and visibility. Media queries modify these styles for various breakpoints, ensuring the layout adapts to devices from mobile to desktop.This CSS code sets styles for mobile articles. It adjusts colors, spacing, and typography for iOS and Android devices, including dark mode support. Headers are hidden, labels are styled with specific fonts and colors, and headlines are set to 32px with bold weight and dark text.On iOS and Android devices, images within article containers are positioned relatively, with a top margin of 14px and a left offset of -10px. Their width adjusts to the full viewport width minus the scrollbar width, and their height scales automatically.
For these images, the inner elements, images, and links have a transparent background. Their width also matches the viewport width minus the scrollbar, and their height adjusts automatically.
The standfirst section in these containers has top and bottom padding of 4px and 24px respectively, with a right margin of -10px.
Text within the standfirst uses the Guardian Headline or similar serif font family.
Links and list item links inside the standfirst inherit these styles.For Android devices, links in the comment article container’s standfirst section are styled with a specific color, an underline 6px below the text, and no background image or bottom border. On hover, links in the standfirst of feature, standard, and comment articles on both iOS and Android change the underline color to match the pillar color.
The meta section in these article types on both platforms has no margin. Author-related text and links in the meta section, including bylines and author names, use the pillar color. The meta misc elements are also targeted but no specific styling is defined in the provided excerpt.For iOS and Android devices, the following CSS rules apply:
– SVG icons in the meta section of feature, standard, and comment articles use the new pillar color for their stroke.
– The caption button in showcase elements is displayed as a flex container, centered with 5px padding, 28px width and height, and positioned 14px from the right.
– The article body has 12px padding on the left and right.
– Non-thumbnail, non-immersive images in 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 images span the full viewport width minus the scrollbar width.
– Blockquotes with the “quoted” class in the article body’s prose section have a before pseudo-element.For iOS and Android devices, the styling of quoted text and links in article bodies is adjusted. The color of quoted text markers uses the new pillar color. Links are styled with the primary pillar color, underlined with a 6px offset, and the underline color matches the header border. On hover, the underline color changes to the new pillar color.
In dark mode, the background of article furniture elements becomes dark gray (#1a1a1a). Labels within these elements use the new pillar color. Headlines lose their background color and adopt the header border color. Standfirst text and links, as well as byline authors and their links, also use the header border color.For iOS and Android devices, the author byline text and links in standard and comment articles are styled with the new pillar color. Icons in the meta section of feature, standard, and comment articles use the same color for their stroke.
Image captions in showcase-style elements across all article types on both platforms are set to the dateline color.
Quoted text blocks in the article body for feature, standard, and comment articles on iOS and Android also adopt the new pillar color.
The main content areas—including article body, interactive content, feature body, and comment body—in feature, standard, and comment articles on both iOS and Android have a dark background applied with important priority.
Additionally, for iOS feature articles, the first letter following an atom element or a sign-in gate in the article body receives special styling.This CSS code targets the first letter of paragraphs that follow specific elements within various article containers on iOS and Android devices. It applies to different sections like the main body, comments, and interactive content, and accounts for sign-in gates that may appear between elements.On Android devices, the first letter of a paragraph following specific elements in article containers will be styled with a custom color variable, defaulting to white if the variable is not set.This CSS code defines styles for different article types (feature, standard, comment) on iOS and Android devices. It includes adjustments for padding, margins, font sizes, and colors, particularly for dark mode. Specific elements like headlines, captions, and labels are styled with custom weights and backgrounds. A decorative book icon is added to article headers, with responsive sizing for larger screens. The code also hides certain elements and sets up grid templates for layout on wide displays.This CSS code defines styles for a webpage layout, adjusting elements like headers, headlines, and meta information based on screen size. For example, on wider screens, the header height increases, headline text becomes larger, and certain decorative lines are hidden. Hover effects on headlines include a thicker underline, and text properties like font size and line height are specified for different components. The code ensures the layout remains consistent and visually appealing across various devices.For the main media and elements with the attribute `data-gu-name=”media”` within the furniture-wrapper, set their position to relative.
On screens at least 61.25em wide, position these elements in the grid area named “portrait”.
For direct child divs of these elements, set their position to relative.
For any span that directly follows a div within these elements, display it as a block.
For figure elements inside these containers:
– Set their height to 100% and remove the left margin.
– For images and captions within these figures:
– On smaller screens, set their width to the viewport width minus 40px and the scrollbar width, with a left margin of 20px and vertical padding of 10px.
– Add a decorative frame using a background image, positioned absolutely to cover the figure, with a width of the viewport minus 20px and the scrollbar width, aligned 10px from the left.
On medium screens (at least 46.25em wide):
– Adjust image width to 670px, reduce left margin to 5px, and change padding to 15px horizontally and 10px vertically.
– Widen the frame to 700px and shift it 10px left.
– Set caption width to 650px, add a left margin of 15px, bottom margin of 15px, and padding of 15px horizontally and 10px vertically.
On larger screens (at least 61.25em wide):
– Add a left margin of 10px to figures.
– Reduce frame width to 470px.
– Set both image and caption width to 450px, remove left margin, adjust image padding to 10px vertically, and set caption bottom margin to 10px.
On even larger screens (at least 71.25em wide):
– Increase frame width to 550px.
– Set image width to 520px, add a left margin of 5px, and adjust padding to 10px horizontally and 5px vertically.
– Set caption width to 510px, add a left margin of 10px, and bottom margin of 10px.
On extra-large screens (at least 81.25em wide):
– Widen the frame to 630px.
– Set image width to 600px and adjust padding to 15px vertically.
– Set caption width to 600px, add a left margin of 5px, and bottom margin of 15px.
For the caption button within these elements:
– On smaller screens, position it 15px from the right and 20px from the bottom.
– On medium screens (at least 46.25em), move it to 45px from the right and 30px from the bottom.
– On larger screens (at least 61.25em), revert to 15px from the right and 20px from the bottom.
– On even larger screens (at least 71.25em), adjust to 20px from the right.
– No additional changes for extra-large screens.The CSS code provided includes various styling rules for a web layout. For the main media section, the caption button is positioned 30 pixels from the bottom. When no media is present, a centered message is displayed with specific font styling. On larger screens, the main content column adjusts its margin and removes a border.
Supporting content like blockquotes has a light background, and the first letter of paragraphs is styled as a large drop cap. Headings are set in a reddish-brown color with specific font properties, and strong text within headings appears bolder. Embedded iframes also have a light background.
For app rendering, author follow elements are displayed with adjusted spacing and font size. In dark mode, background colors change to dark gray, and certain images switch to white versions. On iOS and Android devices, labels and headlines use a medium font weight, and the background adapts to light or dark themes based on user preference.This CSS code defines styles for iOS and Android devices. It sets primary colors, adjusts background colors based on light or dark mode preferences, and defines grid layouts for article containers. It also includes specific styling for article titles, labels, and GIF containers, ensuring consistent appearance and spacing across different screen sizes.For Android devices, the GIF container and its image within the title-and-gif-wrapper of furniture-wrapper in feature, standard, and comment article containers are set to 70px by 70px.
Elements with the class “book-gif-white” are hidden on both iOS and Android across all article types.
In dark mode, elements with the class “book-gif” are hidden, while those with “book-gif-white” are shown on both iOS and Android for all article types.For Android devices, the following elements are set to display as a block:
– `.gif-container.book-gif-white` within `.title-and-gif-wrapper`
– `img.book-gif-white` within `.gif-container` in `.title-and-gif-wrapper` for feature, standard, and comment article containers.
On both iOS and Android, a horizontal line is added below `.title-and-gif-wrapper` in feature, standard, and comment article containers. This line spans the full viewport width, is 1px tall, has a light gray background, and is positioned at the bottom with a slight left offset.
For screens wider than 61.25em:
– The `.title-and-gif-wrapper` is placed in the “title” grid area.
– The horizontal line below it is reduced to half the viewport width.
In dark mode, the line’s background color changes to a darker gray.
For screens wider than 61.25em, the `.portrait-mainmedia__headline-wrapper` in feature, standard, and comment article containers is placed in the “headline” grid area.
On iOS, the following elements in feature and standard article containers are styled:
– Headline (`h1.headline`)
– Byline and its components (`.meta__byline`, `.byline`, and links within)For iOS and Android devices, the headline and byline text in article containers are set to a font size of 36px, with a normal style, medium weight, and 115% line height. The byline text appears in red (#c70000) by default. In dark mode, the byline color changes to a darker orange (#c74600).This CSS code hides avatars in article bylines on iOS and Android devices. It also adjusts the styling of headlines, bylines, and main media elements. Headlines have no bottom margin or padding, bylines are italicized (except for the author name), and main media elements are set to a 4:5 aspect ratio with a transparent background. Figure elements within the media are styled to take up full height and align to the left, with inner elements positioned at the top left.For iOS and Android devices, images within article containers (feature, standard, and comment) are styled to have a transparent background, visible overflow, and no padding. The images are set to a width of the viewport minus 40 pixels, with a left margin of 20 pixels and a top margin of 25 pixels. If the image is inside an element with the class “element__inner,” the top margin is reduced to 13 pixels. Captions for these images are set to an automatic height, and all paragraph and span elements within the captions are styled consistently.For iOS and Android devices, the caption text in comment articles is displayed as a block with no maximum height, positioned relatively, and uses a gray color defined by the variable –captionText or defaults to #999.
On screens wider than 740px, images within figure elements in feature, standard, and comment articles have their maximum width removed. A pseudo-element before each figure spans almost the full viewport width with 10px margins. Images inside these figures are set to the viewport width minus 60px, centered with 30px left margin and 40px top margin.
For screens wider than 980px, the pseudo-element before each figure adjusts to half the viewport width minus 20px and the scrollbar width. Images are resized to half the viewport width minus 40px and the scrollbar width, with an 18px left margin and 10px top margin.
On screens wider than 1140px, the pseudo-element is shifted 4px upward.
For screens wider than 1300px, further adjustments may apply, but the provided code is incomplete.For iOS and Android devices, the following CSS rules apply to images within article containers:
– For figure elements with the class “element”, the ::before pseudo-element is positioned 20px to the left.
– Images inside these figures have a width calculated as 50% of the viewport width minus 90px and the scrollbar width (if present), with a left margin of 12px, auto height, a negative top margin of 10px, and a top padding of 21px.
In dark mode, the ::before pseudo-element uses a white frame image as its background.
For the first image in the figure (with class “is-first-image”):
– The ::before pseudo-element spans the full viewport width minus 20px and the scrollbar width, aligned to the left.
– The image itself takes the full viewport width minus 20px and the scrollbar width, with no left margin and 10px padding.
On larger screens (min-width: 61.25em), the first image adjusts to a width of 50% of the viewport width minus 30px and the scrollbar width.For iOS and Android devices, the following CSS rules apply to the main media images in feature, standard, and comment article containers:
On screens at least 61.25em wide, the first image in the main media area has a maximum width of 620px and a height of 100%. A pseudo-element before the image spans 50% of the viewport width minus 20px and the scrollbar width, aligned to the left and full height.
On screens at least 81.25em wide, the image width is set to 50% of the viewport width minus 70px and the scrollbar width, with a left margin of 5px, auto height, a negative top margin of 10px, and top padding of 21px. The pseudo-element is shifted 20px to the left.
On screens at least 46.25em wide, the caption button is positioned 45px from the bottom.
The main media container itself, on screens at least 61.25em wide, is placed in the grid area “portrait,” has a maximum width of 620px, and an auto height.For iOS and Android devices, the figure elements within furniture wrappers in feature, standard, and comment article containers are positioned relatively with no top margin.
Inside these figure elements, the inner figure container is absolutely positioned 15px from the top and 20px from the left. Its width is set to the viewport width minus 40px, and its height adjusts automatically. Images within this inner container fill the entire space while maintaining their aspect ratio.
The caption button is placed 24px from the right and 20px from the bottom.
On screens wider than 46.25em, the inner figure container changes to a fixed width of 680px, with a 10px offset from the top and left. The caption button moves to 25px from the bottom.
For screens wider than 61.25em, the figure elements themselves adjust to half the viewport width minus 20px and the scrollbar width, if present.
Additionally, the standfirst elements within these furniture wrappers follow the same styling rules for both iOS and Android.For the .standfirst class within .furniture-wrapper, set the top margin to 0 and add 8px of top padding and 10px of right padding.
On iOS and Android devices, hide the :before pseudo-element of .standfirst in feature, standard, and comment article containers.
Also, for these same containers on iOS and Android, style the text inside .standfirst__inner (paragraphs, links, and list items) with a 20px font size, normal style, medium weight (500), 115% line height, and no bottom padding.
For screens wider than 61.25em, place .standfirst in the grid area named “standfirst” for feature, standard, and comment articles on iOS and Android.
Remove top padding from the .meta class in these article containers on iOS and Android.
For the .meta__published element within .meta, set its position to relative and add a bottom border using an :after pseudo-element. This border should be a full-viewport-width, 1px solid line in color #dcdcdc, positioned at the bottom and shifted 10px to the left.For iOS and Android devices, the following CSS rules apply:
On screens at least 61.25em wide, the meta section in article containers is displayed as a block and positioned in the grid area “meta.” The published date element includes an after-element that spans 50% of the viewport width.
On screens at least 81.25em wide, the miscellaneous meta elements have no left margin.
In dark mode, the after-element for the published date has a background color of #606060.
Before-elements for meta and keyline sections are hidden.
Rich link elements are not displayed.
The comment header cutout container is hidden with high priority.
The article and feature body sections have a background color defined by the variable –weekend-essay-bg (defaulting to #fff4f2) and a top margin of 6px. Horizontal rules within these sections are also styled.For iOS and Android devices, the horizontal rule (hr) in the article and feature body is styled with a height of 1 pixel, no border, a bottom margin of 3 pixels, a light gray background color, a width of 150 pixels, no left margin, and a top margin of 48 pixels.
The first letter of the first paragraph after an hr or the first paragraph without a span in the article or feature body is styled with a specific font family, a light font weight, a large font size of 111 pixels, a line height of 92 pixels, floated to the left, set in uppercase, with box-sizing set to border-box, an 8-pixel right margin, aligned to the top of the text, and colored using a CSS variable for drop caps or a secondary pillar color.
Headings (h2) containing strong or bold text in the article or feature body are given a medium font weight.
In dark mode, the hr background color changes to a darker gray, and the first letter after an hr uses a different color variable (with a fallback to #ff5943). Links within paragraphs have their underlines removed.
The first letter of the first paragraph after an element with the class “element-atom” in the article or feature body uses a medium font weight.
In comment sections or elements with the data attribute “data-gu-name=body,” the first letter of the first paragraph after an “element-atom” or sign-in gate uses a light font weight and has no top padding.
Headings (h2) are styled with a dark red color, a font size of 28 pixels, normal font style, a light font weight, normal line height, and margins of 28 pixels on top, 0 on the sides, and 8 pixels at the bottom.
On Android, the element with the ID “cutout-container” is hidden.
In dark mode, the headline wrapper for portrait main media uses a repeating linear gradient for its background. In comment sections or elements with the data attribute “data-gu-name=body,” the first letter of paragraphs that are not the first one is colored white. Headings (h2) in these sections are also affected by dark mode styling.At a branch of the Ukrainian coffee chain Lviv Croissants in the frontline city of Kramatorsk, a noticeboard displays colorful Post-it notes with handwritten messages. One note simply says “Kramatorsk,” with red hearts below and a yellow and blue semicircular fan above—the colors of the Ukrainian flag.
Among those looking at the notes is Bohdan, a 26-year-old soldier who has served in the army for the past three years. Now working in logistics, he chose to spend his day off in Kramatorsk with his dog Arnold, photographing the aftermath of recent Russian bombings in a city where he was stationed for 18 months.
“I have a history with this place,” he says. “It is part of my destiny and my story.”
Kramatorsk is at the heart of the 30% of Ukraine’s Donetsk region still held by Ukrainian forces despite Russia’s slow advance. This week, the area was the focus of what appears to have been a failed negotiation between Donald Trump and Vladimir Putin. The Russian president demanded all of Donetsk—which, along with Luhansk, makes up the Donbas region—as part of a peace deal. Trump seemed to briefly support the proposal, though Ukraine rejected it.
Russia’s justifications shift, but in Putin’s view, Donetsk—a traditionally Russian-speaking industrial area in eastern Ukraine—is culturally closer to Moscow than to Kyiv. However, the people who live there see things very differently. They have no interest in giving up their land.
Earlier that day, Bohdan photographed the site of a Russian bombing in the city center on July 31 that killed five people. He took a picture of a damaged tree in front of a ruined apartment building, planning to turn it into a tattoo. “The tree is symbolic,” he explains. “Like Ukraine, it holds on despite the strike.”
This won’t be his first tattoo. On his left calf is a list of Russian airstrikes that killed more than 15 civilians anywhere in Ukraine. He got it four months ago while switching units. During that transition, he says, “I was living a civilian life, mostly. It was so easy to forget what’s going on.”
The frontline is about 12 miles away at its closest point, but Kramatorsk remains relatively lively under the August sun. Air raid sirens sound regularly, but locals say these are usually for missiles passing overhead. When an attack actually targets the city, they note grimly, there is often no warning.
Around 250,000 civilians still live in Kramatorsk and the rest of Donetsk—about one-eighth of the pre-invasion population. Many windows are boarded up, but the city is not heavily damaged. Some shops and cafes remain open, like Kateryna Seledtsova’s Sweet Coffee House Bakery, which offers fruit cakes, eclairs, and other creamy pastries.
The population in Kramatorsk has become increasingly male-dominated due to the influx of soldiers, leading Seledtsova to adjust her menu. “Men like simpler food,” she says, explaining that she replaced French-style pastries with layered Napoleon cake or trubochki—waffle tubes filled with condensed milk. Whatever she bakes sells out daily due to high demand.
The idea of giving up the rest of Donetsk is unthinkable to Seledtsova.”It’s just foolish. Men have been digging trenches here. All those fortifications for nothing? I don’t believe it will happen—it’s just stupid.” The baker’s life is rooted here: Seledtsova is from Kramatorsk, the same city as her father and her eight-year-old son. The idea of being forced to leave is so hard to take seriously, she says, that it’s best not to dwell on it.
Could there be a price worth paying—giving up Ukrainian land, including where she lives—in exchange for something like NATO membership? She only sees practical problems: “There are already so many issues with evacuation. For instance, we can’t just go somewhere else in Ukraine and buy or rent an apartment—we don’t have the money.”
Relocation programs don’t appeal to her, she says, because the housing offered isn’t comparable. “From what I know, many people who fled are living in kindergartens. They don’t even have money for things like proper medicine.” She questions how the Ukrainian state, with its limited resources, could make such a program work.
What about staying under Russian control? “I would never work under those bastards. Of course not, no,” she says, laughing at the intensity of her own reaction.
In Sloviansk, north of Kramatorsk, Valentyna and Yelena are in the city’s well-kept central park with their grandsons, aged five and six. The children play in small electric cars, but the grandmothers are frustrated. “You’re a journalist—you could help push for peace. We need to speak out for peace,” says Valentyna. When asked if giving up land might be acceptable, she only replies, “We want the war to stop.”
If Ukraine is forced to give up Donetsk, Valentyna says they would flee if necessary because “the children are having mental health issues. They shake at night.” In-person classes, which lasted four hours a day, have been suspended again as the security situation worsens. “Three days ago, we were at a playground and saw a Shahed drone right above our heads, flying so low. There were 10 or 12 children playing there, just watching.”
At the market in Sloviansk, locals sell surplus produce from their gardens—some of the world’s richest farmland. A woman also named Valentyna sells grapes for 80 hryvnia (£1.44) per kilo. “They’re talking about trading people like in ancient times, when there were lords and serfs,” she says as she weighs out 2kg from piles of red and white grapes. “We should keep going and fighting for our land. These are Ukrainian lands; the borders are recognized.”
Donetsk province remains the site of the heaviest fighting along the long frontline, especially around Pokrovsk, 35 miles southwest of Kramatorsk. Regional officials are hesitant to give interviews due to current political sensitivities, but Vadym Filashkin, the governor of Donetsk, reported on Thursday morning that three people had been killed in Kostyantinivka. On Friday, settlements were attacked 26 times, and 3,649 people were evacuated.
The ongoing war’s impact is visible in nearby Pavlohrad, just to the west in a neighboring region. A refugee center has been operating there for nearly a year, helping people with nowhere to go. But as Russia’s offensive has intensified, the number of arrivals has risen to “350 to 450 people a day over the past two weeks,” according to Kateryna Makarova, the site’s team leader. That compares to 200 a day two months ago and 100 during the winter.View image in fullscreen
Kateryna Makarova, manager of the transit refugee center in Pavlohrad, Dnipropetrovsk region. Photograph: Julia Kochetova/The Guardian
Conditions at the site, a former cultural center, are crowded. In the auditorium, beds are lined up side by side on the stage for those who cannot be immediately rehoused. A temporary dormitory shelter is being set up in a tent to increase overnight capacity from 100 to over 200, though this may not be a practical solution once the weather changes. Makarova adds that another reception center is opening further west in the city of Dnipro.
News reports suggest Trump’s peace efforts have made no progress. Few in and around Donetsk are surprised. Ukraine continues to plan for Russia’s slow but steady advance, with attacks showing no sign of stopping. Netting is being installed along the safest supply route into Kramatorsk to protect it from Russia’s increasingly effective drone teams. Still, at the current pace, it would likely take years for Russia to capture Donetsk, at a cost of around 30,000 casualties per month.
Even so, it’s wise to prepare for the worst. “We are trying to figure out the steps we should take when more evacuations happen,” says Makarova. “Many people live in Kramatorsk, Sloviansk, and other towns. If an evacuation is ordered, a huge number of people will arrive. We need to know how to handle that.”
View image in fullscreen
Nadiya and Serhii were evacuated from Mezhova, Dnipropetrovsk region, to the transit refugee center in Pavlohrad. Photograph: Julia Kochetova/The Guardian
Serhii and Nadiya, married for 46 years, sit in the early evening sun with their life’s belongings packed in a dozen or so plastic bags. They are not from Donetsk but from Mezhova, about 10 miles into Dnipropetrovsk region—victims of a war that, despite Russia’s stated focus on Donetsk, is spreading beyond its borders. Serhii admits, “We never thought the war would reach our village,” until drone strikes began two months ago.
The couple remain surprisingly calm under the circumstances, though Serhii acknowledges taking Valium to cope. They hope to join one of their daughters as soon as a volunteer can drive them from the refugee center. For now, they are staying at the center, and Nadiya comes over to say goodbye as we leave.
“They say we’re brothers,” Serhii remarks, “but if I had a brother like that, I’d change my last name and my father’s name. I don’t need that kind of brother.”
Frequently Asked Questions
Of course Here is a list of FAQs about the topic These are Ukrainian lands Residents of Donetsk reject Putins territorial claims
Basic Understanding Definitions
Q What does These are Ukrainian lands refer to
A Its a direct quote from residents of the Donetsk region in Ukraine rejecting Russian President Vladimir Putins claim that the area is historically Russian land It asserts that Donetsk is and always has been part of Ukraine
Q Where is the Donetsk region
A Donetsk is a region in eastern Ukraine It has been a major focal point of the conflict between Ukraine and Russia since 2014
Q What are Putins territorial claims
A President Putin has claimed without international recognition that parts of eastern and southern Ukraine including Donetsk are historically Russian territory and should not belong to the modern Ukrainian state
Context and Background
Q Why is Donetsk so significant in this conflict
A Donetsk is significant for both symbolic and practical reasons Its a major industrial heartland and Russias initial invasion in 2014 began with the illegal annexation of Crimea and the fomenting of a separatist conflict in the Donbas region which includes Donetsk
Q Has Donetsk always been part of Ukraine
A The borders have shifted over centuries However in the modern context Donetsk has been a recognized part of sovereign Ukrainian territory since Ukraine declared independence from the Soviet Union in 1991 a fact acknowledged by Russia at the time
Q What was the Minsk Agreement
A These were peace agreements signed in 2014 and 2015 aimed at stopping the fighting in the Donbas region They proposed a ceasefire and a special status for the region within Ukraine but the agreements were never fully implemented
OntheGround Reality
Q Do all people in Donetsk support Russia
A No While some residents may have proRussian views the phrase These are Ukrainian lands highlights that a significant number of people in the region strongly identify as Ukrainian and reject Russian control The populations views are diverse and have been heavily influenced by years of conflict and propaganda