CSSLab » UX http://www.csslab.cl Un laboratorio de ideas para la web en español Thu, 12 Jan 2012 02:32:35 +0000 en hourly 1 http://wordpress.org/?v= Decisiones http://www.csslab.cl/2009/11/23/decisiones/ http://www.csslab.cl/2009/11/23/decisiones/#comments Mon, 23 Nov 2009 15:53:54 +0000 Jorge Epuñan http://www.csslab.cl/?p=504 En el transcurso de la vida profesional debes tomar muchas decisiones; algunas son tan mecánicas que ni las notas, mientras que otras pueden hacer que redefinas tu propia vida. Quiero compartir un pequeño caso que me tocó ver junto a otro colega, los argumentos que tuvimos y la decisión que enfrentamos. Lo encuentro interesante, ya que involucra accesibilidad, usabilidad, diseño, experiencia de usuario y desarrollo web, cada una disciplinas en sí pero que creo importante que tengan presencia y dominio en un profesional.

Este es uno de tantos artículos de este sitio que son inspirados a partir de vivencias, experiencias y conversaciones con otras personas que comparten el mismo oficio.

El comienzo

Típico proyecto web, se hizo la etapa de AI, wireframming, diseño de propuestas, se aprobó un estilo gráfico, se hicieron mejoras en el diseño y se comenzó a maquetar las páginas. Lo siguiente es una variación (más simple) del wireframe de la home (por motivos de privacidad, omito el nombre del proyecto/cliente y detalles):

Wireframe 1 en CSSLab.cl

Hasta aquí todo medianamente normal, pero al hacer funcionar la parte de Noticias, nos topamos con un pequeño gran detalle: en el wireframe y en el boceto se muestra que hay tabs por tipo de noticias, y además hay resumen de 3 noticias (según tipo) con fotografias a desplegarse, según pases el mouse sobre cada texto:

Wireframe 2 en CSSLab.cl

El análisis

¿Dónde veo un problema? Veámoslo según cada disciplina

  • Usabilidad: técnicamente, intervienen 2 tabs: por noticias, que al desplazar el cursor sobre cada resumen se reemplaza por su imagen respectiva; y por tipo de noticia, que son 3 tabs. Este doble tab puede crear confusión al usuario.
  • Experiencia de usuario: En total, son 9 imágenes cargadas: 3 tipos de noticias, 3 noticias por tipo; cada imagen, por el tamaño, es probable que pese cada una 20kb, lo que en total se debe cargar 180kb. Quizás no es mucho peso, pero hay que tomar en cuenta que además se cargan los banners, que son bastante grandes y pueden llegar a ser pesados…
  • Accesibilidad: Para conexiones lentas, no debemos pedirle tanto al usuario si es poco probable que vaya a necesitar de esas 9 imágenes. Para conexiones desde celulares, sería un abuso.
  • Desarrollo: para aminorar esa carga, podríamos cargar las noticias en los tabs según el usuario vaya haciendo click en ellas mediante AJAX; pero esto involucra un desarrollo extra que no estaba estimado.

Sinceramente, podríamos haber continuado con la construcción del sitio y ya. Pero es importante tomar en cuenta estos detalles, que al fin y al cabo hacen que un proyecto marque la diferencia.

La solución

Aún se está trabajando en ello, pero se intervendrá el diseño y probablemente se quitarán las imágenes asociadas por cada noticia, y se dejará sólo 1 imagen principal por tipo de noticia, lo que reduce la carga a sólo 3 imágenes:

Wireframe 3 en CSSLab.cl

Como ven, no impacta mayormente en el diseño final, pero sí será necesario cambiarlo y transparentarle esta modificación al cliente, siempre argumentando que es para mejor.

Esto es todo, como aún el proyecto está en proceso no hay desenlace (favorable o no), aún así me encantaría leer sus opiniones.

]]>
http://www.csslab.cl/2009/11/23/decisiones/feed/ 11
jQuery browserSizr http://www.csslab.cl/2009/07/22/jquery-browsersizr/ http://www.csslab.cl/2009/07/22/jquery-browsersizr/#comments Wed, 22 Jul 2009 15:16:50 +0000 Jorge Epuñan http://www.csslab.cl/?p=452 jQuery browserSizr

