O CSS está crescendo em escopo e poder a cada ano que passa. É um ótimo momento para ser um desenvolvedor da Web, mas pode ser um desafio manter-se atualizado com os recursos mais recentes.

CSS não tem versões definidas como JavaScript. Então, como você descobre quais são os recursos mais recentes?

O World Wide Web Consortium (W3C) produz um instantâneo anual que contém todas as especificações atuais em um único documento. Infelizmente, não especifica o que há de novo. Você precisa ler cada uma das especificações para ver o que mudou. E quem quer fazer isso? Eu não!

Cabe aos fornecedores do navegador implementar os recursos descritos nas especificações. Eles agem de forma independente para decidir quando irão implementar os recursos. Eles têm seus próprios roteiros, portanto, tendem a fazê-lo em momentos diferentes. Em um mundo ideal, haveria uma fonte unificada para seguir isso, mas agora, não há.

Para evitar problemas, reuni os principais recursos que foram adicionados a pelo menos um navegador no ano passado ou mais.

Gradientes cônicos

A função gradiente cônico pode ser usada para criar uma gama interessante de padrões de imagem, como formas cônicas, gráficos de pizza, rodas de cores e superfícies brilhantes.

Gradientes cônicos giram os interruptores de cor em torno de um ponto central (em vez de irradiar de um ponto central como um gradiente radial). Os interruptores de cor gradiente cônico são colocados em torno da circunferência de um círculo.

Cônico Vis gradiente ual Explicação

Para criar um gráfico de pizza, usamos interrupções de cor que se sobrepõem (têm transições abruptas).

Gráfico circular

.pie-chart { fundo: gradiente cônico (vermelho 120deg, verde 120deg 240deg, azul 240deg);
}

A função repeating-conic-gradient () oferece a possibilidade de criar padrões de repetição impressionantes com uma pequena lista de parâmetros.

Sunburst

.sunburst { fundo: gradiente cônico de repetição (vermelho 0 15g, vermelho escuro 0 30grau);
}

Você pode ver mais exemplos neste código .

Suporte ao navegador

CSS Conical Gradient Browser Support Table

Leituras adicionais

Se quiser saber mais, você pode verificar os seguintes recursos.

O recurso de proporção

Outro novo recurso é a proporção, que é a relação proporcional entre largura e altura. Manter uma proporção consistente é importante na criação de layouts responsivos e para evitar mudança cumulativa de layout (a web vital performance metric ).

Alguns exemplos de onde a proporção da imagem é geralmente usada:

  • Criação de contêineres de espaço reservado para conteúdo que será carregado
  • Criação de componentes consistentes e de tamanho uniforme, como cartões
  • Criação de iframes responsivos

Esta propriedade permite você deve corrigir a proporção de aspecto em qualquer elemento . Imagens e vídeos têm uma proporção intrínseca, mas outros elementos não.

A sintaxe é muito simples. O valor é: a proporção da largura, uma barra e a proporção da altura.

.widescreen { proporção da imagem: 16/9;
}

É importante observar que os elementos não respeitarão a proporção da imagem se altura e largura forem definidas para um elemento.

Ver a caneta
proporção da imagem (apenas Chrome)
por Rob ( @robjoeol )
em CodePen .

Você pode começar a usar a propriedade imediatamente e usar a consulta de recurso para fornecer um substituto, como abaixo.

.standard { proporção da imagem: 4/3;
} @suporta não (proporção: 4/3) { .padrão { largura: 16rem; altura: 9rem; }
}

Suporte ao navegador

Tabela de proporções da propriedade CSS

Leituras adicionais

Se quiser saber mais, você pode verificar os seguintes recursos.

Propriedade de visibilidade do conteúdo

A propriedade content-visibility é uma nova propriedade CSS que pode melhorar o desempenho de renderização da página. Ele permite que o navegador ignore o trabalho de renderização de um elemento até que seja necessário (quando um elemento está à vista). Se uma grande parte do seu conteúdo estiver fora da tela, o uso dessa propriedade pode reduzir drasticamente o tempo de carregamento inicial de uma página.

