Frontend: Add "Mint" theme and move default styles to themes/default.css

Signed-off-by: Michael Mayer <michael@photoprism.app>
This commit is contained in:
Michael Mayer 2023-07-21 09:55:57 +02:00
parent b5b13b0fbb
commit 20df14e9d1
5 changed files with 237 additions and 99 deletions

View file

@ -5638,9 +5638,9 @@
} }
}, },
"node_modules/electron-to-chromium": { "node_modules/electron-to-chromium": {
"version": "1.4.466", "version": "1.4.467",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.466.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.467.tgz",
"integrity": "sha512-TSkRvbXRXD8BwhcGlZXDsbI2lRoP8dvqR7LQnqQNk9KxXBc4tG8O+rTuXgTyIpEdiqSGKEBSqrxdqEntnjNncA==" "integrity": "sha512-2qI70O+rR4poYeF2grcuS/bCps5KJh6y1jtZMDDEteyKJQrzLOEhFyXCLcHW6DTBjKjWkk26JhWoAi+Ux9A0fg=="
}, },
"node_modules/emoji-regex": { "node_modules/emoji-regex": {
"version": "8.0.0", "version": "8.0.0",

View file

@ -1,3 +1,4 @@
@import url("themes/default.css");
@import url("themes/grayscale.css"); @import url("themes/grayscale.css");
@import url("themes/shadow.css"); @import url("themes/shadow.css");
@import url("themes/yellowstone.css"); @import url("themes/yellowstone.css");
@ -6,11 +7,11 @@
@import url("themes/neon.css"); @import url("themes/neon.css");
@import url("themes/gemstone.css"); @import url("themes/gemstone.css");
@import url("themes/carbon.css"); @import url("themes/carbon.css");
@import url("themes/mint.css");
@import url("themes/nordic.css"); @import url("themes/nordic.css");
@import url("themes/lavender.css"); @import url("themes/lavender.css");
@import url("themes/default.css");
/* General Styles */ /* Input Style Overrides */
:-webkit-autofill, :-webkit-autofill,
:-webkit-autofill:hover, :-webkit-autofill:hover,
@ -21,90 +22,15 @@ input:-webkit-autofill:focus {
transition: background-color 9999s !important; transition: background-color 9999s !important;
} }
body.dark-theme #photoprism .v-tabs .v-badge__badge {
color: #000000;
}
body.dark-theme #photoprism .theme--light.v-table thead th {
color: #ffffff;
}
.card {
background-color: #e0e0e0;
}
body.dark-theme .card {
background-color: #1a1a1a;
}
body.dark-theme #photoprism .v-table .theme--light.v-text-field--solo>.v-input__control>.v-input__slot {
background: transparent;
}
body.dark-theme .theme--light.v-list .v-list__tile--highlighted,
body.dark-theme .theme--light.v-list a:hover {
background: rgba(255,255,255,0.3) !important;
}
body.dark-theme .v-input input::placeholder {
color: rgba(255,255,255,0.5) !important;
}
.v-text-field>.v-input__control>.v-input__slot:after, .v-text-field>.v-input__control>.v-input__slot:after,
.v-text-field>.v-input__control>.v-input__slot:before { .v-text-field>.v-input__control>.v-input__slot:before {
display: none !important; display: none !important;
} }
/*
body.dark-theme .v-text-field.v-text-field--enclosed .v-text-field__details {
padding-left: 0;
}*/
.theme--light.v-list .v-list__tile--highlighted,
.theme--light.v-list a:hover {
background: rgba(155,155,155,0.3) !important;
}
body.dark-theme #photoprism .map-control .theme--light.v-input:not(.v-input--is-disabled) i,
body.dark-theme #photoprism .map-control .theme--light.v-input:not(.v-input--is-disabled) input {
color: #333333;
}
body:not(.dark-theme) .theme--dark.v-btn.v-btn--disabled:not(.v-btn--icon):not(.v-btn--flat):not(.v-btn--outline) {
color: rgb(51, 51, 51)!important;
background-color: #d9dadc!important;
}
body.dark-theme #photoprism .theme--light.v-chip,
body.dark-theme #photoprism .v-card .theme--light.v-text-field--box>.v-input__control>.v-input__slot {
background: #00000033;
}
body.dark-theme #photoprism,
body.dark-theme #photoprism .p-page a,
body.dark-theme #photoprism .v-datatable a,
body.dark-theme #photoprism .theme--light.v-expansion-panel .v-expansion-panel__container,
body.dark-theme #photoprism .theme--light.v-tabs__bar .v-tabs__div,
body.dark-theme #photoprism .theme--light {
color: #ffffff;
caret-color: #ffffff;
stroke: #ffffff;
}
body.dark-theme #photoprism .theme--light.v-label {
color: #ffffffaa;
}
body.dark-theme #photoprism .theme--light.v-select .v-select__selections {
color: #ffffffee;
}
#photoprism .v-select.v-text-field--box .v-select__selections { #photoprism .v-select.v-text-field--box .v-select__selections {
padding-top: 20px; padding-top: 20px;
} }
/* Exceptions */
#photoprism .theme--light.v-text-field--solo.background-inherit>.v-input__control>.v-input__slot { #photoprism .theme--light.v-text-field--solo.background-inherit>.v-input__control>.v-input__slot {
background: inherit; background: inherit;
box-shadow: none; box-shadow: none;

