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?
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.
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;
}
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;
}
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
body.contacto .direccion p, body.contacto .direccion div, body.contacto .direccion h5{
font-style: normal;
}
body.contacto
.direccion
p
div
h5
font-style normal
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;
}
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
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)
+
#888 + #111
// => #0f0
#888 + 50%
// => #444
red(#c00)
// => 204
green(#0c0)
// =>204
darken(#D62828, 30%)
// => #551010
lighten(#2c2c2c, 30%)
// => #393939
invert(#d62828)
// => #29d7d7
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
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
Para instalar Stylus debemos tener instalado previamente Node.js
pero eso no debe asustar. Es auto instalable.
http://nodejs.org
$ (sudo) npm install -g stylus
$ stylus stilo.styl
$ stylus -w estilo.styl
$ stylus -c -w estilo.styl