#slint #ui #ui-component

vivi_ui

Custom component library for Slint

2 unstable releases

0.2.0 Aug 8, 2024
0.1.0 Jul 8, 2024

#475 in GUI

MIT license

140KB
3K SLoC

Slint 3K SLoC // 0.1% comments Rust 9 SLoC // 0.9% comments

vivi

vivi is a component library for Slint.

vivi provides currently the following two sets of components:

  • foundation: Base components that can be used to create a custom component set.
  • magic: Ready to use component set with a custom design based on Catppuccin.
#MadeWithSlint

Crates.io Rust docs 0.2.0 Slint docs 0.2.0 MIT licensed

Examples

There is the Gallery that contains an overview of all magic components vivi provides.

Prerequisites

  • Slint >= 1.7

How to use with Rust

  1. Add vivi_ui as build dependency to your Cargo.toml:
[dependencies]
slint = { version = "1.7" }

[build-dependencies]
slint-build = { version = "1.7" }
vivi_ui = { version = "0.2" }
  1. Use vivi::import_paths() in your build.rs file. It will make coop's files visible as @vivi.
fn main() {
    slint_build::compile(
        "ui/index.slint",
        slint_build::CompilerConfiguration::new()
            .with_library_paths(vivi_ui::import_paths()),
    ).unwrap();
}
  1. Add an import to your Slint file (ui/index.slint):
import { MagicWindow, FilledButton } from "@vivi/magic.slint";

export component MyApp inherits MagicWindow {
    preferred-width: 600px;
    preferred-height: 400px;
    title: "MyApp";

    FilledButton {
        text: "Click me";
    }
}

Get Started

To quickly get started, you can use the following rust template repository:

Contribution

Ideas, feedback and code contributions are welcome. Please check the Contribution Guide for more details.

License

The source code of vivi and examples are available under MIT license.

No runtime deps