Ulzurrun de Asanza i Sàez

Category: CSS

Cascade Style Sheets.

How to write WordPress Themes with SASS, TypeScript, and HMR

Not interested in all the details? I shared a twentytwenty child theme with SASS, TypeScript, and HMR applying all the ideas in this post that you can use as a starting point.

Modern front-end developer experience is nicer than the one we had in 2007 when WordPress came out.

Regular WordPress themes require reloading the entire page when any JavaScript or CSS changes. However, with tools like Vite we can achieve a state-of-the-art developer experience.

In this post I will guide you through all the steps required to add SASS, TypeScript, and HMR support to any WordPress theme.

A Twenty Twenty child theme with SASS stylesheet and HMR, and early preview of what we will achieve by the end of the post.
Read more →

Geoblink Design System

There are days when you know you are working on something amazing. You would love to share it with the world, but cannot. I felt that every single day at the office for months, knowing that someday – eventually – I would be able to share this project. Finally – today – Geoblink’s Design System has been open sourced (GitHub repository).

Geoblink’s Design System is open source.

Read more →

Mejora el aspecto de Google Reader con Stylish

Google Reader después de aplicar algo de CSS con Stylish

Google Reader antes de activar el nuevo estilo
Google Reader antes de activar el nuevo estilo

Google Reader no destaca precisamente por tener el diseño más bonito del mundo. De hecho no ha recibido ningún rediseño desde hace bastante tiempo, a diferencia de otros servicios de como Calendar o Gmail. Si sois de los que utilizáis Google Reader directamente desde su web, sin recurrir a ninguna aplicación que se sincronice con él, agradeceréis este artículo.

Lo que veis en la imagen de arriba es Google Reader tras activar algo de CSS a través de Stylish. Si no tenéis instalado Stylish, podéis hacerlo en Firefox o Google Chrome (en otros navegadores, como Opera o Safari, hay formas diferentes de aplicar los estilos CSS).

Si ya tenéis instalado Stylish, ahora tendréis que instalar los estilos. Al ser un archivo demasiado grande, el autor (Mestiso) no ha podido insertarlo directamente en userstyles.org, pero comparte el código en su página web. Para instalarlo (a través de Stylish) primero accederemos a userstyles.org y haremos clic en el botón Install with Stylish, a continuación editaremos el estilo y reemplazaremos todo el código por el que nos ofrece su autor en su página web. Para ello, en Firefox, mostraremos el panel lateral de Stylish (Ver » Panel lateral » Stylish) y haremos doble clic sobre el estilo Google Reader – 3 Column Reader. Una vez reemplazado el código haremos clic en Guardar y cuando accedamos de nuevo a Google Reader, veremos un diseño mucho más limpio y elegante.

El único inconveniente es que algunas características dejan de ser accesibles, como los patrones. Sin embargo esta función sigue estando activa. Para poder acceder a ella simplemente desactivaremos temporalmente el nuevo estilo (siguiendo los mismos pasos que antes, sólo que en lugar de hacer doble clic en Google Reader – 3 Column Reader lo haremos sobre el icono con una S que aparece a la izquierda del nombre, que tras el doble clic perderá el color, indicando que el estilo está desactivado).

Estilo: userstyles.org
Estilo: kamilb.info
Stylish: Firefox | Google Chrome


Ventajas de usar CSS

Código CSSMuchas veces se dice que no siempre el camino fácil es el mejor. Esto se puede aplicar a muchas cosas, y el CSS (Cascading Style Sheets) no iba a ser menos. Seguramente si acabáis de entrar en el mundo del diseño web os habréis sentido tentados a usar tablas (<table>) en lugar de capas (<div>) y a usar el atributo style en lugar de archivos CSS. A continuación voy a exponer mis 10 razones por las cuales es mejor usar CSS que no hacerlo. Read more →


Descarga Portal Colorido V 1.x

Con la salida de Portal Colorido 2.0, la rama 1.x se quedó obsoleta. Sin embargo, todavía hay algunas cosas únicas de esta antigua versión, como la integración con Foro Colorido. Lamentablemente, al subir las nuevas versiones de Portal Colorido a WordPress.org, las antiguas quedaron inaccesibles, algo de lo que no me había dado cuenta.

