Enlive/Enfocus style templating for React and Om in ClojureScript, enabling HTML-based views with selector-driven transformations.
Kioo is a ClojureScript templating library that brings Enlive/Enfocus style templates to React and Om. It allows developers to define UI components using static HTML files and transform them with selector-based operations, promoting a clean separation between view structure and application logic. This approach provides an alternative to JSX by keeping HTML and transformation logic distinct.
ClojureScript developers building React, Om, or Reagent applications who prefer HTML-based templating with selector-driven transformations over JSX.
Developers choose Kioo for its Enlive-inspired templating that enforces separation of concerns, uses familiar HTML files, and integrates smoothly with ClojureScript frameworks like Om and Reagent.
Enlive/Enfocus style templating for Facebook's React and Om in ClojureScript.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Components are defined using static HTML files compiled into React nodes, ensuring a clear separation between view structure and application logic, unlike JSX's mixed approach.
Uses familiar selector syntax from Enlive for precise DOM transformations, making it intuitive for Clojure developers transitioning to frontend work.
Seamlessly integrates with React, Om, and Reagent through specific macros and functions, as demonstrated in the provided quickstart examples.
Promotes a clean divide between HTML templates and transformation logic, aligning with React's philosophy while avoiding JSX's content-logic mixing.
The project is early in development with an API expected to change, posing significant risks for maintenance and production use, as noted in the README.
Transforms are applied as a map without guaranteed order, which can complicate dependent transformations and is a departure from Enlive's ordered approach.
As a ClojureScript-specific library, it has a smaller community and fewer resources, making it less suitable for teams needing extensive tooling or support.
Troubleshooting requires advanced Clojure tools like macroexpand-1 and tracing, which can be challenging for developers without deep ClojureScript expertise.