fission-onboarding 0.1.0

Guided in-app tours and spotlight onboarding for Fission applications
Documentation
use fission::core::op::Length;
use fission::prelude::{BoxShadow, Color};

/// Host-supplied design tokens for the onboarding overlay and callout.
#[derive(Clone, Debug, PartialEq)]
pub struct OnboardingStyle {
    pub backdrop: Color,
    pub focus_ring: Color,
    pub surface: Color,
    pub border: Color,
    pub text: Color,
    pub text_muted: Color,
    pub primary_text: Color,
    pub spotlight_padding: f32,
    pub focus_ring_width: f32,
    pub focus_radius: f32,
    pub card_width: Length,
    pub compact_actions_below: f32,
    pub card_padding: f32,
    pub card_radius: f32,
    pub card_gap: f32,
    pub control_gap: f32,
    pub callout_gap: f32,
    pub title_size: f32,
    pub body_size: f32,
    pub progress_size: f32,
    pub title_weight: u16,
    pub icon_size: f32,
    pub shadow: Option<BoxShadow>,
}

impl Default for OnboardingStyle {
    fn default() -> Self {
        Self {
            backdrop: Color {
                r: 15,
                g: 23,
                b: 42,
                a: 166,
            },
            focus_ring: Color {
                r: 59,
                g: 130,
                b: 246,
                a: 255,
            },
            surface: Color::WHITE,
            border: Color {
                r: 203,
                g: 213,
                b: 225,
                a: 255,
            },
            text: Color {
                r: 15,
                g: 23,
                b: 42,
                a: 255,
            },
            text_muted: Color {
                r: 71,
                g: 85,
                b: 105,
                a: 255,
            },
            primary_text: Color::WHITE,
            spotlight_padding: 8.0,
            focus_ring_width: 2.0,
            focus_radius: 8.0,
            card_width: Length::points(340.0),
            compact_actions_below: 360.0,
            card_padding: 20.0,
            card_radius: 12.0,
            card_gap: 12.0,
            control_gap: 8.0,
            callout_gap: 8.0,
            title_size: 20.0,
            body_size: 14.0,
            progress_size: 12.0,
            title_weight: 650,
            icon_size: 16.0,
            shadow: None,
        }
    }
}