Token导航 LogoToken导航TokenDH.com
研究检索只读github未标认证来源可访问许可证需确认审计异常

color-expert色彩专家

Agent Skill

color-expert 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

10,690

周安装

441

GitHub Stars

437

下载量

3,493
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:color-expert(色彩专家)
来源仓库:https://github.com/meodai/skill.color-expert
仓库路径:skills/color-expert
安装命令:
npx skills add https://github.com/meodai/skill.color-expert --skill color-expert
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/meodai/skill.color-expert --skill color-expert

简介

color-expert 提供全面的色彩科学知识库,涵盖色彩空间选择、视觉均匀性与 CSS 应用策略。

  • 推荐 OKLCH 作为主工作空间,强调感知一致性优于传统 RGB/HSL 方案。
  • 适用于设计师、开发者构建跨模式(明暗/高对比)的色彩系统。
  • 使用前建议查阅 references/INDEX.md 获取 140+ 详细参考资料以深入理解原理。
  • 适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。

SKILL.md

Color Expert

A comprehensive knowledge base for color-related work. See references/INDEX.md for 140+ detailed reference files; this skill file contains the essential knowledge to answer most questions directly.

Color Spaces — What to Use When

TaskUseWhy
Perceptual color manipulationOKLCHBest uniformity for lightness, chroma, hue. Fixes CIELAB's blue problem.
CSS gradients & palettesOKLCH or color-mix(in oklab)No mid-gradient darkening like RGB/HSL
Gamut-aware color pickingOKHSL / OKHSVOttosson's picker spaces — cylindrical like HSL but perceptually grounded
Normalized saturation (0-100%)HSLuvCIELUV chroma normalized per hue/lightness. HPLuv for pastels.
Print workflowsCIELAB D50ICC standard illuminant
Screen workflowsCIELAB D65 or OKLABD65 = screen standard
Cross-media appearance matchingCAM16 / CIECAM02Accounts for surround, adaptation, luminance, and viewing conditions
HDRJzazbz / ICtCpDesigned for extended dynamic range
Pigment/paint mixing simulationKubelka-Munk (Spectral.js, Mixbox)Spectral reflectance mixing, not RGB averaging
Color difference (precision)CIEDE2000Gold standard perceptual distance
Color difference (fast)Euclidean in OKLABGood enough for most applications
Video/image compressionYCbCrLuma+chroma separation enables chroma subsampling

Understanding HSL's Limitations

HSL isn't "bad" — it's a simple, fast geometric rearrangement of RGB into a cylinder. It's fine for quick color picking and basic UI work. But its three channels don't correspond to human perception:

  • Lightness (L): fully saturated yellow (hsl(60,100%,50%)) and fully saturated blue (hsl(240,100%,50%)) have the same L=50% but vastly different perceived brightness. L is a mathematical average, not a perceptual measurement.
  • Hue (H): non-uniform spacing. A 20° shift near red produces a dramatic change; the same 20° near green is barely visible. The green region is compressed, reds are stretched.
  • Saturation (S): doesn't correlate with perceived saturation. A color can have S=100% and still look muted (e.g., dark saturated blue).

When HSL is fine: simple color pickers, quick CSS tweaks, situations where perceptual accuracy doesn't matter.

