package ppx_css
A ppx that takes in css strings and produces a module for accessing the unique names defined within
Install
Dune Dependency
Authors
Maintainers
Sources
v0.17.0.tar.gz
sha256=e60e31aadd820b131f7f05827f369164564400bd4fd51c199d066abf7e68753f
doc/CHANGES.html
Release v0.17.0
ppx_css
can now be embedded within an OCaml expression, spiritually similar to styled components:
Vdom.Node.div ~attrs:[ [%css {|
background-color: tomato;
min-width: 2rem;
min-height: 2rem;
|}] ] []
ppx_css
now has an interpolation syntax similar to ppx_string's 's inteporlation syntax:
let f (color : string) =
Vdom.Node.div ~attrs:[ [%css {|
border: 0.3rem solid %{color};
|}] ] []
ppx_css
now supports Nested CSS, including the&
selector:
[%css {|
background-color: tomato;
&:hover {
background-color: red;
}
|}]
ppx_css
's embedded OCaml now interacts nicely with merlin- Added
Variables.set_all
function to set all of the CSS variables present in appx_css
stylesheet at once. - Added ability to configure caching behavior at the "jbuild" level.
- Fixed a performance regression in
ppx_css
whereppx_css
performed unnecessary style recomputations. - Fixed a bug where
ppx_css
falsely claimed a variable was unused. - Fixed a bug in
ppx_css
where classnames in the expression syntax where not sanitized properly.
Release v0.16.0
ppx_css
now works on browser versions that don't have access toCSSStyleSheet
.ppx_css
now supports CSS variables.- CSS variables are now hashed.
- A function,
Variables.set
is generated whose signature is?variable_name1:string -> ?variable_name2:string -> ... -> Vdom.Attr.t
New flags to control hashing behavior. Syntax is
[%css stylesheet {|...|} ~dont_hash:[] ~dont_hash_prefixes:[] ~rewrite:[]]
.dont_hash: string list
can be used to disable hashing behavior.dont_hash_prefixes: string list
can be used to disable hashing behavior based on a prefix.rewrite: (string * string) list
can be used to override hashing behavior by "rewriting" identifiers (e.g.["a", "b"; "c", "d"]
results in "a" being "rewritten" to "b" and "c" to "d").
Breaking changes:
- Renamed the callsite from
[%css.raw {|...|}]
to[%css stylesheet {|...|}]
. ppx_css
used to generate OCaml stringsval identifier : string
, now the identifiers generateval identifier : Vdom.Attr.t
. Where the attribute is applied withVdom.Attr.class_
orVdom.Attr.id
depending on the identifier that was used. If there are classes and id's with the same name,<identifier>_id
and<identifier>_class
are generated instead. This was only done for convenience of users that use ppx_css alongside the libraryvirtual_dom
orbonsai_web
that always calledVdom.Attr.class_
orVdom.Attr.id
. If you would like to still access the strings directly, they will be contained within newly generatedFor_referencing
module.
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page