Afortunadamente Víctor me avisó del problema, y ha dado la casualidad de que tenía una copia de la versión 1.0.2.3 en mi servidor de pruebas, así que la he subido a Sumolari.com y la podéis descargar desde aquí.


Renovando el diseño de Sumolari.com

Con la salida de WordPress 3.0 decidí que el diseño de Sumolari.com necesitaba una puesta al día, una pequeña renovación de alguna de sus partes y alguna que otra optimización. Además, durante el desarrollo del tutorial de diseño web para el iPhone fui diseñando una versión para iPhone / iPod Touch de Sumolari.com, que quería poner online en cuanto fuese posible. Por úlimo, aprovechando que ya he terminado el desarrollo de WP Carousel 0.5 (aunque aún tengo que redactar la documentación antes de liberarla) he dedicado la mañana a actualizar el diseño del blog y del foro, juntamente con la versión de WordPress del blog y los plugins.

Los principales puntos en los que me he centrado han sido:

Unidad y cohesión

Nuevo menú de proyectos
Nuevo menú de proyectos

Menú del foro
Menú del foro

Si os fijáis, el portafolio ha desaparecido y se ha vuelvo a unir al blog. La idea de separarlos no era mala, pero la verdad es que se me hacía algo incómodo tener que mantener dos diseños tan diferentes y las diferencias entre el portafolio y el blog contribuían a hacer que pareciesen páginas diferentes.

La solución que se me ocurrió fue usar el mismo diseño que en el blog pero con algunas variaciones, en este caso de color. Para ello he transformado todos los fondos en fondos semitransparentes, de modo que el blog funciona con tan sólo 3 colores básicos, aplicados sobre fondos con degradados blancos y negros cuya opacidad varía y que crean los degradados de colores que hay por la página. También he aprovechado para usar un color diferente en las páginas de contacto y de información sobre el blog.

El siguiente paso fue qué poner en la página de plugins y temas. En el portafolio había un listado de proyectos, pero no me convencía mucho, así que he optado por eliminar esta página, y al hacer clic en el enlace, mostrar un menú con un listado de mis proyectos. Este menú es accesible desde cualquier página, de modo que para acceder a la página de un plugin sólo es necesario hacer dos clics, estés donde estés, y cargar una única página, estés donde estés.

Con el foro sucedía algo similar: el menú del foro sustituía al del blog al entrar al foro, lo que podía ocasionar alguna que otra confusión. Tras haber encontrado un modo de mostrar menús de una forma más eficaz (el listado de proyectos), decidí aplicar lo aprendido juntamente con lo descubierto trasteando con SMF para mostrar el menú completo del foro en cualquier página. Aunque eso sí, decidí sustituir el buscador del blog por el del foro cuando se navega por el foro.

Buscador totalmente renovado

El nuevo buscador
El nuevo buscador

El buscador que había en Sumolari.com me gustaba bastante como concepto, pero tenía fallos en la puesta en práctica. Es genial que se muestren los resultados sin salir de la página actual, pero ¿por qué limitarse a buscar artículos? ¿Por qué no buscar categorías, páginas y etiquetas? Busqué y busqué y la verdad es que nada de lo que encontré me convenció, así que pensé: “Si vas a hacer algo, hazlo bien”, y rediseñé por completo el buscador.

Hasta ahora usaba un plugin para mostrar los resultados, pero para optimizar decidí dejarlo de lado (no usaba jQuery, sino Prototype, de hecho era el único script del blog que usaba Prototype) y crear yo mismo la carga con AJAX (partiendo de lo aprendido durante el desarrollo de la nueva interfaz de WP Carousel 0.5) y dándole un diseño más bonito.

Finalmente ha salido lo que podéis ver en la parte derecha del menú principal: un buscador inspirado en Spotlight, capaz de buscar en páginas, etiquetas y categorías, que se carga en la misma página con jQuery y que se puede cerrar en cualquier momento haciendo clic en el icono con forma de cruz que aparece cuando se busca algo.

