aura-gui 0.2.1

UI nativa acelerada por GPU para escritorio, Android e iOS, en un solo crate: estilo tipo Tailwind, componentes, sombras, animaciones y agentes de IA. Reposo a cero. Licencia AGPL-3.0 o comercial.
//! Catálogo de familias de temas: cada función arma un `Theme` desde su paleta.

use super::*;

const ONE_DARK_SYNTAX: [u32; 12] = [
    0xc678dd, 0x61afef, 0xe5c07b, 0x98c379, 0x7f848e, 0xd19a66, 0xe06c75, 0x56b6c2, 0xe06c75, 0xe06c75, 0x61afef,
    0x56b6c2,
];
const ONE_LIGHT_SYNTAX: [u32; 12] = [
    0xa626a4, 0x4078f2, 0xc18401, 0x50a14f, 0xa0a1a7, 0x986801, 0xe45649, 0x0184bc, 0xca1243, 0xe45649, 0x4078f2,
    0x0184bc,
];

/// Paleta oscura inspirada en la escala zinc de shadcn.
pub fn aura_dark() -> Theme {
    build(Palette {
        name: "Aura Oscuro",
        is_dark: true,
        base: [0x09090b, 0x111113, 0x1c1c20, 0x3f3f46, 0x27272a, 0xfafafa, 0xa1a1aa],
        states: [0x6366f1, 0x7c7ff4, 0xdc2626, 0xef4444, 0xeab308, 0x22c55e, 0x27272a, 0x3f3f46],
        syntax: ONE_DARK_SYNTAX,
        ansi: ANSI_DARK,
    })
}

pub fn aura_light() -> Theme {
    build(Palette {
        name: "Aura Claro",
        is_dark: false,
        base: [0xffffff, 0xf4f4f5, 0xffffff, 0xd4d4d8, 0xe4e4e7, 0x18181b, 0x52525b],
        states: [0x4f46e5, 0x4338ca, 0xdc2626, 0xb91c1c, 0xca8a04, 0x16a34a, 0xe4e4e7, 0xd4d4d8],
        syntax: ONE_LIGHT_SYNTAX,
        ansi: ANSI_LIGHT,
    })
}

pub fn one_dark() -> Theme {
    build(Palette {
        name: "One Dark",
        is_dark: true,
        base: [0x282c34, 0x21252b, 0x2c313a, 0x3e4452, 0x2c313a, 0xabb2bf, 0x7f848e],
        states: [0x61afef, 0x74b9f0, 0xe06c75, 0xe57f87, 0xe5c07b, 0x98c379, 0x2c313c, 0x3e4451],
        syntax: ONE_DARK_SYNTAX,
        ansi: [
            0x3f4451, 0xe06c75, 0x98c379, 0xe5c07b, 0x61afef, 0xc678dd, 0x56b6c2, 0xabb2bf, 0x5c6370, 0xe06c75,
            0x98c379, 0xe5c07b, 0x61afef, 0xc678dd, 0x56b6c2, 0xffffff,
        ],
    })
}

pub fn one_light() -> Theme {
    build(Palette {
        name: "One Light",
        is_dark: false,
        base: [0xfafafa, 0xf0f0f1, 0xffffff, 0xdbdbdc, 0xe5e5e6, 0x383a42, 0x696c77],
        states: [0x4078f2, 0x2f63d8, 0xe45649, 0xca1243, 0xc18401, 0x50a14f, 0xe5e5e6, 0xdbdbdc],
        syntax: ONE_LIGHT_SYNTAX,
        ansi: ANSI_LIGHT,
    })
}

pub fn gruvbox_dark() -> Theme {
    build(Palette {
        name: "Gruvbox Oscuro",
        is_dark: true,
        base: [0x282828, 0x1d2021, 0x32302f, 0x504945, 0x3c3836, 0xebdbb2, 0xa89984],
        states: [0x83a598, 0x9cb8ad, 0xfb4934, 0xfc6b5b, 0xfabd2f, 0xb8bb26, 0x3c3836, 0x504945],
        syntax: [
            0xfb4934, 0xb8bb26, 0xfabd2f, 0xb8bb26, 0x928374, 0xd3869b, 0x8ec07c, 0xfe8019, 0x83a598, 0xfb4934,
            0xfabd2f, 0x83a598,
        ],
        ansi: [
            0x282828, 0xcc241d, 0x98971a, 0xd79921, 0x458588, 0xb16286, 0x689d6a, 0xa89984, 0x928374, 0xfb4934,
            0xb8bb26, 0xfabd2f, 0x83a598, 0xd3869b, 0x8ec07c, 0xebdbb2,
        ],
    })
}

