与WASM统一Scheme定义。

This commit is contained in:
徐涛 2025-01-23 15:37:17 +08:00
parent 2a4fb7f043
commit e0d35d279f
6 changed files with 176 additions and 114 deletions

View File

@ -1,46 +0,0 @@
import { SchemeColor } from './models';
export type ColorSetVariant = {
chroma: number;
lightness: number;
};
export type Settings = {
hover: ColorSetVariant;
active: ColorSetVariant;
focus: ColorSetVariant;
disabled: ColorSetVariant;
foregroundRange: [SchemeColor, SchemeColor];
foregroundGeneration: 'fixed' | 'wacg_atuo';
};
export type SchemeSet = {
primary: SchemeColor;
onPrimary: SchemeColor;
secondary: SchemeColor;
onSecondary: SchemeColor;
accent: SchemeColor;
onAccent: SchemeColor;
neutral: SchemeColor;
onNeutral: SchemeColor;
danger: SchemeColor;
onDanger: SchemeColor;
warning: SchemeColor;
onWarning: SchemeColor;
success: SchemeColor;
onSuccess: SchemeColor;
info: SchemeColor;
onInfo: SchemeColor;
border: SchemeColor;
lightenBorder: SchemeColor;
elevation: SchemeColor;
background: SchemeColor;
onBackground: SchemeColor;
inverseBackground: SchemeColor;
onInverseBackground: SchemeColor;
};
export type ColorQScheme = {
scheme: SchemeSet;
setting: Settings;
};

View File

@ -1,16 +1,34 @@
import { SchemeColor } from './models'; export type ColorSet = {
root: string;
export type SchemeSet = { variant: string;
primary: SchemeColor; on: string;
primaryVariant: SchemeColor; };
onPrimary: SchemeColor;
secondary: SchemeColor; export type Baseline = {
secondaryVariant: SchemeColor; primary: ColorSet;
onSecondary: SchemeColor; secondary: ColorSet;
background: SchemeColor; error: ColorSet;
onBackground: SchemeColor; background: ColorSet;
surface: SchemeColor; surface: ColorSet;
onSurface: SchemeColor; shadow: ColorSet;
error: SchemeColor; custom_colors: Record<string, ColorSet>;
onError: SchemeColor; };
export type MaterialDesign2Scheme = {
white: string;
black: string;
light: Baseline;
dark: Baseline;
};
export type MaterialDesign2SchemeSource = {
primary: string;
secondary: string;
error: string;
custom_colors: Record<string, string>;
};
export type Materialdesign2SchemeStorage = {
source: MaterialDesign2SchemeSource;
scheme: MaterialDesign2Scheme;
}; };

View File