Versión para iPhone / iPod Touch

Versión para iPhone de Sumolari.com
Versión para iPhone de Sumolari.com

Otra de las novedades es que he rediseñado el blog en la versión para iPhone / iPod Touch. El diseño está especialmente pensado para ser cómodo y poder leer el blog de forma simple. La página de inicio muestra los últimos artículos (se pueden cargar más vía AJAX) o un listado de páginas si se toca la pestaña de páginas. También tiene un buscador, pero más sencillo que el de la versión para navegadores de escritorio.

De todos modos, esta versión está pensada únicamente para iPhone / iPod Touch, para las demás ocasiones la versión estándar es mucho mejor.

Otros cambios

Además de estas novedades, también he cambiado algunas cosas más. Por ejemplo, ahora los menús tienen un fondo degradado y no sólido como antes. También he cambiado el logo, poniendo una nueva tipografía y reemplazando el color anterior por uno más neutro (a favor de las posibles gamas de colores del blog). He puesto la rueda dentada que había en el logo del portafolio (animada con jQuery) y he eliminado la pestaña de RSS del pie de página para poner el icono en el menú principal.

Y estas son todas las novedades respecto al diseño del blog.


Diseñando nuestra web para el iPhone – Parte 5

Nota: Esta es la quinta parte del tutorial Diseñando nuestra web para el iPhone. Si no has leído las partes anteriores, es muy recomendable que lo hagas, comenzando por la primera. También os aviso de que si bien voy a explicar cómo diseñar para el iPhone, para comprender estos tutoriales son necesarios unos mínimos conocimientos de HTML y CSS, siendo recomendable tener alguna idea de Javascript (tampoco es necesario ser experto, ya que yo mismo soy un novato).

Hasta ahora hemos visto cómo crear cabeceras y pies de página, pero no hemos visto nada del contenido. En esta parte me centraré en imitar las listas que aparecen en diversos lugares de iOS, pero haciendo un par de añadidos.

Lista de contactos en iOS

Lista de artículos imitando la lista de contactos de iOS

La lista básica tendría el siguiente código HTML:
[html]
<ul class="post-list">
<!– Post 1 –>
<li>
<a href="#">
<span class="post-comments">
<span class="post-comments-number">0</span>
</span>
Nombre del artículo
<span class="post-dates">27 – 6 – 2010</span>
</a></li>
<!– Post 2 –>
<li>
<a href="#">
<span class="post-comments">
<span class="post-comments-number">6</span>
</span>
Nombre del artículo 2
<span class="post-dates">26 – 6 – 2010</span>
</a></li>
<!– Etc –></ul>
[/html]

El código CSS para imitar el resultado de la segunda imagen de la izquierda es el siguiente:

[css]
ul.post-list li a {
min-height:40px;
padding:14px 10px;
font-family:Helvetica;
font-size:20px;
font-weight:bold;
border-bottom:1px solid #D9D9D9;
color:#000;
text-decoration:none;
display:block;
}

ul.post-list li a span.post-comments {
margin:0 0 0 10px;
min-width:18px;
height:28px;

color:#FFF;
text-align:center;
border:2px solid #FFF;
-webkit-box-shadow: 0 0 5px #888;

float:right;
display:block;
-webkit-border-radius:14px;
}

