Skip to content
/ nakai Public

An HTML generation library for building web apps with Gleam ✨

License

Notifications You must be signed in to change notification settings

nakaixo/nakai

Repository files navigation

Nakai

Documentation

Getting started

gleam add nakai
import nakai
import nakai/html.{type Node}
import nakai/attr.{type Attr}

const header_style = "
  color: #331f26;
  font-family: 'Neuton', serif;
  font-size: 128px;
  font-weight: 400;
"

pub fn header(attrs: List(Attr), text: String) -> Node {
  let attrs = [attr.style(header_style), ..attrs]
  html.h1_text(attrs, text)
}

pub fn app() -> String {
  html.div([],
    [
      html.Head([html.title("Hello!")]),
      header([], "Hello, from Nakai!")
    ]
  )
  |> nakai.to_string()
}

Development

While Nakai itself is pure Gleam, and has no dependencies, the benchmarks require having Elixir installed, and building it requires that you have Rebar3 installed.