Este documento presenta una introducción a los frameworks CSS. Explica brevemente qué son los frameworks CSS y sus ventajas e inconvenientes. Luego, ofrece una panorámica de varios frameworks populares como 1Kb CSS Grid, 960 Grid System, Blueprint, Foundation y Bootstrap, describiendo sus características principales. Finalmente, discute algunos factores a considerar a la hora de elegir un framework para un proyecto en particular.
4. ¿Quién soy?
• Consultor, diseñador y
desarrollador front-end
especializado en crear sitios
web centrados en el usuario
• Más de 11 años experiencia
en diversos aspectos del
desarrollo web
• Fundamentalista de los
estándares web
6. Introducción
• Problemática del desarrollo con CSS
• ¿Qué es un Framework CSS?
• Ventajas e Inconvenientes
• Panorámica de Frameworks CSS
• Comparativa
• Entonces, ¿cuál elijo?
8. Problemática del desarrollo CSS
• Es lento:
– Diseño distinto en cada proyecto
– Preparación y optimización de gráficos
– Carácter artesano
• Reutilización de código anterior
• Se dedica mucho tiempo a tareas
infructuosas (depurar para IE,
extensiones propietarias,....)
9. Problemática del desarrollo CSS
• No existen normas a la hora de
programar en CSS (nomenclaturas,
identación,...)
• Dificultad con código de terceros
(incluso, dentro de un mismo equipo)
• El programador “puro” no sabe CSS:
– NO es un lenguaje de programación
• …
11. ¿Qué es un Framework CSS?
“Un conjunto de herramientas, librerías,
convenciones y buenas prácticas que
abstraen tareas repetitivas y
rutinarias en elementos genéricos
que pueden reutilizarse.”
JEFF CROFT
http://www.alistapart.com/articles/frameworksfordesigners/
12. ¿Y CUÁL ES SU OBJETIVO?
“Que el desarrollador o diseñador se
enfoque en las tareas que son
exclusivas de un determinado
proyecto, en lugar de reinventar la
rueda una y otra vez.”
JEFF CROFT
http://www.alistapart.com/articles/frameworksfordesigners/
14. Ventajas
• Aumentan la productividad
• Código más consistente y estructurado
• Testeo y depuración minimizada
• Facilidad de mantenimiento
• Facilita el trabajo en equipo
• Agilizan la repetición de procesos
• Otras: preprocesado en servidor
(LESS/SASS), integración en CMS,...
15. Inconvenientes
• Curva de aprendizaje
• Exceso de código HTML y CSS
• Código y clases no semánticas
• Código “ajeno”
• ¿Más lento que partir de cero?
• ¿Restricciones de diseño?
16. Inconvenientes
• Curva de aprendizaje
• Exceso de código HTML y CSS
• Código y clases no semánticas
• Código “ajeno”
• ¿Más lento que partir de cero?
• ¿Restricciones de diseño?
17. Inconvenientes
• Curva de aprendizaje
• Exceso de código HTML y CSS
• Código y clases no semánticas
• Código “ajeno”
18. CURVA DE APRENDIZAJE
• La mayoría de los frameworks tienen una
curva sencilla.
• Al aportar una base común documentada
facilita la incorporación de nuevos
miembros al equipo.
• Incluirlo en la metodología de trabajo
mejora el proceso de desarrollo y
disminuye el tiempo de aprendizaje.
19. Inconvenientes
• Curva de aprendizaje
• Exceso de código HTML y CSS
• Código y clases no semánticas
• Código “ajeno”
20. EXCESO DE CÓDIGO HTML Y CSS
• ¿Es crítico para tu proyecto?
• Emplea sólo lo que necesites
• Comprime. Minimiza. Une.
– Compresión HTTP
– Minimiza JS y CSS: Eliminar espacios en
blanco, saltos de carro, identaciones,…
– Combina archivos CSS y JS
– Otros: caché, CDN,…
21. Inconvenientes
• Curva de aprendizaje
• Exceso de código HTML y CSS
• Código y clases no semánticas
• Código “ajeno”
22. CÓDIGO NO SEMÁNTICO
• DIV y SPAN no tienen significado
semántico (son neutrales)
The global structure of an HTML document
http://www.w3.org/TR/html401/struct/global.html#h-7.5.4
29. Panorámica de frameworks css
• ¡¡Existe una enorme variedad!!
• Hablaremos de 1 Kb CSS Grid, 960.gs,
Blueprint, Foundation (Zurb) y
Bootstrap (Twitter)
• Algunos admiten plugins y extensiones
para hacerlos más versátiles (responsive
design, por ejemplo) o incorporar
funcionalidades
30. ¿qué nos permiten hacer?
• Resetear estilos para normalizar las
propiedades básicas de los elementos a
fin de eliminar diferencias de
visualización entre navegadores.
– reset.css
• Realizar una gestión global de las
tipografías que se usarán en la página.
– text.css
31. ¿qué nos permiten hacer?
• Maquetar un diseño de forma óptima
y compatible con todos los
navegadores.
– layout.css, grid.css,…
• Estilos específicos para impresión
– print.css
• Personalizaciones y código específco
– style.css, custom.css,…
33. 1Kb css grid
• Enfocado únicamente a disposición de
elementos en retícula.
• Retícula de 12 columnas, 60px ancho
con espaciado de 20px (personalizable)
• Ancho total: 960px
42. blueprint
• Sistema de retícula completo y versátil.
• Retícula base de 24 columnas (30px
ancho/10px espaciado)
• Ancho fijo total: 950px
• Incorpora: reset CSS, estilos para
tipografías, formularios e impresión
• También, soporte para idiomas RTL
44. blueprint
• Gran cantidad de plugins y extensiones
(botones, tabs, retícula fluida,…)
• Plantillas gráficas para diseñar sobre la
retícula
• Gemas para Rails
• Más información y recursos:
– https://github.com/joshuaclayton/blueprint-
css/wiki
46. foundation
• Sistema de retícula completo,
adaptativo, móvil y muy flexible
• Retícula base de 12 columnas (fluidas,
fijas, combinables,…)
• Ancho máximo y mínimo configurable
• Nomenclatura muy sencilla y natural
• Incluye: formularios, botones, elementos
de interfaz, sliders, modales,…
49. foundation
Retícula adaptativa
Sólida retícula base,
adaptativa y móvil
Elementos de interfaz
Botones, formularios, tabs,
sliders, tooltips, modales…
DOCUMENTACIÓN
Sencilla y completa
EXTRA
Gemas para
Conpass/SASS y Rails
50. foundation
Retícula adaptativa
Sólida retícula base,
adaptativa y móvil
Elementos de interfaz
Botones, formularios, tabs,
sliders, tooltips, modales…
DOCUMENTACIÓN
Sencilla y completa
EXTRA
Gemas para
Conpass/SASS y Rails
51. foundation
Retícula adaptativa
Sólida retícula base,
adaptativay móvil
Elementos de interfaz
Botones, formularios, tabs,
sliders, tooltips, modales…
DOCUMENTACIÓN
Sencilla y completa
EXTRA
Gemas para
Conpass/SASS y Rails
53. bootstrap
• Sistema de retícula completo,
adaptativo, móvil y muy flexible
• Retícula base de 12 columnas (60px
ancho/20px espaciado)
• Ancho fijo total: 940px
• Construido y personalizable con LESS
(variables, mixins, etc.)
54. bootstrap
• Incluye: tipografías, retículas adaptativas y
móviles, formularios, botones, elementos
de interfaz,… EL MÁS COMPLETO!
• Multitud de plugins jQuery: sliders,
modales, tooltips, tabs,…
• Extra:
– Skins para Bootstrap: http://bootswatch.com/
– Themes ($): http://wrapbootstrap.com/
64. Entonces, ¿cuál elijo?
• No hay frameworks mejores ni peores;
sino el que mejor se adapta a tu proyecto:
– ¿Qué tamaño va a tener el proyecto?
– ¿Necesitas integrarlo en Rails o SASS?
– ¿Quieres componentes ya listos para usar o
únicamente una retícula?
• Personalmente, eligiría 960.gs,
Foundation o Bootstrap (personalizado)