From 497635a850074386ec8b8ddfeb0f95bd6f1aabf8 Mon Sep 17 00:00:00 2001
From: Josh Winn <965114+jawinn@users.noreply.github.com>
Date: Fri, 10 May 2024 09:47:55 -0400
Subject: [PATCH 1/2] docs(meter): use typography in storybook for heading
Use typography template in Meter storybook. Helps make sure that color
is set on this heading without coming from higher up in the DOM, and
completes code TODO item.
---
components/progressbar/stories/meter.template.js | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/components/progressbar/stories/meter.template.js b/components/progressbar/stories/meter.template.js
index c88707fee9..cc9011016a 100644
--- a/components/progressbar/stories/meter.template.js
+++ b/components/progressbar/stories/meter.template.js
@@ -3,6 +3,7 @@ import { classMap } from "lit/directives/class-map.js";
import { styleMap } from "lit/directives/style-map.js";
import { Template as FieldLabel } from "@spectrum-css/fieldlabel/stories/template.js";
+import { Template as Typography } from "@spectrum-css/typography/stories/template.js";
import "../index.css";
@@ -10,9 +11,6 @@ export const Template = ({
rootClass = "spectrum-ProgressBar",
customClasses = [],
customStyles = {},
- headingStyles = {
- "text-decoration": "underline",
- },
items = [],
label = "Storage space",
value,
@@ -25,9 +23,12 @@ export const Template = ({
const meterLabel = meter.label ?? label;
const fill = meter.meterFill ?? meterFill;
- // @todo: Should the heading content render through typography?
return html`
-
${heading}
+ ${Typography({
+ semantics: "heading",
+ size: "xs",
+ content: [heading],
+ })}
Date: Thu, 9 May 2024 16:17:56 -0400
Subject: [PATCH 2/2] feat: define color property in some components
During the work to create a single entry point for PostCSS, it was
discovered that parts of several components did not define a color, and
instead relied on a color being set higher up in the DOM. This update
sets a color on some of these and adds mods where necessary.
---
.changeset/new-sheep-bathe.md | 11 +
components/datepicker/index.css | 521 +++++------
components/datepicker/metadata/mods.md | 1 +
components/radio/index.css | 794 ++++++++--------
components/slider/index.css | 1176 ++++++++++++------------
components/slider/metadata/mods.md | 1 +
components/splitview/index.css | 399 ++++----
components/splitview/metadata/mods.md | 1 +
components/treeview/index.css | 575 ++++++------
components/well/index.css | 24 +-
components/well/metadata/mods.md | 1 +
11 files changed, 1708 insertions(+), 1796 deletions(-)
create mode 100644 .changeset/new-sheep-bathe.md
diff --git a/.changeset/new-sheep-bathe.md b/.changeset/new-sheep-bathe.md
new file mode 100644
index 0000000000..51a0f3f2d9
--- /dev/null
+++ b/.changeset/new-sheep-bathe.md
@@ -0,0 +1,11 @@
+---
+"@spectrum-css/datepicker": minor
+"@spectrum-css/splitview": minor
+"@spectrum-css/treeview": minor
+"@spectrum-css/slider": minor
+"@spectrum-css/radio": minor
+"@spectrum-css/well": minor
+"@spectrum-css/progressbar": patch
+---
+
+Sets the `color` property in parts of some components that were relying on inheriting a color from higher up in the DOM.
diff --git a/components/datepicker/index.css b/components/datepicker/index.css
index 362ce4b424..be305ceb30 100644
--- a/components/datepicker/index.css
+++ b/components/datepicker/index.css
@@ -13,302 +13,307 @@ governing permissions and limitations under the License.
@import "./themes/express.css";
.spectrum-DatePicker {
- --spectrum-datepicker-border-radius: var(--spectrum-corner-radius-100);
- --spectrum-datepicker-border-radius-quiet: 0;
- --spectrum-datepicker-border-width: var(--spectrum-border-width-100);
- --spectrum-datepicker-min-width: var(--spectrum-field-width);
- --spectrum-datepicker-icon-size: var(--spectrum-workflow-icon-size-100);
-
- /* button */
- --spectrum-datepicker-pickerbutton-border-color: var(--spectrum-gray-500);
- --spectrum-datepicker-pickerbutton-border-color-invalid: var(--spectrum-negative-border-color-default);
- --spectrum-datepicker-pickerbutton-width: calc((var(--spectrum-field-edge-to-disclosure-icon-100) * 2) + var(--spectrum-workflow-icon-size-100));
- --spectrum-datepicker-pickerbutton-width-quiet: calc(var(--spectrum-datepicker-pickerbutton-width) - var(--spectrum-datepicker-quiet-button-offset));
- --spectrum-datepicker-quiet-button-offset: var(--spectrum-text-to-visual-100);
- --spectrum-datepicker-icon-to-button: var(--spectrum-text-to-visual-100);
- --spectrum-datepicker-icon-to-text: var(--spectrum-component-edge-to-text-100);
-
- /* focus */
- --spectrum-datepicker-focus-ring-gap: var(--spectrum-focus-indicator-gap);
- --spectrum-datepicker-focus-thickness: var(--spectrum-focus-indicator-thickness);
- --spectrum-datepicker-focus-animation: var(--spectrum-animation-duration-100);
- --spectrum-datepicker-focus-ring-width: var(--spectrum-border-width-100);
- --spectrum-datepicker-focus-ring-color: var(--spectrum-focus-indicator-color);
- --spectrum-datepicker-focus-line-gap: var(--spectrum-spacing-75);
-
- /* color */
- --spectrum-datepicker-invalid-quiet-color: var(--spectrum-negative-border-color-default);
- --spectrum-datepicker-quiet-border-color-hover: var(--spectrum-gray-500);
- --spectrum-datepicker-border-color-disabled: var(--spectrum-disabled-border-color);
-
- /* dash */
- --spectrum-datepicker-dash-font-size: var(--spectrum-font-size-100);
- --spectrum-datepicker-dash-color-disabled: var(--spectrum-disabled-content-color);
- --spectrum-datepicker-range-dash-marin-inline-start: calc( -0.5 * var(--spectrum-datepicker-dash-font-size));
- --spectrum-datepicker-range-dash-padding-top: 0;
-
- /* calculating widths */
- /* todo: if we add t-shirt sizing, this will be wrong ❤️ */
- --spectrum-datepicker-input-width-base: calc(var(--spectrum-datepicker-range-input-width-first) + var(--spectrum-datepicker-icon-size));
- --spectrum-datepicker-input-width: calc(var(--spectrum-datepicker-input-width-base) + var(--spectrum-datepicker-initial-height));
- --spectrum-datepicker-input-width-quiet: calc(var(--spectrum-datepicker-range-input-width-quiet-first) + var(--spectrum-datepicker-icon-size) + var(--spectrum-datepicker-initial-height));
-
- --spectrum-datepicker-range-input-width-first: calc(var(--spectrum-datepicker-initial-width) - 2 * var(--spectrum-datepicker-generic-padding));
- --spectrum-datepicker-range-input-width-quiet-first: calc(var(--spectrum-datepicker-width-quiet-first) + var(--spectrum-datepicker-width-quiet-second));
-
- --spectrum-datepicker-datetime-input-width-first: calc(var(--spectrum-datepicker-input-width-base) + var(--spectrum-datepicker-datetime-width-first));
- --spectrum-datepicker-datetime-input-width: calc(var(--spectrum-datepicker-datetime-input-width-first) + var(--spectrum-datepicker-icon-size) + var(--spectrum-datepicker-initial-height));
- --spectrum-datepicker-datetime-quiet-input-width-first: calc(var(--spectrum-datepicker-input-width-base) + var(--spectrum-datepicker-input-datetime-width));
- --spectrum-datepicker-datetime-quiet-input-width: calc(var(--spectrum-datepicker-datetime-quiet-input-width-first) + var(--spectrum-datepicker-icon-size) + var(--spectrum-datepicker-initial-height));
-
- /* padding inline end */
- --spectrum-datepicker-padding-inline-end: calc(var(--spectrum-datepicker-pickerbutton-width) + var(--spectrum-component-edge-to-text-100) - (var(--spectrum-datepicker-border-width) * 2));
- --spectrum-datepicker-padding-inline-end-quiet: calc((var(--spectrum-datepicker-pickerbutton-width) + var(--spectrum-component-edge-to-text-100)) - var(--spectrum-datepicker-quiet-button-offset));
- --spectrum-datepicker-padding-inline-end-invalid: calc(var(--spectrum-datepicker-pickerbutton-width) + var(--spectrum-component-edge-to-text-100) + var(--spectrum-datepicker-icon-to-button) + var(--spectrum-datepicker-icon-size) - (var(--spectrum-datepicker-border-width) * 2));
- --spectrum-datepicker-padding-inline-end-invalid-quiet: calc(var(--spectrum-datepicker-pickerbutton-width-quiet) + var(--spectrum-datepicker-icon-size) + var(--spectrum-datepicker-icon-to-text));
+ --spectrum-datepicker-border-radius: var(--spectrum-corner-radius-100);
+ --spectrum-datepicker-border-radius-quiet: 0;
+ --spectrum-datepicker-border-width: var(--spectrum-border-width-100);
+ --spectrum-datepicker-min-width: var(--spectrum-field-width);
+ --spectrum-datepicker-icon-size: var(--spectrum-workflow-icon-size-100);
+
+ /* button */
+ --spectrum-datepicker-pickerbutton-border-color: var(--spectrum-gray-500);
+ --spectrum-datepicker-pickerbutton-border-color-invalid: var(--spectrum-negative-border-color-default);
+ --spectrum-datepicker-pickerbutton-width: calc((var(--spectrum-field-edge-to-disclosure-icon-100) * 2) + var(--spectrum-workflow-icon-size-100));
+ --spectrum-datepicker-pickerbutton-width-quiet: calc(var(--spectrum-datepicker-pickerbutton-width) - var(--spectrum-datepicker-quiet-button-offset));
+ --spectrum-datepicker-quiet-button-offset: var(--spectrum-text-to-visual-100);
+ --spectrum-datepicker-icon-to-button: var(--spectrum-text-to-visual-100);
+ --spectrum-datepicker-icon-to-text: var(--spectrum-component-edge-to-text-100);
+
+ /* focus */
+ --spectrum-datepicker-focus-ring-gap: var(--spectrum-focus-indicator-gap);
+ --spectrum-datepicker-focus-thickness: var(--spectrum-focus-indicator-thickness);
+ --spectrum-datepicker-focus-animation: var(--spectrum-animation-duration-100);
+ --spectrum-datepicker-focus-ring-width: var(--spectrum-border-width-100);
+ --spectrum-datepicker-focus-ring-color: var(--spectrum-focus-indicator-color);
+ --spectrum-datepicker-focus-line-gap: var(--spectrum-spacing-75);
+
+ /* color */
+ --spectrum-datepicker-invalid-quiet-color: var(--spectrum-negative-border-color-default);
+ --spectrum-datepicker-quiet-border-color-hover: var(--spectrum-gray-500);
+ --spectrum-datepicker-border-color-disabled: var(--spectrum-disabled-border-color);
+
+ /* dash */
+ --spectrum-datepicker-dash-font-size: var(--spectrum-font-size-100);
+ --spectrum-datepicker-dash-color: var(--spectrum-neutral-content-color-default);
+ --spectrum-datepicker-dash-color-disabled: var(--spectrum-disabled-content-color);
+ --spectrum-datepicker-range-dash-marin-inline-start: calc(-0.5 * var(--spectrum-datepicker-dash-font-size));
+ --spectrum-datepicker-range-dash-padding-top: 0;
+
+ /* calculating widths */
+ /* todo: if we add t-shirt sizing, this will be wrong ❤️ */
+ --spectrum-datepicker-input-width-base: calc(var(--spectrum-datepicker-range-input-width-first) + var(--spectrum-datepicker-icon-size));
+ --spectrum-datepicker-input-width: calc(var(--spectrum-datepicker-input-width-base) + var(--spectrum-datepicker-initial-height));
+ --spectrum-datepicker-input-width-quiet: calc(var(--spectrum-datepicker-range-input-width-quiet-first) + var(--spectrum-datepicker-icon-size) + var(--spectrum-datepicker-initial-height));
+
+ --spectrum-datepicker-range-input-width-first: calc(var(--spectrum-datepicker-initial-width) - 2 * var(--spectrum-datepicker-generic-padding));
+ --spectrum-datepicker-range-input-width-quiet-first: calc(var(--spectrum-datepicker-width-quiet-first) + var(--spectrum-datepicker-width-quiet-second));
+
+ --spectrum-datepicker-datetime-input-width-first: calc(var(--spectrum-datepicker-input-width-base) + var(--spectrum-datepicker-datetime-width-first));
+ --spectrum-datepicker-datetime-input-width: calc(var(--spectrum-datepicker-datetime-input-width-first) + var(--spectrum-datepicker-icon-size) + var(--spectrum-datepicker-initial-height));
+ --spectrum-datepicker-datetime-quiet-input-width-first: calc(var(--spectrum-datepicker-input-width-base) + var(--spectrum-datepicker-input-datetime-width));
+ --spectrum-datepicker-datetime-quiet-input-width: calc(var(--spectrum-datepicker-datetime-quiet-input-width-first) + var(--spectrum-datepicker-icon-size) + var(--spectrum-datepicker-initial-height));
+
+ /* padding inline end */
+ --spectrum-datepicker-padding-inline-end: calc(var(--spectrum-datepicker-pickerbutton-width) + var(--spectrum-component-edge-to-text-100) - (var(--spectrum-datepicker-border-width) * 2));
+ --spectrum-datepicker-padding-inline-end-quiet: calc((var(--spectrum-datepicker-pickerbutton-width) + var(--spectrum-component-edge-to-text-100)) - var(--spectrum-datepicker-quiet-button-offset));
+ --spectrum-datepicker-padding-inline-end-invalid: calc(var(--spectrum-datepicker-pickerbutton-width) + var(--spectrum-component-edge-to-text-100) + var(--spectrum-datepicker-icon-to-button) + var(--spectrum-datepicker-icon-size) - (var(--spectrum-datepicker-border-width) * 2));
+ --spectrum-datepicker-padding-inline-end-invalid-quiet: calc(var(--spectrum-datepicker-pickerbutton-width-quiet) + var(--spectrum-datepicker-icon-size) + var(--spectrum-datepicker-icon-to-text));
}
.spectrum-DatePicker {
- position: relative;
- display: inline-flex;
- flex-direction: row;
- flex-wrap: nowrap;
- min-inline-size: var(--mod-datepicker-min-width, var(--spectrum-datepicker-min-width));
- border-radius: var(--mod-datepicker-border-radius, var(--spectrum-datepicker-border-radius));
-
- &.is-disabled {
- .spectrum-DatePicker-rangeDash {
- color: var(--highcontrast-datepicker-dash-color-disabled, var(--mod-datepicker-dash-color-disabled, var(--spectrum-datepicker-dash-color-disabled)))
- }
- }
-
- &.is-invalid {
- --mod-textfield-icon-spacing-inline-end-invalid: calc(var(--spectrum-datepicker-pickerbutton-width) + var(--spectrum-datepicker-invalid-icon-to-button));
- --mod-textfield-icon-spacing-inline-end-quiet-invalid: calc(var(--spectrum-datepicker-pickerbutton-width-quiet) + var(--spectrum-datepicker-invalid-icon-to-button-quiet));
- }
+ position: relative;
+ display: inline-flex;
+ flex-direction: row;
+ flex-wrap: nowrap;
+ min-inline-size: var(--mod-datepicker-min-width, var(--spectrum-datepicker-min-width));
+ border-radius: var(--mod-datepicker-border-radius, var(--spectrum-datepicker-border-radius));
+
+ &.is-disabled {
+ .spectrum-DatePicker-rangeDash {
+ color: var(--highcontrast-datepicker-dash-color-disabled, var(--mod-datepicker-dash-color-disabled, var(--spectrum-datepicker-dash-color-disabled)));
+ }
+ }
+
+ &.is-invalid {
+ --mod-textfield-icon-spacing-inline-end-invalid: calc(var(--spectrum-datepicker-pickerbutton-width) + var(--spectrum-datepicker-invalid-icon-to-button));
+ --mod-textfield-icon-spacing-inline-end-quiet-invalid: calc(var(--spectrum-datepicker-pickerbutton-width-quiet) + var(--spectrum-datepicker-invalid-icon-to-button-quiet));
+ }
}
.spectrum-DatePicker:not(.spectrum-DatePicker--quiet, .is-disabled) {
- /* ensures picker button border color matches the textfield border color */
- --mod-picker-button-border-color: var(--highcontrast-datepicker-pickerbutton-border-color, var(--mod-datepicker-pickerbutton-border-color, var(--spectrum-datepicker-pickerbutton-border-color)));
+ /* ensures picker button border color matches the textfield border color */
+ --mod-picker-button-border-color: var(--highcontrast-datepicker-pickerbutton-border-color, var(--mod-datepicker-pickerbutton-border-color, var(--spectrum-datepicker-pickerbutton-border-color)));
- &.is-invalid {
- --mod-picker-button-border-color: var(--highcontrast-datepicker-pickerbutton-border-color, var(--mod-datepicker-pickerbutton-border-color-invalid, var(--spectrum-datepicker-pickerbutton-border-color-invalid)));
- }
+ &.is-invalid {
+ --mod-picker-button-border-color: var(--highcontrast-datepicker-pickerbutton-border-color, var(--mod-datepicker-pickerbutton-border-color-invalid, var(--spectrum-datepicker-pickerbutton-border-color-invalid)));
+ }
}
/* input padding inline end */
/* standard and range */
.spectrum-DatePicker-input {
- padding-inline-end: var(--mod-datepicker-padding-inline, var(--spectrum-datepicker-padding-inline-end));
+ padding-inline-end: var(--mod-datepicker-padding-inline, var(--spectrum-datepicker-padding-inline-end));
- &.spectrum-DatePicker-endField {
- padding-inline-end: var(--mod-datepicker-padding-inline, var(--spectrum-datepicker-padding-inline-end));
- }
+ &.spectrum-DatePicker-endField {
+ padding-inline-end: var(--mod-datepicker-padding-inline, var(--spectrum-datepicker-padding-inline-end));
+ }
}
/* standard and range invalid */
.is-invalid .spectrum-DatePicker-input {
- padding-inline-end: var(--mod-datepicker-padding-inline-end-invalid, var(--spectrum-datepicker-padding-inline-end-invalid));
+ padding-inline-end: var(--mod-datepicker-padding-inline-end-invalid, var(--spectrum-datepicker-padding-inline-end-invalid));
}
/* quiet */
.spectrum-DatePicker--quiet {
- .spectrum-DatePicker-input {
- padding-inline-end: var(--mod-datepicker-padding-inline-end-quiet, var(--spectrum-datepicker-padding-inline-end-quiet));
- }
-
- /* quiet invalid and quiet range invalid */
- .is-invalid .spectrum-DatePicker-input:not(.spectrum-DatePicker-startField) {
- padding-inline-end: var(--mod-datepicker-padding-inline-end-invalid-quiet, var(--spectrum-datepicker-padding-inline-end-invalid-quiet));
- }
+ .spectrum-DatePicker-input {
+ padding-inline-end: var(--mod-datepicker-padding-inline-end-quiet, var(--spectrum-datepicker-padding-inline-end-quiet));
+ }
+
+ /* quiet invalid and quiet range invalid */
+ .is-invalid .spectrum-DatePicker-input:not(.spectrum-DatePicker-startField) {
+ padding-inline-end: var(--mod-datepicker-padding-inline-end-invalid-quiet, var(--spectrum-datepicker-padding-inline-end-invalid-quiet));
+ }
}
/* quiet range */
.spectrum-DatePicker--quiet .spectrum-DatePicker-input {
- &.spectrum-DatePicker-endField {
- padding-inline-end: var(--mod-datepicker-padding-inline-end-quiet, var(--spectrum-datepicker-padding-inline-end-quiet));
- }
+ &.spectrum-DatePicker-endField {
+ padding-inline-end: var(--mod-datepicker-padding-inline-end-quiet, var(--spectrum-datepicker-padding-inline-end-quiet));
+ }
}
.spectrum-DatePicker-button {
- /* Be above textfield so box shadow shines through */
- position: absolute;
- inset-inline-end: 0;
+ /* Be above textfield so box shadow shines through */
+ position: absolute;
+ inset-inline-end: 0;
}
.spectrum-DatePicker--quiet {
- border-radius: var(--mod-datepicker-border-radius-quiet, var(--spectrum-datepicker-border-radius-quiet));
-
- .spectrum-DatePicker-button {
- inline-size: auto;
- inset-inline-end: calc(-1 * var(--mod-datepicker-quiet-button-offset, var(--spectrum-datepicker-quiet-button-offset)));
-
- &:disabled,
- &:disabled:hover {
- border-color: var(--mod-datepicker-border-color-disabled, var(--spectrum-datepicker-border-color-disabled));
- }
-
- &:disabled:not(.is-open) {
- .spectrum-PickerButton-fill {
- border-color: transparent;
- }
- }
-
- &:not(:disabled, .is-open) {
- .spectrum-PickerButton-fill {
- background-color: transparent;
- }
- }
- }
-
- &:hover:not(.is-focused, .is-keyboardFocused, .is-disabled, .is-invalid) {
- .spectrum-DatePicker-input,
- .spectrum-DatePicker-button {
- border-color: var(--mod-datepicker-quiet-border-color-hover, var(--spectrum-datepicker-quiet-border-color-hover));
- }
- }
-
- /* invalid bottom border color */
- &.is-invalid {
- .spectrum-DatePicker-input,
- .spectrum-DatePicker-button {
- border-color: var(--highcontrast-datepicker-invalid-quiet-color, var(--mod-datepicker-invalid-quiet-color, var(--spectrum-datepicker-invalid-quiet-color)));
- }
- }
+ border-radius: var(--mod-datepicker-border-radius-quiet, var(--spectrum-datepicker-border-radius-quiet));
+
+ .spectrum-DatePicker-button {
+ inline-size: auto;
+ inset-inline-end: calc(-1 * var(--mod-datepicker-quiet-button-offset, var(--spectrum-datepicker-quiet-button-offset)));
+
+ &:disabled,
+ &:disabled:hover {
+ border-color: var(--mod-datepicker-border-color-disabled, var(--spectrum-datepicker-border-color-disabled));
+ }
+
+ &:disabled:not(.is-open) {
+ .spectrum-PickerButton-fill {
+ border-color: transparent;
+ }
+ }
+
+ &:not(:disabled, .is-open) {
+ .spectrum-PickerButton-fill {
+ background-color: transparent;
+ }
+ }
+ }
+
+ &:hover:not(.is-focused, .is-keyboardFocused, .is-disabled, .is-invalid) {
+ .spectrum-DatePicker-input,
+ .spectrum-DatePicker-button {
+ border-color: var(--mod-datepicker-quiet-border-color-hover, var(--spectrum-datepicker-quiet-border-color-hover));
+ }
+ }
+
+ /* invalid bottom border color */
+ &.is-invalid {
+ .spectrum-DatePicker-input,
+ .spectrum-DatePicker-button {
+ border-color: var(--highcontrast-datepicker-invalid-quiet-color, var(--mod-datepicker-invalid-quiet-color, var(--spectrum-datepicker-invalid-quiet-color)));
+ }
+ }
}
.spectrum-DatePicker--range {
- border-radius: var(--mod-datepicker-border-radius, var(--spectrum-datepicker-border-radius));
-
- /* focus-ring */
- &::after {
- pointer-events: none;
- content: '';
- position: absolute;
- inset: 0;
- margin: calc(var(--mod-datepicker-focus-ring-gap, var(--spectrum-datepicker-focus-ring-gap)) * -1);
- border-radius: calc(var(--mod-datepicker-border-radius, var(--spectrum-datepicker-border-radius)) + var(--mod-datepicker-focus-ring-gap, var(--spectrum-datepicker-focus-ring-gap)));
- border-color: transparent;
- transition: box-shadow var(--mod-datepicker-focus-animation, var(--spectrum-datepicker-focus-animation)) ease-in-out, border-color var(--mod-datepicker-focus-animation, var(--spectrum-datepicker-focus-animation)) ease-in-out;
- }
-
- &.is-keyboardFocused:not(.spectrum-DatePicker--quiet) {
- &::after {
- box-shadow: 0 0 0 var(--mod-datepicker-focus-ring-width, var(--spectrum-datepicker-focus-ring-width)) var(--highcontrast-datepicker-focus-ring-color, var(--mod-datepicker-focus-ring-color, var(--spectrum-datepicker-focus-ring-color)));
- }
-
- .spectrum-DatePicker-textfield::after {
- display: none;
- }
- }
-
- &.is-keyboardFocused.spectrum-DatePicker--quiet {
- /* quiet variant bottom border focus indicator */
- &::after {
- margin: 0;
- box-shadow: none;
- border-radius: 0;
- border-block-end: var(--mod-datepicker-focus-thickness, var(--spectrum-datepicker-focus-thickness)) solid var(--highcontrast-datepicker-focus-ring-color, var(--mod-datepicker-focus-ring-color, var(--spectrum-datepicker-focus-ring-color)));
- inset-block-end: calc(-1 * var(--mod-datepicker-focus-line-gap, var(--spectrum-datepicker-focus-line-gap)));
- }
- }
-
- /* Input Group */
- &.spectrum-DatePicker--quiet {
- border-radius: var(--mod-datepicker-border-radius-quiet, var(--spectrum-datepicker-border-radius-quiet));
-
- .spectrum-DatePicker-textfield {
- min-inline-size: 0;
- inline-size: var(--mod-datepicker-input-width-quiet, var(--spectrum-datepicker-input-width-quiet));
-
- &:first-of-type {
- inline-size: var(--mod-datepicker-range-input-width-quiet-first, var(--spectrum-datepicker-range-input-width-quiet-first));
- }
- }
- }
-
- /* Datetime Range */
- &.spectrum-DatePicker--datetimeRange {
- /* Inputs */
- .spectrum-DatePicker-textfield {
- inline-size: var(--mod-datepicker-datetime-input-width, var(--spectrum-datepicker-datetime-input-width));
- min-inline-size: 0;
-
- &:first-of-type {
- inline-size: var(--mod-datepicker-datetime-input-width-first, var(--spectrum-datepicker-datetime-input-width-first));
- }
- }
-
- &.spectrum-DatePicker--quiet {
- .spectrum-DatePicker-textfield {
- inline-size: var(--mod-datepicker-datetime-quiet-input-width, var(--spectrum-datepicker-datetime-quiet-input-width));
-
- &:first-of-type {
- inline-size: var(--mod-datepicker-datetime-quiet-input-width-first, var(--spectrum-datepicker-datetime-quiet-input-width-first));
- }
- }
- }
- }
-
- /* Inputs */
- .spectrum-DatePicker-textfield {
- flex: initial;
- min-inline-size: 0;
- inline-size: var(--mod-datepicker-input-width, var(--spectrum-datepicker-input-width));
-
- &:first-of-type {
- inline-size: var(--mod-datepicker-range-input-width-first, var(--spectrum-datepicker-range-input-width-first));
- }
- }
+ border-radius: var(--mod-datepicker-border-radius, var(--spectrum-datepicker-border-radius));
+
+ /* focus-ring */
+ &::after {
+ pointer-events: none;
+ content: "";
+ position: absolute;
+ inset: 0;
+ margin: calc(var(--mod-datepicker-focus-ring-gap, var(--spectrum-datepicker-focus-ring-gap)) * -1);
+ border-radius: calc(var(--mod-datepicker-border-radius, var(--spectrum-datepicker-border-radius)) + var(--mod-datepicker-focus-ring-gap, var(--spectrum-datepicker-focus-ring-gap)));
+ border-color: transparent;
+ transition:
+ box-shadow var(--mod-datepicker-focus-animation, var(--spectrum-datepicker-focus-animation)) ease-in-out,
+ border-color var(--mod-datepicker-focus-animation, var(--spectrum-datepicker-focus-animation)) ease-in-out;
+ }
+
+ &.is-keyboardFocused:not(.spectrum-DatePicker--quiet) {
+ &::after {
+ box-shadow: 0 0 0 var(--mod-datepicker-focus-ring-width, var(--spectrum-datepicker-focus-ring-width)) var(--highcontrast-datepicker-focus-ring-color, var(--mod-datepicker-focus-ring-color, var(--spectrum-datepicker-focus-ring-color)));
+ }
+
+ .spectrum-DatePicker-textfield::after {
+ display: none;
+ }
+ }
+
+ &.is-keyboardFocused.spectrum-DatePicker--quiet {
+ /* quiet variant bottom border focus indicator */
+ &::after {
+ margin: 0;
+ box-shadow: none;
+ border-radius: 0;
+ border-block-end: var(--mod-datepicker-focus-thickness, var(--spectrum-datepicker-focus-thickness)) solid var(--highcontrast-datepicker-focus-ring-color, var(--mod-datepicker-focus-ring-color, var(--spectrum-datepicker-focus-ring-color)));
+ inset-block-end: calc(-1 * var(--mod-datepicker-focus-line-gap, var(--spectrum-datepicker-focus-line-gap)));
+ }
+ }
+
+ /* Input Group */
+ &.spectrum-DatePicker--quiet {
+ border-radius: var(--mod-datepicker-border-radius-quiet, var(--spectrum-datepicker-border-radius-quiet));
+
+ .spectrum-DatePicker-textfield {
+ min-inline-size: 0;
+ inline-size: var(--mod-datepicker-input-width-quiet, var(--spectrum-datepicker-input-width-quiet));
+
+ &:first-of-type {
+ inline-size: var(--mod-datepicker-range-input-width-quiet-first, var(--spectrum-datepicker-range-input-width-quiet-first));
+ }
+ }
+ }
+
+ /* Datetime Range */
+ &.spectrum-DatePicker--datetimeRange {
+ /* Inputs */
+ .spectrum-DatePicker-textfield {
+ inline-size: var(--mod-datepicker-datetime-input-width, var(--spectrum-datepicker-datetime-input-width));
+ min-inline-size: 0;
+
+ &:first-of-type {
+ inline-size: var(--mod-datepicker-datetime-input-width-first, var(--spectrum-datepicker-datetime-input-width-first));
+ }
+ }
+
+ &.spectrum-DatePicker--quiet {
+ .spectrum-DatePicker-textfield {
+ inline-size: var(--mod-datepicker-datetime-quiet-input-width, var(--spectrum-datepicker-datetime-quiet-input-width));
+
+ &:first-of-type {
+ inline-size: var(--mod-datepicker-datetime-quiet-input-width-first, var(--spectrum-datepicker-datetime-quiet-input-width-first));
+ }
+ }
+ }
+ }
+
+ /* Inputs */
+ .spectrum-DatePicker-textfield {
+ flex: initial;
+ min-inline-size: 0;
+ inline-size: var(--mod-datepicker-input-width, var(--spectrum-datepicker-input-width));
+
+ &:first-of-type {
+ inline-size: var(--mod-datepicker-range-input-width-first, var(--spectrum-datepicker-range-input-width-first));
+ }
+ }
}
- .spectrum-DatePicker-input {
- /* fill space */
- flex: 1;
- inline-size: 100%;
-
- &.spectrum-DatePicker-startField {
- border-inline-end: 0;
- border-start-end-radius: 0;
- border-end-end-radius: 0;
- padding-inline-end: var(--mod-datepicker-generic-padding, var(--spectrum-datepicker-generic-padding));
- }
-
- &.spectrum-DatePicker-endField {
- border-inline-start: 0;
- border-start-start-radius: 0;
- border-end-start-radius: 0;
- padding-inline-start: var(--mod-datepicker-generic-padding, var(--spectrum-datepicker-generic-padding));
- }
- }
-
- /* "-" between inputs */
- .spectrum-DatePicker-rangeDash {
- line-height: var(--mod-datepicker-dash-line-height, var(--spectrum-datepicker-dash-line-height));
- padding-block-start: var(--mod-datepicker-range-dash-padding-top, var(--spectrum-datepicker-range-dash-padding-top));
- flex: initial;
- inline-size: 0;
- z-index: 1;
-
- &::before {
- content: "–";
- display: inline-block;
- margin-block: 0;
- margin-inline: var(--mod-datepicker-range-dash-margin-left, var(--spectrum-datepicker-range-dash-marin-inline-start));
- overflow: hidden;
- text-align: center;
- vertical-align: middle;
- inline-size: var(--mod-datepicker-dash-font-size, var(--spectrum-datepicker-dash-font-size));
- }
- }
+.spectrum-DatePicker-input {
+ /* fill space */
+ flex: 1;
+ inline-size: 100%;
+
+ &.spectrum-DatePicker-startField {
+ border-inline-end: 0;
+ border-start-end-radius: 0;
+ border-end-end-radius: 0;
+ padding-inline-end: var(--mod-datepicker-generic-padding, var(--spectrum-datepicker-generic-padding));
+ }
+
+ &.spectrum-DatePicker-endField {
+ border-inline-start: 0;
+ border-start-start-radius: 0;
+ border-end-start-radius: 0;
+ padding-inline-start: var(--mod-datepicker-generic-padding, var(--spectrum-datepicker-generic-padding));
+ }
+}
+
+/* "-" between inputs */
+.spectrum-DatePicker-rangeDash {
+ color: var(--highcontrast-datepicker-dash-color, var(--mod-datepicker-dash-color, var(--spectrum-datepicker-dash-color)));
+ line-height: var(--mod-datepicker-dash-line-height, var(--spectrum-datepicker-dash-line-height));
+ padding-block-start: var(--mod-datepicker-range-dash-padding-top, var(--spectrum-datepicker-range-dash-padding-top));
+ flex: initial;
+ inline-size: 0;
+ z-index: 1;
+
+ &::before {
+ content: "–";
+ display: inline-block;
+ margin-block: 0;
+ margin-inline: var(--mod-datepicker-range-dash-margin-left, var(--spectrum-datepicker-range-dash-marin-inline-start));
+ overflow: hidden;
+ text-align: center;
+ vertical-align: middle;
+ inline-size: var(--mod-datepicker-dash-font-size, var(--spectrum-datepicker-dash-font-size));
+ }
+}
/********* WHCM *********/
@media (forced-colors: active) {
.spectrum-DatePicker {
- --highcontrast-datepicker-dash-color-disabled: GrayText;
- --highcontrast-datepicker-focus-ring-color: Highlight;
- --highcontrast-datepicker-pickerbutton-border-color: Highlight;
- --highcontrast-datepicker-invalid-quiet-color: Highlight;
- }
+ --highcontrast-datepicker-dash-color: CanvasText;
+ --highcontrast-datepicker-dash-color-disabled: GrayText;
+ --highcontrast-datepicker-focus-ring-color: Highlight;
+ --highcontrast-datepicker-pickerbutton-border-color: Highlight;
+ --highcontrast-datepicker-invalid-quiet-color: Highlight;
+ }
}
diff --git a/components/datepicker/metadata/mods.md b/components/datepicker/metadata/mods.md
index d6c467088c..e92f2d8bad 100644
--- a/components/datepicker/metadata/mods.md
+++ b/components/datepicker/metadata/mods.md
@@ -3,6 +3,7 @@
| `--mod-datepicker-border-color-disabled` |
| `--mod-datepicker-border-radius` |
| `--mod-datepicker-border-radius-quiet` |
+| `--mod-datepicker-dash-color` |
| `--mod-datepicker-dash-color-disabled` |
| `--mod-datepicker-dash-font-size` |
| `--mod-datepicker-dash-line-height` |
diff --git a/components/radio/index.css b/components/radio/index.css
index 3256d3091f..b7fd10bbed 100644
--- a/components/radio/index.css
+++ b/components/radio/index.css
@@ -12,479 +12,417 @@ governing permissions and limitations under the License.
@import "./themes/express.css";
-/* radio/index.css
- *
- * ::before is to style the input circle
- * ::after is to style the Focus ring
- *
+/*
+ * Radio:
+ * ::before is to style the input circle (selection indicator)
+ * ::after is to style the focus ring
*/
.spectrum-Radio {
- /* state colors for all themes */
- --spectrum-radio-neutral-content-color: var(--spectrum-neutral-content-color-default);
- --spectrum-radio-neutral-content-color-hover: var(--spectrum-neutral-content-color-hover);
- --spectrum-radio-neutral-content-color-down: var(--spectrum-neutral-content-color-down);
- --spectrum-radio-neutral-content-color-focus: var(--spectrum-neutral-content-color-key-focus);
-
- /* focus ring all themes */
- --spectrum-radio-focus-indicator-thickness: var(--spectrum-focus-indicator-thickness);
- --spectrum-radio-focus-indicator-gap: var(--spectrum-focus-indicator-gap);
- --spectrum-radio-focus-indicator-color: var(--spectrum-focus-indicator-color);
-
- /* disabled all themes */
- --spectrum-radio-disabled-content-color: var(--spectrum-disabled-content-color);
- --spectrum-radio-disabled-border-color: var(--spectrum-disabled-content-color);
-
- /* emphasized state colors selection indicator all themes */
- --spectrum-radio-emphasized-accent-color: var(--spectrum-accent-color-900);
- --spectrum-radio-emphasized-accent-color-hover: var(--spectrum-accent-color-1000);
- --spectrum-radio-emphasized-accent-color-down: var(--spectrum-accent-color-1100);
- --spectrum-radio-emphasized-accent-color-focus: var(--spectrum-accent-color-1000);
-
- /* selection indicator all themes */
- --spectrum-radio-border-width: var(--spectrum-border-width-200);
- --spectrum-radio-button-background-color: var(--spectrum-gray-75);
-
- /* checked selection indicator */
- --spectrum-radio-button-checked-border-color-default: var(--spectrum-neutral-background-color-selected-default);
- --spectrum-radio-button-checked-border-color-hover: var(--spectrum-neutral-background-color-selected-hover);
- --spectrum-radio-button-checked-border-color-down: var(--spectrum-neutral-background-color-selected-down);
- --spectrum-radio-button-checked-border-color-focus: var(--spectrum-neutral-background-color-selected-focus);
-
- /* spacing all themes */
- --spectrum-radio-text-to-control: var(--spectrum-text-to-control-100);
- --spectrum-radio-label-top-to-text: var(--spectrum-component-top-to-text-100);
- --spectrum-radio-label-bottom-to-text: var(--spectrum-component-bottom-to-text-100);
-
- /* text styles all themes */
- --spectrum-radio-font-size: var(--spectrum-font-size-100);
- --spectrum-radio-line-height: var(--spectrum-line-height-100);
-
- /* animation all themes */
- --spectrum-radio-animation-duration: var(--spectrum-animation-duration-100);
-
- /* CJK language support all themes */
- &:lang(ja),
- &:lang(zh),
- &:lang(ko) {
- --spectrum-radio-line-height-cjk: var(--spectrum-cjk-line-height-100);
- }
-
- /* default radio size for no t-shirt size */
- --spectrum-radio-height: var(--spectrum-component-height-100);
- --spectrum-radio-button-control-size: var(--spectrum-radio-button-control-size-medium);
-
- /* default radio spacing for no t-shirt size */
- --spectrum-radio-button-top-to-control: var(--spectrum-radio-button-top-to-control-medium);
+ /* state colors for all themes */
+ --spectrum-radio-neutral-content-color: var(--spectrum-neutral-content-color-default);
+ --spectrum-radio-neutral-content-color-hover: var(--spectrum-neutral-content-color-hover);
+ --spectrum-radio-neutral-content-color-down: var(--spectrum-neutral-content-color-down);
+ --spectrum-radio-neutral-content-color-focus: var(--spectrum-neutral-content-color-key-focus);
+
+ /* focus ring all themes */
+ --spectrum-radio-focus-indicator-thickness: var(--spectrum-focus-indicator-thickness);
+ --spectrum-radio-focus-indicator-gap: var(--spectrum-focus-indicator-gap);
+ --spectrum-radio-focus-indicator-color: var(--spectrum-focus-indicator-color);
+
+ /* disabled all themes */
+ --spectrum-radio-disabled-content-color: var(--spectrum-disabled-content-color);
+ --spectrum-radio-disabled-border-color: var(--spectrum-disabled-content-color);
+
+ /* emphasized state colors selection indicator all themes */
+ --spectrum-radio-emphasized-accent-color: var(--spectrum-accent-color-900);
+ --spectrum-radio-emphasized-accent-color-hover: var(--spectrum-accent-color-1000);
+ --spectrum-radio-emphasized-accent-color-down: var(--spectrum-accent-color-1100);
+ --spectrum-radio-emphasized-accent-color-focus: var(--spectrum-accent-color-1000);
+
+ /* selection indicator all themes */
+ --spectrum-radio-border-width: var(--spectrum-border-width-200);
+ --spectrum-radio-button-background-color: var(--spectrum-gray-75);
+
+ /* checked selection indicator */
+ --spectrum-radio-button-checked-border-color-default: var(--spectrum-neutral-background-color-selected-default);
+ --spectrum-radio-button-checked-border-color-hover: var(--spectrum-neutral-background-color-selected-hover);
+ --spectrum-radio-button-checked-border-color-down: var(--spectrum-neutral-background-color-selected-down);
+ --spectrum-radio-button-checked-border-color-focus: var(--spectrum-neutral-background-color-selected-focus);
+
+ /* spacing all themes */
+ --spectrum-radio-text-to-control: var(--spectrum-text-to-control-100);
+ --spectrum-radio-label-top-to-text: var(--spectrum-component-top-to-text-100);
+ --spectrum-radio-label-bottom-to-text: var(--spectrum-component-bottom-to-text-100);
+
+ /* text styles all themes */
+ --spectrum-radio-font-size: var(--spectrum-font-size-100);
+ --spectrum-radio-line-height: var(--spectrum-line-height-100);
+
+ /* animation all themes */
+ --spectrum-radio-animation-duration: var(--spectrum-animation-duration-100);
+
+ /* CJK language support all themes */
+ &:lang(ja),
+ &:lang(zh),
+ &:lang(ko) {
+ --spectrum-radio-line-height-cjk: var(--spectrum-cjk-line-height-100);
+ }
+
+ /* default radio size for no t-shirt size */
+ --spectrum-radio-height: var(--spectrum-component-height-100);
+ --spectrum-radio-button-control-size: var(--spectrum-radio-button-control-size-medium);
+
+ /* default radio spacing for no t-shirt size */
+ --spectrum-radio-button-top-to-control: var(--spectrum-radio-button-top-to-control-medium);
}
.spectrum-Radio--sizeS {
- --spectrum-radio-height: var(--spectrum-component-height-75);
- --spectrum-radio-button-control-size: var(--spectrum-radio-button-control-size-small);
+ --spectrum-radio-height: var(--spectrum-component-height-75);
+ --spectrum-radio-button-control-size: var(--spectrum-radio-button-control-size-small);
- --spectrum-radio-text-to-control: var(--spectrum-text-to-control-75);
- --spectrum-radio-label-top-to-text: var(--spectrum-component-top-to-text-75);
- --spectrum-radio-label-bottom-to-text: var(--spectrum-component-bottom-to-text-75);
- --spectrum-radio-button-top-to-control: var(--spectrum-radio-button-top-to-control-small);
+ --spectrum-radio-text-to-control: var(--spectrum-text-to-control-75);
+ --spectrum-radio-label-top-to-text: var(--spectrum-component-top-to-text-75);
+ --spectrum-radio-label-bottom-to-text: var(--spectrum-component-bottom-to-text-75);
+ --spectrum-radio-button-top-to-control: var(--spectrum-radio-button-top-to-control-small);
- --spectrum-radio-font-size: var(--spectrum-font-size-75);
+ --spectrum-radio-font-size: var(--spectrum-font-size-75);
}
.spectrum-Radio--sizeM {
- --spectrum-radio-height: var(--spectrum-component-height-100);
- --spectrum-radio-button-control-size: var(--spectrum-radio-button-control-size-medium);
+ --spectrum-radio-height: var(--spectrum-component-height-100);
+ --spectrum-radio-button-control-size: var(--spectrum-radio-button-control-size-medium);
- --spectrum-radio-text-to-control: var(--spectrum-text-to-control-100);
- --spectrum-radio-label-top-to-text: var(--spectrum-component-top-to-text-100);
- --spectrum-radio-label-bottom-to-text: var(--spectrum-component-bottom-to-text-100);
- --spectrum-radio-button-top-to-control: var(--spectrum-radio-button-top-to-control-medium);
+ --spectrum-radio-text-to-control: var(--spectrum-text-to-control-100);
+ --spectrum-radio-label-top-to-text: var(--spectrum-component-top-to-text-100);
+ --spectrum-radio-label-bottom-to-text: var(--spectrum-component-bottom-to-text-100);
+ --spectrum-radio-button-top-to-control: var(--spectrum-radio-button-top-to-control-medium);
- --spectrum-radio-font-size: var(--spectrum-font-size-100);
+ --spectrum-radio-font-size: var(--spectrum-font-size-100);
}
.spectrum-Radio--sizeL {
- --spectrum-radio-height: var(--spectrum-component-height-200);
- --spectrum-radio-button-control-size: var(--spectrum-radio-button-control-size-large);
+ --spectrum-radio-height: var(--spectrum-component-height-200);
+ --spectrum-radio-button-control-size: var(--spectrum-radio-button-control-size-large);
- --spectrum-radio-text-to-control: var(--spectrum-text-to-control-200);
- --spectrum-radio-label-top-to-text: var(--spectrum-component-top-to-text-200);
- --spectrum-radio-label-bottom-to-text: var(--spectrum-component-bottom-to-text-200);
- --spectrum-radio-button-top-to-control: var(--spectrum-radio-button-top-to-control-large);
+ --spectrum-radio-text-to-control: var(--spectrum-text-to-control-200);
+ --spectrum-radio-label-top-to-text: var(--spectrum-component-top-to-text-200);
+ --spectrum-radio-label-bottom-to-text: var(--spectrum-component-bottom-to-text-200);
+ --spectrum-radio-button-top-to-control: var(--spectrum-radio-button-top-to-control-large);
- --spectrum-radio-font-size: var(--spectrum-font-size-200);
+ --spectrum-radio-font-size: var(--spectrum-font-size-200);
}
.spectrum-Radio--sizeXL {
- --spectrum-radio-height: var(--spectrum-component-height-300);
- --spectrum-radio-button-control-size: var(--spectrum-radio-button-control-size-extra-large);
+ --spectrum-radio-height: var(--spectrum-component-height-300);
+ --spectrum-radio-button-control-size: var(--spectrum-radio-button-control-size-extra-large);
- --spectrum-radio-text-to-control: var(--spectrum-text-to-control-300);
- --spectrum-radio-label-top-to-text: var(--spectrum-component-top-to-text-300);
- --spectrum-radio-label-bottom-to-text: var(--spectrum-component-bottom-to-text-300);
- --spectrum-radio-button-top-to-control: var(--spectrum-radio-button-top-to-control-extra-large);
+ --spectrum-radio-text-to-control: var(--spectrum-text-to-control-300);
+ --spectrum-radio-label-top-to-text: var(--spectrum-component-top-to-text-300);
+ --spectrum-radio-label-bottom-to-text: var(--spectrum-component-bottom-to-text-300);
+ --spectrum-radio-button-top-to-control: var(--spectrum-radio-button-top-to-control-extra-large);
- --spectrum-radio-font-size: var(--spectrum-font-size-300);
+ --spectrum-radio-font-size: var(--spectrum-font-size-300);
}
-
-
/* windows high contrast mode */
@media (forced-colors: active) {
- .spectrum-Radio {
- /* high contrast text */
- --highcontrast-radio-neutral-content-color: CanvasText;
- --highcontrast-radio-neutral-content-color-hover: CanvasText;
- --highcontrast-radio-neutral-content-color-down: CanvasText;
- --highcontrast-radio-neutral-content-color-focus: CanvasText;
-
- /* high contrast selector */
- --highcontrast-radio-button-border-color-default: ButtonText;
- --highcontrast-radio-button-border-color-hover: Highlight;
- --highcontrast-radio-button-border-color-down: ButtonText;
- --highcontrast-radio-button-border-color-focus: Highlight;
-
- /* high contrast emphasized selector */
- --highcontrast-radio-emphasized-accent-color: ButtonText;
- --highcontrast-radio-emphasized-accent-color-hover: Highlight;
- --highcontrast-radio-emphasized-accent-color-down: ButtonText;
- --highcontrast-radio-emphasized-accent-color-focus: Highlight;
-
- /* high contrast checked selector */
- --highcontrast-radio-button-checked-border-color-default: Highlight;
- --highcontrast-radio-button-checked-border-color-hover: Highlight;
- --highcontrast-radio-button-checked-border-color-down: Highlight;
- --highcontrast-radio-button-checked-border-color-focus: Highlight;
-
- /* high contrast disabled text */
- --highcontrast-radio-disabled-content-color: GrayText;
-
- /* high contrast disabled selector */
- --highcontrast-radio-disabled-border-color: GrayText;
-
- /* high contrast focus ring */
- --highcontrast-radio-focus-indicator-color: CanvasText;
-
- /* ensure focus ring is visible if user agent has non-accessible system overrides */
- .spectrum-Radio-button {
- &::after {
- forced-color-adjust: none;
- }
- }
- }
+ .spectrum-Radio {
+ /* high contrast text */
+ --highcontrast-radio-neutral-content-color: CanvasText;
+ --highcontrast-radio-neutral-content-color-hover: CanvasText;
+ --highcontrast-radio-neutral-content-color-down: CanvasText;
+ --highcontrast-radio-neutral-content-color-focus: CanvasText;
+
+ /* high contrast selector */
+ --highcontrast-radio-button-border-color-default: ButtonText;
+ --highcontrast-radio-button-border-color-hover: Highlight;
+ --highcontrast-radio-button-border-color-down: ButtonText;
+ --highcontrast-radio-button-border-color-focus: Highlight;
+
+ /* high contrast emphasized selector */
+ --highcontrast-radio-emphasized-accent-color: ButtonText;
+ --highcontrast-radio-emphasized-accent-color-hover: Highlight;
+ --highcontrast-radio-emphasized-accent-color-down: ButtonText;
+ --highcontrast-radio-emphasized-accent-color-focus: Highlight;
+
+ /* high contrast checked selector */
+ --highcontrast-radio-button-checked-border-color-default: Highlight;
+ --highcontrast-radio-button-checked-border-color-hover: Highlight;
+ --highcontrast-radio-button-checked-border-color-down: Highlight;
+ --highcontrast-radio-button-checked-border-color-focus: Highlight;
+
+ /* high contrast disabled text */
+ --highcontrast-radio-disabled-content-color: GrayText;
+
+ /* high contrast disabled selector */
+ --highcontrast-radio-disabled-border-color: GrayText;
+
+ /* high contrast focus ring */
+ --highcontrast-radio-focus-indicator-color: CanvasText;
+
+ /* ensure focus ring is visible if user agent has non-accessible system overrides */
+ .spectrum-Radio-button {
+ &::after {
+ forced-color-adjust: none;
+ }
+ }
+ }
}
.spectrum-Radio {
- display: inline-flex;
- align-items: flex-start;
- position: relative;
- vertical-align: top;
-
- min-block-size: var(--mod-radio-height, var(--spectrum-radio-height));
- max-inline-size: 100%;
-
- &:hover {
- /* selection indicator hover */
- .spectrum-Radio-button::before {
- border-color: var(--highcontrast-radio-button-border-color-hover,
- var(--mod-radio-button-border-color-hover,
- var(--spectrum-radio-button-border-color-hover)));
- }
-
- /* checked selection indicator hover */
- .spectrum-Radio-input:checked + .spectrum-Radio-button::before {
- border-color: var(--highcontrast-radio-button-checked-border-color-hover,
- var(--mod-radio-button-checked-border-color-hover,
- var(--spectrum-radio-button-checked-border-color-hover)));
- }
-
- .spectrum-Radio-label {
- color: var(--highcontrast-radio-neutral-content-color-hover,
- var(--mod-radio-neutral-content-color-hover,
- var(--spectrum-radio-neutral-content-color-hover)));
- }
- }
-
- &:active {
- /* selection indicator active */
- .spectrum-Radio-button::before {
- border-color: var(--highcontrast-radio-button-border-color-down,
- var(--mod-radio-button-border-color-down,
- var(--spectrum-radio-button-border-color-down)));
- }
-
- /* checked selection indicator active */
- .spectrum-Radio-input:checked + .spectrum-Radio-button::before {
- border-color: var(--highcontrast-radio-button-checked-border-color-down,
- var(--mod-radio-button-checked-border-color-down,
- var(--spectrum-radio-button-checked-border-color-down)));
- }
-
- .spectrum-Radio-label {
- color: var(--highcontrast-radio-neutral-content-color-down,
- var(--mod-radio-neutral-content-color-down,
- var(--spectrum-radio-neutral-content-color-down)));
- }
- }
-
- &:focus {
- /* selection indicator is focused state */
- .spectrum-Radio-button::before {
- border-color: var(--highcontrast-radio-button-border-color-focus,
- var(--mod-radio-button-border-color-focus,
- var(--spectrum-radio-button-border-color-focus)));
- }
-
- /* focus ring is focused state */
- .spectrum-Radio-button::after {
- border-style: solid;
- border-color: var(--highcontrast-radio-focus-indicator-color,
- var(--mod-radio-focus-indicator-color,
- var(--spectrum-radio-focus-indicator-color)));
- border-width: var(--mod-radio-focus-indicator-thickness,
- var(--spectrum-radio-focus-indicator-thickness));
-
- inline-size: calc(var(--spectrum-radio-button-control-size) + (var(--spectrum-radio-focus-indicator-gap) * 2));
- block-size: calc(var(--spectrum-radio-button-control-size) + (var(--spectrum-radio-focus-indicator-gap) * 2));
- }
-
- /* selected selection indicator is focused state */
- .spectrum-Radio-input:checked + .spectrum-Radio-button::before {
- border-color: var(--highcontrast-radio-button-checked-border-color-focus,
- var(--mod-radio-button-checked-border-color-focus,
- var(--spectrum-radio-button-checked-border-color-focus)));
- }
-
- .spectrum-Radio-label {
- color: var(--highcontrast-radio-neutral-content-color-focus,
- var(--mod-radio-neutral-content-color-focus,
- var(--spectrum-radio-neutral-content-color-focus)));
- }
- }
-
- &.is-readOnly {
- .spectrum-Radio-input:read-only {
- cursor: initial;
- }
-
- /* hide selection indicator */
- & .spectrum-Radio-button {
- position: fixed;
- inset-inline-end: 100%;
- inset-block-end: 100%;
- clip: rect(1px, 1px, 1px, 1px);
- clip-path: inset(50%);
- }
-
- .spectrum-Radio-label,
+ display: inline-flex;
+ align-items: flex-start;
+ position: relative;
+ vertical-align: top;
+
+ min-block-size: var(--mod-radio-height, var(--spectrum-radio-height));
+ max-inline-size: 100%;
+
+ &:hover {
+ /* selection indicator hover */
+ .spectrum-Radio-button::before {
+ border-color: var(--highcontrast-radio-button-border-color-hover, var(--mod-radio-button-border-color-hover, var(--spectrum-radio-button-border-color-hover)));
+ }
+
+ /* checked selection indicator hover */
+ .spectrum-Radio-input:checked + .spectrum-Radio-button::before {
+ border-color: var(--highcontrast-radio-button-checked-border-color-hover, var(--mod-radio-button-checked-border-color-hover, var(--spectrum-radio-button-checked-border-color-hover)));
+ }
+
+ .spectrum-Radio-label {
+ color: var(--highcontrast-radio-neutral-content-color-hover, var(--mod-radio-neutral-content-color-hover, var(--spectrum-radio-neutral-content-color-hover)));
+ }
+ }
+
+ &:active {
+ /* selection indicator active */
+ .spectrum-Radio-button::before {
+ border-color: var(--highcontrast-radio-button-border-color-down, var(--mod-radio-button-border-color-down, var(--spectrum-radio-button-border-color-down)));
+ }
+
+ /* checked selection indicator active */
+ .spectrum-Radio-input:checked + .spectrum-Radio-button::before {
+ border-color: var(--highcontrast-radio-button-checked-border-color-down, var(--mod-radio-button-checked-border-color-down, var(--spectrum-radio-button-checked-border-color-down)));
+ }
+
+ .spectrum-Radio-label {
+ color: var(--highcontrast-radio-neutral-content-color-down, var(--mod-radio-neutral-content-color-down, var(--spectrum-radio-neutral-content-color-down)));
+ }
+ }
+
+ &:focus {
+ /* selection indicator is focused state */
+ .spectrum-Radio-button::before {
+ border-color: var(--highcontrast-radio-button-border-color-focus, var(--mod-radio-button-border-color-focus, var(--spectrum-radio-button-border-color-focus)));
+ }
+
+ /* focus ring is focused state */
+ .spectrum-Radio-button::after {
+ border-style: solid;
+ border-color: var(--highcontrast-radio-focus-indicator-color, var(--mod-radio-focus-indicator-color, var(--spectrum-radio-focus-indicator-color)));
+ border-width: var(--mod-radio-focus-indicator-thickness, var(--spectrum-radio-focus-indicator-thickness));
+
+ inline-size: calc(var(--spectrum-radio-button-control-size) + (var(--spectrum-radio-focus-indicator-gap) * 2));
+ block-size: calc(var(--spectrum-radio-button-control-size) + (var(--spectrum-radio-focus-indicator-gap) * 2));
+ }
+
+ /* selected selection indicator is focused state */
+ .spectrum-Radio-input:checked + .spectrum-Radio-button::before {
+ border-color: var(--highcontrast-radio-button-checked-border-color-focus, var(--mod-radio-button-checked-border-color-focus, var(--spectrum-radio-button-checked-border-color-focus)));
+ }
+
+ .spectrum-Radio-label {
+ color: var(--highcontrast-radio-neutral-content-color-focus, var(--mod-radio-neutral-content-color-focus, var(--spectrum-radio-neutral-content-color-focus)));
+ }
+ }
+
+ &.is-readOnly {
+ .spectrum-Radio-input:read-only {
+ cursor: initial;
+ }
+
+ /* hide selection indicator */
+ & .spectrum-Radio-button {
+ position: fixed;
+ inset-inline-end: 100%;
+ inset-block-end: 100%;
+ clip: rect(1px, 1px, 1px, 1px);
+ clip-path: inset(50%);
+ }
+
+ .spectrum-Radio-label,
/* ensure disabled readonly has normal text color */
& .spectrum-Radio-input:disabled ~ .spectrum-Radio-label,
& .spectrum-Radio-input:checked:disabled ~ .spectrum-Radio-label {
- margin-inline-start: auto;
- color: inherit;
- }
- }
+ margin-inline-start: auto;
+ color: var(--highcontrast-radio-neutral-content-color, var(--mod-radio-neutral-content-color, var(--spectrum-radio-neutral-content-color)));
+ }
+ }
}
.spectrum-Radio--emphasized {
- /* selection indicator emphasized */
- .spectrum-Radio-input:checked + .spectrum-Radio-button::before {
- border-color: var(--highcontrast-radio-emphasized-accent-color,
- var(--mod-radio-emphasized-accent-color,
- var(--spectrum-radio-emphasized-accent-color)));
- }
-
- /* selection indicator emphasized hover */
- &:hover .spectrum-Radio-input:checked + .spectrum-Radio-button::before {
- border-color: var(--highcontrast-radio-emphasized-accent-color-hover,
- var(--mod-radio-emphasized-accent-color-hover,
- var(--spectrum-radio-emphasized-accent-color-hover)));
- }
-
- /* selection indicator emphasized active */
- &:active .spectrum-Radio-input:checked + .spectrum-Radio-button::before {
- border-color: var(--highcontrast-radio-emphasized-accent-color-down,
- var(--mod-radio-emphasized-accent-color-down,
- var(--spectrum-radio-emphasized-accent-color-down)));
- }
-
- /* selection indicator emphasized focus */
- &:focus .spectrum-Radio-input:checked + .spectrum-Radio-button::before {
- border-color: var(--highcontrast-radio-emphasized-accent-color-focus,
- var(--mod-radio-emphasized-accent-color-focus,
- var(--spectrum-radio-emphasized-accent-color-focus)));
- }
+ /* selection indicator emphasized */
+ .spectrum-Radio-input:checked + .spectrum-Radio-button::before {
+ border-color: var(--highcontrast-radio-emphasized-accent-color, var(--mod-radio-emphasized-accent-color, var(--spectrum-radio-emphasized-accent-color)));
+ }
+
+ /* selection indicator emphasized hover */
+ &:hover .spectrum-Radio-input:checked + .spectrum-Radio-button::before {
+ border-color: var(--highcontrast-radio-emphasized-accent-color-hover, var(--mod-radio-emphasized-accent-color-hover, var(--spectrum-radio-emphasized-accent-color-hover)));
+ }
+
+ /* selection indicator emphasized active */
+ &:active .spectrum-Radio-input:checked + .spectrum-Radio-button::before {
+ border-color: var(--highcontrast-radio-emphasized-accent-color-down, var(--mod-radio-emphasized-accent-color-down, var(--spectrum-radio-emphasized-accent-color-down)));
+ }
+
+ /* selection indicator emphasized focus */
+ &:focus .spectrum-Radio-input:checked + .spectrum-Radio-button::before {
+ border-color: var(--highcontrast-radio-emphasized-accent-color-focus, var(--mod-radio-emphasized-accent-color-focus, var(--spectrum-radio-emphasized-accent-color-focus)));
+ }
}
-/* selection indicator disabled */
-.spectrum-Radio .spectrum-Radio-input,
-.spectrum-Radio .spectrum-Radio-input:checked {
- &:disabled + .spectrum-Radio-button {
- &::before {
- border-color: var(--highcontrast-radio-disabled-border-color,
- var(--mod-radio-disabled-border-color,
- var(--spectrum-radio-disabled-border-color)));
- }
- }
-
- /* label disabled */
- &:disabled ~ .spectrum-Radio-label {
- color: var(--highcontrast-radio-disabled-content-color,
- var(--mod-radio-disabled-content-color,
- var(--spectrum-radio-disabled-content-color)));
- }
+/* Disabled state */
+.spectrum-Radio .spectrum-Radio-input:disabled,
+.spectrum-Radio .spectrum-Radio-input:checked:disabled {
+ /* selection indicator */
+ & + .spectrum-Radio-button::before {
+ border-color: var(--highcontrast-radio-disabled-border-color, var(--mod-radio-disabled-border-color, var(--spectrum-radio-disabled-border-color)));
+ }
+
+ & ~ .spectrum-Radio-label {
+ color: var(--highcontrast-radio-disabled-content-color, var(--mod-radio-disabled-content-color, var(--spectrum-radio-disabled-content-color)));
+ }
}
.spectrum-Radio-input {
- /* Change the font styles in all browsers for input. */
- font-family: inherit;
- font-size: 100%;
- line-height: var(--mod-radio-line-height,
- var(--spectrum-radio-line-height));
-
- /* Remove the margin for input in Firefox and Safari. */
- margin: 0;
-
- /* Show the overflow for input in Edge. */
- overflow: visible;
-
- /* Add the correct box sizing for [type="radio"] in IE 10-. */
- box-sizing: border-box;
-
- /* Remove the padding for [type="radio"] in IE 10-. */
- padding: 0;
-
- position: absolute;
- inline-size: 100%;
- block-size: 100%;
-
- opacity: 0;
- z-index: 1;
-
- cursor: pointer;
-
- &:disabled {
- cursor: default;
- }
-
- /* selection indicator checked */
- &:checked + .spectrum-Radio-button {
- &::before {
- /* half of element width minus half of indicator width is checked border width */
- border-width: calc((var(--spectrum-radio-button-control-size) / 2) - (var(--spectrum-radio-button-selection-indicator) / 2));
- border-color: var(--highcontrast-radio-button-checked-border-color-default,
- var(--mod-radio-button-checked-border-color-default,
- var(--spectrum-radio-button-checked-border-color-default)));
- }
- }
-
- /* focused state */
- &:focus-visible {
- + .spectrum-Radio-button::after {
- border-width: var(--mod-radio-focus-indicator-thickness,
- var(--spectrum-radio-focus-indicator-thickness));
- border-color: var(--highcontrast-radio-focus-indicator-color,
- var(--mod-radio-focus-indicator-color,
- var(--spectrum-radio-focus-indicator-color)));
- border-style: solid;
-
- inline-size: calc(var(--spectrum-radio-button-control-size) + (var(--spectrum-radio-focus-indicator-gap) * 2));
- block-size: calc(var(--spectrum-radio-button-control-size) + (var(--spectrum-radio-focus-indicator-gap) * 2));
- }
- }
+ /* Change the font styles in all browsers for input. */
+ font-family: inherit;
+ font-size: 100%;
+ line-height: var(--mod-radio-line-height, var(--spectrum-radio-line-height));
+
+ /* Remove the margin for input in Firefox and Safari. */
+ margin: 0;
+
+ /* Show the overflow for input in Edge. */
+ overflow: visible;
+
+ /* Add the correct box sizing for [type="radio"] in IE 10-. */
+ box-sizing: border-box;
+
+ /* Remove the padding for [type="radio"] in IE 10-. */
+ padding: 0;
+
+ position: absolute;
+ inline-size: 100%;
+ block-size: 100%;
+
+ opacity: 0;
+ z-index: 1;
+
+ cursor: pointer;
+
+ &:disabled {
+ cursor: default;
+ }
+
+ /* selection indicator checked */
+ &:checked + .spectrum-Radio-button {
+ &::before {
+ /* half of element width minus half of indicator width is checked border width */
+ border-width: calc((var(--spectrum-radio-button-control-size) / 2) - (var(--spectrum-radio-button-selection-indicator) / 2));
+ border-color: var(--highcontrast-radio-button-checked-border-color-default, var(--mod-radio-button-checked-border-color-default, var(--spectrum-radio-button-checked-border-color-default)));
+ }
+ }
+
+ /* focused state */
+ &:focus-visible {
+ + .spectrum-Radio-button::after {
+ border-width: var(--mod-radio-focus-indicator-thickness, var(--spectrum-radio-focus-indicator-thickness));
+ border-color: var(--highcontrast-radio-focus-indicator-color, var(--mod-radio-focus-indicator-color, var(--spectrum-radio-focus-indicator-color)));
+ border-style: solid;
+
+ inline-size: calc(var(--spectrum-radio-button-control-size) + (var(--spectrum-radio-focus-indicator-gap) * 2));
+ block-size: calc(var(--spectrum-radio-button-control-size) + (var(--spectrum-radio-focus-indicator-gap) * 2));
+ }
+ }
}
.spectrum-Radio-label {
- text-align: start;
- margin-inline-start: var(--mod-radio-text-to-control,
- var(--spectrum-radio-text-to-control));
- margin-block-start: var(--spectrum-radio-label-top-to-text);
- margin-block-end: var(--spectrum-radio-label-bottom-to-text);
-
- font-size: var(--mod-radio-font-size,
- var(--spectrum-radio-font-size));
-
- /* TODO: font weight and style tokens */
- /* font-weight: var(--spectrum-radio-text-font-weight); **** missing token resolves to 400 ****/
- /* font-style: var(--spectrum-radio-text-font-style); **** missing token resolves to normal ****/
- color: var(--highcontrast-radio-neutral-content-color,
- var(--mod-radio-neutral-content-color,
- var(--spectrum-radio-neutral-content-color)));
- line-height: var(--mod-radio-line-height,
- var(--spectrum-radio-line-height));
-
- transition: color var(--mod-radio-animation-duration,
- var(--spectrum-radio-animation-duration)) ease-in-out;
-
- /* CJK language support */
- &:lang(ja),
- &:lang(zh),
- &:lang(ko) {
- line-height: var(--mod-radio-line-height-cjk, var(--spectrum-radio-line-height-cjk));
- }
+ text-align: start;
+ margin-inline-start: var(--mod-radio-text-to-control, var(--spectrum-radio-text-to-control));
+ margin-block-start: var(--spectrum-radio-label-top-to-text);
+ margin-block-end: var(--spectrum-radio-label-bottom-to-text);
+
+ font-size: var(--mod-radio-font-size, var(--spectrum-radio-font-size));
+
+ /* TODO: font weight and style tokens */
+ /* font-weight: var(--spectrum-radio-text-font-weight); **** missing token resolves to 400 ****/
+ /* font-style: var(--spectrum-radio-text-font-style); **** missing token resolves to normal ****/
+ color: var(--highcontrast-radio-neutral-content-color, var(--mod-radio-neutral-content-color, var(--spectrum-radio-neutral-content-color)));
+ line-height: var(--mod-radio-line-height, var(--spectrum-radio-line-height));
+
+ transition: color var(--mod-radio-animation-duration, var(--spectrum-radio-animation-duration)) ease-in-out;
+
+ /* CJK language support */
+ &:lang(ja),
+ &:lang(zh),
+ &:lang(ko) {
+ line-height: var(--mod-radio-line-height-cjk, var(--spectrum-radio-line-height-cjk));
+ }
}
.spectrum-Radio-button {
- position: relative;
- box-sizing: border-box;
- inline-size: var(--mod-radio-button-control-size,
- var(--spectrum-radio-button-control-size));
- block-size: var(--mod-radio-button-control-size,
- var(--spectrum-radio-button-control-size));
- margin-block-start: var(--mod-radio-button-top-to-control,
- var(--spectrum-radio-button-top-to-control));
-
- flex-grow: 0;
- flex-shrink: 0;
-
- /* selection indicator unchecked */
- &::before {
- display: block;
- z-index: 0;
- content: "";
- box-sizing: border-box;
- position: absolute;
-
- inline-size: var(--mod-radio-button-control-size,
- var(--spectrum-radio-button-control-size));
- block-size: var(--mod-radio-button-control-size,
- var(--spectrum-radio-button-control-size));
-
- background-color: var(--highcontrast-radio-button-background-color,
- var(--mod-radio-button-background-color,
- var(--spectrum-radio-button-background-color)));
-
- border-radius: 50%;
- border-width: var(--mod-radio-border-width,
- var(--spectrum-radio-border-width));
- border-color: var(--highcontrast-radio-button-border-color-default,
- var(--mod-radio-button-border-color-default,
- var(--spectrum-radio-button-border-color-default)));
- border-style: solid;
-
- transition: border var(--mod-radio-animation-duration,
- var(--spectrum-radio-animation-duration)) ease-in-out,
- box-shadow var(--mod-radio-animation-duration,
- var(--spectrum-radio-animation-duration)) ease-in-out;
- }
-
- /* focus ring is not focused state */
- &::after {
- border-radius: 50%;
-
- content: "";
- display: block;
- position: absolute;
- inset-inline-start: 50%;
- inset-block-start: 50%;
- transform: translateX(-50%) translateY(-50%);
-
- transition: opacity var(--mod-radio-animation-duration,
- var(--spectrum-radio-animation-duration)) ease-out,
- margin var(--mod-radio-animation-duration,
- var(--spectrum-radio-animation-duration)) ease-out;
-
- &:dir(rtl) {
- transform: translateX(50%) translateY(-50%);
- }
- }
+ position: relative;
+ box-sizing: border-box;
+ inline-size: var(--mod-radio-button-control-size, var(--spectrum-radio-button-control-size));
+ block-size: var(--mod-radio-button-control-size, var(--spectrum-radio-button-control-size));
+ margin-block-start: var(--mod-radio-button-top-to-control, var(--spectrum-radio-button-top-to-control));
+
+ flex-grow: 0;
+ flex-shrink: 0;
+
+ /* selection indicator unchecked */
+ &::before {
+ display: block;
+ z-index: 0;
+ content: "";
+ box-sizing: border-box;
+ position: absolute;
+
+ inline-size: var(--mod-radio-button-control-size, var(--spectrum-radio-button-control-size));
+ block-size: var(--mod-radio-button-control-size, var(--spectrum-radio-button-control-size));
+
+ background-color: var(--highcontrast-radio-button-background-color, var(--mod-radio-button-background-color, var(--spectrum-radio-button-background-color)));
+
+ border-radius: 50%;
+ border-width: var(--mod-radio-border-width, var(--spectrum-radio-border-width));
+ border-color: var(--highcontrast-radio-button-border-color-default, var(--mod-radio-button-border-color-default, var(--spectrum-radio-button-border-color-default)));
+ border-style: solid;
+
+ transition:
+ border var(--mod-radio-animation-duration, var(--spectrum-radio-animation-duration)) ease-in-out,
+ box-shadow var(--mod-radio-animation-duration, var(--spectrum-radio-animation-duration)) ease-in-out;
+ }
+
+ /* focus ring is not focused state */
+ &::after {
+ border-radius: 50%;
+
+ content: "";
+ display: block;
+ position: absolute;
+ inset-inline-start: 50%;
+ inset-block-start: 50%;
+ transform: translateX(-50%) translateY(-50%);
+
+ transition:
+ opacity var(--mod-radio-animation-duration, var(--spectrum-radio-animation-duration)) ease-out,
+ margin var(--mod-radio-animation-duration, var(--spectrum-radio-animation-duration)) ease-out;
+
+ &:dir(rtl) {
+ transform: translateX(50%) translateY(-50%);
+ }
+ }
}
diff --git a/components/slider/index.css b/components/slider/index.css
index 81fe996c63..93efc28d54 100644
--- a/components/slider/index.css
+++ b/components/slider/index.css
@@ -13,18 +13,18 @@ governing permissions and limitations under the License.
@import "./themes/express.css";
.spectrum-Slider {
- /* default sizing, matches t-shirt size M */
- --spectrum-slider-font-size: var(--spectrum-font-size-75);
- --spectrum-slider-handle-size: var(--spectrum-slider-handle-size-medium);
- --spectrum-slider-control-height: var(--spectrum-component-height-100);
- --spectrum-slider-handle-border-radius: var(--spectrum-corner-radius-200);
- --spectrum-slider-handle-border-width-down: var(--spectrum-slider-handle-border-width-down-medium);
- --spectrum-slider-label-top-to-text: var(--spectrum-component-top-to-text-75);
- --spectrum-slider-control-to-field-label: var(--spectrum-slider-control-to-field-label-medium);
- --spectrum-slider-value-side-padding-inline: var(--spectrum-spacing-200);
-
- /* TODO: placeholder value for sideLabel variant value width */
- --spectrum-slider-value-inline-size: 18px;
+ /* default sizing, matches t-shirt size M */
+ --spectrum-slider-font-size: var(--spectrum-font-size-75);
+ --spectrum-slider-handle-size: var(--spectrum-slider-handle-size-medium);
+ --spectrum-slider-control-height: var(--spectrum-component-height-100);
+ --spectrum-slider-handle-border-radius: var(--spectrum-corner-radius-200);
+ --spectrum-slider-handle-border-width-down: var(--spectrum-slider-handle-border-width-down-medium);
+ --spectrum-slider-label-top-to-text: var(--spectrum-component-top-to-text-75);
+ --spectrum-slider-control-to-field-label: var(--spectrum-slider-control-to-field-label-medium);
+ --spectrum-slider-value-side-padding-inline: var(--spectrum-spacing-200);
+
+ /* TODO: placeholder value for sideLabel variant value width */
+ --spectrum-slider-value-inline-size: 18px;
&:dir(rtl),
&:dir(rtl) {
@@ -32,756 +32,732 @@ governing permissions and limitations under the License.
}
}
-
.spectrum-Slider--sizeS {
- --spectrum-slider-font-size: var(--spectrum-font-size-75);
- --spectrum-slider-handle-size: var(--spectrum-slider-handle-size-small);
- --spectrum-slider-control-height: var(--spectrum-component-height-75);
- --spectrum-slider-handle-border-radius: var(--spectrum-corner-radius-200);
- --spectrum-slider-handle-border-width-down: var(--spectrum-slider-handle-border-width-down-small);
- --spectrum-slider-label-top-to-text: var(--spectrum-component-top-to-text-75);
- --spectrum-slider-control-to-field-label: var(--spectrum-slider-control-to-field-label-small);
- --spectrum-slider-value-side-padding-inline: var(--spectrum-spacing-100);
+ --spectrum-slider-font-size: var(--spectrum-font-size-75);
+ --spectrum-slider-handle-size: var(--spectrum-slider-handle-size-small);
+ --spectrum-slider-control-height: var(--spectrum-component-height-75);
+ --spectrum-slider-handle-border-radius: var(--spectrum-corner-radius-200);
+ --spectrum-slider-handle-border-width-down: var(--spectrum-slider-handle-border-width-down-small);
+ --spectrum-slider-label-top-to-text: var(--spectrum-component-top-to-text-75);
+ --spectrum-slider-control-to-field-label: var(--spectrum-slider-control-to-field-label-small);
+ --spectrum-slider-value-side-padding-inline: var(--spectrum-spacing-100);
}
.spectrum-Slider--sizeL {
- --spectrum-slider-font-size: var(--spectrum-font-size-100);
- --spectrum-slider-handle-size: var(--spectrum-slider-handle-size-large);
- --spectrum-slider-control-height: var(--spectrum-component-height-200);
- --spectrum-slider-handle-border-radius: calc(var(--spectrum-corner-radius-200) * 4);
- --spectrum-slider-handle-border-width-down: var(--spectrum-slider-handle-border-width-down-large);
- --spectrum-slider-label-top-to-text: var(--spectrum-component-top-to-text-100);
- --spectrum-slider-control-to-field-label: var(--spectrum-slider-control-to-field-label-large);
- --spectrum-slider-value-side-padding-inline: var(--spectrum-spacing-200);
+ --spectrum-slider-font-size: var(--spectrum-font-size-100);
+ --spectrum-slider-handle-size: var(--spectrum-slider-handle-size-large);
+ --spectrum-slider-control-height: var(--spectrum-component-height-200);
+ --spectrum-slider-handle-border-radius: calc(var(--spectrum-corner-radius-200) * 4);
+ --spectrum-slider-handle-border-width-down: var(--spectrum-slider-handle-border-width-down-large);
+ --spectrum-slider-label-top-to-text: var(--spectrum-component-top-to-text-100);
+ --spectrum-slider-control-to-field-label: var(--spectrum-slider-control-to-field-label-large);
+ --spectrum-slider-value-side-padding-inline: var(--spectrum-spacing-200);
- /* TODO: placeholder value for sideLabel variant value width */
- --spectrum-slider-value-inline-size: 18px;
+ /* TODO: placeholder value for sideLabel variant value width */
+ --spectrum-slider-value-inline-size: 18px;
}
.spectrum-Slider--sizeXL {
- --spectrum-slider-font-size: var(--spectrum-font-size-200);
- --spectrum-slider-handle-size: var(--spectrum-slider-handle-size-extra-large);
- --spectrum-slider-control-height: var(--spectrum-component-height-300);
- --spectrum-slider-handle-border-radius: calc(var(--spectrum-corner-radius-200) * 4);
- --spectrum-slider-handle-border-width-down: var(--spectrum-slider-handle-border-width-down-extra-large);
- --spectrum-slider-label-top-to-text: var(--spectrum-component-top-to-text-200);
- --spectrum-slider-control-to-field-label: var(--spectrum-slider-control-to-field-label-extra-large);
- --spectrum-slider-value-side-padding-inline: var(--spectrum-spacing-200);
+ --spectrum-slider-font-size: var(--spectrum-font-size-200);
+ --spectrum-slider-handle-size: var(--spectrum-slider-handle-size-extra-large);
+ --spectrum-slider-control-height: var(--spectrum-component-height-300);
+ --spectrum-slider-handle-border-radius: calc(var(--spectrum-corner-radius-200) * 4);
+ --spectrum-slider-handle-border-width-down: var(--spectrum-slider-handle-border-width-down-extra-large);
+ --spectrum-slider-label-top-to-text: var(--spectrum-component-top-to-text-200);
+ --spectrum-slider-control-to-field-label: var(--spectrum-slider-control-to-field-label-extra-large);
+ --spectrum-slider-value-side-padding-inline: var(--spectrum-spacing-200);
- /* TODO: placeholder value for sideLabel variant value width */
- --spectrum-slider-value-inline-size: 22px;
+ /* TODO: placeholder value for sideLabel variant value width */
+ --spectrum-slider-value-inline-size: 22px;
}
.spectrum-Slider {
- --spectrum-slider-cjk-line-height: var(--spectrum-cjk-line-height-100);
-
- --spectrum-slider-min-size: var(--spectrum-spacing-900);
-
- --spectrum-slider-track-corner-radius: var(--spectrum-corner-radius-75);
- --spectrum-slider-label-margin-start: var(--spectrum-spacing-300);
- --spectrum-slider-handle-border-width: var(--spectrum-border-width-200);
- --spectrum-slider-handle-margin-left: calc(var(--spectrum-slider-handle-size) / -2);
- --spectrum-slider-controls-margin: calc(var(--spectrum-slider-handle-size) / 2);
- --spectrum-slider-track-margin-offset: calc(var(--spectrum-slider-controls-margin) * -1);
- --spectrum-slider-track-middle-handleoffset: calc(var(--spectrum-slider-handle-gap) + calc(var(--spectrum-slider-handle-size) / 2));
- --spectrum-slider-input-top-size: calc(var(--spectrum-slider-handle-size) / -2 / 4);
- --spectrum-slider-track-fill-thickness: var(--spectrum-slider-track-thickness);
- --spectrum-slider-tick-mark-width: var(--spectrum-border-width-200);
- --spectrum-slider-tick-mark-border-radius: 2px;
- --spectrum-slider-tick-handle-background-color: var(--spectrum-gray-100);
-
- /* colors */
- --spectrum-slider-track-color-disabled: var(--spectrum-disabled-background-color);
- --spectrum-slider-track-fill-color-disabled: var(--spectrum-disabled-background-color);
- --spectrum-slider-handle-border-color-disabled: var(--spectrum-disabled-border-color);
- --spectrum-slider-label-text-color: var(--spectrum-neutral-content-color-default);
- --spectrum-slider-label-text-color-disabled: var(--spectrum-disabled-content-color);
- --spectrum-slider-tick-mark-color-disabled: var(--spectrum-disabled-background-color);
- --spectrum-slider-ramp-handle-border-color-active: var(--spectrum-gray-100);
-
- /* values */
- --spectrum-slider-input-left: calc(var(--spectrum-slider-handle-margin-left) / 4);
- --spectrum-slider-track-handleoffset: var(--spectrum-slider-handle-gap);
-
- --spectrum-slider-range-track-reset: 0;
+ --spectrum-slider-cjk-line-height: var(--spectrum-cjk-line-height-100);
+
+ --spectrum-slider-min-size: var(--spectrum-spacing-900);
+
+ --spectrum-slider-track-corner-radius: var(--spectrum-corner-radius-75);
+ --spectrum-slider-label-margin-start: var(--spectrum-spacing-300);
+ --spectrum-slider-handle-border-width: var(--spectrum-border-width-200);
+ --spectrum-slider-handle-margin-left: calc(var(--spectrum-slider-handle-size) / -2);
+ --spectrum-slider-controls-margin: calc(var(--spectrum-slider-handle-size) / 2);
+ --spectrum-slider-track-margin-offset: calc(var(--spectrum-slider-controls-margin) * -1);
+ --spectrum-slider-track-middle-handleoffset: calc(var(--spectrum-slider-handle-gap) + calc(var(--spectrum-slider-handle-size) / 2));
+ --spectrum-slider-input-top-size: calc(var(--spectrum-slider-handle-size) / -2 / 4);
+ --spectrum-slider-track-fill-thickness: var(--spectrum-slider-track-thickness);
+ --spectrum-slider-tick-mark-width: var(--spectrum-border-width-200);
+ --spectrum-slider-tick-mark-border-radius: 2px;
+ --spectrum-slider-tick-handle-background-color: var(--spectrum-gray-100);
+
+ /* colors */
+ --spectrum-slider-track-color-disabled: var(--spectrum-disabled-background-color);
+ --spectrum-slider-track-fill-color-disabled: var(--spectrum-disabled-background-color);
+ --spectrum-slider-handle-border-color-disabled: var(--spectrum-disabled-border-color);
+ --spectrum-slider-label-text-color: var(--spectrum-neutral-content-color-default);
+ --spectrum-slider-tick-label-color: var(--spectrum-neutral-content-color-default);
+ --spectrum-slider-label-text-color-disabled: var(--spectrum-disabled-content-color);
+ --spectrum-slider-tick-mark-color-disabled: var(--spectrum-disabled-background-color);
+ --spectrum-slider-ramp-handle-border-color-active: var(--spectrum-gray-100);
+
+ /* values */
+ --spectrum-slider-input-left: calc(var(--spectrum-slider-handle-margin-left) / 4);
+ --spectrum-slider-track-handleoffset: var(--spectrum-slider-handle-gap);
+
+ --spectrum-slider-range-track-reset: 0;
}
.spectrum-Slider {
- position: relative;
+ position: relative;
- /* Don't let z-index'd child elements float above other things on the page */
- z-index: 1;
- display: block;
- min-inline-size: var(--mod-slider-min-size, var(--spectrum-slider-min-size));
+ /* Don't let z-index'd child elements float above other things on the page */
+ z-index: 1;
+ display: block;
+ min-inline-size: var(--mod-slider-min-size, var(--spectrum-slider-min-size));
- user-select: none;
+ user-select: none;
}
.spectrum-Slider--sideLabel {
- display: flex;
- align-items: center;
+ display: flex;
+ align-items: center;
- .spectrum-Slider-labelContainer {
- margin-block-start: 0;
- }
+ .spectrum-Slider-labelContainer {
+ margin-block-start: 0;
+ }
- .spectrum-Slider-labelContainer + .spectrum-Slider-controls {
- margin-block-start: 0;
- }
+ .spectrum-Slider-labelContainer + .spectrum-Slider-controls {
+ margin-block-start: 0;
+ }
- .spectrum-Slider-controls {
- margin-inline-end: var(--mod-slider-controls-margin, var(--spectrum-slider-controls-margin));
- }
+ .spectrum-Slider-controls {
+ margin-inline-end: var(--mod-slider-controls-margin, var(--spectrum-slider-controls-margin));
+ }
- .spectrum-Slider-value {
- margin-inline-start: var(--mod-slider-value-side-padding-inline, var(--spectrum-slider-value-side-padding-inline));
- inline-size: var(--mod-slider-value-inline-size, var(--spectrum-slider-value-inline-size));
- text-align: start;
- }
+ .spectrum-Slider-value {
+ margin-inline-start: var(--mod-slider-value-side-padding-inline, var(--spectrum-slider-value-side-padding-inline));
+ inline-size: var(--mod-slider-value-inline-size, var(--spectrum-slider-value-inline-size));
+ text-align: start;
+ }
}
.spectrum-Slider-controls {
- display: inline-block;
- box-sizing: border-box;
- cursor: pointer;
- position: relative;
- z-index: auto;
+ display: inline-block;
+ box-sizing: border-box;
+ cursor: pointer;
+ position: relative;
+ z-index: auto;
- /* These calculations prevent the track from spilling outside of the control */
- inline-size: calc(100% - calc(var(--mod-slider-controls-margin, var(--spectrum-slider-controls-margin))) * 2);
- margin-inline-start: var(--mod-slider-controls-margin, var(--spectrum-slider-controls-margin));
+ /* These calculations prevent the track from spilling outside of the control */
+ inline-size: calc(100% - calc(var(--mod-slider-controls-margin, var(--spectrum-slider-controls-margin))) * 2);
+ margin-inline-start: var(--mod-slider-controls-margin, var(--spectrum-slider-controls-margin));
- block-size: var(--mod-slider-control-height, var(--spectrum-slider-control-height));
- vertical-align: top;
+ block-size: var(--mod-slider-control-height, var(--spectrum-slider-control-height));
+ vertical-align: top;
}
.spectrum-Slider-labelContainer + .spectrum-Slider-controls {
- margin-block-start: calc(-1 * var(--spectrum-slider-control-to-field-label));
+ margin-block-start: calc(-1 * var(--spectrum-slider-control-to-field-label));
}
/* TODO: Sliders with ticks + tick mark labels require more margin-block-end.
As of February 2023 we do not have tokens yet tokens for Ramp and Tick variants,
using control-height here instead. */
.spectrum-Slider--tick {
- margin-block-end: var(--mod-slider-control-height, var(--spectrum-slider-control-height));
+ margin-block-end: var(--mod-slider-control-height, var(--spectrum-slider-control-height));
}
.spectrum-Slider-track,
.spectrum-Slider-fill {
- block-size: var(--mod-slider-track-fill-thickness, var(--spectrum-slider-track-fill-thickness));
- box-sizing: border-box;
-
- position: absolute;
- z-index: 1;
- inset-block-start: calc(var(--mod-slider-control-height, var(--spectrum-slider-control-height)) / 2 - var(--mod-slider-track-fill-thickness, var(--spectrum-slider-track-fill-thickness)) / 2);
- inset-inline-start: 0;
- inset-inline-end: auto;
- pointer-events: none;
-
- padding-block: 0;
- padding-inline-start: 0;
- padding-inline-end: var(--mod-slider-handle-gap, var(--spectrum-slider-handle-gap));
- margin-inline-start: var(--mod-slider-track-margin-offset, var(--spectrum-slider-track-margin-offset));
-
- &::before {
- content: "";
- display: block;
- block-size: 100%;
-
- /* reset all border radii */
- border-start-start-radius: 0;
- border-end-start-radius: 0;
- border-start-end-radius: 0;
- border-end-end-radius: 0;
- }
+ block-size: var(--mod-slider-track-fill-thickness, var(--spectrum-slider-track-fill-thickness));
+ box-sizing: border-box;
+
+ position: absolute;
+ z-index: 1;
+ inset-block-start: calc(var(--mod-slider-control-height, var(--spectrum-slider-control-height)) / 2 - var(--mod-slider-track-fill-thickness, var(--spectrum-slider-track-fill-thickness)) / 2);
+ inset-inline-start: 0;
+ inset-inline-end: auto;
+ pointer-events: none;
+
+ padding-block: 0;
+ padding-inline-start: 0;
+ padding-inline-end: var(--mod-slider-handle-gap, var(--spectrum-slider-handle-gap));
+ margin-inline-start: var(--mod-slider-track-margin-offset, var(--spectrum-slider-track-margin-offset));
+
+ &::before {
+ content: "";
+ display: block;
+ block-size: 100%;
+
+ /* reset all border radii */
+ border-start-start-radius: 0;
+ border-end-start-radius: 0;
+ border-start-end-radius: 0;
+ border-end-end-radius: 0;
+ }
}
.spectrum-Slider-track {
- &:first-of-type {
- &::before {
- border-start-start-radius: var(--mod-slider-track-corner-radius, var(--spectrum-slider-track-corner-radius));
- border-end-start-radius: var(--mod-slider-track-corner-radius, var(--spectrum-slider-track-corner-radius));
- }
- }
+ &:first-of-type {
+ &::before {
+ border-start-start-radius: var(--mod-slider-track-corner-radius, var(--spectrum-slider-track-corner-radius));
+ border-end-start-radius: var(--mod-slider-track-corner-radius, var(--spectrum-slider-track-corner-radius));
+ }
+ }
- &:last-of-type {
- &::before {
- border-start-end-radius: var(--mod-slider-track-corner-radius, var(--spectrum-slider-track-corner-radius));
- border-end-end-radius: var(--mod-slider-track-corner-radius, var(--spectrum-slider-track-corner-radius));
- }
- }
+ &:last-of-type {
+ &::before {
+ border-start-end-radius: var(--mod-slider-track-corner-radius, var(--spectrum-slider-track-corner-radius));
+ border-end-end-radius: var(--mod-slider-track-corner-radius, var(--spectrum-slider-track-corner-radius));
+ }
+ }
}
.spectrum-Slider-track ~ .spectrum-Slider-track {
- inset-inline-start: auto;
- inset-inline-end: var(--mod-slider-range-track-reset, var(--spectrum-slider-range-track-reset));
- padding-block: 0;
- padding-inline-start: var(--mod-slider-track-handleoffset, var(--spectrum-slider-track-handleoffset));
- padding-inline-end: 0;
- margin-inline-start: var(--mod-slider-range-track-reset, var(--spectrum-slider-range-track-reset));
- margin-inline-end: var(--mod-slider-track-margin-offset, var(--spectrum-slider-track-margin-offset));
+ inset-inline-start: auto;
+ inset-inline-end: var(--mod-slider-range-track-reset, var(--spectrum-slider-range-track-reset));
+ padding-block: 0;
+ padding-inline-start: var(--mod-slider-track-handleoffset, var(--spectrum-slider-track-handleoffset));
+ padding-inline-end: 0;
+ margin-inline-start: var(--mod-slider-range-track-reset, var(--spectrum-slider-range-track-reset));
+ margin-inline-end: var(--mod-slider-track-margin-offset, var(--spectrum-slider-track-margin-offset));
}
-
/* over-write for Range, without the LTR RTL post-css hack */
.spectrum-Slider--range {
- .spectrum-Slider-track ~ .spectrum-Slider-track {
- padding-inline: var(--mod-slider-track-middle-handleoffset, var(--spectrum-slider-track-middle-handleoffset)) var(--mod-slider-track-middle-handleoffset, var(--spectrum-slider-track-middle-handleoffset));
- inset-inline: auto;
- margin-inline: var(--mod-slider-range-track-reset, var(--spectrum-slider-range-track-reset));
- }
+ .spectrum-Slider-track ~ .spectrum-Slider-track {
+ padding-inline: var(--mod-slider-track-middle-handleoffset, var(--spectrum-slider-track-middle-handleoffset)) var(--mod-slider-track-middle-handleoffset, var(--spectrum-slider-track-middle-handleoffset));
+ inset-inline: auto;
+ margin-inline: var(--mod-slider-range-track-reset, var(--spectrum-slider-range-track-reset));
+ }
}
.spectrum-Slider-fill {
- margin-inline-start: 0;
- padding-block: 0;
- padding-inline-start: calc(var(--mod-slider-controls-margin, var(--spectrum-slider-controls-margin)) + var(--spectrum-slider-handle-gap, var(--spectrum-slider-handle-gap)));
- padding-inline-end: 0;
+ margin-inline-start: 0;
+ padding-block: 0;
+ padding-inline-start: calc(var(--mod-slider-controls-margin, var(--spectrum-slider-controls-margin)) + var(--spectrum-slider-handle-gap, var(--spectrum-slider-handle-gap)));
+ padding-inline-end: 0;
}
.spectrum-Slider-fill--right {
- padding-block: 0;
- padding-inline-start: 0;
- padding-inline-end: calc(var(--mod-slider-controls-margin, var(--spectrum-slider-controls-margin)) + var(--spectrum-slider-handle-gap, var(--spectrum-slider-handle-gap)));
+ padding-block: 0;
+ padding-inline-start: 0;
+ padding-inline-end: calc(var(--mod-slider-controls-margin, var(--spectrum-slider-controls-margin)) + var(--spectrum-slider-handle-gap, var(--spectrum-slider-handle-gap)));
}
.spectrum-Slider--range {
- .spectrum-Slider-value {
- user-select: text;
- }
-
- .spectrum-Slider-track {
- &:first-of-type {
- padding-inline-start: 0;
- padding-inline-end: var(--mod-slider-track-handleoffset, var(--spectrum-slider-track-handleoffset));
- inset-inline-start: var(--mod-slider-range-track-reset, var(--spectrum-slider-range-track-reset));
- inset-inline-end: auto;
- margin-inline-start: var(--mod-slider-track-margin-offset, var(--spectrum-slider-track-margin-offset));
- }
-
- &:first-of-type::before {
- border-start-start-radius: var(--mod-slider-track-corner-radius, var(--spectrum-slider-track-corner-radius));
- border-end-start-radius: var(--mod-slider-track-corner-radius, var(--spectrum-slider-track-corner-radius));
- }
-
- &:last-of-type {
- padding-inline-start: var(--spectrum-slider-track-handleoffset);
- padding-inline-end: 0;
- inset-inline-start: auto;
- inset-inline-end: var(--mod-slider-range-track-reset, var(--spectrum-slider-range-track-reset));
- margin-inline-end: var(--mod-slider-track-margin-offset, var(--spectrum-slider-track-margin-offset));
- }
-
- &:last-of-type::before {
- border-start-end-radius: var(--mod-slider-track-corner-radius, var(--spectrum-slider-track-corner-radius));
- border-end-end-radius: var(--mod-slider-track-corner-radius, var(--spectrum-slider-track-corner-radius));
- }
- }
+ .spectrum-Slider-value {
+ user-select: text;
+ }
+
+ .spectrum-Slider-track {
+ &:first-of-type {
+ padding-inline-start: 0;
+ padding-inline-end: var(--mod-slider-track-handleoffset, var(--spectrum-slider-track-handleoffset));
+ inset-inline-start: var(--mod-slider-range-track-reset, var(--spectrum-slider-range-track-reset));
+ inset-inline-end: auto;
+ margin-inline-start: var(--mod-slider-track-margin-offset, var(--spectrum-slider-track-margin-offset));
+ }
+
+ &:first-of-type::before {
+ border-start-start-radius: var(--mod-slider-track-corner-radius, var(--spectrum-slider-track-corner-radius));
+ border-end-start-radius: var(--mod-slider-track-corner-radius, var(--spectrum-slider-track-corner-radius));
+ }
+
+ &:last-of-type {
+ padding-inline-start: var(--spectrum-slider-track-handleoffset);
+ padding-inline-end: 0;
+ inset-inline-start: auto;
+ inset-inline-end: var(--mod-slider-range-track-reset, var(--spectrum-slider-range-track-reset));
+ margin-inline-end: var(--mod-slider-track-margin-offset, var(--spectrum-slider-track-margin-offset));
+ }
+
+ &:last-of-type::before {
+ border-start-end-radius: var(--mod-slider-track-corner-radius, var(--spectrum-slider-track-corner-radius));
+ border-end-end-radius: var(--mod-slider-track-corner-radius, var(--spectrum-slider-track-corner-radius));
+ }
+ }
}
.spectrum-Slider-ramp {
- margin-block-start: calc(var(--mod-slider-ramp-track-height, var(--spectrum-slider-ramp-track-height)) / 2);
- block-size: var(--mod-slider-ramp-track-height, var(--spectrum-slider-ramp-track-height));
+ margin-block-start: calc(var(--mod-slider-ramp-track-height, var(--spectrum-slider-ramp-track-height)) / 2);
+ block-size: var(--mod-slider-ramp-track-height, var(--spectrum-slider-ramp-track-height));
- position: absolute;
- inset-inline-start: var(--spectrum-slider-track-margin-offset, var(--spectrum-slider-track-margin-offset));
- inset-inline-end: var(--spectrum-slider-track-margin-offset, var(--spectrum-slider-track-margin-offset));
+ position: absolute;
+ inset-inline-start: var(--spectrum-slider-track-margin-offset, var(--spectrum-slider-track-margin-offset));
+ inset-inline-end: var(--spectrum-slider-track-margin-offset, var(--spectrum-slider-track-margin-offset));
- svg {
- inline-size: 100%;
- block-size: 100%;
+ svg {
+ inline-size: 100%;
+ block-size: 100%;
- /* Flip the ramp automatically for RTL */
- transform: var(--spectrum-logical-rotation);
- }
+ /* Flip the ramp automatically for RTL */
+ transform: var(--spectrum-logical-rotation);
+ }
}
.spectrum-Slider-handle {
- position: absolute;
- inset-inline-start: 0;
- z-index: 2;
- display: inline-block;
- box-sizing: border-box;
-
- inline-size: var(--mod-slider-handle-size, var(--spectrum-slider-handle-size));
- block-size: var(--mod-slider-handle-size, var(--spectrum-slider-handle-size));
-
- inset-block-start: calc(
- var(--mod-slider-control-height, var(--spectrum-slider-control-height)) / 2 - var(--mod-slider-handle-size, var(--spectrum-slider-handle-size)) / 2
- );
- margin-block: 0;
- margin-inline: calc(var(--mod-slider-handle-size, var(--spectrum-slider-handle-size)) / -2) 0;
- border-width: var(--mod-slider-handle-border-width, var(--spectrum-slider-handle-border-width));
- border-style: solid;
-
- border-radius: var(--mod-slider-handle-border-radius, var(--spectrum-slider-handle-border-radius));
-
- transition: border-width var(--mod-animation-duration-100, var(--spectrum-animation-duration-100)) ease-in-out;
-
- outline: none;
-
- &:active,
- &.is-dragged {
- border-width: var(--mod-slider-handle-border-width-down, var(--spectrum-slider-handle-border-width-down));
- }
-
- &:active,
- &.is-focused,
- &.is-dragged,
- &.is-tophandle {
- z-index: 3;
- }
-
- /* Focus indicator. */
- &::before {
- content: "";
- display: block;
- position: absolute;
- inset-inline-start: 50%;
- inset-block-start: 50%;
-
- transition: box-shadow var(--mod-animation-duration-100, var(--spectrum-animation-duration-100)) ease-out,
- inline-size var(--mod-animation-duration-100, var(--spectrum-animation-duration-100)) ease-out,
- block-size var(--mod-animation-duration-100, var(--spectrum-animation-duration-100)) ease-out;
-
- inline-size: var(--mod-slider-handle-size, var(--spectrum-slider-handle-size));
- block-size: var(--mod-slider-handle-size, var(--spectrum-slider-handle-size));
- border-radius: 100%;
-
- transform: translate(-50%, -50%);
-
- &:dir(rtl) {
- transform: translate(50%, -50%);
- }
- }
-
- /* Keyboard focused */
- &.is-focused {
- &::before {
- inline-size: calc(var(--mod-slider-handle-size, var(--spectrum-slider-handle-size)) + var(--mod-focus-indicator-gap, var(--spectrum-focus-indicator-gap)) * 2);
- block-size: calc(var(--mod-slider-handle-size, var(--spectrum-slider-handle-size)) + var(--mod-focus-indicator-gap, var(--spectrum-focus-indicator-gap)) * 2);
- }
- }
-}
+ position: absolute;
+ inset-inline-start: 0;
+ z-index: 2;
+ display: inline-block;
+ box-sizing: border-box;
-.spectrum-Slider-input {
- /* Remove the margin for input in Firefox and Safari. */
- margin: 0;
+ inline-size: var(--mod-slider-handle-size, var(--spectrum-slider-handle-size));
+ block-size: var(--mod-slider-handle-size, var(--spectrum-slider-handle-size));
+
+ inset-block-start: calc(var(--mod-slider-control-height, var(--spectrum-slider-control-height)) / 2 - var(--mod-slider-handle-size, var(--spectrum-slider-handle-size)) / 2);
+ margin-block: 0;
+ margin-inline: calc(var(--mod-slider-handle-size, var(--spectrum-slider-handle-size)) / -2) 0;
+ border-width: var(--mod-slider-handle-border-width, var(--spectrum-slider-handle-border-width));
+ border-style: solid;
+
+ border-radius: var(--mod-slider-handle-border-radius, var(--spectrum-slider-handle-border-radius));
+
+ transition: border-width var(--mod-animation-duration-100, var(--spectrum-animation-duration-100)) ease-in-out;
+
+ outline: none;
+
+ &:active,
+ &.is-dragged {
+ border-width: var(--mod-slider-handle-border-width-down, var(--spectrum-slider-handle-border-width-down));
+ }
+
+ &:active,
+ &.is-focused,
+ &.is-dragged,
+ &.is-tophandle {
+ z-index: 3;
+ }
- inline-size: var(--mod-slider-handle-size, var(--spectrum-slider-handle-size));
- block-size: var(--mod-slider-handle-size, var(--spectrum-slider-handle-size));
- padding: 0;
- position: absolute;
+ /* Focus indicator. */
+ &::before {
+ content: "";
+ display: block;
+ position: absolute;
+ inset-inline-start: 50%;
+ inset-block-start: 50%;
- inset-block-start: var(--mod-slider-input-top-size, var(--spectrum-slider-input-top-size));
- inset-inline-start: var(--mod-slider-input-left, var(--spectrum-slider-input-left));
- overflow: hidden;
- opacity: 0.000001; /* stylelint-disable-line number-max-precision */
- cursor: default;
- appearance: none;
- border: 0;
- pointer-events: none;
+ transition:
+ box-shadow var(--mod-animation-duration-100, var(--spectrum-animation-duration-100)) ease-out,
+ inline-size var(--mod-animation-duration-100, var(--spectrum-animation-duration-100)) ease-out,
+ block-size var(--mod-animation-duration-100, var(--spectrum-animation-duration-100)) ease-out;
- &:focus {
- outline: none;
- }
+ inline-size: var(--mod-slider-handle-size, var(--spectrum-slider-handle-size));
+ block-size: var(--mod-slider-handle-size, var(--spectrum-slider-handle-size));
+ border-radius: 100%;
+
+ transform: translate(-50%, -50%);
+
+ &:dir(rtl) {
+ transform: translate(50%, -50%);
+ }
+ }
+
+ /* Keyboard focused */
+ &.is-focused {
+ &::before {
+ inline-size: calc(var(--mod-slider-handle-size, var(--spectrum-slider-handle-size)) + var(--mod-focus-indicator-gap, var(--spectrum-focus-indicator-gap)) * 2);
+ block-size: calc(var(--mod-slider-handle-size, var(--spectrum-slider-handle-size)) + var(--mod-focus-indicator-gap, var(--spectrum-focus-indicator-gap)) * 2);
+ }
+ }
+}
+
+.spectrum-Slider-input {
+ /* Remove the margin for input in Firefox and Safari. */
+ margin: 0;
+
+ inline-size: var(--mod-slider-handle-size, var(--spectrum-slider-handle-size));
+ block-size: var(--mod-slider-handle-size, var(--spectrum-slider-handle-size));
+ padding: 0;
+ position: absolute;
+
+ inset-block-start: var(--mod-slider-input-top-size, var(--spectrum-slider-input-top-size));
+ inset-inline-start: var(--mod-slider-input-left, var(--spectrum-slider-input-left));
+ overflow: hidden;
+ opacity: 0.000001; /* stylelint-disable-line number-max-precision */
+ cursor: default;
+ appearance: none;
+ border: 0;
+ pointer-events: none;
+
+ &:focus {
+ outline: none;
+ }
}
.spectrum-Slider-labelContainer {
- display: flex;
- align-items: center;
- position: relative;
- inline-size: auto;
+ display: flex;
+ align-items: center;
+ position: relative;
+ inline-size: auto;
- font-size: var(--mod-slider-font-size, var(--spectrum-slider-font-size));
- line-height: var(--mod-line-height-100, var(--spectrum-line-height-100));
+ font-size: var(--mod-slider-font-size, var(--spectrum-slider-font-size));
+ line-height: var(--mod-line-height-100, var(--spectrum-line-height-100));
- margin-block-start: var(--mod-slider-label-top-to-text, var(--spectrum-slider-label-top-to-text));
+ margin-block-start: var(--mod-slider-label-top-to-text, var(--spectrum-slider-label-top-to-text));
- /* international support */
- &:lang(ja),
- &:lang(zh),
- &:lang(ko) {
- line-height: var(--mod-slider-cjk-line-height, var(--spectrum-slider-cjk-line-height));
- }
+ /* international support */
+ &:lang(ja),
+ &:lang(zh),
+ &:lang(ko) {
+ line-height: var(--mod-slider-cjk-line-height, var(--spectrum-slider-cjk-line-height));
+ }
}
.spectrum-Slider-label {
- padding-inline-start: 0;
- flex-grow: 1;
- font-size: var(--mod-slider-font-size, var(--spectrum-slider-font-size));
+ padding-inline-start: 0;
+ flex-grow: 1;
+ font-size: var(--mod-slider-font-size, var(--spectrum-slider-font-size));
}
.spectrum-Slider-value {
- flex-grow: 0;
- padding-inline-end: 0;
- cursor: default;
- font-feature-settings: "tnum";
- text-align: end;
+ flex-grow: 0;
+ padding-inline-end: 0;
+ cursor: default;
+ font-feature-settings: "tnum";
+ text-align: end;
}
.spectrum-Slider-value {
- margin-inline-start: var(--mod-slider-label-margin-start, var(--spectrum-slider-label-margin-start));
+ margin-inline-start: var(--mod-slider-label-margin-start, var(--spectrum-slider-label-margin-start));
}
-
/* setting tick marks in relation to label */
.spectrum-Slider--tick {
- .spectrum-Slider-handle {
- background-color: var(--highcontrast-slider-tick-handle-background-color, var(--mod-slider-tick-handle-background-color, var(--spectrum-slider-tick-handle-background-color)));
- }
-
- .spectrum-Slider-controls {
- margin-block-start:
- calc(
- var(--spectrum-text-to-visual-75)
- - var(--mod-slider-tick-mark-height, var(--spectrum-slider-tick-mark-height)) / 2
- - var(--mod-slider-track-thickness, var(--spectrum-slider-track-thickness)) / 2
- );
- }
-
- .spectrum-Slider-tickLabel {
- margin-block-start:
- calc(
- var(--mod-slider-tick-mark-height, var(--spectrum-slider-tick-mark-height)) + var(--spectrum-text-to-visual-75)
- );
- }
+ .spectrum-Slider-handle {
+ background-color: var(--highcontrast-slider-tick-handle-background-color, var(--mod-slider-tick-handle-background-color, var(--spectrum-slider-tick-handle-background-color)));
+ }
+
+ .spectrum-Slider-controls {
+ margin-block-start: calc(var(--spectrum-text-to-visual-75) - var(--mod-slider-tick-mark-height, var(--spectrum-slider-tick-mark-height)) / 2 - var(--mod-slider-track-thickness, var(--spectrum-slider-track-thickness)) / 2);
+ }
+
+ .spectrum-Slider-tickLabel {
+ margin-block-start: calc(var(--mod-slider-tick-mark-height, var(--spectrum-slider-tick-mark-height)) + var(--spectrum-text-to-visual-75));
+ }
}
/* TODO: missing core-tokens for tick variant */
.spectrum-Slider-ticks {
- display: flex;
- justify-content: space-between;
-
- z-index: 0;
-
- margin-inline: var(--mod-slider-track-margin-offset, var(--spectrum-slider-track-margin-offset));
-
- /* TODO: missing core-token for handle fill-color */
- &~.spectrum-Slider-handleContainer {
- .spectrum-Slider-handle {
- background: var(--mod-slider-ticks-handle-background-color, var(--spectrum-slider-ticks-handle-background-color));
- }
- }
+ display: flex;
+ justify-content: space-between;
+ z-index: 0;
+ margin-inline: var(--mod-slider-track-margin-offset, var(--spectrum-slider-track-margin-offset));
+
+ /* TODO: missing core-token for handle fill-color */
+ & ~ .spectrum-Slider-handleContainer {
+ .spectrum-Slider-handle {
+ background: var(--mod-slider-ticks-handle-background-color, var(--spectrum-slider-ticks-handle-background-color));
+ }
+ }
}
.spectrum-Slider-tick {
- position: relative;
-
- inline-size: var(--mod-slider-tick-mark-width, var(--spectrum-slider-tick-mark-width));
-
- /* tick marks are centered half based on slider control height and tick height */
- inset-block-start: calc(var(--mod-slider-track-thickness, var(--spectrum-slider-control-height)) / 2 -
- var(--mod-slider-tick-mark-height, var(--spectrum-slider-tick-mark-height)) / 2
- );
-
-
- &::after {
- display: block;
- position: absolute;
- inset-block-start: 0;
- inset-inline-start: calc(50% - calc(var(--mod-slider-tick-mark-width, var(--spectrum-slider-tick-mark-width)) / 2));
- content: "";
- inline-size: var(--mod-slider-tick-mark-width, var(--spectrum-slider-tick-mark-width));
- block-size: var(--mod-slider-tick-mark-height, var(--spectrum-slider-tick-mark-height));
-
- border-radius: var(--mod-slider-tick-mark-border-radius, var(--spectrum-slider-tick-mark-border-radius));
- }
-
- .spectrum-Slider-tickLabel {
- display: flex;
- align-items: center;
- justify-content: center;
-
+ position: relative;
+ inline-size: var(--mod-slider-tick-mark-width, var(--spectrum-slider-tick-mark-width));
+
+ /* tick marks are centered half based on slider control height and tick height */
+ inset-block-start: calc(var(--mod-slider-track-thickness, var(--spectrum-slider-control-height)) / 2 - var(--mod-slider-tick-mark-height, var(--spectrum-slider-tick-mark-height)) / 2);
+
+ &::after {
+ display: block;
+ position: absolute;
+ inset-block-start: 0;
+ inset-inline-start: calc(50% - calc(var(--mod-slider-tick-mark-width, var(--spectrum-slider-tick-mark-width)) / 2));
+ content: "";
+ inline-size: var(--mod-slider-tick-mark-width, var(--spectrum-slider-tick-mark-width));
+ block-size: var(--mod-slider-tick-mark-height, var(--spectrum-slider-tick-mark-height));
+ border-radius: var(--mod-slider-tick-mark-border-radius, var(--spectrum-slider-tick-mark-border-radius));
+ }
- font-size: var(--mod-font-size-75, var(--spectrum-font-size-75));
- line-height: var(--mod-line-height-100, var(--spectrum-line-height-100));
- }
+ .spectrum-Slider-tickLabel {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ font-size: var(--mod-font-size-75, var(--spectrum-font-size-75));
+ line-height: var(--mod-line-height-100, var(--spectrum-line-height-100));
+ color: var(--highcontrast-slider-label-text-color, var(--mod-slider-tick-label-color, var(--spectrum-slider-tick-label-color)));
+ }
- &:first-of-type,
- &:last-of-type {
- .spectrum-Slider-tickLabel {
- display: block;
- position: absolute;
- margin-inline: 0;
- }
- }
+ &:first-of-type,
+ &:last-of-type {
+ .spectrum-Slider-tickLabel {
+ display: block;
+ position: absolute;
+ margin-inline: 0;
+ }
+ }
- &:first-of-type {
- /* fix off-by-one alignment */
- inset-inline-start: calc(var(--mod-slider-tick-mark-width, var(--spectrum-slider-tick-mark-width)) / -2);
+ &:first-of-type {
+ /* fix off-by-one alignment */
+ inset-inline-start: calc(var(--mod-slider-tick-mark-width, var(--spectrum-slider-tick-mark-width)) / -2);
- .spectrum-Slider-tickLabel {
- inset-inline-start: 0;
- }
- }
+ .spectrum-Slider-tickLabel {
+ inset-inline-start: 0;
+ }
+ }
- &:last-of-type {
- /* fix off-by-one alignment */
- inset-inline-end: calc(var(--mod-slider-tick-mark-width, var(--spectrum-slider-tick-mark-width)) / -2);
+ &:last-of-type {
+ /* fix off-by-one alignment */
+ inset-inline-end: calc(var(--mod-slider-tick-mark-width, var(--spectrum-slider-tick-mark-width)) / -2);
- .spectrum-Slider-tickLabel {
- inset-inline-end: 0;
- }
- }
+ .spectrum-Slider-tickLabel {
+ inset-inline-end: 0;
+ }
+ }
}
/* backwards compatibility: these are not required, but they make the handle go to the edegs and align right */
.spectrum-Slider-handleContainer,
.spectrum-Slider-trackContainer {
- inline-size: calc(100% + var(--spectrum-slider-handle-size));
-
- position: absolute;
- inset-block-start: 0;
-
- margin-inline-start: calc(var(--spectrum-slider-handle-size) / 2 * -1);
+ inline-size: calc(100% + var(--spectrum-slider-handle-size));
+ position: absolute;
+ inset-block-start: 0;
+ margin-inline-start: calc(var(--spectrum-slider-handle-size) / 2 * -1);
}
.spectrum-Slider-trackContainer {
- block-size: var(--mod-slider-control-height, var(--spectrum-slider-control-height));
+ block-size: var(--mod-slider-control-height, var(--spectrum-slider-control-height));
- /* stop edges from peeking out */
- overflow: hidden;
+ /* stop edges from peeking out */
+ overflow: hidden;
}
/* Applies to the filled-offset variant to keep track the same color for highcontrast mode */
.spectrum-Slider-track {
- &::before {
- background: var(--highcontrast-slider-track-color-static, var(--mod-slider-track-color, var(--spectrum-slider-track-color)));
- }
+ &::before {
+ background: var(--highcontrast-slider-track-color-static, var(--mod-slider-track-color, var(--spectrum-slider-track-color)));
+ }
}
/* All variants other than filled-offset get a new track color for highcontrast mode */
.spectrum-Slider-track:not(:has(~ .spectrum-Slider-fill)) {
- &::before {
- background: var(--highcontrast-slider-track-color, var(--mod-slider-track-color, var(--spectrum-slider-track-color)));
- }
+ &::before {
+ background: var(--highcontrast-slider-track-color, var(--mod-slider-track-color, var(--spectrum-slider-track-color)));
+ }
}
.spectrum-Slider-labelContainer {
- color: var(--highcontrast-slider-label-text-color, var(--mod-slider-label-text-color, var(--spectrum-slider-label-text-color)));
+ color: var(--highcontrast-slider-label-text-color, var(--mod-slider-label-text-color, var(--spectrum-slider-label-text-color)));
}
-
.spectrum-Slider--filled {
- .spectrum-Slider-track:first-child {
- &::before {
- background: var(--highcontrast-slider-filled-track-fill-color, var(--mod-slider-track-fill-color, var(--spectrum-slider-track-fill-color)));
- }
- }
+ .spectrum-Slider-track:first-child {
+ &::before {
+ background: var(--highcontrast-slider-filled-track-fill-color, var(--mod-slider-track-fill-color, var(--spectrum-slider-track-fill-color)));
+ }
+ }
}
.spectrum-Slider-fill {
- &::before {
- background: var(--highcontrast-slider-filled-track-fill-color, var(--mod-slider-track-fill-color, var(--spectrum-slider-track-fill-color)));
- }
+ &::before {
+ background: var(--highcontrast-slider-filled-track-fill-color, var(--mod-slider-track-fill-color, var(--spectrum-slider-track-fill-color)));
+ }
}
.spectrum-Slider-ramp {
- path {
- fill: var(--highcontrast-slider-ramp-track-color, var(--mod-slider-ramp-track-color, var(--spectrum-slider-ramp-track-color)));
- }
+ path {
+ fill: var(--highcontrast-slider-ramp-track-color, var(--mod-slider-ramp-track-color, var(--spectrum-slider-ramp-track-color)));
+ }
}
.spectrum-Slider-handle {
- border-color: var(--highcontrast-slider-handle-border-color, var(--mod-slider-handle-border-color, var(--spectrum-slider-handle-border-color)));
- background: var(--highcontrast-slider-handle-background-color, var(--mod-slider-handle-background-color, var(--spectrum-slider-handle-background-color)));
+ border-color: var(--highcontrast-slider-handle-border-color, var(--mod-slider-handle-border-color, var(--spectrum-slider-handle-border-color)));
+ background: var(--highcontrast-slider-handle-background-color, var(--mod-slider-handle-background-color, var(--spectrum-slider-handle-background-color)));
- &:hover {
- border-color: var(--highcontrast-slider-handle-border-color-hover, var(--mod-slider-handle-border-color-hover, var(--spectrum-slider-handle-border-color-hover)));
- }
+ &:hover {
+ border-color: var(--highcontrast-slider-handle-border-color-hover, var(--mod-slider-handle-border-color-hover, var(--spectrum-slider-handle-border-color-hover)));
+ }
- /* Keyboard focused with focus indicator. */
- &.is-focused {
- border-color: var(--highcontrast-slider-handle-border-color-key-focus, var(--mod-slider-handle-border-color-key-focus, var(--spectrum-slider-handle-border-color-key-focus)));
+ /* Keyboard focused with focus indicator. */
+ &.is-focused {
+ border-color: var(--highcontrast-slider-handle-border-color-key-focus, var(--mod-slider-handle-border-color-key-focus, var(--spectrum-slider-handle-border-color-key-focus)));
- &::before {
- box-shadow: 0 0 0 var(--spectrum-focus-indicator-thickness) var(--highcontrast-slider-handle-focus-ring-color-key-focus, var(--mod-slider-handle-focus-ring-color-key-focus, var(--spectrum-slider-handle-focus-ring-color-key-focus)));
- }
- }
+ &::before {
+ box-shadow: 0 0 0 var(--spectrum-focus-indicator-thickness) var(--highcontrast-slider-handle-focus-ring-color-key-focus, var(--mod-slider-handle-focus-ring-color-key-focus, var(--spectrum-slider-handle-focus-ring-color-key-focus)));
+ }
+ }
- &:active,
- &.is-dragged {
- border-color: var(--highcontrast-slider-handle-border-color-down, var(--mod-slider-handle-border-color-down, var(--spectrum-slider-handle-border-color-down)));
- }
+ &:active,
+ &.is-dragged {
+ border-color: var(--highcontrast-slider-handle-border-color-down, var(--mod-slider-handle-border-color-down, var(--spectrum-slider-handle-border-color-down)));
+ }
}
-
.spectrum-Slider--ramp {
- .spectrum-Slider-handle {
- box-shadow: 0 0 0 var(--spectrum-slider-handle-gap) var(--highcontrast-slider-ramp-handle-border-color-active, var(--mod-sectrum-slider-ramp-handle-border-color-active, var(--spectrum-slider-ramp-handle-border-color-active)));
- background: var(--mod-slider-ramp-handle-background-color, var(--highcontrast-slider-ramp-handle-background-color, var(--spectrum-slider-ramp-handle-background-color)));
- }
+ .spectrum-Slider-handle {
+ box-shadow: 0 0 0 var(--spectrum-slider-handle-gap) var(--highcontrast-slider-ramp-handle-border-color-active, var(--mod-sectrum-slider-ramp-handle-border-color-active, var(--spectrum-slider-ramp-handle-border-color-active)));
+ background: var(--mod-slider-ramp-handle-background-color, var(--highcontrast-slider-ramp-handle-background-color, var(--spectrum-slider-ramp-handle-background-color)));
+ }
}
.spectrum-Slider-input {
- background: transparent;
+ background: transparent;
}
.spectrum-Slider-tick {
- &::after {
- background-color: var(--highcontrast-slider-tick-mark-color, var(--mod-slider-tick-mark-color, var(--spectrum-slider-tick-mark-color)));
- }
+ &::after {
+ background-color: var(--highcontrast-slider-tick-mark-color, var(--mod-slider-tick-mark-color, var(--spectrum-slider-tick-mark-color)));
+ }
}
.spectrum-Slider-handle {
- &.is-dragged {
- border-color: var(--highcontrast-slider-handle-border-color-down, var(--mod-slider-handle-border-color-down, var(--spectrum-slider-handle-border-color-down)));
- background: var(--highcontrast-slider-handle-background-color, var(--mod-slider-handle-background-color, var(--spectrum-slider-handle-background-color)));
- }
+ &.is-dragged {
+ border-color: var(--highcontrast-slider-handle-border-color-down, var(--mod-slider-handle-border-color-down, var(--spectrum-slider-handle-border-color-down)));
+ background: var(--highcontrast-slider-handle-background-color, var(--mod-slider-handle-background-color, var(--spectrum-slider-handle-background-color)));
+ }
}
-
.spectrum-Slider--range {
- .spectrum-Slider-track {
- &:not(:first-of-type, :last-of-type)::before {
- background: var(--highcontrast-slider-filled-track-fill-color, var(--mod-slider-track-fill-color, var(--spectrum-slider-track-fill-color)));
- }
- }
+ .spectrum-Slider-track {
+ &:not(:first-of-type, :last-of-type)::before {
+ background: var(--highcontrast-slider-filled-track-fill-color, var(--mod-slider-track-fill-color, var(--spectrum-slider-track-fill-color)));
+ }
+ }
}
.spectrum-Slider.is-disabled {
- cursor: default;
-
- .spectrum-Slider-controls {
- cursor: default;
- }
-
- .spectrum-Slider-tickLabel {
- color: var(--highcontrast-slider-label-text-color-disabled, var(--mod-slider-label-text-color-disabled, var(--spectrum-slider-label-text-color-disabled)));
- }
-
- .spectrum-Slider-labelContainer {
- color: var(--highcontrast-slider-label-text-color-disabled, var(--mod-slider-label-text-color-disabled, var(--spectrum-slider-label-text-color-disabled)));
- }
-
- .spectrum-Slider-handle {
- border-color: var(--highcontrast-slider-handle-border-color-disabled, var(--mod-slider-handle-border-color-disabled, var(--spectrum-slider-handle-border-color-disabled)));
- background: var(--highcontrast-slider-handle-disabled-background-color, var(--mod-slider-handle-disabled-background-color, var(--spectrum-slider-handle-disabled-background-color)));
- cursor: default;
- pointer-events: none;
-
- &:hover,
- &:active {
- border-color: var(--highcontrast-disabled-border-color, var(--mod-disabled-border-color, var(--spectrum-disabled-border-color)));
- background: var(--highcontrast-slider-handle-background-color-disabled, var(--mod-slider-handle-background-color-disabled, var(--spectrum-slider-handle-background-color-disabled)));
- }
- }
-
- .spectrum-Slider-track {
- &::before {
- background: var(--highcontrast-slider-track-color-disabled, var(--mod-slider-track-color-disabled, var(--spectrum-slider-track-color-disabled)));
- }
- }
-
- &.spectrum-Slider--filled {
- .spectrum-Slider-track:first-child::before {
- background: var(--highcontrast-slider-track-fill-color-disabled, var(--mod-slider-track-fill-color-disabled, var(--spectrum-slider-track-fill-color-disabled)));
- }
- }
-
- .spectrum-Slider-fill {
- &::before {
- background: var(--highcontrast-slider-track-fill-color-disabled, var(--mod-slider-track-fill-color-disabled, var(--spectrum-slider-track-fill-color-disabled)));
- }
- }
-
- .spectrum-Slider-ramp {
- path {
- fill: var(--highcontrast-slider-ramp-track-color-disabled, var(--mod-slider-ramp-track-color-disabled, var(--spectrum-slider-ramp-track-color-disabled)));
- }
- }
-
- .spectrum-Slider-tick {
- &::after {
- background-color: var(--highcontrast-slider-tick-mark-color-disabled, var(--mod-slider-tick-mark-color-disabled, var(--spectrum-slider-tick-mark-color-disabled)));
- }
- }
-
- &.spectrum-Slider--range {
- .spectrum-Slider-track:not(:first-of-type, :last-of-type)::before {
- background: var(--highcontrast-slider-track-color-disabled, var(--mod-slider-track-color-disabled, var(--spectrum-slider-track-color-disabled)));
- }
- }
+ cursor: default;
+
+ .spectrum-Slider-controls {
+ cursor: default;
+ }
+
+ .spectrum-Slider-tickLabel {
+ color: var(--highcontrast-slider-label-text-color-disabled, var(--mod-slider-label-text-color-disabled, var(--spectrum-slider-label-text-color-disabled)));
+ }
+
+ .spectrum-Slider-labelContainer {
+ color: var(--highcontrast-slider-label-text-color-disabled, var(--mod-slider-label-text-color-disabled, var(--spectrum-slider-label-text-color-disabled)));
+ }
+
+ .spectrum-Slider-handle {
+ border-color: var(--highcontrast-slider-handle-border-color-disabled, var(--mod-slider-handle-border-color-disabled, var(--spectrum-slider-handle-border-color-disabled)));
+ background: var(--highcontrast-slider-handle-disabled-background-color, var(--mod-slider-handle-disabled-background-color, var(--spectrum-slider-handle-disabled-background-color)));
+ cursor: default;
+ pointer-events: none;
+
+ &:hover,
+ &:active {
+ border-color: var(--highcontrast-disabled-border-color, var(--mod-disabled-border-color, var(--spectrum-disabled-border-color)));
+ background: var(--highcontrast-slider-handle-background-color-disabled, var(--mod-slider-handle-background-color-disabled, var(--spectrum-slider-handle-background-color-disabled)));
+ }
+ }
+
+ .spectrum-Slider-track {
+ &::before {
+ background: var(--highcontrast-slider-track-color-disabled, var(--mod-slider-track-color-disabled, var(--spectrum-slider-track-color-disabled)));
+ }
+ }
+
+ &.spectrum-Slider--filled {
+ .spectrum-Slider-track:first-child::before {
+ background: var(--highcontrast-slider-track-fill-color-disabled, var(--mod-slider-track-fill-color-disabled, var(--spectrum-slider-track-fill-color-disabled)));
+ }
+ }
+
+ .spectrum-Slider-fill {
+ &::before {
+ background: var(--highcontrast-slider-track-fill-color-disabled, var(--mod-slider-track-fill-color-disabled, var(--spectrum-slider-track-fill-color-disabled)));
+ }
+ }
+
+ .spectrum-Slider-ramp {
+ path {
+ fill: var(--highcontrast-slider-ramp-track-color-disabled, var(--mod-slider-ramp-track-color-disabled, var(--spectrum-slider-ramp-track-color-disabled)));
+ }
+ }
+
+ .spectrum-Slider-tick {
+ &::after {
+ background-color: var(--highcontrast-slider-tick-mark-color-disabled, var(--mod-slider-tick-mark-color-disabled, var(--spectrum-slider-tick-mark-color-disabled)));
+ }
+ }
+
+ &.spectrum-Slider--range {
+ .spectrum-Slider-track:not(:first-of-type, :last-of-type)::before {
+ background: var(--highcontrast-slider-track-color-disabled, var(--mod-slider-track-color-disabled, var(--spectrum-slider-track-color-disabled)));
+ }
+ }
}
@media (forced-colors: active) {
- .spectrum-Slider {
- /* over-writes */
- --highcontrast-slider-track-color: ButtonText;
- --highcontrast-slider-track-color-static: ButtonText;
- --highcontrast-slider-track-fill-color: ButtonText;
- --highcontrast-slider-filled-track-fill-color: Highlight;
- --highcontrast-slider-ramp-track-color: ButtonText;
- --highcontrast-slider-ramp-track-color-disabled: GrayText;
- --highcontrast-slider-tick-mark-color: ButtonText;
- --highcontrast-slider-handle-border-color: ButtonText;
- --highcontrast-slider-handle-border-color-hover: Highlight;
- --highcontrast-slider-handle-border-color-down: Highlight;
- --highcontrast-slider-handle-border-color-key-focus: Highlight;
- --highcontrast-slider-handle-focus-ring-color-key-focus: CanvasText;
- --highcontrast-slider-handle-background-color: ButtonFace;
- --highcontrast-slider-ramp-handle-border-color-active: ButtonFace;
- --highcontrast-slider-ramp-handle-background-color: ButtonFace;
-
- --spectrum-slider-track-color: ButtonText;
- --spectrum-slider-track-fill-color: ButtonText;
- --spectrum-slider-ramp-track-color: ButtonText;
- --spectrum-slider-ramp-track-color-disabled: GrayText;
-
- --spectrum-slider-handle-background-color: ButtonFace;
- --spectrum-slider-handle-background-color-disabled: GrayText;
- --spectrum-slider-handle-border-color: ButtonText;
- --spectrum-slider-handle-disabled-background-color: GrayText;
-
- --spectrum-slider-tick-mark-color: ButtonText;
- --spectrum-slider-tick-mark-color-disabled: GrayText;
-
- --spectrum-slider-handle-border-color-hover: Highlight;
- --spectrum-slider-handle-border-color-down: Highlight;
- --spectrum-slider-handle-border-color-key-focus: Highlight;
- --spectrum-slider-handle-focus-ring-color-key-focus: Highlight;
-
- --spectrum-slider-track-color-disabled: GrayText;
- --spectrum-slider-track-fill-color-disabled: GrayText;
-
- --spectrum-slider-handle-border-color-disabled: GrayText;
-
- --spectrum-slider-label-text-color: CanvasText;
- --spectrum-slider-label-text-color-disabled: GrayText;
-
- --spectrum-slider-ramp-handle-border-color-active: ButtonText;
-
- .spectrum-Slider-handle.is-focused::before {
- forced-color-adjust: none;
- }
-
- .spectrum-Slider--ramp .spectrum-Slider-handle {
- /* forced-color-adjust required to ensure the "circle" around the handle is transparent */
- forced-color-adjust: none;
- }
-
- /* Slider control hover and focus colors for high contrast mode */
- /* Filled and range variants are excluded since the filled portion of the track uses Highlight */
- &:not(.is-disabled, .spectrum-Slider--filled, .spectrum-Slider--range) {
- .spectrum-Slider-controls:hover,
- .spectrum-Slider-controls:active,
- .spectrum-Slider-controls:focus-within,
- .spectrum-Slider-controls.is-focused {
- --highcontrast-slider-track-fill-color: Highlight;
- --highcontrast-slider-track-color: Highlight;
- --highcontrast-slider-handle-border-color: Highlight;
- --highcontrast-slider-ramp-track-color: Highlight;
- --highcontrast-slider-tick-mark-color: Highlight;
- }
- }
-
- /* Slider handle turns transparent in high contrast mode for ramp */
- &.is-disabled {
- .spectrum-Slider-ramp + .spectrum-Slider-handle {
- fill: ButtonFace;
- background-color: ButtonFace;
- }
- }
- }
+ .spectrum-Slider {
+ /* over-writes */
+ --highcontrast-slider-track-color: ButtonText;
+ --highcontrast-slider-track-color-static: ButtonText;
+ --highcontrast-slider-track-fill-color: ButtonText;
+ --highcontrast-slider-filled-track-fill-color: Highlight;
+ --highcontrast-slider-ramp-track-color: ButtonText;
+ --highcontrast-slider-ramp-track-color-disabled: GrayText;
+ --highcontrast-slider-tick-mark-color: ButtonText;
+ --highcontrast-slider-handle-border-color: ButtonText;
+ --highcontrast-slider-handle-border-color-hover: Highlight;
+ --highcontrast-slider-handle-border-color-down: Highlight;
+ --highcontrast-slider-handle-border-color-key-focus: Highlight;
+ --highcontrast-slider-handle-focus-ring-color-key-focus: CanvasText;
+ --highcontrast-slider-handle-background-color: ButtonFace;
+ --highcontrast-slider-ramp-handle-border-color-active: ButtonFace;
+ --highcontrast-slider-ramp-handle-background-color: ButtonFace;
+
+ --spectrum-slider-track-color: ButtonText;
+ --spectrum-slider-track-fill-color: ButtonText;
+ --spectrum-slider-ramp-track-color: ButtonText;
+ --spectrum-slider-ramp-track-color-disabled: GrayText;
+
+ --spectrum-slider-handle-background-color: ButtonFace;
+ --spectrum-slider-handle-background-color-disabled: GrayText;
+ --spectrum-slider-handle-border-color: ButtonText;
+ --spectrum-slider-handle-disabled-background-color: GrayText;
+
+ --spectrum-slider-tick-mark-color: ButtonText;
+ --spectrum-slider-tick-mark-color-disabled: GrayText;
+
+ --spectrum-slider-handle-border-color-hover: Highlight;
+ --spectrum-slider-handle-border-color-down: Highlight;
+ --spectrum-slider-handle-border-color-key-focus: Highlight;
+ --spectrum-slider-handle-focus-ring-color-key-focus: Highlight;
+
+ --spectrum-slider-track-color-disabled: GrayText;
+ --spectrum-slider-track-fill-color-disabled: GrayText;
+
+ --spectrum-slider-handle-border-color-disabled: GrayText;
+
+ --spectrum-slider-label-text-color: CanvasText;
+ --spectrum-slider-label-text-color-disabled: GrayText;
+
+ --spectrum-slider-ramp-handle-border-color-active: ButtonText;
+
+ .spectrum-Slider-handle.is-focused::before {
+ forced-color-adjust: none;
+ }
+
+ .spectrum-Slider--ramp .spectrum-Slider-handle {
+ /* forced-color-adjust required to ensure the "circle" around the handle is transparent */
+ forced-color-adjust: none;
+ }
+
+ /* Slider control hover and focus colors for high contrast mode */
+ /* Filled and range variants are excluded since the filled portion of the track uses Highlight */
+ &:not(.is-disabled, .spectrum-Slider--filled, .spectrum-Slider--range) {
+ .spectrum-Slider-controls:hover,
+ .spectrum-Slider-controls:active,
+ .spectrum-Slider-controls:focus-within,
+ .spectrum-Slider-controls.is-focused {
+ --highcontrast-slider-track-fill-color: Highlight;
+ --highcontrast-slider-track-color: Highlight;
+ --highcontrast-slider-handle-border-color: Highlight;
+ --highcontrast-slider-ramp-track-color: Highlight;
+ --highcontrast-slider-tick-mark-color: Highlight;
+ }
+ }
+
+ /* Slider handle turns transparent in high contrast mode for ramp */
+ &.is-disabled {
+ .spectrum-Slider-ramp + .spectrum-Slider-handle {
+ fill: ButtonFace;
+ background-color: ButtonFace;
+ }
+ }
+ }
}
diff --git a/components/slider/metadata/mods.md b/components/slider/metadata/mods.md
index 5a6c0b1d96..0c6f4dfe93 100644
--- a/components/slider/metadata/mods.md
+++ b/components/slider/metadata/mods.md
@@ -37,6 +37,7 @@
| `--mod-slider-ramp-track-height` |
| `--mod-slider-range-track-reset` |
| `--mod-slider-tick-handle-background-color` |
+| `--mod-slider-tick-label-color` |
| `--mod-slider-tick-mark-border-radius` |
| `--mod-slider-tick-mark-color` |
| `--mod-slider-tick-mark-color-disabled` |
diff --git a/components/splitview/index.css b/components/splitview/index.css
index f40bd050a9..9ef968840d 100644
--- a/components/splitview/index.css
+++ b/components/splitview/index.css
@@ -11,236 +11,213 @@ governing permissions and limitations under the License.
*/
.spectrum-SplitView {
- --spectrum-splitview-vertical-width: 100%;
- --spectrum-splitview-vertical-gripper-width: 50%;
- --spectrum-splitview-vertical-gripper-outer-width: 100%;
- --spectrum-splitview-vertical-gripper-reset: 0;
-
- --spectrum-splitview-background-color: var(--spectrum-gray-100);
- --spectrum-splitview-handle-background-color: var(--spectrum-gray-300);
- --spectrum-splitview-handle-background-color-hover: var(--spectrum-gray-400);
- --spectrum-splitview-handle-background-color-down: var(--spectrum-gray-800);
- --spectrum-splitview-handle-background-color-focus: var(--spectrum-focus-indicator-color);
- --spectrum-splitview-handle-width: var(--spectrum-border-width-200);
-
- --spectrum-splitview-gripper-border-radius: var(--spectrum-corner-radius-75);
- --spectrum-splitview-gripper-width: var(--spectrum-border-width-400);
- --spectrum-splitview-gripper-height: 16px; /* No good token to use for this */
- --spectrum-splitview-gripper-border-width-horizontal: 3px; /* No good token to use for this */
- --spectrum-splitview-gripper-border-width-vertical: var(--spectrum-border-width-400);
-
+ --spectrum-splitview-vertical-width: 100%;
+ --spectrum-splitview-vertical-gripper-width: 50%;
+ --spectrum-splitview-vertical-gripper-outer-width: 100%;
+ --spectrum-splitview-vertical-gripper-reset: 0;
+
+ --spectrum-splitview-background-color: var(--spectrum-gray-100);
+ --spectrum-splitview-content-color: var(--spectrum-body-color);
+
+ --spectrum-splitview-handle-background-color: var(--spectrum-gray-300);
+ --spectrum-splitview-handle-background-color-hover: var(--spectrum-gray-400);
+ --spectrum-splitview-handle-background-color-down: var(--spectrum-gray-800);
+ --spectrum-splitview-handle-background-color-focus: var(--spectrum-focus-indicator-color);
+ --spectrum-splitview-handle-width: var(--spectrum-border-width-200);
+
+ --spectrum-splitview-gripper-border-radius: var(--spectrum-corner-radius-75);
+ --spectrum-splitview-gripper-width: var(--spectrum-border-width-400);
+ --spectrum-splitview-gripper-height: 16px; /* No good token to use for this */
+ --spectrum-splitview-gripper-border-width-horizontal: 3px; /* No good token to use for this */
+ --spectrum-splitview-gripper-border-width-vertical: var(--spectrum-border-width-400);
}
-
.spectrum-SplitView {
- display: flex;
- overflow: hidden;
+ display: flex;
+ overflow: hidden;
}
.spectrum-SplitView-pane {
- block-size: 100%;
- background-color: var(--mod-splitview-background-color, var(--spectrum-splitview-background-color));
+ block-size: 100%;
+ background-color: var(--mod-splitview-background-color, var(--spectrum-splitview-background-color));
+ color: var(--mod-splitview-content-color, var(--spectrum-splitview-content-color));
}
.spectrum-SplitView-gripper {
- content: "";
- display: block;
- position: absolute;
- border-style: solid;
- border-radius: var(--mod-splitview-gripper-border-radius, var(--spectrum-splitview-gripper-border-radius));
- border-color: var(--highcontrast-splitview-handle-background-color, var(--mod-splitview-handle-background-color, var(--spectrum-splitview-handle-background-color)));
-
- inset-block-start: 50%;
- transform: translate(0, -50%);
-
- /* Prevent touch-action on handle */
- touch-action: none;
-
- /* half of (width + horizontal border - handle width) * -1 (for negative opposite) */
- inset-inline-start: calc(
- (
- (
- var(--mod-splitview-gripper-width, var(--spectrum-splitview-gripper-width)) +
- (2 * var(--mod-splitview-gripper-border-width-vertical, var(--spectrum-splitview-gripper-border-width-vertical))) -
- var(--mod-splitview-gripper-width, var(--spectrum-splitview-gripper-width))
- ) / 2
- ) * -1
- );
- inline-size: var(--mod-splitview-gripper-width, var(--spectrum-splitview-gripper-width));
- block-size: var(--mod-splitview-gripper-height, var(--spectrum-splitview-gripper-height));
- border-block-width: var(--mod-splitview-gripper-border-width-vertical, var(--spectrum-splitview-gripper-border-width-vertical));
- border-inline-width: var(--mod-splitview-gripper-border-width-horizontal, var(--spectrum-splitview-gripper-border-width-horizontal));
-
- &::before {
- background-color: var(--highcontrast-splitview-handle-background-color, var(--mod-splitview-handle-background-color, var(--spectrum-splitview-handle-background-color)));
- }
+ content: "";
+ display: block;
+ position: absolute;
+ border-style: solid;
+ border-radius: var(--mod-splitview-gripper-border-radius, var(--spectrum-splitview-gripper-border-radius));
+ border-color: var(--highcontrast-splitview-handle-background-color, var(--mod-splitview-handle-background-color, var(--spectrum-splitview-handle-background-color)));
+
+ inset-block-start: 50%;
+ transform: translate(0, -50%);
+
+ /* Prevent touch-action on handle */
+ touch-action: none;
+
+ /* half of (width + horizontal border - handle width) * -1 (for negative opposite) */
+ inset-inline-start: calc(((var(--mod-splitview-gripper-width, var(--spectrum-splitview-gripper-width)) + (2 * var(--mod-splitview-gripper-border-width-vertical, var(--spectrum-splitview-gripper-border-width-vertical))) - var(--mod-splitview-gripper-width, var(--spectrum-splitview-gripper-width))) / 2) * -1);
+ inline-size: var(--mod-splitview-gripper-width, var(--spectrum-splitview-gripper-width));
+ block-size: var(--mod-splitview-gripper-height, var(--spectrum-splitview-gripper-height));
+ border-block-width: var(--mod-splitview-gripper-border-width-vertical, var(--spectrum-splitview-gripper-border-width-vertical));
+ border-inline-width: var(--mod-splitview-gripper-border-width-horizontal, var(--spectrum-splitview-gripper-border-width-horizontal));
+
+ &::before {
+ background-color: var(--highcontrast-splitview-handle-background-color, var(--mod-splitview-handle-background-color, var(--spectrum-splitview-handle-background-color)));
+ }
}
.spectrum-SplitView-splitter {
- /* Contains the gripper */
- position: relative;
-
- background-color: var(--highcontrast-splitview-handle-background-color, var(--mod-splitview-handle-background-color, var(--spectrum-splitview-handle-background-color)));
-
- /* Prevent text selection while dragging */
- user-select: none;
-
- inline-size: var(--mod-splitview-handle-width, var(--spectrum-splitview-handle-width));
- block-size: 100%;
- z-index: 1;
-
- &.is-collapsed-start,
- &.is-collapsed-end {
- /* make the center line of the gripper */
- .spectrum-SplitView-gripper::before {
- content: "";
- position: absolute;
-
- inset-block-start: 0;
- inset-inline-start: calc(
- 50% - calc(var(--mod-splitview-handle-width, var(--spectrum-splitview-handle-width)) / 2)
- );
- inline-size: var(--mod-splitview-handle-width, var(--spectrum-splitview-handle-width));
- block-size: 100%;
- }
- }
-
- &.is-collapsed-start {
- .spectrum-SplitView-gripper {
- inset-inline-start: 0;
- }
- }
-
- &.is-collapsed-end {
- .spectrum-SplitView-gripper {
- inset-inline-end: 0;
- inset-inline-start: auto;
- }
- }
+ /* Contains the gripper */
+ position: relative;
+
+ background-color: var(--highcontrast-splitview-handle-background-color, var(--mod-splitview-handle-background-color, var(--spectrum-splitview-handle-background-color)));
+
+ /* Prevent text selection while dragging */
+ user-select: none;
+
+ inline-size: var(--mod-splitview-handle-width, var(--spectrum-splitview-handle-width));
+ block-size: 100%;
+ z-index: 1;
+
+ &.is-collapsed-start,
+ &.is-collapsed-end {
+ /* make the center line of the gripper */
+ .spectrum-SplitView-gripper::before {
+ content: "";
+ position: absolute;
+
+ inset-block-start: 0;
+ inset-inline-start: calc(50% - calc(var(--mod-splitview-handle-width, var(--spectrum-splitview-handle-width)) / 2));
+ inline-size: var(--mod-splitview-handle-width, var(--spectrum-splitview-handle-width));
+ block-size: 100%;
+ }
+ }
+
+ &.is-collapsed-start {
+ .spectrum-SplitView-gripper {
+ inset-inline-start: 0;
+ }
+ }
+
+ &.is-collapsed-end {
+ .spectrum-SplitView-gripper {
+ inset-inline-end: 0;
+ inset-inline-start: auto;
+ }
+ }
}
.spectrum-SplitView-splitter.is-draggable {
- &:hover,
- &.is-hovered {
- background-color: var(--highcontrast-splitview-handle-background-color-hover, var(--mod-splitview-handle-background-color-hover, var(--spectrum-splitview-handle-background-color-hover)));
-
- .spectrum-SplitView-gripper {
- border-color: var(--highcontrast-splitview-handle-background-color-hover, var(--mod-splitview-handle-background-color-hover, var(--spectrum-splitview-handle-background-color-hover)));
- }
-
- .spectrum-SplitView-gripper::before {
- background-color: var(--highcontrast-splitview-handle-background-color-hover, var(--mod-splitview-handle-background-color-hover, var(--spectrum-splitview-handle-background-color-hover)));
- }
- }
-
- &:active,
- &.is-active {
- background-color: var(--highcontrast-splitview-handle-background-color-down, var(--mod-splitview-handle-background-color-down, var(--spectrum-splitview-handle-background-color-down)));
-
- .spectrum-SplitView-gripper {
- border-color: var(--highcontrast-splitview-handle-background-color-down, var(--mod-splitview-handle-background-color-down, var(--spectrum-splitview-handle-background-color-down)));
- }
-
- /* Center line of gripper */
- .spectrum-SplitView-gripper::before {
- background-color: var(--highcontrast-splitview-handle-background-color-down, var(--mod-splitview-handle-background-color-down, var(--spectrum-splitview-handle-background-color-down)));
- }
- }
-
- &:focus {
- outline: none;
- }
-
- &:focus-visible {
- outline: none;
- background-color: var(--highcontrast-splitview-handle-background-color-focus, var(--mod-splitview-handle-background-color-focus, var(--spectrum-splitview-handle-background-color-focus)));
-
- .spectrum-SplitView-gripper {
- border-color: var(--highcontrast-splitview-handle-background-color-focus, var(--mod-splitview-handle-background-color-focus, var(--spectrum-splitview-handle-background-color-focus)));
- box-shadow: 0 0 0 1px var(--highcontrast-splitview-handle-background-color-focus, var(--mod-splitview-handle-background-color-focus, var(--spectrum-splitview-handle-background-color-focus)));
- }
-
- .spectrum-SplitView-gripper::before {
- background-color: var(--highcontrast-splitview-handle-background-color-focus, var(--mod-splitview-handle-background-color-focus, var(--spectrum-splitview-handle-background-color-focus)));
- }
- }
+ &:hover,
+ &.is-hovered {
+ background-color: var(--highcontrast-splitview-handle-background-color-hover, var(--mod-splitview-handle-background-color-hover, var(--spectrum-splitview-handle-background-color-hover)));
+
+ .spectrum-SplitView-gripper {
+ border-color: var(--highcontrast-splitview-handle-background-color-hover, var(--mod-splitview-handle-background-color-hover, var(--spectrum-splitview-handle-background-color-hover)));
+ }
+
+ .spectrum-SplitView-gripper::before {
+ background-color: var(--highcontrast-splitview-handle-background-color-hover, var(--mod-splitview-handle-background-color-hover, var(--spectrum-splitview-handle-background-color-hover)));
+ }
+ }
+
+ &:active,
+ &.is-active {
+ background-color: var(--highcontrast-splitview-handle-background-color-down, var(--mod-splitview-handle-background-color-down, var(--spectrum-splitview-handle-background-color-down)));
+
+ .spectrum-SplitView-gripper {
+ border-color: var(--highcontrast-splitview-handle-background-color-down, var(--mod-splitview-handle-background-color-down, var(--spectrum-splitview-handle-background-color-down)));
+ }
+
+ /* Center line of gripper */
+ .spectrum-SplitView-gripper::before {
+ background-color: var(--highcontrast-splitview-handle-background-color-down, var(--mod-splitview-handle-background-color-down, var(--spectrum-splitview-handle-background-color-down)));
+ }
+ }
+
+ &:focus {
+ outline: none;
+ }
+
+ &:focus-visible {
+ outline: none;
+ background-color: var(--highcontrast-splitview-handle-background-color-focus, var(--mod-splitview-handle-background-color-focus, var(--spectrum-splitview-handle-background-color-focus)));
+
+ .spectrum-SplitView-gripper {
+ border-color: var(--highcontrast-splitview-handle-background-color-focus, var(--mod-splitview-handle-background-color-focus, var(--spectrum-splitview-handle-background-color-focus)));
+ box-shadow: 0 0 0 1px var(--highcontrast-splitview-handle-background-color-focus, var(--mod-splitview-handle-background-color-focus, var(--spectrum-splitview-handle-background-color-focus)));
+ }
+
+ .spectrum-SplitView-gripper::before {
+ background-color: var(--highcontrast-splitview-handle-background-color-focus, var(--mod-splitview-handle-background-color-focus, var(--spectrum-splitview-handle-background-color-focus)));
+ }
+ }
}
.spectrum-SplitView--vertical {
- flex-direction: column;
-
- .spectrum-SplitView-pane {
- block-size: auto;
- inline-size: var(--mod-splitview-vertical-width, var(--spectrum-splitview-vertical-width));
- }
-
- .spectrum-SplitView-gripper {
- /* half of (height + vertical border - handle width) * -1 (for negative opposite) */
- inset-block-start: calc(
- (
- (
- var(--mod-splitview-gripper-width, var(--spectrum-splitview-gripper-width)) +
- (2 * var(--mod-splitview-gripper-border-width-vertical, var(--spectrum-splitview-gripper-border-width-vertical))) -
- var(--mod-splitview-gripper-width, var(--spectrum-splitview-gripper-width))
- ) / 2
- ) * -1
- );
-
- transform: translate(
- calc(-1 * var(--mod-splitview-vertical-gripper-width, var(--spectrum-splitview-vertical-gripper-width))),
- 0
- );
- inset-inline-start: var(--mod-splitview-vertical-gripper-width, var(--spectrum-splitview-vertical-gripper-width));
- inline-size: var(--mod-splitview-gripper-height, var(--spectrum-splitview-gripper-height));
- block-size: var(--mod-splitview-gripper-width, var(--spectrum-splitview-gripper-width));
-
- /* opposite of default border-width */
- border-block-width: var(--mod-splitview-gripper-border-width-horizontal, var(--spectrum-splitview-gripper-border-width-horizontal));
- border-inline-width: var(--mod-splitview-gripper-border-width-vertical, var(--spectrum-splitview-gripper-border-width-vertical));
- }
-
- .spectrum-SplitView-splitter {
- inline-size: var(--mod-splitview-vertical-width, var(--spectrum-splitview-vertical-width));
- block-size: var(--mod-splitview-handle-width, var(--spectrum-splitview-handle-width));
- }
-
- .spectrum-SplitView-splitter.is-collapsed-start,
- .spectrum-SplitView-splitter.is-collapsed-end {
- .spectrum-SplitView-gripper {
- inset-inline-start: var(--mod-splitview-vertical-gripper-width, var(--spectrum-splitview-vertical-gripper-width));
- }
-
- /* make the center line of the gripper */
- .spectrum-SplitView-gripper::before {
- inset-block-start: calc(
- var(--mod-splitview-vertical-gripper-width, var(--spectrum-splitview-vertical-gripper-width)) -
- calc(var(--mod-splitview-handle-width, var(--spectrum-splitview-handle-width)) / 2)
- );
- inset-inline-start: var(--mod-splitview-vertical-gripper-reset, var(--spectrum-splitview-vertical-gripper-reset));
- inline-size: var(--mod-splitview-vertical-gripper-outer-width, var(--spectrum-splitview-vertical-gripper-outer-width));
- block-size: var(--mod-splitview-handle-width, var(--spectrum-splitview-handle-width));
- }
- }
-
- .spectrum-SplitView-splitter.is-collapsed-start {
- .spectrum-SplitView-gripper {
- inset-block-start: var(--mod-splitview-vertical-gripper-reset, var(--spectrum-splitview-vertical-gripper-reset));
- }
- }
-
- .spectrum-SplitView-splitter.is-collapsed-end {
- .spectrum-SplitView-gripper {
- inset-block-start: auto;
- inset-block-end: var(--mod-splitview-vertical-gripper-reset, var(--spectrum-splitview-vertical-gripper-reset));
- }
- }
+ flex-direction: column;
+
+ .spectrum-SplitView-pane {
+ block-size: auto;
+ inline-size: var(--mod-splitview-vertical-width, var(--spectrum-splitview-vertical-width));
+ }
+
+ .spectrum-SplitView-gripper {
+ /* half of (height + vertical border - handle width) * -1 (for negative opposite) */
+ inset-block-start: calc(((var(--mod-splitview-gripper-width, var(--spectrum-splitview-gripper-width)) + (2 * var(--mod-splitview-gripper-border-width-vertical, var(--spectrum-splitview-gripper-border-width-vertical))) - var(--mod-splitview-gripper-width, var(--spectrum-splitview-gripper-width))) / 2) * -1);
+
+ transform: translate(calc(-1 * var(--mod-splitview-vertical-gripper-width, var(--spectrum-splitview-vertical-gripper-width))), 0);
+ inset-inline-start: var(--mod-splitview-vertical-gripper-width, var(--spectrum-splitview-vertical-gripper-width));
+ inline-size: var(--mod-splitview-gripper-height, var(--spectrum-splitview-gripper-height));
+ block-size: var(--mod-splitview-gripper-width, var(--spectrum-splitview-gripper-width));
+
+ /* opposite of default border-width */
+ border-block-width: var(--mod-splitview-gripper-border-width-horizontal, var(--spectrum-splitview-gripper-border-width-horizontal));
+ border-inline-width: var(--mod-splitview-gripper-border-width-vertical, var(--spectrum-splitview-gripper-border-width-vertical));
+ }
+
+ .spectrum-SplitView-splitter {
+ inline-size: var(--mod-splitview-vertical-width, var(--spectrum-splitview-vertical-width));
+ block-size: var(--mod-splitview-handle-width, var(--spectrum-splitview-handle-width));
+ }
+
+ .spectrum-SplitView-splitter.is-collapsed-start,
+ .spectrum-SplitView-splitter.is-collapsed-end {
+ .spectrum-SplitView-gripper {
+ inset-inline-start: var(--mod-splitview-vertical-gripper-width, var(--spectrum-splitview-vertical-gripper-width));
+ }
+
+ /* make the center line of the gripper */
+ .spectrum-SplitView-gripper::before {
+ inset-block-start: calc(var(--mod-splitview-vertical-gripper-width, var(--spectrum-splitview-vertical-gripper-width)) - calc(var(--mod-splitview-handle-width, var(--spectrum-splitview-handle-width)) / 2));
+ inset-inline-start: var(--mod-splitview-vertical-gripper-reset, var(--spectrum-splitview-vertical-gripper-reset));
+ inline-size: var(--mod-splitview-vertical-gripper-outer-width, var(--spectrum-splitview-vertical-gripper-outer-width));
+ block-size: var(--mod-splitview-handle-width, var(--spectrum-splitview-handle-width));
+ }
+ }
+
+ .spectrum-SplitView-splitter.is-collapsed-start {
+ .spectrum-SplitView-gripper {
+ inset-block-start: var(--mod-splitview-vertical-gripper-reset, var(--spectrum-splitview-vertical-gripper-reset));
+ }
+ }
+
+ .spectrum-SplitView-splitter.is-collapsed-end {
+ .spectrum-SplitView-gripper {
+ inset-block-start: auto;
+ inset-block-end: var(--mod-splitview-vertical-gripper-reset, var(--spectrum-splitview-vertical-gripper-reset));
+ }
+ }
}
@media (forced-colors: active) {
- .spectrum-SplitView {
- --highcontrast-splitview-handle-background-color: CanvasText;
- --highcontrast-splitview-handle-background-color-hover: CanvasText;
- --highcontrast-splitview-handle-background-color-down: CanvasText;
- --highcontrast-splitview-handle-background-color-focus: Highlight;
- }
+ .spectrum-SplitView {
+ --highcontrast-splitview-handle-background-color: CanvasText;
+ --highcontrast-splitview-handle-background-color-hover: CanvasText;
+ --highcontrast-splitview-handle-background-color-down: CanvasText;
+ --highcontrast-splitview-handle-background-color-focus: Highlight;
+ }
}
diff --git a/components/splitview/metadata/mods.md b/components/splitview/metadata/mods.md
index 9bd25ae992..4bc870ef41 100644
--- a/components/splitview/metadata/mods.md
+++ b/components/splitview/metadata/mods.md
@@ -1,6 +1,7 @@
| Modifiable custom properties |
| ------------------------------------------------- |
| `--mod-splitview-background-color` |
+| `--mod-splitview-content-color` |
| `--mod-splitview-gripper-border-radius` |
| `--mod-splitview-gripper-border-width-horizontal` |
| `--mod-splitview-gripper-border-width-vertical` |
diff --git a/components/treeview/index.css b/components/treeview/index.css
index 26b23eef66..dc0ec39c98 100644
--- a/components/treeview/index.css
+++ b/components/treeview/index.css
@@ -11,51 +11,52 @@ governing permissions and limitations under the License.
*/
.spectrum-TreeView {
- --spectrum-treeview-line-height: var(--spectrum-line-height-200);
- --spectrum-treeview-margin-block: 1.0em;
- --spectrum-treeview-font-size: var(--spectrum-font-size-100);
+ --spectrum-treeview-line-height: var(--spectrum-line-height-200);
+ --spectrum-treeview-margin-block: 1em;
+ --spectrum-treeview-font-size: var(--spectrum-font-size-100);
- --spectrum-treeview-item-min-block-size: var(--spectrum-component-height-100);
- --spectrum-treeview-item-indentation: var(--spectrum-treeview-item-indentation-medium);
+ --spectrum-treeview-item-min-block-size: var(--spectrum-component-height-100);
+ --spectrum-treeview-item-indentation: var(--spectrum-treeview-item-indentation-medium);
- --spectrum-treeview-item-padding-inline-start: var(--spectrum-component-height-100);
- --spectrum-treeview-item-padding-inline-end: var(--spectrum-component-edge-to-text-100);
+ --spectrum-treeview-item-padding-inline-start: var(--spectrum-component-height-100);
+ --spectrum-treeview-item-padding-inline-end: var(--spectrum-component-edge-to-text-100);
- --spectrum-treeview-section-spacing: var(--spectrum-treeview-item-indentation-medium);
- --spectrum-treeview-heading-font-weight: var(--spectrum-bold-font-weight);
- --spectrum-treeview-heading-bottom-to-text: var(--spectrum-component-edge-to-text-100);
+ --spectrum-treeview-section-spacing: var(--spectrum-treeview-item-indentation-medium);
+ --spectrum-treeview-heading-font-weight: var(--spectrum-bold-font-weight);
+ --spectrum-treeview-heading-bottom-to-text: var(--spectrum-component-edge-to-text-100);
+ --spectrum-treeview-heading-color: var(--spectrum-heading-color);
- --spectrum-treeview-item-border-size: var(--spectrum-border-width-200);
- --spectrum-treeview-item-border-size-selected: 1px;
- --spectrum-treeview-item-border-radius: 0px;
+ --spectrum-treeview-item-border-size: var(--spectrum-border-width-200);
+ --spectrum-treeview-item-border-size-selected: 1px;
+ --spectrum-treeview-item-border-radius: 0px;
- --spectrum-treeview-item-border-color-selected: var(--spectrum-blue-800);
- --spectrum-treeview-item-border-color-focus: var(--spectrum-blue-700);
+ --spectrum-treeview-item-border-color-selected: var(--spectrum-blue-800);
+ --spectrum-treeview-item-border-color-focus: var(--spectrum-blue-700);
- --spectrum-treeview-item-background-color-hover: var(--spectrum-gray-200);
- --spectrum-treeview-item-background-color-focus: var(--spectrum-gray-200);
+ --spectrum-treeview-item-background-color-hover: var(--spectrum-gray-200);
+ --spectrum-treeview-item-background-color-focus: var(--spectrum-gray-200);
- --spectrum-treeview-item-border-color-quiet-selected: transparent;
+ --spectrum-treeview-item-border-color-quiet-selected: transparent;
- --spectrum-treeview-item-icon-gap: var(--spectrum-text-to-visual-75);
- --spectrum-treeview-item-icon-color: var(--spectrum-gray-700);
- --spectrum-treeview-item-icon-color-hover: var(--spectrum-gray-900);
- --spectrum-treeview-item-icon-color-focus: var(--spectrum-gray-900);
- --spectrum-treeview-item-icon-color-selected: var(--spectrum-gray-900);
- --spectrum-treeview-item-icon-color-disabled: var(--spectrum-disabled-content-color);
+ --spectrum-treeview-item-icon-gap: var(--spectrum-text-to-visual-75);
+ --spectrum-treeview-item-icon-color: var(--spectrum-gray-700);
+ --spectrum-treeview-item-icon-color-hover: var(--spectrum-gray-900);
+ --spectrum-treeview-item-icon-color-focus: var(--spectrum-gray-900);
+ --spectrum-treeview-item-icon-color-selected: var(--spectrum-gray-900);
+ --spectrum-treeview-item-icon-color-disabled: var(--spectrum-disabled-content-color);
- --spectrum-treeview-item-text-color: var(--spectrum-neutral-content-color-default);
- --spectrum-treeview-item-text-color-selected: var(--spectrum-gray-900);
- --spectrum-treeview-item-text-color-disabled: var(--spectrum-gray-500);
- --spectrum-treeview-item-text-color-focus: var(--spectrum-gray-900);
- --spectrum-treeview-item-text-color-hover: var(--spectrum-gray-900);
+ --spectrum-treeview-item-text-color: var(--spectrum-neutral-content-color-default);
+ --spectrum-treeview-item-text-color-selected: var(--spectrum-gray-900);
+ --spectrum-treeview-item-text-color-disabled: var(--spectrum-gray-500);
+ --spectrum-treeview-item-text-color-focus: var(--spectrum-gray-900);
+ --spectrum-treeview-item-text-color-hover: var(--spectrum-gray-900);
- --spectrum-treeview-indicator-margin-inline-start: calc(-1 * var(--spectrum-component-height-100));
- --spectrum-treeview-indicator-padding: var(--spectrum-disclosure-indicator-top-to-disclosure-icon-medium);
+ --spectrum-treeview-indicator-margin-inline-start: calc(-1 * var(--spectrum-component-height-100));
+ --spectrum-treeview-indicator-padding: var(--spectrum-disclosure-indicator-top-to-disclosure-icon-medium);
- --spectrum-treeview-item-min-block-size-thumbnail-offset: var(--spectrum-treeview-item-min-block-size-thumbnail-offset-medium, 0px);
+ --spectrum-treeview-item-min-block-size-thumbnail-offset: var(--spectrum-treeview-item-min-block-size-thumbnail-offset-medium, 0px);
- --spectrum-treeview-indicator-animation-duration: var(--spectrum-animation-duration-100);
+ --spectrum-treeview-indicator-animation-duration: var(--spectrum-animation-duration-100);
&:dir(rtl) {
--spectrum-logical-rotation: matrix(-1, 0, 0, 1, 0, 0);
@@ -63,351 +64,349 @@ governing permissions and limitations under the License.
}
.spectrum-TreeView--sizeS {
- --spectrum-treeview-font-size: var(--spectrum-font-size-75);
+ --spectrum-treeview-font-size: var(--spectrum-font-size-75);
- --spectrum-treeview-item-min-block-size: var(--spectrum-component-height-75);
- --spectrum-treeview-item-indentation: var(--spectrum-treeview-item-indentation-small);
- --spectrum-treeview-heading-bottom-to-text: var(--spectrum-component-edge-to-text-75);
+ --spectrum-treeview-item-min-block-size: var(--spectrum-component-height-75);
+ --spectrum-treeview-item-indentation: var(--spectrum-treeview-item-indentation-small);
+ --spectrum-treeview-heading-bottom-to-text: var(--spectrum-component-edge-to-text-75);
- --spectrum-treeview-item-padding-inline-start: var(--spectrum-component-height-75);
- --spectrum-treeview-indicator-margin-inline-start: calc(-1 * var(--spectrum-component-height-75));
- --spectrum-treeview-item-padding-inline-end: var(--spectrum-component-edge-to-text-75);
- --spectrum-treeview-indicator-padding: var(--spectrum-disclosure-indicator-top-to-disclosure-icon-small);
+ --spectrum-treeview-item-padding-inline-start: var(--spectrum-component-height-75);
+ --spectrum-treeview-indicator-margin-inline-start: calc(-1 * var(--spectrum-component-height-75));
+ --spectrum-treeview-item-padding-inline-end: var(--spectrum-component-edge-to-text-75);
+ --spectrum-treeview-indicator-padding: var(--spectrum-disclosure-indicator-top-to-disclosure-icon-small);
- --spectrum-treeview-item-min-block-size-thumbnail-offset: 6px;
+ --spectrum-treeview-item-min-block-size-thumbnail-offset: 6px;
}
.spectrum-TreeView--sizeL {
- --spectrum-treeview-font-size: var(--spectrum-font-size-200);
+ --spectrum-treeview-font-size: var(--spectrum-font-size-200);
- --spectrum-treeview-item-indentation: var(--spectrum-treeview-item-indentation-large);
- --spectrum-treeview-item-min-block-size: var(--spectrum-component-height-200);
- --spectrum-treeview-heading-bottom-to-text: var(--spectrum-component-edge-to-text-200);
+ --spectrum-treeview-item-indentation: var(--spectrum-treeview-item-indentation-large);
+ --spectrum-treeview-item-min-block-size: var(--spectrum-component-height-200);
+ --spectrum-treeview-heading-bottom-to-text: var(--spectrum-component-edge-to-text-200);
- --spectrum-treeview-item-padding-inline-start: var(--spectrum-component-height-200);
- --spectrum-treeview-indicator-margin-inline-start: calc(-1 * var(--spectrum-component-height-200));
- --spectrum-treeview-item-padding-inline-end: var(--spectrum-component-edge-to-text-200);
- --spectrum-treeview-indicator-padding: var(--spectrum-disclosure-indicator-top-to-disclosure-icon-large);
+ --spectrum-treeview-item-padding-inline-start: var(--spectrum-component-height-200);
+ --spectrum-treeview-indicator-margin-inline-start: calc(-1 * var(--spectrum-component-height-200));
+ --spectrum-treeview-item-padding-inline-end: var(--spectrum-component-edge-to-text-200);
+ --spectrum-treeview-indicator-padding: var(--spectrum-disclosure-indicator-top-to-disclosure-icon-large);
- --spectrum-treeview-item-min-block-size-thumbnail-offset: 0px;
+ --spectrum-treeview-item-min-block-size-thumbnail-offset: 0px;
}
.spectrum-TreeView--sizeXL {
- --spectrum-treeview-font-size: var(--spectrum-font-size-300);
+ --spectrum-treeview-font-size: var(--spectrum-font-size-300);
- --spectrum-treeview-item-indentation: var(--spectrum-treeview-item-indentation-extra-large);
- --spectrum-treeview-item-min-block-size: var(--spectrum-component-height-300);
- --spectrum-treeview-heading-bottom-to-text: var(--spectrum-component-edge-to-text-300);
+ --spectrum-treeview-item-indentation: var(--spectrum-treeview-item-indentation-extra-large);
+ --spectrum-treeview-item-min-block-size: var(--spectrum-component-height-300);
+ --spectrum-treeview-heading-bottom-to-text: var(--spectrum-component-edge-to-text-300);
- --spectrum-treeview-item-padding-inline-start: var(--spectrum-component-height-300);
- --spectrum-treeview-indicator-margin-inline-start: calc(-1 * var(--spectrum-component-height-300));
- --spectrum-treeview-item-padding-inline-end: var(--spectrum-component-edge-to-text-300);
- --spectrum-treeview-indicator-padding: var(--spectrum-disclosure-indicator-top-to-disclosure-icon-extra-large);
+ --spectrum-treeview-item-padding-inline-start: var(--spectrum-component-height-300);
+ --spectrum-treeview-indicator-margin-inline-start: calc(-1 * var(--spectrum-component-height-300));
+ --spectrum-treeview-item-padding-inline-end: var(--spectrum-component-edge-to-text-300);
+ --spectrum-treeview-indicator-padding: var(--spectrum-disclosure-indicator-top-to-disclosure-icon-extra-large);
- --spectrum-treeview-item-min-block-size-thumbnail-offset: 0px;
+ --spectrum-treeview-item-min-block-size-thumbnail-offset: 0px;
}
.spectrum-TreeView--quiet {
- --mod-treeview-item-background-color-selected: var(--highcontrast-treeview-item-background-color-selected, var(--mod-treeview-item-background-color-quiet-selected, var(--spectrum-treeview-item-background-color-quiet-selected)));
- --mod-treeview-item-border-color-selected: var(--highcontrast-treeview-item-border-color-selected, var(--mod-treeview-item-border-color-selected-quiet, transparent));
+ --mod-treeview-item-background-color-selected: var(--highcontrast-treeview-item-background-color-selected, var(--mod-treeview-item-background-color-quiet-selected, var(--spectrum-treeview-item-background-color-quiet-selected)));
+ --mod-treeview-item-border-color-selected: var(--highcontrast-treeview-item-border-color-selected, var(--mod-treeview-item-border-color-selected-quiet, transparent));
}
.spectrum-TreeView--thumbnail {
- --mod-treeview-item-min-block-size: var(--mod-treeview-item-min-block-size-thumbnail, calc(
- var(--spectrum-treeview-item-min-block-size) + var(--spectrum-treeview-item-min-block-size-thumbnail-offset)
- ));
+ --mod-treeview-item-min-block-size: var(--mod-treeview-item-min-block-size-thumbnail, calc(var(--spectrum-treeview-item-min-block-size) + var(--spectrum-treeview-item-min-block-size-thumbnail-offset)));
}
.spectrum-TreeView--detached {
- --mod-treeview-item-border-radius: var(--mod-treeview-item-border-radius-detached, var(--spectrum-corner-radius-100));
+ --mod-treeview-item-border-radius: var(--mod-treeview-item-border-radius-detached, var(--spectrum-corner-radius-100));
}
-@media (forced-colors: active){
- .spectrum-TreeView {
- --highcontrast-treeview-item-background-color-selected: Highlight;
- --highcontrast-treeview-item-border-color-selected: Highlight;
- --highcontrast-treeview-item-text-color-selected: HighlightText;
- --highcontrast-treeview-item-icon-color-selected: HighlightText;
-
- --highcontrast-treeview-item-icon-color: LinkText;
- --highcontrast-treeview-item-text-color: LinkText;
-
- --highcontrast-treeview-item-background-color-focus: Highlight;
- --highcontrast-treeview-item-text-color-focus: HighlightText;
- --highcontrast-treeview-item-border-color-focus: CanvasText;
- --highcontrast-treeview-item-icon-color-focus: HighlightText;
-
- --highcontrast-treeview-item-background-color-disabled: Canvas;
- --highcontrast-treeview-item-text-color-disabled: GrayText;
- --highcontrast-treeview-item-icon-color-disabled: GrayText;
-
- --highcontrast-treeview-heading-color: CanvasText;
- }
-
- @supports (color: SelectedItem) {
- .spectrum-TreeView {
- --highcontrast-treeview-item-background-color-selected: SelectedItem;
- --highcontrast-treeview-item-border-color-selected: SelectedItem;
- --highcontrast-treeview-item-text-color-selected: SelectedItemText;
- --highcontrast-treeview-item-icon-color-selected: SelectedItemText;
- }
- }
-
- .spectrum-TreeView-itemLabel {
- forced-color-adjust: none;
- background: transparent;
- }
-
- .spectrum-TreeView-itemLink::before {
- forced-color-adjust: none;
- }
+@media (forced-colors: active) {
+ .spectrum-TreeView {
+ --highcontrast-treeview-item-background-color-selected: Highlight;
+ --highcontrast-treeview-item-border-color-selected: Highlight;
+ --highcontrast-treeview-item-text-color-selected: HighlightText;
+ --highcontrast-treeview-item-icon-color-selected: HighlightText;
+
+ --highcontrast-treeview-item-icon-color: LinkText;
+ --highcontrast-treeview-item-text-color: LinkText;
+
+ --highcontrast-treeview-item-background-color-focus: Highlight;
+ --highcontrast-treeview-item-text-color-focus: HighlightText;
+ --highcontrast-treeview-item-border-color-focus: CanvasText;
+ --highcontrast-treeview-item-icon-color-focus: HighlightText;
+
+ --highcontrast-treeview-item-background-color-disabled: Canvas;
+ --highcontrast-treeview-item-text-color-disabled: GrayText;
+ --highcontrast-treeview-item-icon-color-disabled: GrayText;
+
+ --highcontrast-treeview-heading-color: CanvasText;
+ }
+
+ @supports (color: SelectedItem) {
+ .spectrum-TreeView {
+ --highcontrast-treeview-item-background-color-selected: SelectedItem;
+ --highcontrast-treeview-item-border-color-selected: SelectedItem;
+ --highcontrast-treeview-item-text-color-selected: SelectedItemText;
+ --highcontrast-treeview-item-icon-color-selected: SelectedItemText;
+ }
+ }
+
+ .spectrum-TreeView-itemLabel {
+ forced-color-adjust: none;
+ background: transparent;
+ }
+
+ .spectrum-TreeView-itemLink::before {
+ forced-color-adjust: none;
+ }
}
.spectrum-TreeView {
- display: block;
- position: relative;
- padding: 0;
- list-style: none;
- outline: none;
- user-select: none;
- line-height: var(--mod-treeview-line-height, var(--spectrum-treeview-line-height));
- margin-block: var(--mod-treeview-margin-block, var(--spectrum-treeview-margin-block));
- font-size: var(--mod-treeview-font-size, var(--spectrum-treeview-font-size));
-
- /* Close (hide) nested treeviews by default. */
- .spectrum-TreeView {
- position: static;
- block-size: 0;
- display: none;
- padding-inline-start: var(--mod-treeview-item-indentation, var(--spectrum-treeview-item-indentation));
- margin-block: 0;
- }
+ display: block;
+ position: relative;
+ padding: 0;
+ list-style: none;
+ outline: none;
+ user-select: none;
+ line-height: var(--mod-treeview-line-height, var(--spectrum-treeview-line-height));
+ margin-block: var(--mod-treeview-margin-block, var(--spectrum-treeview-margin-block));
+ font-size: var(--mod-treeview-font-size, var(--spectrum-treeview-font-size));
+
+ /* Close (hide) nested treeviews by default. */
+ .spectrum-TreeView {
+ position: static;
+ block-size: 0;
+ display: none;
+ padding-inline-start: var(--mod-treeview-item-indentation, var(--spectrum-treeview-item-indentation));
+ margin-block: 0;
+ }
}
.spectrum-TreeView-item {
- /* Don't let child treeviews that are open spill out */
- overflow: hidden;
-
- &.is-open {
- > .spectrum-TreeView-itemLink > .spectrum-TreeView-itemIndicator {
- /* Rotate the chevron */
- transform: var(--spectrum-logical-rotation,) rotate(90deg);
- }
-
- > .spectrum-TreeView {
- /* Open the treeview */
- block-size: auto;
- display: block;
- }
- }
-
- &.is-selected,
- &.is-drop-target {
- > .spectrum-TreeView-itemLink {
- color: var(--highcontrast-treeview-item-text-color-selected, var(--mod-treeview-item-text-color-selected, var(--spectrum-treeview-item-text-color-selected)));
-
- &::before {
- background-color: var(--highcontrast-treeview-item-background-color-selected, var(--mod-treeview-item-background-color-selected, var(--spectrum-treeview-item-background-color-selected)));
- }
-
- .spectrum-TreeView-itemIcon {
- color: var(--highcontrast-treeview-item-icon-color-selected, var(--mod-treeview-item-icon-color-selected, var(--spectrum-treeview-item-icon-color-selected)));
- }
- }
-
- > .spectrum-TreeView-itemLink:not(:focus-visible) {
- &::before {
- border-color: var(--highcontrast-treeview-item-border-color-selected, var(--mod-treeview-item-border-color-selected, var(--spectrum-treeview-item-border-color-selected)));
- }
- }
- }
-
- &.is-selected {
- > .spectrum-TreeView-itemLink:not(:focus-visible) {
- &::before {
- border-width: var(--mod-treeview-item-border-size-selected, var(--spectrum-treeview-item-border-size-selected));
- }
- }
- }
-
- &.is-drop-target {
- > .spectrum-TreeView-itemLink {
- &::before {
- border-width: var(--mod-treeview-item-border-size, var(--spectrum-treeview-item-border-size));
- }
- }
- }
-
- &.is-disabled {
- > .spectrum-TreeView-itemLink {
- color: var(--highcontrast-treeview-item-text-color-disabled, var(--mod-treeview-item-text-color-disabled, var(--spectrum-treeview-item-text-color-disabled)));
-
- &::before {
- background-color: var(--highcontrast-treeview-item-background-color-disabled, transparent);
- }
-
- .spectrum-Icon {
- color: var(--highcontrast-treeview-item-icon-color-disabled, var(--mod-treeview-item-icon-color-disabled, var(--spectrum-treeview-item-icon-color-disabled)));
- }
- }
- }
+ /* Don't let child treeviews that are open spill out */
+ overflow: hidden;
+
+ &.is-open {
+ > .spectrum-TreeView-itemLink > .spectrum-TreeView-itemIndicator {
+ /* Rotate the chevron */
+ transform: var(--spectrum-logical-rotation,) rotate(90deg);
+ }
+
+ > .spectrum-TreeView {
+ /* Open the treeview */
+ block-size: auto;
+ display: block;
+ }
+ }
+
+ &.is-selected,
+ &.is-drop-target {
+ > .spectrum-TreeView-itemLink {
+ color: var(--highcontrast-treeview-item-text-color-selected, var(--mod-treeview-item-text-color-selected, var(--spectrum-treeview-item-text-color-selected)));
+
+ &::before {
+ background-color: var(--highcontrast-treeview-item-background-color-selected, var(--mod-treeview-item-background-color-selected, var(--spectrum-treeview-item-background-color-selected)));
+ }
+
+ .spectrum-TreeView-itemIcon {
+ color: var(--highcontrast-treeview-item-icon-color-selected, var(--mod-treeview-item-icon-color-selected, var(--spectrum-treeview-item-icon-color-selected)));
+ }
+ }
+
+ > .spectrum-TreeView-itemLink:not(:focus-visible) {
+ &::before {
+ border-color: var(--highcontrast-treeview-item-border-color-selected, var(--mod-treeview-item-border-color-selected, var(--spectrum-treeview-item-border-color-selected)));
+ }
+ }
+ }
+
+ &.is-selected {
+ > .spectrum-TreeView-itemLink:not(:focus-visible) {
+ &::before {
+ border-width: var(--mod-treeview-item-border-size-selected, var(--spectrum-treeview-item-border-size-selected));
+ }
+ }
+ }
+
+ &.is-drop-target {
+ > .spectrum-TreeView-itemLink {
+ &::before {
+ border-width: var(--mod-treeview-item-border-size, var(--spectrum-treeview-item-border-size));
+ }
+ }
+ }
+
+ &.is-disabled {
+ > .spectrum-TreeView-itemLink {
+ color: var(--highcontrast-treeview-item-text-color-disabled, var(--mod-treeview-item-text-color-disabled, var(--spectrum-treeview-item-text-color-disabled)));
+
+ &::before {
+ background-color: var(--highcontrast-treeview-item-background-color-disabled, transparent);
+ }
+
+ .spectrum-Icon {
+ color: var(--highcontrast-treeview-item-icon-color-disabled, var(--mod-treeview-item-icon-color-disabled, var(--spectrum-treeview-item-icon-color-disabled)));
+ }
+ }
+ }
}
.spectrum-TreeView-itemLabel {
- overflow: hidden;
- text-overflow: ellipsis;
- position: relative;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ position: relative;
}
.spectrum-TreeView-itemLink {
- box-sizing: border-box;
- display: flex;
- flex-flow: row nowrap;
- align-items: center;
-
- min-block-size: var(--mod-treeview-item-min-block-size, var(--spectrum-treeview-item-min-block-size));
- padding-inline: var(--mod-treeview-item-padding-inline-start, var(--spectrum-treeview-item-padding-inline-start)) var(--mod-treeview-item-padding-inline-end, var(--spectrum-treeview-item-padding-inline-end));
-
- color: var(--highcontrast-treeview-item-text-color, var(--mod-treeview-item-text-color, var(--spectrum-treeview-item-text-color)));
-
- text-decoration: none;
- outline: none;
- cursor: pointer;
-
- /* Prevent weirdness that can cause the vertical bar to fall down. */
- white-space: nowrap;
- overflow: hidden;
-
- /* Background for hover, focus, and selection, that extends the full width of the list. */
- &::before {
- content: '\00a0';
- box-sizing: border-box;
- position: absolute;
- inset-inline: 0;
- min-block-size: var(--mod-treeview-item-min-block-size, var(--spectrum-treeview-item-min-block-size));
-
- border-style: solid;
- border-color: transparent;
- border-width: var(--mod-treeview-item-border-size, var(--spectrum-treeview-item-border-size)) 0;
- background-color: transparent;
- color: transparent;
- }
-
- &:focus-visible {
- color: var(--highcontrast-treeview-item-text-color-focus, var(--mod-treeview-item-text-color-focus, var(--spectrum-treeview-item-text-color-focus)));
-
- &::before {
- background-color: var(--highcontrast-treeview-item-background-color-focus, var(--mod-treeview-item-background-color-focus, var(--spectrum-treeview-item-background-color-focus)));
- border-width: var(--mod-treeview-item-border-size, var(--spectrum-treeview-item-border-size));
- border-color: var(--highcontrast-treeview-item-border-color-focus, var(--mod-treeview-item-border-color-focus, var(--spectrum-treeview-item-border-color-focus)));
- }
-
- .spectrum-TreeView-itemIcon {
- color: var(--highcontrast-treeview-item-icon-color-focus, var(--mod-treeview-item-icon-color-focus, var(--spectrum-treeview-item-icon-color-focus)));
- }
- }
-
- &:hover {
- color: var(--highcontrast-treeview-item-text-color-focus, var(--mod-treeview-item-text-color-hover, var(--spectrum-treeview-item-text-color-hover)));
-
- &::before {
- background-color: var(--highcontrast-treeview-item-background-color-focus, var(--mod-treeview-item-background-color-hover, var(--spectrum-treeview-item-background-color-hover)));
- }
-
- .spectrum-TreeView-itemIcon {
- color: var(--highcontrast-treeview-item-text-color-focus, var(--mod-treeview-item-icon-color-hover, var(--spectrum-treeview-item-icon-color-hover)));
- }
- }
+ box-sizing: border-box;
+ display: flex;
+ flex-flow: row nowrap;
+ align-items: center;
+
+ min-block-size: var(--mod-treeview-item-min-block-size, var(--spectrum-treeview-item-min-block-size));
+ padding-inline: var(--mod-treeview-item-padding-inline-start, var(--spectrum-treeview-item-padding-inline-start)) var(--mod-treeview-item-padding-inline-end, var(--spectrum-treeview-item-padding-inline-end));
+
+ color: var(--highcontrast-treeview-item-text-color, var(--mod-treeview-item-text-color, var(--spectrum-treeview-item-text-color)));
+
+ text-decoration: none;
+ outline: none;
+ cursor: pointer;
+
+ /* Prevent weirdness that can cause the vertical bar to fall down. */
+ white-space: nowrap;
+ overflow: hidden;
+
+ /* Background for hover, focus, and selection, that extends the full width of the list. */
+ &::before {
+ content: "\00a0";
+ box-sizing: border-box;
+ position: absolute;
+ inset-inline: 0;
+ min-block-size: var(--mod-treeview-item-min-block-size, var(--spectrum-treeview-item-min-block-size));
+
+ border-style: solid;
+ border-color: transparent;
+ border-width: var(--mod-treeview-item-border-size, var(--spectrum-treeview-item-border-size)) 0;
+ background-color: transparent;
+ color: transparent;
+ }
+
+ &:focus-visible {
+ color: var(--highcontrast-treeview-item-text-color-focus, var(--mod-treeview-item-text-color-focus, var(--spectrum-treeview-item-text-color-focus)));
+
+ &::before {
+ background-color: var(--highcontrast-treeview-item-background-color-focus, var(--mod-treeview-item-background-color-focus, var(--spectrum-treeview-item-background-color-focus)));
+ border-width: var(--mod-treeview-item-border-size, var(--spectrum-treeview-item-border-size));
+ border-color: var(--highcontrast-treeview-item-border-color-focus, var(--mod-treeview-item-border-color-focus, var(--spectrum-treeview-item-border-color-focus)));
+ }
+
+ .spectrum-TreeView-itemIcon {
+ color: var(--highcontrast-treeview-item-icon-color-focus, var(--mod-treeview-item-icon-color-focus, var(--spectrum-treeview-item-icon-color-focus)));
+ }
+ }
+
+ &:hover {
+ color: var(--highcontrast-treeview-item-text-color-focus, var(--mod-treeview-item-text-color-hover, var(--spectrum-treeview-item-text-color-hover)));
+
+ &::before {
+ background-color: var(--highcontrast-treeview-item-background-color-focus, var(--mod-treeview-item-background-color-hover, var(--spectrum-treeview-item-background-color-hover)));
+ }
+
+ .spectrum-TreeView-itemIcon {
+ color: var(--highcontrast-treeview-item-text-color-focus, var(--mod-treeview-item-icon-color-hover, var(--spectrum-treeview-item-icon-color-hover)));
+ }
+ }
}
.spectrum-TreeView-itemIcon {
- position: relative;
- vertical-align: top;
- flex-shrink: 0;
- margin-inline-end: var(--mod-treeview-item-icon-gap, var(--spectrum-treeview-item-icon-gap));
- color: var(--highcontrast-treeview-item-icon-color, var(--mod-treeview-item-icon-color, var(--spectrum-treeview-item-icon-color)));
+ position: relative;
+ vertical-align: top;
+ flex-shrink: 0;
+ margin-inline-end: var(--mod-treeview-item-icon-gap, var(--spectrum-treeview-item-icon-gap));
+ color: var(--highcontrast-treeview-item-icon-color, var(--mod-treeview-item-icon-color, var(--spectrum-treeview-item-icon-color)));
}
.spectrum-TreeView-itemIndicator {
- display: block;
- box-sizing: content-box;
- position: relative;
- flex-shrink: 0;
+ display: block;
+ box-sizing: content-box;
+ position: relative;
+ flex-shrink: 0;
- /* Make sure the hover background pseudo element doesn't block clicks on the chevron. */
- z-index: 1;
+ /* Make sure the hover background pseudo element doesn't block clicks on the chevron. */
+ z-index: 1;
- padding-inline: var(--mod-treeview-indicator-padding-inline, var(--spectrum-treeview-indicator-padding));
- padding-block: var(--mod-treeview-indicator-padding-block, var(--spectrum-treeview-indicator-padding));
- margin-inline-start: var(--mod-treeview-indicator-margin-inline-start, var(--spectrum-treeview-indicator-margin-inline-start));
+ padding-inline: var(--mod-treeview-indicator-padding-inline, var(--spectrum-treeview-indicator-padding));
+ padding-block: var(--mod-treeview-indicator-padding-block, var(--spectrum-treeview-indicator-padding));
+ margin-inline-start: var(--mod-treeview-indicator-margin-inline-start, var(--spectrum-treeview-indicator-margin-inline-start));
- transition: transform ease var(--mod-treeview-indicator-animation-duration, var(--spectrum-treeview-indicator-animation-duration));
- pointer-events: all;
- transform: var(--spectrum-logical-rotation);
+ transition: transform ease var(--mod-treeview-indicator-animation-duration, var(--spectrum-treeview-indicator-animation-duration));
+ pointer-events: all;
+ transform: var(--spectrum-logical-rotation);
}
/* Section headings */
.spectrum-TreeView-section > .spectrum-TreeView {
- display: block;
- block-size: auto;
- padding-inline-start: 0;
+ display: block;
+ block-size: auto;
+ padding-inline-start: 0;
}
.spectrum-TreeView-section:not(:first-child) {
- margin-block-start: var(--mod-treeview-section-spacing, var(--spectrum-treeview-section-spacing));
+ margin-block-start: var(--mod-treeview-section-spacing, var(--spectrum-treeview-section-spacing));
}
.spectrum-TreeView-heading {
- padding-block-end: var(--mod-treeview-heading-bottom-to-text, var(--spectrum-treeview-heading-bottom-to-text));
- font-weight: var(--mod-treeview-heading-font-weight, var(--spectrum-treeview-heading-font-weight));
- color: var(--highcontrast-treeview-heading-color, var(--mod-treeview-heading-color, inherit));
+ padding-block-end: var(--mod-treeview-heading-bottom-to-text, var(--spectrum-treeview-heading-bottom-to-text));
+ font-weight: var(--mod-treeview-heading-font-weight, var(--spectrum-treeview-heading-font-weight));
+ color: var(--highcontrast-treeview-heading-color, var(--mod-treeview-heading-color, var(--spectrum-treeview-heading-color)));
}
/* Indentation levels used with Flat structure variant. */
.spectrum-TreeView-item--indent1 {
- padding-inline-start: var(--mod-treeview-item-indentation, var(--spectrum-treeview-item-indentation));
+ padding-inline-start: var(--mod-treeview-item-indentation, var(--spectrum-treeview-item-indentation));
}
.spectrum-TreeView-item--indent2 {
- padding-inline-start: calc(2 * var(--mod-treeview-item-indentation, var(--spectrum-treeview-item-indentation)));
+ padding-inline-start: calc(2 * var(--mod-treeview-item-indentation, var(--spectrum-treeview-item-indentation)));
}
.spectrum-TreeView-item--indent3 {
- padding-inline-start: calc(3 * var(--mod-treeview-item-indentation, var(--spectrum-treeview-item-indentation)));
+ padding-inline-start: calc(3 * var(--mod-treeview-item-indentation, var(--spectrum-treeview-item-indentation)));
}
.spectrum-TreeView-item--indent4 {
- padding-inline-start: calc(4 * var(--mod-treeview-item-indentation, var(--spectrum-treeview-item-indentation)));
+ padding-inline-start: calc(4 * var(--mod-treeview-item-indentation, var(--spectrum-treeview-item-indentation)));
}
.spectrum-TreeView-item--indent5 {
- padding-inline-start: calc(5 * var(--mod-treeview-item-indentation, var(--spectrum-treeview-item-indentation)));
+ padding-inline-start: calc(5 * var(--mod-treeview-item-indentation, var(--spectrum-treeview-item-indentation)));
}
.spectrum-TreeView-item--indent6 {
- padding-inline-start: calc(6 * var(--mod-treeview-item-indentation, var(--spectrum-treeview-item-indentation)));
+ padding-inline-start: calc(6 * var(--mod-treeview-item-indentation, var(--spectrum-treeview-item-indentation)));
}
.spectrum-TreeView-item--indent7 {
- padding-inline-start: calc(7 * var(--mod-treeview-item-indentation, var(--spectrum-treeview-item-indentation)));
+ padding-inline-start: calc(7 * var(--mod-treeview-item-indentation, var(--spectrum-treeview-item-indentation)));
}
.spectrum-TreeView-item--indent8 {
- padding-inline-start: calc(8 * var(--mod-treeview-item-indentation, var(--spectrum-treeview-item-indentation)));
+ padding-inline-start: calc(8 * var(--mod-treeview-item-indentation, var(--spectrum-treeview-item-indentation)));
}
.spectrum-TreeView-item--indent9 {
- padding-inline-start: calc(9 * var(--mod-treeview-item-indentation, var(--spectrum-treeview-item-indentation)));
+ padding-inline-start: calc(9 * var(--mod-treeview-item-indentation, var(--spectrum-treeview-item-indentation)));
}
.spectrum-TreeView-item--indent10 {
- padding-inline-start: calc(10 * var(--mod-treeview-item-indentation, var(--spectrum-treeview-item-indentation)));
+ padding-inline-start: calc(10 * var(--mod-treeview-item-indentation, var(--spectrum-treeview-item-indentation)));
}
/* ***** VARIANTS ***** */
.spectrum-TreeView--thumbnail {
- .spectrum-TreeView-itemThumbnail {
- flex-shrink: 0;
- margin-inline-end: var(--mod-treeview-item-icon-gap, var(--spectrum-treeview-item-icon-gap));
- }
+ .spectrum-TreeView-itemThumbnail {
+ flex-shrink: 0;
+ margin-inline-end: var(--mod-treeview-item-icon-gap, var(--spectrum-treeview-item-icon-gap));
+ }
}
diff --git a/components/well/index.css b/components/well/index.css
index 5637577003..8ee05edc52 100644
--- a/components/well/index.css
+++ b/components/well/index.css
@@ -11,18 +11,20 @@ governing permissions and limitations under the License.
*/
.spectrum-Well {
- --spectrum-well-border-width: var(--spectrum-border-width-100);
+ --spectrum-well-border-width: var(--spectrum-border-width-100);
+ --spectrum-well-content-color: var(--spectrum-body-color);
}
.spectrum-Well {
- text-align: start;
- display: block;
- min-inline-size: var(--mod-well-min-width, var(--spectrum-well-min-width));
- padding: var(--mod-well-padding, var(--spectrum-well-padding));
- margin-block-start: var(--mod-well-margin-top, var(--spectrum-well-margin-top));
- border-width: var(--mod-well-border-width, var(--spectrum-well-border-width));
- border-style: solid;
- border-radius: var(--mod-well-border-radius, var(--spectrum-well-border-radius));
- background-color: var(--mod-well-background-color, rgba(var(--spectrum-gray-800-rgb), 0.02));
- border-color: var(--mod-well-border-color, var(--spectrum-well-border-color));
+ text-align: start;
+ display: block;
+ min-inline-size: var(--mod-well-min-width, var(--spectrum-well-min-width));
+ padding: var(--mod-well-padding, var(--spectrum-well-padding));
+ margin-block-start: var(--mod-well-margin-top, var(--spectrum-well-margin-top));
+ border-width: var(--mod-well-border-width, var(--spectrum-well-border-width));
+ border-style: solid;
+ border-radius: var(--mod-well-border-radius, var(--spectrum-well-border-radius));
+ background-color: var(--mod-well-background-color, rgba(var(--spectrum-gray-800-rgb), 0.02));
+ border-color: var(--mod-well-border-color, var(--spectrum-well-border-color));
+ color: var(--mod-well-content-color, var(--spectrum-well-content-color));
}
diff --git a/components/well/metadata/mods.md b/components/well/metadata/mods.md
index 91e6f136d7..99f96fddca 100644
--- a/components/well/metadata/mods.md
+++ b/components/well/metadata/mods.md
@@ -4,6 +4,7 @@
| `--mod-well-border-color` |
| `--mod-well-border-radius` |
| `--mod-well-border-width` |
+| `--mod-well-content-color` |
| `--mod-well-margin-top` |
| `--mod-well-min-width` |
| `--mod-well-padding` |