Há cerca de 15 anos, eu trabalhava em uma empresa onde desenvolvíamos aplicativos para agentes de viagens, funcionários de aeroportos e companhias aéreas. Também construímos nossa própria estrutura interna para componentes de UI e recursos de aplicativos de página única. Tínhamos componentes para tudo: campos, botões, guias, intervalos, tabelas de dados, menus, selecionadores de data, seleções e seleções múltiplas. Tínhamos até um componente div. A propósito, nosso componente div era ótimo, nos permitia fazer cantos arredondados em todos os navegadores, o que, acredite ou não, não era uma coisa fácil de fazer na época.

Nosso trabalho ocorreu em um momento de nossa história em que JS, Ajax e HTML dinâmico eram vistos como uma revolução que nos trouxe para o futuro. De repente, podíamos atualizar uma página dinamicamente, obter dados de um servidor e evitar ter que navegar para outras páginas, o que era visto como lento e exibia um grande retângulo branco na tela entre as duas páginas. Havia uma frase, popularizada por Jeff Atwood (o fundador do StackOverflow), que dizia: “Qualquer aplicativo que possa ser escrito em JavaScript acabará sendo escrito em JavaScript.” - Jeff Atwood

Para nós, na época, parecia um desafio realmente criar esses aplicativos. Parecia uma aprovação geral fazer tudo com JS. Então, fizemos tudo com JS e não perdemos tempo pesquisando outras maneiras de fazer as coisas. Não sentimos realmente o incentivo para aprender adequadamente o que HTML e CSS poderiam fazer. Na verdade, não percebíamos a web como uma plataforma de aplicativos em evolução em sua totalidade. Víamos isso principalmente como algo que precisávamos contornar, especialmente quando se tratava de suporte ao navegador. Poderíamos simplesmente adicionar mais JS para fazer as coisas. Reservar um tempo para aprender mais sobre como a web funciona e o que está disponível na plataforma me ajudou? Claro, eu provavelmente poderia ter raspado um monte de código que não era realmente necessário. Mas, na época, talvez não tanto. Veja, as diferenças entre os navegadores eram bastante significativas naquela época. Esta foi uma época em que o Internet Explorer ainda era o navegador dominante, com o Firefox em segundo lugar, mas começando a perder participação de mercado devido ao rápido ganho de popularidade do Chrome. Embora o Chrome e o Firefox fossem muito bons em concordar com os padrões da web, os ambientes em que nossos aplicativos eram executados significavam que precisávamos oferecer suporte ao IE6 por um longo tempo. Mesmo quando tivemos permissão para oferecer suporte ao IE8, ainda tivemos que lidar com muitas diferenças entre os navegadores. Não só isso, mas a web da época simplesmente não tinha tantos recursos integrados à plataforma.

Avanço rápido para hoje. As coisas mudaram tremendamente. Não só temos mais destas capacidades do que nunca, mas a taxa a que se tornam disponíveis também aumentou. Deixe-me fazer a pergunta novamente: dedicar um tempo para aprender mais sobre como a web funciona e o que está disponível na plataforma ajudaria você hoje? Absolutamente sim. Aprender a compreender e usar a plataforma web hoje coloca você em uma enorme vantagem sobre outros desenvolvedores. Quer você trabalhe em desempenho, acessibilidade, capacidade de resposta, todos eles juntos, ou apenas enviando recursos de UI, se quiser fazer isso como um engenheiro responsável, conhecer as ferramentas que estão disponíveis o ajudará a atingir seus objetivos de maneira mais rápida e melhor. Algumas coisas para as quais talvez você não precise mais de uma biblioteca Sabendo o que os navegadores suportam hoje, a questão é: o que podemos abandonar? Precisamos de um componente div para fazer cantos arredondados em 2025? Claro, nós não. A propriedade border-radius é suportada por todos os navegadores usados ​​atualmente há mais de 15 anos. E o formato de canto também chegará em breve, para cantos ainda mais sofisticados. Vamos dar uma olhada nos recursos relativamente recentes que agora estão disponíveis em todos os principais navegadores e que você pode usar para substituir dependências existentes em sua base de código. A questão não é abandonar imediatamente todas as suas bibliotecas amadas e reescrever sua base de código. Quanto a todo o resto, você precisará primeiro levar em consideração o suporte do navegador e decidir com base em outros fatores específicos do seu projeto. Os recursos a seguir são implementados nos três principais mecanismos de navegador (Chromium, WebKit e Gecko), mas você pode ter requisitos de suporte de navegador diferentes que o impedem de usá-los imediatamente. Agora ainda é um bom momento para aprender sobre esses recursos e talvez planejar usá-los em algum momento. Popovers e diálogos A API Popover, o elemento HTML

