Entradas con tag ‘css3’

Efecto girar foto 360 grados con HTML5 y CSS3

Publicado el: 3 comentarios

Este tutorial muestra como jugando con la propiedad “background-position”, el tipo de input “range” y un poco de javascript, podemos crear efectos de giro 360º.

Partiendo del mismo concepto buscaremos dos resultados diferentes: por un lado visualizaremos una fotografía panorámica de 360º y por otro crearemos un efecto de giro alrededor de un producto.

Ver ejemplo completo

Efecto panorámica 360º

Para este ejemplo necesitaremos contar con una fotografía de 360º similar a las que usa Google Maps en su Street View.

Seguramente no tendremos a nuestra disposición una cámara que tome este tipo de fotos, así que podemos seguir el manual para hacerlo con Photomerge de Photoshop. El resultado que ofrece Photomerge es bastante bueno si cuidamos la estabilidad y la iluminación durante la toma de fotos.

Imagen panorámica 360º

Una vez tengamos nuestra foto panorámica, creamos un documento HTML5 donde sólo incluiremos un div y un input del tipo ‘range’:

<div id="imagen360"></div>
<input id='rango' type="range" max='100' min='0' value='0'>

Las etiquetas range son similares a un control slider y responde entre otras a las propiedades max, min y value:

  • max es el valor máximo que puede tomar, cuando arrastramos el manejador al tope derecho.
  • min es el valor mínimo que puede tomar, cuando arrastramos el manejador al tope izquierdo.
  • value es el valor predefinido que posicionará el manejador a lo largo de la línea de control.

Hay que tener en cuenta que por ahora Firefox no da soporte a los inputs “range”, que las muestra como tipo “text”. Es curioso que IE10 sí las muestre. Se acerca el apocalipsis.

A la capa le aplicamos el fondo con la imagen panorámica. En mi caso he procurado que el alto del div coincida con el de la imagen. Aplicamos unos estilos básicos:

#imagen360{
 background: url(./img/imagen360.jpg);
 height: 300px;
 width: 300px;
}
#rango{
 width: 300px;
}

Ahora tendremos que relacionar los cambios de estado de nuestro range con la posición del fondo mediante javascript:

var anchoImagen = 4097 - 300;
var incremento = -1 * anchoImagen / 100;

//He usado jQuery por comodidad
$('#rango').on('change', function(e){
 var posicionImagen = $(this).attr('value') * incremento + 'px 0';
 $('#imagen360').css('background-position', posicionImagen);
});

La variable anchoImagen guarda el ancho del fondo quitándole los 300px del ancho del contenedor para que no se repita al llegar al final. incremento divide entre 100 para que corresponda con los pasos (min=’0′ max=’100′) del input.

La función que se dispara cuando hacemos ‘change’ (arrastramos el manejador) va cambiando el background-position del contenedor en función del valor del atributo value.

Efecto giro de 360º alrededor de un producto

Siguiendo la misma metodología, podemos usar range y background-position para crear la ilusión de estar rotando un artículo, por ejemplo, de una tienda online.

En este caso la imagen debería estar compuesta de varias fotos del producto tomadas desde distintos ángulos a modo de secuencia de fotogramas.

Imagen giratoria 360º

El código no sería muy diferente:

#imagengira{
 background: url(./img/imagengiratoria.jpg);
 height: 207px;
 width: 350px;
}
#giro{
 width: 350px;
}
<div id="imagengira"></div>
<input id='giro' type="range" max='18' min='0' value='0'>
var anchoframe = 350;
$('#giro').on('change', function(e){
 var rotacionImagen = -1 * $(this).attr('value') * anchoframe + 'px 0';
 $('#imagengira').css('background-position', rotacionImagen);
 });

En este caso sólo le damos 18 pasos a nuestro range (min=’0′ y max=’18′) que se corresponden con los 18 fotogramas que tiene y le disminuimos el ancho del frame (350) en cada uno.

Ver ejemplo completo

VN:F [1.9.22_1171]
Valora esta entrada
Rating: 10.0/10 (2 votes cast)

Qué aprender para ser diseñador y desarrollador web

Publicado el: 3 comentarios

Mucha gente me pregunta qué debe aprender y dónde puede empezar a formarse para ser diseñadores y desarrolladores web. En este artículo intentaré resumir los perfiles profesionales, los lenguajes, los frameworks y algunos materiales gratuitos para autodidactas.

Los dos grandes perfiles: back-end y front-end

Queda muy lejos la época en la que se hablaba del webmaster como un profesional que hacía una página web de inicio a fin. En la actualidad existen múltiples perfiles que pueden intervenir en el desarrollo de una página o aplicación web, pero nos centraremos en los dos principales: el desarrollador back-end y el desarrollador front-end.

