78 lines
1.8 KiB
JavaScript
78 lines
1.8 KiB
JavaScript
/**
|
|
* OpenQode Theme Engine (Vibe Upgrade)
|
|
* Defines color palettes for TUI theming
|
|
*/
|
|
|
|
export const THEMES = {
|
|
dracula: {
|
|
name: 'Dracula',
|
|
description: 'Classic dark purple theme',
|
|
primary: 'magenta',
|
|
secondary: 'cyan',
|
|
accent: 'green',
|
|
text: 'white',
|
|
muted: 'gray',
|
|
background: 'black',
|
|
success: 'green',
|
|
warning: 'yellow',
|
|
error: 'red',
|
|
border: 'gray'
|
|
},
|
|
monokai: {
|
|
name: 'Monokai',
|
|
description: 'Warm orange and green',
|
|
primary: 'yellow',
|
|
secondary: 'green',
|
|
accent: 'magenta',
|
|
text: 'white',
|
|
muted: 'gray',
|
|
background: 'black',
|
|
success: 'green',
|
|
warning: 'yellow',
|
|
error: 'red',
|
|
border: 'yellow'
|
|
},
|
|
nord: {
|
|
name: 'Nord',
|
|
description: 'Cool blue arctic palette',
|
|
primary: 'blue',
|
|
secondary: 'cyan',
|
|
accent: 'white',
|
|
text: 'white',
|
|
muted: 'gray',
|
|
background: 'black',
|
|
success: 'cyan',
|
|
warning: 'yellow',
|
|
error: 'red',
|
|
border: 'blue'
|
|
},
|
|
matrix: {
|
|
name: 'Matrix',
|
|
description: 'Hacker green on black',
|
|
primary: 'green',
|
|
secondary: 'green',
|
|
accent: 'green',
|
|
text: 'green',
|
|
muted: 'gray',
|
|
background: 'black',
|
|
success: 'green',
|
|
warning: 'green',
|
|
error: 'red',
|
|
border: 'green'
|
|
}
|
|
};
|
|
|
|
/** Get theme by ID */
|
|
export const getTheme = (themeId) => {
|
|
return THEMES[themeId] || THEMES.dracula;
|
|
};
|
|
|
|
/** Get all theme names for picker */
|
|
export const getThemeNames = () => {
|
|
return Object.entries(THEMES).map(([id, theme]) => ({
|
|
id,
|
|
name: theme.name,
|
|
description: theme.description
|
|
}));
|
|
};
|