@pandacss/extractor
Advanced tools
Changelog
[0.34.3] - 2024-03-09
Fix nested styled
factory composition
import { styled } from '../styled-system/jsx'
const BasicBox = styled('div', { base: { fontSize: '10px' } })
const ExtendedBox1 = styled(BasicBox, { base: { fontSize: '20px' } })
const ExtendedBox2 = styled(ExtendedBox1, { base: { fontSize: '30px' } })
export const App = () => {
return (
<>
{/* ✅ fs_10px */}
<BasicBox>text1</BasicBox>
{/* ✅ fs_20px */}
<ExtendedBox1>text2</ExtendedBox1>
{/* BEFORE: ❌ fs_10px fs_30px */}
{/* NOW: ✅ fs_30px */}
<ExtendedBox2>text3</ExtendedBox2>
</>
)
}
Allow color opacity modifier when using strictTokens
, e.g color: "blue.200/50"
will not throw a TS error anymore
Changelog
[0.34.2] - 2024-03-08
strictPropertyValues
with border* propertiesWe had listed border\*
properties as affected by strictPropertyValues
but they shouldn't be restricted as their
syntax is too complex to be restricted. This removes any border*
properties that do not specifically end with Style
like borderTopStyle
.
import { css } from '../styled-system/css'
css({
borderTop: '1px solid red', // ✅ will now be fine as it should be
borderTopStyle: 'abc', // ✅ will still report a TS error
})
Missing token
when using a color opacity modifier in
config tokens
or semanticTokens
import { defineConfig } from '@pandacss/dev'
export default defineConfig({
validation: 'warn',
conditions: {
light: '.light &',
dark: '.dark &',
},
theme: {
tokens: {
colors: {
blue: { 500: { value: 'blue' } },
green: { 500: { value: 'green' } },
},
opacity: {
half: { value: 0.5 },
},
},
semanticTokens: {
colors: {
secondary: {
value: {
base: 'red',
_light: '{colors.blue.500/32}',
_dark: '{colors.green.500/half}',
},
},
},
},
},
})
Would incorrectly report:
colors.green.500/half
used in config.semanticTokens.colors.secondary
colors.blue.500/32
used in config.semanticTokens.colors.secondary
Allow using namespaced imports
import * as p from 'styled-system/patterns'
import * as recipes from 'styled-system/recipes'
import * as panda from 'styled-system/css'
// this will now be extracted
p.stack({ mt: '40px' })
recipes.cardStyle({ rounded: true })
panda.css({ color: 'red' })
panda.cva({ base: { color: 'blue' } })
panda.sva({ base: { root: { color: 'green' } } })