Tailwind CSS Chegou ao Hacker News, e a Reação Negativa Expõe uma Escolha Real
- Sophie Larsen

- 3 de ago.
- 15 min de leitura
Tailwind CSS desencadeou mais uma discussão acalorada no Hacker News depois que um desenvolvedor publicou uma recomendação direta contra seu uso. A publicação alcançou 108 pontos e gerou 111 comentários, transformando uma preferência pessoal de fluxo de trabalho em um debate mais amplo sobre arquitetura frontend.
A discordância não se resume a se atributos de classe longos parecem feios. Ela diz respeito a onde o conhecimento de estilização deve ficar, como as equipes reconhecem padrões reutilizáveis e o que acontece quando o código dos componentes se torna o principal lugar das decisões de design.
Tailwind privilegia pequenas classes utilitárias inseridas diretamente no markup. O CSS tradicional privilegia seletores que descrevem componentes ou a estrutura do documento. Ambas as abordagens podem gerar software sustentável, mas distribuem a complexidade de formas diferentes. Essa distinção importa mais do que qualquer alegação de que um dos lados finalmente resolveu o CSS.
Por que o Debate sobre Tailwind CSS Voltou ao Hacker News
A nova publicação não revelou um defeito técnico desconhecido. Ela deu aos desenvolvedores mais um motivo concreto para revisitar uma escolha arquitetural ainda não resolvida.
O artigo de origem, intitulado “I don’t recommend”, argumenta contra tornar Tailwind CSS a escolha padrão. Sua aparição no Hacker News atraiu 111 comentários, segundo a captura da página inicial.
Esse nível de discussão é notável porque Tailwind já não é uma ferramenta experimental em busca de reconhecimento. Ele é uma parte consolidada do ecossistema frontend, com ampla documentação, integrações, templates e bibliotecas de componentes.
Os desenvolvedores já entendem sua proposta central. Em vez de criar uma classe como profile-card, eles combinam utilitários como flex, gap-4, rounded-lg e p-6 dentro do elemento relevante.
O Tailwind então analisa os arquivos do projeto e gera CSS para os nomes de classes detectados. Seu sistema de detecção de fontes trata os arquivos como texto e procura tokens semelhantes a utilitários conhecidos.
Esse modelo substitui um problema de nomenclatura por um problema de composição. Os desenvolvedores escrevem menos seletores personalizados, mas precisam montar regras visuais a partir do vocabulário do Tailwind.
O benefício imediato é a velocidade. Um desenvolvedor pode alterar espaçamento, cor, alinhamento, tipografia ou comportamento responsivo sem alternar entre o markup e uma folha de estilos separada.
O custo se torna visível quando essas escolhas se acumulam. Um componente modesto pode carregar uma longa sequência de utilitários, variantes de estado, breakpoints, regras de modo escuro e valores arbitrários.
Nenhuma das observações encerra o debate. Listas longas de classes não são automaticamente impossíveis de manter, assim como nomes de classe semânticos e concisos não garantem um CSS sensato.
A discordância persiste porque as equipes avaliam modos de falha diferentes. Usuários do Tailwind frequentemente temem alterações no CSS global, colisões de seletores, declarações não utilizadas e o esforço de inventar nomes. Críticos temem templates ruidosos, regras de apresentação repetidas, conhecimento específico do framework e uma separação mais fraca entre estrutura e aparência.
Esses riscos surgem em estágios diferentes. As vantagens do Tailwind são imediatas durante a implementação. Seus custos frequentemente aparecem durante revisão, redesign, migração ou manutenção por alguém que não conhece o componente.
O CSS tradicional apresenta o perfil inverso. Os desenvolvedores investem antes em nomenclatura e organização, enquanto mudanças posteriores podem se tornar mais fáceis se as abstrações representarem corretamente o produto.
A resposta no Hacker News, portanto, reflete mais do que a resistência habitual a um framework popular. Ela expõe uma questão recorrente de engenharia: uma equipe deve otimizar a velocidade de criar um componente ou a clareza de alterar um sistema?
Essa questão se tornou mais relevante à medida que o desenvolvimento frontend fica cada vez mais orientado a componentes. React, Vue, Svelte e sistemas semelhantes já colocam markup e comportamento no mesmo lugar. Tailwind pede às equipes que coloquem a maior parte da apresentação ali também.
Esse arranjo pode parecer coerente quando um componente controla sua estrutura, comportamento e estilização. Também pode transformar o componente em um pacote denso que exige análise cuidadosa antes que seu propósito fique claro.
A controvérsia voltou porque ambas as experiências são reais. Tailwind elimina frustrações conhecidas do CSS, mas introduz uma forma diferente de acoplamento que ganha importância em escala.
Tailwind CSS Torna Alterações Locais Mais Rápidas
O argumento mais forte do Tailwind não é que ele elimina o CSS. Ele torna muitas decisões de estilização locais, restritas e imediatamente visíveis.
Tailwind descreve sua abordagem como a composição de utilitários de propósito único diretamente no markup. Seu guia de classes utilitárias afirma que uma mudança nos utilitários de um elemento afeta esse elemento, reduzindo a preocupação com efeitos não intencionais em outros lugares.
Essa propriedade pode aumentar a confiança durante o trabalho rotineiro de interface. Um desenvolvedor que remove shadow-md de um card não precisa procurar todos os elementos correspondentes a um seletor compartilhado.
A mesma localidade ajuda na revisão de código. Revisores frequentemente conseguem ver que uma alteração adiciona padding em um breakpoint ou modifica uma cor de hover sem rastrear um seletor por várias folhas de estilo.
Classes utilitárias também fornecem um vocabulário restrito. Uma escala de espaçamento compartilhada desencoraja um desenvolvedor a escolher 15 pixels enquanto outro escolhe 17 pixels para espaços quase idênticos.
Essa consistência pode dar suporte a um sistema de design quando o tema recebe manutenção deliberada. Cores, escalas tipográficas, sombras e valores de espaçamento tornam-se tokens reutilizáveis expostos por nomes previsíveis.
A versão 4 do Tailwind CSS fortaleceu essa relação. O framework moveu a configuração para o CSS e expôs valores de tema como propriedades personalizadas nativas.
O lançamento da versão 4 também introduziu detecção automática de conteúdo, uma integração Vite própria, container queries e um mecanismo de build reescrito. O Tailwind relatou um build completo de 100 milissegundos em seu benchmark Catalyst, em comparação com 378 milissegundos na versão 3.4.
Esses números vieram do próprio benchmark do Tailwind, portanto não devem ser tratados como resultados universais. Ainda assim, mostram onde o projeto investiu: ciclos de feedback mais curtos e menor sobrecarga de configuração.
Esse foco explica por que Tailwind continua atraente até para desenvolvedores que reconhecem que seu markup pode ficar visualmente carregado. O framework torna a experimentação barata.
Um desenvolvedor pode experimentar três layouts sem dar nome a três abstrações temporárias. Tentativas malsucedidas deixam menos seletores abandonados para trás.
Tailwind também funciona bem com a extração de componentes. Quando um padrão de botão se repete, uma equipe pode mover o markup e a lista de utilitários para um componente Button compartilhado.
Os consumidores passam então a ver um nome de componente significativo em vez dos detalhes internos de estilização. A repetição não desapareceu, mas o limite do componente a contém.
Essa abordagem se alinha ao desenvolvimento moderno de aplicações. Muitas equipes já tratam componentes, e não seletores globais, como seu principal mecanismo de reutilização.
A localidade também reduz o perigo criado pela cascata do CSS. A cascata é o sistema do CSS para resolver declarações concorrentes com base em origem, especificidade, ordem e escopo.
Ela é útil, mas pode produzir interações distantes em uma grande base de código. Um seletor escrito para uma tela pode afetar inesperadamente outra tela que compartilha uma classe ou estrutura aninhada.
Tailwind não elimina a cascata, mas seu fluxo de trabalho desencoraja seletores amplos. As regras resultantes geralmente têm especificidade previsível e intenção restrita.
Esses são benefícios substanciais, não ilusões de marketing. Eles explicam por que desenvolvedores experientes podem entender CSS comum e ainda escolher Tailwind.
No entanto, segurança local não equivale a clareza em nível de sistema. Um componente pode ser seguro para editar isoladamente enquanto a aplicação acumula gradualmente decisões visuais duplicadas.
Esse é o ponto de pressão levantado pela crítica. Tailwind torna fácil cada ação local de estilização, mas o produto ainda precisa de uma estratégia para reconhecer padrões entre centenas dessas ações.
Equipes que extraem componentes de forma consistente podem administrar esse problema. Equipes que tratam cada lista de utilitários como um detalhe local inofensivo podem adiar a abstração até que as mudanças se tornem caras.
Tailwind, portanto, recompensa uma disciplina específica de engenharia. Os desenvolvedores precisam saber quando a repetição representa uma coincidência temporária e quando revela um conceito de interface duradouro.
O framework não toma essa decisão por eles. Ele apenas muda os materiais a partir dos quais a abstração será construída.
A Escolha Real é Localidade Versus Significado
O conflito central não é Tailwind CSS versus código limpo. É controle local da apresentação versus significado nomeado em nível de sistema.
Considere um componente de notificação. Em CSS semântico, seu markup pode conter classes como notification, notification-title e notification-actions.
Esses nomes não revelam o padding ou layout exatos. Eles descrevem o papel do elemento e direcionam os leitores a uma definição de estilização separada.
Uma versão com Tailwind pode revelar todas as decisões atuais no mesmo lugar. A lista de classes pode especificar colunas de grid, tamanho do espaçamento, cor da borda, raio, fundo, cor do texto, modo escuro e comportamento responsivo.
A versão com Tailwind responde rapidamente a “como isto se parece?”. A versão semântica responde rapidamente a “o que isto representa?”.
Nenhuma das perguntas é sempre mais importante. Seu valor depende da tarefa.
Um desenvolvedor ajustando um layout responsivo se beneficia ao ver os utilitários ao lado do markup. Um desenvolvedor auditando todas as mensagens de aviso se beneficia de uma abstração nomeada e compartilhada em toda a aplicação.
Defensores do Tailwind frequentemente resolvem essa tensão com componentes. O nome do componente fornece significado semântico, enquanto os utilitários descrevem sua implementação.
Essa solução funciona bem quando a interface já usa uma arquitetura de componentes madura. Um componente Notification pode ocultar detalhes de estilização e impor um padrão compartilhado.
Ela funciona menos bem em aplicações com muito conteúdo, templates renderizados no servidor ou bases de código nas quais muitos padrões visuais não justificam componentes JavaScript. Criar um componente apenas para ocultar uma lista de classes pode adicionar outra abstração sem melhorar o comportamento.
O CSS tradicional pode estilizar estruturas repetidas de documentos sem exigir um componente para cada padrão de apresentação. Seletores, propriedades personalizadas, camadas de cascata, aninhamento, container queries e a pseudoclasse :has() oferecem ao CSS moderno opções mais expressivas do que comparações mais antigas por vezes reconhecem.
Esse é um dos motivos pelos quais o argumento contra Tailwind ressurgiu. O CSS nativo ganhou recursos, enquanto o suporte dos navegadores e as ferramentas melhoraram.
A decisão já não é entre classes utilitárias e uma versão inalterada do CSS de uma década atrás. As equipes agora podem construir sistemas com escopo definido e orientados por tokens usando CSS Modules, web components, estilos com escopo de framework ou camadas globais disciplinadas.
Ainda assim, o CSS semântico carrega seu próprio risco de abstração. Uma classe chamada card pode perder o significado quando dezenas de interfaces sem relação usam esse nome.
Os nomes também se desviam de seu sentido original. Uma classe chamada blue-button pode permanecer depois que o botão fica verde, enquanto sidebar pode ser movida para cima do conteúdo principal em telas menores.
Os seletores podem se tornar complexos à medida que desenvolvedores substituem pressupostos antigos. Conflitos de especificidade então tornam uma simples mudança visual mais difícil do que modificar uma utility do Tailwind.
O Tailwind evita deliberadamente grande parte dessa nomenclatura semântica. Ele trata primitivas visuais como estáveis, permitindo que os componentes forneçam o significado de produto.
Os críticos respondem que sistemas de design precisam de mais do que primitivas. Uma utility como text-slate-600 descreve uma cor, enquanto um token como text-secondary descreve uma função.
O Tailwind pode expressar tokens semânticos por meio de variáveis de tema e utilities personalizadas. Porém, quando as equipes adicionam essa camada, voltam a nomear conceitos e a manter abstrações.
Isso não é uma falha. Mostra que aplicações reais eventualmente exigem significado em algum lugar.
A questão estratégica é onde codificá-lo. Uma equipe pode colocar significado em classes CSS, nomes de componentes, tokens de design, padrões documentados ou alguma combinação deles.
O Tailwind direciona a resposta para componentes e tokens. O CSS tradicional atribui um papel maior aos seletores.
A distinção afeta como reformulações se propagam. Suponha que uma empresa decida que todas as ações secundárias precisam de um novo tratamento visual.
Uma classe semântica ou componente compartilhado pode centralizar essa mudança. Listas repetidas de utilities exigem uma busca, um codemod ou confiança de que cada instância usa o mesmo componente.
O tema do Tailwind pode atualizar valores primitivos compartilhados, mas uma reformulação frequentemente altera relações, e não apenas uma cor. O novo sistema pode modificar bordas, espaçamento, hierarquia e estados de interação ao mesmo tempo.
Um componente lida bem com esse conjunto. Listas de utilities não coordenadas, não.
O mesmo raciocínio se aplica à acessibilidade. O Tailwind oferece utilities para estados de foco, movimento reduzido, visibilidade e comportamento responsivo, mas não pode garantir que desenvolvedores as apliquem de forma consistente.
Um componente compartilhado pode impor essas decisões. HTML semântico e atributos ARIA ainda carregam significado independentemente das classes CSS.
É por isso que o debate não pode ser resolvido por capturas de tela de atributos de classe longos. A densidade visual é apenas um sintoma.
A questão real é se uma base de código tem limites confiáveis para decisões compartilhadas. O Tailwind tem bom desempenho quando esses limites existem e ruim quando utilities se tornam um substituto para a arquitetura.
O Que a Reação Negativa no Hacker News Acerta e Erra
A crítica identifica corretamente riscos de manutenção, mas perde força quando trata todo projeto Tailwind como estruturalmente idêntico.
A preocupação mais forte é o acoplamento. O Tailwind coloca escolhas de apresentação no mesmo arquivo e, muitas vezes, na mesma linha da estrutura do documento.
Uma reformulação pode, portanto, exigir a edição de markup em muitos componentes. Com CSS semântico bem projetado, as equipes podem alterar a apresentação enquanto deixam grande parte do documento inalterada.
Essa separação tem valor prático em sistemas que publicam conteúdo estruturado em vários formatos. Ela também ajuda quando designers precisam fazer mudanças visuais amplas sem alterações correspondentes nos componentes.
Listas longas de utilities podem reduzir a legibilidade. Um revisor pode precisar analisar muitas abreviações antes de encontrar as classes relevantes para uma pequena mudança.
A composição condicional de classes adiciona outra camada. Bibliotecas que mesclam utilities, geram variantes ou mapeiam props de componentes para strings de classes podem criar uma lógica mais difícil de acompanhar do que CSS simples ou markup Tailwind estático.
Nomes de classes dinâmicos também introduzem restrições técnicas. O Tailwind examina arquivos-fonte como texto, em vez de avaliar o código da aplicação.
Sua documentação alerta contra construir nomes de classes a partir de fragmentos, como bg-${color}-600. Desenvolvedores devem, em vez disso, mapear nomes de classes completos e detectáveis estaticamente para props ou estados.
Esse requisito é administrável, mas molda o design dos componentes. As equipes precisam entender o processo de build, em vez de presumir que qualquer string gerada criará o CSS necessário.
A dependência de framework é outra preocupação razoável. As classes do Tailwind são legíveis apenas para desenvolvedores familiarizados com as convenções do Tailwind.
A maioria das utilities espelha de perto propriedades CSS, mas variantes, valores arbitrários e seletores avançados criam um dialeto próprio. Migrar para outro sistema exige traduzir essas decisões de volta para CSS ou para outro sistema.
Esse custo importa para bibliotecas destinadas a funcionar em vários frameworks. Um sistema de design reutilizável pode não querer que todo consumidor herde a configuração de build ou as restrições de versão do Tailwind.
A crítica se torna menos persuasiva quando afirma que classes de utility necessariamente criam mais duplicação. A repetição no código-fonte pode resultar em menos duplicação no CSS gerado, porque muitos elementos reutilizam a mesma regra de utility.
Uma folha de estilos semântica pode repetir declarações idênticas em muitos seletores de componentes. O Tailwind centraliza essas declarações em utilities geradas, enquanto repete referências no markup.
Essas são formas diferentes de duplicação. Uma repete tokens; a outra repete declarações de propriedade-valor.
A medida significativa não é o número de nomes de classes. É o custo de fazer uma mudança correta.
Uma lista repetida de utilities pode ter baixo custo se um componente compartilhado for seu responsável. Uma classe semântica curta pode ser cara se seu seletor participar de sobrescritas frágeis.
Outra crítica fraca diz que o Tailwind é apenas estilização inline. A comparação capta a proximidade entre apresentação e markup, mas deixa de lado diferenças significativas.
As utilities do Tailwind oferecem suporte a media queries, estados de interação, container queries, modo escuro, tokens de tema e reutilização de CSS gerado. Atributos style inline tradicionais não fornecem o mesmo modelo de composição.
Ainda assim, o Tailwind é intencionalmente mais próximo da apresentação local do que o CSS semântico. Seus defensores deveriam reconhecer essa troca, em vez de descartar toda comparação.
O argumento pró-Tailwind também se torna exagerado quando sugere que desenvolvedores não precisam mais entender CSS. O Tailwind é um vocabulário para aplicar conceitos de CSS, não um substituto para esses conceitos.
Desenvolvedores ainda precisam entender layout, herança, contextos de empilhamento, dimensionamento, overflow, especificidade e comportamento dos navegadores. Memorizar items-center não explica por que um filho flex se recusa a encolher.
Iniciantes podem se tornar produtivos rapidamente com utilities copiadas, mas bugs difíceis ainda exigem conhecimento da plataforma subjacente.
O debate, portanto, contém dois alertas legítimos.
Os críticos alertam que a conveniência local pode ocultar duplicação arquitetural. Os defensores alertam que abstrações semânticas podem ocultar comportamento global imprevisível.
As equipes devem testar ambos os riscos em relação à sua aplicação real. Um site de marketing, uma biblioteca de componentes, um dashboard interno e uma plataforma de publicação não precisam da mesma estratégia de estilização.
Uma equipe pequena construindo uma aplicação React a partir de um kit de componentes compartilhados pode ganhar mais com a velocidade do Tailwind do que perder em clareza de markup.
Uma biblioteca focada em padrões e voltada a várias plataformas pode preferir variáveis CSS nativas e estilos com poucas dependências. Um site de conteúdo pode se beneficiar de seletores semânticos que estilizam HTML gerado sem envolver cada padrão em um componente.
A escolha deve seguir os limites de responsabilidade. Se um componente controla integralmente sua apresentação e ciclo de vida, a estilização utility-first se encaixa naturalmente.
Se a apresentação precisa operar de forma independente em markup desconhecido ou gerado, o CSS semântico geralmente oferece o modelo mais claro.
Desenvolvedores também precisam considerar recuperação de informação e memória institucional. Decisões de estilização espalhadas pelos componentes tornam-se difíceis de auditar, a menos que documentação e busca permaneçam confiáveis.
Uma base de conhecimento técnico pesquisável pode preservar a justificativa de design, mas a documentação não pode salvar uma implementação inconsistente. As equipes ainda precisam de tokens, componentes ou convenções CSS aplicáveis.
A conclusão cética é, portanto, mais restrita do que o título do artigo-fonte. O Tailwind não deveria se tornar uma recomendação automática, mas rejeitá-lo categoricamente ignora os ambientes em que suas restrições se alinham à arquitetura.
O Que Desenvolvedores Devem Observar Após Esta Discussão Sobre Tailwind CSS
A próxima fase deste debate será decidida pelos resultados dos projetos, não por mais uma rodada de comparações de sintaxe.
O primeiro sinal é como as equipes usam a configuração CSS-first do Tailwind CSS versão 4. As variáveis de tema agora expõem tokens de design como propriedades personalizadas nativas, criando uma ponte mais clara entre utilities e CSS comum.
Se as equipes usarem essas variáveis para criar tokens semânticos e componentes estáveis, a fronteira entre Tailwind e CSS convencional se tornará menos rígida. O Tailwind funcionará como uma camada dentro de um sistema de design mais amplo.
Se os desenvolvedores dependerem principalmente de valores arbitrários e combinações pontuais de utilities, a crítica ganhará força. A flexibilidade local pode enfraquecer gradualmente a consistência quando cada componente inventa suas próprias decisões visuais.
O segundo sinal é se a extração de componentes permanece disciplinada à medida que os projetos envelhecem. A documentação do Tailwind recomenda extrair padrões repetidos em componentes ou partials, dependendo do framework.
Esse conselho parece direto, mas o momento importa. Extraia cedo demais, e as equipes criam componentes rígidos em torno de semelhanças acidentais. Extraia tarde demais, e listas de classes repetidas divergem antes que alguém reconheça o padrão compartilhado.
As práticas de revisão de código revelarão se as equipes conseguem administrar esse limite. Revisões úteis devem perguntar se uma mudança em utility representa uma exceção local, uma regra reutilizável de componente ou uma atualização de token de design.
Linting automatizado pode detectar classes inválidas e alguns problemas de ordenação. Não pode determinar se cinco painéis semelhantes representam um único conceito de produto.
O terceiro sinal é se o CSS nativo continua reduzindo a necessidade de soluções alternativas no nível de framework. Container queries, cascade layers, nesting, propriedades personalizadas e seletores avançados já oferecem suporte a padrões que antes exigiam pré-processadores ou JavaScript.
O próprio Tailwind usa recursos modernos de CSS, portanto o progresso do CSS nativo não ameaça necessariamente o projeto. Ele pode simplificar a implementação do Tailwind e expandir seu vocabulário de utilities.
No entanto, recursos nativos fortalecem o argumento alternativo. As equipes podem alcançar estilização com escopo, responsiva e baseada em tokens sem adotar um framework de utilities.
O resultado provavelmente será menos ideológico do que qualquer lado espera. O Tailwind continuará útil para aplicações centradas em componentes reutilizáveis e iteração rápida de interfaces.
CSS simples ou com escopo continuará atraente para conteúdo, bibliotecas portáveis, sites pequenos e sistemas que valorizam a independência entre estrutura e apresentação.
Abordagens híbridas continuarão existindo porque o limite raramente é absoluto. Um projeto pode usar utilities para layout, componentes para controles repetidos e CSS semântico para conteúdo rico.
Essa combinação pode funcionar, mas apenas quando a equipe documenta qual camada controla cada decisão. Sem regras de responsabilidade, a estilização híbrida cria três lugares para investigar cada bug.
Desenvolvedores avaliando o Tailwind deveriam executar um teste representativo, em vez de julgar um exemplo de landing page. O teste deveria incluir um componente responsivo, um padrão repetido, uma mudança de tema, um estado de acessibilidade e uma revisão de design.
As perguntas importantes são concretas. Um revisor consegue entender a mudança? A equipe consegue atualizar todas as instâncias relacionadas? Um novo desenvolvedor consegue localizar a origem de uma regra visual?
As equipes também deveriam medir o custo de migração. Toda escolha de framework cria alguma dependência, mas as consequências variam.
Uma aplicação Tailwind com limites sólidos entre componentes pode migrar reescrevendo o interior dos componentes. Uma aplicação contendo strings de utilities em templates, conteúdo de banco de dados e pacotes compartilhados enfrenta uma conversão mais ampla.
A discussão de 108 pontos no Hacker News não prova que o Tailwind CSS falhou. Ela prova que as concessões do framework continuam relevantes após anos de adoção.
Esse é um escrutínio saudável. Ferramentas populares merecem ser avaliadas pela forma como moldam sistemas duradouros, e não apenas pela rapidez com que produzem a primeira tela.
Antes de escolher o Tailwind, examine onde seu projeto armazena significado compartilhado. Se a resposta forem componentes estáveis e tokens definidos de forma intencional, as classes utilitárias podem ser um detalhe de implementação eficaz.
Se a resposta for “onde quer que o desenvolvedor atual as adicione”, o framework ampliará essa inconsistência. O mesmo alerta vale para CSS não estruturado, mas a velocidade do Tailwind pode fazer o problema se espalhar mais rapidamente.
Trate o debate no Hacker News como um convite para uma revisão de design. Inspecione um projeto maduro, acompanhe uma mudança visual em todo o produto e conte os lugares que exigem julgamento.
O Tailwind tornaria essas mudanças mais seguras para sua equipe ou apenas mais rápidas para começar? Essa resposta importa muito mais do que saber qual lado vencerá a próxima discussão nos comentários.


