Typed Atomic CSS for Twig
Add UX CSS to your app.
Atomic CSS from your design tokens, checked when Twig compiles
ux_css:
tokens:
colors:
blue:
600: '#1572b6'
700: '#105a90'
gray:
50: '#f9fafb'
800: '#1f2937'
900: '#111827'
white: '#ffffff'
spacing:
sm: '0.5rem'
md: '1rem'
lg: '1.5rem'
radii:
md: '0.5rem'
semantic_tokens:
colors:
fg:
base: '{colors.gray.900}'
_dark: '{colors.gray.50}'
surface:
base: '{colors.white}'
_dark: '{colors.gray.800}'
<article class="{{ css({
p: 'lg',
rounded: 'md',
bg: 'surface',
color: 'fg',
}) }}">
<h3 class="{{ css({color: 'fg'}) }}">symfony/ux-css</h3>
<p class="{{ css({mt: 'sm'}) }}">Typed atomic CSS for Twig.</p>
<a href="https://github.com/symfony/ux-css" class="{{ css({
display: 'inline-block',
mt: 'md',
px: 'md',
py: 'sm',
rounded: 'md',
bg: 'blue.600',
color: 'white',
_hover: {bg: 'blue.700'},
}) }}">View on GitHub</a>
</article>
UX CSS
symfony/ux-css
Typed atomic CSS for Twig.
View on GitHubSwitch the site theme: the card follows, through its semantic tokens.
<h3 class="{{ css({ colr: 'fg' }) }}">
{# Unknown property "colr". Did you mean "color"? #}
<div class="{{ css({ bg: 'surfac' }) }}">
{# Unknown colors token "surfac". Did you mean "surface"? #}
<div class="{{ css({ display: 'flexx' }) }}">
{# Invalid value "flexx" for "display". Did you mean "flex"? #}
<a class="{{ css({ _hovr: { bg: 'blue.700' } }) }}">
{# Unknown condition "_hovr". Did you mean "_hover"? #}
<p class="{{ css({ maxW: '37ch' }) }}">
{# Unknown sizes token "37ch". Write a raw value between brackets, like "[37ch]". #}