ul.post-list li a span.post-comments span.post-comments-number {
padding:3px 5px;
min-width:18px;
height:22px;

background: -webkit-gradient(linear, left top, left bottom, from(#DE7B7E), to(#CB2A29), color-stop(0.5, #D76368), color-stop(0.5, #CF2A27));
color:#FFF;
text-align:center;

float:right;
display:block;
-webkit-border-radius:14px;
}

ul.post-list li a span.post-dates {
font-size:13px;
font-weight:normal;
color:#666;
display:block;
}
[/css]

Estilo de una lista en iOSEstilo de una lista con esquinas curvas en iOS

Si analizáis el código veréis que no me he limitado a hacer una copia idéntica de las listas, sino que he modificado el código para (dejando de lado el círculo que indica, por ejemplo, los comentarios) que se ajuste a cualquier longitud del texto y que permita mostrar una pequeña descripción del contenido bajo el título (en la imagen aparece en forma de fecha de publicación).

Por último, tan sólo querría dar algunos consejos a la hora de diseñar una web para el iPhone / iPod Touch:

Y con esto doy por terminado el tutorial de diseño web para el iPhone. Me gustaría unir todas las partes y distribuirlo en formato PDF, pero antes tengo algunas otras cosas a medias, así que eso tendrá que esperar.

Espero que os haya gustado y os sirva para tener algo más en esos momentos en los que nos atascamos durante el diseño de una web.


Aplicar propiedades de CSS3 en Internet Explorer

Hoy han publicado en Smashing Magazine métodos para aplicar algunas propiedades de CSS3 como opacidad, esquinas redondeadas, sombras y demás en Internet Explorer. El método hace que el código CSS deje de ser válido y cumplir con los estándares, pero al menos se consigue un buen resultado.

A ver si en IE9 se ponen las pilas y nos evitan tener que recurrir a estos trucos.

Diseñando nuestra web para el iPhone – Parte 4

Nota: Esta es la cuarta parte del tutorial Diseñando nuestra web para el iPhone. Si no has leído las partes anteriores, es muy recomendable que lo hagas, comenzando por la primera. También os aviso de que si bien voy a explicar cómo diseñar para el iPhone, para comprender estos tutoriales son necesarios unos mínimos conocimientos de HTML y CSS, siendo recomendable tener alguna idea de Javascript (tampoco es necesario ser experto, ya que yo mismo soy un novato).

Pie de página de CooshAplicación iPod del iPhoneEn la parte anterior expliqué cómo crear cabeceras, pues bien, en esta parte me centraré en los pies de página. Utilizaré las mismas páginas para mostrar distintos tipos de pies de página. Podemos ver a la izquierda como Coosh trata de imitar la barra inferior de algunas aplicaciones nativas del iPhone (ver imagen de la derecha). Mientras, tanto Google como Yahoo muestran un pie de página algo “dejado caer”, es decir, sin estar demasiado adaptado al estilo del iPhone, así que en lugar de explicar cómo diseñar un pie de página así (algo realmente fácil), explicaré como diseñar un pie de página que siga las líneas de la cabecera del Yahoo (que expliqué como crear en la parte anterior).

Así que comenzaremos por imitar la interfaz del iPhone y después veremos cómo adaptar el estilo de la caebcera al pie.

Creando un pie de página que imite el de una aplicación nativa

En las dos imágenes anteriores podéis ver cómo es el menú inferior de algunas aplicaciones nativas del iPhone. No todas las aplicaciones muestran un menú así, pero sí algunas importantes. Básicamente este menú consiste en un fondo con un degradado de colores oscuros y diversos iconos distribuidos a lo largo del mismo.

Yo no voy a diseñar iconos para el menú en este tutorial, así que me limitaré a usar imágenes con un fondo distinto para que resalten un poco. Sobre la altura del menú, son 47px de alto más el borde superior (de un color gris más claro) que añade 1px, haciendo un total de 48px.

Resultado de imitar la interfaz de una aplicación nativa del iPhone El código HTML que usaríamos para este menú sería el siguiente:

[html]
<div id="footer">

<ul>
<li class="icon-circle selected"><a href="#">Categor&iacute;as</a></li>
<li class="icon-circle"><a href="#">P&aacute;ginas</a></li>
<li class="icon-circle"><a href="#">Etiquetas</a></li>
<li class="icon-circle"><a href="#">B&uacute;squedas</a></li>
</ul>

</div>
[/html]

Y el CSS sería el que tenéis a continuación:

[css]body, div, h1, ul { /* Reseteamos algunos estilos para que se ajuste correctamente el contenido */
margin:0;
padding:0;
}

#footer {
margin:312px 0 0 0; /* Para ajustarlo al final de la página, como en mi demostración no hay más contenido, esta línea es necesaria para posicionar el pie de página en el final de la página, así que si añadís contenido, eliminad esta línea */
border-top:1px solid #434343;
height:47px;
background: -webkit-gradient(linear, left top, left bottom, fr om(#2E2E2E), to(#000), color-stop(0.5, #151515), color-stop(0.5, #000));
}

#footer ul {
width:100%;
height:100%;
list-style:none;
text-align:center;
}

#footer ul li {
margin:1px 5px;
padding:0 5px;
height:45px;
font-family:Helvetica;
float:left;
font-size:11px;
}

#footer ul li.icon-circle { background:url(circle-iphone.png) top center no-repeat; }

#footer ul li.icon-circle a {
height:12px;
display:block;
text-decoration:none;
color:#969696;
padding:33px 2px 0 2px;
}

#footer ul li.icon-circle.selected a {
color:#FFF;
background:url(circle-iphone-selected.png) top center no-repeat;
}

#footer ul li.icon-circle.selected {
-webkit-border-radius:5px;
background:-webkit-gradient(linear, left top, left bottom, fr om(#494949), to(#252525), color-stop(0.5, #353535), color-stop(0.5, #252525));
}[/css]

Nota: Debido a un problema con WordPress, he tenido que modificar el código CSS para guardar el artículo. En algunas líneas veréis que pone “fr om”, pues bien, debería ir junto, sin el espacio entre “fr” y “om”.

Adaptando la cabecera para el pié de página

Hagamos memoria de la cabecera que habíamos diseñado basándonos en la de Yahoo.

El código HTML era el siguiente:
[html]
<div id="header">
<div id="logo_container">
<!– Aquí estará el logo –>
<h1>Miweb.com</h1>
</div>
<div id="menu_container">
<!– Aquí estarán las pestañas –>
<ul id="menu">
<li class="selected"><a href="#">Inicio</a></li>
<li><a href="#">Artículos</a></li>
<li><a href="#">Páginas</a></li>
</ul>
</div>
<div id="subheader">
<!– Aquí estará el buscador –>
</div>
</div>

[/html]

Y su CSS era:

[css]
body, div, h1 { /* Reseteamos algunos estilos para que se ajuste correctamente el contenido */
margin:0;
padding:0;
}

#header {
width:100%;
height:150px;
background: -webkit-gradient(linear, left top, left bottom, fr om(#75B856), to(#4C7A06));
}

#logo_container {
width:100%;
height:50px;
}

#logo_container h1 {
padding:8px;
font-family:Helvetica;
font-size:30px;
color:#FFF;
}

#menu_container {
width:100%;
height:50px;
}

#menu {
width:100%;
height:50px;
padding:0;
margin:0;
list-style:none;
}

#menu li {
height:38px;
margin:2px 5px 0 5px;
padding:5px;
float:left;
}

#menu li a {
height:28px;
padding:5px;
font-family:Helvetica;
font-size:20px;
color:#FFF;
text-decoration:none;
font-weight:bold;
display:block;
}

#menu li.selected {
background: -webkit-gradient(linear, left top, left bottom, fr om(#FFF), to(#FEFEFE));
-webkit-border-top-left-radius:6px;
-webkit-border-top-right-radius:6px;
}

#menu li.selected a {
color:#000;
}

