Views are defined by using [Hiccup syntax](https://github.com/weavejester/hiccup/wiki/Syntax), itself a subset of EDN. This syntax is closely related to JSON, is based on pure data, and offers an expressive way of defining declarative interfaces.
The general format of a UI is [component properties & children], where :
* component is a symbol, one of Status components
* properties is an optional map (keyword-to-value) of component properties
* children is an optional sequence of the component definitions
Because components are built recursively, on top of other components, they are inherently composable and reusable.
# Blocks
While powerful the Hiccup syntax is about describing static UIs. Blocks enhance it by providing dynamicity based on data content.
## Let block
Let blocks are general blocks allowing views to access data (via lexical scoping).
### Query
Let blocks enable access to data via [Queries](Query).
```clojure
(let [value @queries/some-query]
;; value is available there
)
```
### Destructuring
Let blocks also allow to destructure data (sequences and maps) to access nested information.