+
Click Me
`,
});
@@ -150,7 +154,7 @@ export function renderIconButtonSet(properties: Properties): TemplateResult {
const iconOnly = Object.assign({}, properties, {
iconOnly: true,
content: html`
-
+
`,
});
return html`
@@ -177,7 +181,7 @@ export const renderWithIcon = (props: Properties): TemplateResult => {
${renderButtonSet({
...props,
content: html`
-
+
Help
`,
})}
@@ -198,7 +202,7 @@ export const renderWithIconOnly = (props: Properties): TemplateResult => {
${renderIconButtonSet({
...props,
content: html`
-
+
`,
})}
`;
diff --git a/packages/button/test/benchmark/test-basic.ts b/packages/button/test/benchmark/test-basic.ts
index 9b5a5c34637..482f2b6f9d3 100644
--- a/packages/button/test/benchmark/test-basic.ts
+++ b/packages/button/test/benchmark/test-basic.ts
@@ -11,7 +11,7 @@
*/
import '@spectrum-web-components/button/sp-button.js';
-import '@spectrum-web-components/icons-workflow/icons/sp-icon-help.js';
+import '@spectrum-web-components/icons-workflow/icons/sp-icon-help-circle.js';
import { html } from 'lit';
import { measureFixtureCreation } from '../../../../test/benchmark/helpers.js';
@@ -19,7 +19,7 @@ measureFixtureCreation(html`
Click Me
Click Me
-
+
Click Me
`);
diff --git a/packages/card/package.json b/packages/card/package.json
index bb5b93836e2..e387989bb3b 100644
--- a/packages/card/package.json
+++ b/packages/card/package.json
@@ -29,7 +29,6 @@
"development": "./src/Card.dev.js",
"default": "./src/Card.js"
},
- "./src/card-overrides.css.js": "./src/card-overrides.css.js",
"./src/card.css.js": "./src/card.css.js",
"./src/index.js": {
"development": "./src/index.dev.js",
diff --git a/packages/card/src/card-overrides.css b/packages/card/src/card-overrides.css
deleted file mode 100644
index 423cf1cc610..00000000000
--- a/packages/card/src/card-overrides.css
+++ /dev/null
@@ -1,19 +0,0 @@
-/**
- * Copyright 2025 Adobe. All rights reserved.
- * This file is licensed to you under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License. You may obtain a copy
- * of the License at http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under
- * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
- * OF ANY KIND, either express or implied. See the License for the specific language
- * governing permissions and limitations under the License.
- */
-
-:host {
- --spectrum-card-border-color: var(--system-card-border-color);
- --spectrum-card-border-color-hover: var(--system-card-border-color-hover);
- --spectrum-card-divider-color: var(--system-card-divider-color);
- --spectrum-card-preview-background-color: var(--system-card-preview-background-color);
- --spectrum-card-preview-background-color-hover: var(--system-card-preview-background-color-hover);
-}
diff --git a/packages/card/src/card.css b/packages/card/src/card.css
index be68aa37227..9ea07047c07 100644
--- a/packages/card/src/card.css
+++ b/packages/card/src/card.css
@@ -10,91 +10,192 @@
* governing permissions and limitations under the License.
*/
-@import url("./spectrum-card.css");
-@import url("./card-overrides.css");
+/* Base variables */
+:host {
+ --spectrum-card-background-color: var(--spectrum-background-layer-2-color);
+ --spectrum-card-body-spacing: var(--spectrum-spacing-400);
+ --spectrum-card-body-padding-block-start: var(--spectrum-spacing-300);
+ --spectrum-card-title-padding-right: var(--spectrum-spacing-400);
+ --spectrum-card-content-margin-top: var(--spectrum-spacing-100);
+ --spectrum-card-content-margin-bottom: var(--spectrum-spacing-300);
+ --spectrum-card-footer-padding-block-start: var(--spectrum-spacing-100);
+ --spectrum-card-subtitle-padding-right: var(--spectrum-spacing-100);
+ --spectrum-card-border-width: var(--spectrum-border-width-100);
+ --spectrum-card-corner-radius: var(--spectrum-corner-radius-100);
+ --spectrum-card-title-font-family: var(--spectrum-sans-font-family-stack);
+ --spectrum-card-title-font-size: var(--spectrum-heading-size-xxs);
+ --spectrum-card-title-font-weight: var(--spectrum-heading-sans-serif-font-weight);
+ --spectrum-card-title-font-style: var(--spectrum-heading-sans-serif-font-style);
+ --spectrum-card-title-line-height: var(--spectrum-heading-line-height);
+ --spectrum-card-title-font-color: var(--spectrum-heading-color);
+ --spectrum-card-body-font-family: var(--spectrum-sans-font-family-stack);
+ --spectrum-card-body-font-size: var(--spectrum-body-size-s);
+ --spectrum-card-body-font-weight: var(--spectrum-body-sans-serif-font-weight);
+ --spectrum-card-body-font-style: var(--spectrum-body-sans-serif-font-style);
+ --spectrum-card-body-line-height: var(--spectrum-body-line-height);
+ --spectrum-card-body-font-color: var(--spectrum-body-color);
+ --spectrum-card-actions-spacing: var(--spectrum-spacing-300);
+ --spectrum-card-actions-size: var(--spectrum-card-selection-background-size);
+ --spectrum-card-actions-border-radius: var(--spectrum-corner-radius-100);
+ --spectrum-card-actions-background-color-rgb: var(--spectrum-gray-100-rgb);
+ --spectrum-card-actions-background-color-opacity: var(--spectrum-card-selection-background-color-opacity);
+ --spectrum-card-actions-drop-shadow-color: var(--spectrum-drop-shadow-color);
+ --spectrum-card-actions-drop-shadow-x: var(--spectrum-drop-shadow-x);
+ --spectrum-card-actions-drop-shadow-y: var(--spectrum-drop-shadow-y);
+ --spectrum-card-actions-drop-shadow-blur: var(--spectrum-drop-shadow-blur);
+ --spectrum-card-focus-indicator-color: var(--spectrum-focus-indicator-color);
+ --spectrum-card-focus-indicator-width: var(--spectrum-focus-indicator-thickness);
+ --spectrum-card-selected-background-opacity: 0.1;
+ --spectrum-card-preview-border-width-selected: var(--spectrum-border-width-100);
+ --spectrum-card-horizontal-body-padding: var(--spectrum-spacing-300);
+ --spectrum-card-horizontal-preview-padding: var(--spectrum-spacing-200);
+ --spectrum-card-minimum-width: var(--spectrum-card-minimum-width-quiet);
+ --spectrum-card-border-color: var(--spectrum-blue-700);
-:host([href]:not([href=""])) {
+ min-inline-size: var(--spectrum-card-minimum-width);
+ border-width: var(--spectrum-card-border-width);
+ border-style: solid;
+ border-color: var(--spectrum-card-border-color);
+ border-radius: var(--spectrum-card-corner-radius);
+ background-color: var(--spectrum-card-background-color);
+ position: relative;
+ display: inline-flex;
+ flex-direction: column;
+ box-sizing: border-box;
+ outline: none;
cursor: pointer;
+ vertical-align: top;
+ text-decoration: none;
+ user-select: none;
+ touch-action: none;
+ transition:
+ border-color var(--spectrum-animation-duration-100) ease-in-out,
+ box-shadow var(--spectrum-animation-duration-100) ease-in-out;
}
-#like-anchor {
- position: absolute;
- inset: 0;
- pointer-events: none;
+:host([selected]) {
+ border-color: var(--highcontrast-card-border-color-selected);
+ background-color: var(--highcontrast-card-background-color-selected);
}
-.action-button {
- flex-grow: 0;
+:host([quiet]) {
}
-:host([dir="ltr"]) .action-button {
- margin-left: auto;
+.actions {
+ position: absolute;
+ inset-block-start: var(--spectrum-card-actions-spacing);
+ inset-inline-end: var(--spectrum-card-actions-spacing);
+ inline-size: var(--spectrum-card-actions-size);
+ block-size: var(--spectrum-card-actions-size);
+ border-radius: var(--spectrum-card-actions-border-radius);
+ background-color: rgb(var(--spectrum-card-actions-background-color-rgb), var(--spectrum-card-actions-background-color-opacity));
+ filter: drop-shadow(var(--spectrum-card-actions-drop-shadow-x) var(--spectrum-card-actions-drop-shadow-y) var(--spectrum-card-actions-drop-shadow-blur) var(--spectrum-card-actions-drop-shadow-color));
+ opacity: 0;
+ visibility: hidden;
+ transform: translateY(8px);
+ transition:
+ transform var(--spectrum-animation-duration-100) ease-in-out,
+ opacity var(--spectrum-animation-duration-100) ease-in-out,
+ visibility 0s linear var(--spectrum-animation-duration-100);
}
-:host([dir="rtl"]) .action-button {
- margin-right: auto;
+.preview {
+ block-size: var(--spectrum-card-preview-minimum-height);
+ border-block-end-width: var(--spectrum-card-border-width);
+ border-block-end-style: solid;
+ background-color: var(--spectrum-card-preview-background-color);
+ border-block-end-color: var(--spectrum-card-border-color);
+ border-start-start-radius: calc(var(--spectrum-card-corner-radius) - var(--spectrum-card-border-width));
+ border-start-end-radius: calc(var(--spectrum-card-corner-radius) - var(--spectrum-card-border-width));
+ overflow: hidden;
}
-/* The description slot has a psuedo-element that also needs to receive the font styling.
-We need to add the declaration to the slot as well */
-slot[name="description"] {
- font-size: var(--spectrum-card-subtitle-text-size, var(--spectrum-font-size-50));
+.body {
+ flex: 1;
+ box-sizing: border-box;
+ padding-block-start: var(--spectrum-card-body-padding-block-start);
+ padding-block-end: calc(var(--spectrum-card-body-spacing) - var(--spectrum-card-border-width));
+ padding-inline-start: calc(var(--spectrum-card-body-spacing) - var(--spectrum-card-border-width));
+ padding-inline-end: calc(var(--spectrum-card-body-spacing) - var(--spectrum-card-border-width));
+ min-block-size: 0;
}
-#preview + #cover-photo {
- display: none;
+.title {
+ margin: 0;
+ padding-inline-end: var(--spectrum-card-title-padding-right);
+ font-family: var(--spectrum-card-title-font-family);
+ font-size: var(--spectrum-card-title-font-size);
+ font-weight: var(--spectrum-card-title-font-weight);
+ font-style: var(--spectrum-card-title-font-style);
+ line-height: var(--spectrum-card-title-line-height);
+ color: var(--spectrum-card-title-font-color);
}
-#cover-photo ::slotted(*),
-:host(:not([variant="quiet"])) #preview ::slotted(*) {
- width: 100%;
- display: block;
+.content {
+ margin-block-start: var(--spectrum-card-content-margin-top);
+ margin-block-end: var(--spectrum-card-content-margin-bottom);
+ font-family: var(--spectrum-card-body-font-family);
+ font-size: var(--spectrum-card-body-font-size);
+ font-weight: var(--spectrum-card-body-font-weight);
+ font-style: var(--spectrum-card-body-font-style);
+ line-height: var(--spectrum-card-body-line-height);
+ color: var(--spectrum-card-body-font-color);
+}
- /* Since we're using
![]()
tags instead of background-image for the cover photo,
- we need an additional object-fit property to preserve the aspect ratio of the image
- In spectrum-css, background-size is used */
- object-fit: cover;
+.footer {
+ border-block-start: var(--spectrum-card-border-width) solid var(--spectrum-card-divider-color);
+ margin-block-start: calc((var(--spectrum-card-body-spacing) - var(--spectrum-card-content-margin-bottom)) * -1);
+ margin-inline-start: var(--spectrum-card-body-spacing);
+ margin-inline-end: var(--spectrum-card-body-spacing);
+ padding-block-start: var(--spectrum-card-footer-padding-block-start);
+ padding-block-end: calc(var(--spectrum-card-body-spacing) - var(--spectrum-card-border-width));
}
-:host(:not([variant="gallery"])) #preview ::slotted(*) {
- height: 100%;
+:host([horizontal]) {
+ flex-direction: row;
}
-:host([horizontal]) #preview {
- width: auto;
+:host([horizontal]) .preview {
+ border-block-end: none;
+ border-inline-end: var(--spectrum-card-border-width) solid var(--spectrum-card-border-color);
+ border-start-end-radius: 0;
+ border-end-start-radius: calc(var(--spectrum-card-corner-radius) - var(--spectrum-card-border-width));
+
+ padding: var(--spectrum-card-horizontal-preview-padding);
}
-:host([horizontal]) sp-asset {
- height: inherit;
+:host([horizontal]) .body {
+ padding: var(--spectrum-card-horizontal-body-padding);
}
-sp-popover {
- align-items: center;
+:host(:hover) {
+ border-color: transparent;
}
-.actions {
- visibility: hidden;
- margin: auto;
+:host(:hover) .preview {
+ background-color: var(--spectrum-card-preview-background-color);
}
-/**
- * Allow that the heading element will take specified use of the available width whether
- * "actions" are supplied to the element or not.
- **/
-.title {
- width: var(--spectrum-card-title-width);
+:host(:hover) .actions {
+ opacity: 1;
+ visibility: visible;
+ transform: translateY(0);
+ transition:
+ transform var(--spectrum-animation-duration-100) ease-in-out,
+ opacity var(--spectrum-animation-duration-100) ease-in-out,
+ visibility 0s linear;
}
-.subtitle {
- font-family: var(--spectrum-sans-font-family-stack);
- font-size: var(--spectrum-detail-size-s);
- font-weight: var(--spectrum-detail-sans-serif-font-weight);
- line-height: var(--spectrum-detail-line-height);
+:host(:focus-visible) {
+ outline: none;
}
-:host:before,
-:host:after {
- pointer-events: none;
+:host(:focus-visible):after {
+ content: "";
+ position: absolute;
+ inset: 0;
+ border-radius: var(--spectrum-card-corner-radius);
+ border: var(--spectrum-card-focus-indicator-width) solid var(--spectrum-card-focus-indicator-color);
}
:host([variant='quiet']:focus) #preview:after {
diff --git a/packages/card/src/spectrum-card.css b/packages/card/src/spectrum-card.css
deleted file mode 100644
index fc615e8a651..00000000000
--- a/packages/card/src/spectrum-card.css
+++ /dev/null
@@ -1,442 +0,0 @@
-/**
- * Copyright 2025 Adobe. All rights reserved.
- * This file is licensed to you under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License. You may obtain a copy
- * of the License at http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under
- * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
- * OF ANY KIND, either express or implied. See the License for the specific language
- * governing permissions and limitations under the License.
- */
-
-:host {
- --spectrum-card-background-color: var(--mod-card-background-color, var(--spectrum-background-layer-2-color));
- --spectrum-card-body-spacing: var(--mod-card-body-spacing, var(--spectrum-spacing-400));
- --spectrum-card-body-padding-block-start: var(--mod-card-body-padding-block-start, var(--spectrum-spacing-300));
- --spectrum-card-title-padding-right: var(--mod-card-title-padding-right, var(--spectrum-spacing-400));
- --spectrum-card-content-margin-top: var(--mod-card-content-margin-top, var(--spectrum-spacing-100));
- --spectrum-card-content-margin-bottom: var(--mod-card-content-margin-bottom, var(--spectrum-spacing-300));
- --spectrum-card-footer-padding-top: var(--mod-card-footer-padding-block-start, var(--spectrum-spacing-100));
- --spectrum-card-subtitle-padding-right: var(--mod-card-subtitle-padding-right, var(--spectrum-spacing-100));
- --spectrum-card-border-width: var(--mod-card-border-width, var(--spectrum-border-width-100));
- --spectrum-card-corner-radius: var(--mod-card-corner-radius, var(--spectrum-corner-radius-100));
- --spectrum-card-title-font-family: var(--mod-card-title-font-family, var(--spectrum-sans-font-family-stack));
- --spectrum-card-title-font-size: var(--mod-card-title-font-size, var(--spectrum-heading-size-xxs));
- --spectrum-card-title-font-weight: var(--mod-card-title-font-weight, var(--spectrum-heading-sans-serif-font-weight));
- --spectrum-card-title-font-style: var(--mod-card-title-font-style, var(--spectrum-heading-sans-serif-font-style));
- --spectrum-card-title-line-height: var(--mod-card-title-line-height, var(--spectrum-heading-line-height));
- --spectrum-card-title-font-color: var(--mod-card-title-font-color, var(--spectrum-heading-color));
- --spectrum-card-body-font-family: var(--mod-card-body-font-family, var(--spectrum-sans-font-family-stack));
- --spectrum-card-body-font-size: var(--mod-card-body-font-size, var(--spectrum-body-size-s));
- --spectrum-card-body-font-weight: var(--mod-card-body-font-weight, var(--spectrum-body-sans-serif-font-weight));
- --spectrum-card-body-font-style: var(--mod-card-body-font-style, var(--spectrum-body-sans-serif-font-style));
- --spectrum-card-body-line-height: var(--mod-card-body-line-height, var(--spectrum-body-line-height));
- --spectrum-card-body-font-color: var(--mod-card-body-font-color, var(--spectrum-body-color));
- --spectrum-card-actions-spacing: var(--mod-card-actions-spacing, var(--spectrum-spacing-300));
- --spectrum-card-actions-size: var(--mod-card-actions-size, var(--spectrum-card-selection-background-size));
- --spectrum-card-actions-border-radius: var(--mod-card-actions-border-radius, var(--spectrum-corner-radius-100));
- --spectrum-card-actions-background-color-rgb: var(--mod-card-actions-background-color-rgb, var(--spectrum-gray-100-rgb));
- --spectrum-card-actions-background-color-opacity: var(--mod-card-actions-background-color-opacity, var(--spectrum-card-selection-background-color-opacity));
- --spectrum-card-actions-drop-shadow-color: var(--mod-card-actions-drop-shadow-color, var(--spectrum-drop-shadow-color));
- --spectrum-card-actions-drop-shadow-x: var(--mod-card-actions-drop-shadow-x, var(--spectrum-drop-shadow-x));
- --spectrum-card-actions-drop-shadow-y: var(--mod-card-actions-drop-shadow-y, var(--spectrum-drop-shadow-y));
- --spectrum-card-actions-drop-shadow-blur: var(--mod-card-actions-drop-shadow-blur, var(--spectrum-drop-shadow-blur));
- --spectrum-card-focus-indicator-color: var(--mod-card-focus-indicator-color, var(--spectrum-focus-indicator-color));
- --spectrum-card-focus-indicator-width: var(--mod-card-focus-indicator-width, var(--spectrum-focus-indicator-thickness));
- --spectrum-card-selected-background-opacity: var(--mod-card-selected-background-opacity, 0.1);
- --spectrum-card-preview-border-width-selected: var(--mod-card-preview-border-width-selected, var(--spectrum-border-width-100));
- --spectrum-card-horizontal-body-padding: var(--mod-card-horizontal-body-padding, var(--spectrum-spacing-300));
- --spectrum-card-horizontal-preview-padding: var(--mod-card-horizontal-preview-padding, var(--spectrum-spacing-200));
-}
-
-:host([variant="quiet"]) {
- --mod-card-minimum-width: var(--mod-card-minimum-width-quiet);
- --mod-card-content-margin-top: var(--mod-card-content-margin-top-quiet, var(--spectrum-spacing-100));
-}
-
-:host([variant="gallery"]) {
- --spectrum-card-content-margin-top: var(--spectrum-spacing-100);
-}
-
-:host([drop-target]),
-:host([selected]) {
- --spectrum-card-border-color: var(--mod-card-border-color-selected, var(--spectrum-blue-700));
-}
-
-:host {
- box-sizing: border-box;
- min-inline-size: var(--mod-card-minimum-width, var(--spectrum-card-minimum-width));
- block-size: 100%;
- border: var(--spectrum-card-border-width) solid transparent;
- border-radius: var(--spectrum-card-corner-radius);
- border-color: var(--mod-card-border-color, var(--spectrum-card-border-color));
- background-color: var(--spectrum-card-background-color);
- flex-direction: column;
- -webkit-text-decoration: none;
- text-decoration: none;
- display: inline-flex;
- position: relative;
-}
-
-:host:after,
-:host:before {
- content: "";
- block-size: 100%;
- inline-size: 100%;
- position: absolute;
- inset-block-start: 0;
- inset-inline-start: 0;
-}
-
-:host:after {
- border-radius: var(--spectrum-card-corner-radius);
- border: 0 solid #0000;
- margin-block-start: calc(var(--spectrum-card-focus-indicator-width) * -1);
- margin-inline-start: calc(var(--spectrum-card-focus-indicator-width) * -1);
- inset-inline-end: 0;
-}
-
-:host(:focus-visible) {
- outline: none;
-}
-
-:host(:focus-visible):after {
- border-width: var(--spectrum-card-focus-indicator-width);
- border-color: var(--spectrum-card-focus-indicator-color);
-}
-
-:host(:focus-visible) #cover-photo,
-:host(:focus-visible) #preview {
- border-start-start-radius: calc(var(--spectrum-card-corner-radius) - var(--spectrum-card-focus-indicator-width));
- border-start-end-radius: calc(var(--spectrum-card-corner-radius) - var(--spectrum-card-focus-indicator-width));
-}
-
-:host([selected]):before {
- background-color: rgba(var(--mod-card-selected-background-color-rgb, var(--spectrum-card-selected-background-color-rgb)), var(--spectrum-card-selected-background-opacity));
-}
-
-:host([drop-target]) {
- --mod-card-background-color: var(--spectrum-background-base-color);
- box-shadow: 0 0 0 1px var(--spectrum-card-border-color);
-}
-
-:host([focused]) .actions,
-:host([focused]) .checkbox-toggle,
-:host([selected]) .actions,
-:host([selected]) .checkbox-toggle,
-:host(:focus) .actions,
-:host(:focus) .checkbox-toggle {
- visibility: visible;
- opacity: 1;
- pointer-events: all;
-}
-
-.checkbox-toggle {
- visibility: hidden;
- box-shadow: var(--spectrum-card-actions-drop-shadow-x) var(--spectrum-card-actions-drop-shadow-y) var(--spectrum-card-actions-drop-shadow-blur) var(--spectrum-card-actions-drop-shadow-color);
- inline-size: var(--spectrum-card-actions-size);
- block-size: var(--spectrum-card-actions-size);
- border-radius: var(--spectrum-card-actions-border-radius);
- background-color: rgba(var(--spectrum-card-actions-background-color-rgb), var(--spectrum-card-actions-background-color-opacity));
- pointer-events: auto;
- box-sizing: border-box;
- transition:
- transform 0.13s ease-in-out,
- opacity 0.13s ease-in-out,
- visibility 0s linear 0.13s;
- transition:
- transform var(--mod-overlay-animation-duration, var(--spectrum-animation-duration-100, 0.13s)) ease-in-out,
- opacity var(--mod-overlay-animation-duration, var(--spectrum-animation-duration-100, 0.13s)) ease-in-out,
- visibility 0s linear var(--mod-overlay-animation-duration, var(--spectrum-animation-duration-100, 0.13s));
- justify-content: center;
- align-items: center;
- display: inline-flex;
- position: absolute;
- inset-block-start: calc(var(--spectrum-card-actions-spacing) - var(--spectrum-card-border-width));
- inset-inline-start: calc(var(--spectrum-card-actions-spacing) - var(--spectrum-card-border-width));
-}
-
-.actions {
- inset-block-start: var(--spectrum-card-actions-spacing);
- inset-inline-end: var(--spectrum-card-actions-spacing);
-}
-
-#cover-photo {
- block-size: var(--mod-card-preview-minimum-height, var(--spectrum-card-preview-minimum-height));
- box-sizing: border-box;
- background-position: 50%;
- background-size: cover;
- background-color: var(--mod-card-preview-background-color, var(--spectrum-card-preview-background-color));
- border-block-end-color: var(--mod-card-border-color, var(--spectrum-card-border-color));
- border-start-start-radius: calc(var(--spectrum-card-corner-radius) - var(--spectrum-card-border-width));
- border-start-end-radius: calc(var(--spectrum-card-corner-radius) - var(--spectrum-card-border-width));
- border-end-end-radius: 0;
- border-end-start-radius: 0;
- justify-content: center;
- align-items: center;
- display: flex;
- position: relative;
- overflow: hidden;
-}
-
-.spectrum-Divider {
- margin: 0;
-}
-
-.content {
- align-items: center;
- margin-block-start: var(--spectrum-card-content-margin-top);
- display: flex;
-}
-
-.body {
- padding-block-start: var(--spectrum-card-body-padding-block-start);
- padding-block-end: var(--mod-card-body-padding-block-end, calc(var(--spectrum-card-body-spacing) - var(--spectrum-card-border-width)));
- padding-inline-start: var(--mod-card-body-padding-inline-start, calc(var(--spectrum-card-body-spacing) - var(--spectrum-card-border-width)));
- padding-inline-end: var(--mod-card-body-padding-inline-end, calc(var(--spectrum-card-body-spacing) - var(--spectrum-card-border-width)));
-}
-
-#preview {
- color: var(--spectrum-card-body-font-color);
- border-start-start-radius: var(--spectrum-card-corner-radius);
- border-start-end-radius: var(--spectrum-card-corner-radius);
- border-end-end-radius: 0;
- border-end-start-radius: 0;
- align-items: center;
- display: flex;
- overflow: hidden;
-}
-
-.title {
- font-family: var(--spectrum-card-title-font-family);
- font-size: var(--spectrum-card-title-font-size);
- font-weight: var(--spectrum-card-title-font-weight);
- font-style: var(--spectrum-card-title-font-style);
- line-height: var(--spectrum-card-title-line-height);
- color: var(--spectrum-card-title-font-color);
- padding-inline-end: var(--spectrum-card-title-padding-right);
-}
-
-.subtitle {
- color: var(--spectrum-card-title-font-color);
- text-transform: none;
- padding-inline-end: var(--spectrum-card-subtitle-padding-right);
-}
-
-.subtitle + ::slotted([slot="description"]):before {
- content: "•";
- padding-inline-end: var(--spectrum-card-subtitle-padding-right);
-}
-
-::slotted([slot="description"]) {
- font-family: var(--spectrum-card-body-font-family);
- font-size: var(--spectrum-card-body-font-size);
- font-weight: var(--spectrum-card-body-font-weight);
- font-style: var(--spectrum-card-body-font-style);
-}
-
-::slotted([slot="description"]),
-::slotted([slot="footer"]) {
- line-height: var(--spectrum-card-body-line-height);
- color: var(--spectrum-card-body-font-color);
-}
-
-::slotted([slot="footer"]) {
- border-block-start: var(--spectrum-card-border-width) solid var(--mod-card-divider-color, var(--spectrum-card-divider-color));
- margin-block-start: var(--mod-card-footer-margin-block-start, calc((var(--spectrum-card-body-spacing) - var(--spectrum-card-content-margin-bottom)) * -1));
- margin-inline-start: var(--mod-card-footer-margin-inline-start, var(--spectrum-card-body-spacing));
- margin-inline-end: var(--mod-card-footer-margin-inline-end, var(--spectrum-card-body-spacing));
- padding-block-start: var(--spectrum-card-footer-padding-top);
- padding-block-end: var(--mod-card-footer-padding-block-end, calc(var(--spectrum-card-body-spacing) - var(--spectrum-card-border-width)));
-}
-
-.header {
- justify-content: space-between;
- align-items: center;
- display: flex;
-}
-
-.action-button {
- z-index: 1;
-}
-
-:host([variant="quiet"]) #preview {
- border: var(--spectrum-card-focus-indicator-width) solid transparent;
-}
-
-:host([variant="quiet"][focused]):after,
-:host([variant="quiet"]:focus):after {
- border-width: 0;
-}
-
-:host([variant="quiet"][focused]) #preview:after,
-:host([variant="quiet"]:focus) #preview:after {
- border-color: var(--spectrum-card-focus-indicator-color);
-}
-
-:host([variant="quiet"][selected]) #preview {
- border: var(--spectrum-card-preview-border-width-selected) solid;
- border-color: var(--spectrum-card-border-color);
-}
-
-:host([variant="gallery"]),
-:host([variant="quiet"]) {
- --mod-card-border-color-hover: transparent;
- background-color: initial;
- border-width: 0;
- border-color: #0000;
- border-radius: 0;
- overflow: visible;
-}
-
-:host([variant="gallery"]):before,
-:host([variant="quiet"]):before {
- display: none;
-}
-
-:host([variant="gallery"]) #preview,
-:host([variant="quiet"]) #preview {
- border-radius: var(--spectrum-card-corner-radius);
- background-color: var(--mod-card-preview-background-color, var(--mod-card-background-color, var(--spectrum-card-preview-background-color)));
- min-block-size: var(--mod-card-preview-minimum-height, var(--spectrum-card-preview-minimum-height));
- inline-size: 100%;
- box-sizing: border-box;
- transition: background-color var(--mod-card-animation-duration, var(--mod-animation-duration-100, var(--spectrum-animation-duration-100)));
- flex: 1;
- margin: 0 auto;
- position: relative;
- overflow: visible;
-}
-
-:host([variant="gallery"]) #preview:before,
-:host([variant="quiet"]) #preview:before {
- content: "";
- block-size: 100%;
- inline-size: 100%;
- position: absolute;
- inset-block-start: 0;
- inset-inline-start: 0;
-}
-
-:host([variant="gallery"]) #preview:after,
-:host([variant="quiet"]) #preview:after {
- content: "";
- block-size: 100%;
- inline-size: 100%;
- border-radius: calc(var(--spectrum-card-corner-radius) + var(--spectrum-card-focus-indicator-width));
- border: 0 solid #0000;
- margin-block-start: calc(var(--spectrum-card-focus-indicator-width) * -1);
- margin-inline-start: calc(var(--spectrum-card-focus-indicator-width) * -1);
- position: absolute;
- inset-block-start: 0;
- inset-inline: 0;
-}
-
-:host([variant="gallery"][drop-target]),
-:host([variant="quiet"][drop-target]) {
- background-color: initial;
- box-shadow: none;
- border-color: #0000;
-}
-
-:host([variant="gallery"][drop-target]) #preview,
-:host([variant="quiet"][drop-target]) #preview {
- background-color: var(--mod-card-preview-background-color, var(--mod-card-background-color, var(--spectrum-card-preview-background-color)));
- transition: none;
-}
-
-:host([variant="gallery"][drop-target]) #preview:before,
-:host([variant="quiet"][drop-target]) #preview:before {
- border-color: var(--spectrum-card-focus-indicator-color);
- box-shadow: 0 0 0 1px var(--spectrum-card-focus-indicator-color);
-}
-
-:host([variant="gallery"][selected]) #preview:before,
-:host([variant="quiet"][selected]) #preview:before {
- background-color: rgba(var(--mod-card-selected-background-color-rgb, var(--spectrum-card-selected-background-color-rgb)), var(--mod-card-selected-background-opacity, var(--spectrum-card-selected-background-opacity)));
-}
-
-:host([variant="gallery"]) .body,
-:host([variant="quiet"]) .body {
- margin-block-start: var(--spectrum-card-content-margin-top);
- padding: 0;
-}
-
-:host([variant="gallery"]) ::slotted([slot="footer"]),
-:host([variant="quiet"]) ::slotted([slot="footer"]) {
- margin-inline: 0;
-}
-
-:host([horizontal]) {
- flex-direction: row;
-}
-
-@media (hover: hover) {
- :host(:hover) {
- --mod-card-border-color: var(--mod-card-border-color-hover, var(--spectrum-card-border-color-hover));
- }
-
- :host(:hover) .actions,
- :host(:hover) .checkbox-toggle {
- visibility: visible;
- opacity: 1;
- pointer-events: all;
- }
-
- :host([variant="gallery"]:hover) #preview,
- :host([variant="quiet"]:hover) #preview {
- background-color: var(--mod-card-preview-background-color-hover, var(--mod-card-background-color-hover, var(--spectrum-card-preview-background-color-hover)));
- }
-
- :host([horizontal]:hover) #preview {
- border-color: var(--mod-card-border-color-hover, var(--spectrum-card-border-color-hover));
- }
-}
-
-:host([horizontal]) #preview {
- min-block-size: 0;
- padding: var(--spectrum-card-horizontal-preview-padding);
- background-color: var(--mod-card-preview-background-color, var(--spectrum-card-preview-background-color));
- border-color: var(--mod-card-border-color, var(--spectrum-card-border-color));
- border-start-start-radius: calc(var(--spectrum-card-corner-radius) - var(--spectrum-card-border-width));
- border-start-end-radius: 0;
- border-end-end-radius: 0;
- border-end-start-radius: calc(var(--spectrum-card-corner-radius) - var(--spectrum-card-border-width));
- flex-shrink: 0;
- justify-content: center;
- align-items: center;
- display: flex;
-}
-
-:host([horizontal]) .content,
-:host([horizontal]) .header {
- block-size: auto;
- margin-block-start: 0;
-}
-
-:host([horizontal]) .content {
- margin-block-end: 0;
-}
-
-:host([horizontal]) .title {
- padding-inline-end: 0;
-}
-
-:host([horizontal]) .body {
- padding-block: 0;
- padding-inline: var(--spectrum-card-horizontal-body-padding);
- flex-direction: column;
- flex-shrink: 0;
- justify-content: center;
- display: flex;
-}
-
-:host([variant="gallery"]) {
- min-inline-size: 0;
-}
-
-:host([variant="gallery"]) #preview {
- border-radius: 0;
- padding: 0;
-}
diff --git a/packages/card/stories/card.stories.ts b/packages/card/stories/card.stories.ts
index caed449eb80..aa651268c3a 100644
--- a/packages/card/stories/card.stories.ts
+++ b/packages/card/stories/card.stories.ts
@@ -13,7 +13,7 @@ import { html, TemplateResult } from '@spectrum-web-components/base';
import '@spectrum-web-components/card/sp-card.js';
import { landscape, portrait } from './images';
-import '@spectrum-web-components/icons-workflow/icons/sp-icon-file-txt.js';
+import '@spectrum-web-components/icons-workflow/icons/sp-icon-file-text.js';
import '@spectrum-web-components/textfield/sp-textfield.js';
import '@spectrum-web-components/action-menu/sp-action-menu.js';
import '@spectrum-web-components/menu/sp-menu.js';
@@ -329,10 +329,10 @@ export const Horizontal = (args: StoryArgs): TemplateResult => {
heading="Card Heading"
subheading="JPG"
>
-
+ >
`;
};
@@ -350,10 +350,10 @@ export const horizontalWithHREF = (args: StoryArgs): TemplateResult => {
href="https://opensource.adobe.com/spectrum-web-components"
target="_blank"
>
-
+ >
`;
};
diff --git a/packages/checkbox/package.json b/packages/checkbox/package.json
index b4d9c5a6e42..eb02cd1f95b 100644
--- a/packages/checkbox/package.json
+++ b/packages/checkbox/package.json
@@ -37,7 +37,6 @@
"development": "./src/CheckboxMixin.dev.js",
"default": "./src/CheckboxMixin.js"
},
- "./src/checkbox-overrides.css.js": "./src/checkbox-overrides.css.js",
"./src/checkbox.css.js": "./src/checkbox.css.js",
"./src/index.js": {
"development": "./src/index.dev.js",
diff --git a/packages/checkbox/src/checkbox-overrides.css b/packages/checkbox/src/checkbox-overrides.css
deleted file mode 100644
index f8712c75d91..00000000000
--- a/packages/checkbox/src/checkbox-overrides.css
+++ /dev/null
@@ -1,20 +0,0 @@
-/**
- * Copyright 2025 Adobe. All rights reserved.
- * This file is licensed to you under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License. You may obtain a copy
- * of the License at http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under
- * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
- * OF ANY KIND, either express or implied. See the License for the specific language
- * governing permissions and limitations under the License.
- */
-
-:host {
- --spectrum-checkbox-control-color-default: var(--system-checkbox-control-color-default);
- --spectrum-checkbox-control-color-hover: var(--system-checkbox-control-color-hover);
- --spectrum-checkbox-control-color-down: var(--system-checkbox-control-color-down);
- --spectrum-checkbox-control-color-focus: var(--system-checkbox-control-color-focus);
- --spectrum-checkbox-checkmark-color: var(--system-checkbox-checkmark-color);
- --spectrum-checkbox-control-corner-radius: var(--system-checkbox-control-corner-radius);
-}
diff --git a/packages/checkbox/src/checkbox.css b/packages/checkbox/src/checkbox.css
index 38bbeb09ea6..aa190417a75 100644
--- a/packages/checkbox/src/checkbox.css
+++ b/packages/checkbox/src/checkbox.css
@@ -10,22 +10,203 @@
* governing permissions and limitations under the License.
*/
-@import url("./spectrum-checkbox.css");
-@import url("./checkbox-overrides.css");
+/* Base variables */
+:host {
+ /* Color */
+ --spectrum-checkbox-checkmark-color: var(--spectrum-gray-25);
+ --spectrum-checkbox-background-color: var(--spectrum-gray-25);
+ --spectrum-checkbox-content-color-default: var(--spectrum-neutral-content-color-default);
+ --spectrum-checkbox-content-color-hover: var(--spectrum-neutral-content-color-hover);
+ --spectrum-checkbox-content-color-down: var(--spectrum-neutral-content-color-down);
+ --spectrum-checkbox-content-color-focus: var(--spectrum-neutral-content-color-key-focus);
+
+ --spectrum-checkbox-control-color-default: var(--spectrum-neutral-content-color-default);
+ --spectrum-checkbox-control-color-hover: var(--spectrum-neutral-content-color-hover);
+ --spectrum-checkbox-control-color-down: var(--spectrum-neutral-content-color-down);
+ --spectrum-checkbox-control-color-focus: var(--spectrum-neutral-content-color-key-focus);
+
+ --spectrum-checkbox-focus-indicator-color: var(--spectrum-focus-indicator-color);
+ --spectrum-checkbox-control-color-disabled: var(--spectrum-disabled-content-color);
+
+ --spectrum-checkbox-invalid-color-default: var(--spectrum-negative-color-900);
+ --spectrum-checkbox-invalid-color-hover: var(--spectrum-negative-color-1000);
+ --spectrum-checkbox-invalid-color-down: var(--spectrum-negative-color-1000);
+ --spectrum-checkbox-invalid-color-focus: var(--spectrum-negative-color-1000);
+
+ --spectrum-checkbox-emphasized-color-default: var(--spectrum-accent-content-color-default);
+ --spectrum-checkbox-emphasized-color-hover: var(--spectrum-accent-content-color-hover);
+ --spectrum-checkbox-emphasized-color-down: var(--spectrum-accent-content-color-down);
+ --spectrum-checkbox-emphasized-color-focus: var(--spectrum-accent-content-color-key-focus);
+
+ --spectrum-checkbox-control-selected-color-default: var(--spectrum-neutral-content-color-default);
+ --spectrum-checkbox-control-selected-color-hover: var(--spectrum-neutral-content-color-hover);
+ --spectrum-checkbox-control-selected-color-down: var(--spectrum-neutral-content-color-down);
+
+ /* Font */
+ --spectrum-checkbox-font-size: var(--spectrum-font-size-100);
+ --spectrum-checkbox-line-height: var(--spectrum-line-height-100);
+ --spectrum-checkbox-line-height-cjk: var(--spectrum-cjk-line-height-100);
+ --spectrum-checkbox-text-font-weight: var(--spectrum-regular-font-weight);
+ --spectrum-checkbox-text-font-style: var(--spectrum-default-font-style);
+
+ /* Size */
+ --spectrum-checkbox-height: var(--spectrum-component-height-100);
+ --spectrum-checkbox-control-size: var(--spectrum-checkbox-control-size-medium);
+ --spectrum-checkbox-control-corner-radius: var(--spectrum-corner-radius-small-size-medium);
+ --spectrum-checkbox-focus-indicator-gap: var(--spectrum-focus-indicator-gap);
+ --spectrum-checkbox-focus-indicator-thickness: var(--spectrum-focus-indicator-thickness);
+
+ --spectrum-checkbox-border-width: var(--spectrum-border-width-200);
+
+ --spectrum-checkbox-animation-duration: var(--spectrum-animation-duration-100);
+
+ --spectrum-checkbox-top-to-text: var(--spectrum-component-top-to-text-100);
+ --spectrum-checkbox-bottom-to-text: var(--spectrum-component-bottom-to-text-100);
+ --spectrum-checkbox-text-to-control: var(--spectrum-text-to-control-100);
+ --spectrum-checkbox-top-to-control: var(--spectrum-checkbox-top-to-control-medium);
+
+ --spectrum-checkbox-selected-border-width: calc(var(--spectrum-checkbox-control-size) / 2);
+}
+
+:host([size="s"]) {
+ --spectrum-checkbox-control-corner-radius: var(--spectrum-corner-radius-small-size-small);
+ --spectrum-checkbox-font-size: var(--spectrum-font-size-75);
+ --spectrum-checkbox-height: var(--spectrum-component-height-75);
+ --spectrum-checkbox-control-size: var(--spectrum-checkbox-control-size-small);
+ --spectrum-checkbox-top-to-text: var(--spectrum-component-top-to-text-75);
+ --spectrum-checkbox-bottom-to-text: var(--spectrum-component-bottom-to-text-75);
+ --spectrum-checkbox-text-to-control: var(--spectrum-text-to-control-75);
+ --spectrum-checkbox-top-to-control: var(--spectrum-checkbox-top-to-control-small);
+}
+
+:host([size="l"]) {
+ --spectrum-checkbox-control-corner-radius: var(--spectrum-corner-radius-small-size-large);
+ --spectrum-checkbox-font-size: var(--spectrum-font-size-200);
+ --spectrum-checkbox-height: var(--spectrum-component-height-200);
+ --spectrum-checkbox-control-size: var(--spectrum-checkbox-control-size-large);
+ --spectrum-checkbox-top-to-text: var(--spectrum-component-top-to-text-200);
+ --spectrum-checkbox-bottom-to-text: var(--spectrum-component-bottom-to-text-200);
+ --spectrum-checkbox-text-to-control: var(--spectrum-text-to-control-200);
+ --spectrum-checkbox-top-to-control: var(--spectrum-checkbox-top-to-control-large);
+}
+
+:host([size="xl"]) {
+ --spectrum-checkbox-control-corner-radius: var(--spectrum-corner-radius-small-size-extra-large);
+ --spectrum-checkbox-font-size: var(--spectrum-font-size-300);
+ --spectrum-checkbox-height: var(--spectrum-component-height-300);
+ --spectrum-checkbox-control-size: var(--spectrum-checkbox-control-size-extra-large);
+ --spectrum-checkbox-top-to-text: var(--spectrum-component-top-to-text-300);
+ --spectrum-checkbox-bottom-to-text: var(--spectrum-component-bottom-to-text-300);
+ --spectrum-checkbox-text-to-control: var(--spectrum-text-to-control-300);
+ --spectrum-checkbox-top-to-control: var(--spectrum-checkbox-top-to-control-extra-large);
+}
:host {
- display: inline-flex;
- vertical-align: top;
+ color: var(--highcontrast-checkbox-content-color-default, var(--mod-checkbox-content-color-default, var(--spectrum-checkbox-content-color-default)));
+ display: inline-flex;
+ align-items: flex-start;
+ position: relative;
+ min-block-size: var(--mod-checkbox-height, var(--spectrum-checkbox-height));
+ max-inline-size: 100%;
+ vertical-align: top;
+}
+
+:host(:active) .box {
+ border-color: var(--highcontrast-checkbox-highlight-color-down, var(--spectrum-checkbox-control-color-down));
+}
+
+:host(:active) .box.selected {
+ border-color: var(--highcontrast-checkbox-highlight-color-down, var(--spectrum-checkbox-control-selected-color-down));
+}
+
+:host(:active) .label {
+ color: var(--highcontrast-checkbox-content-color-down, var(--spectrum-checkbox-content-color-down));
+}
+
+:host([invalid]) .box {
+ border-color: var(--highcontrast-checkbox-color-default, var(--spectrum-checkbox-invalid-color-default));
+
+ border-color: ButtonText;
+}
+
+:host([invalid]:hover) .box {
+ border-color: var(--highcontrast-checkbox-color-hover, var(--spectrum-checkbox-invalid-color-hover));
+}
+
+:host([checked]) .box,
+:host([indeterminate]) .box {
+ background-color: var(--highcontrast-checkbox-background-color-default, var(--spectrum-checkbox-checkmark-color));
+
+ border-color: var(--highcontrast-checkbox-highlight-color-default, var(--spectrum-checkbox-control-selected-color-default));
+ border-width: var(--spectrum-checkbox-selected-border-width);
+}
+
+:host([checked]) .label,
+:host([indeterminate]) .label {
+ color: var(--highcontrast-checkbox-color-default, var(--spectrum-checkbox-content-color-default));
+}
+
+:host([checked]:focus-visible) .box,
+:host([indeterminate]:focus-visible) .box {
+ border-color: var(--highcontrast-checkbox-highlight-color-focus, var(--spectrum-checkbox-control-selected-color-focus));
+}
+
+:host([invalid][checked]) .box,
+:host([invalid][indeterminate]) .box {
+ border-color: var(--highcontrast-checkbox-color-default, var(--spectrum-checkbox-invalid-color-default));
+ border-width: var(--spectrum-checkbox-selected-border-width);
+}
+
+:host([emphasized]) .box {
+ border-color: var(--highcontrast-checkbox-highlight-color-default, var(--spectrum-checkbox-emphasized-color-default));
+
+ border-color: Highlight;
+}
+
+:host([emphasized]:focus-visible) .box {
+ border-color: var(--highcontrast-checkbox-highlight-color-focus, var(--spectrum-checkbox-emphasized-color-focus));
+}
+
+:host([invalid]:focus-visible) .box {
+ border-color: var(--highcontrast-checkbox-color-default, var(--spectrum-checkbox-invalid-color-focus));
+}
+
+:host(:hover) .box {
+ border-color: var(--highcontrast-checkbox-highlight-color-hover, var(--spectrum-checkbox-control-color-hover));
+}
+
+:host(:hover) .box.selected {
+ border-color: var(--highcontrast-checkbox-highlight-color-hover, var(--spectrum-checkbox-control-selected-color-hover));
+}
+
+:host(:hover) .label {
+ color: var(--highcontrast-checkbox-content-color-hover, var(--spectrum-checkbox-content-color-hover));
+}
+
+:host([checked]:hover) .box,
+:host([indeterminate]:hover) .box {
+ border-color: var(--highcontrast-checkbox-highlight-color-hover, var(--spectrum-checkbox-control-selected-color-hover));
+}
+
+:host([checked]) .box,
+:host([indeterminate]) .box {
+ background-color: Highlight;
+ border-color: Highlight;
}
-:host(:focus) {
- outline: none;
+:host([checked]) .label,
+:host([indeterminate]) .label {
+ color: ButtonText;
}
-:host([disabled]) {
- pointer-events: none;
+:host([invalid][checked]) .box,
+:host([invalid][indeterminate]) .box {
+ background-color: ButtonText;
+ border-color: ButtonText;
}
-:host(:empty) label {
- display: none;
+:host([emphasized][checked]) .box,
+:host([emphasized][indeterminate]) .box {
+ background-color: Highlight;
+ border-color: Highlight;
}
diff --git a/packages/checkbox/src/spectrum-checkbox.css b/packages/checkbox/src/spectrum-checkbox.css
deleted file mode 100644
index ac3697cc602..00000000000
--- a/packages/checkbox/src/spectrum-checkbox.css
+++ /dev/null
@@ -1,399 +0,0 @@
-/**
- * Copyright 2025 Adobe. All rights reserved.
- * This file is licensed to you under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License. You may obtain a copy
- * of the License at http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under
- * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
- * OF ANY KIND, either express or implied. See the License for the specific language
- * governing permissions and limitations under the License.
- */
-
-:host {
- --spectrum-checkbox-content-color-default: var(--spectrum-neutral-content-color-default);
- --spectrum-checkbox-content-color-hover: var(--spectrum-neutral-content-color-hover);
- --spectrum-checkbox-content-color-down: var(--spectrum-neutral-content-color-down);
- --spectrum-checkbox-content-color-focus: var(--spectrum-neutral-content-color-key-focus);
- --spectrum-checkbox-focus-indicator-color: var(--spectrum-focus-indicator-color);
- --spectrum-checkbox-content-color-disabled: var(--spectrum-disabled-content-color);
- --spectrum-checkbox-control-color-disabled: var(--spectrum-disabled-content-color);
- --spectrum-checkbox-invalid-color-default: var(--spectrum-negative-color-900);
- --spectrum-checkbox-invalid-color-hover: var(--spectrum-negative-color-1000);
- --spectrum-checkbox-invalid-color-down: var(--spectrum-negative-color-1100);
- --spectrum-checkbox-invalid-color-focus: var(--spectrum-negative-color-1000);
- --spectrum-checkbox-emphasized-color-default: var(--spectrum-accent-color-900);
- --spectrum-checkbox-emphasized-color-hover: var(--spectrum-accent-color-1000);
- --spectrum-checkbox-emphasized-color-down: var(--spectrum-accent-color-1100);
- --spectrum-checkbox-emphasized-color-focus: var(--spectrum-accent-color-1000);
- --spectrum-checkbox-control-selected-color-default: var(--spectrum-neutral-background-color-selected-default);
- --spectrum-checkbox-control-selected-color-hover: var(--spectrum-neutral-background-color-selected-hover);
- --spectrum-checkbox-control-selected-color-down: var(--spectrum-neutral-background-color-selected-down);
- --spectrum-checkbox-control-selected-color-focus: var(--spectrum-neutral-background-color-selected-key-focus);
- --spectrum-checkbox-line-height: var(--spectrum-line-height-100);
- --spectrum-checkbox-line-height-cjk: var(--spectrum-cjk-line-height-100);
- --spectrum-checkbox-focus-indicator-gap: var(--spectrum-focus-indicator-gap);
- --spectrum-checkbox-focus-indicator-thickness: var(--spectrum-focus-indicator-thickness);
- --spectrum-checkbox-border-width: var(--spectrum-border-width-200);
- --spectrum-checkbox-selected-border-width: calc(var(--spectrum-checkbox-control-size) / 2);
- --spectrum-checkbox-animation-duration: var(--spectrum-animation-duration-100);
-}
-
-:host,
-:host {
- --spectrum-checkbox-font-size: var(--spectrum-font-size-100);
- --spectrum-checkbox-height: var(--spectrum-component-height-100);
- --spectrum-checkbox-control-size: var(--spectrum-checkbox-control-size-medium);
- --spectrum-checkbox-top-to-text: var(--spectrum-component-top-to-text-100);
- --spectrum-checkbox-text-to-control: var(--spectrum-text-to-control-100);
-}
-
-:host([size="s"]) {
- --spectrum-checkbox-font-size: var(--spectrum-font-size-75);
- --spectrum-checkbox-height: var(--spectrum-component-height-75);
- --spectrum-checkbox-control-size: var(--spectrum-checkbox-control-size-small);
- --spectrum-checkbox-top-to-text: var(--spectrum-component-top-to-text-75);
- --spectrum-checkbox-text-to-control: var(--spectrum-text-to-control-75);
-}
-
-:host([size="l"]) {
- --spectrum-checkbox-font-size: var(--spectrum-font-size-200);
- --spectrum-checkbox-height: var(--spectrum-component-height-200);
- --spectrum-checkbox-control-size: var(--spectrum-checkbox-control-size-large);
- --spectrum-checkbox-top-to-text: var(--spectrum-component-top-to-text-200);
- --spectrum-checkbox-text-to-control: var(--spectrum-text-to-control-200);
-}
-
-:host([size="xl"]) {
- --spectrum-checkbox-font-size: var(--spectrum-font-size-300);
- --spectrum-checkbox-height: var(--spectrum-component-height-300);
- --spectrum-checkbox-control-size: var(--spectrum-checkbox-control-size-extra-large);
- --spectrum-checkbox-top-to-text: var(--spectrum-component-top-to-text-300);
- --spectrum-checkbox-text-to-control: var(--spectrum-text-to-control-300);
-}
-
-:host {
- color: var(--highcontrast-checkbox-content-color-default, var(--mod-checkbox-content-color-default, var(--spectrum-checkbox-content-color-default)));
- min-block-size: var(--mod-checkbox-height, var(--spectrum-checkbox-height));
- max-inline-size: 100%;
- vertical-align: top;
- align-items: flex-start;
- display: inline-flex;
- position: relative;
-}
-
-:host(:is(:active, [active])) #box:before {
- border-color: var(--highcontrast-checkbox-highlight-color-down, var(--mod-checkbox-control-color-down, var(--spectrum-checkbox-control-color-down)));
-}
-
-:host(:is(:active, [active])) #input:checked + #box:before {
- border-color: var(--highcontrast-checkbox-highlight-color-down, var(--mod-checkbox-control-selected-color-down, var(--spectrum-checkbox-control-selected-color-down)));
-}
-
-:host(:is(:active, [active])) #label {
- color: var(--highcontrast-checkbox-content-color-down, var(--mod-checkbox-content-color-down, var(--spectrum-checkbox-content-color-down)));
-}
-
-:host([invalid][invalid]) #box:before,
-:host([invalid][invalid]) #input:checked + #box:before {
- border-color: var(--highcontrast-checkbox-color-default, var(--mod-checkbox-invalid-color-default, var(--spectrum-checkbox-invalid-color-default)));
-}
-
-:host([invalid][invalid]) #input:focus-visible + #box:before,
-:host([invalid][invalid][indeterminate]) #input:focus-visible + #box:before {
- border-color: var(--highcontrast-checkbox-color-hover, var(--mod-checkbox-invalid-color-hover, var(--spectrum-checkbox-invalid-color-hover)));
-}
-
-:host([readonly]) #input {
- cursor: default;
-}
-
-:host([readonly]) #input:checked:disabled + #box:before,
-:host([readonly]) #input:disabled + #box:before {
- border-color: var(--highcontrast-checkbox-color-default, var(--mod-checkbox-control-selected-color-default, var(--spectrum-checkbox-control-selected-color-default)));
- background-color: var(--highcontrast-checkbox-background-color-default, var(--mod-checkbox-checkmark-color, var(--spectrum-checkbox-checkmark-color)));
-}
-
-:host([readonly]) #input:checked:disabled ~ #label,
-:host([readonly]) #input:disabled ~ #label {
- color: var(--highcontrast-checkbox-color-default, var(--mod-checkbox-content-color-default, var(--spectrum-checkbox-content-color-default)));
-}
-
-:host([indeterminate]) #box:before,
-:host([indeterminate]) #input:checked + #box:before {
- border-color: var(--highcontrast-checkbox-highlight-color-default, var(--mod-checkbox-control-selected-color-default, var(--spectrum-checkbox-control-selected-color-default)));
- border-width: var(--mod-checkbox-selected-border-width, var(--spectrum-checkbox-selected-border-width));
-}
-
-:host([indeterminate]) #box #checkmark,
-:host([indeterminate]) #input:checked + #box #checkmark {
- display: none;
-}
-
-:host([indeterminate]) #box #partialCheckmark,
-:host([indeterminate]) #input:checked + #box #partialCheckmark {
- opacity: 1;
- display: block;
- transform: scale(1);
-}
-
-:host([indeterminate]) #input:focus-visible + #box:before {
- border-color: var(--highcontrast-checkbox-highlight-color-focus, var(--mod-checkbox-control-selected-color-focus, var(--spectrum-checkbox-control-selected-color-focus)));
-}
-
-:host([invalid][invalid][indeterminate]) #box:before,
-:host([invalid][invalid][indeterminate]) #input:checked + #box:before {
- border-color: var(--highcontrast-checkbox-color-default, var(--mod-checkbox-invalid-color-default, var(--spectrum-checkbox-invalid-color-default)));
- border-width: var(--mod-checkbox-selected-border-width, var(--spectrum-checkbox-selected-border-width));
-}
-
-:host([emphasized]) #input:checked + #box:before,
-:host([emphasized][indeterminate]) #box:before,
-:host([emphasized][indeterminate]) #input:checked + #box:before {
- border-color: var(--highcontrast-checkbox-highlight-color-default, var(--mod-checkbox-emphasized-color-default, var(--spectrum-checkbox-emphasized-color-default)));
-}
-
-:host([emphasized]) #input:focus-visible:checked + #box:before,
-:host([emphasized][indeterminate]) #input:focus-visible + #box:before {
- border-color: var(--highcontrast-checkbox-highlight-color-focus, var(--mod-checkbox-emphasized-color-focus, var(--spectrum-checkbox-emphasized-color-focus)));
-}
-
-:host([emphasized][invalid][invalid]) #input:focus-visible:checked + #box:before {
- border-color: var(--highcontrast-checkbox-color-default, var(--mod-checkbox-invalid-color-focus, var(--spectrum-checkbox-invalid-color-focus)));
-}
-
-@media (hover: hover) {
- :host(:hover) #box:before {
- border-color: var(--highcontrast-checkbox-highlight-color-hover, var(--mod-checkbox-control-color-hover, var(--spectrum-checkbox-control-color-hover)));
- }
-
- :host(:hover) #input:checked + #box:before {
- border-color: var(--highcontrast-checkbox-highlight-color-hover, var(--mod-checkbox-control-selected-color-hover, var(--spectrum-checkbox-control-selected-color-hover)));
- }
-
- :host(:hover) #label {
- color: var(--highcontrast-checkbox-content-color-hover, var(--mod-checkbox-content-color-hover, var(--spectrum-checkbox-content-color-hover)));
- }
-
- :host([invalid][invalid]:hover) #box:before,
- :host([invalid][invalid]:hover) #input:checked + #box:before {
- border-color: var(--highcontrast-checkbox-color-hover, var(--mod-checkbox-invalid-color-hover, var(--spectrum-checkbox-invalid-color-hover)));
- }
-
- :host([indeterminate]:hover) #box:before,
- :host([indeterminate]:hover) #input:checked + #box:before {
- border-color: var(--highcontrast-checkbox-highlight-color-hover, var(--mod-checkbox-control-selected-color-hover, var(--spectrum-checkbox-control-selected-color-hover)));
- }
-
- :host([invalid][invalid][indeterminate]:hover) #box:before,
- :host([invalid][invalid][indeterminate]:hover) #input:checked + #box:before {
- border-color: var(--highcontrast-checkbox-color-default, var(--mod-checkbox-invalid-color-hover, var(--spectrum-checkbox-invalid-color-hover)));
- }
-
- :host([invalid][invalid][indeterminate]:hover) #label {
- color: var(--highcontrast-checkbox-content-color-hover, var(--mod-checkbox-content-color-hover, var(--spectrum-checkbox-content-color-hover)));
- }
-
- :host([emphasized][indeterminate]:hover) #box:before,
- :host([emphasized][indeterminate]:hover) #input:checked + #box:before,
- :host([emphasized]:hover) #input:checked + #box:before {
- border-color: var(--highcontrast-checkbox-color-hover, var(--mod-checkbox-emphasized-color-hover, var(--spectrum-checkbox-emphasized-color-hover)));
- }
-
- :host([emphasized][invalid][invalid][indeterminate]:hover) #box:before,
- :host([emphasized][invalid][invalid][indeterminate]:hover) #input:checked + #box:before,
- :host([emphasized][invalid][invalid]:hover) #input:checked + #box:before {
- border-color: var(--highcontrast-checkbox-color-hover, var(--mod-checkbox-invalid-color-hover, var(--spectrum-checkbox-invalid-color-hover)));
- }
-
- :host([emphasized][indeterminate]:hover) #box:before,
- :host([emphasized][indeterminate]:hover) #input:checked + #box:before,
- :host([emphasized]:hover) #input:checked + #box:before {
- border-color: var(--highcontrast-checkbox-highlight-color-hover, var(--mod-checkbox-emphasized-color-hover, var(--spectrum-checkbox-emphasized-color-hover)));
- }
-}
-
-:host([emphasized][indeterminate]:is(:active, [active])) #box:before,
-:host([emphasized][indeterminate]:is(:active, [active])) #input:checked + #box:before,
-:host([emphasized]:is(:active, [active])) #input:checked + #box:before {
- border-color: var(--highcontrast-checkbox-highlight-color-default, var(--mod-checkbox-emphasized-color-down, var(--spectrum-checkbox-emphasized-color-down)));
-}
-
-:host([emphasized][invalid][invalid]:is(:active, [active])) #box:before,
-:host([emphasized][invalid][invalid]:is(:active, [active])) #input:checked + #box:before {
- border-color: var(--highcontrast-checkbox-highlight-color-default, var(--mod-checkbox-control-invalid-color-down, var(--spectrum-checkbox-invalid-color-down)));
-}
-
-:host([emphasized]:focus-visible) #box:before,
-:host([emphasized]:focus-visible) #input:checked + #box:before {
- border-color: var(--highcontrast-checkbox-color-focus, var(--mod-checkbox-control-color-focus, var(--spectrum-checkbox-control-color-focus)));
-}
-
-#label {
- text-align: start;
- font-size: var(--mod-checkbox-font-size, var(--spectrum-checkbox-font-size));
- transition: color var(--mod-checkbox-animation-duration, var(--spectrum-checkbox-animation-duration)) ease-in-out;
- line-height: var(--mod-checkbox-line-height, var(--spectrum-checkbox-line-height));
- margin-block-start: var(--mod-checkbox-top-to-text, var(--spectrum-checkbox-top-to-text));
- margin-inline-start: var(--mod-checkbox-text-to-control, var(--spectrum-checkbox-text-to-control));
-}
-
-#label:lang(ja),
-#label:lang(ko),
-#label:lang(zh) {
- line-height: var(--mod-checkbox-line-height-cjk, var(--spectrum-checkbox-line-height-cjk));
-}
-
-#input {
- color: var(--mod-checkbox-control-color-default, var(--spectrum-checkbox-control-color-default));
- box-sizing: border-box;
- inline-size: 100%;
- block-size: 100%;
- opacity: 0;
- z-index: 1;
- cursor: pointer;
- margin: 0;
- padding: 0;
- font-family: inherit;
- font-size: 100%;
- line-height: 1.15;
- position: absolute;
- overflow: visible;
-}
-
-#input:disabled {
- cursor: default;
-}
-
-#input:checked + #box:before {
- border-color: var(--highcontrast-checkbox-highlight-color-default, var(--mod-checkbox-control-selected-color-default, var(--spectrum-checkbox-control-selected-color-default)));
- background-color: var(--mod-checkbox-checkmark-color, var(--spectrum-checkbox-checkmark-color));
- border-width: var(--mod-checkbox-selected-border-width, var(--spectrum-checkbox-selected-border-width));
-}
-
-#input:checked + #box #checkmark {
- opacity: 1;
- transform: scale(1);
-}
-
-#input:focus-visible + #box:before {
- border-color: var(--highcontrast-checkbox-color-focus, var(--mod-checkbox-control-color-focus, var(--spectrum-checkbox-control-color-focus)));
-}
-
-#input:focus-visible + #box:after {
- forced-color-adjust: none;
- box-shadow: 0 0 0 var(--mod-checkbox-focus-indicator-thinkness, var(--spectrum-checkbox-focus-indicator-thickness)) var(--highcontrast-checkbox-focus-indicator-color, var(--mod-checkbox-focus-indicator-color, var(--spectrum-checkbox-focus-indicator-color)));
- margin: calc(var(--mod-checkbox-focus-indicator-gap, var(--spectrum-checkbox-focus-indicator-gap)) * -1);
-}
-
-#input:focus-visible + #label {
- color: var(--highcontrast-checkbox-content-color-focus, var(--mod-checkbox-content-color-focus, var(--spectrum-checkbox-content-color-focus)));
-}
-
-#input:focus-visible:checked + #box:before {
- border-color: var(--highcontrast-checkbox-highlight-color-focus, var(--mod-checkbox-control-selected-color-focus, var(--spectrum-checkbox-control-selected-color-focus)));
-}
-
-#box {
- --spectrum-checkbox-spacing: calc(var(--mod-checkbox-height, var(--spectrum-checkbox-height)) - var(--mod-checkbox-control-size, var(--spectrum-checkbox-control-size)));
- margin: calc(var(--mod-checkbox-spacing, var(--spectrum-checkbox-spacing)) / 2) 0;
- flex-grow: 0;
- flex-shrink: 0;
- justify-content: center;
- align-items: center;
- display: flex;
- position: relative;
-}
-
-#box,
-#box:before {
- box-sizing: border-box;
- inline-size: var(--mod-checkbox-control-size, var(--spectrum-checkbox-control-size));
- block-size: var(--mod-checkbox-control-size, var(--spectrum-checkbox-control-size));
-}
-
-#box:before {
- forced-color-adjust: none;
- border-color: var(--highcontrast-checkbox-color-default, var(--mod-checkbox-control-color-default, var(--spectrum-checkbox-control-color-default)));
- z-index: 0;
- content: "";
- border-radius: var(--mod-checkbox-control-corner-radius, var(--spectrum-checkbox-control-corner-radius));
- border-width: var(--mod-checkbox-border-width, var(--spectrum-checkbox-border-width));
- transition:
- border var(--mod-checkbox-animation-duration, var(--spectrum-checkbox-animation-duration)) ease-in-out,
- box-shadow var(--mod-checkbox-animation-duration, var(--spectrum-checkbox-animation-duration)) ease-in-out;
- border-style: solid;
- display: block;
- position: absolute;
-}
-
-#box:after {
- border-radius: calc(var(--mod-checkbox-control-corner-radius, var(--spectrum-checkbox-control-corner-radius)) + var(--mod-checkbox-focus-indicator-gap, var(--spectrum-checkbox-focus-indicator-gap)));
- content: "";
- margin: var(--mod-checkbox-focus-indicator-gap, var(--spectrum-checkbox-focus-indicator-gap));
- transition:
- box-shadow var(--mod-checkbox-animation-duration, var(--spectrum-checkbox-animation-duration)) ease-out,
- margin var(--mod-checkbox-animation-duration, var(--spectrum-checkbox-animation-duration)) ease-out;
- display: block;
- position: absolute;
- inset-block: 0;
- inset-inline: 0;
- transform: translate(0);
-}
-
-#checkmark,
-#partialCheckmark {
- color: var(--highcontrast-checkbox-background-color-default, var(--mod-checkbox-checkmark-color, var(--spectrum-checkbox-checkmark-color)));
- opacity: 0;
- transition:
- opacity var(--mod-checkbox-animation-duration, var(--spectrum-checkbox-animation-duration)) ease-in-out,
- transform var(--mod-checkbox-animation-duration, var(--spectrum-checkbox-animation-duration)) ease-in-out;
- transform: scale(0);
-}
-
-#partialCheckmark {
- display: none;
-}
-
-#input:checked:disabled + #box:before,
-#input:disabled + #box:before {
- border-color: var(--highcontrast-checkbox-disabled-color-default, var(--mod-checkbox-control-color-disabled, var(--spectrum-checkbox-control-color-disabled)));
- background-color: var(--highcontrast-checkbox-background-color-default, var(--mod-checkbox-checkmark-color, var(--spectrum-checkbox-checkmark-color)));
-}
-
-#input:checked:disabled ~ #label,
-#input:disabled ~ #label {
- forced-color-adjust: none;
- color: var(--highcontrast-checkbox-disabled-color-default, var(--mod-checkbox-content-color-disabled, var(--spectrum-checkbox-content-color-disabled)));
-}
-
-@media (forced-colors: active) {
- #input:focus-visible + #box {
- forced-color-adjust: none;
- outline-color: var(--highcontrast-checkbox-focus-indicator-color, var(--mod-checkbox-focus-indicator-color, var(--spectrum-checkbox-focus-indicator-color)));
- outline-offset: var(--mod-checkbox-focus-indicator-gap, var(--spectrum-checkbox-focus-indicator-gap));
- outline-style: auto;
- outline-width: var(--mod-focus-indicator-thickness, var(--spectrum-focus-indicator-thickness));
- }
-
- #input:focus-visible + #box:after {
- box-shadow: 0 0 0 0 var(--highcontrast-checkbox-focus-indicator-color, var(--mod-checkbox-focus-indicator-color, var(--spectrum-checkbox-focus-indicator-color)));
- }
-
- :host {
- --highcontrast-checkbox-content-color-default: CanvasText;
- --highcontrast-checkbox-content-color-hover: CanvasText;
- --highcontrast-checkbox-content-color-down: CanvasText;
- --highcontrast-checkbox-content-color-focus: CanvasText;
- --highcontrast-checkbox-background-color-default: Canvas;
- --highcontrast-checkbox-color-default: ButtonText;
- --highcontrast-checkbox-color-hover: ButtonText;
- --highcontrast-checkbox-color-focus: Highlight;
- --highcontrast-checkbox-highlight-color-default: Highlight;
- --highcontrast-checkbox-highlight-color-hover: Highlight;
- --highcontrast-checkbox-highlight-color-down: Highlight;
- --highcontrast-checkbox-highlight-color-focus: Highlight;
- --highcontrast-checkbox-disabled-color-default: GrayText;
- --highcontrast-checkbox-focus-indicator-color: CanvasText;
- }
-}
diff --git a/packages/clear-button/package.json b/packages/clear-button/package.json
index f32986661fb..0fa0ec22973 100644
--- a/packages/clear-button/package.json
+++ b/packages/clear-button/package.json
@@ -22,7 +22,6 @@
"exports": {
".": "./src/clear-button.css.js",
"./package.json": "./package.json",
- "./src/clear-button-overrides.css.js": "./src/clear-button-overrides.css.js",
"./src/clear-button.css.js": "./src/clear-button.css.js"
},
"scripts": {
diff --git a/packages/clear-button/src/clear-button-overrides.css b/packages/clear-button/src/clear-button-overrides.css
deleted file mode 100644
index 13189584aaa..00000000000
--- a/packages/clear-button/src/clear-button-overrides.css
+++ /dev/null
@@ -1,66 +0,0 @@
-/**
- * Copyright 2025 Adobe. All rights reserved.
- * This file is licensed to you under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License. You may obtain a copy
- * of the License at http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under
- * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
- * OF ANY KIND, either express or implied. See the License for the specific language
- * governing permissions and limitations under the License.
- */
-
-:host {
- --spectrum-clear-button-background-color: var(--system-clear-button-background-color);
- --spectrum-clear-button-background-color-hover: var(--system-clear-button-background-color-hover);
- --spectrum-clear-button-background-color-down: var(--system-clear-button-background-color-down);
- --spectrum-clear-button-background-color-key-focus: var(--system-clear-button-background-color-key-focus);
- --spectrum-clear-button-height: var(--system-clear-button-height);
- --spectrum-clear-button-width: var(--system-clear-button-width);
- --spectrum-clear-button-padding: var(--system-clear-button-padding);
- --spectrum-clear-button-icon-color: var(--system-clear-button-icon-color);
- --spectrum-clear-button-icon-color-hover: var(--system-clear-button-icon-color-hover);
- --spectrum-clear-button-icon-color-down: var(--system-clear-button-icon-color-down);
- --spectrum-clear-button-icon-color-key-focus: var(--system-clear-button-icon-color-key-focus);
-}
-
-:host([size="s"]) {
- --spectrum-clear-button-height: var(--system-clear-button-size-s-height);
- --spectrum-clear-button-width: var(--system-clear-button-size-s-width);
-}
-
-:host([size="l"]) {
- --spectrum-clear-button-height: var(--system-clear-button-size-l-height);
- --spectrum-clear-button-width: var(--system-clear-button-size-l-width);
-}
-
-:host([size="xl"]) {
- --spectrum-clear-button-height: var(--system-clear-button-size-xl-height);
- --spectrum-clear-button-width: var(--system-clear-button-size-xl-width);
-}
-
-:host .spectrum-ClearButton--quiet {
- --spectrum-clear-button-background-color: var(--system-clear-button-quiet-background-color);
- --spectrum-clear-button-background-color-hover: var(--system-clear-button-quiet-background-color-hover);
- --spectrum-clear-button-background-color-down: var(--system-clear-button-quiet-background-color-down);
- --spectrum-clear-button-background-color-key-focus: var(--system-clear-button-quiet-background-color-key-focus);
-}
-
-:host([variant="overBackground"]) {
- --spectrum-clear-button-icon-color: var(--system-clear-button-over-background-icon-color);
- --spectrum-clear-button-icon-color-hover: var(--system-clear-button-over-background-icon-color-hover);
- --spectrum-clear-button-icon-color-down: var(--system-clear-button-over-background-icon-color-down);
- --spectrum-clear-button-icon-color-key-focus: var(--system-clear-button-over-background-icon-color-key-focus);
- --spectrum-clear-button-background-color: var(--system-clear-button-over-background-background-color);
- --spectrum-clear-button-background-color-hover: var(--system-clear-button-over-background-background-color-hover);
- --spectrum-clear-button-background-color-down: var(--system-clear-button-over-background-background-color-down);
- --spectrum-clear-button-background-color-key-focus: var(--system-clear-button-over-background-background-color-key-focus);
-}
-
-:host([disabled]),
-:host([disabled]) {
- --spectrum-clear-button-icon-color: var(--system-clear-button-disabled-icon-color);
- --spectrum-clear-button-icon-color-hover: var(--system-clear-button-disabled-icon-color-hover);
- --spectrum-clear-button-icon-color-down: var(--system-clear-button-disabled-icon-color-down);
- --spectrum-clear-button-background-color: var(--system-clear-button-disabled-background-color);
-}
diff --git a/packages/clear-button/src/clear-button.css b/packages/clear-button/src/clear-button.css
index 53c4706cea9..33c6edc5b63 100644
--- a/packages/clear-button/src/clear-button.css
+++ b/packages/clear-button/src/clear-button.css
@@ -10,9 +10,155 @@
* governing permissions and limitations under the License.
*/
-@import url("./spectrum-clear-button.css");
-@import url("./clear-button-overrides.css");
+:host {
+ --spectrum-clear-button-height: var(--spectrum-component-height-100);
+ --spectrum-clear-button-width: var(--spectrum-component-height-100);
+ --spectrum-clear-button-padding: var(--spectrum-in-field-button-edge-to-fill);
+ --spectrum-clear-button-icon-color: var(--spectrum-neutral-content-color-default);
+ --spectrum-clear-button-icon-color-hover: var(--spectrum-neutral-content-color-hover);
+ --spectrum-clear-button-icon-color-down: var(--spectrum-neutral-content-color-down);
+ --spectrum-clear-button-icon-color-key-focus: var(--spectrum-neutral-content-color-key-focus);
+ --spectrum-clear-button-background-color: transparent;
+ --spectrum-clear-button-background-color-hover: transparent;
+ --spectrum-clear-button-background-color-down: transparent;
+ --spectrum-clear-button-background-color-key-focus: transparent;
+}
+
+:host([size="s"]) {
+ --spectrum-clear-button-height: var(--spectrum-component-height-75);
+ --spectrum-clear-button-width: var(--spectrum-component-height-75);
+}
+
+:host([size="l"]) {
+ --spectrum-clear-button-height: var(--spectrum-component-height-200);
+ --spectrum-clear-button-width: var(--spectrum-component-height-200);
+}
+
+:host([size="xl"]) {
+ --spectrum-clear-button-height: var(--spectrum-component-height-300);
+ --spectrum-clear-button-width: var(--spectrum-component-height-300);
+}
+
+:host([quiet]) {
+ --spectrum-clear-button-background-color: transparent;
+ --spectrum-clear-button-background-color-hover: transparent;
+ --spectrum-clear-button-background-color-down: transparent;
+ --spectrum-clear-button-background-color-key-focus: transparent;
+}
+
+:host([static-color="white"]) {
+ --spectrum-clear-button-background-color-hover: var(--spectrum-transparent-white-400);
+ --spectrum-clear-button-background-color-down: var(--spectrum-transparent-white-500);
+ --spectrum-clear-button-background-color-key-focus: var(--spectrum-transparent-white-400);
+ --spectrum-clear-button-icon-color: var(--spectrum-white);
+ --spectrum-clear-button-icon-color-hover: var(--spectrum-white);
+ --spectrum-clear-button-icon-color-down: var(--spectrum-white);
+ --spectrum-clear-button-icon-color-key-focus: var(--spectrum-white);
+ --spectrum-clear-button-icon-color-disabled: var(--spectrum-disabled-static-white-content-color);
+ --spectrum-clear-button-background-color: transparent;
+}
+
+:host([disabled]),
+:host(:disabled) {
+ --spectrum-clear-button-icon-color: var(--mod-clear-button-icon-color-disabled, var(--spectrum-disabled-content-color));
+ --spectrum-clear-button-icon-color-hover: var(--spectrum-disabled-content-color);
+ --spectrum-clear-button-icon-color-down: var(--spectrum-disabled-content-color);
+ --spectrum-clear-button-background-color: var(--mod-clear-button-background-color-disabled, transparent);
+}
:host {
box-sizing: border-box;
+ block-size: var(--mod-clear-button-height, var(--spectrum-clear-button-height));
+ inline-size: var(--mod-clear-button-width, var(--spectrum-clear-button-width));
+ border-radius: 100%;
+ background-color: var(--mod-clear-button-background-color, transparent);
+ margin: 0;
+ padding: var(--mod-clear-button-padding, var(--spectrum-clear-button-padding));
+ border: none;
+ color: var(--mod-clear-button-icon-color, var(--spectrum-clear-button-icon-color));
+}
+
+:host(:not([disabled])),
+:host(:not(:disabled)) {
+ cursor: pointer;
+}
+
+:host(:not([disabled]):hover),
+:host(:not(:disabled):hover) {
+ color: var(--mod-clear-button-icon-color-hover, var(--spectrum-clear-button-icon-color-hover));
+}
+
+:host(:not([disabled]):hover) .fill,
+:host(:not(:disabled):hover) .fill {
+ background-color: var(--mod-clear-button-background-color-hover, var(--spectrum-clear-button-background-color-hover));
+}
+
+.icon {
+ margin-block: 0;
+ margin-inline: auto;
+ color: inherit;
+}
+
+.fill {
+ background-color: var(--mod-clear-button-background-color, var(--spectrum-clear-button-background-color));
+ inline-size: 100%;
+ block-size: 100%;
+ border-radius: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+@media (hover: hover) {
+ :host(:not([disabled]):hover),
+ :host(:not(:disabled):hover) {
+ color: var(--mod-clear-button-icon-color-hover, var(--spectrum-clear-button-icon-color-hover));
+ }
+
+ :host(:not([disabled]):hover) .fill,
+ :host(:not(:disabled):hover) .fill {
+ background-color: var(--mod-clear-button-background-color-hover, var(--spectrum-clear-button-background-color-hover));
+ }
+}
+
+:host(:not([disabled]):active),
+:host(:not(:disabled):active) {
+ color: var(--mod-clear-button-icon-color-down, var(--spectrum-clear-button-icon-color-down));
+}
+
+:host(:not([disabled]):active) .fill,
+:host(:not(:disabled):active) .fill {
+ background-color: var(--mod-clear-button-background-color-down, var(--spectrum-clear-button-background-color-down));
+}
+
+:host(:not([disabled]):focus-visible),
+:host(:not([disabled]):focus-within),
+:host(:not(:disabled):focus-visible),
+:host(:not(:disabled):focus-within) {
+ color: var(--mod-clear-button-icon-color-key-focus, var(--spectrum-clear-button-icon-color-key-focus));
+}
+
+:host(:not([disabled]):focus-visible) .fill,
+:host(:not([disabled]):focus-within) .fill,
+:host(:not(:disabled):focus-visible) .fill,
+:host(:not(:disabled):focus-within) .fill {
+ background-color: var(--mod-clear-button-background-color-key-focus, var(--spectrum-clear-button-background-color-key-focus));
+}
+
+:host([static-color="white"]:focus-visible) {
+ outline: none;
+}
+
+@media (forced-colors: active) {
+ :host(:not([disabled]):hover),
+ :host(:not(:disabled):hover) {
+ color: Highlight;
+ }
+}
+
+@media (forced-colors: active) and (hover: hover) {
+ :host(:not([disabled]):hover),
+ :host(:not(:disabled):hover) {
+ color: Highlight;
+ }
}
diff --git a/packages/clear-button/src/spectrum-clear-button.css b/packages/clear-button/src/spectrum-clear-button.css
deleted file mode 100644
index 912e76ccc78..00000000000
--- a/packages/clear-button/src/spectrum-clear-button.css
+++ /dev/null
@@ -1,87 +0,0 @@
-/**
- * Copyright 2025 Adobe. All rights reserved.
- * This file is licensed to you under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License. You may obtain a copy
- * of the License at http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under
- * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
- * OF ANY KIND, either express or implied. See the License for the specific language
- * governing permissions and limitations under the License.
- */
-
-:host {
- block-size: var(--mod-clear-button-height, var(--spectrum-clear-button-height));
- inline-size: var(--mod-clear-button-width, var(--spectrum-clear-button-width));
- cursor: pointer;
- background-color: initial;
- background-color: var(--mod-clear-button-background-color, transparent);
- padding: var(--mod-clear-button-padding, var(--spectrum-clear-button-padding));
- color: var(--mod-clear-button-icon-color, var(--spectrum-clear-button-icon-color));
- border: none;
- border-radius: 100%;
- margin: 0;
-}
-
-.icon {
- margin-block: 0;
- margin-inline: auto;
-}
-
-@media (hover: hover) {
- :host(:hover) {
- color: var(--highcontrast-clear-button-icon-color-hover, var(--mod-clear-button-icon-color-hover, var(--spectrum-clear-button-icon-color-hover)));
- }
-
- :host(:hover) .fill {
- background-color: var(--mod-clear-button-background-color-hover, var(--spectrum-clear-button-background-color-hover));
- }
-}
-
-:host(:is(:active, [active])) {
- color: var(--mod-clear-button-icon-color-down, var(--spectrum-clear-button-icon-color-down));
-}
-
-:host(:is(:active, [active])) .fill {
- background-color: var(--mod-clear-button-background-color-down, var(--spectrum-clear-button-background-color-down));
-}
-
-:host([focus-within]) .js-focus-within,
-:host(:focus-visible),
-:host:focus-within,
-:host([focus-within]) .js-focus-within {
- color: var(--mod-clear-button-icon-color-key-focus, var(--spectrum-clear-button-icon-color-key-focus));
-}
-
-:host([focus-within]) .js-focus-within .fill,
-:host(:focus-visible) .fill,
-:host:focus-within .fill,
-:host([focus-within]) .js-focus-within .fill {
- background-color: var(--mod-clear-button-background-color-key-focus, var(--spectrum-clear-button-background-color-key-focus));
-}
-
-:host([disabled]),
-:host([disabled]) {
- --spectrum-clear-button-icon-color: var(--mod-clear-button-icon-color-disabled, var(--spectrum-disabled-content-color));
- --spectrum-clear-button-background-color: var(--mod-clear-button-background-color-disabled, transparent);
-}
-
-.fill {
- background-color: var(--mod-clear-button-background-color, var(--spectrum-clear-button-background-color));
- inline-size: 100%;
- block-size: 100%;
- border-radius: 100%;
- justify-content: center;
- align-items: center;
- display: flex;
-}
-
-:host([variant="overBackground"]:focus-visible) {
- outline: none;
-}
-
-@media (forced-colors: active) {
- :host:not(:disabled) {
- --highcontrast-clear-button-icon-color-hover: Highlight;
- }
-}
diff --git a/packages/close-button/package.json b/packages/close-button/package.json
index e2f75ae7792..48ba154988d 100644
--- a/packages/close-button/package.json
+++ b/packages/close-button/package.json
@@ -22,7 +22,6 @@
"exports": {
".": "./src/close-button.css.js",
"./package.json": "./package.json",
- "./src/close-button-overrides.css.js": "./src/close-button-overrides.css.js",
"./src/close-button.css.js": "./src/close-button.css.js"
},
"scripts": {
diff --git a/packages/close-button/src/close-button-overrides.css b/packages/close-button/src/close-button-overrides.css
deleted file mode 100644
index 9b023fa4f22..00000000000
--- a/packages/close-button/src/close-button-overrides.css
+++ /dev/null
@@ -1,30 +0,0 @@
-/**
- * Copyright 2025 Adobe. All rights reserved.
- * This file is licensed to you under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License. You may obtain a copy
- * of the License at http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under
- * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
- * OF ANY KIND, either express or implied. See the License for the specific language
- * governing permissions and limitations under the License.
- */
-
-:host {
- --spectrum-closebutton-background-color-default: var(--system-close-button-background-color-default);
- --spectrum-closebutton-background-color-hover: var(--system-close-button-background-color-hover);
- --spectrum-closebutton-background-color-down: var(--system-close-button-background-color-down);
- --spectrum-closebutton-background-color-focus: var(--system-close-button-background-color-focus);
-}
-
-:host([static-color="white"]) {
- --spectrum-closebutton-static-background-color-hover: var(--system-close-button-static-white-static-background-color-hover);
- --spectrum-closebutton-static-background-color-down: var(--system-close-button-static-white-static-background-color-down);
- --spectrum-closebutton-static-background-color-focus: var(--system-close-button-static-white-static-background-color-focus);
-}
-
-:host([static-color="black"]) {
- --spectrum-closebutton-static-background-color-hover: var(--system-close-button-static-black-static-background-color-hover);
- --spectrum-closebutton-static-background-color-down: var(--system-close-button-static-black-static-background-color-down);
- --spectrum-closebutton-static-background-color-focus: var(--system-close-button-static-black-static-background-color-focus);
-}
diff --git a/packages/close-button/src/close-button.css b/packages/close-button/src/close-button.css
index d14e4515466..1144747fc03 100644
--- a/packages/close-button/src/close-button.css
+++ b/packages/close-button/src/close-button.css
@@ -10,5 +10,321 @@
* governing permissions and limitations under the License.
*/
-@import url("./spectrum-close-button.css");
-@import url("./close-button-overrides.css");
+/* Base variables */
+:host {
+ cursor: pointer;
+ user-select: none;
+ box-sizing: border-box;
+ font-family: var(--spectrum-sans-font-family-stack);
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ line-height: var(--spectrum-line-height-100);
+ text-transform: none;
+ vertical-align: top;
+ appearance: auto;
+ transition:
+ background var(--spectrum-animation-duration-100) ease-out,
+ border-color var(--spectrum-animation-duration-100) ease-out,
+ color var(--spectrum-animation-duration-100) ease-out,
+ box-shadow var(--spectrum-animation-duration-100) ease-out;
+ border-style: solid;
+ margin: 0;
+ text-decoration: none;
+ overflow: visible;
+}
+
+:host(:focus) {
+ outline: none;
+}
+
+:host([disabled]),
+:host([disabled]) {
+ cursor: default;
+}
+
+:host a {
+ user-select: none;
+ appearance: none;
+}
+
+:host(:focus-visible):after {
+ forced-color-adjust: none;
+ margin: var(--mod-closebutton-focus-indicator-gap, var(--spectrum-closebutton-focus-indicator-gap));
+ transition:
+ opacity var(--mod-closebutton-animation-duration, var(--spectrum-closebutton-animation-duration)) ease-out,
+ margin var(--mod-closebutton-animation-duraction, var(--spectrum-closebutton-animation-duration)) ease-out;
+
+ box-shadow: 0 0 0 var(--mod-closebutton-focus-indicator-thickness, var(--spectrum-closebutton-focus-indicator-thickness)) var(--highcontrast-closebutton-focus-indicator-color, var(--mod-closebutton-focus-indicator-color, var(--spectrum-closebutton-focus-indicator-color)));
+}
+
+:host([static-color="black"]) {
+ --highcontrast-closebutton-static-background-color-default: ButtonFace;
+ --highcontrast-closebutton-icon-color-default: Highlight;
+ --highcontrast-closebutton-icon-color-disabled: GrayText;
+
+ --spectrum-closebutton-static-background-color-default: transparent;
+ --spectrum-closebutton-icon-color-default: var(--spectrum-black);
+ --spectrum-closebutton-icon-color-disabled: var(--spectrum-disabled-static-black-content-color);
+ --spectrum-closebutton-focus-indicator-color: var(--spectrum-static-black-focus-indicator-color);
+
+ --spectrum-closebutton-static-background-color-hover: var(--spectrum-transparent-black-300);
+ --spectrum-closebutton-static-background-color-down: var(--spectrum-transparent-black-400);
+ --spectrum-closebutton-static-background-color-focus: var(--spectrum-transparent-black-300);
+}
+
+:host([static-color="white"]) {
+}
+
+:host {
+ --spectrum-closebutton-icon-color-hover: var(--spectrum-neutral-content-color-hover);
+ --spectrum-closebutton-icon-color-down: var(--spectrum-neutral-content-color-down);
+ --spectrum-closebutton-icon-color-focus: var(--spectrum-neutral-content-color-key-focus);
+ --spectrum-closebutton-focus-indicator-thickness: var(--spectrum-focus-indicator-thickness);
+ --spectrum-closebutton-focus-indicator-gap: var(--spectrum-focus-indicator-gap);
+ --spectrum-closebutton-animation-duration: var(--spectrum-animation-duration-100);
+
+ --spectrum-closebutton-size: var(--spectrum-component-height-100);
+ --spectrum-closebutton-border-radius: var(--spectrum-component-height-100);
+ block-size: var(--spectrum-closebutton-size);
+ inline-size: var(--spectrum-closebutton-size);
+ color: inherit;
+ border-radius: var(--spectrum-closebutton-border-radius);
+ transition: border-color var(--mod-closebutton-animation-duration, var(--spectrum-closebutton-animation-duration)) ease-in-out;
+ margin-inline: 0;
+ margin-block-start: 0;
+ justify-content: center;
+ align-items: center;
+ align-self: flex-start;
+ border-width: 0;
+ border-color: #0000;
+ flex-direction: row;
+ padding: 0;
+ display: inline-flex;
+ position: relative;
+}
+
+:host([size="s"]) {
+}
+
+:host,
+:host {
+}
+
+:host([size="l"]) {
+}
+
+:host([size="xl"]) {
+}
+
+:host:after {
+ pointer-events: none;
+ content: "";
+ margin: calc(var(--mod-closebutton-focus-indicator-gap, var(--spectrum-closebutton-focus-indicator-gap)) * -1);
+ border-radius: calc(var(--mod-closebutton-size, var(--spectrum-closebutton-size)) + var(--mod-closebutton-focus-indicator-gap, var(--spectrum-closebutton-focus-indicator-gap)));
+ transition: box-shadow var(--mod-closebutton-animation-duration, var(--spectrum-closebutton-animation-duration)) ease-in-out;
+ position: absolute;
+ inset-block: 0;
+ inset-inline: 0;
+}
+
+:host(:focus-visible) {
+ box-shadow: none;
+ outline: none;
+}
+
+:host(:not([disabled])) {
+ background-color: var(--highcontrast-closebutton-background-color-default, var(--mod-closebutton-background-color-default, var(--spectrum-closebutton-background-color-default)));
+}
+
+:host(:not([disabled]):is(:active, [active])) {
+ background-color: var(--mod-closebutton-background-color-down, var(--spectrum-closebutton-background-color-down));
+}
+
+:host(:not([disabled]):is(:active, [active])) .icon {
+ color: var(--highcontrast-closebutton-icon-color-down, var(--mod-closebutton-icon-color-down, var(--spectrum-closebutton-icon-color-down)));
+}
+
+:host([focused]:not([disabled])),
+:host(:not([disabled]):focus-visible) {
+ background-color: var(--mod-closebutton-background-color-focus, var(--spectrum-closebutton-background-color-focus));
+}
+
+:host([focused]:not([disabled])) .icon,
+:host(:not([disabled]):focus-visible) .icon {
+ color: var(--highcontrast-closebutton-icon-color-focus, var(--mod-closebutton-icon-color-focus, var(--spectrum-closebutton-icon-color-focus)));
+}
+
+:host(:not([disabled])) .icon {
+ color: var(--mod-closebutton-icon-color-default, var(--spectrum-closebutton-icon-color-default));
+}
+
+:host([focused]:not([disabled])) .icon,
+:host(:not([disabled]):focus) .icon {
+ color: var(--highcontrast-closebutton-icon-color-focus, var(--mod-closebutton-icon-color-focus, var(--spectrum-closebutton-icon-color-focus)));
+}
+
+:host([disabled]) {
+ background-color: var(--mod-closebutton-background-color-default, var(--spectrum-closebutton-background-color-default));
+}
+
+:host([disabled]) .icon {
+ color: var(--highcontrast-closebutton-icon-color-disabled, var(--mod-closebutton-icon-color-disabled, var(--spectrum-closebutton-icon-color-disabled)));
+}
+
+:host([static-color="black"]:not([disabled])),
+:host([static-color="white"]:not([disabled])) {
+ background-color: var(--highcontrast-closebutton-static-background-color-default, var(--mod-closebutton-static-background-color-default, var(--spectrum-closebutton-static-background-color-default)));
+}
+
+:host(:not([disabled]):hover) .icon {
+ color: var(--highcontrast-closebutton-icon-color-hover, var(--mod-closebutton-icon-color-hover, var(--spectrum-closebutton-icon-color-hover)));
+}
+
+:host([static-color="black"]:not([disabled]):hover),
+:host([static-color="white"]:not([disabled]):hover) {
+ background-color: var(--mod-closebutton-static-background-color-hover, var(--spectrum-closebutton-static-background-color-hover));
+}
+
+:host([static-color="black"]:not([disabled]):hover) .icon,
+:host([static-color="white"]:not([disabled]):hover) .icon {
+ color: var(--highcontrast-closebutton-icon-color-hover, var(--mod-closebutton-icon-color-hover, var(--spectrum-closebutton-icon-color-hover)));
+}
+
+:host([static-color="black"]:not([disabled]):is(:active, [active])),
+:host([static-color="white"]:not([disabled]):is(:active, [active])) {
+ background-color: var(--mod-closebutton-static-background-color-down, var(--spectrum-closebutton-static-background-color-down));
+}
+
+:host([static-color="black"]:not([disabled]):is(:active, [active])) .icon,
+:host([static-color="white"]:not([disabled]):is(:active, [active])) .icon {
+ color: var(--highcontrast-closebutton-icon-color-default, var(--mod-closebutton-icon-color-default, var(--spectrum-closebutton-icon-color-default)));
+}
+
+:host([static-color="black"][focused]:not([disabled])),
+:host([static-color="black"]:not([disabled]):focus-visible),
+:host([static-color="white"][focused]:not([disabled])),
+:host([static-color="white"]:not([disabled]):focus-visible) {
+ background-color: var(--mod-closebutton-static-background-color-focus, var(--spectrum-closebutton-static-background-color-focus));
+}
+
+:host([static-color="black"][focused]:not([disabled])) .icon,
+:host([static-color="black"][focused]:not([disabled])) .icon,
+:host([static-color="black"]:not([disabled]):focus) .icon,
+:host([static-color="black"]:not([disabled]):focus-visible) .icon,
+:host([static-color="white"][focused]:not([disabled])) .icon,
+:host([static-color="white"][focused]:not([disabled])) .icon,
+:host([static-color="white"]:not([disabled]):focus) .icon,
+:host([static-color="white"]:not([disabled]):focus-visible) .icon {
+ color: var(--highcontrast-closebutton-icon-color-default, var(--mod-closebutton-icon-color-default, var(--spectrum-closebutton-icon-color-default)));
+}
+
+:host([static-color="black"]:not([disabled])) .icon,
+:host([static-color="white"]:not([disabled])) .icon {
+ color: var(--mod-closebutton-icon-color-default, var(--spectrum-closebutton-icon-color-default));
+}
+
+:host([static-color="black"][disabled]) .icon,
+:host([static-color="white"][disabled]) .icon {
+ color: var(--mod-closebutton-icon-color-disabled, var(--spectrum-closebutton-icon-color-disabled));
+}
+
+.icon {
+ margin: 0;
+}
+
+/* base variables */
+:host {
+ /* colors */
+ --spectrum-closebutton-background-color-default: var(--spectrum-gray-100);
+ --spectrum-closebutton-background-color-hover: var(--spectrum-gray-200);
+ --spectrum-closebutton-background-color-down: var(--spectrum-gray-300);
+ --spectrum-closebutton-background-color-focus: var(--spectrum-gray-200);
+
+ /* focus indicator */
+
+ /* animation */
+
+ /* base styles */
+ cursor: pointer;
+ user-select: none;
+ box-sizing: border-box;
+ font-family: var(--spectrum-sans-font-family-stack);
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ line-height: var(--spectrum-line-height-100);
+ text-transform: none;
+ vertical-align: top;
+ appearance: auto;
+
+ /* layout */
+ block-size: var(--spectrum-closebutton-size);
+ inline-size: var(--spectrum-closebutton-size);
+ color: inherit;
+ border-radius: var(--spectrum-closebutton-border-radius);
+ margin-inline: 0;
+ margin-block-start: 0;
+ padding: 0;
+ display: inline-flex;
+ position: relative;
+ justify-content: center;
+ align-items: center;
+ align-self: flex-start;
+
+ /* border */
+ border-width: 0;
+ border-style: solid;
+ border-color: transparent;
+
+ /* transitions */
+ transition:
+ background-color var(--mod-closebutton-animation-duration, var(--spectrum-closebutton-animation-duration)) ease-out,
+ border-color var(--mod-button-animation-duration, var(--mod-animation-duration-100, var(--spectrum-animation-duration-100))) ease-out,
+ color var(--mod-button-animation-duration, var(--mod-animation-duration-100, var(--spectrum-animation-duration-100))) ease-out,
+ box-shadow var(--mod-button-animation-duration, var(--mod-animation-duration-100, var(--spectrum-animation-duration-100))) ease-out,
+ border-color var(--mod-closebutton-animation-duration, var(--spectrum-closebutton-animation-duration)) ease-in-out;
+
+ /* other */
+ margin: 0;
+ text-decoration: none;
+ overflow: visible;
+ flex-direction: row;
+ outline: none;
+ background-color: var(--mod-closebutton-background-color, var(--spectrum-closebutton-background-color-default));
+}
+
+/* size variants */
+:host([size="s"]) {
+}
+
+/* static color variants */
+:host([static-color="white"]) {
+}
+
+/* focus styles */
+:host(:focus) {
+ outline: none;
+}
+
+/* states */
+:host(:not([disabled])) {
+ background-color: var(--highcontrast-closebutton-background-color-default, var(--mod-closebutton-background-color-default, var(--spectrum-closebutton-background-color-default)));
+}
+
+/* disabled state */
+:host([disabled]) {
+ cursor: default;
+ background-color: var(--mod-closebutton-background-color-default, var(--spectrum-closebutton-background-color-default));
+}
+
+/* icon styles */
+.icon {
+ block-size: var(--spectrum-closebutton-icon-size);
+ inline-size: var(--spectrum-closebutton-icon-size);
+ overflow: hidden;
+}
+
+/* link styles */
+:host a {
+ user-select: none;
+ appearance: none;
+}
diff --git a/packages/close-button/src/spectrum-close-button.css b/packages/close-button/src/spectrum-close-button.css
deleted file mode 100644
index 9e55dff056a..00000000000
--- a/packages/close-button/src/spectrum-close-button.css
+++ /dev/null
@@ -1,270 +0,0 @@
-/**
- * Copyright 2025 Adobe. All rights reserved.
- * This file is licensed to you under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License. You may obtain a copy
- * of the License at http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under
- * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
- * OF ANY KIND, either express or implied. See the License for the specific language
- * governing permissions and limitations under the License.
- */
-
-:host {
- cursor: pointer;
- -webkit-user-select: none;
- user-select: none;
- box-sizing: border-box;
- font-family: var(--mod-button-font-family, var(--mod-sans-font-family-stack, var(--spectrum-sans-font-family-stack)));
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
- line-height: var(--mod-button-line-height, var(--mod-line-height-100, var(--spectrum-line-height-100)));
- text-transform: none;
- vertical-align: top;
- -webkit-appearance: button;
- transition:
- background var(--mod-button-animation-duration, var(--mod-animation-duration-100, var(--spectrum-animation-duration-100))) ease-out,
- border-color var(--mod-button-animation-duration, var(--mod-animation-duration-100, var(--spectrum-animation-duration-100))) ease-out,
- color var(--mod-button-animation-duration, var(--mod-animation-duration-100, var(--spectrum-animation-duration-100))) ease-out,
- box-shadow var(--mod-button-animation-duration, var(--mod-animation-duration-100, var(--spectrum-animation-duration-100))) ease-out;
- border-style: solid;
- margin: 0;
- -webkit-text-decoration: none;
- text-decoration: none;
- overflow: visible;
-}
-
-:host(:focus) {
- outline: none;
-}
-
-:host([disabled]),
-:host([disabled]) {
- cursor: default;
-}
-
-:host a {
- -webkit-user-select: none;
- user-select: none;
- -webkit-appearance: none;
-}
-
-@media (forced-colors: active) {
- :host {
- --highcontrast-closebutton-icon-color-disabled: GrayText;
- --highcontrast-closebutton-icon-color-down: Highlight;
- --highcontrast-closebutton-icon-color-hover: Highlight;
- --highcontrast-closebutton-icon-color-focus: Highlight;
- --highcontrast-closebutton-background-color-default: ButtonFace;
- --highcontrast-closebutton-focus-indicator-color: ButtonText;
- }
-
- :host(:focus-visible):after {
- forced-color-adjust: none;
- margin: var(--mod-closebutton-focus-indicator-gap, var(--spectrum-closebutton-focus-indicator-gap));
- transition:
- opacity var(--mod-closebutton-animation-duration, var(--spectrum-closebutton-animation-duration)) ease-out,
- margin var(--mod-closebutton-animation-duraction, var(--spectrum-closebutton-animation-duration)) ease-out;
- }
-
- :host([static-color="black"]) {
- --highcontrast-closebutton-static-background-color-default: ButtonFace;
- --highcontrast-closebutton-icon-color-default: Highlight;
- --highcontrast-closebutton-icon-color-disabled: GrayText;
- }
-
- :host([static-color="white"]) {
- --highcontrast-closebutton-static-background-color-default: ButtonFace;
- --highcontrast-closebutton-icon-color-default: Highlight;
- --highcontrast-closebutton-icon-color-disabled: Highlight;
- }
-}
-
-:host {
- --spectrum-closebutton-icon-color-default: var(--spectrum-neutral-content-color-default);
- --spectrum-closebutton-icon-color-hover: var(--spectrum-neutral-content-color-hover);
- --spectrum-closebutton-icon-color-down: var(--spectrum-neutral-content-color-down);
- --spectrum-closebutton-icon-color-focus: var(--spectrum-neutral-content-color-key-focus);
- --spectrum-closebutton-icon-color-disabled: var(--spectrum-disabled-content-color);
- --spectrum-closebutton-focus-indicator-thickness: var(--spectrum-focus-indicator-thickness);
- --spectrum-closebutton-focus-indicator-gap: var(--spectrum-focus-indicator-gap);
- --spectrum-closebutton-focus-indicator-color: var(--spectrum-focus-indicator-color);
- --spectrum-closebutton-animation-duration: var(--spectrum-animation-duration-100);
- block-size: var(--mod-closebutton-height, var(--spectrum-closebutton-size));
- inline-size: var(--mod-closebutton-width, var(--mod-closebutton-height, var(--spectrum-closebutton-size)));
- color: inherit;
- border-radius: var(--mod-closebutton-border-radius, var(--spectrum-closebutton-border-radius));
- transition: border-color var(--mod-closebutton-animation-duration, var(--spectrum-closebutton-animation-duration)) ease-in-out;
- margin-inline: var(--mod-closebutton-margin-inline);
- justify-content: center;
- align-items: center;
- align-self: var(--mod-closebutton-align-self);
- border-width: 0;
- border-color: #0000;
- flex-direction: row;
- margin-block-start: var(--mod-closebutton-margin-top);
- padding: 0;
- display: inline-flex;
- position: relative;
-}
-
-:host([size="s"]) {
- --spectrum-closebutton-size: var(--spectrum-component-height-75);
- --spectrum-closebutton-border-radius: var(--spectrum-component-height-75);
-}
-
-:host,
-:host {
- --spectrum-closebutton-size: var(--spectrum-component-height-100);
- --spectrum-closebutton-border-radius: var(--spectrum-component-height-100);
-}
-
-:host([size="l"]) {
- --spectrum-closebutton-size: var(--spectrum-component-height-200);
- --spectrum-closebutton-border-radius: var(--spectrum-component-height-200);
-}
-
-:host([size="xl"]) {
- --spectrum-closebutton-size: var(--spectrum-component-height-300);
- --spectrum-closebutton-border-radius: var(--spectrum-component-height-300);
-}
-
-:host([static-color="white"]) {
- --spectrum-closebutton-static-background-color-default: transparent;
- --spectrum-closebutton-icon-color-default: var(--spectrum-white);
- --spectrum-closebutton-icon-color-disabled: var(--spectrum-disabled-static-white-content-color);
- --spectrum-closebutton-focus-indicator-color: var(--spectrum-static-white-focus-indicator-color);
-}
-
-:host([static-color="black"]) {
- --spectrum-closebutton-static-background-color-default: transparent;
- --spectrum-closebutton-icon-color-default: var(--spectrum-black);
- --spectrum-closebutton-icon-color-disabled: var(--spectrum-disabled-static-black-content-color);
- --spectrum-closebutton-focus-indicator-color: var(--spectrum-static-black-focus-indicator-color);
-}
-
-:host:after {
- pointer-events: none;
- content: "";
- margin: calc(var(--mod-closebutton-focus-indicator-gap, var(--spectrum-closebutton-focus-indicator-gap)) * -1);
- border-radius: calc(var(--mod-closebutton-size, var(--spectrum-closebutton-size)) + var(--mod-closebutton-focus-indicator-gap, var(--spectrum-closebutton-focus-indicator-gap)));
- transition: box-shadow var(--mod-closebutton-animation-duration, var(--spectrum-closebutton-animation-duration)) ease-in-out;
- position: absolute;
- inset-block: 0;
- inset-inline: 0;
-}
-
-:host(:focus-visible) {
- box-shadow: none;
- outline: none;
-}
-
-:host(:focus-visible):after {
- box-shadow: 0 0 0 var(--mod-closebutton-focus-indicator-thickness, var(--spectrum-closebutton-focus-indicator-thickness)) var(--highcontrast-closebutton-focus-indicator-color, var(--mod-closebutton-focus-indicator-color, var(--spectrum-closebutton-focus-indicator-color)));
-}
-
-:host(:not([disabled])) {
- background-color: var(--highcontrast-closebutton-background-color-default, var(--mod-closebutton-background-color-default, var(--spectrum-closebutton-background-color-default)));
-}
-
-:host(:not([disabled]):is(:active, [active])) {
- background-color: var(--mod-closebutton-background-color-down, var(--spectrum-closebutton-background-color-down));
-}
-
-:host(:not([disabled]):is(:active, [active])) .icon {
- color: var(--highcontrast-closebutton-icon-color-down, var(--mod-closebutton-icon-color-down, var(--spectrum-closebutton-icon-color-down)));
-}
-
-:host([focused]:not([disabled])),
-:host(:not([disabled]):focus-visible) {
- background-color: var(--mod-closebutton-background-color-focus, var(--spectrum-closebutton-background-color-focus));
-}
-
-:host([focused]:not([disabled])) .icon,
-:host(:not([disabled]):focus-visible) .icon {
- color: var(--highcontrast-closebutton-icon-color-focus, var(--mod-closebutton-icon-color-focus, var(--spectrum-closebutton-icon-color-focus)));
-}
-
-:host(:not([disabled])) .icon {
- color: var(--mod-closebutton-icon-color-default, var(--spectrum-closebutton-icon-color-default));
-}
-
-:host([focused]:not([disabled])) .icon,
-:host(:not([disabled]):focus) .icon {
- color: var(--highcontrast-closebutton-icon-color-focus, var(--mod-closebutton-icon-color-focus, var(--spectrum-closebutton-icon-color-focus)));
-}
-
-:host([disabled]) {
- background-color: var(--mod-closebutton-background-color-default, var(--spectrum-closebutton-background-color-default));
-}
-
-:host([disabled]) .icon {
- color: var(--highcontrast-closebutton-icon-color-disabled, var(--mod-closebutton-icon-color-disabled, var(--spectrum-closebutton-icon-color-disabled)));
-}
-
-:host([static-color="black"]:not([disabled])),
-:host([static-color="white"]:not([disabled])) {
- background-color: var(--highcontrast-closebutton-static-background-color-default, var(--mod-closebutton-static-background-color-default, var(--spectrum-closebutton-static-background-color-default)));
-}
-
-@media (hover: hover) {
- :host(:not([disabled]):hover) {
- background-color: var(--mod-closebutton-background-color-hover, var(--spectrum-closebutton-background-color-hover));
- }
-
- :host(:not([disabled]):hover) .icon {
- color: var(--highcontrast-closebutton-icon-color-hover, var(--mod-closebutton-icon-color-hover, var(--spectrum-closebutton-icon-color-hover)));
- }
-
- :host([static-color="black"]:not([disabled]):hover),
- :host([static-color="white"]:not([disabled]):hover) {
- background-color: var(--mod-closebutton-static-background-color-hover, var(--spectrum-closebutton-static-background-color-hover));
- }
-
- :host([static-color="black"]:not([disabled]):hover) .icon,
- :host([static-color="white"]:not([disabled]):hover) .icon {
- color: var(--highcontrast-closebutton-icon-color-default, var(--mod-closebutton-icon-color-default, var(--spectrum-closebutton-icon-color-default)));
- }
-}
-
-:host([static-color="black"]:not([disabled]):is(:active, [active])),
-:host([static-color="white"]:not([disabled]):is(:active, [active])) {
- background-color: var(--mod-closebutton-static-background-color-down, var(--spectrum-closebutton-static-background-color-down));
-}
-
-:host([static-color="black"]:not([disabled]):is(:active, [active])) .icon,
-:host([static-color="white"]:not([disabled]):is(:active, [active])) .icon {
- color: var(--highcontrast-closebutton-icon-color-default, var(--mod-closebutton-icon-color-default, var(--spectrum-closebutton-icon-color-default)));
-}
-
-:host([static-color="black"][focused]:not([disabled])),
-:host([static-color="black"]:not([disabled]):focus-visible),
-:host([static-color="white"][focused]:not([disabled])),
-:host([static-color="white"]:not([disabled]):focus-visible) {
- background-color: var(--mod-closebutton-static-background-color-focus, var(--spectrum-closebutton-static-background-color-focus));
-}
-
-:host([static-color="black"][focused]:not([disabled])) .icon,
-:host([static-color="black"][focused]:not([disabled])) .icon,
-:host([static-color="black"]:not([disabled]):focus) .icon,
-:host([static-color="black"]:not([disabled]):focus-visible) .icon,
-:host([static-color="white"][focused]:not([disabled])) .icon,
-:host([static-color="white"][focused]:not([disabled])) .icon,
-:host([static-color="white"]:not([disabled]):focus) .icon,
-:host([static-color="white"]:not([disabled]):focus-visible) .icon {
- color: var(--highcontrast-closebutton-icon-color-default, var(--mod-closebutton-icon-color-default, var(--spectrum-closebutton-icon-color-default)));
-}
-
-:host([static-color="black"]:not([disabled])) .icon,
-:host([static-color="white"]:not([disabled])) .icon {
- color: var(--mod-closebutton-icon-color-default, var(--spectrum-closebutton-icon-color-default));
-}
-
-:host([static-color="black"][disabled]) .icon,
-:host([static-color="white"][disabled]) .icon {
- color: var(--mod-closebutton-icon-color-disabled, var(--spectrum-closebutton-icon-color-disabled));
-}
-
-.icon {
- margin: 0;
-}
diff --git a/packages/coachmark/package.json b/packages/coachmark/package.json
index f43c6db50ae..b105df3541c 100644
--- a/packages/coachmark/package.json
+++ b/packages/coachmark/package.json
@@ -37,9 +37,7 @@
"development": "./src/CoachmarkItem.dev.js",
"default": "./src/CoachmarkItem.js"
},
- "./src/coach-indicator-overrides.css.js": "./src/coach-indicator-overrides.css.js",
"./src/coach-indicator.css.js": "./src/coach-indicator.css.js",
- "./src/coachmark-overrides.css.js": "./src/coachmark-overrides.css.js",
"./src/coachmark.css.js": "./src/coachmark.css.js",
"./src/index.js": {
"development": "./src/index.dev.js",
@@ -77,13 +75,25 @@
"component",
"css"
],
- "dependencies": {
+ "peerDependencies": {
+ "@spectrum-web-components/asset": ">=1",
+ "@spectrum-web-components/base": ">=1",
+ "@spectrum-web-components/button": ">=1",
+ "@spectrum-web-components/button-group": ">=1",
+ "@spectrum-web-components/icon": ">=1",
+ "@spectrum-web-components/icons-ui": ">=1",
+ "@spectrum-web-components/popover": ">=1",
+ "@spectrum-web-components/reactive-controllers": ">=1",
+ "@spectrum-web-components/shared": ">=1"
+ },
+ "devDependencies": {
"@spectrum-web-components/asset": "1.7.0",
"@spectrum-web-components/base": "1.7.0",
"@spectrum-web-components/button": "1.7.0",
"@spectrum-web-components/button-group": "1.7.0",
"@spectrum-web-components/icon": "1.7.0",
"@spectrum-web-components/icons-ui": "1.7.0",
+ "@spectrum-web-components/popover": "1.7.0",
"@spectrum-web-components/reactive-controllers": "1.7.0",
"@spectrum-web-components/shared": "1.7.0"
},
diff --git a/packages/coachmark/src/Coachmark.ts b/packages/coachmark/src/Coachmark.ts
index 7dffc8516eb..4d07a1a96ea 100644
--- a/packages/coachmark/src/Coachmark.ts
+++ b/packages/coachmark/src/Coachmark.ts
@@ -17,7 +17,10 @@ import {
TemplateResult,
} from '@spectrum-web-components/base';
import { property } from '@spectrum-web-components/base/src/decorators.js';
-import { when } from '@spectrum-web-components/base/src/directives.js';
+import {
+ classMap,
+ when,
+} from '@spectrum-web-components/base/src/directives.js';
import coachmarkStyles from './coachmark.css.js';
import chevronStyles from '@spectrum-web-components/icon/src/spectrum-icon-chevron.css.js';
import '@spectrum-web-components/icons-ui/icons/sp-icon-chevron200.js';
@@ -88,6 +91,12 @@ export class Coachmark extends Popover {
@property({ type: String, attribute: 'secondary-cta' })
secondaryCTA?: string;
+ @property({ type: Boolean, attribute: 'fixed-height', reflect: true })
+ public fixedHeight = false;
+
+ @property({ type: Boolean })
+ public isMobile = false;
+
// render video and images
private renderMedia(): TemplateResult {
const isImage = this.mediaType === MediaType.IMAGE;
@@ -98,7 +107,12 @@ export class Coachmark extends Popover {
}
return html`
-
+
![]()
{
return html`
-