Product
Introducing SSO
Streamline your login process and enhance security by enabling Single Sign-On (SSO) on the Socket platform, now available for all customers on the Enterprise plan, supporting 20+ identity providers.
cljs-ultralight
Advanced tools
Readme
The problem: you have a static site and you want to add a sprinkle of interactivity, using Clojure, without bloating your build.
With cljs-ultralight
we try to achieve this dream:
1k
build sizes.cljs-ultralight
is a group of functions to help you keep your cljs builds tiny when building simple UIs.
You can easily keep your bundle size under 1k
uncompressed with this.
Here is a blog post about making ClojureScript UIs in 500 bytes.
{:deps {io.github.chr15m/cljs-ultralight {:git/tag "LATEST-GIT-TAG" :git/sha "LATEST-GIT-SHA"}}}
npm
Alternatively you can use npm
to install it into node_modules
.
npm i cljs-ultralight
You'll have to manually add the sources in your shadow-cljs.edn
if you use npm
to install it.
:source-paths [... "node_modules/cljs-ultralight/src"]
(ns myapp.core
(:require [ultralight.core :as u]))
(-> (u/$$ "#my-button")
(u/evt "click"
#(js/alert "Clicked!")))
The source code is so small as to be self-documenting. 😅 When this changes I will add more documentation.
Check out the demo for more examples.
npm run build
to build it.npm run size
to see the build size (will automatically build first).npm run watch
to develop on it.To get tiny build sizes cljs-ultralight
tries to use native JS constructs where ever possible.
You should do the same if you want those small build sizes.
Including a single equality operator for example will balloon a basic build size from 1k
to 94k
.
Here are some rules to follow to avoid this:
#js {}
, #js []
, etc. instead of Clojure data types.coercive-=
instead of =
.(.concat string-1 string-2)
instead of (str string-1 string-2)
.(.map #js [1 2 3] (fn [i] ...))
etc. instead of (map (fn [i] ...) [1 2 3])
.#(... %)
instead of partial
.js/console.log
instead of print
.The library applied-science/js-interop
works well too.
FAQs
Utilities for making small ClojureScript UI artifacts.
The npm package cljs-ultralight receives a total of 1 weekly downloads. As such, cljs-ultralight popularity was classified as not popular.
We found that cljs-ultralight demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Streamline your login process and enhance security by enabling Single Sign-On (SSO) on the Socket platform, now available for all customers on the Enterprise plan, supporting 20+ identity providers.
Security News
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
Security News
As cyber threats become more autonomous, AI-powered defenses are crucial for businesses to stay ahead of attackers who can exploit software vulnerabilities at scale.