Go to file
annieversary 092898fa7f implement deduplicating classes before generating them 2022-07-06 10:55:12 +01:00
examples add inventory 2022-07-02 16:42:02 +01:00
src implement deduplicating classes before generating them 2022-07-06 10:55:12 +01:00
.gitignore example and stuff 2022-05-13 14:29:40 +01:00
Cargo.toml add inventory 2022-07-02 16:42:02 +01:00
README.org apparently github wants newlines between each line in the readme 2022-05-13 23:23:47 +01:00

README.org

zephyr

zephyr is a tailwind-esque css generator library

zephyr is not a framework, it will not give you the tools to make good UI

zephyr is a replacement for inline styles, with the added ability of pseudo-elements, pseudo-classes, and more

zephyr is kinda somewhat a dsl for css

how to define classes

name and value

in the most simple case, classes have a name and a value: name[value]. zephyr will take this and generate the following css:

.name\[value\] {
    name: value;
}

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:

.content\[\'\*\'\]hover\$after:hover::after {
    content: '*';
}

which will display an asterisk after the element, but only while hovered

replacements

zephyr performs replacements for some common names and pseudo-classes

im not gonna list them all here, cause they're probably gonna change often

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

you are welcome to give it a go, but unless you want to use it in exactly the same way i want to, you'll probably not have much luck

why did you make this?

i want the convenience of tailwind's utility classes without having to touch the hellscape that is npm

i also thought this might be a fun little project to work on, and so far it has been !