Vite + Vue + Ant Design System + custom design
En un Design System que estoy trabajando actualmente, el stack consiste en: Vite, Vue, Ant Design System (Antdv) y otras librerías. Mi intención es customizar Antdv con tal de no crear nuevas clases o sobreescribir estilos sino nativamente crear la identidad gráfica, a través de custom variables de Antdv.
El proceso no fue corto y finalmente encontré la receta, la que muestro en este artículo con tal de ayudar a alguien más.
Desde ya dejo el enlace al repositorio funcional donde puedes verificar la funcionalidad.
El proceso⌗
- Instala con NPM, Yarn o el bundler que quieras: Vite, Vue, Ant Design System Vue (no mostraré este proceso ya que asumo que sabrían como hacerlo en su proyecto actual o nuevo). Es importante que consideres utilizar la librería unplugin-vue-components la que permite que puedas importar Antdv por módulos sin tener que declararlos manualmente, sino lo hace automágicamente. Esta es la configuración recomendada para esta stack. Además, necesitarás instalas la librería Less.
Instalación original⌗
La configuración⌗
Aquí la receta especial. En tu archivo vite.config.(ts|js) verifica lo siguiente:
import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import Components from "unplugin-vue-components/vite";
import { AntDesignVueResolver } from "unplugin-vue-components/resolvers";
export default defineConfig({
plugins: [
...
Components({
resolvers: [AntDesignVueResolver(
{ importStyle: "less" } // importante
)],
}),
],
css: {
preprocessorOptions: { // modifica aquí las variables de Less que necesites
less: {
modifyVars: {
"primary-color": "#1DA57A",
"link-color": "#1DA57A",
"border-radius-base": "16px",
},
javascriptEnabled: true,
},
},
},
});
Antdv modificado⌗
Puedes verificar todas las variables Less de Antdv en su repositorio.
Ver demo⌗
Leer otros artículos