This commit is contained in:
annieversary 2022-08-17 00:17:39 +01:00
parent fbca56d791
commit 2d016d004b
1 changed files with 41 additions and 7 deletions

View File

@ -1,7 +1,7 @@
* zephyr * zephyr
zephyr is a [[https://tailwindcss.com/][tailwind]]-inspired css generator dsl. it acts as a replacement for inline styles, with the added ability of pseudo-elements, pseudo-classes, and more zephyr is a [[https://tailwindcss.com/][tailwind]]-inspired css generator dsl. it acts as a replacement for inline styles, with the added ability of pseudo-elements, pseudo-classes, and more
documentation is not too great at the moment, but there's not a lot to know ^^ documentation is not too great at the moment
** how to use ** how to use
to generate the css out of the list of classes, call =Zephyr::generate_classes= to generate the css out of the list of classes, call =Zephyr::generate_classes=
@ -20,7 +20,7 @@ let z = zephyr::Zephyr::new();
let css = z.generate_classes(classes); let css = z.generate_classes(classes);
#+end_src #+end_src
see [[examples/html.rs][examples/html.rs]] for more information see [[examples/html.rs][examples/html.rs]] for a more detailed usage example
** how to define classes ** how to define classes
*** property and value *** property and value
in the most simple case, classes have a property and a value: =name[value]=. zephyr will take this and generate the following css: in the most simple case, classes have a property and a value: =name[value]=. zephyr will take this and generate the following css:
@ -54,19 +54,47 @@ for example, =content['*']hover$after= will result in:
zephyr performs replacements for some common properties, values, pseudo-classes, and pseudo-elements. they are listed under [[#defaults][defaults]]. these allow you to write =bgc[red]odd= instead of =background-color[red]nth-child(odd)= zephyr performs replacements for some common properties, values, pseudo-classes, and pseudo-elements. they are listed under [[#defaults][defaults]]. these allow you to write =bgc[red]odd= instead of =background-color[red]nth-child(odd)=
you can customize the replacements by accessing the hashmaps in =Zephyr= and inserting/removing what you see fit you can customize the replacements by accessing the hashmaps in =Zephyr= and inserting/removing what you see fit
*** media queries *** spaces
media queries are unsupported so far, but are on the roadmap any underscores will be replaced by spaces (eg: =border[1px_solid_black] -> border: 1px solid black=). this is because you can't have spaces in a class name, and underscores are not common in css values (as far as i'm aware)
if you would like to use underscores in a value, please use [[#literals][literals]]
*** literals
if you want no replacements to be applied, use curly brackets instead of square brackets
=border{1px_solid_black} -> border: 1px_solid_black=
*** variables
there's a shorthand syntax for referring to css variables, by using parenthesis instead of square brackets
=bg(my-bg-color) -> background: var(--my-bg-color)=
*** responsive modifiers
responsive modifiers are written the same way pseudo-classes are. options are =sm=, =md=, =lg=, =xl=, =xxl=
#+caption: sizes
|-----+-------------------|
| sm | min-width: 640px |
| md | min-width: 768px |
| lg | min-width: 1024px |
| xl | min-width: 1280px |
| xxl | min-width: 1536px |
classes with a responsive modifier apply on that size and up. you can use =<lg= to apply on all sizes strictly smaller than =lg=, or =@xl= to apply exactly on =xl=
** defaults ** defaults
these are the current default values, lifted straight from the code. these are the current default values, lifted straight from the code.
you are free to add more by accessing the hashmaps in =Zephyr= you are free to add more by accessing the hashmaps in =Zephyr=
*** declarations *** declarations
these are the non-value classes: these are the non-value classes:
#+begin_src rust #+begin_src rust
("flex", "display:flex;"), ("flex", "display:flex"),
("flex-row", "display:flex;flex-direction:row;"), ("flex-row", "display:flex;flex-direction:row"),
("flex-col", "display:flex;flex-direction:column;"), ("flex-col", "display:flex;flex-direction:column"),
("items-center", "align-items:center"), ("items-center", "align-items:center"),
("items-start", "align-items:flex-start"),
("items-end", "align-items:flex-end"),
("justify-center", "justify-content:center"), ("justify-center", "justify-content:center"),
("justify-between", "justify-content:space-between"),
("justify-evenly", "justify-content:space-evenly"),
("text-left", "text-align:left"),
("text-right", "text-align:right"),
#+end_src #+end_src
*** properties *** properties
#+begin_src rust #+begin_src rust
@ -82,8 +110,14 @@ these are the non-value classes:
("pb", "padding-bottom"), ("pb", "padding-bottom"),
("pl", "padding-left"), ("pl", "padding-left"),
("pr", "padding-right"), ("pr", "padding-right"),
("c", "color"),
("bg", "background"), ("bg", "background"),
("bgc", "background-color"), ("bgc", "background-color"),
("tt", "text-transform"),
("td", "text-decoration"),
("fw", "font-weight"),
("ff", "font-family"),
("fs", "font-size"),
#+end_src #+end_src
*** values *** values
#+begin_src rust #+begin_src rust