zss-engine
For API development zss-engine.
It is the Public API for the Plumeria Runtime zss-engine package
You can use this StyleSheet Engine to develop Zero-runtime StyleSheet CSS-in-JS libraries.
Installation
npm i zss-engineyarn add zss-enginepnpm i zss-engineOverview
export type { CSSProperties } from './types/common/css-properties';
export type { CreateStyleType, ReturnType, CreateStyle } from './types/main/create';
export type { CSSHTML, CreateKeyframes } from './types/main/global';
export type { CreateTheme, CreateValues, ReturnVariableType, XVariableSet, ReturnX } from './types/main/variableTypes';
export type { ViewTransitionOptions } from './types/main/viewTransitionOptions';
export { isServer, isDevelopment, isTestingDevelopment } from './utils/helper.js';
export { genBase36Hash } from './utils/hash.js';
export { transpile } from './utils/transpile.js';
export { transpileAtomic } from './utils/transpile-atomic.js';
export { splitAtomicAndNested, processAtomicProps } from './utils/processor-atomic.js';
export { overrideLonghand } from './utils/override-longhand.js';
export { build } from './utils/build.js';
export { camelToKebabCase, applyCssValue } from './utils/helper.js';API
Helpers
For branching the environment.
const isWindowDefined = typeof window !== 'undefined';
const isDocumentDefined = typeof document !== 'undefined';
export const isServer = !isWindowDefined || !isDocumentDefined;
export const isDevelopment = process.env.NODE_ENV === 'development';
export const isDevAndTest = process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test';Functions
genBase36Hash
Arguments: object, number of hash lengths
Returns: string of hash
const base36Hash = genBase36Hash(object, 6); transpiler
Argments: object: style object, hash: string
Returns: styleSheet: string
const { styleSheet } = transpiler(object, base36Hash);transpilerAtomic
Argments: object: style object, value: string | number, hash: string
Returns: styleSheet: string
const { styleSheet } = transpilerAtomic(object, property, atomichash);build
Argments: styleSheet: string, filePath: string
Returns: void
build(styleSheet, filePath);Types
For API development.
// create method
CSSProperties, // supply
CreateStyle, // supply
CreateStyleType<T>,
ReturnType<T>,
// global method (internal)
CSSHTMLType,
// keyframes method
CreateKeyframes,
// ViewTransition method
ViewTransitionOptions,
// createStatic method
CreateValues,
// createTheme method
CreateTheme,
ReturnVariableType,
// x function
XVariableSet,
ReturnX,