Da Peepo! a Middlemarch: 25 libri imperdibili da leggere prima dei 25 anni

Da Peepo! a Middlemarch: 25 libri imperdibili da leggere prima dei 25 anni

Questo codice CSS definisce una famiglia di caratteri personalizzata chiamata "Guardian Headline Full" con più stili e spessori. Include versioni light, regular, medium e semibold, ciascuna disponibile sia in stile normale che corsivo. I file dei caratteri sono ospitati online e forniti in tre formati: WOFF2, WOFF e 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) {
}

Per le colonne dei contenuti interattivi, viene aggiunto un bordo sinistro con posizionamento e z-index specifici. Su schermi più grandi, la posizione sinistra del bordo si adatta leggermente. All'interno di queste colonne, gli elementi atomici non hanno margini superiore o inferiore ma includono padding. Quando i paragrafi precedono gli elementi atomici, il padding viene rimosso e vengono invece aggiunti margini. Gli elementi inline sono limitati a una larghezza massima di 620px.

Per le figure con un ruolo di loop, le didascalie sono impostate su un z-index più alto e i pulsanti di loop sono stilizzati con dimensioni e allineamento specifici. Gli elementi video self-hosted sono impostati a larghezza piena, limitati a 620px e includono margini superiore e inferiore. Per i layout video immersivi, i vincoli di larghezza vengono rimossi e i margini vengono adattati. Su schermi più ampi, i video immersivi si espandono in larghezza e si spostano verso sinistra.

Le variabili di colore definiscono gli stili per le date, i bordi, le didascalie e gli elementi di feature. In modalità scura, i colori del testo e delle icone si adattano a un tema scuro. Gli elementi atomici all'interno delle colonne dei contenuti non hanno padding. Regole specifiche garantiscono che il primo paragrafo dopo determinati elementi o righe orizzontali sia stilizzato in modo appropriato in diverse sezioni di contenuti come articoli, commenti e feature.

Il primo paragrafo dopo un gate di accesso o una riga orizzontale (tranne l'ultima) ha un padding superiore di 14 pixel.

Per la prima lettera del primo paragrafo che segue un elemento iniziale, un gate di accesso o una riga orizzontale (escludendo l'ultima) all'interno di vari corpi di contenuto, applica uno stile di capolettera specifico. Questo utilizza il carattere Guardian headline, è in grassetto, di 111 pixel di dimensione con 92 pixel di altezza di linea. Galleggia a sinistra, è in maiuscolo, utilizza il box-sizing border-box, ha un margine destro di 8 pixel, si allinea in alto e utilizza una variabile di colore personalizzata.

I paragrafi immediatamente successivi a una riga orizzontale all'interno di questi corpi di contenuto non hanno padding superiore.

I pullquote all'interno di questi corpi di contenuto hanno una larghezza massima di 620 pixel.

Le didascalie per gli elementi showcase nei contenuti principali e nei contenitori degli articoli sono posizionate staticamente, occupando l'intera larghezza fino a 620 pixel.

Gli elementi immersivi si estendono per l'intera larghezza del viewport, tenendo conto della barra di scorrimento. Su schermi più grandi (fino a 71.24em), sono limitati a 978 pixel, con il padding delle didascalie adattato a diversi breakpoint. Su schermi medi (da 46.25em a 61.24em), la larghezza massima è di 738 pixel. Su schermi più piccoli (sotto i 46.24em), si allineano al bordo sinistro con margini e padding delle didascalie adattati.

Per i wrapper di arredamento su schermi grandi (61.25em e oltre), viene utilizzato un layout a griglia con colonne e righe definite per il posizionamento dei componenti del titolo.

Gli stili CSS definiscono il layout e l'aspetto per la sezione dell'intestazione di una pagina web, denominata "furniture-wrapper". Impostano bordi, spaziature, tipografia e strutture a griglia che si adattano a diverse dimensioni dello schermo.

Per schermi più grandi (oltre 71.25em), viene stabilito un layout a griglia complesso con colonne e righe specifiche per elementi come il titolo, il titolo principale, le meta informazioni, lo standfirst (sottotitolo) e il ritratto. Elementi visivi come bordi e linee vengono adattati o rimossi a determinati breakpoint. La dimensione del carattere del titolo principale aumenta e la sua larghezza massima cambia su schermi più grandi. I link all'interno dello standfirst sono stilizzati con sottolineature che cambiano colore al passaggio del mouse.

Per schermi più larghi di 740 pixel, nascondi gli elementi con la classe `.keyline-4` o l'attributo `[data-gu-name="lines"]`. All'interno di `.furniture-wrapper`, stilizza i tratti SVG all'interno di questi elementi per utilizzare la variabile di colore `--headerBorder`.

Su schermi più larghi di 740 pixel, rimuovi il margine destro dagli elementi con l'ID `#meta` o l'attributo `[data-gu-name="meta"]` all'interno di `.furniture-wrapper`. Per questi elementi meta, imposta il colore del bordo dei link sociali, delle sezioni di commento e dei loro span figli su `--headerBorder`. Inoltre, nascondi eventuali componenti `gu-island` all'interno di `.content__meta-container_dcr`.

Per la sezione standfirst (selezionata per classe, ID o `data-gu-name`), applica un margine sinistro negativo e un padding corrispondente, e imposta la sua posizione su relativa. Su schermi più larghi (oltre 740px), aggiungi un piccolo padding superiore. Stilizza i paragrafi all'interno dello standfirst con un peso del carattere di 400, una dimensione di 20 pixel e un padding inferiore di 14 pixel.

L'area media principale (selezionata per ID o `data-gu-name`) è posizionata in modo relativo, non ha margine superiore, ha un piccolo margine inferiore ed è posizionata nell'area della griglia "portrait". Assicurati che i suoi div interni occupino l'intera larghezza e non abbiano margine orizzontale. Su schermi molto larghi (oltre 980px), rimuovi il margine inferiore. Su schermi più piccoli (sotto i 740px), imposta la sua larghezza alla larghezza completa del viewport meno eventuali barre di scorrimento e applica un margine sinistro negativo. Per schermi tra 480px e 740px, aumenta questo margine sinistro negativo a -20px.

Stilizza le didascalie delle figure per essere posizionate in modo assoluto in basso, con padding e colori di sfondo/testo specifici dalle variabili CSS. Imposta la loro larghezza al 100% senza larghezza massima, rimuovi il margine inferiore e imposta un'altezza minima. Colora gli span all'interno della didascalia utilizzando `--headerBorder` e riempi i loro SVG con lo stesso colore. Nascondi il primo span e visualizza il secondo span come elemento a blocco, limitando la sua larghezza al 90%. Su schermi più larghi di 480px, aumenta il padding orizzontale della didascalia. Una classe `.hidden` sulla didascalia imposta la sua opacità a 0.

Il pulsante della didascalia viene visualizzato come blocco, posizionato in modo assoluto vicino all'angolo in basso a destra, con un alto z-index. Ha uno sfondo circolare, nessun bordo e un padding specifico. Riduci leggermente le dimensioni della sua icona SVG. Su schermi più larghi di 480px, adatta la sua posizione destra. Per schermi molto larghi (oltre 1140px), adatta la parte superiore e l'altezza dello pseudo-elemento `.content__main-column--interactive`. Inoltre, limita la larghezza massima degli elementi h2 all'interno di questa colonna a 620 pixel.

Per l'elemento radice quando il corpo ha una classe `.ios` o `.android`, definisci un insieme di variabili di colore per la modalità scura. In una preferenza di schema di colore scuro, aggiorna la variabile `--new-pillar-colour` di conseguenza.

Sui dispositivi iOS, indirizza il primo paragrafo dopo elementi iniziali specifici in vari contenitori di articoli e stilizza la loro prima lettera. Questo si applica anche se un elemento gate di accesso appare tra quel primo elemento e il paragrafo.

La prima lettera del primo paragrafo dopo un gate di accesso, o dopo un elemento atomico seguito da un gate di accesso, dovrebbe essere colorata utilizzando la variabile del pilastro secondario. Questo si applica ai contenitori di articoli di feature, standard e commenti sia su iOS che su Android.

Su iOS e Android, l'altezza dell'intestazione dell'articolo dovrebbe essere impostata a zero nei contenitori di articoli di feature, standard e commenti.

Il wrapper di arredamento in questi contenitori dovrebbe avere un padding superiore di 4 pixel e un padding orizzontale di 10 pixel. Le etichette dei contenuti all'interno dovrebbero utilizzare una famiglia di caratteri serif in grassetto, essere colorate con la nuova variabile del pilastro e avere il testo in maiuscolo.

I titoli all'interno del wrapper di arredamento dovrebbero essere di 32 pixel, in grassetto, avere un padding inferiore di 12 pixel e utilizzare il colore #121212.

Gli elementi immagine all'interno del wrapper di arredamento dovrebbero essere posizionati in modo relativo, avere un margine superiore di 14 pixel, un margine sinistro di -10 pixel, una larghezza calcolata come la larghezza del viewport meno la larghezza della barra di scorrimento e un'altezza automatica. Questo si applica alla figura interna, all'immagine e agli elementi link all'interno dei contenitori di articoli di feature su iOS.

Per i dispositivi iOS e Android, le immagini all'interno dei contenitori degli articoli sono impostate per avere uno sfondo trasparente, con una larghezza pari all'intera larghezza del viewport meno la larghezza della barra di scorrimento e un'altezza automatica.

La sezione standfirst in questi contenitori ha un padding superiore di 4 pixel, un padding inferiore di 24 pixel e un margine destro di -10 pixel.

I paragrafi all'interno dello standfirst utilizzano la famiglia di caratteri Guardian Headline.

I link all'interno dello standfirst sono stilizzati con un colore specifico, una sottolineatura posizionata a 6 pixel dal testo e un colore della linea decorativa, senza bordo.

Per i dispositivi Android, quando si passa il mouse sui