feat: added colors file with all declared theme and primary colors
added hexColorToRBG utility so that we can handle rgba colors using the same variablespull/2521/head
parent
131ee22099
commit
b704b8202d
@ -0,0 +1,168 @@
|
||||
/**
|
||||
* File is TSX so we get color highlighting in VS Code.
|
||||
* Primary color -> Default accent color for a theme
|
||||
*/
|
||||
|
||||
// Colors
|
||||
type Colors = {
|
||||
PRIMARY: {
|
||||
GREEN: string;
|
||||
BLUE: string;
|
||||
YELLOW: string;
|
||||
PINK: string;
|
||||
PURPLE: string;
|
||||
ORANGE: string;
|
||||
RED: string;
|
||||
};
|
||||
DANGER: {
|
||||
LIGHT: string;
|
||||
DARK: string;
|
||||
};
|
||||
PATH: {
|
||||
DEFAULT: string;
|
||||
CONNECTING: string;
|
||||
HOVER: string;
|
||||
};
|
||||
TRANSPARENT: string;
|
||||
};
|
||||
|
||||
// Primary (can override theme default)
|
||||
const primaryGreen = '#31F196';
|
||||
const primaryBlue = '#57C9FA';
|
||||
const primaryYellow = '#FAD657';
|
||||
const primaryPink = '#FF95EF';
|
||||
const primaryPurple = '#C993FF';
|
||||
const primaryOrange = '#FCB159';
|
||||
const primaryRed = '#FF9C8E';
|
||||
|
||||
// Danger
|
||||
const dangerLight = '#E12D19';
|
||||
const dangerDark = '#FF3A3A';
|
||||
|
||||
// Path
|
||||
const pathDefault = primaryGreen;
|
||||
const pathConnecting = primaryOrange;
|
||||
const pathHover = '#EA5545';
|
||||
|
||||
// Transparent
|
||||
const transparent = 'transparent';
|
||||
|
||||
const COLORS: Colors = {
|
||||
PRIMARY: {
|
||||
GREEN: primaryGreen,
|
||||
BLUE: primaryBlue,
|
||||
YELLOW: primaryYellow,
|
||||
PINK: primaryPink,
|
||||
PURPLE: primaryPurple,
|
||||
ORANGE: primaryOrange,
|
||||
RED: primaryRed,
|
||||
},
|
||||
DANGER: {
|
||||
LIGHT: dangerLight,
|
||||
DARK: dangerDark,
|
||||
},
|
||||
PATH: {
|
||||
DEFAULT: pathDefault,
|
||||
CONNECTING: pathConnecting,
|
||||
HOVER: pathHover,
|
||||
},
|
||||
TRANSPARENT: transparent,
|
||||
};
|
||||
|
||||
// Themes
|
||||
type ThemeColors = {
|
||||
PRIMARY: string;
|
||||
COLOR0: string;
|
||||
COLOR1: string;
|
||||
COLOR2: string;
|
||||
COLOR3: string;
|
||||
COLOR4: string;
|
||||
COLOR5: string;
|
||||
COLOR6: string;
|
||||
};
|
||||
type Themes = Record<string, ThemeColors>;
|
||||
|
||||
// Classic Light
|
||||
const classicLightPrimary = '#31F196';
|
||||
const classicLight0 = '#000000';
|
||||
const classicLight1 = '#6D6D6D';
|
||||
const classicLight2 = '#A1A2A1';
|
||||
const classicLight3 = '#DFDFDF';
|
||||
const classicLight4 = '#F0F0F0';
|
||||
const classicLight5 = '#F9F9F9';
|
||||
const classicLight6 = '#FFFFFF';
|
||||
|
||||
// Classic Dark
|
||||
const classicDarkPrimary = '#31F196';
|
||||
const classicDark0 = '#000000';
|
||||
const classicDark1 = '#1B1B1B';
|
||||
const classicDark2 = '#2D2D2D';
|
||||
const classicDark3 = '#414141';
|
||||
const classicDark4 = '#767676';
|
||||
const classicDark5 = '#A1A2A1';
|
||||
const classicDark6 = '#FFFFFF';
|
||||
|
||||
// Ocean Light
|
||||
const oceanLightPrimary = '#57C9FA';
|
||||
const oceanLight0 = '#000000';
|
||||
const oceanLight1 = '#1A1C28';
|
||||
const oceanLight2 = '#252735';
|
||||
const oceanLight3 = '#2B2D40';
|
||||
const oceanLight4 = '#3D4A5D';
|
||||
const oceanLight5 = '#A6A9CE';
|
||||
const oceanLight6 = '#FFFFFF';
|
||||
|
||||
// Ocean Dark
|
||||
const oceanDarkPrimary = '#57C9FA';
|
||||
const oceanDark0 = '#19345D';
|
||||
const oceanDark1 = '#6A6E90';
|
||||
const oceanDark2 = '#5CAACC';
|
||||
const oceanDark3 = '#B3EDF2';
|
||||
const oceanDark4 = '#E7F3F4';
|
||||
const oceanDark5 = '#ECFAFB';
|
||||
const oceanDark6 = '#FCFFFF';
|
||||
|
||||
const THEMES: Themes = {
|
||||
CLASSIC_LIGHT: {
|
||||
PRIMARY: classicLightPrimary,
|
||||
COLOR0: classicLight0,
|
||||
COLOR1: classicLight1,
|
||||
COLOR2: classicLight2,
|
||||
COLOR3: classicLight3,
|
||||
COLOR4: classicLight4,
|
||||
COLOR5: classicLight5,
|
||||
COLOR6: classicLight6,
|
||||
},
|
||||
CLASSIC_DARK: {
|
||||
PRIMARY: classicDarkPrimary,
|
||||
COLOR0: classicDark0,
|
||||
COLOR1: classicDark1,
|
||||
COLOR2: classicDark2,
|
||||
COLOR3: classicDark3,
|
||||
COLOR4: classicDark4,
|
||||
COLOR5: classicDark5,
|
||||
COLOR6: classicDark6,
|
||||
},
|
||||
OCEAN_LIGHT: {
|
||||
PRIMARY: oceanLightPrimary,
|
||||
COLOR0: oceanLight0,
|
||||
COLOR1: oceanLight1,
|
||||
COLOR2: oceanLight2,
|
||||
COLOR3: oceanLight3,
|
||||
COLOR4: oceanLight4,
|
||||
COLOR5: oceanLight5,
|
||||
COLOR6: oceanLight6,
|
||||
},
|
||||
OCEAN_DARK: {
|
||||
PRIMARY: oceanDarkPrimary,
|
||||
COLOR0: oceanDark0,
|
||||
COLOR1: oceanDark1,
|
||||
COLOR2: oceanDark2,
|
||||
COLOR3: oceanDark3,
|
||||
COLOR4: oceanDark4,
|
||||
COLOR5: oceanDark5,
|
||||
COLOR6: oceanDark6,
|
||||
},
|
||||
};
|
||||
|
||||
export { COLORS, THEMES };
|
@ -0,0 +1,21 @@
|
||||
// https://css-tricks.com/converting-color-spaces-in-javascript
|
||||
export function hexColorToRGB(hexColor: string): string {
|
||||
let red = 0;
|
||||
let green = 0;
|
||||
let blue = 0;
|
||||
|
||||
// 3 digits
|
||||
if (hexColor.length === 4) {
|
||||
red = Number(`0x${hexColor[1]}${hexColor[1]}`);
|
||||
green = Number(`0x${hexColor[2]}${hexColor[2]}`);
|
||||
blue = Number(`0x${hexColor[3]}${hexColor[3]}`);
|
||||
|
||||
// 6 digits
|
||||
} else if (hexColor.length === 7) {
|
||||
red = Number(`0x${hexColor[1]}${hexColor[2]}`);
|
||||
green = Number(`0x${hexColor[3]}${hexColor[4]}`);
|
||||
blue = Number(`0x${hexColor[5]}${hexColor[6]}`);
|
||||
}
|
||||
|
||||
return `${red}, ${green}, ${blue}`;
|
||||
}
|
Loading…
Reference in New Issue