🎨 acrylic
This is a work-in-progress, easily portable, small, single-thread, web-inspired user interface toolkit.
🪂 Features
- feels familiar to web developers
- support for templating
- extensible
- anti-aliased
- input API designed for improved accessibility
- pure and safe rust
- Fully
no_std
🏗️ Progress (core crate)
- ☑ XML parsing
- ☑ flexbox-like layout
- ☑ PNG images
- ☐ Railway images [WiP]
- ☑ full
no_stdsupport - ☑ textual nodes
- ☑ round containers
- ☐ input events [WiP]
- ☐ event handlers [WiP]
- ☐ text editing
- ☐ scrolling [WiP]
- ☐ rich text
- ☐ external links
- ☐ video playback
- ☐ sound playback
🪀 Live Demos
more coming soon!
🧱 Supported platforms
| platform | Link | Rendering | Asset Loading | Event Handling |
|---|---|---|---|---|
| web | acrylic-web | ☑ | ☑ | ☑ |
| wayland | acrylic-wayland | Glitchy | ☑ | |
| x11 | ||||
| gdi | ||||
| fbdev | ||||
| drmkms |
⚡️ Quickstart
Project structure:
.
├── Cargo.toml
├── assets
│ ├── ferris.png
│ └── default.xml
└── src
└── app.rs
An asset: ferris.png
You can get it here.
Place it in assets/.
The view layout: default.xml
The code: app.rs
use Rc;
use app;
app!;
The manifest: Cargo.toml
[]
= "my-app"
= "0.1.0"
= "2021"
[]
= [ "cdylib" ]
= "src/app.rs"
[]
= "0.3.1"
# building for the web
= { = "acrylic-web", = "0.3.1" }
Building
Install a web server
httpserv is tiny and good enough for this demo.
Download the HTML file which starts your app
You can get it here. Place it at the root of your project, next to the cargo manifest.
Start the web server
From the root of your project:
# normal start:
# quiet + in the background
&
Then open http://localhost:8080/#release
Expected Result

☕ Contact & Contributions
Contact
You can contact me via email
or on Discord: bitsneak#1889.
You can use these for any question regarding this project.
Contributions
We gladly accept all contributions via Github PRs.
If you contribute rust code, please put all dependencies behind features; adding tens of dependencies to this crate or another one of this project might be a reason for not merging your PR.
👉 See Also
🕯️ License
- MIT for the code
- SIL Open Font License for the embedded Noto Font