Your flexible fixed layout / Tu estructura fija, flexible

Selecciona tu idioma / Select your language:

EN

Coding liquid layouts for your website can become a major problem due to many factors to be taken into when the user resizes the browser: images that doesn’t fit the width, texts wrapping as not expected, columns breaking… not to mention that working with percentages in CSS is problematic among different browsers. With a fixed layout this should not happen, because you have more control over the structure itself and the box model behaves as you expect if you use a good CSS reseter.

With jQuery browserSizr you’ll have more control over CSS styles when there is a significant change in browser size. It has 4 of the most common screens width:

browserSizr: 4kb

  • smartphones (310px or less)
  • less than 1024px (from 311px to 1023px)
  • greater than 1024px (from 1024px to 1279px – including 1024px)
  • greater than 1280px (from 1280px and higher – including 1280px)

Specifically, browserSizr detects the current width of your browser or it’s resize and injects a specific class when it is in the range you’ve activated. Through CSS and a bit of specificity, you can define what happens when the browser is in each resolution:

#container {
   width: 960px; /* normal width */
   font-size: 14px;
}
   #container.lower1024 {
      width: 740px; /* width for less than 1024px */
      font-size: 12px; /* smaller font-size */
   }
   #container.over1280 {
      width: 1200px; /* width for over 1280px */
      font-size: 16px; /* bigger font-size */
   }

See example

Configuration:

  • Include the jQuery library and this humble plugin:
    <script src="jquery.js" type="text/javascript"></script>
    <script src="jquery.browserSizr.js" type="text/javascript"></script>
  • Inicialize-it with the default parameters:
    <script type="text/javascript">
       $(function(){
          $().browserSizr();
       })
    </script>
  • Or configure it as preferred
    $().browserSizr({
       containerDiv: '#container',
       //containerDiv - value: any HTML tag or #id, default to #container
       debug: 'off', 
       //debug-  value: on | off, default to 'off'
       smartphones: 'off',
       //smartphones - value: on | off, default to 'off'
       lower1024: 'on',
       //lower1024 - value: on | off, default to 'on'
       over1024: 'on',
       //over1024 - value: on | off, default to 'on'
       over1280: 'off'
       //over1280 - value: on | off, default to 'off'
    });

ES

Crear estructuras líquidas para tu sitio web puede llegar a ser un gran problema debido a los muchos factores que se deben tomar en cuenta cuando el usuario escala el browser: imágenes que se pueden pasar del ancho, textos que no se cortarán como esperabas, columnas que pueden llegar a quebrarse… sin hablar de que trabajar con porcentajes es problemático entre los diferentes navegadores. Con un layout fijo esto no debería ocurrir ya que tienes más control sobra la estructura misma y el modelo de caja se comporta como esperas si haces uso de un buen reseter de estilos CSS.

Con jQuery browserSizr podrás tener más control sobre los estilos CSS cuando existe una variación significativa la dimensión del browser: en cuántos pixeles quedaría el tamaño de la tipografía del menú a 1280x1024px, o que las imágenes queden a 80% de su tamaño en resoluciones de 800x600px por ejemplo. Tienes los 4 anchos de pantallas más comunes:

browserSizr: 4kb

  • smartphones (310px o menos)
  • menor que 1024px (de 311px a 1023px)
  • mayor que 1024px (de 1024px a 1279px – incluye 1024px)
  • mayor que 1280px (de 1280px o más – incluye 1280px)

En específico, browserSizr detecta el actual ancho del navegador ó su redimensionado e inyecta una class específica cuando se encuentra en el rango que hayas activado. A través de CSS y un poco de especificidad, puedes definir qué quieres que ocurra cuando el browser se encuentre en cada resolución:

