Primeros Pasos

Migración

Guía para migrar de Spartan 2.x (TailwindCSS 3) a Spartan 3.x (TailwindCSS 4).

Esta guía cubre la migración de Spartan 2.x (TailwindCSS 3) a Spartan 3.x (TailwindCSS 4). La migración implica pasar del sistema de plugins en JavaScript a una configuración íntegramente basada en CSS.

Prerequisitos

  • Node.js 20.19 o superior
  • NPM ^10
  • Un proyecto existente que use Spartan 2.x

Pasos de migración

Remover el plugin de Spartan

En tu tailwind.config.js, elimina la ruta de contenido de Spartan y su plugin:

tailwind.config.js
module.exports = {
  content: [
    './src/**/*.{vue,js,ts,jsx,tsx}',
-   'node_modules/@placetopay/spartan-vue/dist/**/*.js',
  ],
  plugins: [
-   require('@placetopay/spartan-vue/plugin'),
  ],
}

Ejecutar la herramienta de actualización de TailwindCSS

Usa la herramienta oficial de migración de TailwindCSS para actualizar tu proyecto automáticamente:

npx @tailwindcss/upgrade

Esta herramienta se encarga automáticamente de:

  • Migrar tu tailwind.config.js a configuración basada en CSS
  • Actualizar las clases de utilidades que cambiaron
  • Identificar incompatibilidades
Revisa la guía oficial de migración de TailwindCSS v4 para información detallada sobre los breaking changes.

Remover la configuración de PostCSS (si la usas)

Si estabas usando PostCSS con TailwindCSS 3, elimina el archivo de configuración y las dependencias:

Terminal
rm postcss.config.js
package.json
{
  "devDependencies": {
-   "@tailwindcss/postcss": "^4.1.18",
-   "postcss": "^8.4.33",
  }
}

Instalar el plugin de Vite de TailwindCSS (si usas Vite)

Si tu proyecto usa Vite, instala el plugin oficial de TailwindCSS para Vite:

npm install -D @tailwindcss/vite

Y agrégalo a tu configuración de Vite:

vite.config.js
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import tailwindcss from '@tailwindcss/vite'

export default defineConfig({
  plugins: [
    vue(),
    tailwindcss(),
  ],
})

Actualizar Spartan a 3.x

Instala la última versión de Spartan:

npm install @placetopay/spartan-vue@latest

Actualizar los imports de estilos

Hay dos cambios en cómo se importan los estilos. Primero, remove el import de CSS que tenías en tu entry point:

main.ts
- import '@placetopay/spartan-vue/style.css'
  import { createApp } from 'vue'
  import App from './App.vue'

Luego, agrega el import de Spartan en tu archivo de estilos CSS principal:

styles.css
@import "@placetopay/spartan-vue/styles.css";

@source '../src/**/*.{vue,js,ts,jsx,tsx}';

E importa ese archivo de estilos desde tu entry point:

main.ts
import './styles.css'

import { createApp } from 'vue'
import App from './App.vue'

createApp(App).mount('#app')

Actualizar imports de colores de Tailwind (si los usas)

TailwindCSS 4 cambió la forma de exportar colores. Si importabas colores de Tailwind en archivos JS/TS:

- // Tailwind 3 (ya no funciona)
- import { red, blue } from 'tailwindcss/colors'

+ // Tailwind 4
+ import colors from 'tailwindcss/colors'
+
+ const red = colors.red
+ const blue = colors.blue

Verificar y testear

Realiza un build y levanta el servidor de desarrollo para validar que todo funciona:

Terminal
npm run build
npm run dev

Revisa visualmente tu aplicación para asegurarte de que todos los estilos se aplican correctamente.

Breaking changes

TailwindCSS 4

  • Configuración: Ahora se hace desde CSS con @theme, @plugin, entre otros, en lugar de tailwind.config.js
  • Dark mode: Se configura mediante @custom-variant en CSS
  • Fuentes de contenido: Se usa la directiva @source en CSS en lugar del array content en el archivo de configuración
  • Utilidad ring: ring-3 ya no es válido, usar ring con ancho personalizado si es necesario

Spartan 3.x

  • Sin plugin de JavaScript: Toda la configuración se hace desde CSS
  • Imports simplificados: Un solo @import de styles.css incluye todo
  • Peer dependencies actualizados: Requiere TailwindCSS 4.x

Color primario personalizado

Si en Spartan 2.x personalizabas el color primario mediante el plugin, necesitas migrar esa configuración a variables CSS:

- // tailwind.config.js (Spartan 2.x)
- plugins: [
-   require('@placetopay/spartan-vue/plugin')({
-     primary: {
-       50: '228 242 253',
-       500: '33 150 243',
-       // ...
-     }
-   })
- ]

+ /* styles.css (Spartan 3.x) */
+ @import "@placetopay/spartan-vue/styles.css";
+
+ @source '../src/**/*.{vue,js,ts,jsx,tsx}';
+
+ @theme {
+   --color-spartan-primary-50:  rgb(228 242 253);
+   --color-spartan-primary-100: rgb(187 222 251);
+   --color-spartan-primary-200: rgb(144 202 249);
+   --color-spartan-primary-300: rgb(100 181 246);
+   --color-spartan-primary-400: rgb(66 165 245);
+   --color-spartan-primary-500: rgb(33 150 243);
+   --color-spartan-primary-600: rgb(30 132 229);
+   --color-spartan-primary-700: rgb(25 103 196);
+   --color-spartan-primary-800: rgb(21 78 148);
+   --color-spartan-primary-900: rgb(13 42 84);
+ }
Copyright © 2026