与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 SchemeSet = {
primary: SchemeColor;
primaryVariant: SchemeColor;
onPrimary: SchemeColor;
secondary: SchemeColor;
secondaryVariant: SchemeColor;
onSecondary: SchemeColor;
background: SchemeColor;
onBackground: SchemeColor;
surface: SchemeColor;
onSurface: SchemeColor;
error: SchemeColor;
onError: SchemeColor;
export type ColorSet = {
root: string;
variant: string;
on: string;
};
export type Baseline = {
primary: ColorSet;
secondary: ColorSet;
error: ColorSet;
background: ColorSet;
surface: ColorSet;
shadow: ColorSet;
custom_colors: Record<string, ColorSet>;
};
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 SchemeSet = {
primary: SchemeColor;
onPrimary: SchemeColor;
primaryContainer: SchemeColor;
onPrimaryContainer: SchemeColor;
primaryFixed: SchemeColor;
onPrimaryFixed: SchemeColor;
primaryFixedDim: SchemeColor;
onPrimaryFixedVaraint: SchemeColor;
secondary: SchemeColor;
onSecondary: SchemeColor;
secondaryContainer: SchemeColor;
onSecondaryContainer: SchemeColor;
secondaryFixed: SchemeColor;
onSecondaryFixed: SchemeColor;
secondaryFixedDim: SchemeColor;
onSecondaryFixedVaraint: SchemeColor;
tertiary: SchemeColor;
onTertiary: SchemeColor;
tertiaryContainer: SchemeColor;
onTertiaryContainer: SchemeColor;
tertiaryFixed: SchemeColor;
onTertiaryFixed: SchemeColor;
tertiaryFixedDim: SchemeColor;
onTertiaryFixedVaraint: SchemeColor;
error: SchemeColor;
onError: SchemeColor;
errorContainer: SchemeColor;
onErrorContainer: SchemeColor;
surface: SchemeColor;
surfaceDim: SchemeColor;
surfaceBright: SchemeColor;
onSurface: SchemeColor;
onSurfaceVariant: SchemeColor;
surfaceContainerLowest: SchemeColor;
surfaceContainerLow: SchemeColor;
surfaceContainer: SchemeColor;
surfaceContainerHigh: SchemeColor;
surfaceContainerHighest: SchemeColor;
inverseSurface: SchemeColor;
onInverseSurface: SchemeColor;
inversePrimary: SchemeColor;
outline: SchemeColor;
outlineVariant: SchemeColor;
scrim: SchemeColor;
shadow: SchemeColor;
export type ColorSet = {
root: string;
on_root: string;
container: string;
on_container: string;
fixed: string;
fixed_dim: string;
on_fixed: string;
fixed_variant: string;
inverse: string;
};
export type Surface = {
root: string;
dim: string;
bright: string;
container: string;
container_lowest: string;
container_low: string;
container_high: string;
container_highest: string;
on_root: string;
on_root_variant: string;
inverse: string;
on_inverse: string;
};
export type Baseline = {
primary: ColorSet;
secondary: ColorSet;
tertiary: ColorSet;
error: ColorSet;
surface: Surface;
outline: string;
outline_variant: string;
scrim: string;
shadow: string;
customs: Record<string, ColorSet>;
};
export type MaterialDesign3Scheme = {
white: string;
black: string;
light_baseline: Baseline;
dark_baseline: Baseline;
};
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];
};
export type SchemeType = 'color_q' | 'material_2' | 'material_3';
export type SchemeColor = string | null;
export type SchemeContent<Scheme> = {
export type SchemeType = 'q_scheme' | 'swatch_scheme' | 'material_2' | 'material_3';
export type SchemeContent<SchemeStorage> = {
id: string;
name: string;
createdAt: string;
description: string | null;
type: SchemeType;
lightScheme: Scheme;
darkScheme: Scheme;
schemeStorage: SchemeStorage;
};
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;
};