DEV Community

Discussion on: The Bootstrapping Mindset

Collapse
 
ryolyo profile image
Ryan Martin

I am using Hoplon + Hoplon UI. I found it (and Clojurescript), coming from front end design, after years of searching for a way out of the tarpit of css (minimal graphical semantics, buggy incomplete browser implementations, object declarations redundant with html structure).

Hoplon provides all the normal semantics of HTML + CSS, but unified in a responsive evaluation environment with javascript/clojurescript. So for example, you can use any programming logic or page state to modify your css, real-time (kind of like SASS, but instead of the SASS DSL, you have the full language power of clojurescript, and it's also available in the runtime state of page). Thus CSS is liberated from a static design declaration, off to the side, to a finely-grained design semantic that can be woven more directly into your living page.

With the walls between CSS/HTML/JS broken down, you are free to build up your own abstractions that leverage any or all of these pillars... And your abstractions will likely carry the semantics of their purpose, rather than their implementation in said CSS/HTML/JS. So per the article, you have bootsrapped a LISP onto the browser, which allows more articulate and robust languages for design.

Hoplon UI takes the Hoplon (Clojurescript-DOM) platform, and starts building more sane design components on top. It is a palette of logical design primitives, that goes as far as developing a custom box-model to ensure that these primitives perform as expected. You can tune DOM elements directly with a full suite of attributes that currently include most of the CSS and Jquery properties. This makes it trivial, for example, to do rather sophisticated conditional styling (for responsive design, etc). It further encourages you to regard CSS as an assembly under-layer, and speak design experimentation in a richer, higher-level markup.

Hoplon UI is not the end of the road. It aims to merely provide better design primitives. Those primitives will be used, along with other clojurescript code to do things like gss cassowary constraint solving (clojure has some neat logic-programming libraries), and bootstrap (built-out libraries of opinionated ui components).

Sorry for the longish rant, but this article echoed a deep resentment I also felt, about the punishing and castrating nature of browser-based web designed I experienced since the IE6 debacle, having come from a print-based graphic design background where the tools mostly just worked, and you could get on with your creativity without becoming a heroic hacker. Clojure and Hoplon still have some sharp edges, but after a long search and trial phase, I found them to promise salvation for me as a creatively minded web designer.

Collapse
 
ericnormand profile image
Eric Normand

Awesome, Ryan!