vanilla-classnames (short to vcn) is better version of classnames for vanilla-extract.
yarn add vanilla-classnames
npm install vanilla-classnames
There is codesandbox example
// styles.css.ts
import { style, composeStyles } from '@vanilla-extract/css'
import { vcn } from 'vanilla-classnames'
export const item = vcn(style({
  //first, some base styles (it can be omitted)
  background: 'blue',
}), {
  //and then, dynamic variants
  active: style({
    background: 'green',
  }),
  
  //if pass array from two classes, then
  disabled: [
    //first will be applied on truthy condition
    style({
      background: 'none',
      color: 'gray',
    }),
    //and second - for falsy or omitted condition
    style({
      cursor: 'pointer',
    }),
  ],
})import React from 'react'
import * as S from './styles.css'
const SomeItem: React.FC<{active?: boolean, disabled?: boolean}> = ({active, disabled}) => <>
  <div className={S.item({active, disabled})}>
    Styled div!
  </div>
</>That's all, folks!
Of course, item function will suggest variants names in typescript.