"La décision la plus importante à ce jour" : Jared Kaplan sur l'autorisation de l'IA à s'entraîner elle-même

"La décision la plus importante à ce jour" : Jared Kaplan sur l'autorisation de l'IA à s'entraîner elle-même

Ce code CSS définit une famille de polices personnalisée appelée "Guardian Headline Full" avec plusieurs poids et styles de police. Il inclut les poids light, regular, medium et semibold, chacun avec des variations normale et italique. Les polices sont chargées depuis les serveurs du Guardian dans trois formats de fichiers différents : WOFF2, WOFF et TrueType.

@font-face {
font-family: Guardian Headline Full;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Bold.woff2) format("woff2"),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Bold.woff) format("woff"),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Bold.ttf) format("truetype");
font-weight: 700;
font-style: normal;
}

@font-face {
font-family: Guardian Headline Full;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BoldItalic.woff2) format("woff2"),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BoldItalic.woff) format("woff"),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BoldItalic.ttf) format("truetype");
font-weight: 700;
font-style: italic;
}

@font-face {
font-family: Guardian Headline Full;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Black.woff2) format("woff2"),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Black.woff) format("woff"),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Black.ttf) format("truetype");
font-weight: 900;
font-style: normal;
}

@font-face {
font-family: Guardian Headline Full;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BlackItalic.woff2) format("woff2"),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BlackItalic.woff) format("woff"),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BlackItalic.ttf) format("truetype");
font-weight: 900;
font-style: italic;
}

@font-face {
font-family: Guardian Titlepiece;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-titlepiece/noalts-not-hinted/GTGuardianTitlepiece-Bold.woff2) format("woff2"),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-titlepiece/noalts-not-hinted/GTGuardianTitlepiece-Bold.woff) format("woff"),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-titlepiece/noalts-not-hinted/GTGuardianTitlepiece-Bold.ttf) format("truetype");
font-weight: 700;
font-style: normal;
}

@media (scripting: enabled) {
main {
opacity: 0;
}
main.is-loaded {
opacity: 1;
}
}

@media (scripting: enabled) and (prefers-reduced-motion: no-preference) {
main.is-loaded {
transition: opacity .3s ease-in-out;
}
}

:root {
--overlay-fade: rgba(0, 0, 0, .6);
--caption: #707070;
--light-type: #fff;
--dark-bg: #1a1a1a;
}

:root[data-app-os=android] {
--androidTop: 58px;
}

:root[data-app-os=ios] {
--iosBottomToolbar: 50px;
--iosTopToolbar: 20px;
--iosLvh: calc(100vh - var(--iosTopToolbar));
}

@media (min-height: 670px) {
:root[data-app-os=ios] {
--iosBottomToolbar: 84px;
--iosTopToolbar: 44px;
}
}

@media (min-height: 800px) {
:root[data-app-os=ios] {
--iosTopToolbar: 94px;
}
}

:root:root {
--byline: var(--media-200);
--byline-anchor: var(--media-200);
--share-button: var(--media-200);
--article-link-text: var(--media-200);
--article-link-hover: var(--media-200);
--article-link-text-hover: var(--media-200);
--article-link-border-hover: var(--media-200);
--block-quote-fill: var(--media-200);
--block-quote-text: var(--media-200);
--pullquote-icon: var(--media-200);
--pullquote-text: var(--media-200);
--textblock-bullet-background: var(--media-200);
--sub-meta-text: var(--media-200);
--sub-meta-text-hover: var(--media-text);
--design-tag-text: var(--media-text);
--design-tag-background: var(--media-tag);
--follow-icon-fill: var(--media-200);
--follow-icon-background: var(--media-200);
--series-title-text: var(--media-200);
}

:root:root [data-component=series] {
--carousel-active-dot: var(--media-200);
}

:root:root gu-island[name=ListenToArticle] {
--follow-icon-background: var(--media-text);
}

article [data-gu-name=body] h2 {
font-weight: 600;
--subheading-text: var(--media-200);
}

article .first-headline,
article .second-headline,
article .inter {
/ Le texte original se termine abruptement ici. /
}

