A contradição da redefinição de CSS – SitePoint


Nosso campo (de desenvolvimento web e frontend) tem usado redefinições – que para simplificar aqui incluem “reinicializações” e “normalizadores” – há cerca de 20 anos. Digo “sobre” porque parece Tantek Çelik tudo começou em 2004 (onde você também encontra a sua), mas outros autores podem ter usado técnicas semelhantes ainda antes.

Instalações

As redefinições de CSS são baseadas em três premissas:

  1. Existem diferenças na forma como os agentes do usuário apresentam as páginas da web, ou seja, suas os estilos padrão variam.
  2. Essas diferenças afetam um determinado site.
  3. As diferenças são importantes para serem tratadas.

Deveria ser óbvio dizer que se – ou uma vez – todos os agentes de usuário lidarem com CSS da mesma maneira, não haverá necessidade de redefinição de CSS.

Também deveria ser óbvio que, se as diferenças não se aplicarem, também não há necessidade de redefinir o CSS. Por exemplo, as diferenças de estilo de formulário não importam em sites sem formulário.

E – muitos argumentos têm desnecessariamente dividido sobre isso – também significa que se as diferenças não forem consideradas importantes o suficiente, também não há necessidade de redefinir o CSS.

Acredito que o que vimos ao longo dos últimos 20 anos é que nem todos os autores prestaram atenção se as diferenças de estilo entre os agentes de usuário os afetavam e se as diferenças realmente importavam.

Mas também existem outros problemas.

Realidade

Para usuários de redefinição de CSS, a realidade é que eles sentem necessidade de usar uma redefinição de CSS. É possível (e também provável) que existam usuários de redefinição de CSS que não se sintam assim e usem uma redefinição de CSS porque precisam ou porque se sentem mais seguros ao usá-los. Na prática, porém, usar uma redefinição de CSS também faz parte da realidade deles.

O que os usuários de redefinição de CSS não percebem é que existe outra realidade, ou seja, a dos desenvolvedores e proprietários de sites que fazem não use redefinições de CSS.

Isto é explicável pelas premissas delineadas anteriormente, mas é interessante por duas razões.

  1. O fato de existirem sites e aplicativos que não usam e que funcionam bem sem uma redefinição de CSS é praticamente nunca sendo falado no contexto de redefinições de CSS.
  2. Quando assumimos as posições extremas de sempre e nunca precisarmos de um reset de CSS, posições que observamos na prática, então acabamos numa contradição. P&¬P. *

Embora as premissas permitam conciliar a contradição, o problema persiste: em nosso discurso sobre redefinições de CSS, ninguém parece admitir que existem sites que funcionam sem redefinições – algo que fundamentalmente desafia e contradiz a noção “fundamentalista” de CSS de que eles sempre foram necessário. Isso simplesmente não é verdade nem útil.

Isso é tudo, entretanto? Não:

Conveniência

As redefinições de CSS se tornaram uma forma de mercadoria. Há muitos deles (uma pesquisa mostra mais variedade do que a melhor coleção que pude encontrar) e eles estão sendo incorporados em algumas estruturas HTML/CSS e até mesmo JS.

Isso torna mais fácil para os desenvolvedores esquecerem as premissas e assumirem uma necessidade geral de redefinições de CSS.

O que pudemos observar há muito tempo, portanto, é que as pessoas pararam de questionar o uso de redefinições, mesmo quando eles podem não ter efeito.

Consequências

Semelhante a os efeitos do envio de HTML inválido e de fantasiatudo isso está prejudicando a arte do desenvolvimento de front-end.

Quais são as nossas opções?

Primeiro, precisamos ser claros sobre as premissas por trás das redefinições de CSS e incluí-las em nossas discussões. Isto permitirá menos calor no discurso, mas também melhores decisões.

Em segundo lugar, precisamos fazer verificações da realidade. Existem muitos sites e aplicativos por aí que não usam redefinição de CSS e funcionam perfeitamente bem em todos os agentes de usuário. Isso faz parte da nossa realidade e, dada a pegada de desempenho e manutenção de algumas redefinições de CSS, é uma realidade à qual vale a pena prestar atenção.

Terceiro, precisamos desafiar uns aos outros e, talvez mais importante, a nós mesmos. Buscar a conveniência parece natural, mas é importante ter clareza sobre as consequências – a conveniência leva facilmente à complacência, ao dogma e, eventualmente, à ignorância. É útil tornar a vida do nosso desenvolvedor um pouco difícil.

Quando fizermos tudo isso, deveremos chegar onde poderíamos ter chegado há 20 anos – um lugar onde façamos muito uso seletivo de redefinições personalizadas, provavelmente apenas em ambientes de alta complexidade técnica ou de grande diversidade na antiguidade do desenvolvedor. Mas isso é especulação, sobre um presente que não temos.

O título foi intencionalmente deixado incompleto.

Muito obrigado a Miriam Suzanne e Jad Joubran por revisar esta postagem.



Source link