June 16, 2025 by Slint Developers

Slint 1.12 Released with WGPU Support, iOS Port, and Figma Variables Integration Blog RSS


We're proud to announce Slint 1.12, one of our most ambitious releases to date: Embed WGPU based rendering libraries such as Bevy into your Slint App, thanks to our new WGPU integration, cross-compile Slint apps for iPhone and iPad with our initial iOS support, and re-use your Figma design tokens directly in Slint.

We feel that these are significant building blocks that are coming together to achieve world domination form the foundation of the best UI framework.

Let’s dive into what these features mean for you and how to get started.

🎮 Unlocking 3D UIs with WGPU

Obviously 3D is better than 2D, it's one more dimension. 3D isn’t just for games — it’s becoming part of everyday app experiences: We have customers developing medical imaging or in-car infotainment systems with interactive 3D models. Slint's new WGPU integration opens the door to 3D graphics and integrating of other graphical crates in the Rust ecosystem.

Bevy is one of Rust's hottest projects: A high performance game engine, built on top of WGPU. Bevy's powerful 3D rendering capabilities, combined with Slints declarative UI language enables you to seamlessly integrate 3D into your app. Check out our demo.

📱 iOS Tech-Preview: Completing the Cross-Platform Story

In this release, we're also taking first steps towards completing our cross-platform story with the iOS tech-preview. We're closer than ever to our goal of offering developers a truly unified, efficient, and modern UI toolkit - spanning the full spectrum of platforms—from bare-metal microcontrollers, to Linux and Android, to macOS, Windows, and now iOS.

While we don't see you building the next liquid glass UI in Slint, you can now cross-compile your Rust app to run on iPhones and iPads:

  • Xcode support gives you all the convenience you need: Certificate management, deployment to hardware and simulators, sharing apps via TestFlight, and publishing to the App Store.
  • Native font rendering with Skia.
  • We've got 🐍 Python language support is in the pipeline, too.

If you've got a Mac, try it out today.

🎨 Figma Variables Integration: Streamlining Design to Code

Keeping UI styles consistent across tools and platforms is a common challenge for designers and developers. Recent updates to Figma introduced variable collections — a simple, powerful way to group common design tokens like colors, spacing, typography, and more within a design system.

With Slint 1.12, you can now import these Figma variables directly into your app, thanks to our new Figma Variables integration. This closes the gap between design and implementation—making it easier to maintain consistent, theme-aware UIs across your entire project.

Screenshot of the Figma exporter

🛠️ Better UX Means Better DX

A great user experience starts with a great developer experience. Today we're bringing several quality-of-life improvements to the tooling that make working with your UI smoother and faster.

🎨 Smarter Color Picker

We love code and the simplicity of the Slint language, but visual problems sometimes need visual solutions. We extended our color picker with the following features:

  • Support colors in globals, which also covers everything exported by the Figma extension.
  • Support named colors from the Colors. namespace.
  • Remembers your most recently used colors.

🔄 Live-Preview Gets a Debug-Console

We're all perfect but even then we sometimes need to end up debugging our code :). Check out our brand new console:

  • Displays messages from debug(...) calls and compiler warnings or errors.
  • Previews the most recent message right in the toolbar.
  • Each message is clickable and links to the relevant line in your .slint file.
  • Bonus: It even works in SlintPad, so you get better feedback right in the browser.

Screenshot of the debug console

🛠️ Other Fixes and Improvements

Here are a few more things we added:

  • Use the new slint::winit_030 module to access additional window properties, create custom windows, or hook into the winit event loop.
  • Added Platform.style-name and Platform.os for style- or OS-specific code.
  • New in-out transition block in states.
  • mouse-drag-pan-enabled property for ScrollView.
  • The VS code extension offers direct links to the Slint element documentation on hover.

Want all the details? Read the full ChangeLog

🚀 Getting Started with Slint 1.12

Don’t forget to star us on GitHub, join our Mattermost chat, and share your projects.

🌟 Thanks

Big thanks to everyone who contributed code, fixes, or feedback. You help us make Slint better with every release.

@leopardracer
@Doods0
@flukejones
@codeshaunted
@task-jp
@codeshaunted
@MusicalNinjaDad
@fieran100
@xcrong
@igiona
@omahs
@DataTriny
@wuwbobo2021
@npwoods
@Montel
@bryce-happel-walton

We're also grateful to NGI Zero Core and NLNet for supporting the Slint on iOS project.


Comments

Slint is a Rust-based toolkit for creating reactive and fluent user interfaces across a range of targets, from embedded devices with limited resources to powerful mobile devices and desktop machines. Supporting Android, Windows, Mac, Linux, and bare-metal systems, Slint features an easy-to-learn domain-specific language (DSL) that compiles into native code, optimizing for the target device's capabilities. It facilitates collaboration between designers and developers on shared projects and supports business logic development in Rust, C++, JavaScript, or Python.