Para entender estos perfiles imaginemos un coche. El back-end se encargaría de construir el motor, la centralita, el sistema de frenos y demás elementos que hacen que el coche haga su trabajo de transportar al conductor. Por otro lado el front-end tendría crearía el chasis, salpicadero, volante, palanca de cambios? es decir, todos aquellos elementos o bien estéticos o bien de interacción por parte del nuestro usuario.

Volviendo a la web, el profesional del back-end es el que crea la lógica interna y el del front-end el que se encarga de la visualización y la interacción del usuario.

Especializarse en uno de estos dos frentes es muy importante. A no ser que seas un auténtico genio, no lograrás ser excelente en ambos y la experiencia me ha enseñado que más vale ser excelente en una cosa que bueno en muchas. Sin embargo el profesional “perfecto” conoce lo suficiente de su “opuesto” para saber las posibles limitaciones técnicas y entenderse bien con el resto del equipo.

Diseño y desarrollo web

Si tienes claro que quieres dedicarte al back-end o al front-end, puedes leer cada uno de los títulos dedicados a ello. Si aún no te decides puedes seguir leyendo con normalidad:

Quiero ser Front-end developer

Quiero ser Back-end developer

Quiero ser Front-end developer

El front-end es un experto maquetador, genio de los estilos visuales y de la interacción.

Sus habilidades primarias son el uso avanzado de semántica HTML, manejo perfecto de CSS y programación fluida con Javascript. Conocen los formatos multimedia y como optimizarlos en este medio.

Entre sus aptitudes secundarias está el diseño o incluso la animación. Tendrán también nociones de usabilidad y de tecnologías de back-end.

Entre las tecnologías recomendables, para llegar a ser un auténtico samurai, encontramos los preprocesadores de CSS como LESS, SASS o Stylus, de HTML como HAML o ZenCode y de Javascript como CoffeeScript.

Por supuesto existen frameworks como jQuery, Mootols o Backbone que nos facilitarán la vida.

Quiero ser Back-end developer

El back-end es una máquina engrasada de crear lógica.

Sus habilidades primarias son el conocimiento de diferentes lenguajes de programación de lado de servidor como PHP, Python, Ruby o incluso Javascript (sí, con javascript puedes hacer back-end con Node.js). Normalmente el desarrollador de Back-end se especializa en uno o dos de ellos. Además, tiene un profundo conocimiento de bases de datos tanto relacionales como mySQL, como no relacionales como MongoDB.

Como características secundarias están HTML y CSS, servidores y programación de lado del cliente.

Es recomendable conocer los CMSs más usados como WordPress, Joomla, Magento, Prestashop y un largo etc. usados a menudo en proyectos pequeños.

Existe un largo número de frameworks para lenguajes de back como Symfony, Zend o CodeIgniter en PHP, Rails en Ruby o Django para Python, entre un enorme etcétera.

Dónde empezar a aprender

Aparte de la enseñanza tradicional y sistematizada de la que me ahorraré mi opinión personal, existen multitud de opciones en la web para autodidactas.

Por un lado están grandes comunidades hispanohablantes de desarrollo como Maestros del Web, Cristalab, Mejorando la Web o Desarrollo Web, repletas de artículos, manuales y aportaciones de usuarios.

También existen webs con tutoriales en inglés como W3Schools donde puedes experimentar tu propio código, sitios de gran calidad como dochub.io, MDN o plataformas interactivas como Codecademy.

Por último siempre puedes acudir a la enorme blogosfera repleta de personas que te ayudarán en casos concretos con tutoriales y artículos como este.

Para más dudas y consultas podéis preguntarme en twitter.

VN:F [1.9.22_1171]
Valora esta entrada
Rating: 9.6/10 (10 votes cast)

Weekend: Webs en 3D y sliders originales

Publicado el: Un comentario

Como en varias ocasiones me he propuesto el difícil reto de mantener una constancia en las publicaciones. Actualizaré al menos una vez a la semana con un artículo o tutorial de carácter técnico de calidad como el de buenas prácticas en responsive design, filtros avanzados en CSS3 o geolocalización con HTML5.

Además, durante el fin de semana publicaré una entrada titulada “Weekend:” donde incluiré enlaces a los proyectos más interesantes que descubra durante la semana. Será nuestro apartado para la inspiración.

Podéis enviarme vuestros propios proyectos o propuestas, pero sólo publicaré aquello que realmente se salga de lo convencional. Aquí empieza nuestro primer Weekend.

Acko.net, una web en 3D

Esta es una de las webs que más me ha impresionado en los últimos meses. Es un blog con un diseño espectacular en 3D creado por Steven Wittens. Por si fuera poco sus artículos son de una calidad asombrosa. Para disfrutar del efecto tendréis que usar Chrome.

