Ce code CSS définit une famille de polices personnalisée appelée "Guardian Headline Full" avec plusieurs styles et graisses. Il inclut des versions légère, normale, moyenne et semi-gras, chacune disponible en styles normal et italique. Les fichiers de police sont hébergés en ligne et fournis dans trois formats : WOFF2, WOFF et TrueType (TTF).
@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;
}
@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) {
}
Pour les colonnes de contenu interactif, une bordure gauche est ajoutée avec un positionnement et un z-index spécifiques. Sur les écrans plus larges, la position gauche de la bordure s'ajuste légèrement. Dans ces colonnes, les éléments atomiques n'ont pas de marges supérieure ou inférieure mais incluent un remplissage. Lorsque des paragraphes précèdent des éléments atomiques, le remplissage est supprimé et des marges sont ajoutées à la place. Les éléments en ligne sont limités à une largeur maximale de 620px.
Pour les figures avec un rôle de boucle, les légendes sont définies avec un z-index plus élevé, et les boutons de boucle sont stylisés avec des dimensions et un alignement spécifiques. Les éléments vidéo auto-hébergés sont définis à pleine largeur, limités à 620px, et incluent des marges supérieure et inférieure. Pour les mises en page vidéo immersives, les contraintes de largeur sont supprimées et les marges sont ajustées. Sur les écrans plus larges, les vidéos immersives s'élargissent et se décalent vers la gauche.
Les variables de couleur définissent les styles pour les dates, les bordures, les légendes et les éléments de fonctionnalité. En mode sombre, les couleurs du texte et des icônes s'adaptent à un thème sombre. Les éléments atomiques dans les colonnes de contenu n'ont pas de remplissage. Des règles spécifiques garantissent que le premier paragraphe après certains éléments ou des règles horizontales est stylisé de manière appropriée dans différentes sections de contenu comme les articles, les commentaires et les fonctionnalités. Le premier paragraphe après une porte de connexion ou une règle horizontale (sauf la dernière) a un remplissage supérieur de 14 pixels.
Pour la première lettre du premier paragraphe suivant un élément initial, une porte de connexion, ou une règle horizontale (à l'exception de la dernière) dans divers corps de contenu, appliquez un style de lettrine spécifique. Cela utilise la police Guardian Headline, est en gras, de 111 pixels de taille avec une hauteur de ligne de 92 pixels. Elle flotte à gauche, est en majuscules, utilise la boîte de modèle de bordure, a une marge droite de 8 pixels, s'aligne en haut et utilise une variable de couleur personnalisée.
Les paragraphes immédiatement après une règle horizontale dans ces corps de contenu n'ont pas de remplissage supérieur.
Les citations dans ces corps de contenu ont une largeur maximale de 620 pixels.
Les légendes pour les éléments de présentation dans le contenu principal et les conteneurs d'articles sont positionnées statiquement, prenant toute la largeur jusqu'à 620 pixels.
Les éléments immersifs s'étendent sur toute la largeur de la fenêtre d'affichage, en tenant compte de la barre de défilement. Sur les écrans plus larges (jusqu'à 71.24em), ils sont limités à 978 pixels, avec un ajustement du remplissage des légendes à différents points de rupture. Sur les écrans moyens (46.25em à 61.24em), la largeur maximale est de 738 pixels. Sur les écrans plus petits (en dessous de 46.24em), ils s'alignent sur le bord gauche avec des marges ajustées et un remplissage de légende.
Pour les enveloppes de mobilier sur les grands écrans (61.25em et plus), une disposition en grille est utilisée avec des colonnes et des lignes définies pour positionner les composants de titre. Les styles CSS définissent la mise en page et l'apparence de la section d'en-tête d'une page web, appelée "furniture-wrapper". Ils définissent les bordures, l'espacement, la typographie et les structures de grille qui s'adaptent à différentes tailles d'écran.
Pour les écrans plus larges (plus de 71.25em), une disposition en grille complexe est établie avec des colonnes et des lignes spécifiques pour des éléments comme le titre, le chapeau, les métadonnées, le chapô et le portrait. Les éléments visuels comme les bordures et les lignes sont ajustés ou supprimés à certains points de rupture. La taille de la police du chapeau augmente et sa largeur maximale change sur les écrans plus larges. Les liens dans le chapô sont stylisés avec des soulignements qui changent de couleur au survol. Pour les écrans plus larges que 740 pixels, masquez les éléments avec la classe `.keyline-4` ou l'attribut `[data-gu-name="lines"]`. Dans le `.furniture-wrapper`, stylisez les traits SVG dans ces éléments pour utiliser la variable de couleur `--headerBorder`.
Sur les écrans plus larges que 740 pixels, supprimez la marge droite des éléments avec l'ID `#meta` ou l'attribut `[data-gu-name="meta"]` à l'intérieur de `.furniture-wrapper`. Pour ces éléments de métadonnées, définissez la couleur de bordure des liens sociaux, des sections de commentaires et de leurs spans enfants à `--headerBorder`. De plus, masquez tout composant `gu-island` dans le `.content__meta-container_dcr`.
Pour la section chapô (sélectionnée par classe, ID ou `data-gu-name`), appliquez une marge gauche négative et un remplissage correspondant, et définissez sa position sur relative. Sur les écrans plus larges (plus de 740px), ajoutez un petit remplissage supérieur. Stylisez les paragraphes dans le chapô avec une graisse de police de 400, une taille de 20 pixels et un remplissage inférieur de 14 pixels.
La zone média principale (sélectionnée par ID ou `data-gu-name`) est positionnée relativement, n'a pas de marge supérieure, une petite marge inférieure, et est placée dans la zone de grille "portrait". Assurez-vous que ses divs internes prennent toute la largeur et n'ont pas de marge horizontale. Sur les écrans très larges (plus de 980px), supprimez la marge inférieure. Sur les écrans plus petits (moins de 740px), définissez sa largeur à la largeur totale de la fenêtre d'affichage moins toute barre de défilement, et appliquez une marge gauche négative. Pour les écrans entre 480px et 740px, augmentez cette marge gauche négative à -20px.
Stylisez les légendes des figures pour qu'elles soient positionnées absolument en bas, avec un remplissage spécifique et des couleurs d'arrière-plan et de texte provenant de variables CSS. Définissez leur largeur à 100% sans largeur maximale, supprimez la marge inférieure et définissez une hauteur minimale. Colorez les spans dans la légende en utilisant `--headerBorder`, et remplissez leurs SVG avec la même couleur. Masquez le premier span et affichez le deuxième span comme un élément bloc, limitant sa largeur à 90%. Sur les écrans plus larges que 480px, augmentez le remplissage horizontal de la légende. Une classe `.hidden` sur la légende définit son opacité à 0.
Le bouton de légende est affiché comme un bloc, positionné absolument près du bas à droite, avec un z-index élevé. Il a un arrière-plan circulaire, pas de bordure, et un remplissage spécifique. Réduisez légèrement l'icône SVG. Sur les écrans plus larges que 480px, ajustez sa position droite. Pour les écrans très larges (plus de 1140px), ajustez le haut et la hauteur de l'élément pseudo `.content__main-column--interactive`. De plus, limitez la largeur maximale des titres h2 dans cette colonne à 620 pixels.
Pour l'élément racine lorsque le corps a une classe `.ios` ou `.android`, définissez un ensemble de variables de couleur pour le mode sombre. Dans une préférence de schéma de couleurs sombre, mettez à jour la variable `--new-pillar-colour` en conséquence.
Sur les appareils iOS, ciblez le premier paragraphe après des éléments initiaux spécifiques dans divers conteneurs d'articles et stylisez leur première lettre. Cela s'applique également si un élément de porte de connexion apparaît entre ce premier élément et le paragraphe. La première lettre du premier paragraphe après une porte de connexion, ou après un élément atomique suivi d'une porte de connexion, doit être colorée en utilisant la variable de pilier secondaire. Cela s'applique aux conteneurs d'articles de fonctionnalité, standard et de commentaires sur iOS et Android.
Sur iOS et Android, la hauteur de l'en-tête de l'article doit être définie à zéro dans les conteneurs d'articles de fonctionnalité, standard et de commentaires.
L'enveloppe de mobilier dans ces conteneurs doit avoir un remplissage supérieur de 4 pixels et un remplissage horizontal de 10 pixels. Les étiquettes de contenu à l'intérieur doivent utiliser une famille de police sérif en gras, être colorées avec la nouvelle variable de pilier et avoir un texte en majuscules.
Les chapeaux dans l'enveloppe de mobilier doivent avoir une taille de 32 pixels, être en gras, avoir un remplissage inférieur de 12 pixels et utiliser la couleur #121212.
Les éléments image à l'intérieur de l'enveloppe de mobilier doivent être positionnés relativement, avoir une marge supérieure de 14 pixels, une marge gauche de -10 pixels, une largeur calculée comme la largeur de la fenêtre d'affichage moins la largeur de la barre de défilement, et une hauteur automatique. Cela s'applique à la figure interne, à l'image et aux éléments de lien dans les conteneurs d'articles de fonctionnalité sur iOS. Pour les appareils iOS et Android, les images dans les conteneurs d'articles sont définies pour avoir un arrière-plan transparent, avec une largeur égale à la largeur totale de la fenêtre d'affichage moins la largeur de la barre de défilement, et une hauteur automatique.
La section chapô dans ces conteneurs a un remplissage supérieur de 4 pixels, un remplissage inférieur de 24 pixels et une marge droite de -10 pixels.
Les paragraphes dans le chapô utilisent la famille de police Guardian Headline.
Les liens à l'intérieur du chapô sont stylisés avec une couleur spécifique, un soulignement positionné à 6 pixels du texte, et une couleur de ligne décorative, sans bordure. Pour les appareils Android, lors du survol des liens dans la section chapô de l'article de commentaire, la couleur du soulignement doit correspondre