Uninstallme

Desarrollo front-end, estándares web, accesibilidad y más

Dejo aquí una pequeña ayuda para los que nos peleamos con los themes de Magento. Es un bookmarklet para Firefox y Safari o Google Chrome que simplemente sirve para ocultar y volver a mostrar las rutas de plantilla de Magento, que son tan útiles como molestas.

Las rutas de plantilla tienen que estar activadas desde la administración.

Para usarlo arrastra este link a la barra de marcadores: Rutas de plantilla.

Sin comentarios

LESS: variables y operaciones en CSS

Por kcmr, el 9 de febrero de 2010 en CSS, Utilidades

LESS es una extensión de CSS escrita en Ruby que permite utilizar variables, operaciones, reglas anidadas y mezclas con paso de parámetros que se comportan como funciones.

De todas sus posibilidades, las dos que me resultan más interesantes y que voy a comentar son el uso de variables y las operaciones.

Instalación de LESS

En Mac OS X, que ya tiene instalado ruby y ruby-gems, es tan sencillo como escribir esta línea en la consola:


$ sudo gem install less

En Windows y Linux hay que instalar primero ruby y ruby-gems.

Una vez instalado podemos utilizar LESS escribiendo nuestro CSS en un archivo .less tal y como lo haríamos con un archivo .css, con la diferencia de que es necesario compilarlo.

Compilación de LESS

Para compilar un archivo .less escribimos lo siguiente en la consola:


lessc style.less style.css

Si no se especifica el archivo de destino, se creará uno con el mismo nombre pero con la extensión .css. Es decir, la siguiente línea generaría un archivo style.css


lessc style.less

Compilación automática

Afortunadamente, no es necesario compilar el archivo manualmente cada vez que hacemos cambios, ya que es posible detectar los cambios en el archivo .less y compilar automáticamente. Para hacer esto utilizamos la instrucción –watch sobre el archivo que queremos compilar:


lessc style.less --watch

Uso de variables y operaciones

Sobre las ventajas del uso de variables en CSS sobran las explicaciones. A todos nos gustaría poder definir unas variables para colores de enlaces, texto, encabezados, fondos, etc. y poder usarlas cuando sea necesario sin tener que rebuscarlas en la CSS. También a la hora de hacer un cambio global resulta mucho más cómodo cambiar solamente el valor de una variable que todas las coincidencias. (Sí, conozco el buscar y reemplazar).

Para mí, el uso de variables no es su punto más fuerte, ya que se pueden usar varibles en CSS mediante PHP u otro lenguaje o incluso creando atajos de teclado personalizados en tu editor de texto, de manera que cada vez que tecleas, por ejemplo, colorLink seguido de tabulador, se escribe un color hexadecimal definido previamente. Esta última opción se puede usar con Coda (Mac).

Lo que más me ha gustado de LESS es la posibilidad de realizar operaciones, algo que ahorra bastante trabajo cuando se utilizan diseños elásticos.

Operaciones CSS en diseños elásticos

En los diseños elásticos, una unidad es relativa al elemento al que se refiere. Por ejemplo, si tenemos un encabezado de 20px de tamaño de fuente, con un margen inferior de 7px, esos 7px deben calcularse respecto a los 20 del encabezado, de manera que tenemos que hacer una división (7 / 20).


h2{font-size: 2em; margin-bottom: .35em;}

Con LESS podemos escribir esta división en la CSS.


h2{font-size: 2em; margin-bottom: 7 / 20em;}

Se añade el em al 20 para conservar la unidad de medida. De otra forma el resultado sería 0.35 en vez de 0.35em;

Además de ahorrarnos la operación, ya sea mediante calculadora o cabeza (siempre supone un esfuerzo), podemos ver inmediatamente qué unidad en píxeles estamos manejando en cada momento, es decir, nos ahorramos la multiplicación correspondiente o la ojeada al Firebug.

Inconvenientes de LESS

Agrupación de selectores

Si escribimos algo como h2 a, h3 a, h4 a{font-weight: normal;} el resultado al compilar es
h2 a{font-weight: normal;}
h3 a{font-weight: normal;}
h4 a{font-weight: normal;}

