Controle seus limites com a letra inicial CSS

A arte de estilizar cabeçalhos existe há centenas ou até milhares de anos. Seu uso em estilos de impressão para indicar o início de uma nova seção ou capítulo pode ser visto ao longo do histórico. No entanto, o estilo na era digital sempre foi um problema. Não houve uma posição "limpo" solução para estilizá-los.

A propriedade CSS initial-letter (link em inglês) facilitará muito o processo.

Suporte ao navegador

Onde você pode testar o initial-letter? Ele está disponível no Safari e no Chrome 110. No Safari, a propriedade precisa do prefixo -webkit-. Há um problema em aberto para que ela seja implementada no Firefox.

Teste o suporte a initial-letter com:

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

Soluções atuais

Como você pode estilizar um limite de queda no CSS hoje?

O pseudoelemento ::first-letter nos faz parte do caminho.

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

Mas você provavelmente precisa alcançar propriedades como "float" ao calcular o tamanho da primeira letra.

p::first-letter {
  color: hsl(220, 94%, 51%);
  font-weight: bold;
  font-size: 4rem;
  float: left;
  line-height: 1;
  margin-right: 0.25rem;
}
(link em inglês)

O lançamento de novas unidades CSS, como lh, pode facilitar um pouco esse trabalho. No entanto, eles também têm suporte limitado (lh só é compatível com o Chrome no momento).

p::first-letter {
  color: hsl(220, 94%, 51%);
  font-weight: bold;
  font-size: 3lh;
  float: left;
  line-height: 1;
  margin-right: 0.1lh;
}
(link em inglês)

Apresentação da letra inicial

A propriedade initial-letter oferece um controle mais preciso sobre esse estilo de limite de queda. Ele usa dois valores separados por espaços:

p::first-letter {
  initial-letter: 3.5 3;
}
  • O primeiro argumento define o tamanho da letra e quantas linhas ela vai ocupar. A letra será ampliada mantendo a proporção. Não é possível usar um valor negativo, mas é possível usar valores decimais.
  • O segundo argumento define o coletor de letras. Pode ser considerado o deslocamento do local onde a letra será colocada. O segundo valor é opcional e não pode ser negativo. Se não estiver presente, ele pressupõe o valor do tamanho da letra no mínimo para o número inteiro mais próximo. Isso equivale a usar a palavra-chave "drop". O coletor também aceita outro valor de palavra-chave, "raise", que equivale a um coletor de 1.

Confira esta demonstração em que você pode alterar os valores para ver como isso afeta o estilo do limite de soltar.

Combine-a com ::first-line para criar algo assim.

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

Ou talvez dê um border. Observe como o exemplo a seguir usa a palavra-chave “drop”, que seria o padrão se omitida e 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; }

Talvez você adicione uma background ou alguma 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;
}

Ou corte o plano de fundo no texto:

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

Você tem muitas possibilidades!

Pronto! Um controle mais preciso sobre a estilização da borda com o initial-letter! Você adicionaria letras maiúsculas à tipografia? Como você pode estilizá-los? Conte para nós.