Slint Kit Documentation

Display

Footer for Slint

KitFooter · Slint Kit 0.3.0

Footer region for secondary application information.

Footer region for secondary application information.
Native app built from the example below.

Try the component

Download the complete project, extract it and run cargo run --locked in its folder. Rust 1.92+; Slint Kit 0.3.0 from crates.io. You can also copy the four files below.

Click Documentation, Contact: Rust handles the command and updates the action count.

ui/app.slint

export { KitFormValidation, HtmlInputKind, NumberInputFormat, KitInputConstraints, KitValidationResult, KitValidityState } from "@kit/kit.slint";
// SPDX-License-Identifier: GPL-3.0-or-later
import { KitButton, KitFooter, KitInline, KitTheme, KitThemes } from "@kit/kit.slint";

export enum DemoAction { documentation, contact }

export component App inherits Window {
    title: "KitFooter example";
    preferred-width: 480px;
    preferred-height: 240px;
    max-width: 100000px;
    max-height: 100000px;
    background: root.theme.canvas;
    in-out property <KitTheme> theme: KitThemes.light;
    in property <string> status: "Choose an action.";
    callback action-requested(DemoAction);
    VerticalLayout {
        padding: 24px; spacing: 16px; alignment: start;
        Text { text: "Footer"; color: root.theme.text-primary; font-size: 20px * root.theme.text-scale; font-weight: 600; }
        KitFooter { theme: root.theme; Text { text: "Slint Kit · Native applications, thoughtfully composed."; color: root.theme.text-primary; font-size: 14px * root.theme.text-scale; wrap: word-wrap; }KitInline { KitButton { theme: root.theme; text: "Documentation"; activated => { root.action-requested(DemoAction.documentation); } }KitButton { theme: root.theme; text: "Contact"; activated => { root.action-requested(DemoAction.contact); } } } }
        Text { text: root.status; color: root.theme.text-secondary; wrap: word-wrap; }
    }
}

src/main.rs

// SPDX-License-Identifier: GPL-3.0-or-later
use slint::ComponentHandle;
use std::cell::Cell;
slint::include_modules!();

fn main() -> Result<(), slint::PlatformError> {
    let app = App::new()?;
    slint_kit::init_form_validation!(self, app);
    let count = Cell::new(0_u32);
    let weak = app.as_weak();
    app.on_action_requested(move |action| {
        if let Some(app) = weak.upgrade() {
            let next = count.get().checked_add(1).expect("action count capacity");
            count.set(next);
            let label = match action {
                DemoAction::Documentation => "Documentation",
                DemoAction::Contact => "Contact",
            };
            app.set_status(format!("{label} handled by Rust ({next})").into());
        }
    });
    app.run()
}

Cargo.toml and build.rs

Cargo.toml

[package]
name = "slint-kit-footer-example"
version = "0.1.0"
edition = "2024"
rust-version = "1.92"
license = "GPL-3.0-or-later"
publish = false

[dependencies]
slint-kit = "=0.3.0"
slint = { version = "=1.18.1", default-features = false, features = ["std", "compat-1-18", "backend-winit", "renderer-skia", "accessibility"] }

[build-dependencies]
slint-kit-build = "=0.3.0"

[workspace]

build.rs

fn main() {
    slint_kit_build::compile("ui/app.slint").expect("compile component example");
}

Files: Cargo.toml · build.rs · ui/app.slint · src/main.rs

Place notices, links or secondary actions in its children. Compose it last in KitAppShell and supply the same theme.

It exposes the accessible content-info role and uses the canvas background. Its column owns vertical inset and adapts to content.

Visual composition

The file below produces the screenshot. For controller-driven components, it shows the displayed state without supplying the Rust wiring. Create a project.

Show the screenshot source
Footer region for secondary application information.
Native screenshot of the same example, rendered with Skia.
// SPDX-License-Identifier: GPL-3.0-or-later
import { KitButton, KitFooter, KitInline, KitTheme, KitThemes } from "@kit/kit.slint";

export component Example inherits Window {
    title: "KitFooter example";
    preferred-width: 480px;
    preferred-height: 240px;
    max-width: 100000px;
    max-height: 100000px;
    background: root.theme.canvas;
    in-out property <KitTheme> theme: KitThemes.light;
    in-out property <string> status;
    VerticalLayout {
        padding: 24px; spacing: 16px; alignment: start;
        Text { text: "Footer"; color: root.theme.text-primary; font-size: 20px * root.theme.text-scale; font-weight: 600; }
        KitFooter { theme: root.theme; Text { text: "Slint Kit · Native applications, thoughtfully composed."; color: root.theme.text-primary; font-size: 14px * root.theme.text-scale; wrap: word-wrap; }KitInline { KitButton { theme: root.theme; text: "Documentation"; activated => { root.status = "Action requested"; } }KitButton { theme: root.theme; text: "Contact"; activated => { root.status = "Action requested"; } } } }
        if root.status != "": Text { text: root.status; color: root.theme.text-secondary; font-size: 12px * root.theme.text-scale; wrap: word-wrap; }
    }
}

Download this example

Public API

Inherits Rectangle.

Properties

Name Type Direction
theme KitTheme in

See also