@ -1,49 +1,57 @@
import { SchemeColor } from './models'; export type ColorSet = {
root: string;
export type SchemeSet = { on_root: string;
primary: SchemeColor; container: string;
onPrimary: SchemeColor; on_container: string;
primaryContainer: SchemeColor; fixed: string;
onPrimaryContainer: SchemeColor; fixed_dim: string;
primaryFixed: SchemeColor; on_fixed: string;
onPrimaryFixed: SchemeColor; fixed_variant: string;
primaryFixedDim: SchemeColor; inverse: string;
onPrimaryFixedVaraint: SchemeColor; };
secondary: SchemeColor;
onSecondary: SchemeColor; export type Surface = {
secondaryContainer: SchemeColor; root: string;
onSecondaryContainer: SchemeColor; dim: string;
secondaryFixed: SchemeColor; bright: string;
onSecondaryFixed: SchemeColor; container: string;
secondaryFixedDim: SchemeColor; container_lowest: string;
onSecondaryFixedVaraint: SchemeColor; container_low: string;
tertiary: SchemeColor; container_high: string;
onTertiary: SchemeColor; container_highest: string;
tertiaryContainer: SchemeColor; on_root: string;
onTertiaryContainer: SchemeColor; on_root_variant: string;
tertiaryFixed: SchemeColor; inverse: string;
onTertiaryFixed: SchemeColor; on_inverse: string;
tertiaryFixedDim: SchemeColor; };
onTertiaryFixedVaraint: SchemeColor;
error: SchemeColor; export type Baseline = {
onError: SchemeColor; primary: ColorSet;
errorContainer: SchemeColor; secondary: ColorSet;
onErrorContainer: SchemeColor; tertiary: ColorSet;
surface: SchemeColor; error: ColorSet;
surfaceDim: SchemeColor; surface: Surface;
surfaceBright: SchemeColor; outline: string;
onSurface: SchemeColor; outline_variant: string;
onSurfaceVariant: SchemeColor; scrim: string;
surfaceContainerLowest: SchemeColor; shadow: string;
surfaceContainerLow: SchemeColor; customs: Record<string, ColorSet>;
surfaceContainer: SchemeColor; };
surfaceContainerHigh: SchemeColor;
surfaceContainerHighest: SchemeColor; export type MaterialDesign3Scheme = {
inverseSurface: SchemeColor; white: string;
onInverseSurface: SchemeColor; black: string;
inversePrimary: SchemeColor; light_baseline: Baseline;
outline: SchemeColor; dark_baseline: Baseline;
outlineVariant: SchemeColor; };
scrim: SchemeColor;
shadow: SchemeColor; export type MaterialDesign3SchemeSource = {
source: string;
error: string;
custom_colors: Record<string, string>;
};
export type MaterialDesign3SchemeStorage = {
source: MaterialDesign3SchemeSource;
scheme: MaterialDesign3Scheme;
}; };

View File

@ -21,14 +21,17 @@ export type ColorDescription = {
oklch: [number, number, number]; oklch: [number, number, number];
}; };
export type SchemeType = 'color_q' | 'material_2' | 'material_3'; export type SchemeType = 'q_scheme' | 'swatch_scheme' | 'material_2' | 'material_3';
export type SchemeColor = string | null; export type SchemeContent<SchemeStorage> = {
export type SchemeContent<Scheme> = {
id: string; id: string;
name: string; name: string;
createdAt: string; createdAt: string;
description: string | null; description: string | null;
type: SchemeType; type: SchemeType;
lightScheme: Scheme; schemeStorage: SchemeStorage;
darkScheme: Scheme; };
export type ColorShifting = {
chroma: number;
lightness: number;
}; };

63
src/q-scheme.ts Normal file
View File

@ -0,0 +1,63 @@
import { ColorShifting } from './models';
export type ColorSet = {
root: string;
hover: string;
active: string;
focus: string;
disabled: string;
onRoot: string;
onHover: string;
onActive: string;
onFocus: string;
onDisabled: string;
};
export type Baseline = {
primary: ColorSet;
secondary: ColorSet | null;
tertiary: ColorSet | null;
accent: ColorSet | null;
neutral: ColorSet;
danger: ColorSet;
success: ColorSet;
warning: ColorSet;
info: ColorSet;
outline: ColorSet;
foreground: ColorSet;
background: ColorSet;
};
export type QScheme = {
light: Baseline;
dark: Baseline;
};
export type QSchemeSetting = {
hover: ColorShifting;
acitve: ColorShifting;
focus: ColorShifting;
disabled: ColorShifting;
dark_convert: ColorShifting;
expand_method: string;
wacg_follows: string;
};
export type QSchemeSource = {
primary: string;
secondary: string | null;
tertiary: string | null;
accent: string | null;
danger: string;
success: string;
warning: string;
info: string;
foreground: string;
background: string;
setting: QSchemeSetting;
};
export type QSchemeStorage = {
source: QSchemeSource;
scheme: QScheme;
};

16
src/swatch_scheme.ts Normal file
View File

@ -0,0 +1,16 @@
import { SwatchEntry, SwatchSchemeSetting } from './color_functions/color_module';
export type SwatchScheme = {
light: Record<string, string[]>;
dark: Record<string, string[]>;
};
export type SwatchSchemeSource = {
colors: SwatchEntry[];
setting: SwatchSchemeSetting;
};
export type SwatchSchemeStorage = {
source: SwatchSchemeSource;
scheme: SwatchScheme;
};