Enlace: http://acko.net/

Autor: Steven Wittens

Twitter: https://twitter.com/unconed

Acko.net

Slider efecto “papel doblado” con CSS3

Un espectacular efecto que simula una imagen que se pliega como una fotografía de verdad. Usa CSS3 y unas pocas líneas de jQuery.

Enlace: http://compilr.org/

Autor: Prashant Sharma

Twitter: https://twitter.com/CompilrORG

Efecto doblez 3D en CSS3 y jQuery

Kort, un original slider

Hakim, uno de los más activos y mejores desarrolladores front-end de interactividad que he podido descubrir a través de las redes sociales, ha creado Kort, un elemento de UI a medio camino entre el slider o grupo de thumbnails. Kort es compatible con eventos touch y dispone de diferentes efectos (y más que incluirá) de animación.

Enlace: http://lab.hakim.se/kort/

Autor: Hakim El Hattab

Twitter: https://twitter.com/hakimel

Kort

VN:F [1.9.22_1171]
Valora esta entrada
Rating: 10.0/10 (2 votes cast)

Buenas y malas prácticas de responsive design

Publicado el: 7 comentarios

El responsive design se ha consolidado como la respuesta al problema de la visualización de webs en dispositivos móviles. Sin embargo existe una diferencia entre implementar técnicamente este sistema y el diseñar de forma correcta.

Hay varias prácticas en responsive web design sobre las que deberíamos reflexionar. Este artículo se basa en mi estudio y opinión personal, lo que no indica que sean buenas o malas prácticas de diseño, pero si ofrece una perspectiva que pretende hacerte pensar antes de adaptar tus diseños.

Responsive Web Design

La cabecera

Podemos considerar que reservar el mismo espacio vertical para los contenidos de la cabecera es un error de diseño o de usabilidad.

Por ejemplo Webdesignerwall usa una cabecera tan alta que cuando, por ejemplo, realizamos una búsqueda, la web se recarga mostrando la misma cabecera ocupando el 100% del alto del dispositivo.

La cuestión no es que el usuario no vaya a hacer scroll siguiendo sus intereses, sino que le obligamos a hacerlo cuando él busca una respuesta inmediata a una acción.

La navegación

La mayoría de las webs usan un menú de navegación basado en listas. Si bien la disposición horizontal o vertical de estos menús resulta cómoda en un monitor, cuando la pantalla de nuestros dispositivos es de un tamaño pequeño (p. ej. un smartphone) usar este sistema creo que no es adecuado.

Por ejemplo en UXLondon 2011 el diseño se adaptaba mal, ocupando alto innecesario (punto anterior) y descuadrando el menú. Sólo un año después solventan el problema reescalando el tamaño de fuente del menú.

UXLondon de 2011

UXLondon de 2011

Existen varias opciones pero mis dos favoritas son:

  • - Conversión de listas (<ul><li>) a un combobox (<select><option>). Un buen ejemplo es Smashing Magazine
  • - Reducir el menú a un icono y mostrarlo bajo demanda. Ejemplos claros son Bootstrap y CSSTricks
El menú de Smashing magazine se convierte en un select

El menú de Smashing magazine se convierte en un select

Por ejemplo en 40horse.com toman otra solución elegante: bajan el menú al final de la página y dejan en cabecera sólo un enlace ancla apuntando al mismo.

Ocultar contenido

Por comodidad o por desconocimiento, hay quien oculta contenidos de la web en sus adaptaciones móviles usando display:none.

Aunque por motivos estéticos puedan obviarse elementos que aporten sólo atractivo visual, eliminar contenidos (texto, imagen, vídeo…) es negar al usuario la posibilidad acceder a la misma información que encontraría en la versión de sobremesa.

Además ocultar elementos mediante CSS no evita la carga de los mismos, por lo que a nivel técnico y de rendimiento tampoco hay excusas.

“Mobile first” no es “Mobile only”

Hacer mobile first significa hacer un diseño pensando primero en la versión adaptada a una pantalla smartphone e ir incrementando a los siguientes tamaños. Sin embargo en ocasiones esta conversión a monitores de mayor resolución se hace mal, dejando líneas de texto exageradamente largas o espacios enormes que afectan a la composición.

Retina display

Retina display ofrece resoluciones superiores a los dispositivos con pantallas tradiciones. Por eso debemos usar imágenes optimizadas para este tipo de pantallas. Una buena técnica es usar el formato JPG de alta resolución con una compresión del 40%. Así evitamos que as imágenes se pixelen demasiado.

Otra solución es usar Adaptive-Images, una solución que trabaja conjuntamente en el front y el servidor.

En resumen

