example.com
MetamorPOV replacements are disabled for this website
@@ -16,9 +16,9 @@ --
+
- @@ -125,25 +125,25 @@
diff --git a/src/css/colors.css b/src/css/colors.css new file mode 100644 index 0000000..51e1b48 --- /dev/null +++ b/src/css/colors.css @@ -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); +} diff --git a/src/css/shadows.css b/src/css/shadows.css new file mode 100644 index 0000000..070da28 --- /dev/null +++ b/src/css/shadows.css @@ -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); + } +} diff --git a/src/popup.css b/src/popup.css index affd7cb..f6aed49 100644 --- a/src/popup.css +++ b/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,") 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,") 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,") 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; } diff --git a/src/popup.html b/src/popup.html index 38be177..d14a594 100644 --- a/src/popup.html +++ b/src/popup.html @@ -8,7 +8,7 @@
MetamorPOV replacements are disabled for this website
@@ -16,9 +16,9 @@ -How to write for MetamorPOV
Report an issue
Source code