github chakra-ui/panda @pandacss/types@0.37.1

latest releases: @pandacss/types@1.3.0, @pandacss/token-dictionary@1.3.0, @pandacss/extractor@1.3.0...
17 months ago

Patch Changes

  • 885963c: - Fix an issue where the compoundVariants classes would not be present at runtime when using config recipes

    // panda.config.ts
    import { defineConfig } from '@pandacss/dev'
    
    export default defineConfig({
      theme: {
        extend: {
          recipes: {
            button: {
              // ...
              variants: {
                size: {
                  sm: {
                    fontSize: 'sm',
                  },
                  // ...
                },
              },
              compoundVariants: [
                {
                  size: 'sm',
                  css: { color: 'blue.100'},
                },
              ],
            },
          },
        },
      },
    })
    
    // app.tsx
    const Button = styled('button', button)
    
    const App = () => {
      return (
        // ❌ this would only have the classes `button button--size_sm`
        // the `text_blue` was missing
        // ✅ it's now fixed -> `button button--size_sm text_blue`
        <Button size="sm">Click me</Button>
      )
    }
    • Add a getVariantProps helper to the recipes API (cva and config recipes)
    import { cva } from '../styled-system/css'
    import { getVariantProps } from '../styled-system/recipes'
    
    const button = cva({
        // ...
      variants: {
        size: {
          sm: {
            fontSize: 'sm',
          },
          md: {
            fontSize: 'md',
          },
        },
        variant: {
          primary: {
            backgroundColor: 'blue.500',
          },
          danger: {
            backgroundColor: 'red.500',
          }
        }
      }
      defaultVariants: {
        size: 'md',
        variant: 'primary',
      }
    })
    
    // ✅ this will return the computed variants based on the defaultVariants + props passed
    const buttonProps = button.getVariantProps({ size: "sm" })
    //    ^? { size: "sm", variant: "primary" }

Don't miss a new panda release

NewReleases is sending notifications on new releases.