Este proyecto es una fusión de buenas ideas de Afrodita y JSS. Proporciona una API de Afrodita pero fija muchas limitaciones y advertencias mediante el uso de JSS como motor de representación debajo del capó.
css()
funcione la invocación. Solo las reglas aprobadas se convierten en una cadena CSS e inyectadas.css()
Llame a la invocación. Le brinda acceso a los estilos calculados justo después del render, no es necesario usar setTimeout()
. También evita recalcs y repintes adicionales, lo que puede causar parpadeos y gastos generales de rendimiento general. import { StyleSheet , css } from 'aphrodite-jss'
const sheet = StyleSheet . create ( {
button : {
border : '1px solid' ,
borderRadius : 5 ,
fontSize : 'inherit' ,
lineHeight : '2.3em' ,
padding : '0 1em' ,
boxShadow : 'inset 0 1px 0 rgba(255, 255, 255, 0.1)' ,
textShadow : '0 -1px 0 rgba(0, 0, 0, 0.25)' ,
backgroundRepeat : 'repeat-x' ,
color : '#fff' ,
fontWeight : 400 ,
'& span' : {
marginRight : 5 ,
color : '#fff'
}
} ,
primary : {
borderColor : '#1177cd #0f6ab6 #0d5c9e' ,
backgroundImage : 'linear-gradient(to bottom, #2591ed 0%, #1177cd 100%)' ,
backgroundColor : '#1385e5' ,
'&:hover' : {
backgroundImage : 'linear-gradient(to bottom, #3c9def 0%, #1385e5 100%)'
}
}
} )
document . body . innerHTML = `
<button class=" ${ css ( sheet . button , sheet . primary ) } ">
<span>✔</span>Primary
</button>
`
StyleSheet.create(styles)
Crear función no representa nada, solo registra sus estilos.
Devuelve un objeto, donde los nombres clave corresponden a los estilos originales Obejct.
css(rule1, [rule2], [rule3], ...)
Inyecta una regla previamente definida al DOM. Esto se hace sincronizado, por lo que la regla CSS está disponible de inmediato.
Devuelve un nombre de clase.
El formato para los estilos se define en JSS. Apodisiac utiliza JSS-Preset-Default, por lo que todos los preajustes predeterminados ya están en su lugar.
aphroditeJss(jss, [options])
Puede pasar su propia instancia de JSS con su configuración personalizada.
Devuelve la interfaz de Afrodita.
import aphroditeJss from 'aphrodite-jss'
import { create } from 'jss'
const { css , StyleSheet } = aphroditeJss ( create ( ) )
Hay 2 funciones que necesita saber: toString()
y reset()
. Como Afrodite-JSS no puede saber que está representando una nueva respuesta, debe obtener el CSS ( toString()
) cuando está procesando la primera solicitud y reset()
de llamadas para limpiar los estilos que ha producido su página actual.
import { toString , reset } from 'aphrodite-jss'
function render ( ) {
const app = renderApp ( )
const css = toString ( )
reset ( )
return `
<head>
<style>
${ css }
</style>
<head>
<body>
${ app }
</body>
`
}
MIT