Como pueden ver, esta parte se ha añadido pero no está funcionando porque no estamos utilizando los valores del tema. Así que vuelvo a mi botón.css.ts y para el color de fondo, voy a importar las vars que exporté en mi tema y aquí voy a decir que elija los colores primarios y principales. Y voy a usar otro aquí. Así que quiero el color negro. Mira eso. Autocompletar. Dios mío. Es tan emocionante. Así que luego voy a usar el tema oscuro para mi hover y para mi contorno, voy a usar otro color. Así que simplemente voy a ir con gris y principal. Ahora volvamos a nuestro ordenador. Vamos a nuestro navegador y como pueden ver, el tema se ha aplicado y ahora cambiemos de tema. Tenemos nuestros dos colores en dos temas en pocos minutos. Así que voy a ir incluso más allá. Así que en los paquetes de componentes, normalmente sucede que queremos pasar una prop a nuestro componente como una variante, un tipo, un tamaño, y luego basado en la prop que pasamos a el componente queremos ser capaces de cambiar nuestro design y nuestro estilo del componente. Así que para eso necesitamos usar recipe. Así que para empezar a implementar eso voy a reemplazar el estilo con la función recipe y necesito mover todos estos estilos bajo base. Así que va a ser el estilo base de mi componente. Así que voy a comentar estos porque vamos a moverlos en otra sección y recipe proporciona una variante, oh lo siento, supongo que variantes, sí. Así que las variantes pueden ser cualquier cosa desde tipo a tamaño, incluso puede ser un booleano como deshabilitado. Así que aquí simplemente voy a crear una variante de tipo y quiero que mi variante de tipo tenga un relleno y luego quiero que tenga un contorno. Así que estos van a ser diferentes tipos de mi bun y quiero un tipo de texto simple sin ningún fondo o nada. Así que ahora necesitamos añadir todo el estilo para cada uno de estos tipos que se supone que sobrescribirá el estilo base que tenemos aquí arriba. Así que lo tengo listo así que voy a copiarlo y pegarlo de mis notas. Así que si puedo, aparentemente, uso mi habilidad para copiar y pegar. Y el texto. Así que aquí vamos. Simplemente está añadiendo fondo y hover para cada tipo. Pero hay una cosa más que necesitamos hacer. Necesitamos decirle a Banyuda Extract cuál es nuestra variante por defecto. Así que decimos, para las variantes por defecto, para el tipo, quiero que sea relleno. Y como es TypeScript, está totalmente tipado, así que tiene grandes sugerencias. Si queremos implementar eso en un botón, normalmente lo que deberías hacer es añadir el tipo aquí, y luego necesitas añadirlo a tu tipo de props, pero entonces tienes que seguir el nombre exacto de tu estilo, y mantener estos sincronizados con el tiempo es un lío. Así que tienes que ir, tipo, quiero que sea relleno, y luego bla, bla, y mantener eso consistente con el tiempo es realmente difícil, pero realmente no tienes que hacer eso con Vanilla Xtract, hay una herramienta, así que voy a decir, voy a exportar la variante del botón, y voy a usar recipe, recipe, ayúdame, oh dios mío, oh, lo siento, mi mal, necesito, okay, ahí vas, y voy a decir que obtenga todos los tipos de button style, y button style no es una clase más, así que es lo que sea que se devuelva de recipe. Así que ahora vuelvo a nuestro componente y voy a importar el tipo que acabo de crear, lo que se llama bun variantes, ahí vas, y luego voy a añadir mi nueva prop, y aquí vamos a decir que para mi nombre de clase, ahora el bun side como mencioné no es una simple cadena más, es una función y pasas en tu prop de tipo aquí, y basado en la prop que estás pasando devolverá la clase correcta que necesitas para tu componente. Así que hay una última cosa que necesito hacer, es añadir estas props aquí, así que quiero tener contorno, y luego quiero tener texto, y el primero tiene un valor por defecto que es relleno. Ahora volvamos a nuestro navegador, y ta-da, tenemos tres variantes del mismo botón, Veamos si el tema funciona, y sí lo hace, y tan fácil como eso, en pocos minutos he podido crear un botón con tres variaciones y dos temas, y ese es el poder de Vanilla Extract. Espero que estén tan emocionados como yo y estén tan interesados como yo en Vanilla Extract, y si han disfrutado de esta masterclass y quieren hablar más sobre este paquete o CSS o React o cualquier cosa relacionada con el front-end, pueden encontrarme en Twitter, y gracias por ver, que tengan un día increíble.
Comments