Saltos de línea

Al compilar, cada declaración se escribe en una línea dando lugar a archivos más pesados.

@import y @media

Simplemente, no funcionan. Las variables en LESS van precedidas del signo arroba.

Transformación de colores en formato hexadecimal a palabras clave.

#fff se convierte en white.

Estos inconvenientes se pueden solucionar con la ayuda de alguna herramienta de compresión como Clean CSS, que permite agrupar selectores, eliminar saltos de línea, utilizar las formas cortas de códigos de color, etc.

Otra herramienta útil es MinifyMe, una aplicación en Adobe AIR que se limita a eliminar comentarios y dejar todo el código en una sola línea. También sirve para comprimir Javascript.

Más información sobre uso e instalación en la documentación oficial de LESS

1 Comentario

Lazy Load de imágenes con Mootools

Por kcmr, el 30 de diciembre de 2009 en Javascript, Utilidades

La técnica “Lazy Load” consiste en detener la carga inicial de imágenes u otros elementos hasta que están en el área visible de la pantalla, momento en que se cargan con un efecto fade in (aparición suave).

Es ideal para páginas con galerías lineales de imágenes, en las que la carga de imágenes a petición (al hacer scroll) puede reducir considerablemente el tiempo inicial de carga de la página.

Existe un plugin para jQuery y también uno para Prototype, pero no acababa de encontrar uno que funcionara exactamente igual para Mootools, aunque existe uno, así que me he decidido a hacerlo basándome en el de Prototype.

Es un script bastante sencillo que no contempla otras opciones como ancho y alto mínimo de las imágenes o extensión (gif, jpg, etc). Su funcionamiento se basa en reemplazar el atributo src de las imágenes que no están en el área visible de la pantalla por el de una imagen de peso muy reducido (43 bytes) y utilizar el atributo src original cuando esta imagen pasa a estar en el área visible de la pantalla. La posición de la imagen se detecta con el evento scroll de la página.

Para saber si la imagen está en el área visible de la pantalla he utilizado el método explicado en otro post para hacer lo mismo con Prototype.

Archivos requeridos

Uso

Se inicializa con el evento ‘domready’ del objeto window. En la demo se utilizan todas las imágenes, pero se podría utilizar cualquier selector, sólo las imágenes con una determinada clase, o las imágenes que estén dentro de una capa, etc.

window.addEvent('domready', function(){
   $$('img').each(function(el){
      new Kcmr.MooLazyLoad(el);
   });
});

Como única opción se puede pasar la ruta a la imagen de 1x1px que se utiliza como sustitución de la imagen original. La ruta por defecto es “images/blank.gif”

Ejemplo con otros selectores y ruta personalizada a la imagen de sustitución:

window.addEvent('domready', function(){
   $$('.clase img.clase').each(function(el){
      new Kcmr.MooLazyLoad(el, {
         blank: 'directorio/imagen.gif'
      });
   });
});

Demo y descarga

Sin comentarios

Yo también me he sumado a esta iniciativa de dejar la web en pelotas, que pretende promover el correcto uso de Estándares Web y marcado semántico. Es el CSS Naked Day.

Me tengo que decir eso de “bueno, un día es un día” para tener la conciencia más tranquila, ya que aunque todo permanece perfectamente utilizable y comprensible sin estilos, la verdad sea dicha… resulta bastante incómodo de leer.

Una buena forma de superarlo, sobretodo cuando tenemos verdadero interés en leer algo, cosa que debe de ocurrir sólo durante un 5% del tiempo en que navegamos, es utilizar un bookmarket que aplica los estilos necesarios para mejorar la legibilidad a la parte de la página que contiene el contenido relevante, ocultando todos los demás elementos que pueden distraer la lectura, como banners, menús de navegación, etc. Se trata de Readability. En su web podemos elegir el estilo que más nos gusta entre varias opciones y una vez configurado, añadir el marcador al navegador.

Es un bookmarklet bastante útil y cómodo, no sólo para superar el día de hoy, sino para cuando nos encontramos con un tamaño de texto diminuto o longitud excesiva de líneas, dos cosas que dificultan y hacen poco apetecible la lectura.

