From 0f343c606e98e28549e97e487da9652b6f2f6687 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=B6=9B?= Date: Mon, 13 Jan 2025 13:55:48 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=9D=E8=AF=95=E9=87=8D=E6=96=B0=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E9=85=8D=E8=89=B2=E6=96=B9=E6=A1=88=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/color-q-scheme.ts | 46 +++++++++++++++++++++++++++++++++++++ src/material-2-scheme.ts | 16 +++++++++++++ src/material-3-scheme.ts | 49 ++++++++++++++++++++++++++++++++++++++++ src/models.ts | 12 ++++++++++ 4 files changed, 123 insertions(+) create mode 100644 src/color-q-scheme.ts create mode 100644 src/material-2-scheme.ts create mode 100644 src/material-3-scheme.ts diff --git a/src/color-q-scheme.ts b/src/color-q-scheme.ts new file mode 100644 index 0000000..c383031 --- /dev/null +++ b/src/color-q-scheme.ts @@ -0,0 +1,46 @@ +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; +}; diff --git a/src/material-2-scheme.ts b/src/material-2-scheme.ts new file mode 100644 index 0000000..a056874 --- /dev/null +++ b/src/material-2-scheme.ts @@ -0,0 +1,16 @@ +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; +}; diff --git a/src/material-3-scheme.ts b/src/material-3-scheme.ts new file mode 100644 index 0000000..e4038bb --- /dev/null +++ b/src/material-3-scheme.ts @@ -0,0 +1,49 @@ +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; +}; diff --git a/src/models.ts b/src/models.ts index df75921..aac3c5e 100644 --- a/src/models.ts +++ b/src/models.ts @@ -20,3 +20,15 @@ export type ColorDescription = { lab: [number, number, number]; oklch: [number, number, number]; }; + +export type SchemeType = 'color_q' | 'material_2' | 'material_3'; +export type SchemeColor = string | null; +export type SchemeContent = { + id: string; + name: string; + createdAt: string; + description: string | null; + type: SchemeType; + lightScheme: Scheme; + darkScheme: Scheme; +};