View file

@ -1,7 +1,76 @@
/* Default Theme */ /* Component Color Defaults */
#photoprism.theme-default .theme--light.v-text-field--solo>.v-input__control>.v-input__slot, .card {
#photoprism.theme-default .theme--light.v-text-field--solo>.v-input__control>.v-input__slot { background-color: #e0e0e0;
}
body.dark-theme .card {
background-color: #1a1a1a;
}
body.dark-theme #photoprism .v-table .theme--light.v-text-field--solo>.v-input__control>.v-input__slot {
background: transparent;
}
body.dark-theme .theme--light.v-list .v-list__tile--highlighted,
body.dark-theme .theme--light.v-list a:hover {
background: rgba(255,255,255,0.3) !important;
}
body.dark-theme .v-input input::placeholder {
color: rgba(255,255,255,0.5) !important;
}
body.dark-theme .theme--light .v-table {
background: #303030;
}
body.dark-theme .theme--light.v-table tbody tr:hover {
background: #343434;
}
.theme--light.v-list .v-list__tile--highlighted,
.theme--light.v-list a:hover {
background: rgba(155,155,155,0.3) !important;
}
body:not(.dark-theme) .theme--dark.v-btn.v-btn--disabled:not(.v-btn--icon):not(.v-btn--flat):not(.v-btn--outline) {
color: rgb(51, 51, 51)!important;
background-color: #d9dadc!important;
}
body.dark-theme #photoprism .theme--light.v-chip,
body.dark-theme #photoprism .v-card .theme--light.v-text-field--box>.v-input__control>.v-input__slot {
background: #00000033;
}
body.dark-theme #photoprism,
body.dark-theme #photoprism .p-page a,
body.dark-theme #photoprism .v-datatable a,
body.dark-theme #photoprism .theme--light.v-expansion-panel .v-expansion-panel__container,
body.dark-theme #photoprism .theme--light.v-tabs__bar .v-tabs__div,
body.dark-theme #photoprism .theme--light {
color: #ffffff;
caret-color: #ffffff;
stroke: #ffffff;
}
body.dark-theme #photoprism .theme--light.v-label {
color: #ffffffaa;
}
body.dark-theme #photoprism .theme--light.v-select .v-select__selections {
color: #ffffffee;
}
body.dark-theme .theme--light.v-small-dialog__content,
body.dark-theme .theme--light.v-sheet,
body.dark-theme .theme--light.v-card {
background: #2f3031;
}
body.dark-theme .theme--light.v-text-field--solo>.v-input__control>.v-input__slot,
body.dark-theme .theme--light.v-text-field--solo>.v-input__control>.v-input__slot {
background: rgba(250, 250, 255, 0.1); background: rgba(250, 250, 255, 0.1);
} }
@ -20,7 +89,10 @@ body.dark-theme #photoprism .p-page a,
body.dark-theme #photoprism .v-datatable a, body.dark-theme #photoprism .v-datatable a,
body.dark-theme #photoprism .theme--light.v-expansion-panel .v-expansion-panel__container, body.dark-theme #photoprism .theme--light.v-expansion-panel .v-expansion-panel__container,
body.dark-theme #photoprism .theme--light.v-tabs__bar .v-tabs__div, body.dark-theme #photoprism .theme--light.v-tabs__bar .v-tabs__div,
body.dark-theme #photoprism .theme--light { body.dark-theme #photoprism .theme--light,
body.dark-theme #photoprism .theme--light.v-table thead th,
body.dark-theme .theme--light.v-table thead th,
body.dark-theme .theme--light.v-table tbody td {
color: #ffffff; color: #ffffff;
} }
@ -36,6 +108,12 @@ body.dark-theme #photoprism .theme--light.v-select .v-select__selections {
padding-top: 20px; padding-top: 20px;
} }
body.dark-theme #photoprism .v-tabs .v-badge__badge {
color: #000000;
}
/* Default Theme */
body.dark-theme.theme-default, body.dark-theme.theme-default,
.theme-default .v-content__wrap, .theme-default .v-content__wrap,
.theme-default .p-page, .theme-default .p-page,
@ -51,10 +129,6 @@ body.dark-theme.theme-default,
background: #2f3031; background: #2f3031;
} }
#photoprism.theme-default .theme--light .v-table {
background: #37393a;
}
#photoprism.container.theme-default { #photoprism.container.theme-default {
background-image: linear-gradient(160deg, #808080 0%, #262626 100%); background-image: linear-gradient(160deg, #808080 0%, #262626 100%);
} }
@ -68,6 +142,10 @@ body.dark-theme.theme-default,
stroke: rgba(196, 241, 229, 0.3); stroke: rgba(196, 241, 229, 0.3);
} }
#photoprism.theme-default .theme--light .v-table {
background: #37393a;
}
#photoprism.theme-default .theme--light.v-table thead th, #photoprism.theme-default .theme--light.v-table thead th,
#photoprism.theme-default .theme--light.v-table tbody td { #photoprism.theme-default .theme--light.v-table tbody td {
color: #fff; color: #fff;
@ -81,6 +159,11 @@ body.dark-theme.theme-default,
color: #999 !important; color: #999 !important;
} }
#photoprism.theme-default .theme--light.v-text-field--solo>.v-input__control>.v-input__slot,
#photoprism.theme-default .theme--light.v-text-field--solo>.v-input__control>.v-input__slot {
background: rgba(250, 250, 255, 0.1);
}
#photoprism.theme-default .theme--light.v-input--selection-controls.v-input--is-disabled .v-icon, #photoprism.theme-default .theme--light.v-input--selection-controls.v-input--is-disabled .v-icon,
#photoprism.theme-default .theme--light.v-input--is-disabled .v-label, #photoprism.theme-default .theme--light.v-input--is-disabled .v-label,
#photoprism.theme-default .theme--light.v-input--is-disabled input, #photoprism.theme-default .theme--light.v-input--is-disabled input,

