Skip to main content

stylex.defineVars

Creates global CSS Custom Properties (variables) that can be imported and used within create calls anywhere within a codebase.

function defineVars<Styles extends {[key: string]: Value}>(
styles: Styles,
): Vars<{[key in keyof Styles]: string}>;

By default, defineVars will create unique, hashed variable names. To create variables with custom names use a key that starts with --. These will generate CSS custom properties with the provided name instead of generating a globally unique name.

Example use:

You must define your variables as named exports in a .stylex.js (or .stylex.ts) file.

vars.stylex.js
import * as stylex from '@stylexjs/stylex';

export const colors = stylex.defineVars({
accent: 'blue',
line: 'gray',
'--background': 'black',
});

You can then import and use these variables in any create call.

import * as stylex from '@stylexjs/stylex';
import { colors } from './vars.stylex.js';

const styles = stylex.create({
container: {
color: colors.accent,
backgroundColor: colors['--background'],
},
});