mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2024-11-26 17:43:48 +01:00
Merge pull request #2110 from MartinFournier/feature/themes
Add community themes from discord
This commit is contained in:
commit
9ea66e8743
@ -1,3 +1,5 @@
|
|||||||
|
import { IMap } from "../types";
|
||||||
|
|
||||||
export interface ITheme {
|
export interface ITheme {
|
||||||
[key: string]: string | undefined;
|
[key: string]: string | undefined;
|
||||||
primarylight: string;
|
primarylight: string;
|
||||||
@ -35,6 +37,14 @@ export interface ITheme {
|
|||||||
button: string;
|
button: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface IPredefinedTheme {
|
||||||
|
colors: ITheme;
|
||||||
|
name?: string;
|
||||||
|
credit?: string;
|
||||||
|
description?: string;
|
||||||
|
reference?: string;
|
||||||
|
}
|
||||||
|
|
||||||
export const defaultTheme: ITheme = {
|
export const defaultTheme: ITheme = {
|
||||||
primarylight: "#0f0",
|
primarylight: "#0f0",
|
||||||
primary: "#0c0",
|
primary: "#0c0",
|
||||||
@ -71,40 +81,331 @@ export const defaultTheme: ITheme = {
|
|||||||
button: "#333",
|
button: "#333",
|
||||||
};
|
};
|
||||||
|
|
||||||
export interface IPredefinedThemes {
|
export const getPredefinedThemes = (): IMap<IPredefinedTheme> => ({
|
||||||
'Default': ITheme;
|
Default: {
|
||||||
'Monokai': ITheme;
|
colors: defaultTheme,
|
||||||
}
|
},
|
||||||
|
Monokai: {
|
||||||
|
description: "Monokai'ish",
|
||||||
|
colors: {
|
||||||
|
primarylight: "#FFF",
|
||||||
|
primary: "#F8F8F2",
|
||||||
|
primarydark: "#FAFAEB",
|
||||||
|
successlight: "#ADE146",
|
||||||
|
success: "#A6E22E",
|
||||||
|
successdark: "#98E104",
|
||||||
|
errorlight: "#FF69A0",
|
||||||
|
error: "#F92672",
|
||||||
|
errordark: "#D10F56",
|
||||||
|
secondarylight: "#AAA",
|
||||||
|
secondary: "#888",
|
||||||
|
secondarydark: "#666",
|
||||||
|
warninglight: "#E1D992",
|
||||||
|
warning: "#E6DB74",
|
||||||
|
warningdark: "#EDDD54",
|
||||||
|
infolight: "#92E1F1",
|
||||||
|
info: "#66D9EF",
|
||||||
|
infodark: "#31CDED",
|
||||||
|
welllight: "#444",
|
||||||
|
well: "#222",
|
||||||
|
white: "#fff",
|
||||||
|
black: "#000",
|
||||||
|
hp: "#F92672",
|
||||||
|
money: "#E6DB74",
|
||||||
|
hack: "#A6E22E",
|
||||||
|
combat: "#75715E",
|
||||||
|
cha: "#AE81FF",
|
||||||
|
int: "#66D9EF",
|
||||||
|
rep: "#E69F66",
|
||||||
|
disabled: "#66cfbc",
|
||||||
|
backgroundprimary: "#272822",
|
||||||
|
backgroundsecondary: "#1B1C18",
|
||||||
|
button: "#333",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
export const getPredefinedThemes = (): IPredefinedThemes => ({
|
Warmer: {
|
||||||
'Default': defaultTheme,
|
credit: "hexnaught",
|
||||||
'Monokai': {
|
description: "Warmer, softer theme",
|
||||||
...defaultTheme,
|
reference: "https://discord.com/channels/415207508303544321/921991895230611466/921999581020028938",
|
||||||
|
colors: {
|
||||||
|
primarylight: "#EA9062",
|
||||||
|
primary: "#DD7B4A",
|
||||||
|
primarydark: "#D3591C",
|
||||||
|
successlight: "#6ACF6A",
|
||||||
|
success: "#43BF43",
|
||||||
|
successdark: "#3E913E",
|
||||||
|
errorlight: "#C15757",
|
||||||
|
error: "#B34141",
|
||||||
|
errordark: "#752525",
|
||||||
|
secondarylight: "#AAA",
|
||||||
|
secondary: "#888",
|
||||||
|
secondarydark: "#666",
|
||||||
|
warninglight: "#E6E69D",
|
||||||
|
warning: "#DADA56",
|
||||||
|
warningdark: "#A1A106",
|
||||||
|
infolight: "#69f",
|
||||||
|
info: "#36c",
|
||||||
|
infodark: "#039",
|
||||||
|
welllight: "#444",
|
||||||
|
well: "#222",
|
||||||
|
white: "#fff",
|
||||||
|
black: "#000",
|
||||||
|
hp: "#dd3434",
|
||||||
|
money: "#ffd700",
|
||||||
|
hack: "#adff2f",
|
||||||
|
combat: "#faffdf",
|
||||||
|
cha: "#AD84CF",
|
||||||
|
int: "#6495ed",
|
||||||
|
rep: "#faffdf",
|
||||||
|
disabled: "#76C6B7",
|
||||||
|
backgroundprimary: "#000",
|
||||||
|
backgroundsecondary: "#000",
|
||||||
|
button: "#333",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
backgroundprimary: '#272822',
|
"Dark+": {
|
||||||
backgroundsecondary: '#1B1C18',
|
credit: "LoganMD",
|
||||||
primary: '#F8F8F2',
|
description: "VSCode Dark+",
|
||||||
primarylight: '#FFF',
|
reference: "https://discord.com/channels/415207508303544321/921991895230611466/921999975867617310",
|
||||||
primarydark: '#FAFAEB',
|
colors: {
|
||||||
success: '#A6E22E',
|
primarylight: "#E0E0BC",
|
||||||
successlight: '#ADE146',
|
primary: "#CCCCAE",
|
||||||
successdark: '#98E104',
|
primarydark: "#B8B89C",
|
||||||
error: '#F92672',
|
successlight: "#00F000",
|
||||||
errorlight: '#FF69A0',
|
success: "#00D200",
|
||||||
errordark: '#D10F56',
|
successdark: "#00B400",
|
||||||
warning: '#E6DB74',
|
errorlight: "#F00000",
|
||||||
warninglight: '#E1D992',
|
error: "#C80000",
|
||||||
warningdark: '#EDDD54',
|
errordark: "#A00000",
|
||||||
info: '#66D9EF',
|
secondarylight: "#B4AEAE",
|
||||||
infolight: '#92E1F1',
|
secondary: "#969090",
|
||||||
infodark: '#31CDED',
|
secondarydark: "#787272",
|
||||||
|
warninglight: "#F0F000",
|
||||||
|
warning: "#C8C800",
|
||||||
|
warningdark: "#A0A000",
|
||||||
|
infolight: "#69f",
|
||||||
|
info: "#36c",
|
||||||
|
infodark: "#039",
|
||||||
|
welllight: "#444",
|
||||||
|
well: "#222",
|
||||||
|
white: "#fff",
|
||||||
|
black: "#1E1E1E",
|
||||||
|
hp: "#dd3434",
|
||||||
|
money: "#ffd700",
|
||||||
|
hack: "#adff2f",
|
||||||
|
combat: "#faffdf",
|
||||||
|
cha: "#a671d1",
|
||||||
|
int: "#6495ed",
|
||||||
|
rep: "#faffdf",
|
||||||
|
disabled: "#66cfbc",
|
||||||
|
backgroundprimary: "#1E1E1E",
|
||||||
|
backgroundsecondary: "#252525",
|
||||||
|
button: "#333",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
hp: '#F92672',
|
"Mayukai Dark": {
|
||||||
money: '#E6DB74',
|
credit: "Festive Noire",
|
||||||
hack: '#A6E22E',
|
description: "Mayukai Dark-esque",
|
||||||
combat: '#75715E',
|
reference: "https://discord.com/channels/415207508303544321/921991895230611466/922037502334889994",
|
||||||
cha: '#AE81FF',
|
colors: {
|
||||||
int: '#66D9EF',
|
primarylight: "#DDDFC5",
|
||||||
rep: '#E69F66',
|
primary: "#CDCFB6",
|
||||||
}
|
primarydark: "#9D9F8C",
|
||||||
|
successlight: "#00EF00",
|
||||||
|
success: "#00A500",
|
||||||
|
successdark: "#007A00",
|
||||||
|
errorlight: "#F92672",
|
||||||
|
error: "#CA1C5C",
|
||||||
|
errordark: "#90274A",
|
||||||
|
secondarylight: "#AAA",
|
||||||
|
secondary: "#888",
|
||||||
|
secondarydark: "#666",
|
||||||
|
warninglight: "#D3D300",
|
||||||
|
warning: "#cc0",
|
||||||
|
warningdark: "#990",
|
||||||
|
infolight: "#69f",
|
||||||
|
info: "#36c",
|
||||||
|
infodark: "#039",
|
||||||
|
welllight: "#444",
|
||||||
|
well: "#00010A",
|
||||||
|
white: "#fff",
|
||||||
|
black: "#020509",
|
||||||
|
hp: "#dd3434",
|
||||||
|
money: "#ffd700",
|
||||||
|
hack: "#8CCF27",
|
||||||
|
combat: "#faffdf",
|
||||||
|
cha: "#a671d1",
|
||||||
|
int: "#6495ed",
|
||||||
|
rep: "#faffdf",
|
||||||
|
disabled: "#66cfbc",
|
||||||
|
backgroundprimary: "#080C11",
|
||||||
|
backgroundsecondary: "#03080F",
|
||||||
|
button: "#00010A",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
Purple: {
|
||||||
|
credit: "zer0ney",
|
||||||
|
description: "Essentially all defaults except for purple replacing the main colors",
|
||||||
|
reference: "https://discord.com/channels/415207508303544321/921991895230611466/922091815849570395",
|
||||||
|
colors: {
|
||||||
|
primarylight: "#BA55D3",
|
||||||
|
primary: "#9370DB",
|
||||||
|
primarydark: "#8A2BE2",
|
||||||
|
successlight: "#BA55D3",
|
||||||
|
success: "#9370DB",
|
||||||
|
successdark: "#8A2BE2",
|
||||||
|
errorlight: "#f00",
|
||||||
|
error: "#c00",
|
||||||
|
errordark: "#900",
|
||||||
|
secondarylight: "#AAA",
|
||||||
|
secondary: "#888",
|
||||||
|
secondarydark: "#666",
|
||||||
|
warninglight: "#ff0",
|
||||||
|
warning: "#cc0",
|
||||||
|
warningdark: "#990",
|
||||||
|
infolight: "#69f",
|
||||||
|
info: "#36c",
|
||||||
|
infodark: "#039",
|
||||||
|
welllight: "#444",
|
||||||
|
well: "#222",
|
||||||
|
white: "#fff",
|
||||||
|
black: "#000",
|
||||||
|
hp: "#dd3434",
|
||||||
|
money: "#ffd700",
|
||||||
|
hack: "#adff2f",
|
||||||
|
combat: "#faffdf",
|
||||||
|
cha: "#a671d1",
|
||||||
|
int: "#6495ed",
|
||||||
|
rep: "#faffdf",
|
||||||
|
disabled: "#66cfbc",
|
||||||
|
backgroundprimary: "#000",
|
||||||
|
backgroundsecondary: "#000",
|
||||||
|
button: "#333",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
"Smooth Green": {
|
||||||
|
credit: "Swidt",
|
||||||
|
description: "A nice green theme that doesn't hurt your eyes.",
|
||||||
|
reference: "https://discord.com/channels/415207508303544321/921991895230611466/922243957986033725",
|
||||||
|
colors: {
|
||||||
|
primarylight: "#E0E0BC",
|
||||||
|
primary: "#B0D9A3",
|
||||||
|
primarydark: "#B8B89C",
|
||||||
|
successlight: "#00F000",
|
||||||
|
success: "#6BC16B",
|
||||||
|
successdark: "#00B400",
|
||||||
|
errorlight: "#F00000",
|
||||||
|
error: "#3D713D",
|
||||||
|
errordark: "#A00000",
|
||||||
|
secondarylight: "#B4AEAE",
|
||||||
|
secondary: "#8FAF85",
|
||||||
|
secondarydark: "#787272",
|
||||||
|
warninglight: "#F0F000",
|
||||||
|
warning: "#38F100",
|
||||||
|
warningdark: "#A0A000",
|
||||||
|
infolight: "#69f",
|
||||||
|
info: "#36c",
|
||||||
|
infodark: "#039",
|
||||||
|
welllight: "#444",
|
||||||
|
well: "#2F3C2B",
|
||||||
|
white: "#fff",
|
||||||
|
black: "#1E1E1E",
|
||||||
|
hp: "#dd3434",
|
||||||
|
money: "#4AA52E",
|
||||||
|
hack: "#adff2f",
|
||||||
|
combat: "#faffdf",
|
||||||
|
cha: "#a671d1",
|
||||||
|
int: "#6495ed",
|
||||||
|
rep: "#35A135",
|
||||||
|
disabled: "#66cfbc",
|
||||||
|
backgroundprimary: "#1E1E1E",
|
||||||
|
backgroundsecondary: "#252525",
|
||||||
|
button: "#2F3C2B",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
Dracula: {
|
||||||
|
credit: "H3draut3r",
|
||||||
|
reference: "https://discord.com/channels/415207508303544321/921991895230611466/922296307836678144",
|
||||||
|
colors: {
|
||||||
|
primarylight: "#7082B8",
|
||||||
|
primary: "#F8F8F2",
|
||||||
|
primarydark: "#FF79C6",
|
||||||
|
successlight: "#0f0",
|
||||||
|
success: "#0c0",
|
||||||
|
successdark: "#090",
|
||||||
|
errorlight: "#FD4545",
|
||||||
|
error: "#FF2D2D",
|
||||||
|
errordark: "#C62424",
|
||||||
|
secondarylight: "#AAA",
|
||||||
|
secondary: "#8BE9FD",
|
||||||
|
secondarydark: "#666",
|
||||||
|
warninglight: "#FFC281",
|
||||||
|
warning: "#FFB86C",
|
||||||
|
warningdark: "#E6A055",
|
||||||
|
infolight: "#A0A0FF",
|
||||||
|
info: "#7070FF",
|
||||||
|
infodark: "#4040FF",
|
||||||
|
welllight: "#44475A",
|
||||||
|
well: "#363948",
|
||||||
|
white: "#fff",
|
||||||
|
black: "#282A36",
|
||||||
|
hp: "#D34448",
|
||||||
|
money: "#50FA7B",
|
||||||
|
hack: "#F1FA8C",
|
||||||
|
combat: "#BD93F9",
|
||||||
|
cha: "#FF79C6",
|
||||||
|
int: "#6495ed",
|
||||||
|
rep: "#faffdf",
|
||||||
|
disabled: "#66cfbc",
|
||||||
|
backgroundprimary: "#282A36",
|
||||||
|
backgroundsecondary: "#21222C",
|
||||||
|
button: "#21222C",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
"Dark Blue": {
|
||||||
|
credit: "Saynt_Garmo",
|
||||||
|
reference: "https://discord.com/channels/415207508303544321/921991895230611466/923084732718264340",
|
||||||
|
colors: {
|
||||||
|
primarylight: "#023DDE",
|
||||||
|
primary: "#4A41C8",
|
||||||
|
primarydark: "#005299",
|
||||||
|
successlight: "#00FF00",
|
||||||
|
success: "#D1DAD1",
|
||||||
|
successdark: "#BFCABF",
|
||||||
|
errorlight: "#f00",
|
||||||
|
error: "#c00",
|
||||||
|
errordark: "#900",
|
||||||
|
secondarylight: "#AAA",
|
||||||
|
secondary: "#888",
|
||||||
|
secondarydark: "#666",
|
||||||
|
warninglight: "#ff0",
|
||||||
|
warning: "#cc0",
|
||||||
|
warningdark: "#990",
|
||||||
|
infolight: "#69f",
|
||||||
|
info: "#36c",
|
||||||
|
infodark: "#039",
|
||||||
|
welllight: "#444",
|
||||||
|
well: "#040505",
|
||||||
|
white: "#fff",
|
||||||
|
black: "#000000",
|
||||||
|
hp: "#dd3434",
|
||||||
|
money: "#ffd700",
|
||||||
|
hack: "#adff2f",
|
||||||
|
combat: "#faffdf",
|
||||||
|
cha: "#a671d1",
|
||||||
|
int: "#6495ed",
|
||||||
|
rep: "#faffdf",
|
||||||
|
disabled: "#66cfbc",
|
||||||
|
backgroundprimary: "#091419",
|
||||||
|
backgroundsecondary: "#000000",
|
||||||
|
button: "#000000",
|
||||||
|
},
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
@ -69,12 +69,25 @@ export function ThemeEditorModal(props: IProps): React.ReactElement {
|
|||||||
|
|
||||||
const predefinedThemes = getPredefinedThemes();
|
const predefinedThemes = getPredefinedThemes();
|
||||||
const themes = predefinedThemes && Object.entries(predefinedThemes)
|
const themes = predefinedThemes && Object.entries(predefinedThemes)
|
||||||
.map(([name, templateTheme]) => (
|
.map(([key, templateTheme]) => {
|
||||||
<Button onClick={() => setTemplateTheme(templateTheme)}
|
const name = templateTheme.name || key;
|
||||||
startIcon={<PaletteSharpIcon />} key={name} sx={{ mr: 1 }}>
|
let inner = <Typography>{name}</Typography>;
|
||||||
<Typography>{name}</Typography>
|
let toolTipTitle;
|
||||||
</Button>
|
if (templateTheme.credit) {
|
||||||
)) || <></>;
|
toolTipTitle = <Typography>{templateTheme.description || name} <em>by {templateTheme.credit}</em></Typography>;
|
||||||
|
} else if (templateTheme.description) {
|
||||||
|
toolTipTitle = <Typography>{templateTheme.description}</Typography>;
|
||||||
|
}
|
||||||
|
if (toolTipTitle) {
|
||||||
|
inner = <Tooltip title={toolTipTitle}>{inner}</Tooltip>
|
||||||
|
}
|
||||||
|
return (
|
||||||
|
<Button onClick={() => setTemplateTheme(templateTheme.colors)}
|
||||||
|
startIcon={<PaletteSharpIcon />} key={key} sx={{ mr: 1, mb: 1 }}>
|
||||||
|
{inner}
|
||||||
|
</Button>
|
||||||
|
);
|
||||||
|
}) || <></>;
|
||||||
|
|
||||||
function setTheme(theme: UserInterfaceTheme): void {
|
function setTheme(theme: UserInterfaceTheme): void {
|
||||||
setCustomTheme(theme);
|
setCustomTheme(theme);
|
||||||
|
Loading…
Reference in New Issue
Block a user