L'arte dello stile dei dropcap esiste da centinaia, se non migliaia di anni. Il suo utilizzo negli stili di stampa per indicare l'inizio di una nuova sezione o capitolo può essere visto attraverso la storia. Ma lo stile è sempre stato problematico nell'era digitale. Non c'è stata una "pulizia" una soluzione per l'applicazione di stili.
La proprietà CSS initial-letter
renderà le cose molto più facili.
Supporto browser
Dove puoi provare initial-letter
? È disponibile in Safari e da Chrome 110. In Safari, la proprietà deve avere il prefisso -webkit-
. Esiste un problema aperto da implementare in Firefox.
Testa l'assistenza initial-letter
con:
@supports (initial-letter: 1 1) { /* Your supported styles */ }
Soluzioni attuali
Come potresti definire lo stile di un drop Cap in CSS oggi?
Lo pseudo-elemento ::first-letter
ci fa strada.
p::first-letter {
color: hsl(220, 94%, 51%);
font-weight: bold;
font-size: 4rem;
}
ma probabilmente devi raggiungere proprietà come "float" mentre calcola la dimensione per quella prima lettera.
p::first-letter {
color: hsl(220, 94%, 51%);
font-weight: bold;
font-size: 4rem;
float: left;
line-height: 1;
margin-right: 0.25rem;
}
L'introduzione di nuove unità CSS come lh
potrebbe alleviare alcune di queste difficoltà. Tuttavia, anche questi hanno un supporto limitato (al momento lh
è supportato solo in Chrome).
p::first-letter {
color: hsl(220, 94%, 51%);
font-weight: bold;
font-size: 3lh;
float: left;
line-height: 1;
margin-right: 0.1lh;
}
Introduzione alla lettera iniziale
La proprietà initial-letter
ti consente di avere un controllo più preciso sullo stile dei copricapo. Richiede due valori separati da spazi:
p::first-letter {
initial-letter: 3.5 3;
}
- Il primo argomento definisce la dimensione della lettera e quante righe occuperà. La lettera verrà ridimensionata mantenendo le proporzioni. Non puoi utilizzare un valore negativo, ma puoi utilizzare valori decimali.
- Il secondo argomento definisce il sink in lettere. Può essere considerato come l'offset in cui si troverà la lettera. Il secondo valore è facoltativo e non può essere negativo. Se non è presente, presuppone il valore della dimensione in lettere arrotondata al numero intero più vicino. Equivale a utilizzare la parola chiave "abbassa". Il sink accetta anche un altro valore della parola chiave, "raise", che equivale a un sink di 1.
Guarda questa demo in cui puoi modificare i valori per vedere come influiscono sullo stile delle cappelliere.
Combinalo con ::first-line
e potresti ottenere qualcosa di simile a questo.
p::first-line {
font-variant: small-caps;
font-weight: bold;
font-size: 1.25rem;
}
p::first-letter {
font-family: "Merriweather", serif;
initial-letter: 3.5 3;
font-weight: bold;
line-height: 1;
margin-right: 1rem;
color: #3b5bdb;
text-shadow: 0.25rem 0.25rem #be4bdb;
}
In alternativa, assegnagli un border
. Nota come nell'esempio seguente viene utilizzata la parola chiave "drop", che sarebbe quella predefinita se omessa ed equivale a 3:
css
p::first-letter {
font-family: "Merriweather", serif;
initial-letter: 3.5 drop;
font-weight: bold;
line-height: 1;
margin-right: 1rem;
color: #3b5bdb;
border: 0.25rem dashed #be4bdb;
padding: 0.5rem;
border-radius: 5px;
}
Magari aggiungi un background
o un box-shadow
:
p::first-letter {
font-family: "Merriweather", serif;
initial-letter: 3.5 3;
font-weight: bold;
line-height: 1;
margin-right: 1rem;
color: var(--surface-1);
background: #be4bdb;
padding: 0.5rem;
border-radius: 5px;
box-shadow: 0.5rem 0.5rem 0 #3b5bdb;
}
Oppure ritaglia lo sfondo nel testo:
p::first-letter {
background: linear-gradient(to bottom right,#1f005c,#5b0060,#870160,#ac255e,#ca485c,#e16b5c,#f39060,#ffb56b);
font-family: "Merriweather", serif;
initial-letter: 3.5 3;
font-weight: bold;
line-height: 1;
margin-right: 1rem;
color: transparent;
-webkit-background-clip: text;
padding: 0.5rem;
}
Ci sono tantissime possibilità!
Ed ecco qui: più controllo sullo stile delle cappelliere con initial-letter
. aggiungeresti i cappellini alla tua stampa tipografica? Come potresti personalizzarli? Facci sapere.