Estilos en Vue: Scoped, Clases Dinámicas y Uso de Sass
Resumen
¿Cómo agregar estilos en una aplicación Vue?
La personalización visual de una aplicación web es fundamental para ofrecer una experiencia de usuario atractiva y consistente. En Vue, puedes aplicar estilos utilizando CSS de diversas maneras, incluyendo el uso de preprocesadores o bibliotecas de terceros como Tailwind. Exploremos cómo puedes estilizar tus componentes Vue de manera efectiva.
¿Cómo escribir estilos CSS en Vue?
Dentro de una componente Vue, es posible escribir estilos CSS de manera convencional. Solo necesitas incluir tus reglas dentro de una etiqueta <style>. Sin embargo, Vue te ofrece la capacidad de aislar estos estilos para que no afecten otros componentes de tu aplicación.
Aislar estilos con scoped
Para evitar que los estilos escritos en un componente afecten a otros, puedes usar el atributo scoped. Este atributo asegura que tus estilos CSS se apliquen exclusivamente al componente donde se han definido. Para activar esta función, simplemente agrega scoped a la etiqueta <style>, por ejemplo:
<stylescoped>.button{color:blue;}</style>
Ahora, tus estilos se aplicarán únicamente a los elementos del componente en el que se encuentran.
¿Cómo manejar estilos dinámicos?
Los estilos dinámicos permiten cambiar la apariencia de un componente según ciertas condiciones, como estado activo o interacción del usuario. Vue facilita esto a través del uso de clases dinámicas.
Uso de v-bind para clases dinámicas
Con Vue, puedes enlazar clases dinámicamente usando la directiva v-bind o su abreviación con el prefijo :. Aquí tienes un ejemplo sencillo:
En este caso, la clase active se aplicará solo si la variable isActive es verdadera. Solo necesitas definir el estilo para la clase active en tu CSS:
<stylescoped>.active{color:aqua;}</style>
¿Cómo utilizar preprocesadores como Sass?
Vue soporta el uso de preprocesadores CSS, como Sass, para mejorar la flexibilidad de tus estilos. Sass te permite usar funcionalidades avanzadas como variables, anidación y mixins.
Instalación y configuración de Sass en Vue
Para empezar a utilizar Sass en tu proyecto Vue, instala el paquete de Sass:
npminstall -D sass
Luego, asegúrate de especificar que deseas utilizar Sass en el componente Vue con lang="scss" en la etiqueta <style>:
En este ejemplo, Sass permite la anidación, facilitando el mantenimiento y la claridad en tu código CSS.
¿Qué otras opciones de estilización hay disponibles?
Además de CSS y Sass, Vue permite integrar otros preprocesadores, o incluso bibliotecas de utilidades como Tailwind CSS. Puedes explorar estas opciones para encontrar la solución que mejor se adapte a tus necesidades y al estilo de tu proyecto.
Reto para expandir conocimientos
Te propongo un par de retos para seguir mejorando tus habilidades en Vue:
Intenta instalar y configurar otro preprocesador, como Less o Stylus, y aplica algunos cambios a tu proyecto.
Experimenta con Tailwind CSS instalándolo en tu proyecto Vue y realiza algunas personalizaciones en el estilo de tu aplicación.
Estilizar una aplicación Vue es un proceso que puede adaptarse a tus necesidades y recursos disponibles, y hay múltiples herramientas y métodos para explorar. ¡Sigue practicando y descubre cómo implementar estilos eficientes y personalizados en tus proyectos!
Para el caso que comparto, se hace alusión a Tailwind en su versión 4:
Instalan el plugin de vite:
npm install tailwindcss @tailwindcss/vite
Modifican la configuración del vite para agregar el plugin:
vite.config.ts
import{ defineConfig }from'vite'importtailwindcssfrom'@tailwindcss/vite'exportdefaultdefineConfig({plugins:[tailwindcss(),],})```Luego, generalmente existe un archivo de CSS que se suele importar en el main.js (el punto de entrada de nuestro aplicativo). En otras ocasiones estos estilos son importados desde nuestro archivo index.html, como una hoja de estilos, en ese css agregamos las directivas para tailwind:
```css
@import"tailwindcss";```Finalmente reiniciamos el server del aplicativo:
```js
npm run dev
A mí me paso que siguiendo todos los pasos de instalación de la página de Tailwind en el apartado de vite no me agarraba las clases y hace falta hacer el "npm run build" para que cargue los estilos
La integracion de tailwind también es muy fácil, la verdad me gusta mucho vue, excelente que traigan a devars a la actualización, Ojala sigan una ruta con pinia, nuxt etc.
Holiiii.
Dejo por aquí si les interesa un enlace a la forma de integrar tailwindcss en vite
Instale Tailwind en su version 4, pero tuve algunos problemas, les dejo aqui que fue lo que hice para que funionara.
1 - Instale mediante el plugin de vite:
npm install tailwindcss @tailwindcss/vite
NOTA: Por alguna razon no me funionaba hacerlo segun la instalacion de tailwind en la doc: como algunos aqui en el chat de clase, si alguien sabe si funciona asi dejemelo saber.
Duda, si instalo tailwind y empiezo a colocarle estilos debo colocar npm run dev para que tome los cambios o lo dejo con el watch?
Acá unos procesadores interesantes:
Sass:
Stylus:
Tailwindcss:
Less:
Algunos otros framewors de css interesantes:
Master css:
Uno css:
Panda css:
A mi parecer bootstrap con CDN, tailwindcss y DaisyUI, son varias opciones para poder implementar estilos sin usar directamente css, SASS es una opcion mas para estructuras estrictas pero igualmente de valido.