diff --git a/ext/src/ui/dark-widgets.css b/ext/src/ui/dark-widgets.css deleted file mode 100644 index eb9f12d..0000000 --- a/ext/src/ui/dark-widgets.css +++ /dev/null @@ -1,94 +0,0 @@ -button, -input, -textarea, -.select-wrapper { - background-color: #474749; - border: initial; - border-radius: 2px; - color: white; - overflow: hidden; -} -button:not(:disabled):hover, -.select-wrapper:not(:disabled):hover { - background-color: #505054; -} -button:not(:disabled):hover:active, -.select-wrapper:not(:disabled):hover:active { - background-color: #5c5c5e; -} - -:-moz-any(button, input, textarea, select):focus { - box-shadow: 0 0 0 1px #0a84ff inset, - 0 0 0 1px #0a84ff, - 0 0 0 4px rgba(10, 132, 255, 0.3); -} - -:-moz-any(button, input, textarea, select)::-moz-focus-inner { - all: initial; -} - -button:disabled, -input:disabled { - opacity: 0.35; -} - -button, -input, -textarea, -select { - padding: 4px 8px; -} - -/* No inset for spinbox control */ -input[type="number"] { - padding-inline-end: initial; -} - -button, -select { - /* Override mac.css height */ - height: initial !important; -} - -button:default { - background-color: var(--blue-60); - color: white !important; -} -button:default:hover { - background-color: var(--blue-70); -} -button:default:hover:active { - background-color: var(--blue-80); -} - -.select-wrapper { - --arrow-width: 20px; - position: relative; - display: inline-block; -} -.select-wrapper::after { - align-items: center; - content: "▼"; - display: flex; - height: 100%; - margin-right: 4px; - justify-content: center; - pointer-events: none; - position: absolute; - right: 0; - top: 0; - width: var(--arrow-width); -} -select { - -moz-appearance: none; - background: inherit; - border: initial; - color: inherit; - padding-right: calc(8px + var(--arrow-width)); -} -option { - color: white !important; -} -option:disabled { - color: rgba(255, 255, 255, 0.25) !important; -} diff --git a/ext/src/ui/options/index.tsx b/ext/src/ui/options/index.tsx index 250c3f4..0ee8e12 100644 --- a/ext/src/ui/options/index.tsx +++ b/ext/src/ui/options/index.tsx @@ -32,37 +32,6 @@ browser.runtime.getPlatformInfo() link.href = "styles/mac.css"; break; } - - // Fix issue with input[type="number"] height - case "linux": { - link.href = "styles/linux.css"; - - const input = document.createElement("input"); - const inputWrapper = document.createElement("div"); - - inputWrapper.append(input); - document.documentElement.append(inputWrapper); - - input.type = "text"; - const textInputHeight = window.getComputedStyle(input).height; - input.type = "number"; - const numberInputHeight = window.getComputedStyle(input).height; - - inputWrapper.remove(); - - if (numberInputHeight !== textInputHeight) { - const style = document.createElement("style"); - style.textContent = ` - input[type="number"] { - height: ${textInputHeight}; - } - `; - - document.body.append(style); - } - - break; - } } if (link.href) { diff --git a/ext/src/ui/options/styles/index.css b/ext/src/ui/options/styles/index.css index ad58acf..ee18bc7 100644 --- a/ext/src/ui/options/styles/index.css +++ b/ext/src/ui/options/styles/index.css @@ -8,51 +8,22 @@ --border-color: var(--grey-50); --secondary-color: var(--grey-10-a60); } - - a { color: var(--blue-40); } - a:hover { color: var(--blue-50); } - a:hover:active { color: var(--blue-60); } - - body { - background: #202023 !important; - color: white !important; - } - - .editable-list { - background-color: #202023 !important; - color: white !important; - } - .editable-list__item:not(.editable-list__item--selected) .editable-list__title { - padding: 0 8px !important; - } - .editable-list__item:nth-child(even) { - background-color: initial !important; - } - .editable-list__item:nth-child(odd) { - background-color: var(--grey-80) !important; - } - - .about, - .about > summary { - background-color: rgba(255, 255, 255, 0.1) !important; - } - .about hr { - border-top: 1px solid rgba(255, 255, 255, 0.1) !important; - } - - .about__link > img { - filter: invert(1); - } -} - -*:invalid { - box-shadow: 0 0 1.5px 1px var(--red-50); } #root { padding: 20px 10px; } +body { + background: var(--box-background) !important; + color: var(--box-color) !important; +} + +a { color: var(--blue-40); } +a:hover { color: var(--blue-50); } +a:hover:active { color: var(--blue-60); } + + button.ghost { width: 24px !important; height: 24px !important; @@ -64,7 +35,6 @@ button.ghost { button.ghost:not(:hover) { background-color: initial; - border: initial; } @@ -346,9 +316,9 @@ button.ghost:not(:hover) { .editable-list { - background-color: -moz-field; + background-color: var(--box-background); border: 1px solid var(--border-color); - color: -moz-fieldtext; + color: var(--box-color); justify-content: end; padding: 5px; } @@ -380,32 +350,29 @@ button.ghost:not(:hover) { .editable-list__item { align-items: center; display: flex; - height: 30px; + height: 34px; padding: 0 5px; } -.editable-list__item:nth-child(even) { - background-color: -moz-eventreerow; -} .editable-list__item:nth-child(odd) { - background-color: -moz-oddtreerow; + background-color: var(--grey-20); } .editable-list__item--selected { - background-color: -moz-cellhighlight !important; - color: -moz-cellhighlighttext !important; + background-color: var(--blue-50-a30) !important; } .editable-list__title { flex: 1; font-family: monospace; overflow: hidden; + padding: 4px; text-overflow: ellipsis; white-space: nowrap; } .editable-list__item:not(.editable-list__item--selected) > .editable-list__title { - padding: 0 5px; + padding: 0 8px; } .editable-list__title + button { @@ -433,7 +400,6 @@ button.ghost:not(:hover) { .about { border-radius: 2px; margin-bottom: 40px; - overflow: hidden; } .about > summary { @@ -504,3 +470,22 @@ button.ghost:not(:hover) { text-transform: uppercase; vertical-align: text-top; } + + +@media (prefers-color-scheme: dark) { + .editable-list__item:nth-child(odd) { + background-color: var(--grey-80); + } + + .about, + .about > summary { + background-color: rgba(255, 255, 255, 0.1) !important; + } + .about hr { + border-top: 1px solid rgba(255, 255, 255, 0.1) !important; + } + + .about__link > img { + filter: invert(1); + } +} diff --git a/ext/src/ui/options/styles/linux.css b/ext/src/ui/options/styles/linux.css deleted file mode 100644 index 776055b..0000000 --- a/ext/src/ui/options/styles/linux.css +++ /dev/null @@ -1,15 +0,0 @@ -:root { - --border-color: graytext; - --secondary-color: graytext; -} - -body { - padding: 20px 0; -} - -#root { - background-color: -moz-dialog; - border-radius: 5px; - color: -moz-dialogtext; - overflow: hidden; -} diff --git a/ext/src/ui/options/styles/mac.css b/ext/src/ui/options/styles/mac.css index 37aa4b1..2cc54b0 100644 --- a/ext/src/ui/options/styles/mac.css +++ b/ext/src/ui/options/styles/mac.css @@ -8,26 +8,6 @@ input { font: inherit; } -button:not([disabled]):hover:active { - color: -moz-mac-buttonactivetext; -} -button[default]:not([disabled]):not(:-moz-window-inactive) { - color: -moz-mac-defaultbuttontext; -} -button[default]:not(:hover):active { - color: ButtonText; -} - -button, -select { - height: 22px; -} - -button.ghost { - width: 22px !important; - height: 22px !important; -} - input[type="checkbox"], input[type="radio"] { height: 16px; diff --git a/ext/src/ui/photon-colors.css b/ext/src/ui/photon-colors.css index cc95ac3..4dc654d 100644 --- a/ext/src/ui/photon-colors.css +++ b/ext/src/ui/photon-colors.css @@ -21,7 +21,7 @@ --blue-40: #45a1ff; --blue-50: #0a84ff; - --blue-50-a30: rgba(10, 132, 255, 0.3); + --blue-50-a30: #0a84ff4d; --blue-60: #0060df; --blue-70: #003eaa; --blue-80: #002275; @@ -41,12 +41,14 @@ --yellow-50: #ffe900; --yellow-60: #d7b600; + --yellow-60-a30: #d7b6004d; --yellow-70: #a47f00; --yellow-80: #715100; --yellow-90: #3e2800; --red-50: #ff0039; --red-60: #d70022; + --red-60-a30: #d700225d; --red-70: #a4000f; --red-80: #5a0002; --red-90: #3e0200; @@ -60,6 +62,7 @@ --grey-10: #f9f9fa; --grey-10-a10: rgba(249, 249, 250, 0.1); --grey-10-a20: rgba(249, 249, 250, 0.2); + --grey-10-a30: rgba(249, 249, 250, 0.3); --grey-10-a40: rgba(249, 249, 250, 0.4); --grey-10-a60: rgba(249, 249, 250, 0.6); --grey-10-a80: rgba(249, 249, 250, 0.8); diff --git a/ext/src/ui/photon-widgets.css b/ext/src/ui/photon-widgets.css new file mode 100644 index 0000000..d3b8470 --- /dev/null +++ b/ext/src/ui/photon-widgets.css @@ -0,0 +1,162 @@ +:root { + --shadow-10: 0 1px 4px rgba(12, 12, 13, 0.1); + --shadow-20: 0 2px 8px rgba(12, 12, 13, 0.1); + --shadow-30: 0 4px 16px rgba(12, 12, 13, 0.1); + + --box-background: var(--white-100); + --box-color: var(--grey-90); + + --focus-box-shadow: + 0 0 0 1px var(--blue-50) + , 0 0 0 4px var(--blue-50-a30); + + --button-background: var(--grey-90-a10); + --button-background-hover: var(--grey-90-a20); + --button-background-active: var(--grey-90-a30); + --button-background-primary: var(--blue-60); + --button-background-primary-hover: var(--blue-70); + --button-background-primary-active: var(--blue-80); + --button-color: var(--grey-90); + --button-color-primary: var(--white-100); + + --field-background: var(--box-background); + --field-color: var(--box-color); + --field-placeholder-color: var(--grey-50); + --field-border-color: var(--grey-90-a20); + --field-border-color-hover: var(--grey-90-a30); + + --field-box-shadow-warning: + 0 0 0 1px var(--yellow-60) + , 0 0 0 4px var(--yellow-60-a30); + --field-box-shadow-error: + 0 0 0 1px var(--red-60) + , 0 0 0 4px var(--red-60-a30); +} + +@media (prefers-color-scheme: dark) { + :root { + --box-background: #202023; + --box-color: var(--white-100); + + --button-background: #474749; + --button-background-hover: #505054; + --button-background-active: #5c5c5e; + --button-color: var(--white-100); + + --field-placeholder-color: var(--grey-30); + --field-border-color: var(--grey-10-a20); + --field-border-color-hover: var(--grey-10-a30); + } +} + + +button, +input, +textarea, +.select-wrapper { + border: 1px solid transparent; + border-radius: 2px; + overflow: hidden; +} + +button, +.select-wrapper { + background-color: var(--button-background); + color: var(--button-color); +} +button:not(:disabled):hover, +.select-wrapper:not(:disabled):hover { + background-color: var(--button-background-hover); +} +button:not(:disabled):active, +.select-wrapper:not(:disabled):hover:active { + background-color: var(--button-background-active); +} + +input, +textarea { + background-color: var(--field-background); + border: 1px solid var(--field-border-color); + color: var(--field-color); +} + +input:hover, +textarea:hover { + border-color: var(--field-border-color-hover); +} + +:-moz-any(button, input, textarea, select):focus { + border-color: var(--blue-50); + box-shadow: var(--focus-box-shadow); + outline: initial; +} + +:-moz-any(button, input, textarea, select):focus::-moz-focus-inner { + border: initial; +} + +input:invalid, +textarea:invalid { + box-shadow: var(--field-box-shadow-error) !important; + border-color: var(--red-60) !important; +} + +button:disabled, +input:disabled { + opacity: 0.35; +} + +button, +input, +textarea, +select { + padding: 4px 8px; +} + +/* No inset for spinbox control */ +input[type="number"] { + padding-inline-end: 2px; +} + +button:default { + background-color: var(--button-background-primary); + color: white !important; +} +button:default:hover { + background-color: var(--button-background-primary-hover); +} +button:default:hover:active { + background-color: var(--button-background-primary-active); +} + +.select-wrapper { + --arrow-width: 20px; + position: relative; + display: inline-block; +} +.select-wrapper::after { + align-items: center; + content: "▼"; + display: flex; + height: 100%; + margin-right: 4px; + justify-content: center; + pointer-events: none; + position: absolute; + right: 0; + top: 0; + width: var(--arrow-width); +} +select { + -moz-appearance: none; + background: inherit; + border: initial; + color: inherit; + padding-right: calc(8px + var(--arrow-width)); +} +option { + color: white !important; +} +option:disabled { + color: rgba(255, 255, 255, 0.25) !important; +} diff --git a/ext/src/ui/template.html b/ext/src/ui/template.html index 6afefc5..7457071 100644 --- a/ext/src/ui/template.html +++ b/ext/src/ui/template.html @@ -4,7 +4,7 @@ - +