/** * @aspect/lynx-mui Theme System * Lynx 版 MUI 主题系统 - 100% 一比一对应 MUI 原版 * * 参考: mui-source/packages/mui-material/src/styles/ */ export declare const common: { black: string; white: string; }; export declare const grey: { 50: string; 100: string; 200: string; 300: string; 400: string; 500: string; 600: string; 700: string; 800: string; 900: string; A100: string; A200: string; A400: string; A700: string; }; export declare const purple: { 50: string; 100: string; 200: string; 300: string; 400: string; 500: string; 600: string; 700: string; 800: string; 900: string; A100: string; A200: string; A400: string; A700: string; }; export declare const red: { 50: string; 100: string; 200: string; 300: string; 400: string; 500: string; 600: string; 700: string; 800: string; 900: string; A100: string; A200: string; A400: string; A700: string; }; export declare const orange: { 50: string; 100: string; 200: string; 300: string; 400: string; 500: string; 600: string; 700: string; 800: string; 900: string; A100: string; A200: string; A400: string; A700: string; }; export declare const blue: { 50: string; 100: string; 200: string; 300: string; 400: string; 500: string; 600: string; 700: string; 800: string; 900: string; A100: string; A200: string; A400: string; A700: string; }; export declare const lightBlue: { 50: string; 100: string; 200: string; 300: string; 400: string; 500: string; 600: string; 700: string; 800: string; 900: string; A100: string; A200: string; A400: string; A700: string; }; export declare const green: { 50: string; 100: string; 200: string; 300: string; 400: string; 500: string; 600: string; 700: string; 800: string; 900: string; A100: string; A200: string; A400: string; A700: string; }; /** * 获取颜色的亮度 (0-1) */ export declare function getLuminance(color: string): number; /** * 获取两个颜色之间的对比度 (1-21) */ export declare function getContrastRatio(foreground: string, background: string): number; /** * 添加透明度 - alpha() */ export declare function alpha(color: string, value: number): string; /** * 变暗颜色 - darken() */ export declare function darken(color: string, coefficient: number): string; /** * 变亮颜色 - lighten() */ export declare function lighten(color: string, coefficient: number): string; /** * 强调颜色 (根据亮度自动变亮或变暗) */ export declare function emphasize(color: string, coefficient?: number): string; /** * contrastColor - 使用 oklch 格式生成对比色 * 对应 MUI createPalette.js 中的 contrastColor */ export declare function contrastColor(background: string): string; /** * colorMix - CSS color-mix polyfill * 对应 MUI 的 colorSpace 支持 */ export declare function colorMix(colorSpace: string, color1: string, color2: string, percentage?: number): string; export interface PaletteColor { light: string; main: string; dark: string; contrastText: string; } export interface TypeText { primary: string; secondary: string; disabled: string; icon?: string; } export interface TypeAction { active: string; hover: string; hoverOpacity: number; selected: string; selectedOpacity: number; disabled: string; disabledBackground: string; disabledOpacity: number; focus: string; focusOpacity: number; activatedOpacity: number; } export interface TypeBackground { default: string; paper: string; } export interface Palette { mode: 'light' | 'dark'; common: typeof common; primary: PaletteColor; secondary: PaletteColor; error: PaletteColor; warning: PaletteColor; info: PaletteColor; success: PaletteColor; grey: typeof grey; text: TypeText; divider: string; action: TypeAction; background: TypeBackground; contrastThreshold: number; tonalOffset: number; getContrastText: (background: string) => string; augmentColor: (options: { color: Partial; name?: string; }) => PaletteColor; } export declare const lightPalette: Omit; export declare const darkPalette: Omit; export interface PaletteOptions { mode?: 'light' | 'dark'; primary?: Partial; secondary?: Partial; error?: Partial; warning?: Partial; info?: Partial; success?: Partial; text?: Partial; background?: Partial; action?: Partial; divider?: string; contrastThreshold?: number; tonalOffset?: number; } export declare function createPalette(options?: PaletteOptions): Palette; export interface TypographyVariant { fontFamily: string; fontWeight: number; fontSize: string | number; lineHeight: number; letterSpacing?: string; textTransform?: string; } export interface Typography { fontFamily: string; fontSize: number; fontWeightLight: number; fontWeightRegular: number; fontWeightMedium: number; fontWeightBold: number; htmlFontSize: number; h1: TypographyVariant; h2: TypographyVariant; h3: TypographyVariant; h4: TypographyVariant; h5: TypographyVariant; h6: TypographyVariant; subtitle1: TypographyVariant; subtitle2: TypographyVariant; body1: TypographyVariant; body2: TypographyVariant; button: TypographyVariant; caption: TypographyVariant; overline: TypographyVariant; inherit: TypographyVariant; pxToRem: (px: number) => string; } export interface TypographyOptions { fontFamily?: string; fontSize?: number; fontWeightLight?: number; fontWeightRegular?: number; fontWeightMedium?: number; fontWeightBold?: number; htmlFontSize?: number; allVariants?: Partial; [key: string]: any; } /** * createTypography - 对应 MUI createTypography.js * @param palette - 调色板对象 * @param typography - 排版配置选项 */ export declare function createTypography(palette: Palette | undefined, typography?: TypographyOptions | ((palette: Palette) => TypographyOptions)): Typography; export type Shadows = [ 'none', string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string ]; export declare const shadows: Shadows; export interface ZIndex { mobileStepper: number; fab: number; speedDial: number; appBar: number; drawer: number; modal: number; snackbar: number; tooltip: number; } export declare const zIndex: ZIndex; export interface Easing { easeInOut: string; easeOut: string; easeIn: string; sharp: string; } export interface Duration { shortest: number; shorter: number; short: number; standard: number; complex: number; enteringScreen: number; leavingScreen: number; } export interface Transitions { easing: Easing; duration: Duration; create: (props: string | string[], options?: { duration?: number; easing?: string; delay?: number; }) => string; getAutoHeightDuration: (height: number) => number; } export interface TransitionsOptions { easing?: Partial; duration?: Partial; } /** * createTransitions - 对应 MUI createTransitions.js * @param inputTransitions - 过渡配置选项 */ export declare function createTransitions(inputTransitions?: TransitionsOptions): Transitions; export interface Breakpoints { keys: ('xs' | 'sm' | 'md' | 'lg' | 'xl')[]; values: { xs: number; sm: number; md: number; lg: number; xl: number; }; up: (key: 'xs' | 'sm' | 'md' | 'lg' | 'xl') => string; down: (key: 'xs' | 'sm' | 'md' | 'lg' | 'xl') => string; between: (start: 'xs' | 'sm' | 'md' | 'lg' | 'xl', end: 'xs' | 'sm' | 'md' | 'lg' | 'xl') => string; only: (key: 'xs' | 'sm' | 'md' | 'lg' | 'xl') => string; } export declare function createBreakpoints(): Breakpoints; export interface Shape { borderRadius: number; } export declare const shape: Shape; export type SpacingArgument = number | string; export type SpacingFunction = (...args: SpacingArgument[]) => string; export declare function createSpacing(spacingInput?: number): SpacingFunction; export interface ToolbarMixin { minHeight: number; [key: string]: any; } export interface Mixins { toolbar: ToolbarMixin; [key: string]: any; } export interface MixinsOptions { toolbar?: Partial; [key: string]: any; } /** * createMixins - 对应 MUI createMixins.js * @param breakpoints - 断点对象 * @param mixins - 混入配置选项 */ export declare function createMixins(breakpoints: Breakpoints, mixins?: MixinsOptions): Mixins; export interface ColorScheme { palette: Palette; } export interface Theme { palette: Palette; typography: Typography; shadows: Shadows; transitions: Transitions; breakpoints: Breakpoints; zIndex: ZIndex; shape: Shape; spacing: SpacingFunction; mixins: Mixins; components?: Record; alpha: typeof alpha; lighten: typeof lighten; darken: typeof darken; emphasize: typeof emphasize; contrastColor: typeof contrastColor; colorMix: typeof colorMix; colorSchemes?: { light?: ColorScheme; dark?: ColorScheme; }; cssVariables?: boolean; unstable_sx?: (props: Record) => Record; vars?: Record; } export interface ThemeOptions { palette?: PaletteOptions; typography?: TypographyOptions | ((palette: Palette) => TypographyOptions); shape?: Partial; breakpoints?: Partial; zIndex?: Partial; spacing?: number; transitions?: TransitionsOptions; mixins?: MixinsOptions; components?: Record; colorSchemes?: { light?: { palette?: PaletteOptions; }; dark?: { palette?: PaletteOptions; }; }; cssVariables?: boolean; } export declare function createTheme(options?: ThemeOptions): Theme; export declare const defaultTheme: Theme; export declare const colors: { common: { black: string; white: string; }; grey: { 50: string; 100: string; 200: string; 300: string; 400: string; 500: string; 600: string; 700: string; 800: string; 900: string; A100: string; A200: string; A400: string; A700: string; }; purple: { 50: string; 100: string; 200: string; 300: string; 400: string; 500: string; 600: string; 700: string; 800: string; 900: string; A100: string; A200: string; A400: string; A700: string; }; red: { 50: string; 100: string; 200: string; 300: string; 400: string; 500: string; 600: string; 700: string; 800: string; 900: string; A100: string; A200: string; A400: string; A700: string; }; orange: { 50: string; 100: string; 200: string; 300: string; 400: string; 500: string; 600: string; 700: string; 800: string; 900: string; A100: string; A200: string; A400: string; A700: string; }; blue: { 50: string; 100: string; 200: string; 300: string; 400: string; 500: string; 600: string; 700: string; 800: string; 900: string; A100: string; A200: string; A400: string; A700: string; }; lightBlue: { 50: string; 100: string; 200: string; 300: string; 400: string; 500: string; 600: string; 700: string; 800: string; 900: string; A100: string; A200: string; A400: string; A700: string; }; green: { 50: string; 100: string; 200: string; 300: string; 400: string; 500: string; 600: string; 700: string; 800: string; 900: string; A100: string; A200: string; A400: string; A700: string; }; }; export default createTheme; //# sourceMappingURL=index.d.ts.map