Documentation
    Preparing search index...

    Interface Theme

    interface Theme {
        border: {
            baseWidthPx: number;
            radiusPx: {
                base: number;
                full: number;
                lg: number;
                sm: number;
                xl: number;
                xxl: number;
            };
        };
        brand: {
            faviconUrl: string;
            logoUrls: { darkBg: string; lightBg: string };
            name: string;
        };
        breakpoints: {
            mobile: { isBroken: boolean; px: number };
            tablet: { isBroken: boolean; px: number };
        };
        element: {
            maxBorderRadiusPx: number;
            maxSizeViewportUnits: number;
            maxWidthPx: number;
            zIndex: Record<ThemeStyleZIndexCategory, number>;
        };
        font: {
            family: { body: string; display: string; heading: string };
            lineHeightPx: {
                base: number;
                lg: number;
                sm: number;
                xl: number;
                xs: number;
                xxl: number;
                xxs: number;
                xxxl: number;
            };
            sizePx: {
                base: number;
                lg: number;
                sm: number;
                xl: number;
                xs: number;
                xxl: number;
                xxs: number;
                xxxl: number;
            };
        };
        isDarkMode: boolean;
        isWhiteLabeled: boolean;
        opacity: {
            disabled: number;
            hidden: number;
            loading: number;
            subtle: number;
        };
        palette: {
            background: string;
            backgroundAccent: string;
            backgroundDisabled: string;
            backgroundHover: string;
            backgroundMuted: string;
            border: string;
            borderAccent: string;
            borderMuted: string;
            custom: string;
            customAccent: string;
            customBackground: string;
            customMuted: string;
            doesPrimaryPassAccessibility: boolean;
            doesSecondaryPassAccessibility: boolean;
            error: string;
            errorAccent: string;
            errorBackground: string;
            errorMuted: string;
            foreground: string;
            foregroundAccent: string;
            foregroundDisabled: string;
            foregroundInverted: string;
            foregroundMuted: string;
            info: string;
            infoAccent: string;
            infoBackground: string;
            infoMuted: string;
            primary: string;
            primaryAccent: string;
            primaryBackground: string;
            primaryContrast: string;
            primaryMuted: string;
            secondary: string;
            secondaryAccent: string;
            secondaryBackground: string;
            secondaryContrast: string;
            secondaryMuted: string;
            success: string;
            successAccent: string;
            successBackground: string;
            successMuted: string;
            surface: string;
            tertiary: string;
            tertiaryAccent: string;
            tertiaryBackground: string;
            tertiaryMuted: string;
            warning: string;
            warningAccent: string;
            warningBackground: string;
            warningMuted: string;
        };
        shadow: { base: string; focus: string; sm: string; text: string };
        spacingPx: {
            base: number;
            lg: number;
            sm: number;
            xl: number;
            xs: number;
            xxl: number;
            xxxl: number;
        };
        toggleDarkMode: () => void;
        transition: { baseDurationMs: number; timingFunction: string };
    }
    Index
    border: {
        baseWidthPx: number;
        radiusPx: {
            base: number;
            full: number;
            lg: number;
            sm: number;
            xl: number;
            xxl: number;
        };
    }
    brand: {
        faviconUrl: string;
        logoUrls: { darkBg: string; lightBg: string };
        name: string;
    }
    breakpoints: {
        mobile: { isBroken: boolean; px: number };
        tablet: { isBroken: boolean; px: number };
    }
    element: {
        maxBorderRadiusPx: number;
        maxSizeViewportUnits: number;
        maxWidthPx: number;
        zIndex: Record<ThemeStyleZIndexCategory, number>;
    }
    font: {
        family: { body: string; display: string; heading: string };
        lineHeightPx: {
            base: number;
            lg: number;
            sm: number;
            xl: number;
            xs: number;
            xxl: number;
            xxs: number;
            xxxl: number;
        };
        sizePx: {
            base: number;
            lg: number;
            sm: number;
            xl: number;
            xs: number;
            xxl: number;
            xxs: number;
            xxxl: number;
        };
    }
    isDarkMode: boolean
    isWhiteLabeled: boolean
    opacity: { disabled: number; hidden: number; loading: number; subtle: number }
    palette: {
        background: string;
        backgroundAccent: string;
        backgroundDisabled: string;
        backgroundHover: string;
        backgroundMuted: string;
        border: string;
        borderAccent: string;
        borderMuted: string;
        custom: string;
        customAccent: string;
        customBackground: string;
        customMuted: string;
        doesPrimaryPassAccessibility: boolean;
        doesSecondaryPassAccessibility: boolean;
        error: string;
        errorAccent: string;
        errorBackground: string;
        errorMuted: string;
        foreground: string;
        foregroundAccent: string;
        foregroundDisabled: string;
        foregroundInverted: string;
        foregroundMuted: string;
        info: string;
        infoAccent: string;
        infoBackground: string;
        infoMuted: string;
        primary: string;
        primaryAccent: string;
        primaryBackground: string;
        primaryContrast: string;
        primaryMuted: string;
        secondary: string;
        secondaryAccent: string;
        secondaryBackground: string;
        secondaryContrast: string;
        secondaryMuted: string;
        success: string;
        successAccent: string;
        successBackground: string;
        successMuted: string;
        surface: string;
        tertiary: string;
        tertiaryAccent: string;
        tertiaryBackground: string;
        tertiaryMuted: string;
        warning: string;
        warningAccent: string;
        warningBackground: string;
        warningMuted: string;
    }
    shadow: { base: string; focus: string; sm: string; text: string }
    spacingPx: {
        base: number;
        lg: number;
        sm: number;
        xl: number;
        xs: number;
        xxl: number;
        xxxl: number;
    }
    toggleDarkMode: () => void

    Toggles dark mode and saves the preference in local storage.

    transition: { baseDurationMs: number; timingFunction: string }