#subheader {
width:100%;
height:50px;
background: -webkit-gradient(linear, left top, left bottom, fr om(#FEFEFE), to(#C0C0C0));
border-bottom:1px solid #666;
}

[/css]

Nota: Debido a un problema con WordPress, he tenido que modificar el código CSS para guardar el artículo. En algunas líneas veréis que pone “fr om”, pues bien, debería ir junto, sin el espacio entre “fr” y “om”.

Adaptar la cabecera al pie de página es un proceso bastante sencillo. Tan sólo deberíamos retirar el logotipo e invertir las posiciones del menú y el contenido inferior: ahora la parte gris debería estar en la zona superior y el menú inferior, adaptado a su vez las esquinas curvas de los enlaces y el degradado.

Pie de página para el iPhone Estos cambios ser verían reflejados en el código HTML y en el CSS. El HTML pasará a ser así:
[html]<div id="footer">
<div id="prefooter">
<!– Aquí estará el buscador –>
</div>
<div id="footer_menu_container">
<!– Aquí estarán las pestañas –>
<ul id="footer_menu">
<li class="selected"><a href="#">Inicio</a></li>
<li><a href="#">Artículos</a></li>
<li><a href="#">Páginas</a></li>
</ul>
</div>
</div>[/html]

Y el CSS, así:[css]body, div, h1 { /* Reseteamos algunos estilos para que se ajuste correctamente el contenido */
margin:0;
padding:0;
}

#footer {
margin:256px 0 0 0;
width:100%;
height:100px;
background: -webkit-gradient(linear, left top, left bottom, fr om(#75B856), to(#4C7A06));
}

#footer_menu_container {
width:100%;
height:50px;
}

#footer_menu {
width:100%;
height:50px;
padding:0;
margin:0;
list-style:none;
}

#footer_menu li {
height:38px;
margin:-1px 5px 2px 5px;
padding:5px;
float:left;
}

#footer_menu li a {
height:28px;
padding:5px;
font-family:Helvetica;
font-size:20px;
color:#FFF;
text-decoration:none;
font-weight:bold;
display:block;
}

#footer_menu li.selected {
background: -webkit-gradient(linear, left top, left bottom, fr om(#C0C0C0), to(#999));
-webkit-border-bottom-left-radius:6px;
-webkit-border-bottom-right-radius:6px;
}

#footer_menu li.selected a {
color:#000;
}

