Un día...
nuestro jefe/diseñador/cliente:
Una mañana se levanta y nos dice:
-he tenido una premonición, seguro que si le cambiamos los colores a los botones y títulos de nuestra web por un turquesa-verde-acuoso nos llegarán más visitas según un estudio que hicieron en la Universidad de Villarriba.
¿Puedes probarlo para ver como queda?
Debilidades de CSS
- Falta de características básicas
- Mantenimiento complicado de archivos
- @import
- Don't repeat yourself
- Funciones
- Variables
- Visión no jerarquizada del código
- Prefix Vendors
- Los jefes ó clientes, colores y tamaños
Falta de características básicas
Para ser un lenguaje con suficiente edad aun le faltan muchas de las características básicas que debe tener para que su uso sea más amigable y usable.
Un mantenimiento imposible
- Mantener una hoja de estilos de un proyecto grande puede ser una verdadera pesadilla.
- El trabajo colaborativo, con control de versiones, se complica con ficheros tan grandes
- La división y modularización facilita mucho el proceso
- El dichoso @import de CSS
Don't repeat yourself
CSS nos hace monos repitiendo cosas constantemente
a.boton{
font-size: 16px;
color: black;
border: 1px solid #00ffcc;
display: inline-block;
vertical-align: top;
}
span.boton{
font-size: 16px;
color: red;
border: 1px solid #00ffcc;
display: inline-block;
vertical-align: top;
}
#header{
max-width: 1200px;
}
a.boton{
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
color: #00ffcc;
}
#menu{
max-width: 1200px;
}
Código no jerarquizado
Malditos prefijos
Sí, todo el mundo está de acuerdo en que CSS3 es la caña de España, todos menos los navegadores, que cada uno implementa las cosas con su motor interno. De ahí el uso obligatorio de prefijos.
//Es así
a.boton{
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
}
span.sombra{
-webkit-box-shadow: 1px 1px 0.5em #fff;
-mox-box-shadow: 1px 1px 0.5em #fff;
box-shadow: 1px 1px 0.5em #fff;
}
//Lo que debería ser así
a.boton{
border-radius: 5px;
}
span.sombra{
box-shadow: 1px 1px 0.5em #fff;
}
Pre-procesadores CSS
- Qué son y qué no son
- Para qué nos ayudan
- ¿debemos utilizarlos?
¿Qué son y qué no son?
- Qué son
- programas que trabajan con archivos
- No hacen
- no modifican el estándar CSS
- no hacen magia
- Sí hacen
- nos ayudan a hacer mejor las cosas y más organizadamente
- nos ayuda a modular nuestros archivos
- exportan un archivo de tipo css, nada raro
- Concatenan
- Minifican
- etc...
Más o menos sería esto
Stylus
- Sintaxis
- Selectores
- Variables
- Operadores
-
Funciones
- Mixins
- Import
- Minificación
- Nib
Sintaxis
Poderes de Stylus
- Limpieza
- Anidación multinivel
- Sin puntos y comas
- Sin llaves
- Sin comas
- Importación
- Compresión
Sintaxis
body{
font: 12px Arial;
background-color:white;
}
a.button{
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
}
a.button span{
color: green;
}
a.button span strong{
text-decoration: underline;
}
body
font 12px Arial
background-color white
a.button
border-radius 5px
span
color grenn
strong
text-decoration underline
Selector nestin y multi
body.contacto .direccion p, body.contacto .direccion div, body.contacto .direccion h5{
font-style: normal;
}
body.contacto
.direccion
p
div
h5
font-style normal
Selector de referencia
a.boton
color black
span
text-decoration underline
&:hover
color yellow
span
text-decoration none
+
a.boton{
color: black;
}
a.boton span{
text-decoration: underline;
}
a.boton:hover{
color: yellow;
}
a.boton:hover span{
text-decoration: none;
}
Variables
Como todo lenguaje decente el uso de variables
nos servirá para poder ser utilizadas
en cualquier parte de nuestro código.
body{
font: 16px Arial, sans-serif;
}
T_Base = 16px
T_Grande = 18px
T_Pequeño = 14px
body
font T_Base Arial, sans-serif
Variables
Cálculos sobre variables o propiedades
w=500px
h=200px
div.login
width w
height h
margin-left -w/2
margin-top -h/2
p
width w/4
div.login
position absolute
top 50%
left 50%
width 500px
height 200px
margin-left -(@width/2)
margin-top -(@height/2)
Operadores
+
Operadores y funciones con colores
#888 + #111
// => #0f0
#888 + 50%
// => #444
red(#c00)
// => 204
green(#0c0)
// =>204
darken(#D62828, 30%)
// => #551010
lighten(#2c2c2c, 30%)
// => #393939
invert(#d62828)
// => #29d7d7
Funciones
Hay que tener en cuenta que las funciones en
stylus siempre devuelven un valor, no como en algunos
lenguajes de programación, esto nos servirá para identificarlas
y no confundirlas con un Mixin
Las funciones se pueden reutilizarsuma(a,b)
a+b
resta(a,b)
a-b
compare(a,b)
if a > b
higher
else if a < b
lower
else
equal
Mixins
Los mixins se parecen a las funciones y permiten cualquier número de argumentos o el tipo de argumentos especial args...
¿Para qué?
#login{
-webkit-box-shadow: 1px 2px 5px #eee;
-moz-box-shadow: 1px 2px 5px #eee;
box-shadow: 1px 3px 5px #eee;
}
box-shadow(args...)
-webkit-box-shadow args
-moz-box-shadow args
box-shadow args
#login
box-shadow 1px 2px 5px #eee
Más cosas
-
Import
-
Minificación
-
Nim
Desventajas
-
Curva de aprendizaje
-
En equipos o todos o nadie
-
Cuesta volver al css normal :-)
Instalación
Para instalar Stylus debemos tener instalado previamente Node.js
pero eso no debe asustar. Es auto instalable.
http://nodejs.org
- Para windows
- Para mac
- Para linux
Instalación
$ (sudo) npm install -g stylus
$ stylus stilo.styl
$ stylus -w estilo.styl
$ stylus -c -w estilo.styl
Software
Software
Automatizadores
Livereload
Preguntas
Gracias, ¡seguimos en contacto!
Stylus => CSS con esteroides
By Bienvenido Sáez Muelas
Stylus => CSS con esteroides
En esta presentación os mostraré el fantástico mundo de los preprocesadores CSS y la forma en la que nos ayudarán en nuestro día a día como Fronteners o Maquetadores. Como caso particular os hablaré de Stylus
- 3,647