Students Save 30%! Learn & create with unlimited courses & creative assets Students Save 30%! Save Now
Advertisement
  1. Web Design
  2. Sass
Webdesign

Cómo usar Sass para construir un proyecto con múltiples temas

by
Difficulty:IntermediateLength:ShortLanguages:

Spanish (Español) translation by Rosario (you can also view the original English article)

El flujo de trabajo del desarrollador frontend ha experimentado grandes cambios en los últimos años. Más complejidad, mayores requisitos y proyectos más grandes nos llevan a nuevas tecnologías como los preprocesadores. Personalmente, me encanta el flujo de trabajo de mi preprocesador y no me gustaría perderme a Sass por mis proyectos en estos días; sin él, sería un desastre.

Una situación en particular en la que Sass me ha ayudado es crear una única interfaz sólida que puede tener diferentes temas: cambiar colores, imágenes o fuentes con facilidad. Hoy voy a describir mi flujo de trabajo, espero que les sea algo útil.

Estructura básica

Aquí está la estructura de un proyecto de ejemplo. Puedes usar cualquier parte que lógicamente sientas que debería incluirse. La clave está en tener una carpeta separada para temas y un nuevo archivo .scss para cada tema.

Carpeta-Estructura

Construye la base con un archivo principal

En el archivo application.scss tu importas todos sus parciales, ignorando la carpeta _themes/ en este punto. Esto construye la base sobre la cual podemos crear diferentes temas.

Configuración

Colores, fuentes y mucho mas

Configurar tu proyecto es muy importante. Aquí las variables vienen al rescate, lo que nos permite establecer los valores predeterminados y luego sobrescribir los valores en el nivel del tema más adelante. Aquí puedes ver que he establecido algunas variables para los colores, las fuentes y la configuración de los bordes.

Para obtener más detalles sobre cómo nombrar las variables, echa un vistazo al Consejo rápido de Jim Nielsen: nombre tus variables SASS de manera modular.

La clave para esta etapa es utilizar el indicador !default después de las declaraciones de variables. Hacer esto te permite sobrescribirlos dentro de los archivos de tema .scss; el !default efectivamente dice "use este valor si no está definido en otra parte".

Imágenes de fondo

Muy a menudo los desarrolladores no crean variables para las imágenes, en su lugar escriben urls directamente dentro de los selectores. Un enfoque que me gusta es eliminar todas las rutas dentro de los parciales y colocarlas en el archivo de configuración como variables. Esto hará que tu vida sea más fácil y el proyecto sea más fácil de mantener.

Ejemplo de un módulo básico

Aquí puedes ver algunas variables de fondo en acción. Este es un parcial modular para un acordeón, que utiliza la variable global $sprite pero también configura y usa una variable $accordion-bgcolor que es específica del módulo.

Como crear un tema

En tu archivo de tema (como los _themes/ _light-theme/light.scss de la estructura de demostración anterior) importa el archivo application.scss que contiene todos los módulos, diseños, etc. Esta es la base para todo; con un tema colocaremos una segunda capa sobre él. Nada mas. Una vez que hayas importado application.scss agrega las mismas variables utilizadas anteriormente, pero define valores específicos para este tema.

Usando esta técnica, si agregamos nuevos módulos a la base del proyecto, los compilaremos de forma automática (e inofensiva) dentro de todos nuestros temas.

Viendo archivos múltiples en Sass

El último paso es compilar Sass a CSS y obtener dos archivos diferentes para su uso. Debemos compilar application.scss y light.scss. Usando la línea de comando usarías algo como:

Si utilizas una aplicación, como CodeKit o Prepros, la compilación será un proceso más visual.

Incluye el archivo light.css en el encabezado de tu página y echa un vistazo a tu sitio web actualizado.

Conclusión

Como puedes ver, es útil y sencillo tener múltiples archivos de temas, todos basados en una base sólida. Siéntete libre de hacer preguntas, o haz comentarios y comparte tus experiencias con nosotros en la sección de comentarios.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.