Le code CSS définit des styles pour une mise en page d'article, en se concentrant sur la typographie et le design responsive. Les titres utilisent une police spécifique et s'ajustent en taille de 36px à 50px sur les écrans plus larges. Les étiquettes et les liens sont stylisés avec des couleurs distinctes et des effets au survol. Le texte d'introduction (standfirst) et les crédits d'auteur ont des tailles de police et des couleurs définies qui s'adaptent également aux différentes largeurs d'écran.

Pour les sections média, la mise en page change considérablement selon les points de rupture. Sur mobile, elle prend toute la largeur avec une couleur de fond et une zone de hauteur pleine fenêtre. Sur les écrans plus larges, elle passe à une grille à deux colonnes avec des placements spécifiques pour les titres, les informations sur l'interviewé et les conteneurs média. Les bordures de fond et les largeurs sont ajustées pour créer une apparence centrée et encadrée sur les appareils moyens et grands.

Des styles supplémentaires gèrent les légendes, les citations avec une typographie spéciale, et des éléments décoratifs comme les lettrines. Le design utilise des propriétés personnalisées CSS pour les couleurs, permettant une cohérence thématique.

@media (min-width: 81.25em) {
[data-gu-name=media] {
--body-width: 1298px;
}
}

[data-gu-name=media] [data-gu-name=title] {
margin: 0 10px 4px;
width: fit-content;
background-color: var(--design-tag-background, var(--media-tag));
padding: 4px 6px;
}

@media (min-width: 30em) {
[data-gu-name=media] [data-gu-name=title] {
margin: 0 20px 8px;
}
}

@media (min-width: 61.25em) {
[data-gu-name=media] [data-gu-name=title] {
margin: 8px 20px;
}
}

[data-gu-name=media] [data-gu-name=title] > div > div {
padding: 0;
background-color: transparent;
}

[data-gu-name=media] [data-gu-name=title] > div > div a:only-of-type {
margin: 0;
}

@media (max-width: 61.24em) {
[data-gu-name=media] [data-gu-name=title] {
grid-area: mobile-furniture-wrapper;
}
}

article .content--interactive-grid {
grid-template-areas:
"media"
"meta"
"standfirst"
"body";
}

@media (min-width: 61.25em) {
article .content--interactive-grid {
grid-template-columns: 620px 300px;
grid-template-areas:
"media media"
"meta ."
"standfirst ."
"meta ."
"body ."
". .";
}
}

@media (min-width: 71.25em) {
article .content--interactive-grid {
grid-template-columns: 140px 1px 620px 300px;
grid-template-areas:
"media media media media"
"meta border standfirst ."
"meta border body ."
". border . .";
}
}

@media (min-width: 81.25em) {
article .content--interactive-grid {
grid-template-columns: 219px 1px 620px 80px 300px;
grid-template-areas:
"media media media media media"
"meta border standfirst . ."
"meta border body . ."
". border body . ."
". border . . .";
}
}

article .content--interactive-grid [data-gu-name=standfirst] {
margin-top: 8px;
}

article .content--interactive-grid [data-gu-name=lines] {
display: none;
}

article .content--interactive-grid .header-caption,
article .content--interactive-grid .video-caption {
margin-bottom: 10px;
}

article .content--interactive-grid .header-caption svg,
article .content--interactive-grid .video-caption svg {
fill: var(--caption);
width: 14px;
float: left;
margin-right: 4px;
}

article .content--interactive-grid .header-caption i,
article .content--interactive-grid .video-caption i {
font-style: italic;
}

article .content--interactive-grid .header-caption {
padding: 4px 0;
}

article .content--interactive-grid .header-caption > p:nth-of-type(2) span:has(svg) {
display: none;
}

article .content--interactive-grid .header-caption > p:nth-of-type(2) {
display: block;
padding-top: 4px;
}

gu-island[name=ListenToArticle] button {
margin-top: 4px;
margin-bottom: 4px;
}

.pin-spacer {
pointer-events: none;
}

.pin-spacer * {
pointer-events: auto;
}

header {
position: relative;
z-index: 20;
}

[data-rendering-target=apps] article div:has([data-gu-name=dateline]),
[data-rendering-target=apps] article [data-gu-name=dateline] {
margin-bottom: 0;
}

