Cómo migrar del framework Pure CSS a Stylify CSS
Esta guía está aquí para ayudarte a comparar rápidamente las características y sintaxis del framework de componentes Pure CSS con las del CSS utility-first de Stylify, y darte una idea de cómo migrar de Pure CSS a Stylify.
Introducción
Pure CSS es un conjunto de módulos CSS pequeños y responsivos que puedes utilizar en cualquier proyecto web.
Stylify CSS es una librería que usa selectores nativos tipo CSS color:blue
, max-width:640px
, margen:0_auto
junto con variables, componentes, selectores personalizados para generar CSS optimizado dinámicamente basado en lo que escribes.
Selectores y utilidades CSS
Pure CSS proporciona utilidades para propiedades como grid:
<div class="pure-g">
<div class="pure-u-1-3"><p>Terceros</p></div>
<div class="pure-u-1-3"><p>Tercios</p></div>
<div class="pure-u-1-3"><p>Terceros</p></div>
</div>
Stylify utiliza utilidades similares a CSS, que se pueden utilizar directamente dentro del atributo class. No hay atajos por defecto y los selectores no pueden contener un espacio debido a la mayor optimización.:
<div class="
color:blue
font-weight:bold
md:color:red
md&&landscape:font-size:32px
minw123px:font-size:123px
"></div>
Cuando algunos selectores tienen la misma pseudo-clase o incluso media query, puedes agruparlos así:
<div class="
hover:{color:blue;text-decoration:underline}
md:hover:{transform:scale(1.1);left:4px}
"></div>
Selectores globales
No he podido encontrar ninguna información que sugiera que Pure CSS proporcione algo parecido a Selectores Globales dinámicos.
Stylify proporciona selectores personalizados con los que puedes aplicar estilo a los elementos de forma global. Estos selectores pueden ser definidos directamente dentro del atributo class o en el config global o en un archivo donde se usan usando opciones de contenido.
Ejemplo con el atributo class:
<div class="[.button_.icon]{font-size:14px}">
<button class="
[.icon]{color:#fff;border-radius:12px}
[&+button]{margin-left:24px}
">
<i class="icon"></i>
</button>
<button></button>
<div>
El patrón sintáctico en el atributo class tiene este aspecto:
[css selectors]{stylify selectors split by ;}
El _
(guión bajo) se utiliza en lugar del espacio tanto en selectores CSS como Stylify y el carácter &
siempre se refiere al elemento actual.
El mismo código pero en la configuración global se vería así:
const compilerConfig = {
customSelectors: {
'.buttons-wrapper .button .icon': 'font-size:14px',
'.button': `
.icon { color:#fff border-radius:12px }
& + button { margin-left:24px }
`,
}
}
Al definir `customSelectors` en la configuración global a través de opciones de contenido, la sintaxis permite utilizar una característica de anidamiento. Los caracteres &
se refieren al nivel superior como en el SCSS.
Uso de la config global:
<div class="buttons-wrapper">
<button class="button">
<i class="icon"></i>
</button>
<button></button>
<div>
Componentes
Pure CSS es un framework que proporciona algunos componentes básicos, como botones, formularios, tablas, menús, etc:
<a class="pure-button" href="#">Un botón puro</a>
<table class="pure-table">
<thead>
<tr>
<th>#</th>
<th>Marca</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Honda</td>
</tr>
</tbody>
</table>
Stylify no proporciona ningún CSS predefinido Componentes por defecto. Sin embargo, proporciona dos maneras de definirlos y hay un conjunto de copiar y pegar Componentes sin cabeza que puede utilizar en su proyecto.
Los componentes pueden ser configurados en un archivo (usando opciones de contenido), donde son usados, o globalmente dentro de un $projectConfig.
Ejemplo con la configuración dentro de un archivo. El contenido entre stylify-components
espera objeto javascript sin corchetes circundantes:
<!--
stylify-components
title: 'color:blue font-weight:bold md:color:red'
/stylify-components
-->
<h1 class="title"></h1>
Ejemplo en un config global del compilador:
const compilerConfig = {
components: {
title: 'color:blue font-weight:bold md:color:red'
}
};
Uso:
<h1 class="title"></h1>
Cuando se define un componente, también se puede utilizar la sintaxis de anidamiento como en SCSS. Esto funciona en una configuración global y también en las opciones de contenido:
const compilerConfig = {
components: {
button: `
color:black font-weight:bold
&:hover { color:grey }
&--red {
color:red
&:hover { color: darkred }
}
`
}
};
Configuración, personalización y variables
Pure CSS se puede configurar ampliando las clases existentes:
/* añade tus estilos personalizados en este selector */
.form-custom { ... }
<form class="form-custom pure-form"></form>
También puedes elegir qué componentes quieres importar seleccionando Rollup responsive y no responsive. Puedes encontrar más info en su web.
En Stylify, no hay nada como un "tema", ni extender sección en $projectConfig. Sólo hay variables.
Las variables se pueden definir de dos formas en Stylify. En una configuración global o dentro de un archivo donde se utilizan a través de opciones de contenido.
Ejemplo con config global:
const compilerConfig = {
variables: {
primary: '#000',
secondary: '#eee',
titleFontSize: '24px',
shadow: '0 2px 3px #000'
}
}
También se pueden definir variables basadas en media query:
const compilerConfig = {
variables: {
dark: { blue: 'lightblue' },
md: { fontSize: 24px },
'minw640px': { fontSize: 32px },
// When screen is not found, it falls back to a random custom selector
'.dark': { blue: 'lightblue' },
':root[data-theme="dark"]': { blue: 'lightblue' }
}
}
Ejemplo con opciones de contenido:
<!--
stylify-variables
primary: '#000',
secondary: '#eee'
titleFontSize: '24px',
shadow: '0 2px 3px #000'
/stylify-variables
-->
<div class="color:$primary"></div>
Integra Stylify en tu herramienta favorita
Stylify puede ser usado en varias herramientas. Elige tu herramienta favorita y empieza a usar Stylify CSS en un minuto
Empieza
- 🚀 Aprende cómo empezar
- 🔌 Echa un vistazo a configuración de @stylify/unplugin
- ⚙️ O configura Stylify directamente:
Acelera el desarrollo con componentes CSS Headless preparados
Copiar&Pegar, componentes sin estilo inspirados en el Material Design V3.