5. ¿A qué se le llama HTML5? HTML5 (nuevas etiquetas, marcado) CSS3 (nuevos estilos) APIs JavaScript (programación) + Otros estándares W3C (SVG, MathMl) + Estándares “de facto” (microformatos) + Experimentos de algún navegador + + + ...
6. Nuevo en HTML5 Nuevas etiquetas semánticas (Google debe entender los contenidos) Video, audio y animación sin plugins (Acceso universal: cualquier dispositivo, cualquier navegador, cualquier versión) Nuevos elementos de formularios (Más usabilidad y menor uso de JavaScript)
7. Nuevo en CSS3 Usar cualquier tipografía Efectos decorativos : sombras, RGBa, bordes redondeados, gradientes, (menor uso de imágenes ) Movimientos : transformaciones, transiciones, animaciones (menor uso de JavaScript) Diseño adaptable : Media Queries Selectores más precisos (menor uso de marcado innecesario)
8. Nuevo en Scripts Animaciones con Canvas Drag & Drop Geolocalización del usuario Trabajo offline (cache de aplicaciones) Web Storage (session y local) File System API ( archivos enteros) Bases de datos del lado del cliente Web sockets (actualización en vivo, tipo Ajax) Hilos (threads) Web Workers
9. Pero...¿cuál es “la” pregunta? (que todos nos estamos haciendo con HTML5 y CSS3)
22. 1. Mejora progresiva (Progressive enhancement) “ Después de crear una página básica, que funcione en Explorer, agreguemos funcionalidades extra para navegadores más potentes, usando selectores avanzados. ” Dave Shea (2003) www.csszengarden.com
23. 2. Degradación elegante (Graceful degradation) “ Diseñar para los navegadores más potentes y móviles , haciendo uso pleno de HTML5 y CSS3, asumiendo que no se va a ver idéntico . ” Degrada en sitio menos decorado o menos funcional (le “falta” algo).
24. Andy Clarke propone crear hoja de estilo de texto plano para Explorers viejos, y no perder tiempo en compatibilizar la estética... (O cobrar ese tiempo aparte!)
25.
26.
27. Supera actitudes extremas de: -Usar sólo características CSS básicas que sean soportadas por el obsoleto Explorer 6 (recién Explorer 8 aplicó CSS 2.1 completo, 10 años!!!). -Olvidarse completamente de navegadores anteriores y limitados, diseñando sólo para navegadores modernos (Andy Clarke…)
30. Nuestro concepto de diseño web no puede seguir siendo el mismo que en diseño “ gráfico ”.
31. La web es <--- flexible---> (múltiples dispositivos, múltiples navegadores)
32. La web es MUY flexible: (¿Para cuál resolución diseñar? Para TODAS !!) Y más!...
33. “ ...pero yo quiero que mis diseños se vean idénticos en todos los navegadores y en todos los dispositivos ...” ¿!!!?
34. Pensar el diseño web como creación de experiencias de usuario , y no como una decoración rígida, uniformizadora, ni como un lienzo artístico. Algo es diseño si es funcional a una meta, EL DISEÑO NO ES ARTE
35. “ La” pregunta del diseño web debe ser: ¿puedo hacer las tareas que vine a hacer al sitio? (Con cualquier dispositivo, con cualquier navegador y versión)
36. Deberemos explicar a clientes y jefes que cada usuario “verá levemente distinto” cada sitio web ¡Porque es inevitable y no tiene nada de malo! Diseño adaptable = Responsive design
41. Conclusión: HTML5 es el estándar más consensuado de la historia! Todos lo apoyan...
42. ¿Objetivo de nuevas etiquetas? Usar etiquetas con significado Google debe entender cuál contenido es importante y cuál no lo es.
43.
44.
45.
46. 1. Article Es el contenido importante de cada página Puede haber uno , o varios por página Ver ejemplo
47.
48.
49.
50. 4.a Section = “parte de...” Puede haber una o más sections dentro de un article: <article> <section>Datos del Autor</section> <section>Comentarios</section> </article> Ver ejemplo
51. 4.b Section = “contenedor de...” Una section puede tener articles dentro (¡con sections dentro!): <section> <article>Noticia de hoy</article> <article>Noticia de ayer</article> </article> Ver ejemplo
52. Headers & Footers Pertenecen a secciones (article, aside, nav y section) además del body. Ver ejemplo
53.
54. Figure No es solo para fotos (diagramas, SVG, MathML, listas de código) que puedan ser referenciados (apéndice, índice, etc.) <figure> <figcaption>Bla</figcaption> <img src="logo.jpg" /> </figure> Ver ejemplo
64. 13 nuevos type: search, tel, url, email, number, range, datetime, datetime-local, date, month, week, time, color
65. Search: <input type=" search "> -Botón “x” para “limpiar” -No permite saltos de línea -Degrada en “text”
66. Tel: <input type=" tel "> -Puede incluir espacios o guiones -Degrada en “text” -Por ahora, es solo semántica
67. URL: <input type=" url "> Valida que sea una URL absoluta
68. Email: <input type=" email "> Verifica que la casilla sea válida. Puede llevar el atributo multiple y en ese caso acepta varias casillas separadas por comas.
69. Number: <input type=" number " min="0" max="100" step="10" value="50"> Formato: -12345.678e+90 (puede ser negativo, usa punto para decimales, e para exponente, más signo y potencia)
70. Range: <input type=" range " min="0" max="100" step="10" value="50"> Usar si no importa la precisión del número, sino la usabilidad.
71. Date: <input type=" date "> Puede llevar min , max (rango permitido) y step (por default, de a 1 día) Formato: 2011-09-19
72. Datetime: <input type=" datetime "> Fecha y hora en formato UTC: 2011-05-19 T10:55:59.001 -03:00
73. Month: <input type=" month "> -Mismos atributos que Date (min, max, step) -Formato: 2011-05 - ¿vencimiento de tarjeta de crédito?
74. Week: <input type=" week "> Mismos atributos que Date (min, max, step) Formato: 2011-W17
75. Time: <input type=" time " min="11:30" max="23:30" step="600"> Mismos atributos que date. Formato: 11:59 Formato con segundos (opcionales): 11:59:59
76. Color: <input type=" color "> Opera 11+
91. Formatos soportados . mp4 – Chrome 6, Safari 5, Explorer 9 .ogg y WebM – Chrome, Firefox y Opera ¿Explorer viejo? Fallback con .flv
92. Valores de Preload preload=" none " (no descarga nada) preload=" metadata " (no baja el video, pero sí sus metadatos -tamaño, etc.-) preload=" auto " (lo baja por adelantado) preload="" (igual a auto, lo baja) Si no es declarado, cada navegador decide, aunque especificación dice que debe aplicar “metadata”.
99. Referencias oficiales de HTML5: Versión aprobada (vieja): http://www.w3.org/TR/html5/ Versión borrador “vivo”: http://dev.w3.org/html5/markup/Overview.html Versión del WHATWG : http://www.whatwg.org/html
109. Translucidez RGBa body{ background-color:rgb(100,20,40); /* Fallback sólido */ background-color: rgba (100,20,40, 0.5 ); } A diferencia de opacity, no se hereda! RGBa(0,0,0,0) es transparente total
111. Dentro de hojaexplorer.css: .translucido { background: transparent ; filter:progid:DXImageTransform. Microsoft.gradient(startColorstr=# 99000050 ,endColorstr=# 99000050 ); /* mismo valor de inicio y fin / zoom: 1; }
112. Formato startColorstr AA RRGGBB AA = Alpha, 00 transparente, FF sólido RR = Red GG = Green BB = Blue Conversor RGB a Hexadecimal: http://www.javascripter.net/faq/rgbtohex.htm
113. Tono, saturación, brillo: HSL body{ background-color: hsl (360,100%,20%); } Valor de Tono: 0 a 360 (0 rojo, 120 verde, 240 azul, 360 rojo) Conversor para fallback: http://serennu.com/colour/hsltorgb.php
125. Media queries (consultas sobre el medio ) Detectan características de un dispositivo, para aplicarle distintos estilos http://www.w3.org/TR/css3-mediaqueries
130. Condiciones (Queries): <link href=“celular.css" rel="stylesheet" media=" only screen and (min-width: 0px) and (max-width: 320px) ” > <link href=“tableta.css" rel="stylesheet" media="only screen and (min-width: 321px) and (max-width: 768px)" > <link href=“monitor.css" rel="stylesheet" media="screen and (min-width: 801px)">
131. Detectar orientación <link rel="stylesheet" media="all and (orientation: portrait )" href=“vertical.css"> <link rel="stylesheet" media="all and (orientation: landscape )"href=“horizontal.css">
132. Detección de tamaño @media screen and (min- width : 400px) and (max- width : 2900px) { /* solo leerán esto en PCs */ }
133. iPhone, iPad y PC <link rel="stylesheet" media="all and (max-device-width: 480px)" href=“iphone.css"> <link rel="stylesheet" media="all and (min-device-width: 481px) and (max-device-width: 1024px) and (orientation:portrait)" href=“ipad.css"> <link rel="stylesheet" media="all and (min-device-width: 481px) and (max-device-width: 1024px) and (orientation:landscape)" href=“ipad-horizontal.css"> <link rel="stylesheet" media="all and (min-device-width: 1025px)" href=“pc.css">
141. Transformación = “estática”, cambia valor de una propiedad Transición = “dinámica”, cambia entre dos estados Animación = “serie de” transiciones, con timing
145. Escalar en Explorer <9 zoom : 1; /* Siempre al principio, para activar hasLayout */ /* Ahora sí, reducimos o ampliamos */ zoom: 1.5; /* Aumenta tamaño */
146. 2. Rotate transform: rotate(45deg); Positivo: sentido agujas del reloj Negativo: contra reloj
147. 3. Skew transform: skew(5deg,-5deg); Por separado: skewX(grados) skewY(grados)
148. 4. Translate transform: translate(30px,10px); Por separado: translateX(distancia) translateY(distancia)
150. Ejemplo: a { color : white; background : red; } a:hover { color : yellow; background : blue; -webkit-transition: 1s; -moz-transition: 1s; -o-transition: 1s; transition: 1s; }
151. Propiedades por separado transition-property: Propiedad(es) CSS a ser animadas. transition-duration: En segundos. Por defecto el valor es 0. transition-timing-function: Define ease (por defecto), linear, ease-in, ease-out y ease-in-out. transition-delay: Pausa antes de iniciar animación.
152. Editor online de timing de transiciones: http://matthewlein.com/ceaser/ Comparación de timings: http://www.the-art-of-web.com/css/timing-function/ Valores de timing por defecto : http://www.w3.org/TR/css3-transitions/
153. Animaciones solo con CSS! Referencia oficial del W3C: http://dev.w3.org/csswg/css3-animations/
154. Pasos: 1. Defino keyframes (similar a “capa” en Flash) 2. Relaciono con objeto y defino propiedades
160. Estar pendientes de avances del W3C: http://www.w3.org/Style/CSS/current-work
161. APIs de JavaScript (son algo para programadores, solo daremos un vistazo para saber qué posibilidades hay)
162. Objetivos: 1) No depender de librerías (JQuery y similares) para funcionalidades comunes 2) Nuevas funcionalidades
163. 1. Geolocalización 2. Multimedia: Audio, Video, Canvas 3. Trabajo offline con Local Storage, Web Storage, Bases de Datos locales, Application Cache. 4. File System , Historial, WebSockets, Drag and Drop, 5. Hilos (Threads): Web Workers 6. Móviles: DeviceMotion, Viewport, Gestures, Touch
164. Ver ejemplos: http://www.html5demos.com Usar técnicas de compatibilidad también para JavaScript: https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-Browser-Polyfills
165. Conclusión: Usar HTML5 y CSS3 mediante técnicas de compatibilidad +Aplicar Diseño Adaptable (responsive design)