Controlla le maiuscole con la lettera iniziale CSS

L'arte di creare le iniziali maiuscole allungate esiste da centinaia, se non migliaia di anni. Il suo utilizzo negli stili di stampa per indicare l'inizio di una nuova sezione o di un nuovo capitolo è ben documentato. Tuttavia, creare uno stile nell'era digitale è sempre stato problematico. Non esiste una soluzione "pulita" per applicare lo stile.

La proprietà CSS initial-letter semplifica molto le cose.

Supporto browser

Dove puoi provare initial-letter? È disponibile in Safari e da Chrome 110. In Safari, la proprietà richiede il prefisso -webkit-. Esiste un problema aperto per l'implementazione in Firefox.

Testa il supporto di initial-letter con:

@supports (initial-letter: 1 1) { /* Your supported styles */ }

Soluzioni attuali

Come potresti applicare uno stile a una lettera maiuscola iniziale in CSS oggi?

Lo pseudo-elemento ::first-letter ci fa parte.

p::first-letter {
  color: hsl(220, 94%, 51%);
  font-weight: bold;
  font-size: 4rem;
}

Tuttavia, è probabile che tu debba utilizzare proprietà come "float" e calcolare la dimensione della 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 semplificare un po' la situazione. Tuttavia, anche queste hanno un'assistenza limitata (lh è attualmente 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 di iniziale-lettera

La proprietà initial-letter ti offre un maggiore controllo su questo stile di iniziali maiuscole. 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 l'output delle 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, si presume che il valore per il formato del carattere sia arrotondato per difetto al numero intero più vicino. Questo è equivalente all'utilizzo della parola chiave "drop". Il sink accetta anche un altro valore della parola chiave, "raise", che è equivalente a un sink di 1.

Dai un'occhiata a questa demo in cui puoi modificare i valori per vedere in che modo influiscono sullo stile della lettera iniziale.

Se la combini con ::first-line, puoi ottenere qualcosa di simile

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;
}

Oppure, dai un border. Nota come il seguente esempio utilizza la parola chiave "drop", che sarebbe il valore predefinito se omessa e corrisponde 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; }

Aggiungi un background o alcuni 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;
}

In alternativa, ritaglia lo sfondo in base al 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 moltissime possibilità.

Ecco fatto, ora hai un maggiore controllo sullo stile delle lettere iniziali maiuscole con initial-letter. Aggiungi iniziali maiuscole alla tua tipografia? Come potresti acconciarli? Facci sapere.