From fc340f3f74a913a7738898f0d568bf08b0483f50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=B6=9B?= Date: Fri, 7 Feb 2025 09:30:39 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4WACG=E9=80=82=E9=85=8D?= =?UTF-8?q?=E7=AE=97=E6=B3=95=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- color-module/src/schemes/q_style/color_set.rs | 38 +++++---- .../src/schemes/q_style/scheme_setting.rs | 2 + src/color_functions/color_module.d.ts | 73 +++++++++--------- src/color_functions/color_module.js | 9 ++- src/color_functions/color_module_bg.wasm | Bin 697602 -> 697755 bytes src/color_functions/color_module_bg.wasm.d.ts | 72 ++++++++--------- 6 files changed, 105 insertions(+), 89 deletions(-) diff --git a/color-module/src/schemes/q_style/color_set.rs b/color-module/src/schemes/q_style/color_set.rs index c4b1b69..2906797 100644 --- a/color-module/src/schemes/q_style/color_set.rs +++ b/color-module/src/schemes/q_style/color_set.rs @@ -24,29 +24,34 @@ pub struct ColorSet { fn fit_to_wacg(reference: &Oklch, neutral_swatch: &NeutralSwatch, ratio: f32) -> Oklch { let reference_luma = map_oklch_to_luma(reference); - let mut new_target = neutral_swatch.get(reference.l); - let factor: f32 = if reference.l <= 0.5 { 0.01 } else { -0.01 }; let match_wacg = |original: &Oklch, reference: &Luma| { let luma = map_oklch_to_luma(original); luma.relative_contrast(*reference) }; - loop { + let mut fit_contrast = (f32::INFINITY, f32::NEG_INFINITY); + let mut closest_contrast = (f32::INFINITY, f32::NEG_INFINITY); + for scan_lightness in (0..=100).map(|x| x as f32 / 100.0) { + let new_target = neutral_swatch.get(scan_lightness); let contrast_ratio = match_wacg(&new_target, &reference_luma); - if contrast_ratio >= ratio || new_target.l <= 0.0 || new_target.l >= 1.0 { - break; + if (contrast_ratio - ratio).abs() < (closest_contrast.0 - ratio).abs() + && scan_lightness > closest_contrast.1 + { + closest_contrast = (contrast_ratio, scan_lightness); + } + if contrast_ratio >= ratio + && (contrast_ratio - ratio).abs() < (closest_contrast.0 - ratio).abs() + { + fit_contrast = (contrast_ratio, scan_lightness); } - new_target = neutral_swatch.get(if new_target.l + factor <= 0.0 { - 0.0 - } else if new_target.l + factor >= 1.0 { - 1.0 - } else { - new_target.l + factor - }); } - new_target + neutral_swatch.get(if fit_contrast.0 == f32::INFINITY { + closest_contrast.1 + } else { + fit_contrast.1 + }) } impl ColorSet { @@ -84,6 +89,13 @@ impl ColorSet { fit_to_wacg(&focus, neutral_swatch, 7.0), fit_to_wacg(&disabled, neutral_swatch, 7.0), ), + WACGSetting::HighContrast => ( + fit_to_wacg(&root, neutral_swatch, 21.0), + fit_to_wacg(&hover, neutral_swatch, 21.0), + fit_to_wacg(&active, neutral_swatch, 21.0), + fit_to_wacg(&focus, neutral_swatch, 21.0), + fit_to_wacg(&disabled, neutral_swatch, 21.0), + ), }; Self { diff --git a/color-module/src/schemes/q_style/scheme_setting.rs b/color-module/src/schemes/q_style/scheme_setting.rs index b0df721..1577ed5 100644 --- a/color-module/src/schemes/q_style/scheme_setting.rs +++ b/color-module/src/schemes/q_style/scheme_setting.rs @@ -139,6 +139,7 @@ pub enum WACGSetting { Fixed, AutomaticAA, AutomaticAAA, + HighContrast, } impl WACGSetting { @@ -147,6 +148,7 @@ impl WACGSetting { WACGSetting::Fixed => "Fixed".to_string(), WACGSetting::AutomaticAA => "Automatic AA".to_string(), WACGSetting::AutomaticAAA => "Automatic AAA".to_string(), + WACGSetting::HighContrast => "High Contrast".to_string(), } } } diff --git a/src/color_functions/color_module.d.ts b/src/color_functions/color_module.d.ts index 8b366e1..c8db27b 100644 --- a/src/color_functions/color_module.d.ts +++ b/src/color_functions/color_module.d.ts @@ -62,6 +62,7 @@ export enum WACGSetting { Fixed = 0, AutomaticAA = 1, AutomaticAAA = 2, + HighContrast = 3, } export class ColorShifting { free(): void; @@ -181,6 +182,26 @@ export interface InitOutput { readonly mix: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number]; readonly tint: (a: number, b: number, c: number) => [number, number, number, number]; readonly shade: (a: number, b: number, c: number) => [number, number, number, number]; + readonly __wbg_hctdiffference_free: (a: number, b: number) => void; + readonly __wbg_get_hctdiffference_hue: (a: number) => number; + readonly __wbg_set_hctdiffference_hue: (a: number, b: number) => void; + readonly __wbg_get_hctdiffference_chroma: (a: number) => number; + readonly __wbg_set_hctdiffference_chroma: (a: number, b: number) => void; + readonly __wbg_get_hctdiffference_lightness: (a: number) => number; + readonly __wbg_set_hctdiffference_lightness: (a: number, b: number) => void; + readonly __wbg_swatchschemesetting_free: (a: number, b: number) => void; + readonly __wbg_get_swatchschemesetting_amount: (a: number) => number; + readonly __wbg_set_swatchschemesetting_amount: (a: number, b: number) => void; + readonly __wbg_get_swatchschemesetting_min_lightness: (a: number) => number; + readonly __wbg_set_swatchschemesetting_min_lightness: (a: number, b: number) => void; + readonly __wbg_get_swatchschemesetting_max_lightness: (a: number) => number; + readonly __wbg_set_swatchschemesetting_max_lightness: (a: number, b: number) => void; + readonly __wbg_get_swatchschemesetting_include_primary: (a: number) => number; + readonly __wbg_set_swatchschemesetting_include_primary: (a: number, b: number) => void; + readonly __wbg_get_swatchschemesetting_dark_convert: (a: number) => number; + readonly __wbg_set_swatchschemesetting_dark_convert: (a: number, b: number) => void; + readonly color_categories: () => [number, number, number]; + readonly search_color_cards: (a: number, b: number, c: number, d: number) => [number, number, number]; readonly __wbg_rgbdifference_free: (a: number, b: number) => void; readonly __wbg_get_rgbdifference_r: (a: number) => number; readonly __wbg_set_rgbdifference_r: (a: number, b: number) => void; @@ -188,15 +209,6 @@ export interface InitOutput { readonly __wbg_set_rgbdifference_g: (a: number, b: number) => void; readonly __wbg_get_rgbdifference_b: (a: number) => number; readonly __wbg_set_rgbdifference_b: (a: number, b: number) => void; - readonly color_categories: () => [number, number, number]; - readonly search_color_cards: (a: number, b: number, c: number, d: number) => [number, number, number]; - readonly __wbg_hsldifference_free: (a: number, b: number) => void; - readonly __wbg_get_hsldifference_hue: (a: number) => number; - readonly __wbg_set_hsldifference_hue: (a: number, b: number) => void; - readonly __wbg_get_hsldifference_saturation: (a: number) => number; - readonly __wbg_set_hsldifference_saturation: (a: number, b: number) => void; - readonly __wbg_get_hsldifference_lightness: (a: number) => number; - readonly __wbg_set_hsldifference_lightness: (a: number, b: number) => void; readonly __wbg_colorshifting_free: (a: number, b: number) => void; readonly __wbg_get_colorshifting_chroma: (a: number) => number; readonly __wbg_set_colorshifting_chroma: (a: number, b: number) => void; @@ -228,14 +240,23 @@ export interface InitOutput { readonly __wbg_set_oklchdifference_chroma: (a: number, b: number) => void; readonly __wbg_get_oklchdifference_lightness: (a: number) => number; readonly __wbg_set_oklchdifference_lightness: (a: number, b: number) => void; - readonly __wbg_hctdiffference_free: (a: number, b: number) => void; - readonly __wbg_get_hctdiffference_hue: (a: number) => number; - readonly __wbg_set_hctdiffference_hue: (a: number, b: number) => void; - readonly __wbg_get_hctdiffference_chroma: (a: number) => number; - readonly __wbg_set_hctdiffference_chroma: (a: number, b: number) => void; - readonly __wbg_get_hctdiffference_lightness: (a: number) => number; - readonly __wbg_set_hctdiffference_lightness: (a: number, b: number) => void; + readonly __wbg_hsldifference_free: (a: number, b: number) => void; + readonly __wbg_get_hsldifference_hue: (a: number) => number; + readonly __wbg_set_hsldifference_hue: (a: number, b: number) => void; + readonly __wbg_get_hsldifference_saturation: (a: number) => number; + readonly __wbg_set_hsldifference_saturation: (a: number, b: number) => void; + readonly __wbg_get_hsldifference_lightness: (a: number) => number; + readonly __wbg_set_hsldifference_lightness: (a: number, b: number) => void; readonly generate_palette_from_color: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number, number]; + readonly __wbg_mixreversing_free: (a: number, b: number) => void; + readonly __wbg_get_mixreversing_r_factor: (a: number) => number; + readonly __wbg_set_mixreversing_r_factor: (a: number, b: number) => void; + readonly __wbg_get_mixreversing_g_factor: (a: number) => number; + readonly __wbg_set_mixreversing_g_factor: (a: number, b: number) => void; + readonly __wbg_get_mixreversing_b_factor: (a: number) => number; + readonly __wbg_set_mixreversing_b_factor: (a: number, b: number) => void; + readonly __wbg_get_mixreversing_average: (a: number) => number; + readonly __wbg_set_mixreversing_average: (a: number, b: number) => void; readonly series: (a: number, b: number, c: number, d: number) => [number, number, number, number]; readonly tonal_lighten_series: (a: number, b: number, c: number, d: number) => [number, number, number, number]; readonly tonal_darken_series: (a: number, b: number, c: number, d: number) => [number, number, number, number]; @@ -250,31 +271,11 @@ export interface InitOutput { readonly represent_hct: (a: number, b: number) => [number, number, number, number]; readonly hct_to_hex: (a: number, b: number, c: number) => [number, number, number, number]; readonly wacg_relative_contrast: (a: number, b: number, c: number, d: number) => [number, number, number]; - readonly __wbg_mixreversing_free: (a: number, b: number) => void; - readonly __wbg_get_mixreversing_r_factor: (a: number) => number; - readonly __wbg_set_mixreversing_r_factor: (a: number, b: number) => void; - readonly __wbg_get_mixreversing_g_factor: (a: number) => number; - readonly __wbg_set_mixreversing_g_factor: (a: number, b: number) => void; - readonly __wbg_get_mixreversing_b_factor: (a: number) => number; - readonly __wbg_set_mixreversing_b_factor: (a: number, b: number) => void; - readonly __wbg_get_mixreversing_average: (a: number) => number; - readonly __wbg_set_mixreversing_average: (a: number, b: number) => void; readonly __wbg_differ_free: (a: number, b: number) => void; readonly __wbg_get_differ_delta: (a: number) => number; readonly __wbg_set_differ_delta: (a: number, b: number) => void; readonly __wbg_get_differ_percent: (a: number) => number; readonly __wbg_set_differ_percent: (a: number, b: number) => void; - readonly __wbg_swatchschemesetting_free: (a: number, b: number) => void; - readonly __wbg_get_swatchschemesetting_amount: (a: number) => number; - readonly __wbg_set_swatchschemesetting_amount: (a: number, b: number) => void; - readonly __wbg_get_swatchschemesetting_min_lightness: (a: number) => number; - readonly __wbg_set_swatchschemesetting_min_lightness: (a: number, b: number) => void; - readonly __wbg_get_swatchschemesetting_max_lightness: (a: number) => number; - readonly __wbg_set_swatchschemesetting_max_lightness: (a: number, b: number) => void; - readonly __wbg_get_swatchschemesetting_include_primary: (a: number) => number; - readonly __wbg_set_swatchschemesetting_include_primary: (a: number, b: number) => void; - readonly __wbg_get_swatchschemesetting_dark_convert: (a: number) => number; - readonly __wbg_set_swatchschemesetting_dark_convert: (a: number, b: number) => void; readonly __wbindgen_malloc: (a: number, b: number) => number; readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number; readonly __wbindgen_exn_store: (a: number) => void; diff --git a/src/color_functions/color_module.js b/src/color_functions/color_module.js index 5b361b4..d1cbd1f 100644 --- a/src/color_functions/color_module.js +++ b/src/color_functions/color_module.js @@ -1202,12 +1202,13 @@ export const ColorExpand = Object.freeze({ Square: 6, "6": "Square", }); /** - * @enum {0 | 1 | 2} + * @enum {0 | 1 | 2 | 3} */ export const WACGSetting = Object.freeze({ Fixed: 0, "0": "Fixed", AutomaticAA: 1, "1": "AutomaticAA", AutomaticAAA: 2, "2": "AutomaticAAA", + HighContrast: 3, "3": "HighContrast", }); const ColorShiftingFinalization = (typeof FinalizationRegistry === 'undefined') @@ -1732,7 +1733,7 @@ export class SchemeSetting { * @returns {ColorShifting} */ get hover() { - const ret = wasm.__wbg_get_hsldifference_hue(this.__wbg_ptr); + const ret = wasm.__wbg_get_rgbdifference_r(this.__wbg_ptr); return ColorShifting.__wrap(ret); } /** @@ -1747,7 +1748,7 @@ export class SchemeSetting { * @returns {ColorShifting} */ get active() { - const ret = wasm.__wbg_get_hsldifference_saturation(this.__wbg_ptr); + const ret = wasm.__wbg_get_rgbdifference_g(this.__wbg_ptr); return ColorShifting.__wrap(ret); } /** @@ -1762,7 +1763,7 @@ export class SchemeSetting { * @returns {ColorShifting} */ get focus() { - const ret = wasm.__wbg_get_hsldifference_lightness(this.__wbg_ptr); + const ret = wasm.__wbg_get_rgbdifference_b(this.__wbg_ptr); return ColorShifting.__wrap(ret); } /** diff --git a/src/color_functions/color_module_bg.wasm b/src/color_functions/color_module_bg.wasm index 81b7b2578ea7a8fa4a34e9f29348bbb547d6568c..a62dfe789ef09afdf30d5eec978c5eb06c6ebaaa 100644 GIT binary patch delta 33242 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 [number, numb export const mix: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number]; export const tint: (a: number, b: number, c: number) => [number, number, number, number]; export const shade: (a: number, b: number, c: number) => [number, number, number, number]; +export const __wbg_hctdiffference_free: (a: number, b: number) => void; +export const __wbg_get_hctdiffference_hue: (a: number) => number; +export const __wbg_set_hctdiffference_hue: (a: number, b: number) => void; +export const __wbg_get_hctdiffference_chroma: (a: number) => number; +export const __wbg_set_hctdiffference_chroma: (a: number, b: number) => void; +export const __wbg_get_hctdiffference_lightness: (a: number) => number; +export const __wbg_set_hctdiffference_lightness: (a: number, b: number) => void; +export const __wbg_swatchschemesetting_free: (a: number, b: number) => void; +export const __wbg_get_swatchschemesetting_amount: (a: number) => number; +export const __wbg_set_swatchschemesetting_amount: (a: number, b: number) => void; +export const __wbg_get_swatchschemesetting_min_lightness: (a: number) => number; +export const __wbg_set_swatchschemesetting_min_lightness: (a: number, b: number) => void; +export const __wbg_get_swatchschemesetting_max_lightness: (a: number) => number; +export const __wbg_set_swatchschemesetting_max_lightness: (a: number, b: number) => void; +export const __wbg_get_swatchschemesetting_include_primary: (a: number) => number; +export const __wbg_set_swatchschemesetting_include_primary: (a: number, b: number) => void; +export const __wbg_get_swatchschemesetting_dark_convert: (a: number) => number; +export const __wbg_set_swatchschemesetting_dark_convert: (a: number, b: number) => void; +export const color_categories: () => [number, number, number]; +export const search_color_cards: (a: number, b: number, c: number, d: number) => [number, number, number]; export const __wbg_rgbdifference_free: (a: number, b: number) => void; export const __wbg_get_rgbdifference_r: (a: number) => number; export const __wbg_set_rgbdifference_r: (a: number, b: number) => void; @@ -45,15 +65,6 @@ export const __wbg_get_rgbdifference_g: (a: number) => number; export const __wbg_set_rgbdifference_g: (a: number, b: number) => void; export const __wbg_get_rgbdifference_b: (a: number) => number; export const __wbg_set_rgbdifference_b: (a: number, b: number) => void; -export const color_categories: () => [number, number, number]; -export const search_color_cards: (a: number, b: number, c: number, d: number) => [number, number, number]; -export const __wbg_hsldifference_free: (a: number, b: number) => void; -export const __wbg_get_hsldifference_hue: (a: number) => number; -export const __wbg_set_hsldifference_hue: (a: number, b: number) => void; -export const __wbg_get_hsldifference_saturation: (a: number) => number; -export const __wbg_set_hsldifference_saturation: (a: number, b: number) => void; -export const __wbg_get_hsldifference_lightness: (a: number) => number; -export const __wbg_set_hsldifference_lightness: (a: number, b: number) => void; export const __wbg_colorshifting_free: (a: number, b: number) => void; export const __wbg_get_colorshifting_chroma: (a: number) => number; export const __wbg_set_colorshifting_chroma: (a: number, b: number) => void; @@ -85,14 +96,23 @@ export const __wbg_get_oklchdifference_chroma: (a: number) => number; export const __wbg_set_oklchdifference_chroma: (a: number, b: number) => void; export const __wbg_get_oklchdifference_lightness: (a: number) => number; export const __wbg_set_oklchdifference_lightness: (a: number, b: number) => void; -export const __wbg_hctdiffference_free: (a: number, b: number) => void; -export const __wbg_get_hctdiffference_hue: (a: number) => number; -export const __wbg_set_hctdiffference_hue: (a: number, b: number) => void; -export const __wbg_get_hctdiffference_chroma: (a: number) => number; -export const __wbg_set_hctdiffference_chroma: (a: number, b: number) => void; -export const __wbg_get_hctdiffference_lightness: (a: number) => number; -export const __wbg_set_hctdiffference_lightness: (a: number, b: number) => void; +export const __wbg_hsldifference_free: (a: number, b: number) => void; +export const __wbg_get_hsldifference_hue: (a: number) => number; +export const __wbg_set_hsldifference_hue: (a: number, b: number) => void; +export const __wbg_get_hsldifference_saturation: (a: number) => number; +export const __wbg_set_hsldifference_saturation: (a: number, b: number) => void; +export const __wbg_get_hsldifference_lightness: (a: number) => number; +export const __wbg_set_hsldifference_lightness: (a: number, b: number) => void; export const generate_palette_from_color: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number, number]; +export const __wbg_mixreversing_free: (a: number, b: number) => void; +export const __wbg_get_mixreversing_r_factor: (a: number) => number; +export const __wbg_set_mixreversing_r_factor: (a: number, b: number) => void; +export const __wbg_get_mixreversing_g_factor: (a: number) => number; +export const __wbg_set_mixreversing_g_factor: (a: number, b: number) => void; +export const __wbg_get_mixreversing_b_factor: (a: number) => number; +export const __wbg_set_mixreversing_b_factor: (a: number, b: number) => void; +export const __wbg_get_mixreversing_average: (a: number) => number; +export const __wbg_set_mixreversing_average: (a: number, b: number) => void; export const series: (a: number, b: number, c: number, d: number) => [number, number, number, number]; export const tonal_lighten_series: (a: number, b: number, c: number, d: number) => [number, number, number, number]; export const tonal_darken_series: (a: number, b: number, c: number, d: number) => [number, number, number, number]; @@ -107,31 +127,11 @@ export const oklch_to_hex: (a: number, b: number, c: number) => [number, number, export const represent_hct: (a: number, b: number) => [number, number, number, number]; export const hct_to_hex: (a: number, b: number, c: number) => [number, number, number, number]; export const wacg_relative_contrast: (a: number, b: number, c: number, d: number) => [number, number, number]; -export const __wbg_mixreversing_free: (a: number, b: number) => void; -export const __wbg_get_mixreversing_r_factor: (a: number) => number; -export const __wbg_set_mixreversing_r_factor: (a: number, b: number) => void; -export const __wbg_get_mixreversing_g_factor: (a: number) => number; -export const __wbg_set_mixreversing_g_factor: (a: number, b: number) => void; -export const __wbg_get_mixreversing_b_factor: (a: number) => number; -export const __wbg_set_mixreversing_b_factor: (a: number, b: number) => void; -export const __wbg_get_mixreversing_average: (a: number) => number; -export const __wbg_set_mixreversing_average: (a: number, b: number) => void; export const __wbg_differ_free: (a: number, b: number) => void; export const __wbg_get_differ_delta: (a: number) => number; export const __wbg_set_differ_delta: (a: number, b: number) => void; export const __wbg_get_differ_percent: (a: number) => number; export const __wbg_set_differ_percent: (a: number, b: number) => void; -export const __wbg_swatchschemesetting_free: (a: number, b: number) => void; -export const __wbg_get_swatchschemesetting_amount: (a: number) => number; -export const __wbg_set_swatchschemesetting_amount: (a: number, b: number) => void; -export const __wbg_get_swatchschemesetting_min_lightness: (a: number) => number; -export const __wbg_set_swatchschemesetting_min_lightness: (a: number, b: number) => void; -export const __wbg_get_swatchschemesetting_max_lightness: (a: number) => number; -export const __wbg_set_swatchschemesetting_max_lightness: (a: number, b: number) => void; -export const __wbg_get_swatchschemesetting_include_primary: (a: number) => number; -export const __wbg_set_swatchschemesetting_include_primary: (a: number, b: number) => void; -export const __wbg_get_swatchschemesetting_dark_convert: (a: number) => number; -export const __wbg_set_swatchschemesetting_dark_convert: (a: number, b: number) => void; export const __wbindgen_malloc: (a: number, b: number) => number; export const __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number; export const __wbindgen_exn_store: (a: number) => void;