Implementing dark theme, fixes #5
This commit is contained in:
parent
dbe386d776
commit
4fa82d90de
|
@ -0,0 +1,60 @@
|
|||
:root {
|
||||
/* Grayscale */
|
||||
--color-l-gray-10: hsla(36, 38%, 98%, 1);
|
||||
--color-l-gray-20: hsla(35, 36%, 96%, 1);
|
||||
--color-l-gray-30: hsla(35, 37%, 92%, 1);
|
||||
--color-l-gray-40: hsla(34, 34%, 90%, 1);
|
||||
--color-l-gray-50: hsla(36, 35%, 88%, 1);
|
||||
--color-l-gray-60: hsla(37, 38%, 83%, 1);
|
||||
--color-l-gray-70: hsla(34, 37%, 70%, 1);
|
||||
--color-l-gray-80: hsla(34, 29%, 60%, 1);
|
||||
--color-l-gray-90: hsla(31, 23%, 50%, 1);
|
||||
--color-l-gray-100: hsla(35, 28%, 40%, 1);
|
||||
--color-l-gray-110: hsla(34, 30%, 37%, 1);
|
||||
--color-l-gray-120: hsla(36, 32%, 30%, 1);
|
||||
--color-l-gray-130: hsla(31, 45%, 24%, 1);
|
||||
--color-l-gray-140: hsla(33, 54%, 17%, 1);
|
||||
--color-l-alpha-gray: hsla(34, 37%, 70%, 0.15);
|
||||
|
||||
--color-d-gray-10: hsla(32, 48%, 85%, 1);
|
||||
--color-d-gray-20: hsla(34, 39%, 74%, 1);
|
||||
--color-d-gray-30: hsla(34, 31%, 68%, 1);
|
||||
--color-d-gray-40: hsla(35, 27%, 55%, 1);
|
||||
--color-d-gray-50: hsla(34, 24%, 46%, 1);
|
||||
--color-d-gray-60: hsla(33, 27%, 33%, 1);
|
||||
--color-d-gray-70: hsla(31, 27%, 25%, 1);
|
||||
--color-d-gray-80: hsla(28, 22%, 19%, 1);
|
||||
--color-d-gray-90: hsla(33, 20%, 17%, 1);
|
||||
--color-d-gray-100: hsla(30, 19%, 15%, 1);
|
||||
--color-d-gray-110: hsla(30, 17%, 14%, 1);
|
||||
--color-d-gray-120: hsla(29, 16%, 13%, 1);
|
||||
--color-d-gray-130: hsla(24, 18%, 11%, 1);
|
||||
--color-d-gray-140: hsla(32, 21%, 9%, 1);
|
||||
--color-d-alpha-gray: hsla(34, 24%, 40%, 0.2);
|
||||
|
||||
/* Red */
|
||||
--color-l-red-10: hsla(4, 59%, 64%, 1);
|
||||
--color-l-red-20: hsla(4, 72%, 55%, 1);
|
||||
--color-l-red-30: hsla(4, 56%, 48%, 1);
|
||||
--color-l-red-40: hsla(4, 72%, 35%, 1);
|
||||
--color-l-alpha-red: hsla(350, 84%, 63%, 0.2);
|
||||
|
||||
--color-d-red-10: hsla(5, 94%, 73%, 1);
|
||||
--color-d-red-20: hsla(4, 91%, 67%, 1);
|
||||
--color-d-red-30: hsla(4, 88%, 61%, 1);
|
||||
--color-d-red-40: hsla(2, 75%, 52%, 1);
|
||||
--color-d-alpha-red: hsla(350, 84%, 63%, 0.2);
|
||||
|
||||
/* Green */
|
||||
--color-l-green-10: hsla(148, 30%, 65%, 1);
|
||||
--color-l-green-20: hsla(148, 48%, 47%, 1);
|
||||
--color-l-green-30: hsla(149, 50%, 39%, 1);
|
||||
--color-l-green-40: hsla(153, 65%, 29%, 1);
|
||||
--color-l-alpha-green: hsla(74, 69%, 44%, 0.2);
|
||||
|
||||
--color-d-green-10: hsla(152, 51%, 54%, 1);
|
||||
--color-d-green-20: hsla(154, 57%, 42%, 1);
|
||||
--color-d-green-30: hsla(155, 78%, 29%, 1);
|
||||
--color-d-green-40: hsla(154, 75%, 26%, 1);
|
||||
--color-d-alpha-green: hsla(74, 69%, 44%, 0.2);
|
||||
}
|
|
@ -0,0 +1,73 @@
|
|||
:root {
|
||||
--button-inset-shadow-size: 2px;
|
||||
|
||||
--shadow: inset 0px 1px 0px 0px rgba(255, 255, 255, 0.2),
|
||||
inset 0px 0px 0px 1px rgba(0, 0, 0, 0.1),
|
||||
inset 0px calc(-1 * var(--button-inset-shadow-size)) 0px 2px rgba(0, 0, 0, 0.09),
|
||||
inset 0px -2px 4px 0px rgba(0, 0, 0, 0.1),
|
||||
0px 4px 4px -5.6px rgba(0, 0, 0, 0.4),
|
||||
0px 2px 4px -2.7px rgba(0, 0, 0, 0.1),
|
||||
0px 2px 4px -1px rgba(0, 0, 0, 0.05);
|
||||
|
||||
--shadow-hover: inset 0px 1px 0px 0px rgba(255, 255, 255, 0.4),
|
||||
inset 0px 0px 0px 1px rgba(0, 0, 0, 0.15),
|
||||
inset 0px calc(-1 * var(--button-inset-shadow-size)) 0px 2px rgba(0, 0, 0, 0.09),
|
||||
inset 0px -2px 4px 0px rgba(0, 0, 0, 0.1),
|
||||
0px 4px 4px -5.6px rgba(0, 0, 0, 0.4),
|
||||
0px 2px 4px -2.7px rgba(0, 0, 0, 0.15),
|
||||
0px 2px 6px -1px rgba(0, 0, 0, 0.1);
|
||||
|
||||
--shadow-active: inset 0px 0px 0px 1px rgba(0, 0, 0, 0.15),
|
||||
inset 0px 0px 0px calc(1px + var(--button-inset-shadow-size)) rgba(0, 0, 0, 0.09),
|
||||
inset 0px 2px 8px 0px rgba(0, 0, 0, 0.2),
|
||||
0px 0px 0px 1px rgba(255, 255, 255, 0.6);
|
||||
|
||||
--shadow-focus: inset 0px 1px 0px 0px rgba(255, 255, 255, 0.2),
|
||||
inset 0px 0px 0px 1px rgba(0, 0, 0, 0.1),
|
||||
inset 0px calc(-1 * var(--button-inset-shadow-size)) 0px 2px rgba(0, 0, 0, 0.09),
|
||||
inset 0px -2px 4px 0px rgba(0, 0, 0, 0.1),
|
||||
0px 4px 4px -5.6px rgba(0, 0, 0, 0.4),
|
||||
0px 2px 4px -2.7px rgba(0, 0, 0, 0.1),
|
||||
0px 2px 4px -1px rgba(0, 0, 0, 0.05),
|
||||
0px 0px 0px 3px var(--color-l-alpha-gray);
|
||||
|
||||
--text-input-shadow-active: inset 0px 1px 0px 0px rgba(255, 255, 255, 1), inset 0px -1px 0px 0px rgba(0, 0, 0, 0.04), 0px 1px 6px 0px rgba(0, 0, 0, 0.07);
|
||||
}
|
||||
|
||||
@media(prefers-color-scheme: dark) {
|
||||
:root {
|
||||
--shadow: inset 0px 1px 0px 0px rgba(255, 255, 255, 0.02),
|
||||
inset 0px 0px 0px 1px rgba(0, 0, 0, 0.25),
|
||||
inset 0px calc(-1 * var(--button-inset-shadow-size)) 0px 2px rgba(0, 0, 0, 0.2),
|
||||
inset 0px -2px 4px 0px rgba(0, 0, 0, 0.25),
|
||||
0px 4px 4px -5.6px rgba(0, 0, 0, 0.55),
|
||||
0px 2px 4px -2.7px rgba(0, 0, 0, 0.25),
|
||||
0px 2px 4px -1px rgba(0, 0, 0, 0.2);
|
||||
|
||||
--shadow-hover: inset 0px 1px 0px 0px rgba(255, 255, 255, 0.06),
|
||||
inset 0px 0px 0px 1px rgba(0, 0, 0, 0.3),
|
||||
inset 0px calc(-1 * var(--button-inset-shadow-size)) 0px 2px rgba(0, 0, 0, 0.2),
|
||||
inset 0px -2px 4px 0px rgba(0, 0, 0, 0.25),
|
||||
0px 4px 4px -5.6px rgba(0, 0, 0, 0.55),
|
||||
0px 2px 4px -2.7px rgba(0, 0, 0, 0.3),
|
||||
0px 2px 6px -1px rgba(0, 0, 0, 0.25);
|
||||
|
||||
--shadow-active: inset 0px 0px 0px 1px rgba(0, 0, 0, 0.45),
|
||||
inset 0px 0px 0px calc(1px + var(--button-inset-shadow-size)) rgba(0, 0, 0, 0.15),
|
||||
inset 0px 2px 8px 0px rgba(0, 0, 0, 0.57),
|
||||
0px 0px 0px 1px rgba(255, 255, 255, 0.02);
|
||||
|
||||
--button-shadow-focus: inset 0px 1px 0px 0px rgba(255, 255, 255, 0.05),
|
||||
inset 0px 0px 0px 1px rgba(0, 0, 0, 0.3),
|
||||
inset 0px calc(-1 * var(--button-inset-shadow-size)) 0px 2px rgba(0, 0, 0, 0.24),
|
||||
inset 0px -2px 4px 0px rgba(0, 0, 0, 0.25),
|
||||
0px 4px 4px -5.6px rgba(0, 0, 0, 0.55),
|
||||
0px 2px 4px -2.7px rgba(0, 0, 0, 0.3),
|
||||
0px 2px 6px -1px rgba(0, 0, 0, 0.25),
|
||||
0px 0px 0px 3px var(--color-d-alpha-gray);
|
||||
|
||||
--text-input-shadow-active: inset 0px 1px 0px 0px rgba(255, 255, 255, 0.03),
|
||||
inset 0px -1px 0px 0px rgba(0, 0, 0, 0.39),
|
||||
0px 1px 6px 0px rgba(0, 0, 0, 0.37);
|
||||
}
|
||||
}
|
689
src/popup.css
689
src/popup.css
|
@ -1,139 +1,325 @@
|
|||
/*TODO text color dropdowns, button icons and text*/
|
||||
@import "css/colors.css";
|
||||
@import "css/shadows.css";
|
||||
|
||||
:root {
|
||||
--font-features: "calt" 1, "case" 0, "ccmp" 1, "ss03" 1, "cv01" 1, "cv05" 1, "cv06" 1, "cv08" 0, "cv11" 1, "cv12" 0, "cv13" 0;
|
||||
--large-text: 16px;
|
||||
--small-text: 14px;
|
||||
--text-large: 12pt;
|
||||
--text-small: 10pt;
|
||||
|
||||
/* Grayscale */
|
||||
--color-l-gray-10: hsla(36, 38%, 98%, 1);
|
||||
--color-l-gray-20: hsla(35, 36%, 96%, 1);
|
||||
--color-l-gray-30: hsla(35, 37%, 92%, 1);
|
||||
--color-l-gray-40: hsla(34, 34%, 90%, 1);
|
||||
--color-l-gray-50: hsla(36, 35%, 88%, 1);
|
||||
--color-l-gray-60: hsla(37, 38%, 83%, 1);
|
||||
--color-l-gray-70: hsla(34, 37%, 70%, 1);
|
||||
--color-l-gray-80: hsla(34, 29%, 60%, 1);
|
||||
--color-l-gray-90: hsla(31, 23%, 50%, 1);
|
||||
--color-l-gray-100: hsla(35, 28%, 40%, 1);
|
||||
--color-l-gray-110: hsla(34, 30%, 37%, 1);
|
||||
--color-l-gray-120: hsla(36, 32%, 30%, 1);
|
||||
--color-l-gray-130: hsla(31, 45%, 24%, 1);
|
||||
--color-l-gray-140: hsla(33, 54%, 17%, 1);
|
||||
--color-l-alpha-gray: hsla(34, 37%, 70%, 0.15);
|
||||
--window-margin: 10px;
|
||||
--window-width: 360px; /* Equal to width of add-ons panel */
|
||||
--window-height: 550px; /* Equal to hwightof add-ons panel */
|
||||
--scrollbar-width: 5px; /*TODO make sure this is correct */
|
||||
|
||||
/* Green */
|
||||
--color-l-green-10: hsla(148, 30%, 65%, 1);
|
||||
--color-l-green-20: hsla(148, 48%, 47%, 1);
|
||||
--color-l-green-30: hsla(149, 50%, 39%, 1);
|
||||
--color-l-green-40: hsla(153, 65%, 29%, 1);
|
||||
--color-l-alpha-green: hsla(74, 69%, 44%, 0.2);
|
||||
--toggle-margin-left: 15px;
|
||||
--toggle-margin-right: 5px;
|
||||
|
||||
/* Red */
|
||||
--color-l-red-10: hsla(4, 59%, 64%, 1);
|
||||
--color-l-red-20: hsla(4, 72%, 55%, 1);
|
||||
--color-l-red-30: hsla(4, 56%, 48%, 1);
|
||||
--color-l-red-40: hsla(4, 72%, 35%, 1);
|
||||
--color-l-alpha-red: hsla(350, 84%, 63%, 0.2);
|
||||
--speed-fast: .1s;
|
||||
--speed-slow: .3s;
|
||||
|
||||
--spacer-tiny: 2px;
|
||||
--spacer-small: 6px;
|
||||
--spacer-medium: 8px;
|
||||
--spacer-large: 12px;
|
||||
|
||||
--spacer-select: 26px;
|
||||
--spacer-other: 18px;
|
||||
--spacer-button-grid: 34px;
|
||||
|
||||
--border-radius-section: .5rem;
|
||||
--border-radius-input: .5rem;
|
||||
|
||||
--total-height-other: 297px;
|
||||
--total-height-also-li: 26px;
|
||||
}
|
||||
|
||||
/* Light theme */
|
||||
:root {
|
||||
--text-color: var(--color-l-gray-120);
|
||||
--desc-color: var(--color-l-gray-100);
|
||||
--placeholder-color: var(--color-l-gray-70);
|
||||
--link-color: var(--color-l-gray-90);
|
||||
|
||||
--icon-color: var(--color-l-gray-80);
|
||||
--icon-color-hover: var(--color-l-gray-90);
|
||||
--border-color: var(--color-l-gray-50);
|
||||
--border-color-hover: var(--color-l-gray-60);
|
||||
--scrollbar-color: var(--color-l-gray-70);
|
||||
|
||||
--button-inset-shadow-size: 2px;
|
||||
--shadow: inset 0px 1px 0px 0px rgba(255, 255, 255, 0.2),
|
||||
inset 0px 0px 0px 1px rgba(0, 0, 0, 0.1),
|
||||
inset 0px calc(-1 * var(--button-inset-shadow-size)) 0px 2px rgba(0, 0, 0, 0.09),
|
||||
inset 0px -2px 4px 0px rgba(0, 0, 0, 0.1),
|
||||
0px 4px 4px -5.6px rgba(0, 0, 0, 0.4),
|
||||
0px 2px 4px -2.7px rgba(0, 0, 0, 0.1),
|
||||
0px 2px 4px -1px rgba(0, 0, 0, 0.05);
|
||||
--shadow-hover: inset 0px 1px 0px 0px rgba(255, 255, 255, 0.4),
|
||||
inset 0px 0px 0px 1px rgba(0, 0, 0, 0.15),
|
||||
inset 0px calc(-1 * var(--button-inset-shadow-size)) 0px 2px rgba(0, 0, 0, 0.09),
|
||||
inset 0px -2px 4px 0px rgba(0, 0, 0, 0.1),
|
||||
0px 4px 4px -5.6px rgba(0, 0, 0, 0.4),
|
||||
0px 2px 4px -2.7px rgba(0, 0, 0, 0.15),
|
||||
0px 2px 6px -1px rgba(0, 0, 0, 0.1);
|
||||
--shadow-active: inset 0px 0px 0px 1px rgba(0, 0, 0, 0.15),
|
||||
inset 0px 0px 0px calc(1px + var(--button-inset-shadow-size)) rgba(0, 0, 0, 0.09),
|
||||
inset 0px 2px 8px 0px rgba(0, 0, 0, 0.2),
|
||||
0px 0px 0px 1px rgba(255, 255, 255, 0.6);
|
||||
--shadow-focus: inset 0px 1px 0px 0px rgba(255, 255, 255, 0.2),
|
||||
inset 0px 0px 0px 1px rgba(0, 0, 0, 0.1),
|
||||
inset 0px calc(-1 * var(--button-inset-shadow-size)) 0px 2px rgba(0, 0, 0, 0.09),
|
||||
inset 0px -2px 4px 0px rgba(0, 0, 0, 0.1),
|
||||
0px 4px 4px -5.6px rgba(0, 0, 0, 0.4),
|
||||
0px 2px 4px -2.7px rgba(0, 0, 0, 0.1),
|
||||
0px 2px 4px -1px rgba(0, 0, 0, 0.05),
|
||||
0px 0px 0px 3px var(--color-l-alpha-gray);
|
||||
--text-input-shadow-active: inset 0px 1px 0px 0px rgba(255, 255, 255, 1), inset 0px -1px 0px 0px rgba(0, 0, 0, 0.04), 0px 1px 6px 0px rgba(0, 0, 0, 0.07);
|
||||
--body-background-color: var(--color-l-gray-30);
|
||||
--section-background-color: var(--color-l-gray-10);
|
||||
|
||||
--hide-speed: .2s;
|
||||
/* State */
|
||||
--state-text-color-disabled: var(--color-l-red-20);
|
||||
--state-text-color-enabled: var(--color-l-green-20);
|
||||
|
||||
/* Text input */
|
||||
--text-input-background-color-focus: var(--color-l-gray-10);
|
||||
--text-input-placeholder-color: var(--color-l-gray-70);
|
||||
--text-input-background-color: var(--color-l-gray-20);
|
||||
|
||||
/* Select */
|
||||
--select-background-color: var(--color-l-gray-20);
|
||||
--select-icon: url("data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"%23655134\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m7 15 5 5 5-5\"/><path d=\"m7 9 5-5 5 5\"/></svg>") no-repeat;
|
||||
|
||||
/* Button */
|
||||
--button-background-color: var(--color-l-gray-20);
|
||||
--button-background-color-hover: var(--color-l-gray-10);
|
||||
|
||||
/* Save button */
|
||||
--save-button-text-color: var(--color-l-gray-10);
|
||||
--save-button-background-color: var(--color-l-gray-90);
|
||||
--save-button-background-color-hover: var(--color-l-gray-80);
|
||||
--save-button-background-color-active: var(--color-l-gray-90);
|
||||
|
||||
/* State button */
|
||||
--state-button-text-color: var(--color-l-gray-10);
|
||||
--state-button-background-color-disabled: var(--color-l-red-20);
|
||||
--state-button-background-color-disabled-hover: var(--color-l-red-10);
|
||||
--state-button-background-color-enabled: var(--color-l-green-20);
|
||||
--state-button-background-color-enabled-hover: var(--color-l-green-10);
|
||||
}
|
||||
|
||||
input, select {
|
||||
background-color: var(--color-l-gray-20);
|
||||
border: 1px solid var(--border-color);
|
||||
border-radius: .5em;
|
||||
font-size: var(--large-text);
|
||||
/* Dark theme */
|
||||
@media (prefers-color-scheme: dark) {
|
||||
:root {
|
||||
--text-color: var(--color-d-gray-10);
|
||||
--desc-color: var(--color-d-gray-20);
|
||||
--link-color: var(--color-d-gray-50);
|
||||
|
||||
--icon-color: var(--color-d-gray-40);
|
||||
--icon-color-hover: var(--color-d-gray-50);
|
||||
--border-color: var(--color-d-gray-90);
|
||||
--border-color-hover: var(--color-d-gray-80);
|
||||
--scrollbar-color: var(--color-d-gray-90);
|
||||
|
||||
--body-background-color: var(--color-d-gray-120);
|
||||
--section-background-color: var(--color-d-gray-100);
|
||||
|
||||
/* State */
|
||||
--state-text-color-disabled: var(--color-d-red-30);
|
||||
--state-text-color-enabled: var(--color-d-green-20);
|
||||
|
||||
/* Text input */
|
||||
--text-input-background-color-focus: var(--color-d-gray-90);
|
||||
--text-input-placeholder-color: var(--color-d-gray-70);
|
||||
--text-input-background-color: var(--color-d-gray-100);
|
||||
|
||||
/* Select */
|
||||
--select-background-color: var(--color-d-gray-110);
|
||||
--select-icon: url("data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"%23EBDAC6\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m7 15 5 5 5-5\"/><path d=\"m7 9 5-5 5 5\"/></svg>") no-repeat;
|
||||
|
||||
/* Button */
|
||||
--button-background-color: var(--color-d-gray-110);
|
||||
--button-background-color-hover: var(--color-d-gray-100);
|
||||
|
||||
/* Save button */
|
||||
--save-button-text-color: var(--color-d-gray-10);
|
||||
--save-button-background-color: var(--color-d-gray-70);
|
||||
--save-button-background-color-hover: var(--color-d-gray-60);
|
||||
--save-button-background-color-active: var(--color-d-gray-70);
|
||||
|
||||
/* State button */
|
||||
--state-button-text-color: var(--color-d-gray-10);
|
||||
--state-button-background-color-disabled: var(--color-d-red-40);
|
||||
--state-button-background-color-disabled-hover: var(--color-d-red-30);
|
||||
--state-button-background-color-enabled: var(--color-d-green-30);
|
||||
--state-button-background-color-enabled-hover: var(--color-d-green-20);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Common */
|
||||
|
||||
html {
|
||||
scrollbar-color: var(--scrollbar-color) transparent;
|
||||
}
|
||||
|
||||
* {
|
||||
font-family: 'Inter', sans-serif;
|
||||
font-feature-settings: var(--font-features);
|
||||
font-size: var(--text-large);
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: var(--body-background-color);
|
||||
color: var(--text-color);
|
||||
padding: 2px 8px 2px 8px;
|
||||
gap: 8px;
|
||||
width: var(--window-width);
|
||||
height: var(--window-height);
|
||||
padding-left: var(--window-margin);
|
||||
padding-right: calc(var(--window-margin) + var(--scrollbar-width));
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
input {
|
||||
box-sizing: border-box;
|
||||
width: 100%;
|
||||
section {
|
||||
background-color: var(--section-background-color);
|
||||
padding: var(--text-large) var(--window-margin);
|
||||
border: 1px solid var(--border-color);
|
||||
border-radius: var(--border-radius-section);
|
||||
margin-top: var(--text-small);
|
||||
}
|
||||
|
||||
input::placeholder {
|
||||
color: var(--placeholder-color);
|
||||
ul {
|
||||
list-style: none;
|
||||
padding-left: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
input:hover {
|
||||
border: 1px solid var(--border-color-hover);
|
||||
transition: 0.3s;
|
||||
}
|
||||
|
||||
input:focus {
|
||||
transition: 0.1s;
|
||||
border: 1px solid var(--border-color-hover);
|
||||
background-color: var(--color-l-gray-10);
|
||||
box-shadow: var(--text-input-shadow-active);
|
||||
/* Common button */
|
||||
|
||||
button:not(.delete) {
|
||||
font-weight: 600;
|
||||
border: 1px solid var(--border-color);
|
||||
padding: var(--spacer-small);
|
||||
cursor: pointer;
|
||||
box-shadow: var(--shadow);
|
||||
outline: none;
|
||||
}
|
||||
|
||||
select {
|
||||
padding: 6px;
|
||||
padding-right: 26px;
|
||||
box-shadow: var(--shadow);
|
||||
appearance: none;
|
||||
background: url("data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"%23655134\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m7 15 5 5 5-5\"/><path d=\"m7 9 5-5 5 5\"/></svg>") no-repeat;
|
||||
background-position-x: calc(100% - 2px);
|
||||
background-position-y: calc(50% - 2px);
|
||||
button:not(.delete):hover {
|
||||
transition-duration: var(--speed-slow);
|
||||
box-shadow: var(--shadow-hover);
|
||||
}
|
||||
|
||||
select:active, select:focus {
|
||||
button:not(.delete):active {
|
||||
transition: var(--speed-slow);
|
||||
box-shadow: var(--shadow-active);
|
||||
}
|
||||
|
||||
button:not(.delete) > svg {
|
||||
transform: translateY(-.15em);
|
||||
}
|
||||
|
||||
button:not(.delete):active > svg {
|
||||
transition: var(--speed-slow);
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Site state section */
|
||||
|
||||
#site-state {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
#site-details {
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
#site-details h1 {
|
||||
font-size: var(--text-large);
|
||||
font-weight: 600;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
#state {
|
||||
color: var(--state-text-color-disabled);
|
||||
transition: var(--speed-slow);
|
||||
}
|
||||
|
||||
#state.is-on {
|
||||
color: var(--state-text-color-enabled);
|
||||
transition: var(--speed-slow);
|
||||
}
|
||||
|
||||
/* Toggle */
|
||||
|
||||
#toggle {
|
||||
border-radius: 100%;
|
||||
padding: var(--spacer-large);
|
||||
align-self: center;
|
||||
margin-left: var(--toggle-margin-left);
|
||||
margin-right: var(--toggle-margin-right);
|
||||
background-color: var(--state-button-background-color-disabled);
|
||||
color: var(--state-button-text-color);
|
||||
}
|
||||
|
||||
#toggle:hover, #toggle:focus {
|
||||
background-color: var(--state-button-background-color-disabled-hover);
|
||||
}
|
||||
|
||||
#toggle:active {
|
||||
background-color: var(--state-button-background-color-disabled);
|
||||
}
|
||||
|
||||
#toggle.is-on {
|
||||
background-color: var(--state-button-background-color-enabled);
|
||||
color: var(--state-button-text-color);
|
||||
}
|
||||
|
||||
#toggle.is-on:hover, #toggle.is-on:focus {
|
||||
background-color: var(--state-button-background-color-enabled-hover);
|
||||
}
|
||||
|
||||
#toggle.is-on:active {
|
||||
background-color: var(--state-button-background-color-enabled);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Configuration section */
|
||||
|
||||
#config input, select {
|
||||
border: 1px solid var(--border-color);
|
||||
border-radius: var(--border-radius-input);
|
||||
font-size: var(--text-large);
|
||||
color: var(--text-color);
|
||||
gap: var(--spacer-medium);
|
||||
outline: none;
|
||||
}
|
||||
|
||||
#config input {
|
||||
background-color: var(--text-input-background-color);
|
||||
box-sizing: border-box;
|
||||
width: 100%;
|
||||
padding: var(--spacer-tiny) var(--spacer-medium);
|
||||
}
|
||||
|
||||
#config input::placeholder {
|
||||
color: var(--text-input-placeholder-color);
|
||||
}
|
||||
|
||||
#config input:hover {
|
||||
border: 1px solid var(--border-color-hover);
|
||||
transition: var(--speed-fast);
|
||||
}
|
||||
|
||||
#config input:focus {
|
||||
transition: var(--speed-fast);
|
||||
border: 1px solid var(--border-color-hover);
|
||||
background-color: var(--text-input-background-color-focus);
|
||||
box-shadow: var(--text-input-shadow-active);
|
||||
}
|
||||
|
||||
#config select {
|
||||
padding: var(--spacer-small);
|
||||
padding-right: var(--spacer-select);
|
||||
box-shadow: var(--shadow);
|
||||
appearance: none;
|
||||
background: var(--select-icon);
|
||||
background-position-x: calc(100% - 2px);
|
||||
background-position-y: calc(50% - 2px);
|
||||
background-color: var(--select-background-color);
|
||||
}
|
||||
|
||||
#config select:active, #config select:focus {
|
||||
outline: none;
|
||||
box-shadow: var(--shadow-focus);
|
||||
}
|
||||
|
||||
label {
|
||||
font-size: var(--large-text);
|
||||
#config label {
|
||||
font-size: var(--text-large);
|
||||
}
|
||||
|
||||
.primary-prompt {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
text-wrap: nowrap;
|
||||
gap: 6px;
|
||||
gap: var(--spacer-small);
|
||||
align-content: center;
|
||||
}
|
||||
|
||||
|
@ -144,53 +330,55 @@ label {
|
|||
#header-pov {
|
||||
margin-top: 8px;
|
||||
margin-bottom: 21.25px;
|
||||
transition: .5s;
|
||||
}
|
||||
|
||||
/* Other pronouns */
|
||||
|
||||
#other {
|
||||
display: grid;
|
||||
overflow: hidden;
|
||||
margin-top: 8px;
|
||||
margin-left: 18px;
|
||||
gap: 6px;
|
||||
height: 297px;
|
||||
margin-top: var(--spacer-medium);
|
||||
margin-left: var(--spacer-other);
|
||||
gap: var(--spacer-small);
|
||||
height: var(--total-height-other);
|
||||
}
|
||||
|
||||
#other li {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 2fr;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
gap: var(--spacer-small);
|
||||
}
|
||||
|
||||
#other > li > label {
|
||||
font-size: var(--small-text);
|
||||
#other li label {
|
||||
font-size: var(--text-small);
|
||||
text-align: right;
|
||||
text-wrap: nowrap;
|
||||
}
|
||||
|
||||
#other > li > input {
|
||||
font-size: var(--small-text);
|
||||
#other li input {
|
||||
font-size: var(--text-small);
|
||||
}
|
||||
|
||||
#other > li > select {
|
||||
font-size: var(--small-text);
|
||||
#other li select {
|
||||
font-size: var(--text-small);
|
||||
width: min-content;
|
||||
}
|
||||
|
||||
#also > li {
|
||||
/* Also replacements */
|
||||
|
||||
#also li {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
margin-top: 6px;
|
||||
height: 26px;
|
||||
gap: var(--spacer-small);
|
||||
margin-top: var(--spacer-small);
|
||||
height: var(--total-height-also-li);
|
||||
}
|
||||
|
||||
.lhs {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
|
||||
.delete {
|
||||
color: var(--icon-color);
|
||||
background-color: transparent;
|
||||
|
@ -198,10 +386,9 @@ label {
|
|||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
box-shadow: 0;
|
||||
visibility: block;
|
||||
scale: 1;
|
||||
transition: all .1s allow-discrete;
|
||||
transition: all var(--speed-fast) allow-discrete;
|
||||
}
|
||||
|
||||
.delete:hover, .delete:focus {
|
||||
|
@ -209,119 +396,107 @@ label {
|
|||
outline: none;
|
||||
}
|
||||
|
||||
.hide-button > button {
|
||||
.delete-disabled button {
|
||||
visibility: hidden;
|
||||
scale: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: var(--color-l-gray-30);
|
||||
color: var(--text-color);
|
||||
width: 350px; /* Same as width of add-on viewer on my system */
|
||||
height: 500px; /* Max height allowed TODO verify on wi-fi */
|
||||
padding-left: 10px;
|
||||
padding-right: 15px;
|
||||
font-family: 'Inter', sans-serif;
|
||||
font-feature-settings: var(--font-features);
|
||||
font-size: var(--small-text);
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
html {
|
||||
scrollbar-color: var(--scrollbar-color) transparent;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: var(--large-text);
|
||||
font-weight: 600;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style: none;
|
||||
padding-left: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
|
||||
/* Button grid */
|
||||
|
||||
#button-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 7fr 5fr;
|
||||
gap: 8px;
|
||||
margin-top: 34px;
|
||||
gap: var(--spacer-medium);
|
||||
margin-top: var(--spacer-button-grid);
|
||||
}
|
||||
|
||||
button:not(.delete) {
|
||||
#button-grid button {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
font-weight: 600;
|
||||
border: 1px solid var(--border-color);
|
||||
font-size: var(--large-text);
|
||||
padding: 6px;
|
||||
cursor: pointer;
|
||||
box-shadow: var(--shadow);
|
||||
background-color: var(--color-l-gray-20);
|
||||
color: var(--text-color);
|
||||
}
|
||||
|
||||
#button-grid > button {
|
||||
border-radius: .5em;
|
||||
border-radius: var(--border-radius-input);
|
||||
width: 100%;
|
||||
gap: 8px;
|
||||
text-align: center;
|
||||
gap: var(--spacer-medium);
|
||||
}
|
||||
|
||||
button:not(.delete) > svg {
|
||||
transform: translateY(-.15em);
|
||||
}
|
||||
|
||||
#button-grid > button > p {
|
||||
#button-grid button p {
|
||||
margin: 0;
|
||||
font-family: 'Inter', sans-serif;
|
||||
font-feature-settings: var(--font-features);
|
||||
text-align: center;
|
||||
transform: translateY(-.15em);
|
||||
}
|
||||
|
||||
button:not(.delete):hover {
|
||||
transition-duration: 0.3s;
|
||||
box-shadow: var(--shadow-hover);
|
||||
background-color: var(--color-l-gray-10);
|
||||
}
|
||||
|
||||
button:not(.delete):active {
|
||||
transition: 0.3s;
|
||||
box-shadow: var(--shadow-active);
|
||||
}
|
||||
|
||||
#button-grid > button:active > p {
|
||||
transition: 0.3s;
|
||||
#button-grid button:active p {
|
||||
transition: var(--speed-slow);
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
button:not(.delete):active > svg {
|
||||
transition: 0.3s;
|
||||
transform: translateY(0);
|
||||
}
|
||||
/* Save */
|
||||
|
||||
/* Save button */
|
||||
#save {
|
||||
background-color: var(--color-l-gray-90);
|
||||
color: var(--color-l-gray-10);
|
||||
background-color: var(--save-button-background-color);
|
||||
color: var(--save-button-text-color);
|
||||
}
|
||||
|
||||
#save:hover {
|
||||
background-color: var(--color-l-gray-80);
|
||||
#save:hover, #save:focus {
|
||||
background-color: var(--save-button-background-color-hover);
|
||||
}
|
||||
|
||||
#save:active {
|
||||
background-color: var(--color-l-gray-90);
|
||||
background-color: var(--save-button-background-color-active);
|
||||
}
|
||||
|
||||
/* Restore */
|
||||
|
||||
#restore {
|
||||
background-color: var(--button-background-color);
|
||||
color: var(--text-color);
|
||||
}
|
||||
|
||||
#restore:hover, #restore:focus {
|
||||
background-color: var(--button-background-color-hover);
|
||||
}
|
||||
|
||||
#restore:active {
|
||||
background-color: var(--button-background-color-active);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Links section */
|
||||
|
||||
#links {
|
||||
text-align: right;
|
||||
padding: var(--text-small) 0;
|
||||
}
|
||||
|
||||
#links li {
|
||||
margin-bottom: var(--spacer-small);
|
||||
}
|
||||
|
||||
#links a {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
text-align: right;
|
||||
color: var(--link-color);
|
||||
text-decoration: underline;
|
||||
text-decoration-color: color-mix(in srgb, currentColor 22%, transparent);
|
||||
transition-duration: var(--speed-fast);
|
||||
}
|
||||
|
||||
#links a:hover, #links a:focus{
|
||||
color: var(--text-color);
|
||||
outline: none;
|
||||
}
|
||||
|
||||
#links a p {
|
||||
margin: 0;
|
||||
font-size: var(--text-small);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Accessibility */
|
||||
|
||||
.visually-hidden {
|
||||
clip: rect(0 0 0 0);
|
||||
clip-path: inset(50%);
|
||||
|
@ -334,111 +509,7 @@ button:not(.delete):active > svg {
|
|||
|
||||
|
||||
|
||||
/* Site enabled section */
|
||||
|
||||
#site-enabled {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
background-color: var(--color-l-gray-10);
|
||||
padding: 10px;
|
||||
border: 1px solid var(--border-color);
|
||||
border-radius: .5em;
|
||||
margin-top: var(--small-text);
|
||||
}
|
||||
|
||||
#site-details {
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
#state {
|
||||
color: var(--color-l-red-20);
|
||||
transition: .3s;
|
||||
}
|
||||
|
||||
#state.is-on {
|
||||
color: var(--color-l-green-20);
|
||||
transition: .3s;
|
||||
}
|
||||
|
||||
#toggle {
|
||||
border-radius: 3em;
|
||||
padding: 12px;
|
||||
align-self: center;
|
||||
margin-left: 15px;
|
||||
margin-right: 5px;
|
||||
background-color: var(--color-l-red-20);
|
||||
color: var(--color-l-gray-10);
|
||||
}
|
||||
|
||||
#toggle:hover {
|
||||
background-color: var(--color-l-red-10);
|
||||
}
|
||||
|
||||
#toggle:active {
|
||||
background-color: var(--color-l-red-20);
|
||||
}
|
||||
|
||||
#toggle.is-on {
|
||||
background-color: var(--color-l-green-20);
|
||||
color: var(--color-l-gray-10);
|
||||
}
|
||||
|
||||
#toggle.is-on:hover {
|
||||
background-color: var(--color-l-green-10);
|
||||
}
|
||||
|
||||
#toggle.is-on:active {
|
||||
background-color: var(--color-l-green-20);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Configuration section */
|
||||
|
||||
#configuration {
|
||||
background-color: var(--color-l-gray-10);
|
||||
padding: 16px 10px;
|
||||
border: 1px solid var(--border-color);
|
||||
border-radius: .5em;
|
||||
margin-top: var(--small-text);
|
||||
}
|
||||
|
||||
label {
|
||||
font-size: var(--large-text);
|
||||
}
|
||||
|
||||
.primary-promt input {
|
||||
font-size: 50px;
|
||||
}
|
||||
|
||||
.lhs {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Links section */
|
||||
|
||||
#links {
|
||||
text-align: right;
|
||||
padding: var(--small-text) 0;
|
||||
}
|
||||
|
||||
#links > li {
|
||||
margin-bottom: 6px;
|
||||
}
|
||||
|
||||
a {
|
||||
color: var(--link-color);
|
||||
text-decoration: underline;
|
||||
text-decoration-color: color-mix(in srgb, currentColor 22%, transparent);
|
||||
transition-duration: 0.1s;
|
||||
}
|
||||
|
||||
a:hover{
|
||||
color: var(--text-color);
|
||||
}
|
||||
|
||||
/* Transition elements */
|
||||
|
||||
.hide {
|
||||
height: 0 !important;
|
||||
|
@ -450,12 +521,22 @@ a:hover{
|
|||
opacity: 0 !important;
|
||||
}
|
||||
|
||||
.unhide {
|
||||
.unhide-slow {
|
||||
transition:
|
||||
height var(--hide-speed) ease-out,
|
||||
padding-top var(--hide-speed) ease-out,
|
||||
padding-bottom var(--hide-speed) ease-out,
|
||||
margin-top var(--hide-speed) ease-out,
|
||||
margin-bottom var(--hide-speed) ease-out,
|
||||
opacity var(--hide-speed) linear !important;
|
||||
height var(--speed-slow) ease-out,
|
||||
padding-top var(--speed-slow) ease-out,
|
||||
padding-bottom var(--speed-slow) ease-out,
|
||||
margin-top var(--speed-slow) ease-out,
|
||||
margin-bottom var(--speed-slow) ease-out,
|
||||
opacity var(--speed-slow) linear !important;
|
||||
}
|
||||
|
||||
.unhide-fast {
|
||||
transition:
|
||||
height var(--speed-fast) ease-out,
|
||||
padding-top var(--speed-fast) ease-out,
|
||||
padding-bottom var(--speed-fast) ease-out,
|
||||
margin-top var(--speed-fast) ease-out,
|
||||
margin-bottom var(--speed-fast) ease-out,
|
||||
opacity var(--speed-fast) linear !important;
|
||||
}
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
<body>
|
||||
<main>
|
||||
<div id="site-enabled">
|
||||
<section id="site-state">
|
||||
<div id="site-details">
|
||||
<h1 id="domain">example.com</h1>
|
||||
<p>MetamorPOV replacements are <b id="state">disabled</b> for this website</p>
|
||||
|
@ -16,9 +16,9 @@
|
|||
<button type="button" id="toggle" title="Toggle to enable">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v10"/><path d="M18.4 6.6a9 9 0 1 1-12.77.04"/></svg>
|
||||
</button>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div id="configuration">
|
||||
<section id="config">
|
||||
<form id="options">
|
||||
<h2 class="visually-hidden">Name</h2>
|
||||
|
||||
|
@ -40,7 +40,7 @@
|
|||
</select>
|
||||
</div>
|
||||
|
||||
<ul id="other" class="hide unhide">
|
||||
<ul id="other" class="hide unhide-slow">
|
||||
<li>
|
||||
<label for="subjective">Subjective</label>
|
||||
<input type="text" id="subjective" name="subjective" placeholder="e.g. he, they">
|
||||
|
@ -125,25 +125,25 @@
|
|||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<ul id="links">
|
||||
<li>
|
||||
<a href="https://git.viscogliosi-pate.com/jean/metamorpov/wiki" target="_blank">
|
||||
How to write for MetamorPOV
|
||||
<p>How to write for MetamorPOV</p>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M7 7h10v10"/><path d="M7 17 17 7"/></svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="mailto:metamorpov@viscogliosi-pate.com" target="_blank">
|
||||
Report an issue
|
||||
<p>Report an issue</p>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M7 7h10v10"/><path d="M7 17 17 7"/></svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://git.viscogliosi-pate.com/jean/metamorpov" target="_blank">
|
||||
Source code
|
||||
<p>Source code</p>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M7 7h10v10"/><path d="M7 17 17 7"/></svg>
|
||||
</a>
|
||||
</li>
|
||||
|
|
|
@ -160,7 +160,7 @@ function saveAlso() {
|
|||
/* Creates the HTML for a new also replacement */
|
||||
function createLi(index) {
|
||||
const li = document.createElement("li");
|
||||
li.classList.add("unhide");
|
||||
li.classList.add("unhide-fast");
|
||||
|
||||
const lhs = document.createElement("input");
|
||||
lhs.type = "text";
|
||||
|
@ -250,10 +250,10 @@ function addFinal(also, index) {
|
|||
function setFinal(li, isFinal) {
|
||||
if (isFinal) {
|
||||
li.querySelector(".lhs").addEventListener("change", addLi);
|
||||
li.classList.add("hide-button");
|
||||
li.classList.add("delete-disabled");
|
||||
} else {
|
||||
li.querySelector(".lhs").removeEventListener("change", addLi);
|
||||
li.classList.remove("hide-button");
|
||||
li.classList.remove("delete-disabled");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue