Controlla le maiuscole con la lettera iniziale CSS

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.