#container {
   width: 960px; /* ancho normal del sitio web */
   font-size: 14px;
}
   #container.lower1024 {
      width: 740px; /* ancho para resoluciones menores que 1024px */
      font-size: 12px; /* menor tamaño de fuente */
   }
   #container.over1280 {
      width: 1200px; /* ancho para resoluciones mayores que 1280px */
      font-size: 16px; /* mayor tamaño de fuente */
   }

Ver ejemplo

Configuración:

  • Incluye la librería jQuery y luego, este humilde plugin:
    <script src="jquery.js" type="text/javascript"></script>
    <script src="jquery.browserSizr.js" type="text/javascript"></script>
  • Inicialízalo con los parámetros por defecto:
    <script type="text/javascript">
       $(function(){
          $().browserSizr();
       })
    </script>
  • O configúralo como más prefieras:
    $().browserSizr({
       containerDiv: '#container',
       //containerDiv - id o etiqueta donde se inyectará la class
       debug: 'off',
       //debug - ventana debug on | off, por defecto off
       smartphones: 'off',
        //smartphones - valores: on | off, por defecto 'off'
       lower1024: 'on',
        // valores: on | off, por defecto 'on'
       over1024: 'on',
        //over1024 - valores: on | off, por defecto 'on'
       over1280: 'off'
        //over1280 - valores: on | off, por defecto 'off'
    });

Bajar/Download plugin (.zip 1kb)

Bajar/Download plugin+demos (.zip 22kb)

browserSizr logo by toledopasarin

Little extension as Jorge Sousa required, now it detects just the height of the browser window within 2 values: less than 600px and over 600px.

Pequeña extensión como solicitada por Jorge Sousa, donde ahora detecta sólo el alto de la ventana dentro de 2 rangos: menor que 600px y mayor a 600px.

Ver Ejemplo Alto Ventana

Bajar/Download plugin + demo (.zip 24kb)

]]>
http://www.csslab.cl/2009/07/22/jquery-browsersizr/feed/ 14
Nuestro verdadero cliente http://www.csslab.cl/2008/11/20/nuestro-verdadero-cliente/ http://www.csslab.cl/2008/11/20/nuestro-verdadero-cliente/#comments Thu, 20 Nov 2008 20:01:18 +0000 Jorge Epuñan http://www.csslab.cl/?p=325 Tengo la certeza de que si le pregunto a profesionales que trabajan con y para la web ¿Quién es tu cliente?, el 99.9% de ellos me responderia: "La Empresa XXX, Fulano de tal dueño de XYZ" y cosas por el estilo. Pero espero que exista ese 0.1% que responda lo mismo que yo respondería: "el usuario". Piensen esto un poco: Ese sitio web que están haciendo: ¿Es para que su cliente lo vea? ¿O para que los usuarios entren y puedan disfrutar de lo que ahí se ofrece y ojalá aumentar sus ventas o lista de potenciales clientes?

Mi principal preocupación al momento de gestar y planificar un proyecto web, es cómo éste afectará al usuario. Así logro definir qué elementos tendrá, qué tecnología y lenguajes aplicaré, etc. No me refiero a hacer un estudio de qué tipo de usuarios navegarán, o una estadística de qué plataformas y resoluciones de pantalla utilizan; me refiero a sentarme como usuario e imaginarme cómo sería su experiencia a través de esa web. Ponerme en su lugar y darme cuenta si realmente vale la pena utilizar alguna ventana modal, o validación de formularios con :focus, menú con tabs, 2 ó 3 columnas, etc. Todo eso influye en cómo se ordenará y finalmente entregará la información a quien la desee.

It's the user, stupid!

Se define como experiencia de usuario (UX) a la experiencia que ha tenido una persona como resultado de su interacción con un producto ó servicio en particular, su entrega y relacionados de acuerdo a su diseño. En este campo convergen oficios como el diseño, los negocios y la psicología.