@media (orientation: landscape) and (max-width: 700px) {
[data-gu-name=media] {
grid-template-columns: 5fr 5fr;
grid-template-rows: .1fr .1fr .2fr 1fr .2fr;
gap: 4px;
grid-template-areas:
"title media-container"
"interviewee media-container"
". media-container"
"headline-container media-container"
". media-container";
}

[data-gu-name=media] [data-gu-name=title] {
grid-area: title;
margin: 8px 20px;
}
}

:root[data-app-os=ios] .Static-header [data-gu-name=media]:before,
:root[data-app-os=ios] .Static-header [data-gu-name=media]:after,
:root[data-app-os=ios] .Video-header [data-gu-name=media]:before,
:root[data-app-os=ios] .Video-header [data-gu-name=media]:after {
display: none;
}

@media (scripting: none) {
[data-gu-name=media] {
margin-left: unset;
width: 100%;
}
}

@media (scripting: none) and (min-width: 30em) {
[data-gu-name=media] {
margin-left: unset;
width: 100%;
}
}

@media (scripting: none) and (min-width: 61.25em) {
[data-gu-name=media] {
height: unset;
display: block;
}

[data-gu-name=media] > div {
max-width: unset;
}
}

@media (scripting: none) {
article .content--interactive-grid {
grid-template-areas:
"headline"
"title"
"media"
"meta"
"standfirst"
"body";
}
}

@media (scripting: none) and (min-width: 61.25em) {
article .content--interactive-grid {
grid-template-areas:
"headline ."
"title ."
"media media"
"meta ."
"standfirst ."
"body .";
}
}

@media (scripting: none) and (min-width: 71.25em) {
article .content--interactive-grid {
grid-template-areas:
"headline headline headline headline"
"media media media media";
}
}

Ce code CSS définit des styles pour une mise en page d'article responsive. Lorsque le scripting est désactivé et que la largeur de l'écran est d'au moins 81.25em, la grille de contenu de l'article est structurée avec des zones spécifiques pour le titre, le média, le titre de la section, la bordure, le texte d'introduction, les métadonnées et le corps.

Les éléments avec la classe "screen-reader-only" sont positionnés hors écran pour n'être accessibles qu'aux lecteurs d'écran. Les figures de support dans la colonne interactive principale ont une largeur de 75% et leur style s'ajuste selon les différentes tailles d'écran, les légendes devenant statiques et les largeurs non définies sur les écrans plus larges.

Pour les éléments immersifs sur les écrans moyens, une marge droite négative est appliquée. Les légendes d'en-tête ont un remplissage supérieur et des marges ajustées lorsqu'elles sont suivies d'une transcription vidéo. Les conteneurs de titres et les sections d'interviewé dans les en-têtes statiques et vidéo ont un remplissage horizontal qui augmente sur les écrans plus larges.

Les conteneurs média dans ces en-têtes occupent une zone de grille complète, avec des wrappers d'image collants sur mobile qui deviennent relatifs sur les écrans plus larges. Les images à l'intérieur sont définies pour couvrir leurs conteneurs, et certains éléments adjacents sont masqués. Une deuxième couche d'image est positionnée de manière absolue.

Un wrapper de mobilier mobile est collant en bas sur les petits écrans, avec une disposition en colonne flexible et une couleur de fond, devenant partie intégrante du flux de contenu normal sur les écrans plus larges. Il inclut un dégradé de superposition pour un effet visuel sur les appareils plus petits.

Pour les écrans jusqu'à 46.24em, les en-têtes statiques et vidéo prennent toute la hauteur. Sur les appareils iOS à cette taille, la mise en page utilise une variable pour la hauteur de la fenêtre et ajoute un remplissage supplémentaire en bas pour la section de l'interviewé afin de s'adapter à la barre d'outils iOS.

Pour les appareils Android jusqu'à 61.24em, la hauteur de l'en-tête est calculée en soustrayant la hauteur de la barre d'outils supérieure de la hauteur totale de la fenêtre, et le wrapper de mobilier mobile inclut un remplissage pour la barre supérieure Android.

En orientation paysage sur les écrans jusqu'à 700px de large, la hauteur de l'en-tête s'ajuste pour s'adapter à son contenu, et le conteneur média s'adapte également à son contenu.

Dans les applications, les étiquettes des wrappers d'image sont masquées.

Le conteneur vidéo occupe toute la largeur et la hauteur, les vidéos étant définies pour couvrir la zone. Les vidéos commencent invisibles et appara