Controlla le maiuscole con la lettera iniziale CSS

L'arte di definire i camini è in circolazione 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 può essere visto nel corso della storia. Tuttavia, nell'era digitale è sempre stato problematico lo stile. ma non c'è stata una soluzione "pulita" per personalizzarli.

La proprietà CSS initial-letter renderà il tutto molto più semplice.

Supporto del browser

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

Testa l'assistenza per initial-letter con:

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

Soluzioni attuali

Come potresti definire una quota limite in CSS oggi?

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

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

Tuttavia, probabilmente dovrai raggiungere proprietà come "float" mentre calcoli una dimensione per la 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 questo problema. Tuttavia, anche questi dispositivi sono supportati in modo 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 offre un controllo più preciso sullo stile di questa limitazione. Sono necessari due valori separati da spazi:

p::first-letter {
  initial-letter: 3.5 3;
}
  • Il primo argomento definisce le dimensioni della lettera e il numero di righe che occuperà. La lettera verrà ingrandita mantenendo le proporzioni. Non puoi utilizzare un valore negativo, ma puoi usare valori decimali.
  • Il secondo argomento definisce il sink di lettere. Può essere considerato come l'offset per la posizione della lettera. Il secondo valore è facoltativo e non può essere negativo. Se non è presente, si presume che il valore della dimensione in lettere arrotondati al numero intero più vicino si basi sul valore minimo. Equivale a utilizzare la parola chiave "drop". Il sink accetta anche un altro valore della parola chiave, "raise", che equivale a un sink di 1.

Dai un'occhiata a questa demo in cui puoi modificare i valori per vedere come influiscono sullo stile della capote.

In combinazione con ::first-line, 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;
}

Puoi anche assegnare un border. Nell'esempio seguente viene utilizzata la parola chiave "drop", che è quella predefinita 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 qualche 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 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;
}

Hai a disposizione molte possibilità.

Ed ecco un controllo più preciso sullo stile della caduta con initial-letter. Aggiungeresti le maiuscole alla tua tipografia? Come potresti stile? Facci sapere.