Muchas veces me han preguntado: "Jorge, ¿Qué haces? ¿En qué trabajas?". Bueno, mi respuesta -y la de más de algunos que recorren CSSLab, asumo- es "Soy diseñador gráfico pero frustrado; ya no diseño, sino que desarrollo". Pensando, tampoco desarrollo mucho; más que nada defino y construyo elementos de interacción directa con el usuario, lo que se suele denominar en la era digital "Desarrollo Front-End". Así, me denomino un"Diseñador de Interacción, lo que en países de primer mundo es un oficio muy común pero aún no es conocido y reconocido por estas latitudes que intentamos salir del tercer mundo. Me gusta diseñar experiencias, provocar emociones y quizás cambiar comportamientos al momento de utilizar la web; que ésta no sea una herramienta, sino una verdadera experiencia (como surfear para un surfista, esquiar para un esquiador, cocinar para un chef… entienden a lo que voy). Así, con todo ese tema primero definido, pongo manos al Photoshop y a diseñar, pero siempre teniendo claro los objetivos finales de cada elemento con los que el usuario interactuará.

El Diseño UX (de Experiencia de Usuario) incluye sub-oficios, los que se desprenden del sistema particular de interacción que se proveerá. Algunos de estos son:

experiencia de usuario, UX

  • Mapas de Navegación y Mapas de Flujo (AI, Arquitectura de la Información)
  • Comportamiento de Usuario
  • Wireframes
  • Prototipado (para simulación de interacción)
  • Especificaciones (descripción del comportamiento)
  • Bocetos visuales
  • Usabilidad
  • Accesibilidad
  • SEO (Search Engine Optimization)

Este Diseño UX frecuentemente define una secuencia de interacciones entre un usuario y un sistema desarrollado para, en una primera instancia, dar soporte a necesidades u objetivos, y luego satisfacer los requerimientos del sistema y los objetivos para los cuales fue creado.

¿Y para qué tanto?- se preguntarán. Bueno, tiene sus beneficios, claro (caso contrario no perdería tanto tiempo especializándome en el tema):

  • Se reducen los elementos que excesivamente distraen al usuario de sus necesidades en el sitio web.
  • Aumenta considerablemente la usabilidad del sistema.
  • Se definen mejores estándares de diseño y desarrollo, y se automatizan tareas.
  • Incorpora elementos de negocios y marketing que atraen y fidelizan a más usuarios.

Los invito a estudiar y profundizar más sus conocimientos; sólo así entregaremos mayor calidad y podremos aumentar el valor de nuestro trabajo, y aumentar nuestra lista de clientes, claro.

]]>
http://www.csslab.cl/2008/11/20/nuestro-verdadero-cliente/feed/ 8
1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49|50|51|52|53|54|55|56|57|58|59|60|61|62|63|64|65|66|67|68|69|70|71|72|73|74|75|76|77|78|79|80|81|82|83|84|85|86|87|88|89|90|91|92|93|94|95|96|97|98|99|100|101|102|103|104|105|106|107|108|109|110|111|112|113|114|115|116|117|118|119|120|121|122|123|124|125|126|127|128|129|130|131|132|133|134|135|136|137|138|139|140|141|142|143|144|145|146|147|148|149|150|151|152|153|154|155|156|157|158|159|160|161|162|163|164|165|166|167|168|169|170|171|172|173|174|175|176|177|178|179|180|181|182|183|184|185|186|187|188|189|190|191|192|193|194|195|196|197|198|199|200|201|202|203|204|205|206|207|208|209|210|211|212|213|214|215|216|217|218|219|220|221| viagrea onling viagra tablets name and cost levitra and dapoxetine youtube/viagra cialis extra generic viagra accepting american express buy generic viagra online with no prescription with mastercard generic levitra 20 mg levitra pro buy viagra online in ireland is it illegal to order viagra from outside the united states cheapest generic cialis buy cheap levitra overnight delivery cialis wears off airport security generic viagra generic finasteride viagra for sale using paypal ukAccutane Online Doxycycline online Buy Cheap Lexapro Online No Prescription Prednisone Online Buy Accutane No Prescription