|
4 | 4 |
|
5 | 5 | ## Tabla de contenidos |
6 | 6 |
|
7 | | - 1. [Terminología](#terminología) |
| 7 | +1. [Terminología](#terminología) |
8 | 8 | - [Reglas](#reglas) |
9 | 9 | - [Selectores](#selectores) |
10 | 10 | - [Propiedades](#propiedades) |
11 | | - 1. [CSS](#css) |
| 11 | +2. [CSS](#css) |
12 | 12 | - [Formato](#formato) |
13 | 13 | - [Comentarios](#comentarios) |
14 | 14 | - [OOCSS y BEM](#oocss-y-bem) |
15 | 15 | - [Selectores ID](#selectors-id) |
16 | 16 | - [JavaScript hooks](#javascript-hooks) |
17 | 17 | - [Border](#border) |
18 | | - 1. [Sass](#sass) |
| 18 | +1. [Sass](#sass) |
19 | 19 | - [Sintaxis](#sintaxis) |
20 | 20 | - [Orden](#orden-de-las-declaraciones-de-propiedades) |
21 | 21 | - [Variables](#variables) |
22 | 22 | - [Mixins](#mixins) |
23 | 23 | - [Extends](#extends) |
24 | 24 | - [Anidación](#anidacion) |
25 | | - 1. [Traducción](#traducción) |
| 25 | +1. [Traducción](#traducción) |
26 | 26 |
|
27 | 27 | ## Terminología |
28 | 28 |
|
@@ -62,19 +62,21 @@ Finalmente, las propiedades son las que dan el estilo a los elementos selecciona |
62 | 62 | } |
63 | 63 | ``` |
64 | 64 |
|
| 65 | +**[⬆ volver arriba](#Tabla-de-contenidos)** |
| 66 | + |
65 | 67 | ## CSS |
66 | 68 |
|
67 | 69 | ### Formato |
68 | 70 |
|
69 | | -* Usar “soft tabs” (2 espacios) de indentación |
| 71 | +* Usar “soft tabs” (2 espacios) de indentación. |
70 | 72 | * Preferentemente usar guiones medios (`-`) en lugar de [camelCase](https://es.wikipedia.org/wiki/CamelCase) en nombres de clases. |
71 | | - - Guiones bajos (`_`) y [PascalCasing](https://es.wikipedia.org/wiki/Pascal_Casing) son válidos si está utilizando BEM (ver [OOCSS y BEM](#oocss-y-bem) abajo) |
72 | | -* No utilizar selectores ID |
73 | | -* Cuando se utilizan varios selectores en una declaración de regla, poner cada selector en una línea |
74 | | -* Poner un espacio antes de la llave de apertura `{` en declaraciones de regla |
75 | | -* En las propiedades, poner un espacio después, y no antes, del caracter `:` (dos puntos) |
76 | | -* Poner las llaves de cierre `}` de las declaraciones de regla en una nueva línea |
77 | | -* Poner líneas en blanco entre las declaraciones de reglas |
| 73 | + - Guiones bajos (`_`) y [PascalCasing](https://es.wikipedia.org/wiki/Pascal_Casing) son válidos si está utilizando BEM (ver [OOCSS y BEM](#oocss-y-bem) abajo). |
| 74 | +* No utilizar selectores ID. |
| 75 | +* Cuando se utilizan varios selectores en una declaración de regla, poner cada selector en una línea. |
| 76 | +* Poner un espacio antes de la llave de apertura `{` en declaraciones de regla. |
| 77 | +* En las propiedades, poner un espacio después, y no antes, del caracter `:` (dos puntos). |
| 78 | +* Poner las llaves de cierre `}` de las declaraciones de regla en una nueva línea. |
| 79 | +* Poner líneas en blanco entre las declaraciones de reglas. |
78 | 80 |
|
79 | 81 | **Mal** |
80 | 82 |
|
@@ -110,27 +112,27 @@ Finalmente, las propiedades son las que dan el estilo a los elementos selecciona |
110 | 112 | * Preferentemente usar `//` (en Sass) para bloques de comentarios. |
111 | 113 | * Preferentemente escribir comentarios en una única línea para ello. Evitar los comentarios al final de una línea. |
112 | 114 | * Escribir comentarios detallados de código que no es auto-documentado: |
113 | | - - Usos de z-index |
114 | | - - Compatibilidad o hacks para navegadores específicos |
| 115 | + - Usos de z-index. |
| 116 | + - Compatibilidad o hacks para navegadores específicos. |
115 | 117 |
|
116 | 118 | ### OOCSS y BEM |
117 | 119 |
|
118 | 120 | Incentivamos el uso de una combinación de OOCSS y BEM por las siguientes razones: |
119 | 121 |
|
120 | | - * Ayuda a crear relaciones claras y estrictas entre CSS y HTML |
| 122 | + * Ayuda a crear relaciones claras y estrictas entre CSS y HTML. |
121 | 123 | * Ayuda a crear componentes reutilizables y que se pueden recomponer. |
122 | | - * Permite menos anidación y menor especificidad |
123 | | - * Ayuda a construir hojas de estilos escalables |
| 124 | + * Permite menos anidación y menor especificidad. |
| 125 | + * Ayuda a construir hojas de estilos escalables. |
124 | 126 |
|
125 | 127 | **OOCSS**, o “CSS Orientado a Objetos” por sus siglas en Inglés, es un enfoque para escribir CSS que le permite pensar en sus hojas de estilo como una colección de “objetos”: reutilizables, con snippets que pueden repetirse fácilmente y se pueden utilizar independientemente a través de un sitio web. |
126 | 128 |
|
127 | | - * [OOCSS wiki](https://github.com/stubbornella/oocss/wiki) de Nicole Sullivan |
128 | | - * [Introduction to OOCSS](http://www.smashingmagazine.com/2011/12/12/an-introduction-to-object-oriented-css-oocss/) de Smashing Magazine |
| 129 | + * [OOCSS wiki](https://github.com/stubbornella/oocss/wiki) de Nicole Sullivan. |
| 130 | + * [Introduction to OOCSS](http://www.smashingmagazine.com/2011/12/12/an-introduction-to-object-oriented-css-oocss/) de Smashing Magazine. |
129 | 131 |
|
130 | 132 | **BEM**, o “Bloque-Elemento-Modificador”, es una _convención de nomenclatura_ para clases en HTML y CSS. Fue originalmente desarrollado por Yandex con grandes bases de código y escalabilidad en mente, y puede servir como un conjunto sólido de directrices para la aplicación de OOCSS. |
131 | 133 |
|
132 | | - * [BEM 101](https://css-tricks.com/bem-101/) de CSS Trick |
133 | | - * [Introduction to BEM](http://csswizardry.com/2013/01/mindbemding-getting-your-head-round-bem-syntax/) de Harry Roberts |
| 134 | + * [BEM 101](https://css-tricks.com/bem-101/) de CSS Tricks. |
| 135 | + * [Introduction to BEM](http://csswizardry.com/2013/01/mindbemding-getting-your-head-round-bem-syntax/) de Harry Roberts. |
134 | 136 |
|
135 | 137 | Se recomienda una variante de BEM con “bloques” en formato [PascalCase](https://es.wikipedia.org/wiki/Pascal_Casing), que funciona particularmente bien cuando se combina con componentes (ej. React). Guiones medios y bajos se utilizan para los modificadores e hijos. |
136 | 138 |
|
@@ -173,7 +175,7 @@ Por más información sobre este tema, lea el siguiente [artículo de CSS Wizard |
173 | 175 |
|
174 | 176 | ### JavaScript hooks |
175 | 177 |
|
176 | | -Evitar la vinculación de la misma clase en tu CSS y JavaScript. Combinar los dos a menudo tiene consecuencias negativas, como mínimo, tiempo perdido durante la refactorización cuando un desarrollador debe hacer una referencia cruzada de cada clase que está cambiando, y peor aún, los desarrolladores temen hacer cambios por miedo a romper la funcionalidad. |
| 178 | +Evita la vinculación de la misma clase en tu CSS y JavaScript. Combinar los dos a menudo tiene consecuencias negativas, como mínimo, tiempo perdido durante la refactorización cuando un desarrollador debe hacer una referencia cruzada de cada clase que está cambiando, y peor aún, los desarrolladores temen hacer cambios por miedo a romper la funcionalidad. |
177 | 179 |
|
178 | 180 | Recomendamos crear clases específicas para JavaScript para vincular con CSS, con el prefijo `.js-`: |
179 | 181 |
|
@@ -201,12 +203,14 @@ Utilizar `0` en lugar de `none` para especificar que un estilo no tiene borde. |
201 | 203 | } |
202 | 204 | ``` |
203 | 205 |
|
| 206 | +**[⬆ volver arriba](#Tabla-de-contenidos)** |
| 207 | + |
204 | 208 | ## Sass |
205 | 209 |
|
206 | 210 | ### Sintaxis |
207 | 211 |
|
208 | | -* Utilizar la sintaxis `.scss`, nunca la sintaxis `.sass` original |
209 | | -* Ordenar el CSS regular y las declaraciones `@include` lógicamente (ver a continuación) |
| 212 | +* Utilizar la sintaxis `.scss`, nunca la sintaxis `.sass` original. |
| 213 | +* Ordenar el CSS regular y las declaraciones `@include` lógicamente (ver a continuación). |
210 | 214 |
|
211 | 215 | ### Orden de las declaraciones de propiedades |
212 | 216 |
|
@@ -257,7 +261,7 @@ Preferentemente utilizar nombres de variable con guiones medios (ej. `$mi-variab |
257 | 261 |
|
258 | 262 | ### Mixins |
259 | 263 |
|
260 | | -Se deben utilizar Mixins para no repetir código ([principio DRY](https://es.wikipedia.org/wiki/No_te_repitas)), agregar claridad o abstraer de complejidad de la misma manera que las funciones. Los Mixins que no aceptan argumentos pueden ser útiles para ello, pero notar que si no está comprimiendo su carga (ej. gzip), esto puede contribuir a la duplicación innecesaria de código en los estilos resultantes. |
| 264 | +Se deben utilizar Mixins para no repetir código ([principio DRY](https://es.wikipedia.org/wiki/No_te_repitas)), agregar claridad o abstraer de complejidad de la misma manera que las funciones. Los Mixins que no aceptan argumentos pueden ser útiles para ello, pero nota que si no está comprimiendo su carga (ej. gzip), esto puede contribuir a la duplicación innecesaria de código en los estilos resultantes. |
261 | 265 |
|
262 | 266 | ### Extend |
263 | 267 |
|
@@ -287,16 +291,26 @@ Cuando los selectores se vuelven muy largos, probablemente se está escribiendo |
287 | 291 |
|
288 | 292 | Nuevamente: **¡nunca anidar selectores ID!** |
289 | 293 |
|
290 | | -Si tiene que usar un selector ID en primer lugar (debería intentar no hacerlo), nunca deberían anidarse. Si se encuentra haciendo esto, neceista revisar su marcado HTML, o averiguar por qué necesita tanta especificidad. Si está escribiendo HTML y CSS bien formado, **nunca** debería hacer esto. |
| 294 | +Si tiene que usar un selector ID en primer lugar (debería intentar no hacerlo), nunca deberían anidarse. Si se encuentra haciendo esto, necesita revisar su marcado HTML, o averiguar por qué necesita tanta especificidad. Si está escribiendo HTML y CSS bien formado, **nunca** debería hacer esto. |
| 295 | +
|
| 296 | +**[⬆ volver arriba](#Tabla-de-contenidos)** |
291 | 297 |
|
292 | 298 | ## Traducción |
293 | 299 |
|
294 | 300 | Esta guía de estilo está disponible también en otros lenguajes: |
295 | 301 |
|
| 302 | + -  **Bahasa Indonesia**: [mazipan/css-style-guide](https://github.com/mazipan/css-style-guide) |
296 | 303 | -  **Chinese (Traditional)**: [ArvinH/css-style-guide](https://github.com/ArvinH/css-style-guide) |
297 | 304 | -  **Chinese (Simplified)**: [Zhangjd/css-style-guide](https://github.com/Zhangjd/css-style-guide) |
| 305 | + -  **French**: [mat-u/css-style-guide](https://github.com/mat-u/css-style-guide) |
298 | 306 | -  **Japanese**: [nao215/css-style-guide](https://github.com/nao215/css-style-guide) |
299 | 307 | -  **Korean**: [CodeMakeBros/css-style-guide](https://github.com/CodeMakeBros/css-style-guide) |
300 | | - -  **Portuguese**: [felipevolpatto/css-style-guide](https://github.com/felipevolpatto/css-style-guide) |
301 | | - -  **Russian**: [Nekorsis/css-style-guide](https://github.com/Nekorsis/css-style-guide) |
| 308 | + -  **Portuguese (Brazil)**: [felipevolpatto/css-style-guide](https://github.com/felipevolpatto/css-style-guide) |
| 309 | + -  **Portuguese (Portugal)**: [SandroMiguel/airbnb-css-style-guide](https://github.com/SandroMiguel/airbnb-css-style-guide) |
| 310 | + -  **Russian**: [rtplv/airbnb-css-ru](https://github.com/rtplv/airbnb-css-ru) |
302 | 311 | -  **Spanish**: [ismamz/guia-de-estilo-css](https://github.com/ismamz/guia-de-estilo-css) |
| 312 | + -  **Vietnamese**: [trungk18/css-style-guide](https://github.com/trungk18/css-style-guide) |
| 313 | + -  **Italian**: [antoniofull/linee-guida-css](https://github.com/antoniofull/linee-guida-css) |
| 314 | + -  **German**: [tderflinger/css-styleguide](https://github.com/tderflinger/css-styleguide) |
| 315 | +
|
| 316 | +**[⬆ volver arriba](#Tabla-de-contenidos)** |
0 commit comments