e o pseudoelemento ::backdrop podem ajudá-lo a se livrar das dependências do pop-up,dica de ferramenta e bibliotecas de diálogo, como Floating UI, Tippy.js, Tether ou React Tooltip. Eles cuidam da acessibilidade e do gerenciamento de foco para você, prontos para uso, são altamente personalizáveis ​​usando CSS e podem ser facilmente animados. Acordeões O elemento
, seu atributo name para elementos mutuamente exclusivos e o pseudoelemento ::details-content eliminam a necessidade de componentes acordeão como o Bootstrap Accordion ou o componente React Accordion. Apenas usar a plataforma aqui significa que será mais fácil para quem conhece HTML/CSS entender seu código sem precisar primeiro aprender a usar uma biblioteca específica. Isso também significa que você está imune a alterações significativas na biblioteca ou à descontinuação dessa biblioteca. E, claro, isso significa menos código para baixar e executar. Elementos de detalhes mutuamente exclusivos não precisam de JS para abrir, fechar ou animar. Sintaxe CSS Camadas em cascata, para uma base de código CSS mais organizada, aninhamento de CSS, para CSS mais compacto, novas funções de cores, cores relativas e mistura de cores, novas funções matemáticas como abs(), sign(), pow() e outras ajudam a reduzir dependências em pré-processadores CSS, bibliotecas de utilitários como Bootstrap e Tailwind, ou até mesmo bibliotecas CSS-in-JS de tempo de execução. A virada de jogo :has(), um dos recursos mais solicitados há muito tempo, elimina a necessidade de soluções mais complicadas baseadas em JS. Utilitários JS Métodos Array modernos como findLast() ou at(), bem como métodos Set como diferença(), intersecção(), união() e outros podem reduzir dependências de bibliotecas como Lodash. Consultas de contêiner As consultas de contêiner fazem com que os componentes da UI respondam a outras coisas além do tamanho da janela de visualização e, portanto, os tornam mais reutilizáveis em diferentes contextos. Não há mais necessidade de usar uma biblioteca de UI pesada em JS para isso, e também não há necessidade de usar um polyfill. Disposição Grid, subgrid, flexbox ou multicoluna já existem há muito tempo, mas olhando os resultados das pesquisas sobre o estado do CSS, fica claro que os desenvolvedores tendem a ser muito cautelosos ao adotar coisas novas e esperar muito tempo antes de fazê-lo. Esses recursos são base há muito tempo e você pode usá-los para se livrar de dependências de coisas como o sistema de grade do Bootstrap, utilitários flexbox do Foundation Framework, grade fixa Bulma, grade Materialize ou colunas Tailwind. Não estou dizendo que você deveria abandonar sua estrutura. Sua equipe o adotou por um motivo, e removê-lo pode ser um grande projeto. Mas observar o que a plataforma da web pode oferecer sem um wrapper de terceiros traz muitos benefícios. Coisas que você talvez não precise mais em um futuro próximo Agora, vamos dar uma olhada rápida em algumas das coisas para as quais você não precisará de uma biblioteca em um futuro próximo. Ou seja, os itens abaixo ainda não estão prontos para adoção em massa, mas estar ciente deles e planejar um possível uso posterior pode ser útil. Posicionamento da âncora O posicionamento da âncora CSS lida com o posicionamento de popovers e dicas de ferramentas em relação a outros elementos e cuida de mantê-los visíveis, mesmo ao mover, rolar ou redimensionar a página. Este é um ótimo complemento para a API Popover mencionada anteriormente, o que tornará ainda mais fácil a migração de soluções JS com maior desempenho. API de navegação A API de navegação pode ser usada para lidar com a navegação em aplicativos de página única e pode ser um ótimo complemento, ou até mesmo um substituto, para tarefas de roteamento React Router, Next.js ou roteamento Angular. Ver API de transições A API View Transitions pode animar entre os diferentes estados de uma página. Em um aplicativo de página única, isso facilita muito as transições suaves entre estados e pode ajudá-lo a se livrar de bibliotecas de animação como Anime.js, GSAP ou Motion.dev. Melhor ainda, a API também pode ser usada com aplicativos de múltiplas páginas. Lembra-se de quando eu disse que o motivo pelo qual construímos aplicativos de página única na empresa onde trabalhei há 15 anos foi para evitar o flash branco das recargas de páginas durante a navegação? Se essa API estivesse disponível na época, teríamos conseguido belos efeitos de transição de página sem uma estrutura de página única e sem um grande download inicial de todo o aplicativo. Animações orientadas por rolagem As animações orientadas por rolagem são executadas na posição de rolagem do usuário, e não ao longo do tempo, o que as torna uma ótima solução para narrativas e tours de produtos. Algumas pessoas exageraram um pouco, mas quando bem usada, pode ser uma ferramenta de design muito eficaz e pode ajudar a se livrar de bibliotecas como: ScrollReveal, GSAP Scroll ouUAU.js. Seleções personalizáveis Uma seleção personalizável é um elemento

No spam. Join 138,000+ creators. Unsubscribe anytime.

Create Your Free Bio Page

Join 138,000+ creators on Seemless.

Get Started Free