Spaces:
Running
Running
Download assets/css/palette.css from SeerRay-Lab/DAREBench: direct link, hf CLI and curl.
- Browser
- Download file 8.93 kB
-
https://huggingface.co/spaces/SeerRay-Lab/DAREBench/resolve/main/assets/css/palette.css
- Command line
-
hf download hf://spaces/SeerRay-Lab/DAREBench/assets/css/palette.css
-
curl -L -o palette.css https://huggingface.co/spaces/SeerRay-Lab/DAREBench/resolve/main/assets/css/palette.css
8.93 kB
| /* ========================================================================== | |
| DAREBench homepage: color tokens (light theme only) | |
| -------------------------------------------------------------------------- | |
| Visual source: the paper's Fig. 2 panel colors (1 blue / 2 green / | |
| 3 orange / 4 purple) plus the OpenClaw lobster red. | |
| Method: dataviz color formula. Every DATA token below was checked with the | |
| official validator (validate_palette.js, --mode light) against both page | |
| surfaces, cream #FFF8EC and white #FFFFFF. | |
| Verdicts are in palette.json; the usage rules are summarized below. | |
| RULES FOR CHART AUTHORS | |
| - Marks carry series colors. Labels, values, legends and axis text use ink | |
| tokens, never a series color. | |
| - Color follows the entity, not its rank. Keep the slot order below fixed. | |
| - WARN: the light workload steps (--wl-text-ss, --wl-mm-ss) and | |
| --pareto-muted are below 3:1 on the surface. Any chart that uses them | |
| needs a relief channel: visible direct labels or the table view (every | |
| chart ships a table view anyway). | |
| - Status colors are reserved for state. Always pair them with an icon and | |
| a label. Never use them for a series. | |
| - Labels inside a colored mark use the matching --*-on token, which is the | |
| one that clears 4.5:1. If a fill has no 4.5:1 on-color, put the label | |
| outside the bar end in --ink. | |
| ========================================================================== */ | |
| :root { | |
| color-scheme: light; | |
| /* ---- Surfaces ---------------------------------------------------------- */ | |
| --surface-page: #FFF8EC; /* cream page plane (validator surface #1) */ | |
| --surface-card: #FFFFFF; /* chart cards / figures (validator surface #2) */ | |
| --surface-sunken: #F6ECDA; /* code blocks, table zebra, wells */ | |
| /* ---- Ink (text + cartoon outline) -------------------------------------- | |
| Contrast on cream / white: | |
| ink 14.92 / 15.75, ink-2 7.84 / 8.28, ink-muted 5.89 / 6.22 (all pass AA) */ | |
| --ink: #2B2118; /* primary text, thick cartoon outlines, hard shadows */ | |
| --ink-2: #5A4C3D; /* secondary text */ | |
| --ink-muted: #6B5F50; /* captions, axis tick labels (still >= 4.5:1) */ | |
| --ink-inverse: #FFFFFF; | |
| --outline: var(--ink); | |
| /* ---- Chart chrome (hairlines, recessive) ------------------------------- */ | |
| --chart-grid: #ECE3D3; /* 1px solid gridlines */ | |
| --chart-axis: #CDBFA8; /* 1px baseline / axis rule */ | |
| --chart-ring: var(--surface-card); /* 2px surface ring around dots */ | |
| --chart-gap: var(--surface-card); /* 2px surface gap between touching bars */ | |
| /* ---- Brand: OpenClaw lobster (UI accent, NOT a data color) -------------- */ | |
| --lobster: #EC624A; /* fills, logo, big shapes; ink text on it 4.81:1 */ | |
| --lobster-ink: #B93D27; /* lobster-colored text/links: 5.29 cream / 5.59 white */ | |
| /* ---- Section chrome (from Fig. 2 panels; UI only, NOT data colors) ----- | |
| Contrast: fill vs --ink >= 13.6; sec ink vs its fill >= 4.9; edge vs cream >= 3.27; | |
| white on badge >= 5.17 */ | |
| --sec-blue-fill: #EAF2FD; --sec-blue-edge: #4774CA; --sec-blue-badge: #1455B8; --sec-blue-ink: #1455B8; | |
| --sec-green-fill: #EDF8EA; --sec-green-edge: #578E31; --sec-green-badge: #29793A; --sec-green-ink: #29793A; | |
| --sec-orange-fill: #FDF0E2; --sec-orange-edge: #D86C1F; --sec-orange-badge: #B0520C; --sec-orange-ink: #A94F0A; | |
| --sec-purple-fill: #F1ECFB; --sec-purple-edge: #6F2F9F; --sec-purple-badge: #6C47AD; --sec-purple-ink: #6C47AD; | |
| /* ====================================================================== | |
| DATA COLORS | |
| ====================================================================== */ | |
| /* (a) Deployment: API vs Local. 2 slots, fixed order. | |
| PASS on cream and white: CVD dE 23.7 (deutan), normal dE 31.1, both >= 3:1 */ | |
| --series-api: #7444B4; /* violet, from Fig. 2 panel 4 */ | |
| --series-local: #3C8836; /* green, from Fig. 2 panel 2 */ | |
| --series-api-on: #FFFFFF; /* 6.50:1 */ | |
| --series-local-on:#FFFFFF; /* 4.41:1, so bold >= 14pt only; otherwise label outside the bar in --ink */ | |
| /* (b) Modality: Text vs Multimodal. 2 slots, fixed order. | |
| PASS on cream and white: CVD dE 28.6 (protan), normal dE 31.6, both >= 3:1. | |
| These are the middle steps of the two workload families in (c). */ | |
| --series-text: #4A7AE4; /* blue, from Fig. 2 panel 1 */ | |
| --series-mm: #CC580B; /* orange, from Fig. 2 panel 3 */ | |
| --series-text-on: #FFFFFF; /* 4.04:1, so bold >= 14pt only */ | |
| --series-mm-on: #FFFFFF; /* 4.23:1, so bold >= 14pt only */ | |
| /* (b') Overall = both modalities combined (the leaderboard's aggregate column). | |
| A DELIBERATE NEUTRAL, not a third categorical hue: it must not compete with | |
| text/mm, and every free hue is taken (violet = API, green = local, | |
| raspberry = Pareto, teal = heat ramp, reds/yellows = status). | |
| validate_palette "#4A7AE4,#CC580B,#5B6878" (white and #F3FAFB): | |
| lightness band PASS, CVD PASS (dE 13.6 protan), normal-vision PASS | |
| (dE 21.1), contrast PASS (5.68:1 on white); chroma floor FAIL as expected | |
| for a neutral (C 0.03). Distinct from the text token --ink-2 (1.48:1). */ | |
| --series-overall: #5B6878; | |
| /* (c) Workload groups. 6 slots in a FIXED order: | |
| text-ss, text-ms, text-mt, mm-ss, mm-ms, mm-mt | |
| Composite encoding: hue = modality (blue family / orange family) and | |
| lightness = execution complexity (single-step light, multi-step mid, | |
| multi-step+tools dark), which mirrors the paper's Workload Matrix. | |
| Categorical, adjacent pairs: PASS on both surfaces (worst CVD dE 13.6, | |
| normal dE 15.7). The same holds on all pairs, so scatter and small | |
| multiples are allowed. | |
| WARN: contrast. --wl-text-ss (2.21 cream / 2.33 white) and --wl-mm-ss | |
| (2.28 / 2.41) are below 3:1 and need relief (direct labels or table view). | |
| Each family also PASSES the --ordinal ramp check (monotone L, dL >= 0.06, | |
| hue spread 36 deg). */ | |
| --wl-text-ss: #18B6F2; | |
| --wl-text-ms: #4A7AE4; | |
| --wl-text-mt: #2C45AE; | |
| --wl-mm-ss: #E29805; | |
| --wl-mm-ms: #CC580B; | |
| --wl-mm-mt: #922B01; | |
| /* in-mark label colors (>= 4.5:1 only where noted; else label outside in --ink) */ | |
| --wl-text-ss-on: #2B2118; /* 6.76 */ | |
| --wl-text-mt-on: #FFFFFF; /* 8.17 */ | |
| --wl-mm-ss-on: #2B2118; /* 6.54 */ | |
| --wl-mm-mt-on: #FFFFFF; /* 8.18 */ | |
| /* --wl-text-ms and --wl-mm-ms: best on-color is 4.04 / 4.23, so use only for | |
| bold text >= 14pt (18.66px), otherwise put the label outside the bar */ | |
| /* (d) Sequential heat ramp for leaderboard cells: one hue (teal), light to dark. | |
| Teal is not used by any series, so a heat cell never reads as a modality or | |
| a deployment type. Lightness is monotone and every step gap is >= 0.06. | |
| Full 100-700 ramp: the light end recedes to the surface by design | |
| (sequential), so the ordinal "light-end >= 2:1" check FAILS as expected. | |
| Steps 400-700 used as an ordinal ramp: PASS on both surfaces. The | |
| leaderboard's heat mode uses exactly these four steps (light end 2.16:1 | |
| on white, validate_palette --ordinal PASS). | |
| Always print the number in the cell and show a scale legend, so color never | |
| carries the value alone. */ | |
| --seq-100: #DEFAF7; --seq-100-on: #2B2118; /* 14.34 */ | |
| --seq-200: #B0EBE7; --seq-200-on: #2B2118; /* 11.91 */ | |
| --seq-300: #7EDAD7; --seq-300-on: #2B2118; /* 9.67 */ | |
| --seq-400: #40C2C3; --seq-400-on: #2B2118; /* 7.29 */ | |
| --seq-500: #02A6AD; --seq-500-on: #2B2118; /* 5.29 */ | |
| --seq-600: #0A818B; --seq-600-on: #FFFFFF; /* 4.64 */ | |
| --seq-700: #055F6C; --seq-700-on: #FFFFFF; /* 7.34 */ | |
| /* (e) Pareto emphasis: highlight the frontier, mute everything else. | |
| The highlight is raspberry, a hue no series uses, so it reads the same in | |
| the Text and Multimodal panels. | |
| Highlight alone: PASS (L 0.52, C 0.20, 5.84 cream / 6.16 white). | |
| Highlight vs muted: CVD dE 17.7 (deutan), normal dE 26.9, PASS. The | |
| separation is carried mainly by lightness, which survives CVD. | |
| Expected findings on the muted gray: chroma-floor FAIL (it is a | |
| de-emphasis gray, not a categorical slot) and a contrast WARN | |
| (2.54 cream / 2.68 white), so give muted points hover/focus tooltips | |
| plus the table view. | |
| All-pairs co-occurrence PASS: with (b) {text, mm, pareto-hi}, worst CVD | |
| dE 16.8; with (a) {api, local, pareto-hi}, worst CVD dE 10.1. */ | |
| --pareto-hi: #B51C79; | |
| --pareto-hi-on: #FFFFFF; /* 6.16 */ | |
| --pareto-muted: #A59D92; | |
| --pareto-muted-on:#2B2118; /* 5.88 */ | |
| /* ---- Status (fixed, reserved; always icon + label, never a series) ----- */ | |
| --status-good: #0CA30C; | |
| --status-warning: #FAB219; | |
| --status-serious: #EC835A; | |
| --status-critical: #D03B3B; | |
| --status-good-text:#006300; /* success text on light surfaces */ | |
| } | |