summaryrefslogtreecommitdiffstats
path: root/comm/mail/themes/shared/mail/widgets.css
diff options
context:
space:
mode:
Diffstat (limited to 'comm/mail/themes/shared/mail/widgets.css')
-rw-r--r--comm/mail/themes/shared/mail/widgets.css370
1 files changed, 370 insertions, 0 deletions
diff --git a/comm/mail/themes/shared/mail/widgets.css b/comm/mail/themes/shared/mail/widgets.css
new file mode 100644
index 0000000000..e2e20bec85
--- /dev/null
+++ b/comm/mail/themes/shared/mail/widgets.css
@@ -0,0 +1,370 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+/* This file defines the various widgets used across the application. */
+
+/* Default Button Styles */
+
+.button {
+ --icon-size: 16px;
+ appearance: none;
+ background-color: var(--button-background-color);
+ color: var(--button-text-color);
+ border: var(--button-border-size) solid var(--button-border-color);
+ border-radius: var(--button-border-radius);
+ padding: var( --button-padding);
+ margin: var(--button-margin);
+ min-width: 6em;
+ -moz-context-properties: fill, stroke;
+ fill: color-mix(in srgb, currentColor 20%, transparent);
+ stroke: currentColor;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ font-size: inherit;
+}
+
+.button:enabled:hover,
+.select:enabled:hover {
+ color: var(--button-hover-text-color);
+ background-color: var(--button-hover-background-color);
+ border-color: var(--button-border-color);
+}
+
+.button:focus-visible,
+.select:focus-visible {
+ outline: var(--focus-outline);
+ outline-offset: var(--focus-outline-offset);
+}
+
+.button[aria-pressed="true"] {
+ box-shadow: var(--button-pressed-shadow);
+}
+
+.button:enabled:hover:active,
+.select:enabled:hover:active {
+ background-color: var(--button-active-background-color);
+ border-color: var(--button-border-color);
+}
+
+.button:disabled,
+.select:disabled {
+ opacity: 0.4;
+ pointer-events: none;
+}
+
+.button[hidden],
+.select[hidden] {
+ display: none;
+}
+
+.button:dir(rtl),
+.button:-moz-locale-dir(rtl) {
+ background-position-x: right var(--button-padding);
+}
+
+.button > img {
+ pointer-events: none;
+}
+
+.button.icon-button {
+ background-image: none;
+ background-size: var(--icon-size);
+ background-position: var(--button-padding) center;
+ background-repeat: no-repeat;
+ padding-inline-start: calc(var(--button-padding) * 2 + var(--icon-size));
+ padding-inline-end: calc(var(--button-padding) * 2);
+ min-width: 0;
+}
+
+.button.icon-only {
+ background-position: center;
+ /* 2px at the end for the border. */
+ height: calc(var(--button-padding) * 2 + var(--icon-size) + 2px);
+ padding: 0;
+ aspect-ratio: 1;
+}
+
+.button.toolbar-button,
+.button.unified-toolbar-button {
+ background-color: transparent;
+ color: currentColor;
+ border-color: transparent;
+ margin-block: 4px;
+}
+
+.button.toolbar-button[open="true"],
+.button.toolbar-button:not([disabled="true"]):hover,
+.button.unified-toolbar-button:enabled:is([aria-pressed="true"], :hover) {
+ color: var(--button-hover-text-color);
+ background-color: var(--toolbar-button-hover-background-color);
+ border-color: var(--toolbar-button-hover-border-color);
+}
+
+.button.toolbar-button[open="true"] {
+ color: var(--button-hover-text-color);
+}
+
+.button.unified-toolbar-button[aria-pressed="true"]:enabled {
+ color: var(--button-hover-text-color);
+ box-shadow: var(--button-pressed-shadow);
+}
+
+.button.unified-toolbar-button[aria-pressed="true"]:enabled:hover {
+ background-color: var(--toolbar-button-hover-checked-color);
+}
+
+.button.toolbar-button:not([disabled="true"]):hover:active,
+.button.unified-toolbar-button:enabled:hover:active {
+ background-color: var(--toolbar-button-active-background-color);
+ border-color: var(--toolbar-button-active-border-color);
+}
+
+@media (-moz-windows-accent-color-in-titlebar) {
+ #navigation-toolbox :is(.unified-toolbar-button, .toolbar-button):not(:-moz-lwtheme):focus-visible {
+ outline-color: accentColorText;
+ }
+}
+
+/* Primary Button Styles */
+
+.button.button-primary {
+ background-color: var(--button-primary-background-color);
+ color: var(--button-primary-text-color);
+ border-color: var(--button-primary-border-color);
+}
+
+.button.button-primary:hover {
+ background-color: var(--button-primary-hover-background-color);
+ color: var(--button-primary-text-color);
+ border-color: var(--button-primary-border-color);
+}
+
+@media (prefers-contrast) {
+ .button.button-primary:not(:-moz-lwtheme):hover {
+ border-color: var(--button-primary-hover-border-color);
+ }
+}
+
+.button.button-primary:hover:active {
+ background-color: var(--button-primary-active-background-color);
+ border-color: var(--button-primary-border-color);
+}
+
+/* Destructive Button Styles */
+
+.button.button-destructive {
+ background-color: var(--button-destructive-background-color);
+ color: var(--button-destructive-text-color);
+ border-color: var(--button-destructive-border-color);
+}
+
+.button.button-destructive:hover {
+ background-color: var(--button-destructive-hover-background-color);
+ border-color: var(--button-destructive-border-color);
+}
+
+.button.button-destructive:hover:active {
+ background-color: var(--button-destructive-active-background-color);
+ border-color: var(--button-destructive-border-color);
+}
+
+/* Flat Button Styles */
+
+.button.button-flat {
+ background-color: transparent;
+ color: currentColor;
+ border-color: transparent;
+}
+
+.button.button-flat:hover {
+ background-color: color-mix(in srgb, currentColor 10%, transparent);
+ border-color: transparent;
+}
+
+.button.button-flat:focus-visible {
+ color: currentColor;
+}
+
+.button.button-flat:hover:active {
+ background-color: color-mix(in srgb, currentColor 30%, transparent);
+ border-color: transparent;
+}
+
+@media (prefers-contrast) {
+ .button.button-flat:hover,
+ .button.button-flat:hover:active {
+ background-color: SelectedItem;
+ }
+}
+
+/* Link Button Styles */
+
+.button.link-button {
+ background-color: transparent;
+ color: var(--button-link-text-color);
+ border-color: transparent;
+}
+
+.button.link-button:hover {
+ background-color: transparent;
+ color: var(--button-link-text-color);
+ border-color: transparent;
+ text-decoration: underline;
+}
+
+.button.link-button:hover:active {
+ background-color: transparent;
+ color: var(--button-link-active-text-color);
+ border-color: transparent;
+}
+
+/* Check Button Styles */
+
+.button.check-button {
+ position: relative;
+}
+
+.button.check-button:not(.icon-button) {
+ padding-inline-start: calc(var(--button-padding) * 2 + 9px);
+ padding-inline-end: calc(var(--button-padding) * 2);
+}
+
+.button.check-button.icon-button {
+ background-position: calc(var(--button-padding) * 1.2 + var(--button-pressed-indicator-padding)) center;
+ padding-inline-start: calc(var(--button-padding) * 2 + var(--icon-size) + var(--button-pressed-indicator-padding));
+}
+
+.button.check-button.icon-button:dir(rtl),
+.button.check-button.icon-button:-moz-locale-dir(rtl) {
+ background-position-x: right calc(var(--button-padding) * 1.2 + var(--button-pressed-indicator-padding));
+}
+
+.button.check-button.icon-only {
+ background-position: calc(var(--button-padding) + var(--button-pressed-indicator-padding)) center;
+ aspect-ratio: auto;
+}
+
+.button.check-button.icon-only:dir(rtl),
+.button.check-button.icon-only:-moz-locale-dir(rtl) {
+ background-position-x: right calc(var(--button-padding) + var(--button-pressed-indicator-padding));
+}
+
+.button.check-button::before {
+ content: '';
+ box-sizing: border-box;
+ background-color: color-mix(in srgb, currentColor 10%, transparent);
+ border: 1px solid color-mix(in srgb, currentColor 20%, transparent);
+ border-radius: 4px;
+ width: 4px;
+ height: 12px;
+ margin: auto 3px;
+ position: absolute;
+ inset-block: 0;
+ inset-inline-start: 2px;
+}
+
+.button.check-button[aria-pressed="true"]::before {
+ background-color: var(--button-pressed-indicator-background-color);
+ border-color: var(--button-pressed-indicator-border-color);
+ box-shadow: var(--button-pressed-indicator-shadow);
+}
+
+@media (prefers-reduced-motion: no-preference) {
+ .button {
+ transition: background-color .15s, border-color .15s;
+ }
+}
+
+/* Button Group Styles */
+
+.button-group {
+ display: inline-flex;
+ color: var(--button-text-color);
+ border: var(--button-border-size) solid var(--button-border-color);
+ border-radius: var(--button-border-radius);
+ margin: var(--button-margin);
+ position: relative;
+ isolation: isolate;
+ z-index: 1;
+}
+
+.button-group .button + .button:not(:last-child) {
+ border-inline-end: var(--button-border-size) solid var(--button-border-color);
+}
+
+.button-group :is(.button, input) {
+ --button-margin: 0;
+ border: none;
+ border-radius: 0;
+ z-index: 2;
+}
+
+.button-group .button:focus-visible {
+ outline-offset: 0;
+ z-index: 3;
+}
+
+.button-group .button:first-child {
+ border-inline-end: var(--button-border-size) solid var(--button-border-color);
+ border-start-start-radius: calc(var(--button-border-radius) - 1px);
+ border-end-start-radius: calc(var(--button-border-radius) - 1px);
+}
+
+.button-group .button:last-child {
+ border-start-end-radius: calc(var(--button-border-radius) - 1px);
+ border-end-end-radius: calc(var(--button-border-radius) - 1px);
+}
+
+@container threadPane (max-width: 999px) {
+ .button.collapsible-button {
+ padding-inline-end: 0;
+ }
+
+ .button.collapsible-button span {
+ display: inline-block;
+ visibility: hidden;
+ width: 0;
+ }
+}
+
+/* Select element */
+
+.select {
+ appearance: none;
+ text-decoration: none;
+ background-color: var(--button-background-color);
+ color: var(--button-text-color);
+ border: var(--button-border-size) solid var(--button-border-color);
+ border-radius: var(--button-border-radius);
+ padding: var(--button-padding);
+ margin: var(--button-margin);
+ font-size: 1em;
+}
+
+.select:not([size], [multiple]) {
+ --logical-padding: 3px;
+ --start-padding: calc(var(--logical-padding) + 3px);
+ --end-padding: calc(var(--logical-padding) + 9px);
+ --background-image-width: 12px;
+ background-image: var(--icon-nav-down-sm);
+ background-position: right calc(var(--end-padding) / 2) center;
+ background-repeat: no-repeat;
+ background-size: auto var(--background-image-width);
+ -moz-context-properties: fill;
+ fill: currentColor;
+ font: inherit;
+ padding-inline-start: var(--start-padding);
+ padding-inline-end: calc(var(--background-image-width) + var(--end-padding));
+ text-overflow: ellipsis;
+}
+
+.select:not([size], [multiple]):dir(rtl) {
+ background-position-x: left calc(var(--end-padding) / 2);
+}
+
+.select:not([size], [multiple]) > option {
+ background-color: var(--in-content-box-background);
+ color: var(--in-content-text-color);
+}