Esta guía explica cómo instalar SISASS, copiar su carga core y conectar los archivos SCSS con el compilador de tu proyecto.
Elige el procedimiento que corresponde a tu entorno. La instalación de SISASS y la del compilador Sass son pasos distintos. Cada entorno indica qué implementación de Sass debes instalar para compilar los estilos.
Requisitos comunes
Antes de instalar SISASS, asegúrate de cumplir con los siguientes requisitos.
Nodejs
Node.js
Requerido
Versión recomendada: 18.x o superior
Entorno de ejecución de JavaScript necesario para SISASS.
node -v
npm
npm
Requerido
Versión recomendada: 9.x o superior
Gestor de paquetes de Node.js para instalar y administrar dependencias.
npm -v
Proyecto
Root
Requerido
Estructura de proyecto con una carpeta raíz identificable
Tu proyecto debe tener una carpeta raíz identificable y un archivo package.json.
package.json
Crear package.json cuando sea necesario
npm init -y crea el archivo package.json con los valores predeterminados de npm. Ejecútalo únicamente si el proyecto todavía no tiene este archivo; si ya existe, continúa con la instalación de SISASS.
npm init -y
Instalar SISASS
Instala SISASS desde la raíz del proyecto. Este paso es común para todos los entornos de la guía:
npm install sisass
El compilador no se instala como un paso común: Vanilla, SQHTML y React con Webpack usan sass, mientras que React con Vite usa preferentemente sass-embedded. Selecciona tu entorno para continuar con el comando correspondiente.
Proyecto HTML, CSS y JavaScript
En un proyecto tradicional, instala sass como dependencia de desarrollo para disponer del compilador local:
npm install --save-dev sass
Después, ejecuta el instalador normal desde la raíz del proyecto consumidor. Este comando crea la carga distribuida en assets/scss/core/:
npm explore sisass -- npm run init
Crea un punto de entrada, por ejemplo assets/main.scss, e importa el módulo público de SISASS. La ruta sisass/src/sisass corresponde al árbol actual del paquete; si el paquete publicado incorpora un punto de entrada Sass, utiliza ese punto de entrada validado.
@use "sisass/src/sisass" as s;
@use "core/variables" as variables;
.installation_check {
@include s.text((align: center));
color: variables.$c2;
}
Compila el archivo con la carpeta del proyecto y el paquete como rutas de carga:
Enlaza assets/css/main.css desde tu HTML. Para observar cambios durante el desarrollo, puedes sustituir la compilación puntual por el modo --watch.
React sin Vite
React no define por sí mismo cómo se procesan los archivos SCSS. Esta ruta utiliza Webpack como ejemplo de un proyecto React existente. Si tu proyecto usa otra herramienta, conserva el procedimiento del instalador y sigue la integración Sass específica de esa herramienta.
Importa un archivo como src/main.scss desde tu entrada JavaScript o JSX:
import "./main.scss";
Para estilos globales usa un archivo SCSS normal. Si el proyecto ya tiene CSS Modules, puedes usar la extensión .module.scss y consumir las clases mediante el objeto que devuelve el import.
React con Vite
Vite tiene soporte incorporado para archivos .scss y .sass; solo necesitas instalar un compilador Sass. La opción recomendada es sass-embedded y sass es una alternativa compatible. No necesitas instalar un plugin específico de Vite para procesar Sass.
Ejecuta los siguientes comandos desde la raíz del proyecto para instalar el compilador Sass y el procesador de SVG. SISASS ya se instaló en el paso común; el último comando copia su carga distribuida en src/assets/scss/core/:
El instalador crea la carga distribuida en src/assets/scss/core/. Por su parte, npm instala el paquete en node_modules/sisass/, donde su punto de entrada Sass es src/_sisass.scss. La ruta ../../src/ funciona porque npm explore sisass ejecuta el instalador desde node_modules/sisass/.
Ambas formas de uso parten de la misma instalación. La diferencia está en cómo cada archivo SCSS accede a los módulos de SISASS: mediante un alias explícito, llamado namespace, o de forma global mediante additionalData. Configura primero las rutas de carga en vite.config.js, en la raíz del proyecto, al mismo nivel que package.json. Si el proyecto usa TypeScript, utiliza vite.config.ts:
La forma recomendada importa SISASS en cada archivo que lo necesita y le asigna un namespace, por ejemplo sisass. Así queda claro de dónde provienen los mixins y se reducen las colisiones con otros módulos del proyecto. Esta variante no utiliza additionalData:
@use "src/sisass" as sisass;
@use "core/variables" as variables;
.installation_check {
@include sisass.text((align: center));
color: variables.$c2;
}
Forma 2: sin namespace
Si prefieres no repetir los namespaces, añade additionalData dentro de scss. Vite inyectará estos módulos al comienzo de cada archivo SCSS y sus variables, mixins y funciones estarán disponibles sin prefijo:
scss: {
loadPaths: [
"./node_modules/sisass",
"./src/assets/scss"
],
additionalData: "@use \"core\" as *;\n@use \"src/sisass\" as *;\n"
}
Con esta variante, el mismo ejemplo se escribe sin namespace. No combines este código con los @use del ejemplo anterior:
@use "core/fonts" as *;
@use "core/keyframes" as *;
@use "core/layout" as *;
html,
body,
#root {
min-height: 100%;
}
body {
@include no-spacing;
@include bc($c2, $c1);
}
La configuración de postcss-inline-svg es necesaria cuando se usan mixins de SISASS que generan svg-load() o svg-inline(). En este proyecto, los archivos SVG deben estar en src/assets/img/svg/; Vite los convierte en URLs data:image/svg+xml durante la compilación CSS. Si no utilizas esas funciones, puedes omitir el bloque postcss y su dependencia.
En cualquiera de las dos formas, guarda los estilos en src/main.scss e impórtalos desde main.jsx, main.tsx o el componente que actúe como entrada de la aplicación:
import "./main.scss";
Ejecuta el servidor de desarrollo y la construcción de producción para confirmar que Vite resuelve los módulos, procesa los SVG configurados y genera CSS:
npm run dev
npm run build
Estilos locales con CSS Modules
Vite reconoce como CSS Module cualquier archivo SCSS cuyo nombre termine en .module.scss. Crea el archivo junto al componente que va a utilizarlo; así resulta fácil identificar qué estilos le pertenecen. Esta es la estructura del ejemplo:
Ejemplo con namespace: componente ProductCard
Para este ejemplo, ProductCard es un componente ficticio que representa una tarjeta de producto. El ejemplo utiliza explícitamente la forma con namespace: en ProductCard.module.scss, SISASS se importa como s y las variables como variables. Las clases declaradas allí serán locales al componente:
En ProductCard.jsx, importa el módulo como styles y accede a cada clase mediante ese objeto. Vite genera nombres únicos durante la compilación, por lo que estas clases no afectan otros componentes:
import styles from "./ProductCard.module.scss";
export function ProductCard() {
return (
<article className={styles.product_card}>
<h2 className={styles.title}>Curso de SISASS</h2>
<p className={styles.description}>
Estilos aislados para este componente.
</p>
</article>
);
}
Por último, importa ProductCard desde App.jsx. No necesitas importar nuevamente el SCSS porque el componente ya carga su propio módulo:
import { ProductCard } from "./components/ProductCard/ProductCard";
export default function App() {
return <ProductCard />;
}
Instalación en SQHTML
El modo SQHTML conserva el destino assets/scss/core/ y aplica ajustes específicos de variables y fuentes.
SQHTML y SQHTML2 usan el compilador sass. Instálalo como dependencia de desarrollo si el proyecto todavía no lo incluye:
npm install --save-dev sass
npm explore sisass -- npm run init -- --dep sqhtml
Si necesitas otra raíz de recursos, combina --dep sqhtml con --path:
Después de copiar los archivos, el instalador añade $c3: #1F567B cuando todavía no existe el bloque de ejemplo de SQHTML, configura $f1 con Roboto, ajusta $i1 a ../../img/svg/ y reemplaza el bloque de ejemplo de _fonts.scss por declaraciones de Roboto.
Instalación en SQHTML2
SQHTML2 es una integración especial del instalador. Su destino se fuerza a src/core/ y no depende de --path.
npm explore sisass -- npm run init -- --dep sqhtml2
Además de aplicar los ajustes de SQHTML, el instalador regenera _index.scss a partir de instances.config.js. En la configuración actual, el archivo reenvía variables, base, mediaqueries y mixin.
Rutas y modos del instalador
npm explore sisass ejecuta el script desde el directorio del paquete instalado. Por eso una ruta como ../../src/ se interpreta desde node_modules/sisass en una instalación npm convencional.
Modo
Respeta --path
Destino
Transformaciones adicionales
Normal
Sí
<raíz>/assets/scss/core/
Ninguna
sqhtml
Sí
<raíz>/assets/scss/core/
Variables y fuentes de SQHTML
sqhtml2
No
src/core/
Variables, fuentes y generación de instancias
Solución de problemas
Problema
Comprobación
Solución
El comando Sass no existe.
Ejecuta npx sass --version.
Instala sass como dependencia de desarrollo o usa el script del proyecto.
No se encuentra un módulo SCSS.
Revisa el destino creado y las rutas de carga.
Corrige --path o añade la carpeta correcta al compilador.
SQHTML2 no respeta --path.
Confirma que usaste --dep sqhtml2.
Usa el destino fijo src/core/ y no combines este modo con una ruta alternativa.
Faltan módulos reenviados por SQHTML2.
Revisa el contenido generado de _index.scss.
Añade los módulos requeridos al proyecto consumidor o espera una versión posterior de la integración.
SISASS no se resuelve con @use.
Comprueba el punto de entrada del paquete y la ruta de carga.
Usa el punto de entrada Sass publicado y validado para la versión instalada.