stitchesjs / stitches

[Not Actively Maintained] CSS-in-JS with near-zero runtime, SSR, multi-variant support, and a best-in-class developer experience.

Home Page:https://stitches.dev

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

styled components not passing variants

smol-honk opened this issue · comments

commented

Bug report

Describe the bug

Similar to #333 ,
When composing components via styled(Component, {...}), the variants don't seem to extend or be passed to the original styled component. In the code sandbox (https://codesandbox.io/s/hardcore-chatterjee-lktnos?file=/src/components/Button.tsx)
For Button, we're passing all the props to the styled Button component, and then composing it in StyledButton. Unfortunately, it appears that the align variant isn't being passed to Button IF variants is declared in StyledButton.

So essentially, if a composed element has the same variant name, it just doesn't pass it down to the original component.

A clear and concise description of what the bug is.

To Reproduce

Steps to reproduce the behavior, please provide code snippets or a repository:

  1. Check out Button.tsx https://codesandbox.io/s/hardcore-chatterjee-lktnos?file=/src/components/Button.tsx
  2. Then look at StyledButton.tsx https://codesandbox.io/s/hardcore-chatterjee-lktnos?file=/src/components/StyledButton.tsx
  3. Look at how the props in Button aren't passing variants.
  4. Comment out the variants in StyledButton.
  5. See how the props are now passing the align variant in Button.tsx

Expected behavior

We'd like for the extended variant to pass onto the original styled component. In the example above, Button.tsx should have been passed the align prop even when it's declared in StyledButton.tsx and it should have extended the styles in StyledButton.

System information

  • OS: macOS
  • Browser: chrome
  • Version of Stitches: 1.2.8 (latest)
  • Version of Node.js: v18

Additional context

System information may not be as relevant since it's reproducible in the code sandbox.