-- VDS_SchemeConstants
-- ============================================================================
-- Engine-default single scheme. Add schemes per Theme + Palette cookbook.
-- See HDGR's SchemeConstants for a multi-scheme example.

VDS = VDS or {}

local function rgba(r, g, b, a) return { r = r, g = g, b = b, a = a or 1 } end  -- exception(optional): alpha param optional; default opaque

VDS_Schemes = {
    DefaultDark = {
        metrics = {
            radius    = { sm = 2, md = 4, lg = 6 },
            spacing   = { xs = 2, sm = 4, md = 6, lg = 8, xl = 10, xxl = 12, huge = 20 },
            elevation = { panel = 1, popup = 2, modal = 3 },
        },
        text = {
            default = rgba(0.78, 0.81, 0.85),
            -- Bumped from (0.48, 0.51, 0.56) (~3.4:1 contrast vs surface.panel
            -- = unreadable). (0.72, 0.75, 0.79) hits ~5.5:1, WCAG AA comfortable.
            dim     = rgba(0.72, 0.75, 0.79),
            status  = rgba(0.55, 0.81, 0.95),
            heading = rgba(0.90, 0.93, 0.96),
            inverse = rgba(0.10, 0.12, 0.14),
            shadow  = rgba(0, 0, 0, 0.70),
            shadowOffset = { x = 1, y = -1 },
        },
        surface = {
            panel  = rgba(0.13, 0.15, 0.17),
            sunken = rgba(0.10, 0.11, 0.13),
        },
        border = {
            default = rgba(0.21, 0.23, 0.27),
            subtle  = rgba(0.18, 0.19, 0.22, 0.55),
        },
        semantic = {
            accent  = rgba(0.48, 0.64, 0.96),
            success = rgba(0.62, 0.81, 0.42),
            warning = rgba(0.88, 0.69, 0.41),
            error   = rgba(0.97, 0.46, 0.55),
        },
        button = {
            default = {
                bg     = { normal = rgba(0.18, 0.20, 0.23), hover = rgba(0.22, 0.24, 0.28),
                           active = rgba(0.30, 0.40, 0.55), disabled = rgba(0.14, 0.15, 0.17) },
                text   = { normal = rgba(0.78, 0.81, 0.85), hover = rgba(0.90, 0.93, 0.96),
                           disabled = rgba(0.42, 0.45, 0.48) },
                -- normal: bumped from 0.21/0.23/0.27 (~almost invisible on the
                -- dark atlas interior). 0.50/0.54/0.60 reads clearly even
                -- without hover, so buttons look like buttons at rest.
                border = { normal = rgba(0.50, 0.54, 0.60), hover = rgba(0.48, 0.64, 0.96, 0.5),
                           focus  = rgba(0.48, 0.64, 0.96) },
            },
        },
    },
}

VDS_SchemeMeta = {
    default = "DefaultDark",
    order   = { "DefaultDark" },
    labels  = { DefaultDark = "Default Dark" },
}