View file

@ -0,0 +1,92 @@
/* Mint Theme */
body.dark-theme.theme-mint,
.theme-mint .v-content__wrap,
.theme-mint .p-page,
.theme-mint .form,
.theme-mint .v-content {
background: #121212 !important;
}
#photoprism.theme-mint .theme--light.v-small-dialog__content,
#photoprism.theme-mint .theme--light.v-sheet,
#photoprism.theme-mint .theme--light.v-card,
.theme-mint .application.theme--light {
background: #1e1e1e;
}
#photoprism.container.theme-mint {
background-image: linear-gradient(160deg, #808080 0%, #262626 100%);
}
#photoprism.theme-mint .theme--light .v-table {
background: #1a1a1a;
}
#photoprism.theme-mint .theme--light.v-table thead th,
#photoprism.theme-mint .theme--light.v-table tbody td {
color: #fff;
}
#photoprism.theme-mint .theme--light.v-table tbody tr:hover {
background: #2b2b2b;
}
#photoprism.theme-mint .theme--light.v-input--selection-controls.v-input--is-disabled .v-icon {
color: #999 !important;
}
#photoprism.theme-mint .theme--light.v-input--selection-controls.v-input--is-disabled .v-icon,
#photoprism.theme-mint .theme--light.v-input--is-disabled .v-label,
#photoprism.theme-mint .theme--light.v-input--is-disabled input,
#photoprism.theme-mint .theme--light.v-input--is-disabled textarea {
color: #ccc;
}
#photoprism.theme-mint .theme--light.v-list {
background: #232425;
}
#photoprism.theme-mint a.text-link {
color: #f6f7e8 !important;
}
#photoprism.theme-mint .footer .body-link {
color: #f6f7e8 !important;
}
#photoprism.theme-mint .theme--light.v-list .v-list__tile__sub-title,
#photoprism.theme-mint .accent--text {
color: #2bb14c !important;
}
#photoprism.theme-mint .theme--light.v-input:not(.v-input--is-disabled) input,
#photoprism.theme-mint .theme--light.v-input:not(.v-input--is-disabled) textarea {
color: #fff;
}
#photoprism.theme-mint .theme--light.v-btn.v-btn--disabled,
#photoprism.theme-mint .theme--light.v-btn.v-btn--disabled .v-btn__loading,
#photoprism.theme-mint .theme--light.v-btn.v-btn--disabled .v-icon {
color: #999 !important;
}
#photoprism.theme-mint .theme--light.v-list .v-list__tile__mask {
color: #cccccc;
background: transparent;
}
#photoprism.theme-mint .cards-view .card.is-selected .card-details {
color: #fff;
background-color: #333333;
}
#photoprism.theme-mint .cards-view .card.is-selected,
#photoprism.theme-mint .cards-view .card.is-selected .card-background {
background-color: #333333 !important;
}
#photoprism.theme-mint .cards-view .card.is-selected .card-details .v-icon {
color: #fff;
}