Colher os benefícios da visibilidade do conteúdo requer que você considere qual conteúdo deve ser carregado inicialmente e qual conteúdo pode ser potencialmente adiado. A propriedade tem uma opção auto que permite ao navegador decidir se pode pular a renderização de um elemento.

Existem algumas considerações importantes ao usar essa propriedade, como:

  • A altura da página: o navegador tornará um elemento com content-visibility: auto ou content-visibility: hidden invisível tornando sua height zero até que seja renderizado. Isso altera a altura da página e a rolagem. Você pode usar a propriedade contain-intrinsic-size para fornecer uma altura explícita para o elemento para compensar isso, é provável que seja uma suposição de sua parte, mas você não precisa ser exato! Orkan discute esse tópico em este artigo .
  • O impacto na acessibilidade: se você estiver usando content-visibility em uma seção que tenha títulos e pontos de referência, os leitores de tela não conseguirão acessá-los quando a página carregar. Infelizmente, isso degrada a acessibilidade do seu conteúdo. Marcy Sutton discute esse caso de uso para uma solicitação pull recente que ela analisou para Dev.to .

Suporte ao navegador

CSS Content Visibility Browser Support Table

Leitura adicional

Se quiser saber mais, você pode verificar os seguintes recursos.

Propriedades lógicas

As propriedades lógicas são modo de escrita equivalentes de propriedades físicas. Eles oferecem uma maneira de descrever o layout das páginas da web em um vocabulário universal que não é ambíguo em diferentes idiomas.

Por exemplo, você usaria margin-block-start em vez de margin-left para texto da esquerda para a direita.

Layouts de página da web
Crédito da imagem- Web.dev

Adam Argyle tem um jeito legal de descrevendo propriedades lógicas:

Uma propriedade lógica é aquela que faz referência a um lado, canto ou eixo do modelo de caixa no contexto da direção do idioma aplicável. É o mesmo que fazer referência ao braço forte de alguém, em vez de presumir que é o braço certo de alguém. “Certo” é uma referência de braço físico, “forte” é uma referência de braço lógico, contextual para o indivíduo.

As propriedades lógicas já existem há algum tempo, mas o suporte era mínimo na maioria dos navegadores. Agora, o suporte é muito melhor em todas as áreas.

No entanto, algumas versões abreviadas de propriedades ainda são consideradas experimentais. Até que essas propriedades sejam amplamente suportadas, é complicado usar propriedades lógicas no atacado. Elad Schether discute este tópico em seu artigo .

Mais progresso foi feito desde que ele escreveu aquele artigo (as propriedades abreviadas não foram implementadas quando ele escreveu o artigo), mas ainda não chegamos lá para apostar tudo!

Suporte ao navegador

  • Agora, as propriedades lógicas para margem , borda e preenchimento são suportados em todos os principais navegadores . Versões abreviadas dessas propriedades estão disponíveis como recursos experimentais. As propriedades lógicas das bordas estão pendentes na maioria dos navegadores.

CS Tabela de propriedades lógicas

Leitura adicional

Se quiser saber mais, você pode verificar os seguintes recursos.

CSS Subgrid

O CSS Subgrid torna vários padrões de layout difíceis muito mais simples de serem executados. É a cereja no topo do CSS Grid bolo.

Se você já conhece a grade CSS, não exigirá muito esforço para aprender a subgrid CSS. A nova sintaxe é curta e agradável.

Conceitualmente, uma grade definida como uma subgrid é praticamente igual a uma grade aninhada regular, mas compartilha as trilhas da grade pai. A recompensa é que ele fornece uma maneira de alinhar uma grade aninhada com sua grade pai.

Um exemplo comum seria um layout de cartão com diferentes seções. Essas seções podem variar em tamanho, dependendo do conteúdo. Com uma grade aninhada regular, você não pode manter o alinhamento vertical das mesmas seções entre cartões diferentes (veja abaixo).