#prefooter {
width:100%;
height:50px;
background: -webkit-gradient(linear, left top, left bottom, fr om(#FEFEFE), to(#C0C0C0));
border-bottom:1px solid #666;
}
[/css]

Nota: Debido a un problema con WordPress, he tenido que modificar el código CSS para guardar el artículo. En algunas líneas veréis que pone “fr om”, pues bien, debería ir junto, sin el espacio entre “fr” y “om”.

Y esto es todo de momento. Tan sólo me gustaría hacer un apunte: los links que pongamos en el pie de página no tienen por qué ser los mismos que pondríamos en la versión completa de la web. Me explico, generalmente se pone en el pie de página un enlace a la parte superior de la web, sin embargo, pulsando la barra de título de Mobile Safari ya nos lleva a la parte superior, con lo cual no es necesario añadir este enlace en nuestro pie de página.


Diseñando nuestra web para el iPhone – Parte 3

Nota: Esta es la tercera parte del tutorial Diseñando nuestra web para el iPhone. Si no has leído las partes anteriores, es muy recomendable que lo hagas, comenzando por la primera. También os aviso de que si bien voy a explicar cómo diseñar para el iPhone, para comprender estos tutoriales son necesarios unos mínimos conocimientos de HTML y CSS, siendo recomendable tener alguna idea de Javascript (tampoco es necesario ser experto, ya que yo mismo soy un novato).

En esta parte me centraré por completo en el diseño de las cabeceras, aprovechando algunos atributos CSS únicos de Webkit que nos facilitarán tareas como redondear esquinas y crear degradados. Si recordáis dónde nos quedamos en la parte anterior, llegamos a ver diferentes ejemplos de cabeceras, de las cuales nos centraríamos en las que utilizan un sistema de navegación por pestañas y en las que imitan la interfaz de las aplicaciones nativas del iPhone.

Creando una cabecera con degradados y pestañas

Comenzaremos por la cabecera con degradados y pestañas. Yo seguiré el modelo de Yahoo, que podéis en la imagen de la izquierda. Podría haber seguido el modelo de Google, pero me parecía más simple y fácil de hacer.

La cabecera está formada por tres niveles diferentes. En el primero está el logotipo y un enlace hacia el correo, en el segundo están las pestañas y en el tercero está el buscador. Puede que no tengamos clara la utilidad del tercer nivel fuera de un buscador, pero realmente puede ser muy útil. Por ejemplo, podemos mostrar ahí las subpáginas que hay dentro de la pestaña, o si estamos diseñando para un blog, la lista de categorías del artículo, o simplemente, un buscador.

Así que en principio la cabecerá tendrá la siguiente estructura HTML:

[html]
<div id="header">
<div id="logo_container">
<!– Aquí estará el logo –>
</div>
<div id="menu_container">
<!– Aquí estarán las pestañas –>
</div>
<div id="subheader">
<!– Aquí estará el buscador –>
</div>
</div>
[/html]

Dicho esto, centrémonos en crear los degradados. Generalmente tendríamos que recurrir a imágenes, sin embargo, Webkit permite crear degradados mediante -webkit-gradient. Su sintaxis puede parecer algo compleja, así que veámosla con un ejemplo:

[css]
background: -webkit-gradient(linear, left top, left bottom, from(#FFF), to(#000));
[/css]

Cada coma (,) separa un valor diferente. El primero indica de si se trata de un degradado lineal o radial. En este caso tomaremos el linela. El segundo valor indica la posición desde la que comienza: a la izquierda y arriba. El tercer valor indica dónde acaba: a la izquierda y abajo. El cuarto valor indica el color inicial: blanco. El quinto y último valor indica el color en el que acaba: negro. También podemos establecer colores intermedios, pero es algo más complejo.

Esto nos evita tener que crear una imagen con el degradado y agiliza la carga de la página.

Para crear las esquinas curvas, recurriremos a -webkit-border-radius para establecer un radio a todas las esquinas y -webkit-border-(top | bottom)-(left | right)-radius para especificar qué esquinas tendrán cierto radio.

[css]
#redondear_bordes {
-webkit-border-radius:4px; /* Todas las esquinas tendrán un radio de 4px */
-webkit-border-top-left-radius:4px; /* Sólo la esquina superior izquierda tendrá un radio de 4px */
-webkit-border-top-right-radius:4px; /* Sólo la esquina superior derecha tendrá un radio de 4px */
-webkit-border-bottom-left-radius:4px; /* Sólo la esquina inferior izquierda tendrá un radio de 4px */
-webkit-border-bottom-right-radius:4px; /* Sólo la esquina inferior derecha tendrá un radio de 4px */
}
[/css]

Combinando esto con algo más de CSS e ingenio podemos lograr sin mucha dificultad algo como lo de la imagen que hay a continuación, que se crearía a partir del siguiente código HTML / CSS:

[html]
<div id="header">
<div id="logo_container">
<!– Aquí estará el logo –>
<h1>Miweb.com</h1>
</div>
<div id="menu_container">
<!– Aquí estarán las pestañas –>
<ul id="menu">
<li class="selected"><a href="#">Inicio</a></li>
<li><a href="#">Artículos</a></li>
<li><a href="#">Páginas</a></li>
</ul>
</div>
<div id="subheader">
<!– Aquí estará el buscador –>
</div>
</div>
[/html]

[css]
body, div, h1 { /* Reseteamos algunos estilos para que se ajuste correctamente el contenido */
margin:0;
padding:0;
}

#header {
width:100%;
height:150px;
background: -webkit-gradient(linear, left top, left bottom, f rom(#75B856), to(#4C7A06));
}

#logo_container {
width:100%;
height:50px;
}

#logo_container h1 {
padding:8px;
font-family:Helvetica;
font-size:30px;
color:#FFF;
}

#menu_container {
width:100%;
height:50px;
}

#menu {
width:100%;
height:50px;
padding:0;
margin:0;
list-style:none;
}

#menu li {
height:38px;
margin:2px 5px 0 5px;
padding:5px;
float:left;
}

#menu li a {
height:28px;
padding:5px;
font-family:Helvetica;
font-size:20px;
color:#FFF;
text-decoration:none;
font-weight:bold;
display:block;
}

#menu li.selected {
background: -webkit-gradient(linear, left top, left bottom, f rom(#FFF), to(#FEFEFE));
-webkit-border-top-left-radius:6px;
-webkit-border-top-right-radius:6px;
}

#menu li.selected a {
color:#000;
}