pub fn catppuccin_mocha() -> Theme {
    build(Palette {
        name: "Catppuccin Mocha",
        is_dark: true,
        base: [0x1e1e2e, 0x181825, 0x313244, 0x45475a, 0x313244, 0xcdd6f4, 0x7f849c],
        states: [0x89b4fa, 0xa6c8ff, 0xf38ba8, 0xf5a3b8, 0xf9e2af, 0xa6e3a1, 0x313244, 0x45475a],
        syntax: [
            0xcba6f7, 0x89b4fa, 0xf9e2af, 0xa6e3a1, 0x6c7086, 0xfab387, 0xf38ba8, 0x89dceb, 0x89b4fa, 0xf38ba8,
            0x89b4fa, 0x89dceb,
        ],
        ansi: [
            0x45475a, 0xf38ba8, 0xa6e3a1, 0xf9e2af, 0x89b4fa, 0xf5c2e7, 0x94e2d5, 0xbac2de, 0x585b70, 0xf38ba8,
            0xa6e3a1, 0xf9e2af, 0x89b4fa, 0xf5c2e7, 0x94e2d5, 0xa6adc8,
        ],
    })
}

pub fn catppuccin_latte() -> Theme {
    build(Palette {
        name: "Catppuccin Latte",
        is_dark: false,
        base: [0xeff1f5, 0xe6e9ef, 0xffffff, 0xbcc0cc, 0xccd0da, 0x4c4f69, 0x8c8fa1],
        states: [0x1e66f5, 0x2a6ef0, 0xd20f39, 0xe64553, 0xdf8e1d, 0x40a02b, 0xe6e9ef, 0xccd0da],
        syntax: [
            0x8839ef, 0x1e66f5, 0xdf8e1d, 0x40a02b, 0x9ca0b0, 0xfe640b, 0xd20f39, 0x04a5e5, 0x1e66f5, 0xd20f39,
            0x1e66f5, 0x04a5e5,
        ],
        ansi: [
            0x5c5f77, 0xd20f39, 0x40a02b, 0xdf8e1d, 0x1e66f5, 0xea76cb, 0x179299, 0xacb0be, 0x6c6f85, 0xd20f39,
            0x40a02b, 0xdf8e1d, 0x1e66f5, 0xea76cb, 0x179299, 0xbcc0cc,
        ],
    })
}

pub fn tokyo_night() -> Theme {
    build(Palette {
        name: "Tokyo Night",
        is_dark: true,
        base: [0x1a1b26, 0x16161e, 0x1f2335, 0x292e42, 0x1f2335, 0xa9b1d6, 0x565f89],
        states: [0x7aa2f7, 0x8fb0f8, 0xf7768e, 0xff899c, 0xe0af68, 0x9ece6a, 0x292e42, 0x3b4261],
        syntax: [
            0xbb9af7, 0x7aa2f7, 0x2ac3de, 0x9ece6a, 0x565f89, 0xff9e64, 0x7dcfff, 0x89ddff, 0x73daca, 0xf7768e,
            0x7aa2f7, 0x2ac3de,
        ],
        ansi: [
            0x15161e, 0xf7768e, 0x9ece6a, 0xe0af68, 0x7aa2f7, 0xbb9af7, 0x7dcfff, 0xa9b1d6, 0x414868, 0xf7768e,
            0x9ece6a, 0xe0af68, 0x7aa2f7, 0xbb9af7, 0x7dcfff, 0xc0caf5,
        ],
    })
}

pub fn dracula() -> Theme {
    build(Palette {
        name: "Dracula",
        is_dark: true,
        base: [0x282a36, 0x21222c, 0x343746, 0x44475a, 0x343746, 0xf8f8f2, 0x6272a4],
        states: [0xbd93f9, 0xcba9fb, 0xff5555, 0xff6e6e, 0xf1fa8c, 0x50fa7b, 0x44475a, 0x4d5163],
        syntax: [
            0xff79c6, 0x50fa7b, 0x8be9fd, 0xf1fa8c, 0x6272a4, 0xbd93f9, 0x50fa7b, 0xff79c6, 0x8be9fd, 0xff79c6,
            0x50fa7b, 0x8be9fd,
        ],
        ansi: [
            0x21222c, 0xff5555, 0x50fa7b, 0xf1fa8c, 0xbd93f9, 0xff79c6, 0x8be9fd, 0xf8f8f2, 0x6272a4, 0xff6e6e,
            0x69ff94, 0xffffa5, 0xd6acff, 0xff92df, 0xa4ffff, 0xffffff,
        ],
    })
}

