{"id":4107,"date":"2016-10-03T13:08:47","date_gmt":"2016-10-03T11:08:47","guid":{"rendered":"https:\/\/www.hiberus.com\/blog\/?p=4107"},"modified":"2020-09-15T16:22:32","modified_gmt":"2020-09-15T14:22:32","slug":"diarios-de-un-junior-css-vs-sass","status":"publish","type":"post","link":"https:\/\/www.hiberus.com\/crecemos-contigo\/diarios-de-un-junior-css-vs-sass\/","title":{"rendered":"Diarios de un junior: CSS vs SASS"},"content":{"rendered":"<h2><strong>\u00bfQu\u00e9 es CSS y qu\u00e9 es SASS?<\/strong><\/h2>\n<p><strong>CSS<\/strong> \u00ab<em>Cascading Style Sheets\u00bb<\/em> es un lenguaje de hojas de estilo,\u00a0sirve para organizar la presentaci\u00f3n y aspecto de una p\u00e1gina web, ya sea en un ordenador, un m\u00f3vil, una Tablet, etc.<\/p>\n<p><strong>SASS<\/strong> \u00ab<em>Syntactically Awesome Stylesheets<\/em>\u00a0\u00bb\u00a0(definido como <strong>CSS con superpoderes<\/strong>) es un metalenguaje de hojas de estilo. \u00c9ste es un lenguaje de script que es traducido a CSS.<\/p>\n<p>Consiste en dos sintaxis, la original que es la sintaxis indentada \u201c.sass\u201d que usa la indentaci\u00f3n para separar bloques de c\u00f3digo y el car\u00e1cter nueva l\u00ednea para separar las reglas. La sintaxis m\u00e1s reciente, \u201c.scss\u201d, que usa el formato de bloques como CSS, usa llaves para denotar bloques de c\u00f3digo y punto y coma para separar las l\u00edneas dentro de un bloque.<\/p>\n<blockquote><p>El int\u00e9rprete de SASS traduce el c\u00f3digo a CSS<\/p><\/blockquote>\n<h2><strong>Diferencias entre SCSS y SASS<\/strong><\/h2>\n<p><a href=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2016\/09\/giphy.gif\" data-rel=\"lightbox-image-0\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-4116 aligncenter\" src=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2016\/09\/giphy.gif\" alt=\"giphy\" width=\"350\" height=\"263\" \/><\/a><\/p>\n<p>SASS es el pre-procesador y la sintaxis al completo, mientras que SCSS es la sintaxis de CSS pero con todas las ventajas de\u00a0SASS.<\/p>\n<p><a href=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2016\/09\/SCSS-SASS.jpg\" data-rel=\"lightbox-image-1\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-4109 aligncenter\" src=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2016\/09\/SCSS-SASS.jpg\" alt=\"SCSS SASS\" width=\"700\" height=\"399\" srcset=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2016\/09\/SCSS-SASS.jpg 633w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2016\/09\/SCSS-SASS-300x171.jpg 300w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2016\/09\/SCSS-SASS-360x205.jpg 360w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><\/a><\/p>\n<p>Ahora que ya est\u00e1 clara la diferencia entre <strong>SASS y SCSS<\/strong> vamos a ver todas las <strong>caracter\u00edsticas que hace que SASS sea mucho m\u00e1s potente que CSS.<\/strong><\/p>\n<h3><strong>Uso de variables y anidaci\u00f3n<\/strong><\/h3>\n<p>Una vez que declaras una variable puedes usarla a lo largo de todo el proyecto siempre y cuando importes el archivo en el que est\u00e1 declarada, y si deseas modificarla se modificar\u00e1 en todos los sitios en los que se use a la vez, dejando de lado el t\u00edpico \u201cbuscar y reemplazar\u201d.<\/p>\n<p>SASS permite<strong> 4 tipos de datos<\/strong>:<\/p>\n<ul>\n<li>N\u00fameros (incluyendo las unidades).<\/li>\n<li>Strings.<\/li>\n<li>Colores.<\/li>\n<li>Booleanos.<\/li>\n<\/ul>\n<p>Adem\u00e1s, las variables permiten\u00a0hacer operaciones matem\u00e1ticas con ellas, veamos un ejemplo.<\/p>\n<p><a href=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2016\/09\/variables.jpg\" data-rel=\"lightbox-image-2\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-4110 aligncenter\" src=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2016\/09\/variables.jpg\" alt=\"variables\" width=\"704\" height=\"288\" srcset=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2016\/09\/variables.jpg 545w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2016\/09\/variables-300x123.jpg 300w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2016\/09\/variables-360x147.jpg 360w\" sizes=\"auto, (max-width: 704px) 100vw, 704px\" \/><\/a><\/p>\n<p>Como habr\u00e9is observado, SASS tambi\u00e9n nos permite <strong>anidar selectores<\/strong> de forma que as\u00ed evitamos tener que repetir constantemente los prefijos de alcance en los selectores CSS.<\/p>\n<p><a href=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2016\/09\/scss-anidacion.jpg\" data-rel=\"lightbox-image-3\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-4111 aligncenter\" src=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2016\/09\/scss-anidacion.jpg\" alt=\"scss anidacion\" width=\"703\" height=\"399\" srcset=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2016\/09\/scss-anidacion.jpg 703w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2016\/09\/scss-anidacion-300x170.jpg 300w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2016\/09\/scss-anidacion-360x204.jpg 360w\" sizes=\"auto, (max-width: 703px) 100vw, 703px\" \/><\/a><\/p>\n<p>De esta manera <strong>simplificamos el c\u00f3digo<\/strong> de nuestro documento.<\/p>\n<h3><strong>El selector \u00ab&amp;\u00bb<\/strong><\/h3>\n<p>Con este selector nos ahorramos escribir un selector varias veces, b\u00e1sicamente es un selector que sirve para llamar al mismo selector que estamos usando.<\/p>\n<p><a href=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2016\/09\/selector-.jpg\" data-rel=\"lightbox-image-4\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-4112 aligncenter\" src=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2016\/09\/selector-.jpg\" alt=\"selector &amp;\" width=\"706\" height=\"394\" srcset=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2016\/09\/selector-.jpg 575w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2016\/09\/selector--300x167.jpg 300w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2016\/09\/selector--360x201.jpg 360w\" sizes=\"auto, (max-width: 706px) 100vw, 706px\" \/><\/a><\/p>\n<p>Tambi\u00e9n se puede colocar detr\u00e1s:<\/p>\n<p><a href=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2016\/10\/amphersand-detras.jpg\" data-rel=\"lightbox-image-5\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-4160 aligncenter\" src=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2016\/10\/amphersand-detras.jpg\" alt=\"amphersand detras\" width=\"734\" height=\"462\" srcset=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2016\/10\/amphersand-detras.jpg 565w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2016\/10\/amphersand-detras-300x189.jpg 300w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2016\/10\/amphersand-detras-360x227.jpg 360w\" sizes=\"auto, (max-width: 734px) 100vw, 734px\" \/><\/a><\/p>\n<p>De esta forma conseguimos que todos los enlaces que est\u00e9n colocados dentro de un elemento con la clase <em>link<\/em> sean de color verde.<\/p>\n<h3><strong>Extender<\/strong><\/h3>\n<p>Podemos <strong>extender estilos a otras declaraciones<\/strong>, para los casos en que dos selectores tengan los mismos estilos con alguna excepci\u00f3n.<\/p>\n<p><a href=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2016\/09\/extend.jpg\" data-rel=\"lightbox-image-6\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-4113 aligncenter\" src=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2016\/09\/extend.jpg\" alt=\"extend\" width=\"734\" height=\"458\" srcset=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2016\/09\/extend.jpg 765w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2016\/09\/extend-300x187.jpg 300w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2016\/09\/extend-360x224.jpg 360w\" sizes=\"auto, (max-width: 734px) 100vw, 734px\" \/><\/a><\/p>\n<h3><strong>Importar<\/strong><\/h3>\n<p>La funci\u00f3n de importar nos permite dividir un fichero en varios m\u00e1s peque\u00f1os y sencillos de mantener, si nombramos a estos ficheros con un <strong>guion bajo<\/strong> delante, SASS sabr\u00e1 que <strong>no tiene que compilar ese fichero<\/strong>.<\/p>\n<p>Imaginad que tenemos 3 ficheros, los cuales se llaman estilos.scss, _variables.scss y _formularios.scss.<\/p>\n<p>Lo que deber\u00edamos escribir en el fichero principal que este caso es estilos.scss ser\u00eda esto:<\/p>\n<p><em><strong>@import<\/strong> \u2018_variables.scss\u2019;<\/em><\/p>\n<p><em><strong>@import<\/strong> \u2018_formularios.scss\u2019;<\/em><\/p>\n<p>De esta manera, estos ficheros se incluir\u00edan cuando el fichero estilos.scss sea procesado.<\/p>\n<p>Tambi\u00e9n existe la opci\u00f3n de importar un fichero que su nombre no empiece por guion bajo en otro fichero, de esta forma el c\u00f3digo se generara tanto de manera individual como en el fichero en el que ha sido importado.<\/p>\n<h3><strong>Mixins<\/strong><\/h3>\n<p>Gracias a los mixins podemos escribir nuestras propias <strong>funciones<\/strong> con los <strong>par\u00e1metros<\/strong> que definamos.<\/p>\n<p>Se declaran con <strong>@mixin<\/strong> + el nombre de la funci\u00f3n + el nombre de la variable y se incluyen en el c\u00f3digo scss con <strong>@include<\/strong> + el nombre de la funci\u00f3n + el valor de la variable.<\/p>\n<p><a href=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2016\/09\/mixin-good.jpg\" data-rel=\"lightbox-image-7\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-4127 aligncenter\" src=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2016\/09\/mixin-good.jpg\" alt=\"mixin good\" width=\"670\" height=\"514\" srcset=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2016\/09\/mixin-good.jpg 563w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2016\/09\/mixin-good-300x230.jpg 300w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2016\/09\/mixin-good-360x276.jpg 360w\" sizes=\"auto, (max-width: 670px) 100vw, 670px\" \/><\/a><\/p>\n<h3><strong>La instalaci\u00f3n de SASS<\/strong><\/h3>\n<p>SASS es una <strong>gema de ruby<\/strong> y su instalaci\u00f3n es muy sencilla.<\/p>\n<p>En Windows:<\/p>\n<ul>\n<li>Instalamos\u00a0ruby.<\/li>\n<li>Despu\u00e9s, instalamos\u00a0las gemas en la consola de ruby \u201cgem install sass\u201d<\/li>\n<li>A continuaci\u00f3n instalamos\u00a0Compass \u201cgem install compass\u201d<\/li>\n<li>Elegir la ruta.<\/li>\n<li>Crear el Proyecto \u201ccompass create Proyecto\u201d (En la consola)<\/li>\n<li>Configurar el config.rb y crear las carpetas necesarias.<\/li>\n<li>Lanzar el compass \u201ccompass watch\u201d<\/li>\n<\/ul>\n<p>En Linux y MAC:<\/p>\n<ul>\n<li>Ruby viene pre-instalado en el sistema en Mac y Linux.<\/li>\n<li>Si no viene preinstalado en Linux: \u201csudo apt-get install ruby\u201d<\/li>\n<li>\u201csudo gem install sass\u201d<\/li>\n<li>\u201csudo gem install compass\u201d<\/li>\n<\/ul>\n<p>En conclusi\u00f3n, al usar <strong>SCSS<\/strong> se <strong>aumenta la productividad del trabajo<\/strong> generado en las hojas de estilo, ya que al hacer la maquetaci\u00f3n en SCSS se ahorra un gran n\u00famero de caracteres y ficheros de 70.000 caracteres pasan a ser de 30.000 (aproximadamente), esto traducido a tiempo supone un notable ahorro, y a parte con SCSS el <strong>c\u00f3digo<\/strong> est\u00e1 m\u00e1s <strong>organizado\u00a0<\/strong>y <strong>claro,<\/strong> y es <strong>m\u00e1s f\u00e1cil de leer<\/strong> para otra persona.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00bfQu\u00e9 es CSS y qu\u00e9 es SASS? CSS \u00abCascading Style Sheets\u00bb es un lenguaje de hojas de estilo,\u00a0sirve para organizar la presentaci\u00f3n&#8230;<\/p>\n","protected":false},"author":37,"featured_media":4108,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_ayudawp_aiss_exclude":false,"footnotes":""},"categories":[11],"tags":[],"class_list":{"0":"post-4107","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-hiberus"},"acf":[],"_links":{"self":[{"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/posts\/4107","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/users\/37"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/comments?post=4107"}],"version-history":[{"count":1,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/posts\/4107\/revisions"}],"predecessor-version":[{"id":14843,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/posts\/4107\/revisions\/14843"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/media\/4108"}],"wp:attachment":[{"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/media?parent=4107"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/categories?post=4107"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/tags?post=4107"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}