Seções de grade aninhadas não verticalmente alinhadas

.container { display: grade; colunas do modelo de grade: repetir (2, 1fr); gap: 20px;
} .card { display: grade;
}

Subgrid Seções Ver Alinhado tipicamente

Se mudarmos o cartão para ser uma subgrade, podemos obter as seções perfeitamente alinhadas verticalmente.

.card { display: grade; grid-template-rows: subgrid; linha de grade: auto/span 3;
}

Você pode começar a usar a propriedade imediatamente e usar uma consulta de recurso para fornecer um substituto para qualquer navegador que não seja compatível.

 @supports not (grid-template-rows: subgrid) { .card { /*.. layout alternativo */ }
}

Você pode explorar o exemplo acima neste código .

Suporte ao navegador

Suporte ao navegador CSS Subgrid Tabela

Leitura adicional

Se quiser saber mais, você pode verificar os seguintes recursos.

A função cor

A função color () permite que uma cor seja especificada em um determinado espaço de cores , em vez do espaço de cores sRGB implícito em que a maioria das outras funções de cores operam. Isso permitirá que os desenvolvedores da web especifiquem uma gama muito maior de cores daqui para frente.

Dispositivos físicos reais ainda não podem produzir todas as cores possíveis que o olho humano pode ver. A gama de cores que um determinado dispositivo pode produzir é denominada gama. As gamas de diferentes espaços de cores podem ser comparadas observando-se o volume (em unidades cúbicas de laboratório) de cores que podem ser expressas. A tabela a seguir mostra os espaços de cores predefinidos disponíveis em CSS.

Espaço de cor Volume (milhões de unidades de laboratório)
sRGB 0,820
display-p3 1,233
a98-rgb 1,310
prophoto-rgb 2,896
rec2020 2.042
laboratório 6,578

A conclusão é que display-p3 é cerca de 35% maior do que sRGB. Muitos monitores modernos cobrem 100% do espaço de cores do display-p3 agora.

Você pode começar a usar a função de cor imediatamente e fornecer uma cor sRGB compatível com versões anteriores por meio de uma consulta de recurso conforme abaixo.

/* cor sRGB. */
:raiz { --verde-claro: rgb (0, 255, 0);
} /* Display-p3 color, quando suportado. */
@supports (color: color (display-p3 1 1 1)) { :raiz { --verde-claro: cor (display-p3 0 1 0); }
} header { cor: var (-verde-claro);
}

Suporte ao navegador

CSS Color Function Browser Support Table

Further Reading

If you want to learn more, you can check out the following resources.

URL Scroll-To-Text Fragments

This is a HTML feature, really, but I will include it here, otherwise you might not hear about it at all soon!

Scroll-to-text fragments (also known as text fragments) append a text query to a URL. Upon clicking the link, the browser finds the text in the webpage, scrolls it into view, and highlights the matched text. They enable links to specify which portion of the page is being linked to, without relying on the page-author annotating the page with id attributes.

The fragment format is: #:~:text=\[prefix-,]textStart[,textEnd\][,-suffix].

Here is a simple example you can test in your browser.

Scroll-to-text Fragment on Wikipedia

You can begin using scroll-to-text fragments immediately without any ill-effects in browsers that do not support them.

Browser Support

URL Scroll-to-text Fragment Browser Support Table

Further Reading

If you want to learn more, you can check out the following resources.

Conclusão

I hope this article has given you a clear overview of the latest major CSS features to make it to browsers, and identified clear use cases for them. In the age of evergreen browsers and feature queries, there are no barriers to adopting new features early. The challenge is to know what new features have actually landed in browsers, finding the time to learn about them, and making them part of your web design arsenal over time. I hope the web community can find a better way to publicize this information in the future.

The post The latest features of CSS in 2021 appeared first on LogRocket Blog.

Source link