pub fn nord() -> Theme {
    build(Palette {
        name: "Nord",
        is_dark: true,
        base: [0x2e3440, 0x2b303b, 0x3b4252, 0x4c566a, 0x3b4252, 0xd8dee9, 0x7b88a1],
        states: [0x88c0d0, 0x9ccddb, 0xbf616a, 0xcf7a82, 0xebcb8b, 0xa3be8c, 0x3b4252, 0x434c5e],
        syntax: [
            0x81a1c1, 0x88c0d0, 0x8fbcbb, 0xa3be8c, 0x616e88, 0xb48ead, 0x88c0d0, 0x81a1c1, 0x8fbcbb, 0x81a1c1,
            0x88c0d0, 0x8fbcbb,
        ],
        ansi: [
            0x3b4252, 0xbf616a, 0xa3be8c, 0xebcb8b, 0x81a1c1, 0xb48ead, 0x88c0d0, 0xe5e9f0, 0x4c566a, 0xbf616a,
            0xa3be8c, 0xebcb8b, 0x81a1c1, 0xb48ead, 0x8fbcbb, 0xeceff4,
        ],
    })
}

pub fn solarized_dark() -> Theme {
    build(Palette {
        name: "Solarized Oscuro",
        is_dark: true,
        base: [0x002b36, 0x00252e, 0x073642, 0x0b4a5a, 0x073642, 0x93a1a1, 0x657b83],
        states: [0x268bd2, 0x3a9ada, 0xdc322f, 0xe0504d, 0xb58900, 0x859900, 0x073642, 0x0b4a5a],
        syntax: [
            0x859900, 0x268bd2, 0xb58900, 0x2aa198, 0x586e75, 0xd33682, 0x268bd2, 0x859900, 0x268bd2, 0x268bd2,
            0x268bd2, 0x2aa198,
        ],
        ansi: [
            0x073642, 0xdc322f, 0x859900, 0xb58900, 0x268bd2, 0xd33682, 0x2aa198, 0xeee8d5, 0x002b36, 0xcb4b16,
            0x586e75, 0x657b83, 0x839496, 0x6c71c4, 0x93a1a1, 0xfdf6e3,
        ],
    })
}

pub fn solarized_light() -> Theme {
    build(Palette {
        name: "Solarized Claro",
        is_dark: false,
        base: [0xfdf6e3, 0xeee8d5, 0xffffff, 0xd6cfbc, 0xe5dfcc, 0x586e75, 0x93a1a1],
        states: [0x268bd2, 0x3a9ada, 0xdc322f, 0xe0504d, 0xb58900, 0x859900, 0xeee8d5, 0xd6cfbc],
        syntax: [
            0x859900, 0x268bd2, 0xb58900, 0x2aa198, 0x93a1a1, 0xd33682, 0x268bd2, 0x859900, 0x268bd2, 0x268bd2,
            0x268bd2, 0x2aa198,
        ],
        ansi: [
            0x073642, 0xdc322f, 0x859900, 0xb58900, 0x268bd2, 0xd33682, 0x2aa198, 0xeee8d5, 0x002b36, 0xcb4b16,
            0x586e75, 0x657b83, 0x839496, 0x6c71c4, 0x93a1a1, 0xfdf6e3,
        ],
    })
}

pub fn rose_pine() -> Theme {
    build(Palette {
        name: "Rosé Pine",
        is_dark: true,
        base: [0x191724, 0x1f1d2e, 0x26233a, 0x403d52, 0x26233a, 0xe0def4, 0x6e6a86],
        states: [0xc4a7e7, 0xd0b9ee, 0xeb6f92, 0xf08caa, 0xf6c177, 0x9ccfd8, 0x26233a, 0x403d52],
        syntax: [
            0x31748f, 0xc4a7e7, 0x9ccfd8, 0xf6c177, 0x6e6a86, 0xebbcba, 0xeb6f92, 0x31748f, 0x9ccfd8, 0xeb6f92,
            0xc4a7e7, 0x9ccfd8,
        ],
        ansi: [
            0x26233a, 0xeb6f92, 0x31748f, 0xf6c177, 0x9ccfd8, 0xc4a7e7, 0xebbcba, 0xe0def4, 0x6e6a86, 0xeb6f92,
            0x31748f, 0xf6c177, 0x9ccfd8, 0xc4a7e7, 0xebbcba, 0xe0def4,
        ],
    })
}