// Undercooked palette (phase 07, task 01). // // The canvas half of app/static/assets/palette.css: the same hex values, // re-exported for the 2D renderer, so a tint in the HUD and a tint on // the floor can never disagree. tests/unit/test_assets.py asserts the two // files agree in both directions; edit one and the build fails until the // other follows. No bundler, no framework, no remote import (A10/A12). export const DEFAULT_PALETTE = Object.freeze({ cook1: "#e0533d", cook2: "#3d84a8", cook3: "#7da84b", cook4: "#b0699a", danger: "#ff5a4e", hot: "#ffa63d", ready: "#67d16c", dirty: "#9a8f7a", }); // Okabe-Ito (colourblind-safe, deutan/protan) cook colours: the // [data-palette="cb"] block of the CSS, the same semantics. export const COLORBLIND_PALETTE = Object.freeze({ ...DEFAULT_PALETTE, cook1: "#d55e00", cook2: "#0072b2", cook3: "#009e73", cook4: "#cc79a7", }); /** The four seat colours, in seat order (index 0 is seat 1). */ export const COOK_COLORS = Object.freeze([ DEFAULT_PALETTE.cook1, DEFAULT_PALETTE.cook2, DEFAULT_PALETTE.cook3, DEFAULT_PALETTE.cook4, ]); /** The seat colours under [data-palette="cb"], in seat order. */ export const COOK_COLORS_COLORBLIND = Object.freeze([ COLORBLIND_PALETTE.cook1, COLORBLIND_PALETTE.cook2, COLORBLIND_PALETTE.cook3, COLORBLIND_PALETTE.cook4, ]); /** The semantic state colours shared by the HUD and the canvas. */ export const SEMANTIC = Object.freeze({ danger: DEFAULT_PALETTE.danger, hot: DEFAULT_PALETTE.hot, ready: DEFAULT_PALETTE.ready, dirty: DEFAULT_PALETTE.dirty, });