initial port of the UI kit
This commit is contained in:
@@ -2,10 +2,11 @@
|
||||
|
||||
A runnable example of kjol's **gowasm** engine: author UI **components in pure
|
||||
Go**, compiled to **WebAssembly**, with **SSR + hydration**, **Next.js-style
|
||||
server components**, layouts, and a **flash-free, state-preserving hot reload**.
|
||||
server components**, layouts, the **`kjol/webui` component kit**, **Tailwind CSS**
|
||||
(compiled by kjol's own engine), and a **flash-free, state-preserving hot reload**.
|
||||
No custom markup, no JSX — just Go. The engine lives in top-level kjol packages
|
||||
(`kjol/go/{vdom,wasmruntime,rsc,wasmdevserver}`); this directory is only the app
|
||||
that consumes them.
|
||||
(`kjol/go/{vdom,wasmruntime,rsc,wasmdevserver,webui}`); this directory is only the
|
||||
app that consumes them.
|
||||
|
||||
## Run it
|
||||
|
||||
@@ -14,12 +15,16 @@ cd cmd/examples/go-wasm-web
|
||||
go run ./server # codegen + SSR + hot reload at http://localhost:8085
|
||||
```
|
||||
|
||||
Open http://localhost:8085. `/` and `/about` use the light **public** layout,
|
||||
`/chart` and `/server` use the dark **app** layout. Edit any `.go` file and the
|
||||
browser hot-swaps the new wasm **without a full reload or a flash**, preserving
|
||||
page state; a build failure shows the Go compiler output as an overlay.
|
||||
Open http://localhost:8085. `/` and `/about` use the light **public** layout;
|
||||
`/chart`, `/server`, and **`/kit`** (a UI-kit "kitchen-sink" demo of the webui
|
||||
components) use the dark **app** layout. Edit any `.go` file and the browser
|
||||
hot-swaps the new wasm **without a full reload or a flash**, preserving page
|
||||
state; a build failure shows the Go compiler output as an overlay.
|
||||
|
||||
(`build.sh` does a one-off build instead of running the dev server.)
|
||||
Styling is **Tailwind**: the dev server (and `build.sh`) run `kjol/cmd/twcss`,
|
||||
which scans the Go markup + the `webui` kit for utility classes and compiles
|
||||
`css/app.css` → `wwwroot/app.css` with kjol's native Tailwind v4 engine. There is
|
||||
**no Bootstrap and no hand-written CSS**. (`build.sh` does a one-off build.)
|
||||
|
||||
## This is a separate module
|
||||
|
||||
@@ -35,11 +40,13 @@ nested module; build it from this directory.
|
||||
app/ the application — neutral, standalone functions (no central struct)
|
||||
pages.go Deps + Shell + App/Public layouts + nav + Counter + pages
|
||||
chart.go Chart page (go-chart, renders on both sides)
|
||||
kit.go /kit — UI-kit demo page showcasing kjol/webui components
|
||||
server_counter.go //gowasm:server component (server-only; clicks-over-time chart)
|
||||
*.gen.go GENERATED by kjol/cmd/wasmgen (routes, layout dispatch, stubs)
|
||||
css/app.css Tailwind entry (@import "tailwindcss" + @theme tokens)
|
||||
wasm/ the js/wasm client entry point (main_native.go is a host stub)
|
||||
server/ the dev-server main: injects Build/Render/Document into wasmdevserver
|
||||
wwwroot/ bootstrap.js, bootstrap.min.css (+ generated wasm_exec.js, app.wasm)
|
||||
wwwroot/ wasmboot.js (+ generated app.css, wasm_exec.js, app.wasm)
|
||||
```
|
||||
|
||||
## How it maps onto the engine (top-level `kjol` packages)
|
||||
|
||||
Reference in New Issue
Block a user