42 lines
1.3 KiB
JavaScript
42 lines
1.3 KiB
JavaScript
// Visual themes. `colors` are per-finger, `team` per team (A–D).
|
||
// The high-contrast theme also gives every finger/team its own shape,
|
||
// so nothing depends on telling colours apart.
|
||
|
||
export const SHAPES = ['circle', 'square', 'triangle', 'diamond', 'star', 'hexagon', 'cross', 'pentagon'];
|
||
|
||
export const THEMES = {
|
||
neon: {
|
||
bg: '#05050b',
|
||
glow: 1,
|
||
additive: true,
|
||
shapes: false,
|
||
lineScale: 1,
|
||
spectator: '#4a4a58',
|
||
colors: ['#ff2e63', '#00e5ff', '#ffe500', '#3dff5a', '#b45cff', '#ff8a1f', '#2f6bff', '#ff4fd8', '#00ffb2', '#c8ff00', '#ff5b3a', '#9fb4ff'],
|
||
team: ['#ff2e63', '#00e5ff', '#ffe500', '#3dff5a'],
|
||
},
|
||
pastel: {
|
||
bg: '#1c1a26',
|
||
glow: 0.45,
|
||
additive: false,
|
||
shapes: false,
|
||
lineScale: 1.15,
|
||
spectator: '#4b4858',
|
||
colors: ['#ff9aa2', '#9ee3e0', '#ffd6a5', '#b9f2c4', '#cdb4ff', '#ffc6e7', '#a0c4ff', '#fdffb6', '#f7b0be', '#b8e0d2', '#e2c2ff', '#ffcfa3'],
|
||
team: ['#ff9aa2', '#a0c4ff', '#fdffb6', '#b9f2c4'],
|
||
},
|
||
contrast: {
|
||
bg: '#000000',
|
||
glow: 0,
|
||
additive: false,
|
||
shapes: true,
|
||
lineScale: 1.3,
|
||
spectator: '#6b6b6b',
|
||
colors: ['#ffffff', '#ffd500', '#00d9ff', '#ff4fd8', '#4dff4d', '#ff8c00', '#a98bff', '#ff4545'],
|
||
team: ['#ffd500', '#00d9ff', '#ff4fd8', '#ffffff'],
|
||
},
|
||
};
|
||
|
||
export function getTheme(name) {
|
||
return THEMES[name] || THEMES.neon;
|
||
}
|