/**
 * raw color ramps backing the theme contract. every key here becomes a themed CSS variable, so a step that no
 * style references is dead weight in all three themes — only add one when a style consumes it.
 */
export type Palette = {
	pink: string;
	white: string;
	yellow: string;

	contrast_0: string;
	contrast_25: string;
	contrast_50: string;
	contrast_100: string;
	contrast_200: string;
	contrast_300: string;
	contrast_400: string;
	contrast_500: string;
	contrast_600: string;
	contrast_700: string;
	contrast_800: string;
	contrast_900: string;
	contrast_950: string;
	contrast_975: string;
	contrast_1000: string;

	primary_25: string;
	primary_50: string;
	primary_100: string;
	primary_200: string;
	primary_300: string;
	primary_500: string;
	primary_600: string;
	primary_700: string;
	primary_900: string;

	positive_500: string;

	negative_25: string;
	negative_50: string;
	negative_100: string;
	negative_200: string;
	negative_300: string;
	negative_400: string;
	negative_500: string;
	negative_600: string;
	negative_700: string;
	negative_900: string;
};

// the dark palettes below are their light counterparts mirrored around the midpoint of each ramp — `contrast_0`
// holds what `contrast_1000` holds in light, and so on, so a style written against a step keeps its intent
// across themes. the midpoint (`*_500`) maps to itself. these were generated by that mirroring and are now
// literal, so editing one step no longer silently moves its partner in another theme.

export const LIGHT_PALETTE: Palette = {
	pink: '#EC4899',
	white: '#FFFFFF',
	yellow: '#FFC404',

	contrast_0: '#FFFFFF',
	contrast_25: '#F9FAFB',
	contrast_50: '#EFF2F6',
	contrast_100: '#DCE2EA',
	contrast_200: '#C0CAD8',
	contrast_300: '#A5B2C5',
	contrast_400: '#8798B0',
	contrast_500: '#667B99',
	contrast_600: '#526580',
	contrast_700: '#405168',
	contrast_800: '#313F54',
	contrast_900: '#232E3E',
	contrast_950: '#19222E',
	contrast_975: '#111822',
	contrast_1000: '#000000',

	primary_25: '#F5F9FF',
	primary_50: '#E5F0FF',
	primary_100: '#CCE1FF',
	primary_200: '#A8CCFF',
	primary_300: '#75AFFF',
	primary_500: '#006AFF',
	primary_600: '#0059D6',
	primary_700: '#0048AD',
	primary_900: '#002861',

	positive_500: '#09B35E',

	negative_25: '#FFF5F7',
	negative_50: '#FEE7EC',
	negative_100: '#FDD3DD',
	negative_200: '#FBBBCA',
	negative_300: '#F891A9',
	negative_400: '#F65A7F',
	negative_500: '#E91646',
	negative_600: '#CA123D',
	negative_700: '#A71134',
	negative_900: '#5F071C',
};

export const DARK_PALETTE: Palette = {
	pink: '#EC4899',
	white: '#FFFFFF',
	yellow: '#FFC404',

	contrast_0: '#000000',
	contrast_25: '#111822',
	contrast_50: '#19222E',
	contrast_100: '#232E3E',
	contrast_200: '#313F54',
	contrast_300: '#405168',
	contrast_400: '#526580',
	contrast_500: '#667B99',
	contrast_600: '#8798B0',
	contrast_700: '#A5B2C5',
	contrast_800: '#C0CAD8',
	contrast_900: '#DCE2EA',
	contrast_950: '#EFF2F6',
	contrast_975: '#F9FAFB',
	contrast_1000: '#FFFFFF',

	primary_25: '#001533',
	primary_50: '#001E47',
	primary_100: '#002861',
	primary_200: '#00398A',
	primary_300: '#0048AD',
	primary_500: '#006AFF',
	primary_600: '#4291FF',
	primary_700: '#75AFFF',
	primary_900: '#CCE1FF',

	positive_500: '#09B35E',

	negative_25: '#30030D',
	negative_50: '#430413',
	negative_100: '#5F071C',
	negative_200: '#7F0B26',
	negative_300: '#A71134',
	negative_400: '#CA123D',
	negative_500: '#E91646',
	negative_600: '#F65A7F',
	negative_700: '#F891A9',
	negative_900: '#FDD3DD',
};

export const DIM_PALETTE: Palette = {
	pink: '#EC4899',
	white: '#FFFFFF',
	yellow: '#FFC404',

	contrast_0: '#151D28',
	contrast_25: '#1C2736',
	contrast_50: '#222E3F',
	contrast_100: '#2C3A4E',
	contrast_200: '#394960',
	contrast_300: '#485B75',
	contrast_400: '#586C89',
	contrast_500: '#6F839F',
	contrast_600: '#8D9DB4',
	contrast_700: '#ABB8C9',
	contrast_800: '#C3CDDA',
	contrast_900: '#E2E7EE',
	contrast_950: '#F2F4F8',
	contrast_975: '#F9FAFB',
	contrast_1000: '#FFFFFF',

	primary_25: '#122136',
	primary_50: '#122949',
	primary_100: '#123464',
	primary_200: '#0E4490',
	primary_300: '#0A52B8',
	primary_500: '#0F73FF',
	primary_600: '#4D97FF',
	primary_700: '#80B5FF',
	primary_900: '#D6E7FF',

	positive_500: '#0AC266',

	negative_25: '#3E0915',
	negative_50: '#500B1C',
	negative_100: '#6F0B22',
	negative_200: '#910D2C',
	negative_300: '#BA1239',
	negative_400: '#D81341',
	negative_500: '#EB2452',
	negative_600: '#F76486',
	negative_700: '#F99AB0',
	negative_900: '#FDD8E1',
};
