Documentos de Académico
Documentos de Profesional
Documentos de Cultura
introduccionAlDisenoWeb PDF
introduccionAlDisenoWeb PDF
Hablar de HTML5 es ms bien hablar de una familia, la cual est constituida por HTML, CSS3 y JavaScript.
En la versin anterior de HTML ya se podan utilizar estas otras dos tecnologas, pero ahora HTML5 las soporta de
manera nativa, o sea, que al definir un script se sobreentiende que utilizaremos JavaScript, y lo mismo ocurre con
los estilos, se toma CSS3 por defecto. Tampoco hace falta indicarle al navegador la versin de HTML que estamos
utilizando, basta con slo indicar que es HTML.
Antes tenamos que escribir de la siguiente forma:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Hola Mundo!</title>
<script type="text/javascript" src="script.js"></script>
<link type="text/css" rel="stylesheet" href="styles.css">
</head>
Qu es HTML5?
HTML5 es un lenguaje de marcado, sus siglas significan Lenguaje de Marcado de HiperTexto. Sirve para
estructurar y presentar contenido para la web. Se trata de un sistema para darle formato al "layout" de nuestras
pginas. La diferencia principal con su predecesor es el nivel de sofisticacin del cdigo que podemos construir
usando HTML5.
El lenguaje HTML funciona a travs de marcas de sentido llamadas etiquetas, stas son la herramienta
fundamental para que los navegadores puedan interpretar el cdigo y permitirnos ver imgenes, textos y
estructuras. Los navegadores juegan el papel de traductores de etiquetas.
Etiquetas semnticas
www.nebaris.com
Estas etiquetas no tienen una representacin especial en pantalla, ya que todas se comportan como un div o un
span , pero agregan un significado superior. Los divs se siguen utilizando para cuando se necesitan cajas con
foro, un artculo en una revista, una entrada de blog, un comentario de un usuario, un widget interactivo o
cualquier otro contenido independiente.
<aside> : Ac se coloca todo contenido que no est relacionado con el objetivo primario de la pgina.
<footer> : Se cre para reemplazar a divs del estilo <div id="footer">
Ms etiquetas
Estas son las etiquetas por las cuales todos se estn volviendo locos por HTML5.
<video> : Agrega video sin necesidad de plugins. Cada navegador soporta codecs diferentes, por lo cual es
www.nebaris.com
Introduccin a CSS
CSS (Cascading Style Sheets u Hojas de Estilo en Cascada) es el responsable de describir la apariencia de los
elementos HTML.
Fue presentado junto a la versin 4 de HTML por el W3C para ayudar a solucionar los problemas que estaban
teniendo los desarrolladores con la versin 3.2, la cual inclua muchas tag de presentacin. Como HTML nunca fue
pensado para incluir tags de presentacin, el desarrollar y mantener pginas era bastante complicado.
Al separar el contenido de la presentacin, CSS hizo que HTML fuera ms semntico y mantenible, adems, hizo
que fuera ms simple el acceso a dispositivos como computadoras, impresoras, dispositivos mviles, etc.
Estado actual
Actualmente, CSS se encuentra en la versin 2.1 como estndar oficial, con partes de la versin 3 en estado de
recomendacin. Por suerte la W3C dividi las especificaciones de CSS3 en una serie de mdulos a ser
implementados de manera separada e independiente. Esto permiti que los navegadores pudieran implementar
mdulos sin tener que esperar a que toda la especificacin est finalizada.
Conceptos fundamentales
Cascada
La cascada determina qu propiedades son asignadas a un elemento. Existen 3 conceptos principales que
determinan qu propiedades se asignan a un elemento: importancia, especificidad y orden.
Importancia
La importancia depende del origen de la hoja de estilo. Las hojas de estilo pueden tener diferentes orgenes como:
estilos de agente de usuario, estilos de usuario y estilos de autor.
Estilos de agente de usuario: Son los estilos que aplica el navegador por defecto. Cada navegador tiene
sus estilos y es por eso que existen diferencias visuales entre uno y otro.
Estilos de usuario: Son los estilos especificados por el usuario. Generalmente son aplicados por usuarios
con necesidades especiales (fuentes grandes, colores especficos, contraste, etc.)
Estilos de autor: Son los estilos definidos por el diseador del sitio. Son las reglas que ms peso tienen.
Especificidad
La especificidad determina cul de las reglas CSS es aplicada por el navegador. Una vez que se decidi la
importancia de una regla, se asigna la especificidad. Si dos reglas se aplican sobre el mismo elemento, la regla
con el selector ms especfico obtiene precedencia.
Orden
Se refiere al orden del cdigo en el que los estilos son enlazados, incluidos o importados. Si hay dos hojas de
estilo enlazadas, la ltima tiene precedencia sobre la primera. O si dos reglas afectan al mismo elemento y tienen
la misma importancia y especificidad, la que aparezca ltima en la hoja de estilo, es la que ser aplicada.
www.nebaris.com
Herencia
La herencia indica que el valor de una propiedad es copiada del valor de la misma propiedad del elemento padre.
Por lo tanto, cuando se indica que una propiedad hereda, significa que el valor ser determinado por la herencia, a
menos que se especifique lo contrario. Por ejemplo, si en el elemento body se especifica que el color de la letra va
a ser rojo, todos los elementos p van a tener el color rojo de letra, a menos que se especifique otra cosa.
No todas las propiedades son heredadas, pero se puede forzar este comportamiento utilizando el valor inherit .
Reglas
Las reglas le dicen al navegador cmo debe mostrar los elementos. Una regla est compuesta por dos elementos:
un selector y una o ms declaraciones.
Selector
El selector es la parte que indica el elemento HTML al cual se le va a especificar un conjunto de propiedades. Los
selectores pueden contener ms de un elemento, pueden ser una combinacin de elementos, clases, id; como as
tambin utilizar combinadores que expliquen la relacin entre ellos.
Declaracin
Todo lo que est dentro de las llaves forma parte de la declaracin. Consiste en 1 o ms propiedades seguidas de
dos puntos y un valor.
Propiedad y valor
Son un conjunto de parmetros que definen la forma en que se muestra un documento, indican que parte hay que
modificar. Cada propiedad es seguida por un valor que especifica cmo debe estar determinada la propiedad.
Modelo de cajas
Una de las cosas bsicas al empezar a estudiar CSS, es entender el modelo de cajas. Cada elemento HTML,
puede ser pensado como una caja rectangular de contenido, relleno (padding), bordes (border) y mrgenes
(margin).
www.nebaris.com
El rea del centro es el contenido, el cual es el corazn del elemento. Puede contener texto, imgenes, etc.
El rea de padding rodea al contenido y la separa del borde.
El rea del borde es la parte ms alejada del contenido y sirve para delimitarlo.
Finalmente el rea de margen existe por fuera de la caja y es el espacio al rededor del elemento que lo
separa de los dems elementos.
Agregar CSS
Existen cuatro formas de agregar CSS a una pgina web.
Estilos inline
Los estilos inline mezclan el contenido con la presentacin. Para agregarlos se utiliza el atributo style dentro de un
elemento HTML.
<p style="color: red">...</p>
Estos estilos se encuentran en la parte ms baja de la cascada, lo cual indica que sobrescribirn a cualquier otro
estilo declarado.
No es recomendable usarlos, ya que si necesitamos cambiarlos, deberemos modificar directamente el contenido
(uno por uno). A pesar de eso, son buenos para crear prototipos o para utilizar estilos temporales que no se van a
compartir con otros elementos de la pgina.
Estilos internos
www.nebaris.com
Se incluyen en la cabecera de la pgina y se definen utilizando la etiqueta <style> . Con este mtodo se pueden
escribir todas las reglas dentro del archivo HTML.
<style>
p {
color: red;
}
</style>
Son tiles para uso temporal o para testing; para otro uso no estn indicados, ya que si tenemos una web grande,
con muchas pginas, tendremos que estar repitiendo el estilo en cada una de ellas, lo cual hara del
mantenimiento una tarea imposible.
El atributo rel indica la relacin entre el documento actual y el documento que est siendo enlazado, que en este
caso es una hoja de estilo. El atributo href hace referencia a la ruta donde se encuentra el archivo a enlazar.
Una de las ventajas de esta forma, es que una vez descargada la hoja de estilos, esta queda almacenada en el
navegador y no se vuelve a descargar en cuanto navegamos a otra pgina de la misma web. Esto reduce
considerablemente el tiempo de carga de nuestras pginas.
Este es el mtodo ms utilizado a la hora de agregar CSS a una pgina.
Estilos importados
Este mtodo nos permite importar CSS desde otros archivos, con lo cual comparte algunas de las ventajas de los
estilos externos. La regla @import se puede utilizar en pginas o en hojas de estilo.
Con este mtodo podemos hacer que nuestras hojas de estilo sean ms modulares, separando el cdigo en
diferentes archivos.
@import 'botones.css';
@import 'tipografia.css';
@import 'imagenes.css';
La contra, es que cada llamada @import es un nuevo HTTP request, lo cual hace que nuestra web tarde ms en
cargar.
www.nebaris.com
Introduccin a jQuery
Aunque ya hemos hablado en muchas ocasiones sobre jQuery, varias personas me preguntaron si poda hacer un
artculo introductorio. As que para ayudar a todos los que todava no saben jQuery, hoy vamos a empezar por el
principio.
JavaScript es un lenguaje de programacin del lado del cliente, utilizado para aadirle interactividad (o
comportamiento) a una pgina.
jQuery es una librera JavaScript que incluye muchsimas funcionalidades como: manejo de eventos, navegacin
del DOM, animaciones, interaccin Ajax, etc. jQuery realmente simplifica la programacin JavaScript.
Para incluir jQuery en tu proyecto lo nico que necesits es descargarlo desde la pgina jQuery.com y hacer una
llamada en tu pgina al archivo jquery.js.
<script src="jquery.js"></script>
La funcin jQuery
Lo ms importante es saber cmo seleccionar elementos HTML con jQuery. jQuery es una funcin a la que se le
pueden pasar argumentos, del cual el ms comn es un string con un selector CSS. Estos selectores permiten
indicar cules son los elementos HTML deseados para aplicarles un comportamiento.
Si queremos seleccionar todos los prrafos lo haramos de la siguiente manera:
jQuery('p');
Por suerte, como jQuery utiliza los selectores de la misma forma que CSS, el llegar a los elementos es realmente
simple, si ya tenemos conocimientos de CSS.
Para agilizar las cosas, cuando trabajamos con jQuery, existe una forma abreviada de llamar al mtodo jQuery:
utilizando el smbolo "$". Por lo tanto la anterior lnea de cdigo la haramos de la siguiente forma:
www.nebaris.com
$('p');
Para obtener la misma funcionalidad con JavaScript tendramos que hacer lo siguiente:
document.getElementsByTagName('p');
Formas de seleccin:
Elemento: $('tag html') - ejemplo $('blockquote');
ID: $('#id') - ejemplo $('#contenedor');
Clase: $('.clase') - ejemplo $('.importante');
Tambin podemos hacer una conjuncin de varias de estas formas, para lograr un selector realmente complejo:
// selecciona el span marcado con clase actual,
// dentro de una etiqueta a
// dentro de un div con ID navegacin
$('div#navegacion a span.actual');
Para asegurarnos que el cdigo se ejecute una vez que la pgina est correctamente cargada, podemos hacer
uso del evento ready (esto nos puede evitar muchos problemas a futuro):
$( document ).ready(function() {
// cdigo
});
Propiedades y atributos
Ahora que ya sabemos seleccionar elementos, es momento de hacer algo con ellos. Hay varias funciones que
podemos aplicar y la forma de utilizarlas es agregndolas al final del elemento seleccionado. Por ejemplo, para
cambiar el color del texto de los elementos "p", tenemos que hacer lo siguiente:
// todos los elementos p tendrn el texto en color rojo
$('p').css('color', 'red');
Si en cambio queremos modificar la clase de un elemento, podemos utilizar la funcin addClass() (removeClass
nos permite quitar una clase):
$('a').addClass('importante');
www.nebaris.com
Eventos
Hasta ahora, las cosas son bastante estticas. Para interacutar con los elementos se utilizan los manejadores de
eventos. Por ejemplo, cuando se haga click sobre un enlace, ocultaremos un texto:
$('a #ocultar').click(function() {
$('span #aOcultar').hide();
});
Es interesante observar que como parmetro, la funcin click recibe una funcin annima (sin nombre), en la cual
indicamos lo que va a ocurrir cuando se de dicho evento.
Existe una gran cantidad de eventos que nos proporciona jQuery, para poder verlos todos, pods consultar la
pgina de eventos de jQuery.
Animaciones
Otra cosa interesante que podemos hacer con jQuery, es animar elementos. Para ello, slo tenemos que indicarle
a la funcin animate() cules son las propiedades CSS que van a cambiar del elemento y la velocidad de la
animacin.
$("#divAnimado").animate(
{
width: "500px",
height: "700px"
}, 2000);
Tambin podemos hacer uso de las funciones slide, que nos permiten mover los elementos por la pantalla.
$("#divAnimado").slideDown("fast", function() {
// cdigo
}
$("#divAnimado").slideUp("slow", function() {
// cdigo
}
www.nebaris.com
10
Anatoma
Developer Tools contiene varios elementos de los cuales podemos hacer uso. Vamos a enumerarlos para entender
mejor su funcin.
Nota: si al abrir las herramientas, estas aparecen adosadas a la ventana, utilizando el cono que se encuentra en
la esquina inferior izquierda, pods hacer que se muestre en una ventana nueva.
1. Elemento que est siendo inspeccionado
2. Tabs que nos ofrecen acceso a los diferentes recursos
3. Panel de propiedades
4. Modificar las configuraciones
5. rbol DOM desde la raz hasta el elemento inspeccionado
www.nebaris.com
11
Manipulando el CSS
Tenemos seleccionada la tag h1 y podemos ver en el Panel de propiedades todos los estilos que se le aplican a
ese elemento.
1. Nos indica cmo se llama el archivo CSS donde est incluida la regla, junto con la lnea de dicho archivo
2. Nos indica la regla exacta
3. Nos permite activar/desactivar una propiedad
Haciendo click sobre el nombre de la propiedad o el valor, podemos modificarlos y ver automticamente este
cambio reflejado en la pgina. Tambin es posible, haciendo un click en la llave de cierre, agregar una nueva
propiedad.
Consola
Supongamos que tenemos un error en nuestro script y no sabemos donde. Al abrir la consola, podremos ver algo
como lo siguiente:
Nos indica cul es el error, en dnde est (archivo y lnea) y en la esquina derecha inferior nos muestra un cono
con la cantidad de errores encontrados.
Si hacemos un click en el nombre del script, pasaremos a la ventana Sources, donde podremos ver claramente
www.nebaris.com
12
Tambin podemos agregar cdigo a la pgina. Por ejemplo, hacemos por jQuery que cada vez que se hace click
en un elemento h1, este cambie su color por el rojo.
Hacemos click sobre el ttulo y comprobamos, que a pesar de no estar en el cdigo original, al agregar nuestro
cdigo jQuery la pgina funciona como esperamos. Esto nos permite hacer pruebas de manera real antes de
agregar nuestro cdigo al archivo.
www.nebaris.com
13
Debug
Cuando necesitamos hacer un seguimiento paso a paso del cdigo para verificar una condicin o error, tenemos
que agregar al cdigo JavaScript la siguiente sentencia:
debugger;
Con eso, mientras tengamos las herramientas activas, al llegar a esa parte del cdigo la pgina dejar de cargarse
y las Developer Tools tomarn el control del flujo.
14
Si ests trabajando con un archivo minificado, pods utilizar el botn de Pretty print para que sea fcil leerlo.
Resources
www.nebaris.com
15
La vista de recursos bsicamente muestra todos los recursos que son utilizados por la pgina, incluyendo
almacenamiento de sesin, cookies, almacenamiento local, imgenes, scripts, estilos, etc.
Desde esta ventana se pueden eliminar cookies, aadir valores al almacenamiento local, etc.
Network
Esta ventana muestra con mucho detalle los tiempos de carga de cada uno de los recursos que utiliza la pgina.
Esto nos sirve para hacer diagnsticos sobre problemas que tengamos con la lentitud de nuestro proyecto.
www.nebaris.com
16
www.nebaris.com
17
Cmo funcionan?
Bsicamente, el flujo de trabajo es el siguiente:
Se escribe cdigo en un lenguaje de preproceso
Mediante un cliente, se compilan los archivos de cdigo
Se obtiene una hoja de estilos en CSS
Sintaxis
Veamos algunos ejemplos bsicos escritos en Sass, LESS y el resultado que producen en CSS; para ver las
diferencias.
Variables: Los preprocesadores permiten definir variables, lo que hace al cdigo ms mantenible. Modificar un
slo valor, es mucho ms fcil que modificar varios en toda la hoja de estilo.
/* sass */
$colorBlanco: #fff;
body {background:
$colorBlanco;}
/* less */
@colorBlanco: #fff;
body {background:
@colorBlanco;}
/* resultado */
body {background:
#fff;}
Las variables no slo se pueden usar como valor, sino que tambin se pueden concatenar con strings o con las
propiedades de CSS.
/* sass */
www.nebaris.com
18
$lado: top;
border-#{$lado): 1px solid #000;
/* resultado */
border-top: 1px solid #000;
/* less */
@base-url: "http://www.nebaris.com";
background-image: url("@{base-url}}/imagenes/bg.png");
/* resultado */
background-image: url("http://www.nebaris.com/imagenes/bg.png");
Anidamiento: El anidamiento viene a solucionar el problema de tener que escribir muchas veces el mismo padre
para muchos elementos.
/* sass y less */
section {
margin: 10px;
nav {
height: 25px;
a {
color: #0982C1;
&:hover {
text-decoration: underline;
}
}
}
}
/* resultado */
section {
margin: 10px;
}
section nav {
height: 25px;
}
section nav a {
color: #0982C1;
}
section nav a:hover {
text-decoration: underline;
}
Mixins: Los mixins son funciones que permiten reusar propiedades en la hoja de estilo.
/* sass - mixin error con argumento opcional */
/* en caso de no pasarle argumentos, por defecto es 2px */
@mixin error($anchoBorde: 2px) {
border: $anchoBorde solid #F00;
www.nebaris.com
19
color: #F00;
}
.error-generico {
padding: 20px;
margin: 4px;
@include error();
}
.error-login {
left: 12px;
position: absolute;
top: 20px;
@include error(5px);
}
/* resultado */
.error-generico {
padding: 20px;
margin: 4px;
border: 2px solid #f00;
color: #f00;
}
.error-login {
left: 12px;
position: absolute;
top: 20px;
border: 5px solid #f00;
color: #f00;
}
Herencia: La herencia es la habilidad de los selectores de poseer las propiedades de un selector padre. En este
caso, solo veremos el ejemplo para Sass, ya que Less no soporta la herencia.
/* sass */
www.nebaris.com
20
.block {
Importacin: En la comunidad CSS la importacin no est bien vista, ya que requiere mltiples pedidos HTTP.
Con los preprocesadores, al importar un archivo, ste se incluye durante la fase de compilacin, creando un slo
archivo CSS.
/* sass y less */
/* tipo debe reemplazarse por la extensin del preprocesador, .less o .scss */
/* estilo.{tipo} */
body {
background: #EEE;
}
@import "reset.css";
@import "estilo.{tipo}";
p {
background: #0982C1;
}
/* resultado */
@import "reset.css";
body {
background: #EEE;
}
p {
background: #0982C1;
www.nebaris.com
21
}}
Principales preprocesadores
A la hora de elegir, existen varios preprocesadores CSS. Bsicamente todos tienen la misma funcionalidad,
agilizan la creacin de archivos CSS. La eleccin de uno sobre otro es ms una cuestin de gustos.
Te dejo una lista de los principales preprocesadores, para que puedas elegir cul utilizar.
Less
Sass
Switch CSS
More CSS
CSS Cacheer
CSS Preprocessor
Stylus
DtCSS
www.nebaris.com
22
3 - Aislamiento
Ya tenemos la pgina de prueba, ahora tenemos que copiar todos los recursos necesarios (imgenes, archivos
CSS y JavaScript externos, etc.) en el nuevo directorio que creamos. Ya tenemos creado un pequeo entorno de
pruebas que nos va a permitir tocar por aqu y por all sin que nada de lo importante se rompa.
Al trabajar de estar forma, no slo podemos estar tranquilos de los cambios, sino que hacemos que el caso de
prueba sea portable, para poder replicarlo en otro lado.
23
continuamos.
5 - Archivos externos
Si utilizamos archivos externos y detectamos que al agregarlos tenemos un problema, lo mejor es tratar de poner
estos archivos en el documento de prueba que estamos utilizando.
Remplazar las tags link por style , poniendo los selectores en la pgina
Reemplazar los enlaces de script por cdigo embebido
Reemplazar los enlaces de las imgenes por la direccin equivalente en la carpeta para el test
6 - Reducir
Una vez que terminamos con la etiqueta head , tenemos que empezar a reducir el cdigo de la etiqueta body . Este
va a ser el lugar donde ms pasemos el tiempo, ya que podemos tener muchsimas lneas de cdigo para analizar.
La regla general es ir eliminando etiquetas de forma entera (desde la apertura hasta el cierre). Teniendo en cuenta
que cada vez que eliminemos un elemento, debemos guardar y volver a refrescar el navegador para constatar los
cambios.
7 - Documentar
Si existen partes del cdigo que suponemos que pueden ser el problema, deberamos indicarlo poniendo
comentarios en el cdigo. Esto va a ayudar a la tarea de los que sean responsables de solucionar dicho error.
Herramientas
Existen varias herramientas que nos pueden ayudar al momento de tener que lidiar con bugs en el frontend. La
siguiente es una pequea lista de ellas:
Editores de texto con sintxis coloreada:
Notepad++
Sublime Text
Analizadores del DOM. Permiten hacer modificaciones en vivo sobre el documento, as como tambin jugar
con los estilos y scripts
Firebug
Google Chrome Developer Tools
DOM Inspector permite inspeccionar y editar
JSFiddle nos permite hacer un pequeo caso de prueba sin tener que implementarlo de forma local
Validadores
The W3C HTML Validator
The W3C CSS Validator
JSLint
JSHInt
www.nebaris.com
24
Introduccin a CoffeeScript
CoffeeScript es un lenguaje que se compila a JavaScript y que se ha vuelto muy popular dentro de la comunidad
Node.js y Rails. Si la sintxis de JavaScript (llena de llaves, parntesis y puntos y comas) no termina de gustarte;
quizs CoffeeScript sea lo que ests necesitando.
Qu es CooffeeScript?
Bsicamente es una reescritura sintctica de JavaScript. La sintaxis que utiliza CoffeeScript es muy parecida a
Ruby o Python. El cdigo en archivos .coffee no se interpreta como JavaScript, sino que se compila a archivos .js.
Instalacin
Para poder trabajar, es necesario instalar CoffeeScript en nuestra computadora.
Windows
Hay que visitar el sitio http://nodejs.org/, descargar el instalador y seguir los pasos que ste nos indique.
Una vez instalado Node.js, abrir una consola y tipear el siguiente comando:
npm install -g coffee-script
OS X
Podemos instalar CoffeeScript utilizando Homebrew, que es un administrador de paquetes de cdigo abierto para
OS X.
Verificamos que Homebrew est actualizado ejecutando en la terminal el siguiente comando:
brew update
26
Cmo trabajar?
Existen diferentes formas de trabajar con CoffeeScript:
1 - REPL
Si en la consola escribimos el comando coffee sin parmetros, se abrir un shell interactivo parecido al IRB de
Ruby. Es una buena herramienta para experimentos rpidos.
2 - Compilacin a demanda
Podemos indicarle a CoffeeScript que queremos compilar todos los archivos de un directorio y que el resultado lo
coloque en otro directorio. Para ello, tenemos que ejecutar el siguiente comando:
coffee -o directorioSalida/ -c directorioEntrada/
3 - Compilacin al vuelo
De la forma anterior, cada vez que hacemos un cambio y queremos que se compile, tenemos que ejecutar el
comando. Si en su lugar queremos que CoffeScript est vigilando si hay cambios y que automticamente compile,
podemos ejecutar este comando:
coffee -w -o directorioSalida/ -c directorioEntrada/
Sintaxis
Variables
En CoffeeScript, las variables no requieren la palabra reservada var . Solamente indicamos su nombre y el valor
que va a poseer.
www.nebaris.com
27
nombre = "Gabriel"
edad = 28
Con los strings, podemos utilizar el smbolo # seguido de llaves, para agregar el contenido de una variable a otra:
// mostrar Gabriel Kaplan
apellido = "#{nombre} Kaplan"
Funciones
Las funciones se definen de la siguiente manera:
<nombre> = (<parmetros, si hubiera>) ->
<linea de cdigo 1>
<linea de cdigo 2>
...
No se indica la palabra return, ya que siempre se devuelve el resultado de la ltima lnea de cdigo.
Vamos a ver un par de ejemplos:
saludar = ->
"Hola mundo"
saludo = (nombre) ->
"Hola #{nombre}"
Arreglos
Se pueden inicializar arreglos de diferentes formas:
// forma 1 - una sola lnea
arreglo = ["Hola", "como", "estan?"]
// forma 2 - multi lnea
arreglo = [
"Hola",
"como",
"estan?"
]
// forma 3 - sin comas
arreglo = [
"Hola"
"como"
"estan?"
]
www.nebaris.com
28
// forma 4 - mezcla
arreglo = [
"Hola", "como",
"estan?"
]
Objetos
Al crear objetos JSON, podemos evitar las comas y las llaves, de la siguiente forma:
kiss =
miembro:
nombre: "Gene Simmons",
instrumento: "bajo"
miembro:
nombre: "Paul Stanley",
instrumento: "guitarra"
miembro:
nombre: "Ace Frehley",
instrumento: "guitarra"
miembro:
nombre: "Peter Criss",
instrumento: "batera"
Rangos
Los rangos no son un estructura estndar de JavaScript, por lo cual se compilan como arreglos. Se crean
indicando dos enteros separados por dos puntos en medio de corchetes.
dias = [1..7]
Clases
Las clases se crean indicando la palabra class en conjunto con el nombre de la misma. Los mtodos que posea
esta, se indican con dos puntos seguidos del operador -> .
Los atributos de la clase se indican con un arroba.
// forma 1
class Auto
constructor: (marca) ->
@marca = marca
// forma 2 - indicando la propiedad en la lista de argumentos
class Auto
constructor: (@marca) ->
www.nebaris.com
29
Equivalencias
CoffeeScript nos provee de alias para los operadores de JavaScript, lo cual ayuda a que nuestro cdigo sea ms
legible.
COFFEESCRIPT
JAVASCRIPT
is
===
isnt
!==
not
and
&&
or
||
yes, on
true
no, off
false
of
in
Por ejemplo:
// CoffeeScript
mostrar() if luz is on
// JavaScript
if(luz === true) {
mostrar();
}
// CoffeeScript
ganador = yes if numero in [47, 92, 13]
// JavaScript
if(numero === 47 || numero === 92 || numero === 13) {
ganador = true;
}
Adems, nos provee de un operador nuevo llamado "operador existencial"; el cual es un signo de pregunta ? . Este
operador nos devuelve verdadero a menos que la variable sea null o undefined .
// CoffeeScript
volumen = 5 if musica?
// JavaScript
if(typeof musica !== "undefined" && musica !== null) {
volumen = 5;
}
www.nebaris.com
30
Qu es Emmet?
Emmet es un plugin gratuito, para la mayora de los editores de texto, que nos ayuda a escribir de forma ms
rpida HTML y CSS. En este artculo vamos a ver cmo se usa y qu ventajas aporta.
Introduccin
La mayora de los editores de texto permiten guardar y reutilizar pedazos de cdigo llamados: spnippets. Los
snippets son muy tiles para mejorar la productividad, pero tienen dos problemas importantes:
Antes de usarlos hay que definirlos
No se pueden extender en tiempo de ejecucin
Emmet lleva el concepto de snippets al siguiente nivel, permitiendo escribir expresiones parecidas a CSS que
pueden ser convertidas dinmicamente y cuya salida producida depende de lo que hayamos tipeado en la
expresin.
Emmet est pensado para desarrolladores web que trabajan con HTML/XML y CSS, pero puede tambin ser
utilizado con lenguajes de programacin.
Pods instalar Emmet en la mayora de los editores de texto:
Visual Studio
Sublime Text
Eclipse
Dreamweaver
Coda
Brackets
Entre otros
Adems, muchos servicios online permiten el uso de Emmet, como:
http://jsfiddle.net/
http://codepen.io/
http://jsbin.com/
Cmo funciona?
www.nebaris.com
31
Como dijimos antes, Emmet utiliza una sintaxis parecida a CSS. Escribimos una expresin, colocamos el cursor al
final de la misma y apretamos la tecla tab , lo cual va a expandir la expresin y obtendremos el cdigo HTML o
CSS deseado.
Como se ve en la imagen, Emmet nos permite concatenar varias declaraciones. La siguiente es una lista de
algunos de los operadores soportados:
Elemento
Tipeando el nombre del elemento y apretando tab se expandir.
div se expandir a <div></div>
a se expandir a <a href=""></a>
Elemento con id
Se utiliza el numeral para aplicar un id a un elemento.
div#contenido se expandir a <div id="contenido"></div>
Elemento hijo
Se utiliza el caracter > para crear elementos hijos.
div>a se expandir a
<div>
<a href=""></a>
</div>
Elemento hermano
Se utiliza el ms, para crear un elemento hermano.
div+a se expandir a
<div></div>
www.nebaris.com
32
<a href=""></a>
Multiplicacin de elementos
Se utiliza el asterisco para crear mltiples elementos.
ul>li*3 se expandir a
<ul>
<li></li>
<li></li>
<li></li>
</ul>
Numeracin de tems
Se utiliza el smbolo pesos para crear una numeracin de tems.
ul>li.item$*3 se expandir a
<ul>
<li class="item1"></li>
<li class="item2"></li>
<li class="item3"></li>
</ul>
Cambiar contexto
Se utiliza el operador ^ para subir un nivel en el rbol del documento y cambiar el contexto donde aparecern los
siguientes elementos.
div>a^p se expandir a
<div>
<a href=""></a>
</div>
<p></p>
Agrupar
Se utilizan los parntesis para agrupar expresiones complejas.
(div>ul>li*3)+p>a se expandir a
<div>
<ul>
<li></li>
<li></li>
<li></li>
</ul>
</div>
<p>
<a href=""></a>
</p>
www.nebaris.com
33
Aadir texto
Las llaves permiten aadir texto a un elemento.
a{click aqu} se expandir a <a href="">click aqu</a>
Unidades
Por defecto, las unidades son los pixeles, si queremos incluir otras tendremos que indicarlo en la expresin.
Emmet nos otorga alias para las unidades ms utilizadas:
p -> %
e -> em
x -> ex
m10p se expandir a margin: 10%; .
Colores
Emmet utiliza los valores hexadecimales para indicar los colores y la forma de hacerlo es utilizando el numeral.
c#0 se expandir a color: #000 .
Como el numeral es un separador, no hace falta utilizar guiones, por lo cual podemos sumarlo a un valor de
medida, por ejemplo:
bd2#fs se expandir a border: 2px #fff solid;
www.nebaris.com
34
Qu es Brackets?
Brackets es un nuevo editor de cdigo enfocado en el diseo web desarrollado por Adobe. En este artculo
veremos algunas de sus principales caractersticas.
Introduccin
Brackets es un proyecto de cdigo abierto que est desarrollado para todo aquel que trabaje con HTML, CSS y
JavaScript. Lo interesante de este programa es que est desarrollado ntegramente en HTML, CSS y JavaScript, y
es utilizado para desarrollar el proyecto Brackets (inception de editores de cdigo).
Provee caractersticas interesantes como la edicin rpida, el desarrollo en vivo, etc.
Si SublimeText te parece muy caro, pero Notepad++ no te convence, Brackets puede ser tu nueva herramienta de
trabajo.
Las premisas de Brackets son:
Las herramientas no deben interponerse. El cdigo debe ser lo ms importante.
Sincronizacin con el navegador utilizando el desarrollo en vivo.
Hacerlo uno mismo. Todos pueden ayudar a mejorar el proyecto.
Edicin rpida
Muchas veces nos ocurre que queremos modificar una regla CSS aplicada a un elemento HTML, para lo cual hay
que abrir el archivo CSS y navegarlo hasta encontrar la regla que buscamos.
Brackets nos ofrece la posibilidad de editar una regla CSS de un elemento HTML directamente sobre el archivo
HTML. Para ello tenemos un comando (Ctrl + E / Cmd + E) que nos mostrar la regla asociada a dicho elemento.
Desarrollo en vivo
Si modificamos un archivo y queremos ver el resultado de dicha modificacin, tenemos que guardar el archivo, ir al
navegador y refrescar la pgina.
Brackets nos ofrece una conexin con el navegador, con lo cual, a medida que modificamos el cdigo, la pgina se
va refrescando sola. Esto se logra haciendo click en el cono del rayo, que se encuentra arriba a la derecha:
www.nebaris.com
35
Actualmente, el desarrollo en vivo slo funciona para cambios en archivos HTML y CSS y nicamente con el
navegador Google Chrome. Los cambios en archivos JavaScript son recargados cuando se guardan.
Adems, nos provee un resaltado de los elementos que estemos modificando, como cuando los seleccionamos
utilizando el Developer Tools del navegador.
Vista rpida
A la hora de utilizar colores, puede pasar que no sepamos qu color es un valor hexadecimal o RGB determinado.
Con Brackets, podemos poner el mouse sobre un valor y nos dar una vista rpida del color indicado.
Plugins
Como la mayora de los editores de cdigo, Brackets acepta plugins para agregar funcionalidad que el programa
no posee de fbrica. Existen montones de extensiones que podemos agregar para mejorar nuestra experiencia y
agilizar nuestro trabajo.
Para poder ver los plugins disponibles tenemos que ir a Archivo > Gestionar Extensiones...
Para aprender a crear extensiones pods leer este artculo en Github.
Ayudas en el cdigo
Brackets puede distinguir distintos tipos de archivo (utilizando sus extensiones) y con ello ofrecernos coloracin del
cdigo, lo cual es un punto muy importante a la hora de codificar.
www.nebaris.com
36
Adems, nos ofrece ayudas visuales sobre los parmetros de las funciones, por ejemplo:
Cdigo abierto
Todos pueden ayudar a crecer a Brackets. El programa se distribuye con licencia MIT y se puede descargar desde
la pgina de Github. La licencia MIT significa que pods utilizar el proyecto dentro de tu proyecto, que pods
vender dicho proyecto y que no ests obligado (legalmente) a darle dinero a Adobe.
Podemos, tambin, ver el curso del proyecto, observando las cosas que van implementando en los sprints
mediante el tablero Kanban en Trello.
Finalmente, se los puede contactar mediante los siguientes canales:
www.nebaris.com
37
Twitter: @brackets
Blog: http://blog.brackets.io/
IRC: #brackets on freenode
Developers mailing list: http://groups.google.com/group/brackets-dev
www.nebaris.com
38