November 10, 2023 by Slint Team

Slint 1.3 Released with Revamped Native Styles and JavaScript API

We're excited to share the release of Slint 1.3, filled with new features and improvements that will enhance your development experience. Let's take a look at some of the highlights:


New Native Style on Windows and Mac

Our default styles have been changed to provide a more authentic Windows and macOS interface. The Fluent design system is used in modern Windows applications, while the Cupertino style mirrors the look and feel of macOS applications. Both styles are implemented in pure Slint code.

For Linux, Slint continues to use Qt when available. This way you can ensure a consistent 'native' Linux feel.

The Cupertino style on Mac
The Fluent style on Windows

NodeJS API Based on napi-rs

We now use the napi-rs crate for the NodeJS integration. Slint is now compatible with all the latest NodeJS releases and allows you to integrate into the NodeJS event loop. Developers looking for an alternative to Electron to create light-weight GUI applications in JavaScript can consider using Slint.

To explore Slint in JavaScript, please refer to our JavaScript documentation and tutorial.

Initiating the Android Port

Screenshot of the Todo example on Android

We're embarking on the exciting journey of bringing Slint to Android! While it's not ready for production, you can start experimenting with Rust UI on Android.

The i-slint-backend-android-activity, using the android-activity crate, lays the groundwork for building GUI with Slint on Android. Please note that this is an internal crate and doesn't follow semver.

Want to try it out? Check the documentation of the android backend

This work is being funded by NLNet. We are very grateful for their support.

Easily Import Component Libraries

You can now easily import component libraries into your code. The new release comes with the infrastructure to support importing components from external libraries. The library search paths are defined in the build scripts or via environment variables.

The following code will will import the FooWidget from the foo library.

import { FooWidget } from "@foo";

Many More Improvements

Slint 1.3 is packed with numerous bug fixes and enhancements. Slint VSCode plugin learned new refactoring functions, the slint! macro integration with rust-analyzer has been improved, TouchArea can now receive scroll events, GridLayout can have different values for horizontal or vertical spacing, more easing curves are available to customize your animations, a new combobox in Slint Preview allows you to select the style, and much more.

More users

The last few weeks have been very motivating as we witnessed more and more Slint users releasing their apps #MadeWithSlint. In addition to these applications being cross-platform, some of them have fairly complex user interfaces.

WesAudio, for instance, has introduced their digital audio plugin to the market. Read their success story to see how they leveraged Slint.

Thorbjørn Lindeijer has developed a beautiful application to assist cryptocurrency traders in computing capital gains: Raccoin.

Closing Thoughts

We would like to express our gratitude to our contributors - J-P Nurmi, Guilhem Vallat, Thorbjørn Lindeijer, Ken Carpenter, and Adam Obuchowicz. Thank you for being a part of the Slint community ❤️.

Explore the new features of Slint 1.3! 🌟

Your feedback is invaluable to us. Please reach out if you encounter any issues or notice missing functionality. Get in touch via our GitHub pages, email, or via chat on our Mattermost instance.

Comments


Slint is a declarative GUI toolkit to build native user interfaces for desktop and embedded applications written in Rust, C++, or JavaScript. Find more information at https://slint.dev/ or check out the source code at https://github.com/slint-ui/slint