When to use something better:

  • Generating palettes or scales → OKLCH (uniform lightness across hues)
  • Creating gradients → OKLAB or color-mix(in oklab) (no mid-gradient darkening)
  • Gamut-aware picking with HSL-like UX → OKHSL (Ottosson's perceptual HSL)
  • Normalized saturation 0–100% → HSLuv (CIELUV-based, no out-of-bounds)

Named Hue (HSL/HSV) Ranges

Use these degree ranges when generating or constraining colors by hue name. Source: random-display-p3-color by mrmrs / mrmrs.cc.

NameDegrees
red345–360, 0–15
orange15–45
yellow45–70
green70–165
cyan165–195
blue195–260
purple260–310
pink310–345
warm0–70
cool165–310

Key Distinctions

  • Chroma = colorfulness relative to a same-lightness neutral reference
  • Saturation = perceived colorfulness relative to the color's own brightness
  • Lightness = perceived reflectance relative to a similarly lit white
  • Brightness = perceived intensity of light coming from a stimulus
  • Same chroma ≠ same saturation. These are different dimensions.

Implementation Guidance — Code and CSS

When using colors in a program or CSS, add a semantic layer between raw color values and UI roles.

The examples below are pseudocode, not literal CSS requirements. They express the decision structure an agent should preserve even if the target stack uses different syntax.

Across CSS, JS/TS, Swift, design-token JSON, templates, or pseudocode, default to the same structure:

  • Reference tokens/palette values for concrete colors
  • Semantic tokens/roles that map meaning onto those colors
  • Component usage that consumes semantic tokens rather than raw literals

Raw color literals should usually appear only in palette/reference definitions, conversions, diagnostics, or deliberately one-off examples.

  • Use reference tokens for concrete colors: ref.red = #f00
  • Use semantic tokens for meaning/role: semantic.warning = ref.red
  • Prefer semantic tokens in components so themes can swap meaning without rewriting component code.
  • This default applies in any language; translate to the target system's equivalent alias/reference mechanism (CSS custom properties, Swift enums, design-token JSON, etc.).
  • Encode color decisions when possible instead of freezing one manual choice into a literal.

Pseudocode examples:

  • ref.red:= closest('red', generatedPalette)
  • semantic.warning:= ref.red
  • semantic.onSurface:= mostReadableOn(surface)

Good pattern: palette/reference tokens define available colors; semantic tokens map those colors to roles like surface, text, accent, success, warning, and danger.

If a system can derive a decision from constraints, encode that derivation. Examples: nearest named hue in a generated palette, foreground chosen by APCA/WCAG target, hover state computed from the base token in OKLCH instead of hand-picking a second unrelated hex.

For larger systems, prefer a token graph over a flat token dump: references, semantic roles, derived functions, and scope inheritance. This makes theme changes, accessibility guarantees, and multi-platform export auditable and easier to maintain.

Accessibility — Key Numbers

Of ~281 trillion hex color pairs (research by @mrmrs_, computed via a Rust brute-force run):

Threshold% passingOdds
WCAG 3:1 (large text)26.49%~1 in 4
WCAG 4.5:1 (AA body text)11.98%~1 in 8
WCAG 7:1 (AAA)3.64%~1 in 27
APCA 607.33%~1 in 14
APCA 75 (fluent reading)1.57%~1 in 64
APCA 90 (preferred body)0.08%~1 in 1,250

APCA is far more restrictive than WCAG at comparable readability. At APCA 90, only 239 billion of 281 trillion pairs work. JPEG compression exploits the same biology: chroma subsampling (4× less color data) is invisible because human vision resolves brightness at higher resolution than color.

Color Harmony — What Actually Works

Hue-first harmony is a weak standalone heuristic

Complementary, triadic, tetradic intervals are weak predictors of mood, legibility, or accessibility on their own. Every hue plane has a different shape in perceptual space, so geometric hue intervals do not guarantee perceptual balance.

Character-first harmony works (Ellen Divers' research)

Organize by character (pale/muted/deep/vivid/dark), not hue. Finding: hue is usually a weaker predictor of emotional response than chroma and lightness — a muted palette often reads as calm across many hues. Relaxed vs intense is driven more by chroma + lightness than hue alone.

Legibility = lightness variation

Grayscale is a quick sanity check for lightness separation, not an accessibility proof. You still need to verify contrast with WCAG/APCA and consider text size, weight, polarity, and CVD. Same character + varied lightness is often more readable. Same lightness regardless of hue is usually illegible.

The 60-30-10 rule

60% dominant color, 30% secondary, 10% accent. One color dominates to prevent "three equally-sized gorillas fighting."

Pigment Mixing — Not What You Think

  • Pigment mixing is not well described by the simple subtractive model alone — "integrated mixing" (Küppers/Briggs) is a better practical description. It behaves like a compromise between subtractive and additive averaging.
  • CMY mixing paths curve outward (retain chroma = vivid secondaries) — "extroverted octopus"
  • RGB mixing paths curve inward (lose chroma = dull browns) — "introverted octopus"
  • Mixing is non-linear: proportion of paint ≠ proportional hue change. You "turn a corner" at certain ratios.
  • Blue→yellow is a LONG road, red→yellow is SHORT. Traditional wheel massively misrepresents distances.
  • Tinting strength varies: blues are concentrated/strong, yellows are weak.
  • White doesn't just lighten — it shifts hue AND kills chroma.
  • For spectral/K-M mixing in code: use Spectral.js (open source) or Mixbox (commercial).

Color Temperature

  • Temperature ≠ hue — it's a systematic shift of BOTH hue AND saturation, dependent on starting hue
  • Spectral bias: which end of the spectrum a light favors (short λ = cool, long λ = warm)
  • Cool daylight: blue atmospheric scatter fills shadows; paint neutral highlights, blue shadows
  • Warm incandescent: favors long wavelengths including infrared (literally felt as heat)
  • Green and purple do not map cleanly to warm/cool in the same way as red-orange or blue-cyan; perceived temperature depends strongly on context

Color Naming — Multiple Systems for Different Registers

SystemRegisterExample
ISCC-NBSScientific precision"vivid yellowish green"
MunsellSystematic notation"5GY 7/10"
XKCDCommon perception"ugly yellow", "hospital green"
Traditional JapaneseCultural/poetic"wasurenagusa-iro" (forget-me-not)
RALIndustrial reproducibilityRAL 5002
Ridgway (1912)Ornithological1,115 named colors, public domain
CSS Named ColorsWeb standard147 named colors
color-description libEmotional adjectives"pale, delicate, glistening"

Use color-name-lists npm package for 18 naming systems in one import.

Historical Corrections

  • Moses Harris (1769) was first to place RYB at equal 120° — Newton, Boutet, Schiffermüller didn't. His own wheel needed a 4th pigment. The origin of bad color theory.
  • Von Bezold (1874) killed "indigo" as a spectral color — Newton's "blue" ≈ modern cyan, Newton's "indigo" ≈ modern blue.
  • The word "magenta" wasn't used for the subtractive primary until 1907 (Carl Gustav Zander). Before: "pink" (Benson 1868), "crimson," "purpur."
  • Amy Sawyer (1911) patented a CMY wheel (primrose/rose/turquoise) decades before it became mainstream.
  • Elizabeth Lewis (1931) married trichromatic + opponent process on one wheel, anticipating CIE Lab by 30 years.

Recommended Tools

Palette Generation (actual algorithms, not pre-made swatches)

Note: coolors.co does not generate palettes — it picks randomly from 7,821 pre-made palettes hardcoded in its JS bundle.

  • RampenSau — hue cycling + easing, color space agnostic
  • Poline — anchor points + per-axis position functions (1.2K stars); ships a <poline-palette> web component for interactive controls
  • pro-color-harmonies — adaptive OKLCH harmony, muddy-zone avoidance, 4 styles × 4 modifiers
  • dittoTones — extract Tailwind/Radix "perceptual DNA", apply to your hue
  • FarbVelo — random palettes with dark→light structure
  • IQ Cosine Formulacolor(t) = a + b*cos(2π(c*t+d)), 12 floats = infinite palette

Palette Analysis & Linting

  • Color Buddy — 38 lint rules (WCAG, CVD, distinctness, fairness, affect)
  • Censor — Rust CLI, CAM16UCS analysis, 20+ viz widgets
  • Color Palette Shader — WebGL2 Voronoi, 30+ color models, 11 distance metrics
  • PickyPalette — interactive sculpting on color space canvas

Color Libraries (code)

  • Culori — 30 spaces, 10 distance metrics, gamut mapping, CVD sim
  • @texel/color — 5–125× faster than Color.js, minimal, for real-time
  • Spectral.js — open-source K-M pigment mixing (blue+yellow=green)
  • RYBitten — RGB↔RYB with 26 historical color cubes
  • colorgram — 1 kB image palette extraction; 64-bucket HLS+luminance quantization, ~15 ms for 340×340, fixed memory
  • Art Palette — JS palette extraction from ImageData + Python/TensorFlow perceptual palette embeddings for search-by-color (Google Arts & Culture, Apache 2.0)
  • random-display-p3-color — generate random Display P3 colors constrained by named hue/saturation/lightness, zero deps, ESM (by mrmrs / mrmrs.cc)

Key Online Tools

  • oklch.com — OKLCH picker
  • Huetone — accessible color system builder (LCH/OKLCH), by Ardov
  • Ardov Color Lab — gamut mapping playground, P3 space explorer, harmony generator, 3D color space visualizations, themer (lab.ardov.me)
  • Components.ai Color Scale — parametric scale generator: 6 spaces, 4 curve methods, WCAG contrast (by mrmrs / mrmrs.cc)
  • View Color — real-time analysis, WCAG + APCA, CVD preview
  • APCA Calculator — apcacontrast.com

Deep References

See references/INDEX.md for the detailed files organized as:

  • historical/ — Ostwald, Helmholtz, Bezold, Ridgway 1912, ISCC-NBS, Munsell, Albers, Caravaggio's pigments, Moses Harris, Lewis/Ladd-Franklin
  • contemporary/ — Ottosson's OKLAB articles, Briggs lectures, Fairchild, Hunt, CIECAM02, MacAdam ellipses, Koenderink 2026 empirical 3D metric field (RGB supports ~1,000 qualitative regions; cool side coarser than warm; chromatic circle is not well-tempered), Pointer's gamut, CIE 1931/standard observer, Pixar Color Science, Acerola, Juxtopposed, Computerphile, bird tetrachromacy, OLO, GenColor paper. Full scrapes: huevaluechroma.com and colorandcontrast.com
  • techniques/ — All tools above documented in detail, plus: CSS Color 4/5, ICC workflows, Tyler Hobbs generative color, Harvey Rayner Fontana approach, Goethe edge colors as design hack, mattdesl workshop + K-M simplex, CSS-native generation, IQ cosine presets, Erika Mulvenna interview, Bruce Lindbloom math reference, image extraction tools, Aladdin color analysis

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

36.78%
按下载量换算1,285

Claude

32.71%
按下载量换算1,143

Cursor

18.02%
按下载量换算629

Gemini CLI

10.08%
按下载量换算352

安全审计

Gen Agent Trust Hub

未通过

Socket

通过

Snyk

通过

权限和风险

只读

该 Skill 主要提供规则、说明或参考内容,本身偏只读;真正读写文件、联网或执行命令仍取决于宿主 Agent 的任务。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills