En este artículo exploraremos una de las formas que ofrece jQuery Mobile para mejorar el diseño de las aplicaciones, de una manera sencilla, a través de iconos que vienen prediseñados dentro del mismo framework. El uso de estos elementos es algo que nos facilita mucho la vida a la hora de desarrollar sitios web, pues podemos hacer interfaces visualmente más atractivas.
Pues bien arranquemos con los iconos. Imaginen que tienen, un botón que nos envía a la página inicial de nuestra aplicación web. Este botón se podría hacer más atractivo y visual si ponemos un icono que represente el fin o el uso que tiene. ¿Cuál seria ese icono? ¿Dónde conseguimos ese icono?
Las dos preguntas o dudas las resuelve jQuery Mobile de manera sencilla. Primero el icono seria una casa que representa el home. Por supuesto, este icono viene incorporado dentro del framework. Respondiendo a la segunda pregunta, para hacer que nuestro botón tenga el icono de la casa, solo se necesita el siguiente código:
<a href="#" data-role="button" data-icon="home" > Inicio</a>
Solo hay que agregar un nuevo atributo data-icon y asignarle el valor de "home". Con esto conseguimos que nuestro botón tenga un pequeño icono de una casa.
Pero eso no es todo, jQuery Mobile dispone de iconos en varios colores y utilizará aquel que mejor se vea con el tema gráfico que estés utilizando en tu aplicación. Supongamos que tu botón tiene el tema "a", con el que conseguimos que elementos como botones sean de color negro. En ese caso el icono será de color blanco, para que resalte. Ahora si tienes el tema "c", que es un color con tono muy bajo, el framework le asignará a nuestro botón un icono más oscuro, siempre acorde al color del tema.
jQuery Mobile cuenta con una larga lista de iconos. Todos se indican a través de distintos valores del atributo data-icon. Algunos ejemplos son los siguientes:
<a href="#" data-role="button" data-icon="plus" data-iconpos="bottom"> Inicio </a>
Como se puede ver, ahora usamos otro icono, con nombre "plus", además en el código HTML agregamos el atributo data-iconpos="bottom", para poner el icono bajo el texto. Este atributo puede recibir los siguientes valores para posicionar el icono: "top", "left", "right" y "bottom". Sobra la explicación de los resultados que obtendremos con cada uno de ellos.
Además de los valores mencionados anteriormente, el atributo data-icon-pos puede recibir un quinto valor, el cual es: "notext", con el que eliminamos el texto de nuestro botón y solo aparecerá el icono que le hayamos asignado.
Ahora crearemos un botón que solo tendrá nuestro icono, es decir, no aparecerá el texto. Lo agregaremos dentro del header, con el fin de obtener un botón parecido al de la documentación de jQuery Mobile, algo que conseguimos con el siguiente código:
<a href="#" data-role="button" data-icon="home" data-iconpos="notext" class="ui-btn-right">Inicio</a>
Como pueden ver, no solo lo dejamos sin texto, también le asignamos la clase CSS "ui-btn-right" con el fin de que aparezca a la derecha del header. Todo esto viene prediseñado en el framework, solo debemos usarlo, a través del HTML.
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, minimum-scale=1, maximum-scale=1">
<title>Iconos con jQuery Mobile</title>
<link rel="stylesheet" href="jquery.mobile-1.0.min.css" />
<script src="jquery-1.7.1.min.js"></script>
<script src="jquery.mobile-1.0.min.js"></script>
</head>
<body>
<div data-role="page">
<div data-role="header" data-theme="b">
<a href="#" data-role="button" data-icon="home" data-iconpos="notext" class="ui-btn-right">Inicio</a>
<h1>Uso de iconos con jQuery Mobile</h1>
</div>
<div data-role="content" data-theme="c">
<a href="#" data-role="button" data-icon="home" >Inicio</a>
<a href="#" data-role="button" data-icon="plus" data-iconpos="bottom">Inicio</a>
</div>
<div data-role="footer" data-theme="b">
<h3>Uso de iconos con jQuery Mobile</h3>
</div>
</div>
</body>
</html>
El ejemplo en marcha se puede ver en una página aparte.
Para terminar te invito a modificar el código y obtener diferentes posiciones de los iconos, además de probar otras imágenes de las que ofrece el framework.