stylex.props
Takes an StyleX style or array of StyleX styles, and returns a props object.
Values can also be null, undefined, or false.
The return value should be onto an element to apply the styles directly.
function props(styles: StyleXStyles | StyleXStyles[]): {
  className: string;
  style: {[key: string]: string};
};
Example use:
import * as stylex from '@stylexjs/stylex';
const styles = stylex.create({
  root: {
    backgroundColor: 'red',
    padding: '1rem',
    paddingInlineStart: '2rem',
  },
  conditional: {
    backgroundColor: 'blue',
  },
  dynamic: (opacity) => ({
    opacity,
  }),
});
<div
  {...stylex.props(
    styles.root,
    condition && styles.conditional,
    props.style,
    styles.dynamic(state.opacity),
  )}
/>;
Not using React?
For Solid, Svelte, Qwik, Vue
For frameworks that expect class instead of className, and expect style to be a string instead of an object, you can wrap use of the props API with the function below.
export function attrs({ className, 'data-style-src': dataStyleSrc, style }) {
  const result = {};
  // Convert className to class
  if (className != null && className !== '') {
    result.class = className;
  }
  // Convert style object to string
  if (style != null && Object.keys(style).length > 0) {
    result.style = Object.keys(style)
      .map((key) => `${key}:${style[key]};`)
      .join('');
  }
  if (dataStyleSrc != null && dataStyleSrc !== '') {
    result['data-style-src'] = dataStyleSrc;
  }
  return result;
}
Example use:
<div {...attrs(stylex.props(...styles))} />