in the most simple case, classes have a name and a value: =name[value]=. zephyr will take this and generate the following css:
#+begin_src css
.name\[value\] {
name: value;
}
#+end_src
note that classes without values are currently unsupported, but a high priority on the roadmap
*** pseudo-classes
to use pseudo-classes such as =focus=, =hover=, and others, you provide a name, value, and the pseudo-class: =name[value]pseudo=. multiple pseudo-classes can be concatenated with commas: =m[1rem]focus,hover,odd=
*** pseudo-elements
pseudo-elements like =::before= or =::after= are also supported. they are delimited by =$=: =content['*']hover$after= will result in:
#+begin_src css
.content\[\'\*\'\]hover\$after:hover::after {
content: '*';
}
#+end_src
which will display an asterisk after the element, but only while hovered
*** replacements
zephyr performs replacements for some common names and pseudo-classes
these allow you to write =bgc[red]odd= instead of =background-color[red]nth-child(odd)=
there's currently no way to customize the replacements, but it is planned in the future
*** media queries
media queries are unsupported so far, but are also on the roadmap
** faq
*** should i use this?
probably no? especially now that it's in such an early phase, but even when i "finish" implementing the base set of features, zephyr will be a very niche tool highly tailored to my needs