🎨 acrylic
Ultra-portable, web-inspired UI toolkit with SIMD graphics.
Work in progress!
Also, requires a nightly toolchain if you've enabled SIMD support (which is the default).
🪂 Features
- feels familiar to web developers
- support for templating
- integrated JSON state store
- 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
- ☑ state store
- ☑ round containers
- ☑ input events
- ☑ event handlers
- ☑ SIMD acceleration
- ☑ text editing
- ☑ templating
- ☐ texture cache
- ☐ non-hardcoded state file
- ☐ scrolling [WiP]
- ☐ rich text
- ☐ external links
- ☐ video playback
- ☐ sound playback
🧱 Supported platforms
| platform | Link | Rendering | Asset Loading | Event Handling |
|---|---|---|---|---|
| web | acrylic-web | ☑ | ☑ | WiP |
| wayland | acrylic-wayland | ☑ | ☑ | WiP |
| x11 | ||||
| gdi | ||||
| fbdev | ||||
| drmkms |
⚡️ Quickstart
Project structure:
.
├── Cargo.toml
├── assets
│ ├── rustacean-flat-happy.png
│ └── default.xml
└── src
└── app.rs
An asset: rustacean-flat-happy.png
You can get it here.
Place it in assets/.
The view layout: default.xml
The code: app.rs
use ;
app!;
The manifest: Cargo.toml
[]
= "my-app"
= "0.1.0"
= "2021"
[]
= [ "cdylib" ]
= "src/app.rs"
[]
# building for the web
= { = "acrylic-web", = "0.3" }
Building
Note: this uses nightly because SIMD in rust is currently unstable.
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 Pull Requests.
👉 See Also
🕯️ License
- MIT for the code
- SIL Open Font License for the embedded Noto Font