View file

@ -10,7 +10,7 @@ let themes = {
name: "default", name: "default",
colors: { colors: {
application: "#2f3031", application: "#2f3031",
form: "#eeeeee", form: "#2f3031",
card: "#232425", card: "#232425",
primary: "#9E7BEA", primary: "#9E7BEA",
"primary-button": "#5F1DB7", "primary-button": "#5F1DB7",
@ -41,7 +41,7 @@ let themes = {
sponsor: false, sponsor: false,
colors: { colors: {
application: "#525252", application: "#525252",
form: "#e5e4e2", form: "#525252",
card: "#5e5e5e", card: "#5e5e5e",
primary: "#c8bdb1", primary: "#c8bdb1",
"primary-button": "#726e69", "primary-button": "#726e69",
@ -103,7 +103,7 @@ let themes = {
sponsor: false, sponsor: false,
colors: { colors: {
application: "#F5F5F5", application: "#F5F5F5",
form: "#eeeeee", form: "#F5F5F5",
card: "#e0e0e0", card: "#e0e0e0",
primary: "#FFCA28", primary: "#FFCA28",
"primary-button": "#212121", "primary-button": "#212121",
@ -128,6 +128,38 @@ let themes = {
"navigation-home": "#000000", "navigation-home": "#000000",
}, },
}, },
mint: {
dark: true,
sponsor: false,
title: "Mint",
name: "mint",
colors: {
application: "#121212",
form: "#121212",
card: "#1e1e1e",
primary: "#2bb14c",
"primary-button": "#22903d",
"secondary-dark": "#2bb14c",
secondary: "#181818",
"secondary-light": "#1f1f1f",
accent: "#2bb14c",
error: "#e57373",
info: "#00acc1",
success: "#4db6ac",
warning: "#ffd740",
remove: "#e57373",
restore: "#64b5f6",
album: "#ffab00",
download: "#00bfa5",
private: "#00b8d4",
edit: "#00b8d4",
share: "#9575cd",
love: "#ef5350",
terminal: "#181818",
navigation: "#181818",
"navigation-home": "#181818",
},
},
nordic: { nordic: {
dark: false, dark: false,
sponsor: false, sponsor: false,
@ -135,7 +167,7 @@ let themes = {
name: "nordic", name: "nordic",
colors: { colors: {
application: "#f7f8fa", application: "#f7f8fa",
form: "#eeeeee", form: "#f7f8fa",
card: "#ECEFF4", card: "#ECEFF4",
primary: "#4ca0b8", primary: "#4ca0b8",
"primary-button": "#519fb6", "primary-button": "#519fb6",
@ -197,7 +229,7 @@ let themes = {
sponsor: true, sponsor: true,
colors: { colors: {
application: "#202020", application: "#202020",
form: "#AFB42B", form: "#202020",
card: "#242424", card: "#242424",
primary: "#814fd9", primary: "#814fd9",
"primary-button": "#7e57c2", "primary-button": "#7e57c2",
@ -229,7 +261,7 @@ let themes = {
name: "carbon", name: "carbon",
colors: { colors: {
application: "#16141c", application: "#16141c",
form: "#eeeeee", form: "#16141c",
card: "#292732", card: "#292732",
primary: "#8a6eff", primary: "#8a6eff",
"primary-button": "#53478a", "primary-button": "#53478a",
@ -260,7 +292,7 @@ let themes = {
sponsor: true, sponsor: true,
colors: { colors: {
application: "#2f2f31", application: "#2f2f31",
form: "#eeeeee", form: "#2f2f31",
card: "#2b2b2d", card: "#2b2b2d",
primary: "#AFB4D4", primary: "#AFB4D4",
"primary-button": "#545465", "primary-button": "#545465",
@ -291,7 +323,7 @@ let themes = {
sponsor: true, sponsor: true,
colors: { colors: {
application: "#242326", application: "#242326",
form: "#AFB42B", form: "#242326",
card: "#1b1a1c", card: "#1b1a1c",
primary: "#f44abf", primary: "#f44abf",
"primary-button": "#890664", "primary-button": "#890664",
@ -322,7 +354,7 @@ let themes = {
sponsor: true, sponsor: true,
colors: { colors: {
application: "#444", application: "#444",
form: "#eeeeee", form: "#444",
card: "#666666", card: "#666666",
primary: "#c4f1e5", primary: "#c4f1e5",
"primary-button": "#74817d", "primary-button": "#74817d",
@ -353,7 +385,7 @@ let themes = {
sponsor: true, sponsor: true,
colors: { colors: {
application: "#212121", application: "#212121",
form: "#AFB42B", form: "#212121",
card: "#1d1d1d", card: "#1d1d1d",
primary: "#04acaf", primary: "#04acaf",
"primary-button": "#444444", "primary-button": "#444444",
@ -384,7 +416,7 @@ let themes = {
sponsor: true, sponsor: true,
colors: { colors: {
application: "#32312f", application: "#32312f",
form: "#eeeeee", form: "#32312f",
card: "#262524", card: "#262524",
primary: "#ffb700", primary: "#ffb700",
"primary-button": "#54524e", "primary-button": "#54524e",
@ -434,6 +466,11 @@ let options = [
value: "legacy", value: "legacy",
disabled: false, disabled: false,
}, },
{
text: "Mint",
value: "mint",
disabled: false,
},
{ {
text: "Nordic", text: "Nordic",
value: "nordic", value: "nordic",