He sido desarrollador frontend durante 10 años. Aquí está mi convención de nomenclatura para clases de CSS. Lo hago cumplir en mi empresa con todos los desarrolladores, y produce código bien formado, no conflictivo y directo.
Nombres anidados contextualmente:
El nombre de una clase debe contener el nombre de clase de su padre contextual. Digamos que tiene un panel en su página.
- ¿Cuál es la mejor manera de proteger una variable estática SECRET_KEY para un servidor web?
- Cómo agregar una página de factura en WordPress
- ¿Cuál es la pila de tecnología de Nextdoor?
- ¿Qué es el raspado de datos web? ¿Para qué sirve?
- ¿Qué es lo único que nadie te dice sobre el aprendizaje del desarrollo web?
La contextualidad entra. Desea poner un botón dentro de su panel. Piensa en el contexto del botón. ¿Está el botón específicamente y solo presente en los paneles? ¿Más específicamente está hecho para y dentro del cuerpo de los paneles? Luego vaya a
Si no es así, y asume que el botón aparecerá en todo el sitio, entonces el contexto es global y no debe colocarle el prefijo
Los segmentos de nivel contextual (panel, cuerpo, contenido) deben escribirse en uno sin separación. “-” solo debe usarse para separar los niveles de anidamiento. Prefiero no usar camelCase. Sugiero no usar lowdash, me resulta confuso y difícil de ver.
Modificadores:
Los modificadores solo se usan dentro de css, vinculados a otros nombres de clase, como el modificador .active. El único uso de este es .panel.active o .tab.active, .menu-item.active. Básicamente, uso modificadores como mis propias pseudo clases. Ejemplos: .active, .selected, .opened, etc.
Si tiene una página con 3 planes y el medio es el “más popular”, debe tener un modificador .mostpopular o .best.
Globales completos:
Estas son propiedades globales (muy parecidas a los mixins) que pueden combinarse con cualquier cosa, y generalmente contienen solo 1 o 2 definiciones de estilo. Los ejemplos clásicos son .color-primary {color: # ff23ad;} o .text-center {text-align: center}
.text-center se puede agregar a cualquier nombre de clase, no es un modificador, lo que significa que los estilos definidos no varían entre elementos, se mantiene constante.
Creo que si mantiene este paradigma, terminará con un código súper legible, sin colisión y superposición de nombres de clase.
Piense en mirar un código CSS como este:
.principal{…}
.sección principal{..}
.main-section-head {…}
.main-section-head-icon {…}
.main-section-body {….}
.panel{…}
.panel-head {…}
.panel-body {…}
…
y así. Hermosa 🙂