El responsive design es una técnica relativamente joven, y aún no se ha madurado lo suficiente. Estos son algunos puntos que he estudiado y que veo mejorables en la mayoría de casos, pero no son todos ni tienen por que ser realmente malos para el usuario (yo mismo caigo en estos “errores”).

Nos toca a nosotros como desarrolladores y diseñadores la búsqueda de una mejor experiencia en todos los dispositivos así que os animo a experimentar y estudiar, para que saquéis vuestras propias conclusiones.

VN:F [1.9.22_1171]
Valora esta entrada
Rating: 9.2/10 (12 votes cast)

20 ejemplos de código HTML5 y CSS3

Publicado el: 7 comentarios

El pasado día 27 de septiembre tuve el placer de impartir un seminario de HTML5 y CSS3 en Córdoba organizado por el Instituto Alcántara. Muchos fueron los asistentes al evento y otros tantos los que nos vieron online. ¡A todos muchas gracias porque vosotros sois los que lo hacéis posible!

En 4 horas repasamos semántica, multimedia, acceso a dispositivos, canvas, SVG, acceso a ficheros, local storage, session storage, responsive design, nuevas opciones de CSS3

Hoy pongo a vuestra disposición la colección de los más de 20 ejemplos que usamos en el curso a cambio de un solo tweet ;) .

Logotipos de las características de HTML5

Logotipos de las características de HTML5

Para poder ejecutar todos correctamente, lo mejor es instalar un servidor local como XAMPP o MAMP y copiar todas las carpetas a htdocs.

Descargar ejemplos HTML5

VN:F [1.9.22_1171]
Valora esta entrada
Rating: 9.6/10 (12 votes cast)

Seminario HTML5 gratis

Publicado el: 3 comentarios

El próximo día 27 de septiembre impartiré un nuevo seminario gratuito de HTML5 en Córdoba. Una vez más el Grupo Alcántara lo hará posible con su apoyo e infraestructura. Hablaremos sobre semántica, multimedia, acceso a dispositivos, CSS, gráficos vectoriales, geolocalización y todo lo que hace de HTML5 un conjunto de tecnologías increíbles para crear la web.

Para todos aquellos que quieran asistir contactad con instituto@grupoalcantara.es. Las plazas son limitadas pero se emitirá online. Más info próximamente.

Actualización 25 septiembre 2012:

Finalmente el seminario se impartirá en el Instituto Alcántara, C/ Cruz Conde 19 1ª planta, y se podrá ver online a través de Webex.com.

Duración aproximada de 4 horas. la hora de inicio será:

  • 17:45 Madrid
  • 10:45 Bogotá – México – Lima
  • 11:45 Santiago de Chile – Caracas
  • 12:45 Buenos Aires

Trataremos de realizar grabación del evento para su posterior publicación.

Cartel Seminario Gratuito HTML5 en Córdoba

Cartel del seminario

VN:F [1.9.22_1171]
Valora esta entrada
Rating: 10.0/10 (2 votes cast)

Sublime Text 2 – El mejor editor de código de 2012

Publicado el: 6 comentarios

Algo que nos caracteriza a los programadores es nuestro cariño por nuestro editor de código. Una vez te acostumbras a uno es como tu almohada: cuesta mucho cambiarla por otra.

Sin embargo debido a la buena crítica de la comunidad, recientemente instalé Sublime Text 2, el que según la opinión es el mejor editor de código del mercado. Tan buenas han sido mis impresiones que he decidido aparcar mi querido Komodo Edit y, como cientos de bloggers antes que yo, le voy a dedicar este artículo.
Leer entrada completa

VN:F [1.9.22_1171]
Valora esta entrada
Rating: 10.0/10 (3 votes cast)

Claves de los filtros CSS3

La propiedad filter es una de las más impresionantes en el apartado gráfico. La constante evolución de HTML5 y CSS3 nos acerca a funciones tan increíbles como esta, que nos permite aplicar efectos “tipo Photoshop” sobre nuestros elementos.
Al día que escribo estas líneas, las últimas versiones de Chrome ya soportan filter, y aunque no sea conveniente aplicarlo todavía en nuestros proyectos profesionales, podemos ir viendo como funciona.
Leer entrada completa

VN:F [1.9.22_1171]
Valora esta entrada
Rating: 10.0/10 (1 vote cast)

Iconos vectoriales HTML5 con font-face

En este tutorial veremos como usar iconos vectoriales con @font-face en nuestra web. Los iconos vectoriales tienen varias ventajas:

  • Son escalables
  • Puedes cambiar su color fácilmente
  • Un conjunto de iconos puede pesar menos que un sólo icono de 32x32px.

Leer entrada completa

VN:F [1.9.22_1171]
Valora esta entrada
Rating: 10.0/10 (2 votes cast)