Nomeclatura de classes no CSS #83
Replies: 38 comments
-
Aproveitando a pergunta, em especial em relação ao uso de |
Beta Was this translation helpful? Give feedback.
-
Então, como eu falei lá na issue, eu também não sou muito chegado no BEM, mas queria ter algo para me organizar melhor e não causar especificidades altas. Por isso me adaptei muito bem com o RSCSS, que meio que já possui tudo que eu queria. Ele é fácil de ler, escrever, não parece fugir do controle e segue uma filosofia bem parecida com a que eu já usava. |
Beta Was this translation helpful? Give feedback.
-
@bernardodiasc esse lance do Agora eu gostei muito do rscss, quando li o post do @willianjusten e a documentação, comecei a usar e fiquei muito entusiasmado. Principalmente essa ideia de separar o componente por arquivo. Ajuda muito! |
Beta Was this translation helpful? Give feedback.
-
@lfeh eu acho animal a ideia do BEM, mas odeio a nomenclatura dele também, atualmente trabalho usando BEM/SMACSS. Acho que apesar de todos essas propostas serem interessantes ainda não temos uma espécie de "Design patterns" para CSS.... |
Beta Was this translation helpful? Give feedback.
-
Pessoal, já passei por esse problema de chamar alguma classe no js com o modificador iniciando com uma classe com dois traços na frente, por exemplo o Ex: Curto muito o BEM. Trabalho com BEM e SMACSS. |
Beta Was this translation helpful? Give feedback.
-
Não sou muito fan do BEM também não pelos motivos já citados. Curti bastante o RSCSS tanto que estou usando nos meus últimos projetos, mas confesso que sinto falta de separar o layout da aparência. Quanto a performance que o @wdss93 citou acho que se a regra é quanto mais específica a rule mais trabalho o navegador vai ter, de fato o BEM ganha do RSCSS, mas não acho que seja um problema. |
Beta Was this translation helpful? Give feedback.
-
@joaoahmad mas a perfomance do BEM da tapa na cara do RSCSS... A idéia do BEM é evitar o aninhamento, ou seja, melhor performance! |
Beta Was this translation helpful? Give feedback.
-
Se da um tapa na cara não sei, nunca vi teste de perfomance entre eles... só penso pela teoria. Sabe de algum teste entre eles? |
Beta Was this translation helpful? Give feedback.
-
Fiz especialmente pra você!!! BEM: http://cssstats.com/stats?url=http%3A%2F%2Flagden.github.io%2Fcss-test%2Fbem.html Source: https://github.com/lagden/css-test Refshttp://csswizardry.com/2014/10/the-specificity-graph/ https://css-tricks.com/efficiently-rendering-css/ https://github.com/benfrain/css-performance-tests/tree/master/CSS%20Selectors |
Beta Was this translation helpful? Give feedback.
-
É uma boa fonte de referência @lagden!
Queria saber de mais opiniões sobre, já que influencia diretamente em como escrevemos. |
Beta Was this translation helpful? Give feedback.
-
Então!! Se você trabalha com um produto, por exemplo Mas se é um trampo de agencia, por exemplo |
Beta Was this translation helpful? Give feedback.
-
Então, tem essa questão de performance, eu também tento ao máximo utilizar classes ao invés de aninhar, por isso tive essa ideia de usar um duplo Porém em determinados casos aninho elementos sem problemas (desde que até 3 níveis). Até porque essa a lógica do Atomic CSS que eu tanto gosto, ou seja, estruturas maiores, alterando atoms ou molecules menores. Também não curto usar elementos sem classe, por exemplo Porém em casos como, sei lá, Ou seja, como sempre, tudo depende do contexto. |
Beta Was this translation helpful? Give feedback.
-
Penso que esse caso do breadcrumbs ta tudo bem pois apesar de ser um componente genérico, é muito improvável que haja outros componentes dentro, e também possui uma estrutura de marcação simples, quase previsível. Lembrando que CSS sem HTML é Claudinho sem Bochecha. Costumo incluir documentação sobre a marcação requerida junto com o CSS por causa disso. Um exemplo do HTML contendo as classes CSS num bloco de comentário perto das classes no arquivo CSS. Fica a dica. Alguns casos usa-se apenas classes para que a marcação fique livre e o estilo possa ser aplicado independentemente dos elementos usados, é um cenário comum em frameworks css pois por exemplo aquele estilo de hyperlink pode tanto ser um |
Beta Was this translation helpful? Give feedback.
-
Puts @bernardodiasc, sensacional essa ideia de incluir o HTML esperado dentro de um comentário no componente. Vou começar a usar \o |
Beta Was this translation helpful? Give feedback.
-
Depois de seguir o REM a risca fiquei com classes muito grandes, estava impossível manter no HTML, então parti para classes aninhadas, na semantica melhorou muito, não sei o quanto piorou a perfomance, Mas eu uso, mesmo sabendo das contra-indicações. |
Beta Was this translation helpful? Give feedback.
-
@lfeh Mals ai a demora pra responder, to com um sprint loco aqui auhsas Então cara, to nomeando da forma que mais faz sentido semântico pra mim. Aqui tem o ultimo projeto que fiz utilizando CSSModules: https://github.com/schiehll/events/tree/master/app/assets/styles A estrutura de pastas e arquivos fica a critério de cada um, mas curti muito o fato de poder nomear as classes com nomes simples e semânticos sem medo de quebrar nada...e sem precisar ficar usando prefixo no nome das classes |
Beta Was this translation helpful? Give feedback.
-
Em relação à BEM, tem uma alternativa bem interessante na hora de usar os modifiers. |
Beta Was this translation helpful? Give feedback.
-
Resgatando essa issue. Acabei de postar uma sequencia de tuites e vou colocar aqui um resumo do meu raciocínio. Basicamente eu comecei a adotar faz um tempinho
Porém, em um projeto bem grande, com vários componentes que tinham nomes compostos ou eram muito complexos, estava ficando extremamente confuso.
Então resolvi aplicar alguns conceitos do BEM, especialmente a ideia do
Mas só estou avançando nos níveis se extremamente necessário, isso ajuda a manter a sanidade do meu código. Invés de
Estou procurando usar
O máximo que pode acontecer (aconteceu bem pouco, mas pode). São ter dois níveis de bloco.
É um resumo do meu raciocínio. O que acharam? |
Beta Was this translation helpful? Give feedback.
-
Achei bem interessante @lfeh .page-header
// code
.title
// code Por mais que na última empresa em que trabalhei nós usávamos o SMACSS, |
Beta Was this translation helpful? Give feedback.
-
@paulinhoerry, sempre gostei de seguir esse exemplo que você colocou. Mas tem um problema realmente chato nessa solução, que vem a tona com tudo em projetos grandes... E se tiver mais de um Nesse caso, era necessário começar a usar |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
Até hoje, eu me confundo com nomenclatura em projetos grandes. Eu ainda prefiro usar o underscore __ , pois parece que separa melhor os blocos quando bate o olho, fica mais legível pra mim. |
Beta Was this translation helpful? Give feedback.
-
Atualmente trabalho com SMACSS, BEM e Namespaces. Em meu blog pessoal comecei uma série de post's sobre organização, o último post será sobre a forma que eu uso. Organizando seu código CSS parte 01. |
Beta Was this translation helpful? Give feedback.
-
Essa é uma dúvida que eu sempre tive. Normalmente acabo fazendo um mix de vários patterns, mas aí vira uma zona. Estou lendo os posts que o @lagden deixou e curti a ideia do SMACSS e do BEM mesmo que eu não goste de utilizar |
Beta Was this translation helpful? Give feedback.
-
Dois anos e meio depois, eu mesmo me respondo: Estou usando CSS Isolado (no Angular ou CSS Modules) + BEM 😘 |
Beta Was this translation helpful? Give feedback.
-
Estou tentando usar o BEM, mas to achando meio estranho. Os nomes das minhas classses estão ficando muito grandes, em alguns casos esotu me deparando com classes do tipo |
Beta Was this translation helpful? Give feedback.
-
@niltonslf Nesse caso o lance é mais cuidar pra não ficar tão especifico. De repente
|
Beta Was this translation helpful? Give feedback.
-
@lfeh, to fazendo assim. Tá mto errado? Tem como dar uma força no que posso melhorar? |
Beta Was this translation helpful? Give feedback.
-
@niltonslf No geral só deixaria menos verboso (talvez evitando essas classes com Mas o caminho é esse mesmo, ta certinho. |
Beta Was this translation helpful? Give feedback.
-
@lfeh Entendi. Brigadão aí pelo feedback! |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Pegando o gancho da issue #35 do @willianjusten, queria abrir uma discussão com vocês sobre padrão de escrita CSS.
Nunca curti muito o BEM e outras metodologias, sei que não interfere no resultado final, mas a 'sujeira' no nome das classes me incomoda.
Portanto, sempre tentei ao máximo usar dois separadores, exemplo:
widget-gallery
, e trabalhava com elementos já existentes (como atoms, molecules, etc), seguindo o conceito de Atomic CSS.Porém nem sempre isso dá certo, em várias situações preciso criar um elemento especifico para esse widget, e ele ganha mais um nome
widget-gallery-main
, isso sempre me incomodou.Já pensei em utilizar inclusive os
[data-*]
para modificador, mas isso causaria mais um problema, e preferi manter separado (uso o[data-*]
para controlar plugins do JavaScript).Então, hoje pensei em simplesmente adicionar mais um
-
no terceiro modificador. Eu achei que para o meu raciocínio lógico fica muito mais sólido (tenho pavor quando as coisas começam a parecer estar saindo do controle), usa um pouco da ideia do BEM e etc, mas não fica um código muito exagerado.Ficaria portanto:
widget-gallery--main
.O que pensam sobre isso?
Beta Was this translation helpful? Give feedback.
All reactions