use egui::Color32;
#[derive(Clone, Debug)]
pub struct SemanticTokens {
pub ui: UiSemanticTokens,
pub chart: ChartSemanticTokens,
pub brand: BrandSemanticTokens,
pub status: StatusSemanticTokens,
pub footprint: FootprintSemanticTokens,
pub indicators: IndicatorSemanticTokens,
pub drawings: DrawingSemanticTokens,
pub tiers: TierSemanticTokens,
pub buttons: ButtonSemanticTokens,
pub list_item: ListItemSemanticTokens,
pub extended: ExtendedSemanticTokens,
pub alert: AlertSemanticTokens,
pub modal: ModalSemanticTokens,
pub toast: ToastSemanticTokens,
pub command_palette: CommandPaletteSemanticTokens,
pub tpo: TpoSemanticTokens,
pub heatmap: HeatmapSemanticTokens,
}
#[derive(Clone, Debug)]
pub struct UiSemanticTokens {
pub panel_bg_light: Color32,
pub panel_bg_secondary_light: Color32,
pub text_light: Color32,
pub text_secondary_light: Color32,
pub text_muted_light: Color32,
pub border_light: Color32,
pub border_subtle_light: Color32,
pub panel_bg_dark: Color32,
pub panel_bg_secondary_dark: Color32,
pub text_dark: Color32,
pub text_secondary_dark: Color32,
pub text_muted_dark: Color32,
pub border_dark: Color32,
pub border_subtle_dark: Color32,
pub icon_light: Color32,
pub icon_hover_light: Color32,
pub icon_dark: Color32,
pub icon_hover_dark: Color32,
pub icon_active: Color32,
pub btn_bg_light: Color32,
pub btn_bg_hover_light: Color32,
pub btn_bg_active_light: Color32,
pub btn_bg_dark: Color32,
pub btn_bg_hover_dark: Color32,
pub btn_bg_active_dark: Color32,
pub accent: Color32,
pub accent_hover: Color32,
pub warning: Color32,
pub success: Color32,
}
#[derive(Clone, Debug)]
pub struct ChartSemanticTokens {
pub bg: Color32,
pub bg_axis: Color32,
pub bg_selection: Color32,
pub grid_line: Color32,
pub grid_line_major: Color32,
pub axis_text: Color32,
pub axis_text_secondary: Color32,
pub crosshair_line: Color32,
pub crosshair_label_bg: Color32,
pub crosshair_label_text: Color32,
pub bullish: Color32,
pub bearish: Color32,
pub bullish_fill: Color32,
pub bearish_fill: Color32,
pub volume_up_alpha: u8,
pub volume_down_alpha: u8,
pub volume: Color32,
pub session_break: Color32,
pub watermark_alpha: u8,
pub selection_text: Color32,
pub bg_light: Color32,
pub bg_axis_light: Color32,
pub bg_selection_light: Color32,
pub grid_line_light: Color32,
pub grid_line_major_light: Color32,
pub crosshair_line_light: Color32,
}
#[derive(Clone, Debug)]
pub struct BrandSemanticTokens {
pub accent: Color32,
pub accent_hover: Color32,
}
#[derive(Clone, Debug)]
pub struct StatusSemanticTokens {
pub error: Color32,
pub error_dark: Color32,
pub error_darker: Color32,
pub info: Color32,
pub info_light: Color32,
pub disabled: Color32,
pub caution: Color32,
}
#[derive(Clone, Debug)]
pub struct FootprintSemanticTokens {
pub poc: Color32,
pub value_area: Color32,
pub imbalance_buy: Color32,
pub imbalance_sell: Color32,
}
#[derive(Clone, Debug)]
pub struct TpoSemanticTokens {
pub poc: Color32,
pub value_area: Color32,
pub initial_balance: Color32,
pub single_print: Color32,
pub session_separator: Color32,
pub letter_default: Color32,
pub opening_range: Color32,
pub grid: Color32,
pub period_1: Color32,
pub period_2: Color32,
pub period_3: Color32,
pub period_4: Color32,
pub period_5: Color32,
pub period_6: Color32,
pub period_7: Color32,
pub period_8: Color32,
pub period_9: Color32,
pub period_10: Color32,
pub period_11: Color32,
pub period_12: Color32,
}
#[derive(Clone, Debug)]
pub struct HeatmapSemanticTokens {
pub bid_1: Color32,
pub bid_2: Color32,
pub bid_3: Color32,
pub bid_4: Color32,
pub bid_5: Color32,
pub ask_1: Color32,
pub ask_2: Color32,
pub ask_3: Color32,
pub ask_4: Color32,
pub ask_5: Color32,
pub mid_price: Color32,
pub border: Color32,
pub large_order_border: Color32,
}
#[derive(Clone, Debug)]
pub struct IndicatorSemanticTokens {
pub ma: Color32,
pub ema: Color32,
pub sma: Color32,
pub bb_upper: Color32,
pub bb_middle: Color32,
pub bb_lower: Color32,
pub bb_fill: Color32,
pub rsi: Color32,
pub rsi_overbought: Color32,
pub rsi_oversold: Color32,
pub macd_line: Color32,
pub macd_signal: Color32,
pub macd_hist_pos: Color32,
pub macd_hist_neg: Color32,
pub vwap: Color32,
}
#[derive(Clone, Debug)]
pub struct DrawingSemanticTokens {
pub default_line: Color32,
pub handle: Color32,
pub handle_hover: Color32,
pub handle_active: Color32,
pub line_hover: Color32,
pub line_selected: Color32,
pub label_bg: Color32,
pub label_text: Color32,
pub fib_0: Color32,
pub fib_236: Color32,
pub fib_382: Color32,
pub fib_50: Color32,
pub fib_618: Color32,
pub fib_100: Color32,
}
#[derive(Clone, Debug)]
pub struct TierSemanticTokens {
pub free: Color32,
pub pro: Color32,
pub premium: Color32,
}
#[derive(Clone, Debug)]
pub struct ButtonSemanticTokens {
pub primary_bg: Color32,
pub primary_bg_hover: Color32,
pub primary_bg_active: Color32,
pub primary_fg: Color32,
pub secondary_bg: Color32,
pub secondary_bg_hover: Color32,
pub secondary_bg_active: Color32,
pub secondary_fg: Color32,
pub outlined_border: Color32,
pub outlined_border_hover: Color32,
pub danger_bg: Color32,
pub danger_bg_hover: Color32,
pub danger_bg_active: Color32,
pub danger_fg: Color32,
}
#[derive(Clone, Debug)]
pub struct ListItemSemanticTokens {
pub hovered_bg: Color32,
pub active_bg: Color32,
pub default_text: Color32,
pub hovered_text: Color32,
pub active_text: Color32,
pub strong_text: Color32,
pub noninteractive_text: Color32,
pub text_on_primary: Color32,
pub text_on_primary_hovered: Color32,
pub default_icon: Color32,
pub hovered_icon: Color32,
pub active_icon: Color32,
pub icon_on_primary: Color32,
pub icon_on_primary_hovered: Color32,
}
#[derive(Clone, Debug)]
pub struct ExtendedSemanticTokens {
pub bg_outer: Color32,
pub bg_panel: Color32,
pub bg_hover: Color32,
pub bg_active: Color32,
pub border: Color32,
pub border_subtle: Color32,
pub text: Color32,
pub text_secondary: Color32,
pub text_muted: Color32,
pub accent: Color32,
pub accent_hover: Color32,
pub accent_active: Color32,
pub success: Color32,
pub success_light: Color32,
pub success_dark: Color32,
pub success_darker: Color32,
pub error: Color32,
pub error_dark: Color32,
pub error_darker: Color32,
pub warning: Color32,
pub caution: Color32,
pub info: Color32,
pub info_light: Color32,
pub disabled: Color32,
pub purple: Color32,
pub deep_purple: Color32,
pub cyan: Color32,
pub teal: Color32,
pub indigo: Color32,
pub pink: Color32,
pub brown: Color32,
pub deep_orange: Color32,
pub gray: Color32,
pub light_gray: Color32,
pub favorite_gold: Color32,
pub chart_bg: Color32,
pub chart_axis_bg: Color32,
pub chart_tooltip_bg: Color32,
pub chart_text: Color32,
pub chart_text_secondary: Color32,
pub chart_text_muted: Color32,
pub chart_crosshair_label_bg: Color32,
pub bullish: Color32,
pub bearish: Color32,
}
#[derive(Clone, Debug)]
pub struct AlertSemanticTokens {
pub info_bg: Color32,
pub info_border: Color32,
pub info_icon: Color32,
pub success_bg: Color32,
pub success_border: Color32,
pub success_icon: Color32,
pub warning_bg: Color32,
pub warning_border: Color32,
pub warning_icon: Color32,
pub error_bg: Color32,
pub error_border: Color32,
pub error_icon: Color32,
}
#[derive(Clone, Debug)]
pub struct ModalSemanticTokens {
pub overlay_bg: Color32,
pub panel_bg: Color32,
pub panel_border: Color32,
pub header_bg: Color32,
}
#[derive(Clone, Debug)]
pub struct ToastSemanticTokens {
pub info_bg: Color32,
pub info_icon: Color32,
pub success_bg: Color32,
pub success_icon: Color32,
pub warning_bg: Color32,
pub warning_icon: Color32,
pub error_bg: Color32,
pub error_icon: Color32,
pub text: Color32,
pub shadow: Color32,
pub progress_bar_bg: Color32,
pub progress_bar_fill: Color32,
}
#[derive(Clone, Debug)]
pub struct CommandPaletteSemanticTokens {
pub bg: Color32,
pub border: Color32,
pub input_bg: Color32,
pub item_hover: Color32,
pub item_selected: Color32,
pub shortcut_text: Color32,
}