@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; --text-large: 12pt; --text-small: 10pt; --window-margin: 10px; --window-width: 360px; /* Equal to width of add-ons panel */ --window-height: 515px; /* Equal to height add-ons panel */ --scrollbar-width: 5px; /* Estimated! */ --toggle-margin-left: 15px; --toggle-margin-right: 5px; --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: 294px; --total-height-also-li: 26px; --total-height-prompt: 33.5px; } /* Light theme */ :root { --text-color: var(--color-l-gray-120); --desc-color: blue; --desc-color: var(--color-l-gray-110); --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); --body-background-color: var(--color-l-gray-30); --section-background-color: var(--color-l-gray-10); /* 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); } /* 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-50); --icon-color-hover: var(--color-d-gray-40); --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-50); --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); width: var(--window-width); height: var(--window-height); padding-left: var(--window-margin); padding-right: calc(var(--window-margin) + var(--scrollbar-width)); margin: auto; } 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); } ul { list-style: none; padding-left: 0; margin: 0; } /* 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; } button:not(.delete):hover { transition-duration: var(--speed-slow); box-shadow: var(--shadow-hover); } 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; cursor: default; } #site-details h1 { font-size: var(--text-large); font-weight: 600; overflow: hidden; text-overflow: ellipsis; } #site-details p { color: var(--desc-color); } #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); 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); } #config label { font-size: var(--text-large); } .primary-prompt { display: flex; align-items: center; text-wrap: nowrap; gap: var(--spacer-small); align-content: center; height: var(--total-height-prompt); margin-bottom: var(--spacer-large); } /* Other pronouns */ #other { display: grid; overflow: hidden; 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: var(--spacer-small); } #other li label { font-size: var(--text-small); color: var(--desc-color); text-align: right; text-wrap: nowrap; } #other li input { font-size: var(--text-small); } #other li select { font-size: var(--text-small); width: min-content; } #other-final { margin-bottom: var(--spacer-large); } /* Also replacements */ #also li { display: flex; align-items: center; gap: var(--spacer-small); margin-top: var(--spacer-small); height: var(--total-height-also-li); } #also li label { color: var(--desc-color); } .lhs { text-align: right; } .delete { color: var(--icon-color); background-color: transparent; width: fit-content; margin: 0; padding: 0; border: 0; visibility: block; scale: 1; transition: all var(--speed-fast) allow-discrete; } .delete:hover, .delete:focus { color: var(--icon-color-hover); outline: none; } .delete-disabled button { visibility: hidden; scale: 0; } /* Button grid */ #button-grid { display: grid; grid-template-columns: 7fr 5fr; gap: var(--spacer-medium); margin-top: var(--spacer-button-grid); } #button-grid button { display: flex; justify-content: center; align-items: center; border-radius: var(--border-radius-input); width: 100%; gap: var(--spacer-medium); } #button-grid button p { margin: 0; text-align: center; transform: translateY(-.15em); } #button-grid button:active p { transition: var(--speed-slow); transform: translateY(0); } /* Save */ #save { background-color: var(--save-button-background-color); color: var(--save-button-text-color); } #save:hover, #save:focus { background-color: var(--save-button-background-color-hover); } #save:active { 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%); height: 1px; overflow: hidden; position: absolute; white-space: nowrap; width: 1px; } /* Transition elements */ .hide { height: 0 !important; overflow: hidden !important; opacity: 0 !important; } .unhide-slow { transition: height var(--speed-slow) ease-out, opacity var(--speed-slow) linear !important; } .unhide-fast { transition: height var(--speed-fast) ease-out, opacity var(--speed-fast) linear !important; }