Introducción a los Frameworks CSS
Click here to load reader
-
Upload
luis-martin -
Category
Technology
-
view
2.175 -
download
4
description
Transcript of Introducción a los Frameworks CSS
I Betabeers Badajoz PCTEX - 20 Abril 2012
Introducción a los
FRAMEWORKS CSS Luis Miguel Martín
Introducción a los
FRAMEWORKS CSS Luis Miguel Martín
¿quién soy?
¿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
INTRODUCCIÓN
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?
Problemática del desarrollo css
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,....)
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
• …
¿qué es un framework css?
¿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/
¿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/
Ventajas e inconvenientes
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,...
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?
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?
Inconvenientes
• Curva de aprendizaje • Exceso de código HTML y CSS • Código y clases no semánticas • Código “ajeno”
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.
Inconvenientes
• Curva de aprendizaje • Exceso de código HTML y CSS • Código y clases no semánticas • Código “ajeno”
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,…
Inconvenientes
• Curva de aprendizaje • Exceso de código HTML y CSS • Código y clases no semánticas • Código “ajeno”
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
CÓDIGO NO SEMÁNTICO DIV + ID/CLASS = valor semántico nulo
<div id="header"> ... </div> <div id="nav"> ... </div> <div class="article"> ... </div> <div id="footer"> ... </div>
Etiq. HTML5 = valor semántico alto
<header> ... </header> <nav> ... </nav> <article> ... </article> <footer> ... </footer>
CÓDIGO NO SEMÁNTICO
LA SEMÁNTICA ESTÁ AQUÍ
<etiqueta class="tomate queso">Merendola</etiqueta>
No aquí
La semántica web no incluye CSS
Inconvenientes
• Curva de aprendizaje • Exceso de código HTML y CSS • Código y clases no semánticas • Código “ajeno”
CÓDIGO “AJENO”
• Podemos vivir con ello ;-) • Un framework es una herramienta. Hay
que estudiarla y comprenderla para obtener resultados.
Inconvenientes
• Curva de aprendizaje • Exceso de código HTML y CSS • Código y clases no semánticas • Código “ajeno”
Panorámica de frameworks css
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
¿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
¿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,…
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
.grid_1 { width:60px; }
.grid_2 { width:140px; }
.grid_3 { width:220px; }
.grid_4 { width:300px; }
.grid_5 { width:380px; }
.grid_6 { width:460px; }
.grid_7 { width:540px; }
.grid_8 { width:620px; }
.grid_9 { width:700px; }
.grid_10 { width:780px; }
.grid_11 { width:860px; }
.grid_12 { width:940px; }
.column { margin: 0 10px; overflow: hidden; float: left; display: inline; } .row { width: 960px; margin: 0 auto; overflow: hidden; } .row .row { margin: 0 -10px; width: auto; display: inline-block; }
<div class="row"> <div class="column grid_4"> </div> <div class="column grid_4"> </div> <div class="column grid_4"> </div> </div> <div class="row“> <div class="column grid_8"> </div> <div class="column grid_4"> </div> </div> <div class="row"> <div class="column grid_2"> </div> <div class="column grid_4"> </div> <div class="column grid_3"> </div> <div class="column grid_3"> </div> </div>
1Kb css grid
html css completo
960 grid system
• Proporciona sistema de retículas mucho más completo.
• Retículas base: – 12 columnas (60px ancho/20px espaciado) – 16 columnas (40px ancho/20px espaciado) – 24 columnas (30px ancho/10px espaciado)
• Ancho fijo total: 960px (obviamente)
960 grid system <div class="grid_12"> <p>940</p> </div> <!-- end .grid_12 --> <div class="clear"></div> <div class="grid_1“> <p>60</p> </div> <!-- end .grid_1 --> <div class="grid_11"> <p>860</p> </div> <!-- end .grid_11 --> <div class="clear"></div> <div class="grid_2"> <p>140</p> </div> <!-- end .grid_2 --> <div class="grid_10"> <p>780</p> </div> <!-- end .grid_10 -->
html
960 grid system
• Incorpora: reset CSS, estilos tipográficos y soporte para idiomas RTL
• Incluye plantillas de diseño • Extras:
– Personalizable: http://grids.heroku.com/ – Retícula fluida:
http://www.designinfluences.com/fluid960gs/ – Diseño adaptativa: http://adapt.960.gs/
960 grid system
EJEMPLO Diseño realizado sobre una plantilla para Fireworks de retícula de 960.gs (12 columnas)
960 grid system
960 grider bookmark http://peol.github.com/960gridder/
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
blueprint
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
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,…
foundation
Retícula adaptativa Anchos de
1024px y 600px
foundation
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
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
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
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.)
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/
bootstrap
bootstrap
bootstrap
bootstrap
bootstrap
bootstrap
BOOTStrap fireworks http://www.extendingfireworks.com/?p=133
http://bootstrapfireworks.com/
comparativa
comparativa
retícula TIPOGRAFIAs PLANTILLAS
diseño Estilos FORMS
Estilos IMPRESIÓN
PLUGINS gemas
BOOTSTRAP F0UNDATION BLUEPRINT
960 GS 1KB GRID
Entonces, ¿cuál elijo?
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)
¿preguntas?
Muchas gracias
Luis Miguel Martín @lmmartin