Desktop HTML-like UI library extracted into a standalone multi-module repository.
This is a desktop stack, not browser/WebView: retained DOM, HTML-like markup, CSS cascade/layout, Lua scripting as the JavaScript replacement, font registry, Font Awesome registry, and a Swing/JFrame renderer.
- Current version:
1.0.12 - Release name:
CSS Length Tolerance Hotfix - Authors:
Take Some() - Primary package group:
dev.takesome
- Architecture overview
- Desktop runtime
- CSS, layout and paint pipeline
- DevTools and runtime editing
- Lua scripting ABI
- Packages and release process
- 1.0.12 CSS Length Tolerance Hotfix notes
- 1.0.1 Documentary Release notes
- Authors
html-dom-core— DOM, HTML registry, markup parser, CSS parser/cascade/layout, user-agent styles.html-dom-fonts— font registry and built-in classpath font registration.html-dom-icons-fontawesome— Font Awesome icon registry, glyph descriptors, TTF resources and font registration hooks.html-dom-scripting-lua— Lua runtime and DOM bindings; Lua is used instead of browser JavaScript.html-dom-devtools— DOM/layout/line/inline/paint/scroll inspection snapshots.html-dom-desktop— Swing/JFrame renderer and bundled showcase launcher.
Built-in fonts are registered from:
modules/html-dom-fonts/src/main/resources/html-dom/fonts/built-in-fonts.json
The bundled registry loads the copied FS Elliot / Roboto Mono font files from Java2DGame.
Font Awesome TTFs are copied into:
modules/html-dom-icons-fontawesome/src/main/resources/html-dom/icons/fontawesome/
The desktop renderer registers them through FontAwesomeFonts.register(HtmlDomFonts.registry()), then resolves icon classes such as:
<i class="fa-solid fa-code"></i>
<i class="fa-solid fa-bolt"></i>Bundled Lua lives at:
modules/html-dom-desktop/src/main/resources/html-dom/bundled/showcase.lua
The Swing panel loads it through HtmlDomLuaRuntime; scripts can mutate DOM via the exposed dom table.
gradlew.bat clean compileJava --console=plain --no-daemongradlew.bat :html-dom-desktop:run --console=plain --no-daemongradlew.bat bundledHtmlUiJar --console=plain --no-daemonRun it:
java -jar modules\html-dom-desktop\build\libs\html-dom-ui-1.0.12-bundled.jarThe core layout result now carries block boxes, line boxes, inline boxes and scroll boxes. The paint layer is split into physical phases:
paintBackground
paintBorder
paintContent
paintOutline
paintPositionedDescendants
paintScrollbars
DevTools snapshots include layout nodes, paint nodes and scroll container nodes with content size, viewport size and scroll offsets.
Artifacts are published as GitHub Packages when a release tag such as v1.0.12 is pushed.
Gradle repository setup:
repositories {
maven {
url = uri('https://maven.pkg.github.com/Take-Some/JavaDOM')
credentials {
username = findProperty('gpr.user') ?: System.getenv('GITHUB_ACTOR')
password = findProperty('gpr.key') ?: System.getenv('GITHUB_TOKEN')
}
}
}Primary dependency examples:
dependencies {
// All-in-one executable desktop runtime package:
implementation 'dev.takesome:html-dom-aio:1.0.12'
// Split module packages:
implementation 'dev.takesome:html-dom-core:1.0.12'
implementation 'dev.takesome:html-dom-desktop:1.0.12'
implementation 'dev.takesome:html-dom-fonts:1.0.12'
implementation 'dev.takesome:html-dom-icons-fontawesome:1.0.12'
implementation 'dev.takesome:html-dom-scripting-lua:1.0.12'
implementation 'dev.takesome:html-dom-devtools:1.0.12'
}Build the AIO jar locally:
gradlew.bat :html-dom-desktop:aioJar --console=plain --no-daemon
java -jar modules\html-dom-desktop\build\libs\html-dom-aio-1.0.12.jarLocal verification:
gradlew.bat publishToMavenLocal --console=plain --no-daemon- Take Some()
GitHub Actions are configured in:
.github/workflows/ci.yml
.github/workflows/release.yml
CIruns onmainand pull requests.Releaseruns on version tags such asv1.0.12.- Maven artifacts are published to GitHub Packages under
dev.takesome:*:1.0.12, includingdev.takesome:html-dom-aio:1.0.12. - The bundled desktop showcase jar is attached to the GitHub release.
Create a release locally:
git tag -a v1.0.12 -m "HtmlDom 1.0.12 — CSS Length Tolerance Hotfix"
git push origin main v1.0.12