#subheader {
width:100%;
height:50px;
background: -webkit-gradient(linear, left top, left bottom, f rom(#FEFEFE), to(#C0C0C0));
border-bottom:1px solid #666;
}

[/css]

Nota: He usado varias veces la palabra “f rom” en el código anterior. En realidad debería escribirse todo junto (sin el espacio entre la “f” y “rom”), pero no he podido unirlo y guardar el artículo, WordPress me devuelve un error. En fin, disculpad las molestias.

Como podéis ver, el resultado es muy similar al de Yahoo, aunque no he añadido el buscador, eso os lo dejo a vosotros.

Creando una cabecera que imite la de una aplicación nativa

El segundo tipo de cabeceras que vimos eran las que imitaban la barra de título de una aplicación nativa. Esta vez partiremos del diseño de Coosh, que podéis ver en la imagen de la izquierda.

Si bien Coosh trata de imitar la interfaz de una aplicación, lo cierto es que la barra de título está incompleta, faltan el título y el enlace hacia la siguiente página.

Así que partiremos de una estructura con un nivel y tres elementos: botón anterior, botón posterior y título de la página, que en HTML quedaría así:

[html]
<div id="header">
<div id="back">
<!– Aquí estará el enlace hacia la página anterior –>
<a href="#">Atr&aacute;s</a>
</div>
<div id="forward">
<!– Aquí estará el enlace hacia la siguiente página –>
<a href="#">Adelante</a>
</div>
<div id="title">
<!– Aquí estará el título de la página –>
<h1>Miweb.com</h1>
</div>
</div>
[/html]

Bien, ahora mediante combinación de degradados y bordes curvos podemos imitar la interfaz de una aplicación sin demasiada dificultad y sin usar imágenes. Podríamos mejorar el aspecto mediante el uso de imágenes, pero estamos hablando de aprovechar al máximo las posibilidades del iPhone, así que las dejaremos para más adelante.

El resultado que podemos lograr lo tenéis a continuación, junto con el código CSS que lo logra.

[css]
body, div, h1 { /* Reseteamos algunos estilos para que se ajuste correctamente el contenido */
margin:0;
padding:0;
}

#header {
height:30px; /* Tomaremos una altura aceptable */
padding:4px;
background: -webkit-gradient(linear, left top, left bottom, f rom(#BEC8D6), to(#7A90AD));
border-bottom:1px solid #6F7A86;
clear:both;
}

#back {
height:20px;
margin:0 10px 0 0;
padding:4px;
float:left;
border:1px solid #626C79;
-webkit-border-radius:6px;
background: -webkit-gradient(linear, left top, left bottom, f rom(#9AADC6), to(#5C7DA9), color-stop(0.5, #6584AD), color-stop(0.5, #5C7DA9));
}

#back a , #forward a{
font-family:Helvetica;
font-size:15px;
font-weight:bold;
text-decoration:none;
text-shadow: 0px -1px 0px rgba(0, 0, 0, 0.6);
text-align:center;
white-space: nowrap;
color:#FFF;
}

#forward {
height:20px;
margin:0 0 0 10px;
padding:4px;
float:right;
border:1px solid #626C79;
-webkit-border-radius:6px;
background: -webkit-gradient(linear, left top, left bottom, f rom(#9AADC6), to(#5C7DA9), color-stop(0.5, #6584AD), color-stop(0.5, #5C7DA9));
}

#title h1 {
font-family:Helvetica;
font-size:26px;
font-weight:bold;
text-decoration:none;
text-shadow: 0px -1px 0px rgba(0, 0, 0, 0.6);
text-align:center;
white-space: nowrap;
color:#FFF;
}
[/css]

Nota: Como antes, he usado varias veces la palabra “f rom” en el código anterior. En realidad debería escribirse todo junto (sin el espacio entre la “f” y “rom”), pero no he podido unirlo y guardar el artículo, WordPress me devuelve un error. En fin, disculpad las molestias.

Con esto ya podemos crear dos tipos diferentes de cabeceras, que era el objetivo de esta tercera parte. Como siempre, cualquier duda, sugerencia o pregunta, podéis hacerla en los comentarios.