2 Comentarios

Dejo un par de aplicaciones gratuitas de Fujitsu, descubiertas a través de Utilidades para Webmasters, de gran utilidad para detectar y prevenir problemas de accesibilidad causados por un contraste de color insuficiente o la transmisión de información basada sólo en el color.

ColorSelector permite comprobar el contraste de color de cualquier imagen o texto con bastante más precisión que el ya conocido Color Contrast Analyser. Otra ventaja respecto a este, es que nos proporciona una información “más amigable” sobre las deficiencias visuales para las que una combinación de colores puede ser problemática.

Captura de ColorSelector

Una aplicación muy útil para comprobar el contraste de imágenes con contenido textual en la fase de diseño.

La otra aplicación es ColorDoctor, que muestra una página web simulando varias deficiencias visuales o en escala de grises. Esta última opción es especialmente útil para detectar información transmitida sólo mediante el color, como podrían ser los típicos iconos con banderas de países para seleccionar el idioma o enlaces diferenciados del texto solamente mediante un color distinto.

Esta aplicación permite hacer la transformación en tiempo real (marcando la opción Real-time conversion), con lo que no sólo obtenemos una simple captura de pantalla como hacen otras aplicaciónes, sino que podemos ver también los cambios de color para el estado hover, animaciones, etc.

Captura de ColorDoctor

Sin comentarios

¿Alguna vez te ha tocado hacer una web completamente estática para el conocido del amigo del primo de…? No es raro hacer una web muy pequeña, lo que antes se solía llamar un site presencial, para la que el “cliente” desea poder gestionar él mismo el contenido. En estos casos, usar un gestor de contenido suele ser un poco desproporcionado (“matar moscas a cañonazos”) y puede causar más problemas que soluciones. Incluso es posible que la web esté alojada en un servidor sin soporte para PHP u otros lenguajes de programación.

Hace poco encontré algo que me pareció una gran idea y la solución perfecta para estos casos. Se trata de CushyCMS. Un sistema de gestión del contenido que no requiere la instalación de ningún CMS. ¿Cómo? Simplemente proporcionamos los datos de acceso FTP al servidor y añadimos una clase a cada elemento de la página que queramos que sea editable, permitiendo así la modificación del contenido mediante un editor WYSIWYG. En el vídeo que aparece en la web de CushyCMS se puede ver claramente su funcionamiento.

Desde luego que este sistema tiene muchas limitaciones y por ejemplo, para poder editar una página, esta tiene que existir, es decir, no permite la creación de nuevas páginas, sólo su edición. Aun así, su sencillísimo uso, tanto para el desarrollador como para el editor, hace que sea una opción muy a tener en cuenta a la hora de gestionar el contenido de sitios pequeños.

Sin comentarios

Se suele decir que hay que tener cuidado con lo que se desea porque puede que se haga realidad. Yo he tenido remordimientos esta mañana al encontrar este plugin y no dejo de tenerlos al escribir este post, pero la verdad es que el plugin es una pasada.

Sigue leyendo esta entrada »

Sin comentarios

OpenID: una identidad Web para todo

Por kcmr, el 27 de julio de 2008 en Cajón de sastre, Utilidades

OpenID es un sistema de identificación que permite usar una url para identificarte en todos los sitios que soporten el protocolo OpenID, ahorrándote el registro o creación de nuevas cuentas de usuario.

Aunque está en fase de aceptación, promete ser el estándar de identificación del futuro, ya que sitios como Technorati o Weblogs S.L (en España) están ofreciendo soporte para este sistema.

Sigue leyendo esta entrada »

Sin comentarios

Si tienes la necesidad de comprobar que la maquetación html de un diseño en retícula mantiene las distancias y anchuras correctas, puedes dedicarte a hacer capturas de pantalla y compararlas con los diseños, utilizar algún programa para medir espacios en pantalla (recomiendo Webmaster’s Toolkit, buenísimo) o superponer una retícula sobre tus páginas.

Sigue leyendo esta entrada »

Sin comentarios