// Auto-generated by Style Dictionary from Creo UI tokens.
// Do not edit manually — edit tokens/**/*.json instead.
// Theme: mint-dark (Creo Design System default).

/// 8-bit-per-channel RGB color, suitable for conversion into
/// `ratatui::style::Color::Rgb`, `image::Rgb`, etc.
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct Rgb {
    pub r: u8,
    pub g: u8,
    pub b: u8,
}

impl Rgb {
    pub const fn new(r: u8, g: u8, b: u8) -> Self {
        Self { r, g, b }
    }

    pub const fn as_array(&self) -> [u8; 3] {
        [self.r, self.g, self.b]
    }
}

/// Brand primary (base)
pub const COLOR_BRAND_PRIMARY: Rgb = Rgb::new(97, 197, 148);
/// Brand primary — hover
pub const COLOR_BRAND_PRIMARY_HOVER: Rgb = Rgb::new(104, 215, 161);
/// Brand primary — active / pressed
pub const COLOR_BRAND_PRIMARY_ACTIVE: Rgb = Rgb::new(89, 179, 135);
/// Brand primary — subtle tint surface
pub const COLOR_BRAND_PRIMARY_SUBTLE: Rgb = Rgb::new(6, 41, 25);
/// Brand secondary (base)
pub const COLOR_BRAND_SECONDARY: Rgb = Rgb::new(170, 141, 222);
/// Brand secondary — hover
pub const COLOR_BRAND_SECONDARY_HOVER: Rgb = Rgb::new(187, 154, 244);
/// Brand secondary — active / pressed
pub const COLOR_BRAND_SECONDARY_ACTIVE: Rgb = Rgb::new(154, 127, 200);
/// Brand secondary — subtle tint surface
pub const COLOR_BRAND_SECONDARY_SUBTLE: Rgb = Rgb::new(37, 28, 54);
/// Semantic success (base)
pub const COLOR_SEMANTIC_SUCCESS: Rgb = Rgb::new(91, 182, 97);
/// Semantic success — hover
pub const COLOR_SEMANTIC_SUCCESS_HOVER: Rgb = Rgb::new(101, 200, 107);
/// Semantic success — active
pub const COLOR_SEMANTIC_SUCCESS_ACTIVE: Rgb = Rgb::new(81, 165, 86);
/// Semantic success — subtle surface
pub const COLOR_SEMANTIC_SUCCESS_SUBTLE: Rgb = Rgb::new(11, 41, 14);
/// Semantic success — text on tinted bg
pub const COLOR_SEMANTIC_SUCCESS_TEXT: Rgb = Rgb::new(139, 210, 141);
/// Semantic warning (base)
pub const COLOR_SEMANTIC_WARNING: Rgb = Rgb::new(214, 166, 46);
/// Semantic warning — hover
pub const COLOR_SEMANTIC_WARNING_HOVER: Rgb = Rgb::new(234, 181, 50);
/// Semantic warning — active
pub const COLOR_SEMANTIC_WARNING_ACTIVE: Rgb = Rgb::new(195, 151, 42);
/// Semantic warning — subtle surface
pub const COLOR_SEMANTIC_WARNING_SUBTLE: Rgb = Rgb::new(47, 30, 0);
/// Semantic warning — text on tinted bg
pub const COLOR_SEMANTIC_WARNING_TEXT: Rgb = Rgb::new(236, 201, 128);
/// Semantic error (base)
pub const COLOR_SEMANTIC_ERROR: Rgb = Rgb::new(250, 104, 99);
/// Semantic error — hover
pub const COLOR_SEMANTIC_ERROR_HOVER: Rgb = Rgb::new(255, 116, 110);
/// Semantic error — active
pub const COLOR_SEMANTIC_ERROR_ACTIVE: Rgb = Rgb::new(228, 93, 88);
/// Semantic error — subtle surface
pub const COLOR_SEMANTIC_ERROR_SUBTLE: Rgb = Rgb::new(58, 20, 18);
/// Semantic error — text on tinted bg
pub const COLOR_SEMANTIC_ERROR_TEXT: Rgb = Rgb::new(255, 174, 166);
/// Semantic info (base)
pub const COLOR_SEMANTIC_INFO: Rgb = Rgb::new(79, 168, 225);
/// Semantic info — hover
pub const COLOR_SEMANTIC_INFO_HOVER: Rgb = Rgb::new(85, 184, 248);
/// Semantic info — active
pub const COLOR_SEMANTIC_INFO_ACTIVE: Rgb = Rgb::new(72, 151, 203);
/// Semantic info — subtle surface
pub const COLOR_SEMANTIC_INFO_SUBTLE: Rgb = Rgb::new(6, 36, 55);
/// Semantic info — text on tinted bg
pub const COLOR_SEMANTIC_INFO_TEXT: Rgb = Rgb::new(144, 215, 255);
/// Root background — page canvas
pub const COLOR_SURFACE_BG_BASE: Rgb = Rgb::new(7, 11, 20);
/// Subtle background — panels, sections
pub const COLOR_SURFACE_BG_SUBTLE: Rgb = Rgb::new(12, 18, 26);
/// Emphasized background — highlighted regions
pub const COLOR_SURFACE_BG_EMPHASIS: Rgb = Rgb::new(35, 41, 51);
/// Card / modal / elevated container surface
pub const COLOR_SURFACE_SURFACE: Rgb = Rgb::new(17, 22, 31);
/// Default border / divider
pub const COLOR_SURFACE_BORDER: Rgb = Rgb::new(40, 46, 56);
/// Subtle border — quiet separators
pub const COLOR_SURFACE_BORDER_SUBTLE: Rgb = Rgb::new(29, 34, 41);
/// Primary foreground text
pub const COLOR_TEXT_PRIMARY: Rgb = Rgb::new(235, 239, 245);
/// Secondary text — supporting copy
pub const COLOR_TEXT_SECONDARY: Rgb = Rgb::new(170, 174, 180);
/// Tertiary text — captions, hints
pub const COLOR_TEXT_TERTIARY: Rgb = Rgb::new(125, 128, 134);
/// Disabled text
pub const COLOR_TEXT_DISABLED: Rgb = Rgb::new(82, 85, 91);
/// Inverse text — on dark surfaces
pub const COLOR_TEXT_INVERSE: Rgb = Rgb::new(7, 11, 20);
/// Shadow tint — default
pub const COLOR_SHADOW_BASE: Rgb = Rgb::new(0, 0, 0);
/// Shadow tint — strong
pub const COLOR_SHADOW_STRONG: Rgb = Rgb::new(0, 0, 0);
/// Hero gradient — marketing / splash surfaces
pub const COLOR_GRADIENT_HERO: &str = "linear-gradient(135deg, oklch(0.2 0.04 160) 0%, oklch(0.18 0.03 175) 50%, oklch(0.22 0.05 165) 100%)";
/// TOP 領域 accent — global tools / 視線の起点 (active theme の brand secondary に追従)
pub const EDITOR_MODE_AXIS_GLOBAL: &str = "var(--color-brand-secondary)";
/// BOTTOM 領域 accent — ローカル utility (active theme の text tertiary)
pub const EDITOR_MODE_AXIS_UTILITY: &str = "var(--color-text-tertiary)";
/// LEFT 領域 accent — 時系列過去 / 参照 / 元ソース (active theme の semantic info)
pub const EDITOR_MODE_AXIS_PAST: &str = "var(--color-semantic-info)";
/// RIGHT 領域 accent — 時系列未来 / ツール / 生成 (active theme の brand primary)
pub const EDITOR_MODE_AXIS_FUTURE: &str = "var(--color-brand-primary)";
/// Editor Layer 最背面の opacity。デフォルト 0 (完全透過) で Content Layer を遮らない
pub const EDITOR_MODE_OVERLAY_BACKDROP_OPACITY: f32 = 0_f32;
/// Field label の text 色 (active theme の text secondary)
pub const EDITOR_MODE_PANEL_FIELD_LABEL: &str = "var(--color-text-secondary)";
/// Field value の text 色 (active theme の text primary)
pub const EDITOR_MODE_PANEL_FIELD_VALUE: &str = "var(--color-text-primary)";
/// Field group の区切り線 (active theme の border subtle)
pub const EDITOR_MODE_PANEL_SEPARATOR: &str = "var(--color-surface-border-subtle)";
/// Field 同士の縦間隔
pub const EDITOR_MODE_PANEL_FIELD_GAP: f32 = 8_f32;
/// Field group 間の縦間隔
pub const EDITOR_MODE_PANEL_GROUP_GAP: f32 = 16_f32;
/// Region 背景の base RGB (active theme に追従)
pub const EDITOR_MODE_REGION_BG_COLOR: &str = "var(--color-surface-bg-base)";
/// Region 背景の 不透明度 (0.0-1.0)。Content を完全に隠さず薄く透かす
pub const EDITOR_MODE_REGION_BG_OPACITY: f32 = 0.92_f32;
/// Region の輪郭色 (active theme に追従)
pub const EDITOR_MODE_REGION_BORDER: &str = "var(--color-surface-border)";
/// Region 内側の padding
pub const EDITOR_MODE_REGION_PADDING: f32 = 12_f32;
/// TOP region の固定高さ (Content を大きく隠さないコンパクトサイズ)
pub const EDITOR_MODE_REGION_TOP_HEIGHT: f32 = 44_f32;
/// BOTTOM region の固定高さ
pub const EDITOR_MODE_REGION_BOTTOM_HEIGHT: f32 = 44_f32;
/// LEFT region の default 幅 (collapsible)
pub const EDITOR_MODE_REGION_LEFT_WIDTH: f32 = 240_f32;
/// RIGHT region の default 幅 (tool panel、左より広め)
pub const EDITOR_MODE_REGION_RIGHT_WIDTH: f32 = 280_f32;
/// Editor mode 中の hover outline (ghost highlight、Content を触らず上に描画)
pub const EDITOR_MODE_SELECTION_OUTLINE_HOVER: &str = "var(--color-brand-primary-subtle)";
/// 選択中の要素 outline (active theme の brand primary)
pub const EDITOR_MODE_SELECTION_OUTLINE_ACTIVE: &str = "var(--color-brand-primary)";
/// Selection outline の太さ
pub const EDITOR_MODE_SELECTION_OUTLINE_WIDTH: f32 = 2_f32;
/// 要素から outline までの offset (要素本体を遮らない)
pub const EDITOR_MODE_SELECTION_OUTLINE_OFFSET: f32 = 2_f32;
/// Tight gap — icon+label inline, chip group, closely-related siblings
pub const LAYOUT_GAP_TIGHT: f32 = 4_f32;
/// Default sibling gap — between stacked elements (list items, form fields)
pub const LAYOUT_GAP_SIBLING: f32 = 18_f32;
/// Section-to-section gap — thematic block break (between content sections)
pub const LAYOUT_GAP_SECTION: f32 = 40_f32;
/// Page-level break — hero / footer separation, landing page major divisions
pub const LAYOUT_GAP_PAGE: f32 = 64_f32;
/// Minimum tap target — Apple HIG accessibility requirement (modals, buttons on touch devices)
pub const LAYOUT_TARGET_TAP: f32 = 44_f32;
/// Minimum focus target — pointer devices / desktop-first (smaller than tap but still comfortable)
pub const LAYOUT_TARGET_FOCUS: f32 = 32_f32;
/// Minimum hit target — dense UI (toolbars, inline actions), still WCAG-reasonable with hover affordance
pub const LAYOUT_TARGET_HIT: f32 = 24_f32;
/// Extra-small margin — tight stack (paragraph spacing, inline gap)
pub const MARGIN_XS: f32 = 8_f32;
/// Small margin — standard vertical rhythm between elements
pub const MARGIN_SM: f32 = 16_f32;
/// Medium margin — component block separation (default、spacing.md と揃える)
pub const MARGIN_MD: f32 = 18_f32;
/// Large margin — section divider (between thematic blocks)
pub const MARGIN_LG: f32 = 40_f32;
/// Extra-large margin — major section or hero break (page-level breathing)
pub const MARGIN_XL: f32 = 64_f32;
/// No rounding — explicit reset (special, outside step rule)
pub const RADIUS_NONE: f32 = 0_f32;
/// Extra-small radius — minimal rounding (chips, tags)
pub const RADIUS_XS: f32 = 4_f32;
/// Small radius — subtle rounding (buttons, inputs)
pub const RADIUS_SM: f32 = 8_f32;
/// Medium radius — cards, popovers (soft friendly feel)
pub const RADIUS_MD: f32 = 15_f32;
/// Large radius — modals, larger surfaces
pub const RADIUS_LG: f32 = 22_f32;
/// Extra-large radius — hero surfaces
pub const RADIUS_XL: f32 = 28_f32;
/// Fully rounded — pill shapes and circles (special, outside step rule)
pub const RADIUS_FULL: f32 = 9999_f32;
/// No shadow
pub const SHADOW_NONE: &str = "none";
/// Small elevation — quiet lift for subtle layers
pub const SHADOW_SM: &str = "0 1px 2px 0 rgba(32, 36, 46, 0.06)";
/// Medium elevation — cards, dropdowns
pub const SHADOW_MD: &str = "0 4px 6px -1px rgba(32, 36, 46, 0.08), 0 2px 4px -2px rgba(32, 36, 46, 0.06)";
/// Large elevation — popovers, overlays
pub const SHADOW_LG: &str = "0 10px 15px -3px rgba(32, 36, 46, 0.10), 0 4px 6px -4px rgba(32, 36, 46, 0.08)";
/// Extra-large elevation — modals, focal surfaces
pub const SHADOW_XL: &str = "0 20px 25px -5px rgba(32, 36, 46, 0.12), 0 8px 10px -6px rgba(32, 36, 46, 0.08)";
/// Extra-small spacing — 4px (base unit)
pub const SPACING_XS: f32 = 4_f32;
/// Small spacing — 8px
pub const SPACING_SM: f32 = 8_f32;
/// Medium spacing — 18px (default gap between UI elements)
pub const SPACING_MD: f32 = 18_f32;
/// Large spacing — 24px
pub const SPACING_LG: f32 = 24_f32;
/// Extra-large spacing — 32px
pub const SPACING_XL: f32 = 32_f32;
/// Lead body — opening paragraph / intro (larger, invites reading)
pub const TYPOGRAPHY_BODY_LEAD: f32 = 20_f32;
/// Default body — regular paragraph text (最もよく使う)
pub const TYPOGRAPHY_BODY_DEFAULT: f32 = 16_f32;
/// Emphasis body — default size with stronger weight (意味的な強調、size は default と同じ)
pub const TYPOGRAPHY_BODY_EMPHASIS: f32 = 16_f32;
/// Helper text — form helper, status message, secondary info
pub const TYPOGRAPHY_BODY_HELPER: f32 = 14_f32;
/// Caption — image caption, footnote, meta info (smallest readable body)
pub const TYPOGRAPHY_BODY_CAPTION: f32 = 12_f32;
/// Display xs — smallest heading (h4 / section title / card title)
pub const TYPOGRAPHY_DISPLAY_XS: f32 = 24_f32;
/// Display sm — standard heading (h3 / article title / section headline)
pub const TYPOGRAPHY_DISPLAY_SM: f32 = 32_f32;
/// Display md — default hero / h2 (Creo aesthetic: 柔らかく強い存在感)
pub const TYPOGRAPHY_DISPLAY_MD: f32 = 44_f32;
/// Display lg — page hero / h1
pub const TYPOGRAPHY_DISPLAY_LG: f32 = 56_f32;
/// Display xl — landing mega headline / promotional hero
pub const TYPOGRAPHY_DISPLAY_XL: f32 = 72_f32;
/// Default UI sans-serif family (multi-language: EN/JA/KO)
pub const TYPOGRAPHY_FAMILY_SANS: &str = "'Creo Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Noto Sans JP', sans-serif";
/// Monospace family for code blocks, tokens, IDs
pub const TYPOGRAPHY_FAMILY_MONO: &str = "'JetBrains Mono', 'SF Mono', 'Fira Code', 'Consolas', monospace";
/// Display family — heroes, large marketing headlines
pub const TYPOGRAPHY_FAMILY_DISPLAY: &str = "'Creo Sans', -apple-system, 'Noto Sans JP', sans-serif";
/// Tight line-height — headings
pub const TYPOGRAPHY_LINE_HEIGHT_TIGHT: f32 = 1.25_f32;
/// Normal line-height — default body
pub const TYPOGRAPHY_LINE_HEIGHT_NORMAL: f32 = 1.5_f32;
/// Relaxed line-height — long-form text, CJK languages
pub const TYPOGRAPHY_LINE_HEIGHT_RELAXED: f32 = 1.75_f32;
/// Caption / meta text
pub const TYPOGRAPHY_SIZE_XS: f32 = 12_f32;
/// Small body / helper text
pub const TYPOGRAPHY_SIZE_SM: f32 = 14_f32;
/// Default body text
pub const TYPOGRAPHY_SIZE_MD: f32 = 16_f32;
/// Large body / subheading
pub const TYPOGRAPHY_SIZE_LG: f32 = 18_f32;
/// Largest body / small heading (h4)
pub const TYPOGRAPHY_SIZE_XL: f32 = 20_f32;
/// Hero title — landing page mega headline (promotional / marketing)
pub const TYPOGRAPHY_TITLE_HERO: f32 = 72_f32;
/// Page title — h1 (article title, app screen heading)
pub const TYPOGRAPHY_TITLE_PAGE: f32 = 44_f32;
/// Section title — h2 (thematic block within a page)
pub const TYPOGRAPHY_TITLE_SECTION: f32 = 32_f32;
/// Subsection title — h3 (nested group within a section)
pub const TYPOGRAPHY_TITLE_SUBSECTION: f32 = 24_f32;
/// Card title — h4 (inline block title, table header, menu label)
pub const TYPOGRAPHY_TITLE_CARD: f32 = 20_f32;
/// Regular body weight
pub const TYPOGRAPHY_WEIGHT_REGULAR: f32 = 400_f32;
/// Medium emphasis
pub const TYPOGRAPHY_WEIGHT_MEDIUM: f32 = 500_f32;
/// Semi-bold — subheadings, buttons
pub const TYPOGRAPHY_WEIGHT_SEMIBOLD: f32 = 600_f32;
/// Bold — headings
pub const TYPOGRAPHY_WEIGHT_BOLD: f32 = 700_f32;
