diff --git a/.changeset/great-cows-cheat.md b/.changeset/great-cows-cheat.md
new file mode 100644
index 00000000000..b6c0c8ba1c3
--- /dev/null
+++ b/.changeset/great-cows-cheat.md
@@ -0,0 +1,7 @@
+---
+"@spectrum-css/helptext": major
+---
+
+feat(helptext): s2 migration
+
+Help text now uses Spectrum 2 tokens and specifications. This includes updates to heights and spacing, icons and icon sizes, colors, and fonts.
diff --git a/.changeset/nine-kings-repair.md b/.changeset/nine-kings-repair.md
new file mode 100644
index 00000000000..0714bbb8274
--- /dev/null
+++ b/.changeset/nine-kings-repair.md
@@ -0,0 +1,15 @@
+---
+"@spectrum-css/button": major
+---
+
+#### Spectrum 2 migration
+Button now uses Spectrum 2 tokens and specifications, which includes many color changes to all variants. A few other notable changes:
+- Outline buttons are no longer available in accent and negative options — use the filled variant instead.
+- Medium size is now the default. The class `.spectrum-Button--sizeM` is now unnecessary for this size, and has been removed.
+- The `.spectrum-Button--fill` class is no longer needed and has been removed.
+
+The following `--mod` custom properties have been renamed:
+- `--mod-line-height-100` has been renamed to `--mod-button-line-height`
+- `--mod-sans-font-family-stack` has been renamed to `--mod-button-font-family`
+- `--mod-animation-duration-100` has been renamed to `--mod-button-animation-duration`
+- `--mod-bold-font-weight` has been renamed to `--mod-button-font-weight`
diff --git a/.changeset/perfect-dogs-smash.md b/.changeset/perfect-dogs-smash.md
new file mode 100644
index 00000000000..11a91efdd47
--- /dev/null
+++ b/.changeset/perfect-dogs-smash.md
@@ -0,0 +1,5 @@
+---
+"@spectrum-css/button": patch
+---
+
+chore: run branch through formatter
diff --git a/.changeset/pre.json b/.changeset/pre.json
new file mode 100644
index 00000000000..ff9746a861f
--- /dev/null
+++ b/.changeset/pre.json
@@ -0,0 +1,107 @@
+{
+ "mode": "pre",
+ "tag": "next",
+ "initialVersions": {
+ "@spectrum-tools/gh-action-file-diff": "2.0.5",
+ "@spectrum-css/preview": "8.1.0-next.1",
+ "@spectrum-css/accordion": "4.2.7-next.2",
+ "@spectrum-css/actionbar": "7.2.5-next.2",
+ "@spectrum-css/actionbutton": "5.2.7-next.2",
+ "@spectrum-css/actiongroup": "5.0.0-next.3",
+ "@spectrum-css/actionmenu": "5.1.4-next.2",
+ "@spectrum-css/alertbanner": "1.1.42-next.2",
+ "@spectrum-css/alertdialog": "1.2.5-next.2",
+ "@spectrum-css/asset": "4.0.1-next.2",
+ "@spectrum-css/assetcard": "3.1.5-next.2",
+ "@spectrum-css/assetlist": "5.2.5-next.2",
+ "@spectrum-css/avatar": "6.1.6-next.2",
+ "@spectrum-css/badge": "3.2.6-next.2",
+ "@spectrum-css/breadcrumb": "8.2.6-next.2",
+ "@spectrum-css/button": "14.0.0-next.4",
+ "@spectrum-css/buttongroup": "7.0.0-next.3",
+ "@spectrum-css/calendar": "4.2.6-next.2",
+ "@spectrum-css/card": "7.0.3-next.2",
+ "@spectrum-css/checkbox": "14.0.0-next.4",
+ "@spectrum-css/clearbutton": "5.1.5-next.2",
+ "@spectrum-css/closebutton": "5.0.0-next.2",
+ "@spectrum-css/coachindicator": "1.1.6-next.2",
+ "@spectrum-css/coachmark": "6.1.6-next.2",
+ "@spectrum-css/colorarea": "4.1.6-next.2",
+ "@spectrum-css/colorhandle": "7.1.5-next.2",
+ "@spectrum-css/colorloupe": "4.2.5-next.2",
+ "@spectrum-css/colorslider": "5.1.6-next.2",
+ "@spectrum-css/colorwheel": "3.1.6-next.2",
+ "@spectrum-css/combobox": "2.1.7-next.2",
+ "@spectrum-css/commons": "9.1.4-next.1",
+ "@spectrum-css/contextualhelp": "2.1.6-next.2",
+ "@spectrum-css/datepicker": "2.1.5-next.2",
+ "@spectrum-css/dial": "2.2.5-next.2",
+ "@spectrum-css/dialog": "9.2.5-next.2",
+ "@spectrum-css/divider": "2.2.6-next.2",
+ "@spectrum-css/dropindicator": "4.1.5-next.2",
+ "@spectrum-css/dropzone": "5.2.6-next.2",
+ "@spectrum-css/fieldgroup": "4.2.5-next.2",
+ "@spectrum-css/fieldlabel": "8.0.0-next.2",
+ "@spectrum-css/floatingactionbutton": "1.2.6-next.2",
+ "@spectrum-css/helptext": "4.1.6-next.2",
+ "@spectrum-css/icon": "6.0.6-next.2",
+ "@spectrum-css/illustratedmessage": "6.1.6-next.2",
+ "@spectrum-css/infieldbutton": "4.2.5-next.2",
+ "@spectrum-css/inlinealert": "7.1.7-next.2",
+ "@spectrum-css/link": "4.2.6-next.2",
+ "@spectrum-css/logicbutton": "3.3.5-next.2",
+ "@spectrum-css/menu": "6.1.6-next.2",
+ "@spectrum-css/miller": "5.1.5-next.2",
+ "@spectrum-css/modal": "4.2.7-next.2",
+ "@spectrum-css/opacitycheckerboard": "1.1.6-next.2",
+ "@spectrum-css/page": "7.1.5-next.2",
+ "@spectrum-css/pagination": "7.1.7-next.2",
+ "@spectrum-css/picker": "7.2.8-next.2",
+ "@spectrum-css/pickerbutton": "4.1.6-next.2",
+ "@spectrum-css/popover": "6.2.6-next.2",
+ "@spectrum-css/progressbar": "3.1.6-next.2",
+ "@spectrum-css/progresscircle": "2.2.4-next.2",
+ "@spectrum-css/radio": "8.1.6-next.2",
+ "@spectrum-css/rating": "4.2.5-next.2",
+ "@spectrum-css/search": "6.2.5-next.2",
+ "@spectrum-css/sidenav": "4.2.5-next.2",
+ "@spectrum-css/site": "4.2.5-next.2",
+ "@spectrum-css/slider": "4.3.6-next.2",
+ "@spectrum-css/splitview": "4.2.5-next.2",
+ "@spectrum-css/statuslight": "6.1.7-next.2",
+ "@spectrum-css/steplist": "4.1.5-next.2",
+ "@spectrum-css/stepper": "5.1.6-next.2",
+ "@spectrum-css/swatch": "5.1.6-next.2",
+ "@spectrum-css/swatchgroup": "2.1.6-next.2",
+ "@spectrum-css/switch": "4.2.6-next.2",
+ "@spectrum-css/table": "5.2.6-next.2",
+ "@spectrum-css/tabs": "4.1.5-next.2",
+ "@spectrum-css/tag": "8.1.6-next.2",
+ "@spectrum-css/taggroup": "4.1.6-next.2",
+ "@spectrum-css/textfield": "6.1.7-next.2",
+ "@spectrum-css/thumbnail": "5.2.5-next.2",
+ "@spectrum-css/toast": "9.1.26-next.2",
+ "@spectrum-css/tooltip": "5.3.6-next.2",
+ "@spectrum-css/tray": "2.2.8-next.2",
+ "@spectrum-css/treeview": "9.2.7-next.2",
+ "@spectrum-css/typography": "5.1.6-next.2",
+ "@spectrum-css/underlay": "3.2.5-next.2",
+ "@spectrum-css/well": "4.1.5-next.2",
+ "@spectrum-css/generator": "3.0.0",
+ "conventional-changelog-spectrum": "1.0.2",
+ "postcss-combininator": "2.0.0",
+ "postcss-custom-properties-mapping": "2.0.0",
+ "postcss-splitinator": "2.0.0",
+ "@spectrum-tools/stylelint-no-missing-var": "1.3.1",
+ "@spectrum-tools/stylelint-no-unknown-custom-properties": "1.3.2",
+ "@spectrum-tools/stylelint-no-unused-custom-properties": "1.3.1",
+ "@spectrum-tools/documentation": "1.0.0",
+ "@spectrum-css/tokens": "14.0.0-next.6",
+ "@spectrum-css/ui-icons": "1.1.2"
+ },
+ "changesets": [
+ "nine-kings-repair",
+ "perfect-dogs-smash",
+ "pretty-parents-drum"
+ ]
+}
diff --git a/.changeset/pretty-parents-drum.md b/.changeset/pretty-parents-drum.md
new file mode 100644
index 00000000000..1ff4c501e45
--- /dev/null
+++ b/.changeset/pretty-parents-drum.md
@@ -0,0 +1,5 @@
+---
+"@spectrum-css/tokens": patch
+---
+
+use spectrum-tokens@13.0.0-beta.30
diff --git a/.storybook/CHANGELOG.md b/.storybook/CHANGELOG.md
index 59ef90235d9..97e89c8854f 100644
--- a/.storybook/CHANGELOG.md
+++ b/.storybook/CHANGELOG.md
@@ -86,7 +86,12 @@ This component has been deprecated. Use an action bar to allow users to perform
##7.4.2
🗓
2024-02-06
+
+##7.4.2-next.0
+🗓
+2024-02-06 • 📝 [Commits](https://github.com/adobe/spectrum-css/compare/@spectrum-css/preview@7.4.1...@spectrum-css/preview@7.4.2-next.0)
+**Note:** Spectrum 2 next version
**Note:** Version bump only for package @spectrum-css/preview
diff --git a/.storybook/assets/base.css b/.storybook/assets/base.css
index 1ffc8c47d93..2f123142985 100644
--- a/.storybook/assets/base.css
+++ b/.storybook/assets/base.css
@@ -22,6 +22,13 @@ body {
}
.spectrum {
+ /* ---- Storybook only custom properties ---- */
+ /* Gradient that changes with the color theme. */
+ --spectrum-examples-gradient: linear-gradient(45deg, var(--spectrum-magenta-1500), var(--spectrum-blue-1500));
+ /* Gradients that do not change with the color theme, for use in static color backgrounds. */
+ --spectrum-examples-gradient-static-black: linear-gradient(45deg, rgb(255, 241, 246), rgb(238, 245, 255));
+ --spectrum-examples-gradient-static-white: linear-gradient(45deg, rgb(64, 0, 22), rgb(14, 24, 67));
+
background-color: var(--spectrum-background-layer-1-color);
/* @todo: add back the text color and update VRTs */
@@ -29,6 +36,14 @@ body {
-webkit-tap-highlight-color: rgba(0, 0, 0, 0%);
}
+.spectrum .spectrum-examples-static-black {
+ background: var(--spectrum-examples-gradient-static-black);
+}
+
+.spectrum .spectrum-examples-static-white {
+ background: var(--spectrum-examples-gradient-static-white)
+}
+
/* Hide the SVG elements that only include references */
svg:has(symbol):not(:has(use)) {
display: none;
diff --git a/.storybook/decorators/contextsWrapper.js b/.storybook/decorators/contextsWrapper.js
index cea100fd699..a6361a1f66f 100644
--- a/.storybook/decorators/contextsWrapper.js
+++ b/.storybook/decorators/contextsWrapper.js
@@ -8,7 +8,7 @@ export const withContextWrapper = makeDecorator({
name: "withContextWrapper",
parameterName: "context",
wrapper: (StoryFn, context) => {
- const { args, argTypes, viewMode } = context;
+ const { args, argTypes, id, viewMode } = context;
const getDefaultValue = (type) => {
if (!type) return null;
@@ -27,11 +27,17 @@ export const withContextWrapper = makeDecorator({
/** @type string */
const scale = args.scale ? args.scale : getDefaultValue(argTypes.scale) ?? "medium";
- const colors = ["light", "dark", "darkest"];
+ const colors = ["light", "dark"];
const scales = ["medium", "large"];
useEffect(() => {
- const container = viewMode === "docs" && !window.isChromatic() ? document.querySelector('#root-inner') ?? document.body : document.body;
+ const container =
+ viewMode === "docs" &&
+ !window.isChromatic() &&
+ !id.includes("foundation")
+ ? document.querySelector("#root-inner") ?? document.body
+ : document.body;
+
container.classList.toggle("spectrum", true);
container.classList.toggle("spectrum--express", isExpress);
@@ -44,12 +50,15 @@ export const withContextWrapper = makeDecorator({
container.classList.toggle(`spectrum--${s}`, s === scale);
}
+ // Change background color when demonstrating static color options.
if (args.staticColor === "black") {
- container.style.backgroundColor = "rgb(181, 209, 211)";
- } else if (args.staticColor === "white") {
- container.style.backgroundColor = "rgb(15, 121, 125)";
- } else {
- container.style.removeProperty("background-color");
+ container.style.background = "var(--spectrum-examples-gradient-static-black)";
+ }
+ else if (args.staticColor === "white") {
+ container.style.background = "var(--spectrum-examples-gradient-static-white)";
+ }
+ else {
+ container.style.removeProperty("background");
}
}, [color, scale, isExpress, args.staticColor]);
diff --git a/.storybook/decorators/index.js b/.storybook/decorators/index.js
index 9ca62537dc3..6fa9a859f73 100644
--- a/.storybook/decorators/index.js
+++ b/.storybook/decorators/index.js
@@ -2,6 +2,7 @@ import { makeDecorator, useEffect } from "@storybook/preview-api";
import { html } from "lit";
export { withContextWrapper } from "./contextsWrapper.js";
+export { withDownStateDimensionCapture } from "./withDownStateDimensionCapture.js";
export { withTestingPreviewWrapper } from "./withTestingPreviewWrapper.js";
/**
diff --git a/.storybook/decorators/withDownStateDimensionCapture.js b/.storybook/decorators/withDownStateDimensionCapture.js
new file mode 100644
index 00000000000..616852d34ce
--- /dev/null
+++ b/.storybook/decorators/withDownStateDimensionCapture.js
@@ -0,0 +1,19 @@
+export const withDownStateDimensionCapture = (selector) => (Story, context) => {
+ const captureDownStateDimensions = () => {
+ const components = document.querySelectorAll(selector);
+ components.forEach((component) => {
+ const { width, height } = component.getBoundingClientRect();
+ component.style.setProperty('--spectrum-downstate-width', `${width}px`);
+ component.style.setProperty('--spectrum-downstate-height', `${height}px`);
+ });
+ };
+
+ document.addEventListener("DOMContentLoaded", () => {
+ // Wait to make sure the story is fully rendered (otherwise width/height can be wrong)
+ setTimeout(() => {
+ captureDownStateDimensions();
+ }, 100);
+ });
+
+ return Story(context);
+};
diff --git a/.storybook/foundations/corner-rounding/action-button-corner-rounding.stories.js b/.storybook/foundations/corner-rounding/action-button-corner-rounding.stories.js
new file mode 100644
index 00000000000..372879350f5
--- /dev/null
+++ b/.storybook/foundations/corner-rounding/action-button-corner-rounding.stories.js
@@ -0,0 +1,105 @@
+import { html } from "lit";
+import { Template } from "../../../components/actionbutton/stories/template";
+
+export default {
+ title: "Foundations/Corner rounding",
+ description:
+ "The action button component represents an action a user can take.",
+ component: "ActionButton",
+ args: {
+ rootClass: "spectrum-ActionButton",
+ },
+ parameters: {
+ actions: {
+ handles: ["click .spectrum-ActionButton:not([disabled])"],
+ },
+ },
+ tags: ['foundation'],
+};
+
+const ActionButton = ({
+ ...args
+}) => {
+ return html`
+
+ ${Template({
+ ...args,
+ iconName: undefined,
+ })}
+
+ `;
+};
+
+const ActionButtonTable = ({ ...args }) => {
+ return html`
+
+
+
+ | Token |
+ Value |
+ Medium example |
+
+
+
+
+ | --spectrum-corner-radius-medium-size-extra-small |
+ 6px |
+
+ ${ActionButton({
+ ...args,
+ label: "Extra Small",
+ size: "xs"
+ })}
+ |
+
+
+ | --spectrum-corner-radius-medium-size-small |
+ 7px |
+
+ ${ActionButton({
+ ...args,
+ label: "Small",
+ size: "s"
+ })}
+ |
+
+
+ | --spectrum-corner-radius-medium-size-medium |
+ 8px |
+
+ ${ActionButton({
+ ...args,
+ label: "Medium",
+ size: "m"
+ })}
+ |
+
+
+ | --spectrum-corner-radius-medium-size-large |
+ 9px |
+
+ ${ActionButton({
+ ...args,
+ label: "Large",
+ size: "l"
+ })}
+ |
+
+
+ | --spectrum-corner-radius-medium-size-extra-large |
+ 10px |
+
+ ${ActionButton({
+ ...args,
+ label: "Extra Large",
+ size: "xl"
+ })}
+ |
+
+
+
+ `;
+};
+
+export const ActionButtonExamples = ActionButtonTable.bind({});
+ActionButtonExamples.args = {};
diff --git a/.storybook/foundations/corner-rounding/checkbox-corner-rounding.stories.js b/.storybook/foundations/corner-rounding/checkbox-corner-rounding.stories.js
new file mode 100644
index 00000000000..3dad56fd49f
--- /dev/null
+++ b/.storybook/foundations/corner-rounding/checkbox-corner-rounding.stories.js
@@ -0,0 +1,97 @@
+// Import the component markup template
+import { html } from "lit";
+import { Template } from "../../../components/checkbox/stories/template";
+
+export default {
+ title: "Foundations/Corner rounding",
+ description:
+ "Checkboxes allow users to select multiple items from a list of individual items, or mark one individual item as selected.",
+ component: "Checkbox",
+ args: {
+ rootClass: "spectrum-Checkbox",
+ },
+ parameters: {
+ actions: {
+ handles: ['click input[type="checkbox"]'],
+ },
+ },
+ tags: ['foundation'],
+};
+
+const Checkbox = ({
+ customStyles = {},
+ isChecked = false,
+ ...args
+}) => {
+ return html`
+
+ ${Template({
+ ...args,
+ iconName: undefined,
+ })}
+
+ `;
+};
+
+const CheckboxTable = ({...args}) => {
+ return html`
+
+
+
+ | Token |
+ Value |
+ Small example |
+
+
+
+
+ | --spectrum-corner-radius-small-size-small |
+ 3px |
+
+ ${Checkbox({
+ ...args,
+ label: "Small",
+ size: "s"
+ })}
+ |
+
+
+ | --spectrum-corner-radius-small-size-medium |
+ 4px |
+
+ ${Checkbox({
+ ...args,
+ label: "Medium",
+ size: "m"
+ })}
+ |
+
+
+ | --spectrum-corner-radius-small-size-large |
+ 5px |
+
+ ${Checkbox({
+ ...args,
+ label: "Large",
+ size: "l"
+ })}
+ |
+
+
+ | --spectrum-corner-radius-small-size-extra-large |
+ 6px |
+
+ ${Checkbox({
+ ...args,
+ label: "Extra Large",
+ size: "xl"
+ })}
+ |
+
+
+
+ `;
+}
+
+export const CheckboxExamples = CheckboxTable.bind({});
+CheckboxExamples.args = {};
diff --git a/.storybook/foundations/corner-rounding/component-size-tokens-medium.md b/.storybook/foundations/corner-rounding/component-size-tokens-medium.md
new file mode 100644
index 00000000000..2f01b1ba44d
--- /dev/null
+++ b/.storybook/foundations/corner-rounding/component-size-tokens-medium.md
@@ -0,0 +1,7 @@
+| Component size token | Alias token (if available) | Global token | Value |
+|---------------------------------------------------|-------------------------------|------------------------------|-------|
+| --spectrum-corner-radius-medium-size-extra-small | | --spectrum-corner-radius-300 | 6px |
+| --spectrum-corner-radius-medium-size-small | | --spectrum-corner-radius-400 | 7px |
+| --spectrum-corner-radius-medium-size-medium | --spectrum-corner-radius-medium-default | --spectrum-corner-radius-500 | 8px |
+| --spectrum-corner-radius-medium-size-large | | --spectrum-corner-radius-600 | 9px |
+| --spectrum-corner-radius-medium-size-extra-large | --spectrum-corner-radius-large-default | --spectrum-corner-radius-700 | 10px |
diff --git a/.storybook/foundations/corner-rounding/component-size-tokens-small.md b/.storybook/foundations/corner-rounding/component-size-tokens-small.md
new file mode 100644
index 00000000000..1fdcae6ad6d
--- /dev/null
+++ b/.storybook/foundations/corner-rounding/component-size-tokens-small.md
@@ -0,0 +1,6 @@
+| Component size token | Alias token (if available) | Global token | Value |
+|---------------------------------------------------|-------------------------------|------------------------------|-------|
+| --spectrum-corner-radius-small-size-small | | --spectrum-corner-radius-75 | 3px |
+| --spectrum-corner-radius-small-size-medium | --spectrum-corner-radius-small-default | --spectrum-corner-radius-100 | 4px |
+| --spectrum-corner-radius-small-size-large | | --spectrum-corner-radius-200 | 5px |
+| --spectrum-corner-radius-small-size-extra-large | | --spectrum-corner-radius-300 | 6px |
diff --git a/.storybook/foundations/corner-rounding/corner-rounding.mdx b/.storybook/foundations/corner-rounding/corner-rounding.mdx
new file mode 100644
index 00000000000..0af56f6e446
--- /dev/null
+++ b/.storybook/foundations/corner-rounding/corner-rounding.mdx
@@ -0,0 +1,26 @@
+import { Meta, Canvas, Story, Title, Unstyled } from '@storybook/blocks';
+import * as CornerRoundingStories from './corner-rounding.stories.js';
+import * as CheckboxStories from './checkbox-corner-rounding.stories.js';
+import * as ActionButtonStories from './action-button-corner-rounding.stories.js';
+
+
+
+
+
+## Default values
+
+
+
+## Component examples
+
+### Small tokens
+
+Checkbox includes small component size tokens to scale corner rounding.
+
+
+
+### Medium tokens
+
+Action button includes medium component size tokens to scale corner rounding.
+
+
diff --git a/.storybook/foundations/corner-rounding/corner-rounding.stories.js b/.storybook/foundations/corner-rounding/corner-rounding.stories.js
new file mode 100644
index 00000000000..21da965f948
--- /dev/null
+++ b/.storybook/foundations/corner-rounding/corner-rounding.stories.js
@@ -0,0 +1,75 @@
+// Import the component markup template
+import { html } from "lit";
+import { Template } from './template';
+
+export default {
+ title: "Foundations/Corner rounding",
+ description:
+ "Corner rounding is a foundation that shows the different border-radius tokens that can be applied to a component.",
+ component: "Corner rounding",
+ args: {
+ rootClass: "spectrum-Foundations-Example-CornerRounding",
+ },
+ tags: ['foundation'],
+};
+
+const CornerRadiusGroup = ({
+ customStyles = {},
+ ...args
+}) => {
+ return html`
+
+
+
+
+ | Token |
+ Value |
+ Example (No Border) |
+ Example (Border) |
+
+
+
+ ${Template({
+ ...args,
+ label: '--spectrum-corner-radius-none',
+ size: 'none',
+ value: '0px',
+ })}
+ ${Template({
+ ...args,
+ label: '--spectrum-corner-radius-small-default',
+ size: 's',
+ value: '4px',
+ })}
+ ${Template({
+ ...args,
+ label: '--spectrum-corner-radius-medium-default',
+ size: 'm',
+ value: '8px',
+ })}
+ ${Template({
+ ...args,
+ label: '--spectrum-corner-radius-large-default',
+ size: 'l',
+ value: '10px',
+ })}
+ ${Template({
+ ...args,
+ label: '--spectrum-corner-radius-extra-large-default',
+ size: 'xl',
+ value: '16px',
+ })}
+ ${Template({
+ ...args,
+ label: '--spectrum-corner-radius-full',
+ size: 'full',
+ value: '9999px',
+ })}
+
+
+
+ `;
+};
+
+export const CornerRounding = CornerRadiusGroup.bind({});
+CornerRounding.args = {};
diff --git a/.storybook/foundations/corner-rounding/index.css b/.storybook/foundations/corner-rounding/index.css
new file mode 100644
index 00000000000..ebdd50f180f
--- /dev/null
+++ b/.storybook/foundations/corner-rounding/index.css
@@ -0,0 +1,56 @@
+/*!
+Copyright 2024 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.
+*/
+
+.spectrum-Foundations-Example-CornerRounding-table {
+ border-spacing: 1rem 0;
+ margin-inline-start: -1rem;
+}
+
+.spectrum-Foundations-Example-CornerRounding-table th {
+ text-align: start;
+}
+
+.spectrum-Foundations-Example-CornerRounding {
+ inline-size: 3rem;
+ block-size: 3rem;
+ margin: 0.5rem;
+ background-color: var(--spectrum-gray-500);
+}
+
+.spectrum-Foundations-Example-CornerRounding--border {
+ background-color: var(--spectrum-gray-25);
+ border: var(--spectrum-border-width-200) solid var(--spectrum-gray-700);
+}
+
+.spectrum-Foundations-Example-CornerRounding--none {
+ border-radius: var(--spectrum-corner-radius-none);
+}
+
+.spectrum-Foundations-Example-CornerRounding--sizeS {
+ border-radius: var(--spectrum-corner-radius-small-default);
+}
+
+.spectrum-Foundations-Example-CornerRounding--sizeM {
+ border-radius: var(--spectrum-corner-radius-medium-default);
+}
+
+.spectrum-Foundations-Example-CornerRounding--sizeL {
+ border-radius: var(--spectrum-corner-radius-large-default);
+}
+
+.spectrum-Foundations-Example-CornerRounding--sizeXL {
+ border-radius: var(--spectrum-corner-radius-extra-large-default);
+}
+
+.spectrum-Foundations-Example-CornerRounding--full {
+ border-radius: var(--spectrum-corner-radius-full);
+}
diff --git a/.storybook/foundations/corner-rounding/template.js b/.storybook/foundations/corner-rounding/template.js
new file mode 100644
index 00000000000..4d24cc43dbe
--- /dev/null
+++ b/.storybook/foundations/corner-rounding/template.js
@@ -0,0 +1,42 @@
+import { html } from "lit";
+import { classMap } from "lit/directives/class-map.js";
+import './index.css';
+
+const getSizeModifier = (size) => {
+ if (size === 'none' || size === 'full') {
+ return size;
+ } else {
+ return `size${size.toUpperCase()}`;
+ }
+};
+
+export const Template = ({
+ rootClass = "spectrum-Foundations-Example-CornerRounding",
+ size = "none",
+ label,
+ value,
+}) => html`
+
+ | ${label} |
+ ${value} |
+
+
+
+ |
+
+
+
+ |
+
+ `;
diff --git a/.storybook/foundations/down-state/button-down-state.stories.js b/.storybook/foundations/down-state/button-down-state.stories.js
new file mode 100644
index 00000000000..603fa500c9a
--- /dev/null
+++ b/.storybook/foundations/down-state/button-down-state.stories.js
@@ -0,0 +1,27 @@
+import { Template } from "../../../components/button/stories/template";
+
+export default {
+ title: "Foundations/Down state",
+ description:
+ "Buttons allow users to perform an action or to navigate to another page. They have multiple styles for various needs, and are ideal for calling attention to where a user needs to do something in order to move forward in a flow.",
+ component: "Button",
+ args: {
+ rootClass: "spectrum-Button",
+ },
+ parameters: {
+ actions: {
+ handles: ["click .spectrum-Button"],
+ },
+ },
+ tags: ["foundation"],
+};
+
+export const ButtonDownState = Template.bind({});
+ButtonDownState.args = {
+ label: "Edit",
+ variant: "accent",
+ customStyles: {
+ "--spectrum-downstate-width": "72px",
+ "--spectrum-downstate-height": "32px"
+ }
+};
diff --git a/.storybook/foundations/down-state/checkbox-down-state.stories.js b/.storybook/foundations/down-state/checkbox-down-state.stories.js
new file mode 100644
index 00000000000..fcc43a4ee1a
--- /dev/null
+++ b/.storybook/foundations/down-state/checkbox-down-state.stories.js
@@ -0,0 +1,22 @@
+import { Template } from "../../../components/checkbox/stories/template";
+
+export default {
+ title: "Foundations/Down state",
+ description:
+ "Checkboxes allow users to select multiple items from a list of individual items, or mark one individual item as selected.",
+ component: "Checkbox",
+ args: {
+ rootClass: "spectrum-Checkbox",
+ },
+ parameters: {
+ actions: {
+ handles: ["click input[type=\"checkbox\"]"],
+ },
+ },
+ tags: ["foundation"],
+};
+
+export const CheckboxDownState = Template.bind({});
+CheckboxDownState.args = {
+ label: "Checkbox",
+};
diff --git a/.storybook/foundations/down-state/down-state.mdx b/.storybook/foundations/down-state/down-state.mdx
new file mode 100644
index 00000000000..f07e65d2f8d
--- /dev/null
+++ b/.storybook/foundations/down-state/down-state.mdx
@@ -0,0 +1,44 @@
+import { Meta, Story } from '@storybook/blocks';
+import * as Checkbox from './checkbox-down-state.stories.js';
+import * as Button from './button-down-state.stories.js';
+
+
+
+# Down state
+
+Down state is a Spectrum 2 feature that creates the illusion of components being pressed-in when active. This functionality is already included in Spectrum 2 components that require down state in this project. It is implemented with a CSS transform. The implementation depends on the size of the interactable element, as shown in the examples below.
+
+## Examples
+
+### Minimum perspective
+
+For elements that have a width of 24px or less, the minimum perspective token is used to apply the down state. One example of a component that uses this token is the checkbox:
+
+
+
+In this case, we use the minimum perspective token:
+
+```
+transform:
+ perspective(var(--spectrum-component-size-minimum-perspective-down))
+ translateZ(var(--spectrum-component-size-difference-down));
+```
+
+### Calculated perspective
+
+For elements that have a width of greater than 24px, we need to use the component's width and height to apply the down state. One example of a component that uses this logic is the button:
+
+
+
+In this case, we use a max formula to calculate the perspective based on component width and height (this helps us account for components that may be very wide):
+
+```
+transform:
+ perspective(max(
+ var(--spectrum-downstate-height),
+ var(--spectrum-downstate-width) * var(--spectrum-component-size-width-ratio-down)
+ ))
+ translateZ(var(--spectrum-component-size-difference-down));
+```
+
+*Note that in this case, users are required to develop an implementation to determine the width and height of the component. Assign these values to the `--spectrum-downstate-width` and `--spectrum-downstate-height` custom properties in a `style` attribute on the HTML element to expose them for use in the CSS.*
diff --git a/.storybook/main.js b/.storybook/main.js
index 8910d9da2e9..d6e748a3330 100644
--- a/.storybook/main.js
+++ b/.storybook/main.js
@@ -10,8 +10,11 @@ const componentPkgs = readdirSync(componentsPath, {
module.exports = {
stories: [
+ "../components/*/stories/*.mdx",
"../components/*/stories/*.stories.js",
"./guides/*.mdx",
+ "./foundations/*/*.mdx",
+ "./foundations/*/*.stories.js",
"./deprecated/*/*.stories.js",
],
rootDir: "../",
diff --git a/.storybook/manager.js b/.storybook/manager.js
index ceacc56a50d..791ceaca79f 100644
--- a/.storybook/manager.js
+++ b/.storybook/manager.js
@@ -50,7 +50,7 @@ addons.setConfig({
sidebar: {
showRoots: false,
filters: {
- patterns: (item) => !item.id.includes('forced-colors'),
+ patterns: (item) => !item.id.includes('forced-colors') && ['foundation','is-hidden-story'].every((tag) => !item.tags.includes(tag)),
}
},
});
diff --git a/.storybook/package.json b/.storybook/package.json
index 320503f4457..3217b65e58c 100644
--- a/.storybook/package.json
+++ b/.storybook/package.json
@@ -11,7 +11,7 @@
},
"dependencies": {
"@adobe/spectrum-css-workflow-icons": "^1.5.4",
- "@spectrum-css/tokens": "^14.0.0",
+ "@spectrum-css/tokens": "^14.0.0-next.7",
"@spectrum-css/ui-icons": "^1.1.2"
},
"devDependencies": {
@@ -50,5 +50,12 @@
"storybook": "^8.0.9",
"style-loader": "4.0.0",
"webpack": "^5.91.0"
- }
+ },
+ "keywords": [
+ "adobe",
+ "css",
+ "design system",
+ "spectrum",
+ "storybook"
+ ]
}
diff --git a/.storybook/preview.js b/.storybook/preview.js
index 5578d8c2b73..0440bda910f 100644
--- a/.storybook/preview.js
+++ b/.storybook/preview.js
@@ -1,13 +1,13 @@
-import DocumentationTemplate from './DocumentationTemplate.mdx';
+import DocumentationTemplate from "./DocumentationTemplate.mdx";
import { withActions } from "@storybook/addon-actions/decorator";
import {
- withContextWrapper,
- withLanguageWrapper,
- withReducedMotionWrapper,
- withTestingPreviewWrapper,
- withTextDirectionWrapper,
+ withContextWrapper,
+ withLanguageWrapper,
+ withReducedMotionWrapper,
+ withTestingPreviewWrapper,
+ withTextDirectionWrapper,
} from "./decorators/index.js";
// https://github.com/storybookjs/storybook-addon-console
@@ -81,17 +81,16 @@ export const argTypes = {
description: "Controls the color context of the component.",
type: { required: true },
table: {
- type: { summary: "light | dark | darkest" },
+ type: { summary: "light | dark" },
defaultValue: { summary: "light" },
category: "Global",
},
- options: ["light", "dark", "darkest"],
+ options: ["light", "dark"],
control: {
type: "select",
labels: {
light: "Light (default)",
dark: "Dark",
- darkest: "Darkest",
},
},
},
@@ -187,11 +186,11 @@ export const parameters = {
panelPosition: "bottom",
showToolbar: true,
isFullscreen: false,
- actions: { argTypesRegex: '^on.*' },
+ actions: { argTypesRegex: "^on.*" },
options: {
storySort: {
method: "alphabetical",
- order: ['Guides', ['Contributing', '*', 'Adobe Code of Conduct', 'Changelog'], 'Components', ['Docs', 'Default', '*'], '*'],
+ order: ["Guides", ["Contributing", "*", "Adobe Code of Conduct", "Changelog"], "Foundations", "Components", ["Docs", "Default", "*"], "*"],
includeNames: true,
},
},
diff --git a/components/README.md b/components/README.md
index 66c02f39375..8fe781ba601 100644
--- a/components/README.md
+++ b/components/README.md
@@ -57,7 +57,7 @@ For example, `actionbar` gets its tokens from `vars`, and requires `button`, `ch
"@spectrum-css/checkbox": ">=8",
"@spectrum-css/icon": ">=6",
"@spectrum-css/popover": ">=6",
- "@spectrum-css/tokens": ">=13"
+ "@spectrum-css/tokens": ">=14.0.0-next.3"
}
}
```
diff --git a/components/accordion/index.css b/components/accordion/index.css
index 643a33ed5dc..4ff270c953f 100644
--- a/components/accordion/index.css
+++ b/components/accordion/index.css
@@ -120,7 +120,7 @@ governing permissions and limitations under the License.
);
/* Divider */
- --spectrum-accordion-divider-color: var(--spectrum-gray-300);
+ --spectrum-accordion-divider-color: var(--spectrum-gray-200);
--spectrum-accordion-min-block-size: max(
var(--mod-accordion-item-height, var(--spectrum-accordion-item-height)),
calc(
diff --git a/components/accordion/package.json b/components/accordion/package.json
index 7ae121ed5ce..5a7712d4525 100644
--- a/components/accordion/package.json
+++ b/components/accordion/package.json
@@ -1,37 +1,35 @@
{
- "name": "@spectrum-css/accordion",
- "version": "5.0.0",
- "description": "The Spectrum CSS accordion component",
- "license": "Apache-2.0",
- "author": "Adobe",
- "homepage": "https://opensource.adobe.com/spectrum-css/accordion",
- "repository": {
- "type": "git",
- "url": "https://github.com/adobe/spectrum-css.git",
- "directory": "components/accordion"
- },
- "bugs": {
- "url": "https://github.com/adobe/spectrum-css/issues"
- },
- "main": "dist/index.css",
- "files": [
- "dist/*",
- "CHANGELOG.md",
- "package.json",
- "stories/template.js",
- "metadata/mods.md"
- ],
- "peerDependencies": {
- "@spectrum-css/icon": ">=4",
- "@spectrum-css/tokens": ">=13"
- },
- "keywords": [
- "spectrum",
- "css",
- "design system",
- "adobe"
- ],
- "publishConfig": {
- "access": "public"
- }
+ "name": "@spectrum-css/accordion",
+ "version": "5.0.0",
+ "description": "The Spectrum CSS accordion component",
+ "license": "Apache-2.0",
+ "author": "Adobe",
+ "homepage": "https://opensource.adobe.com/spectrum-css/accordion",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/adobe/spectrum-css.git",
+ "directory": "components/accordion"
+ },
+ "bugs": {
+ "url": "https://github.com/adobe/spectrum-css/issues"
+ },
+ "main": "dist/index.css",
+ "files": [
+ "dist/*",
+ "metadata/mods.md",
+ "stories/template.js"
+ ],
+ "peerDependencies": {
+ "@spectrum-css/icon": ">=4",
+ "@spectrum-css/tokens": ">=14.0.0-next.3"
+ },
+ "keywords": [
+ "adobe",
+ "css",
+ "design system",
+ "spectrum"
+ ],
+ "publishConfig": {
+ "access": "public"
+ }
}
diff --git a/components/actionbar/index.css b/components/actionbar/index.css
index 0c306f02923..bbe279eb0a4 100644
--- a/components/actionbar/index.css
+++ b/components/actionbar/index.css
@@ -26,7 +26,7 @@ governing permissions and limitations under the License.
}
/* colors - applied to popover */
- --spectrum-actionbar-popover-background-color: var(--spectrum-gray-50);
+ --spectrum-actionbar-popover-background-color: var(--spectrum-gray-25);
--spectrum-actionbar-popover-border-color: var(--spectrum-gray-400);
/* emphasized variation colors */
diff --git a/components/actionbar/package.json b/components/actionbar/package.json
index e42a4eeda40..702b7b89b22 100644
--- a/components/actionbar/package.json
+++ b/components/actionbar/package.json
@@ -1,40 +1,38 @@
{
- "name": "@spectrum-css/actionbar",
- "version": "8.0.0",
- "description": "The Spectrum CSS actionbar component",
- "license": "Apache-2.0",
- "author": "Adobe",
- "homepage": "https://opensource.adobe.com/spectrum-css/actionbar",
- "repository": {
- "type": "git",
- "url": "https://github.com/adobe/spectrum-css.git",
- "directory": "components/actionbar"
- },
- "bugs": {
- "url": "https://github.com/adobe/spectrum-css/issues"
- },
- "main": "dist/index.css",
- "files": [
- "dist/*",
- "CHANGELOG.md",
- "package.json",
- "stories/template.js",
- "metadata/mods.md"
- ],
- "peerDependencies": {
- "@spectrum-css/actiongroup": ">=4",
- "@spectrum-css/closebutton": ">=4",
- "@spectrum-css/fieldlabel": ">=7",
- "@spectrum-css/popover": ">=6",
- "@spectrum-css/tokens": ">=13"
- },
- "keywords": [
- "spectrum",
- "css",
- "design system",
- "adobe"
- ],
- "publishConfig": {
- "access": "public"
- }
+ "name": "@spectrum-css/actionbar",
+ "version": "8.0.0",
+ "description": "The Spectrum CSS actionbar component",
+ "license": "Apache-2.0",
+ "author": "Adobe",
+ "homepage": "https://opensource.adobe.com/spectrum-css/actionbar",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/adobe/spectrum-css.git",
+ "directory": "components/actionbar"
+ },
+ "bugs": {
+ "url": "https://github.com/adobe/spectrum-css/issues"
+ },
+ "main": "dist/index.css",
+ "files": [
+ "dist/*",
+ "metadata/mods.md",
+ "stories/template.js"
+ ],
+ "peerDependencies": {
+ "@spectrum-css/actiongroup": ">=4",
+ "@spectrum-css/closebutton": ">=4",
+ "@spectrum-css/fieldlabel": ">=7",
+ "@spectrum-css/popover": ">=6",
+ "@spectrum-css/tokens": ">=14.0.0-next.3"
+ },
+ "keywords": [
+ "adobe",
+ "css",
+ "design system",
+ "spectrum"
+ ],
+ "publishConfig": {
+ "access": "public"
+ }
}
diff --git a/components/actionbutton/index.css b/components/actionbutton/index.css
index f833caed867..c1131df5d88 100644
--- a/components/actionbutton/index.css
+++ b/components/actionbutton/index.css
@@ -15,7 +15,7 @@ governing permissions and limitations under the License.
.spectrum-ActionButton {
--spectrum-actionbutton-animation-duration: var(--spectrum-animation-duration-100);
- --spectrum-actionbutton-border-radius: var(--spectrum-corner-radius-100);
+ --spectrum-actionbutton-border-radius: var(--spectrum-corner-radius-medium-size-medium);
--spectrum-actionbutton-border-width: var(--spectrum-border-width-100);
--spectrum-actionbutton-content-color-default: var(--spectrum-neutral-content-color-default);
@@ -38,10 +38,10 @@ governing permissions and limitations under the License.
--mod-actionbutton-background-color-down: var(--mod-actionbutton-background-color-down-selected, var(--spectrum-neutral-background-color-selected-down));
--mod-actionbutton-background-color-focus: var(--mod-actionbutton-background-color-focus-selected, var(--spectrum-neutral-background-color-selected-key-focus));
- --mod-actionbutton-content-color-default: var(--mod-actionbutton-content-color-default-selected, var(--spectrum-gray-50));
- --mod-actionbutton-content-color-hover: var(--mod-actionbutton-content-color-hover-selected, var(--spectrum-gray-50));
- --mod-actionbutton-content-color-down: var(--mod-actionbutton-content-color-down-selected, var(--spectrum-gray-50));
- --mod-actionbutton-content-color-focus: var(--mod-actionbutton-content-color-focus-selected, var(--spectrum-gray-50));
+ --mod-actionbutton-content-color-default: var(--mod-actionbutton-content-color-default-selected, var(--spectrum-gray-25));
+ --mod-actionbutton-content-color-hover: var(--mod-actionbutton-content-color-hover-selected, var(--spectrum-gray-25));
+ --mod-actionbutton-content-color-down: var(--mod-actionbutton-content-color-down-selected, var(--spectrum-gray-25));
+ --mod-actionbutton-content-color-focus: var(--mod-actionbutton-content-color-focus-selected, var(--spectrum-gray-25));
&.spectrum-ActionButton--emphasized {
--mod-actionbutton-background-color-default: var(--mod-actionbutton-background-color-default-selected-emphasized, var(--spectrum-accent-background-color-default));
@@ -58,6 +58,8 @@ governing permissions and limitations under the License.
}
.spectrum-ActionButton--sizeXS {
+ --spectrum-actionbutton-border-radius: var(--spectrum-corner-radius-medium-size-extra-small);
+
--spectrum-actionbutton-min-width: calc((var(--spectrum-component-edge-to-visual-only-50) * 2) + var(--spectrum-workflow-icon-size-50));
--spectrum-actionbutton-height: var(--spectrum-component-height-50);
@@ -71,6 +73,8 @@ governing permissions and limitations under the License.
}
.spectrum-ActionButton--sizeS {
+ --spectrum-actionbutton-border-radius: var(--spectrum-corner-radius-medium-size-small);
+
--spectrum-actionbutton-min-width: calc((var(--spectrum-component-edge-to-visual-only-75) * 2) + var(--spectrum-workflow-icon-size-75));
--spectrum-actionbutton-height: var(--spectrum-component-height-75);
@@ -84,6 +88,8 @@ governing permissions and limitations under the License.
}
.spectrum-ActionButton--sizeM {
+ --spectrum-actionbutton-border-radius: var(--spectrum-corner-radius-medium-size-medium);
+
--spectrum-actionbutton-min-width: calc((var(--spectrum-component-edge-to-visual-only-100) * 2) + var(--spectrum-workflow-icon-size-100));
--spectrum-actionbutton-height: var(--spectrum-component-height-100);
@@ -97,6 +103,8 @@ governing permissions and limitations under the License.
}
.spectrum-ActionButton--sizeL {
+ --spectrum-actionbutton-border-radius: var(--spectrum-corner-radius-medium-size-large);
+
--spectrum-actionbutton-min-width: calc((var(--spectrum-component-edge-to-visual-only-200) * 2) + var(--spectrum-workflow-icon-size-200));
--spectrum-actionbutton-height: var(--spectrum-component-height-200);
@@ -110,6 +118,8 @@ governing permissions and limitations under the License.
}
.spectrum-ActionButton--sizeXL {
+ --spectrum-actionbutton-border-radius: var(--spectrum-corner-radius-medium-size-extra-large);
+
--spectrum-actionbutton-min-width: calc((var(--spectrum-component-edge-to-visual-only-300) * 2) + var(--spectrum-workflow-icon-size-300));
--spectrum-actionbutton-height: var(--spectrum-component-height-300);
diff --git a/components/actionbutton/metadata/actionbutton.yml b/components/actionbutton/metadata/actionbutton.yml
index acc03b5be7c..cb55c9cdb44 100644
--- a/components/actionbutton/metadata/actionbutton.yml
+++ b/components/actionbutton/metadata/actionbutton.yml
@@ -12,16 +12,24 @@ sections:
This component can be modified via its `--mod-*` prefixed custom properties. A list of those prefixed custom properties can be found here.
- name: Migration Guide
description: |
- ### Action Button now requires a class on its icon
+ ### Version 6.0.0
+ #### Spectrum 2 release
+ Action button now uses Spectrum 2 tokens and specifications. A few notable changes:
+ - The mod custom property `--mod-line-height-100` has been renamed to `--mod-button-line-height`.
+ - The mod custom property `--mod-sans-font-family-stack` has been renamed to `--mod-button-font-family`.
+ - The mod custom property `--mod-animation-duration-100` has been renamed to `--mod-button-animation-duration`.
+
+ ### Versions prior to 6.0.0
+ #### Action Button now requires a class on its icon
The `.spectrum-ActionButton-icon` class is now required on the icon.
- ### T-shirt sizing
+ #### T-shirt sizing
Action Button now supports t-shirt sizing and requires that you specify the size by adding a `.spectrum-ActionButton--size*` class.
- ### Action Button is now a separate component
+ #### Action Button is now a separate component
Action Button has been moved to the [Action Button](actionbutton.html) component.
- ### Change workflow icon size
+ #### Change workflow icon size
Previously, all Action Buttons used `.spectrum-Icon--sizeS`. This has changed:
@@ -33,7 +41,7 @@ sections:
| `.spectrum-ActionButton--sizeL` | `.spectrum-Icon--sizeL` |
| `.spectrum-ActionButton--sizeXL` | `.spectrum-Icon--sizeXL` |
- ### Change hold icon classnames
+ #### Change hold icon classnames
Hold icon classnames must be set as follows:
@@ -45,10 +53,10 @@ sections:
| `.spectrum-ActionButton--sizeL` | `.spectrum-UIIcon-CornerTriangle200` |
| `.spectrum-ActionButton--sizeXL` | `.spectrum-UIIcon-CornerTriangle300` |
- ### Include markup for hold icon before workflow icon
+ #### Include markup for hold icon before workflow icon
Because of the way padding is calculated, the hold icon must be placed before the workflow icon.
- ### Remove focus-ring class
+ #### Remove focus-ring class
We've migrated away from the focus-ring class in favor of the native `:focus-visible` pseudo-class due to changes in browser support.
examples:
- id: actionbutton-sizing
diff --git a/components/actionbutton/package.json b/components/actionbutton/package.json
index 78cbf3180b6..6bc58520486 100644
--- a/components/actionbutton/package.json
+++ b/components/actionbutton/package.json
@@ -1,45 +1,43 @@
{
- "name": "@spectrum-css/actionbutton",
- "version": "6.0.0",
- "description": "The Spectrum CSS action button component",
- "license": "Apache-2.0",
- "author": "Adobe",
- "homepage": "https://opensource.adobe.com/spectrum-css/actionbutton",
- "repository": {
- "type": "git",
- "url": "https://github.com/adobe/spectrum-css.git",
- "directory": "components/actionbutton"
- },
- "bugs": {
- "url": "https://github.com/adobe/spectrum-css/issues"
- },
- "main": "dist/index.css",
- "files": [
- "dist/*",
- "CHANGELOG.md",
- "package.json",
- "stories/template.js",
- "metadata/mods.md"
- ],
- "peerDependencies": {
- "@spectrum-css/icon": ">=4",
- "@spectrum-css/tokens": ">=13"
- },
- "peerDependenciesMeta": {
- "@spectrum-css/icon": {
- "optional": true
- }
- },
- "devDependencies": {
- "@spectrum-css/commons": "^10.0.0"
- },
- "keywords": [
- "spectrum",
- "css",
- "design system",
- "adobe"
- ],
- "publishConfig": {
- "access": "public"
- }
+ "name": "@spectrum-css/actionbutton",
+ "version": "6.0.0",
+ "description": "The Spectrum CSS action button component",
+ "license": "Apache-2.0",
+ "author": "Adobe",
+ "homepage": "https://opensource.adobe.com/spectrum-css/actionbutton",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/adobe/spectrum-css.git",
+ "directory": "components/actionbutton"
+ },
+ "bugs": {
+ "url": "https://github.com/adobe/spectrum-css/issues"
+ },
+ "main": "dist/index.css",
+ "files": [
+ "dist/*",
+ "metadata/mods.md",
+ "stories/template.js"
+ ],
+ "peerDependencies": {
+ "@spectrum-css/icon": ">=4",
+ "@spectrum-css/tokens": ">=14.0.0-next.3"
+ },
+ "peerDependenciesMeta": {
+ "@spectrum-css/icon": {
+ "optional": true
+ }
+ },
+ "devDependencies": {
+ "@spectrum-css/commons": "^10.0.0"
+ },
+ "keywords": [
+ "adobe",
+ "css",
+ "design system",
+ "spectrum"
+ ],
+ "publishConfig": {
+ "access": "public"
+ }
}
diff --git a/components/actionbutton/themes/express.css b/components/actionbutton/themes/express.css
index f56b4e5081b..70f3a177ba1 100644
--- a/components/actionbutton/themes/express.css
+++ b/components/actionbutton/themes/express.css
@@ -14,10 +14,10 @@ governing permissions and limitations under the License.
@container (--system: express) {
.spectrum-ActionButton {
- --spectrum-actionbutton-background-color-default: var(--spectrum-gray-200);
- --spectrum-actionbutton-background-color-hover: var(--spectrum-gray-300);
+ --spectrum-actionbutton-background-color-default: var(--spectrum-gray-100);
+ --spectrum-actionbutton-background-color-hover: var(--spectrum-gray-200);
--spectrum-actionbutton-background-color-down: var(--spectrum-gray-400);
- --spectrum-actionbutton-background-color-focus: var(--spectrum-gray-300);
+ --spectrum-actionbutton-background-color-focus: var(--spectrum-gray-200);
--spectrum-actionbutton-border-color-default: transparent;
--spectrum-actionbutton-border-color-hover: transparent;
@@ -29,9 +29,9 @@ governing permissions and limitations under the License.
&.spectrum-ActionButton--quiet {
--spectrum-actionbutton-background-color-default: transparent;
- --spectrum-actionbutton-background-color-hover: var(--spectrum-gray-300);
+ --spectrum-actionbutton-background-color-hover: var(--spectrum-gray-200);
--spectrum-actionbutton-background-color-down: var(--spectrum-gray-400);
- --spectrum-actionbutton-background-color-focus: var(--spectrum-gray-300);
+ --spectrum-actionbutton-background-color-focus: var(--spectrum-gray-200);
}
&.spectrum-ActionButton--staticBlack,
diff --git a/components/actionbutton/themes/spectrum.css b/components/actionbutton/themes/spectrum.css
index 30de8aaf3a6..23a64b906b8 100644
--- a/components/actionbutton/themes/spectrum.css
+++ b/components/actionbutton/themes/spectrum.css
@@ -12,10 +12,10 @@ governing permissions and limitations under the License.
@container (--system: spectrum) {
.spectrum-ActionButton {
- --spectrum-actionbutton-background-color-default: var(--spectrum-gray-75);
- --spectrum-actionbutton-background-color-hover: var(--spectrum-gray-200);
- --spectrum-actionbutton-background-color-down: var(--spectrum-gray-300);
- --spectrum-actionbutton-background-color-focus: var(--spectrum-gray-200);
+ --spectrum-actionbutton-background-color-default: var(--spectrum-gray-50);
+ --spectrum-actionbutton-background-color-hover: var(--spectrum-gray-100);
+ --spectrum-actionbutton-background-color-down: var(--spectrum-gray-200);
+ --spectrum-actionbutton-background-color-focus: var(--spectrum-gray-100);
--spectrum-actionbutton-border-color-default: var(--spectrum-gray-400);
--spectrum-actionbutton-border-color-hover: var(--spectrum-gray-500);
@@ -28,9 +28,9 @@ governing permissions and limitations under the License.
&.spectrum-ActionButton--quiet {
--spectrum-actionbutton-background-color-default: transparent;
- --spectrum-actionbutton-background-color-hover: var(--spectrum-gray-200);
- --spectrum-actionbutton-background-color-down: var(--spectrum-gray-300);
- --spectrum-actionbutton-background-color-focus: var(--spectrum-gray-200);
+ --spectrum-actionbutton-background-color-hover: var(--spectrum-gray-100);
+ --spectrum-actionbutton-background-color-down: var(--spectrum-gray-200);
+ --spectrum-actionbutton-background-color-focus: var(--spectrum-gray-100);
--spectrum-actionbutton-border-color-default: transparent;
--spectrum-actionbutton-border-color-hover: transparent;
diff --git a/components/actiongroup/CHANGELOG.md b/components/actiongroup/CHANGELOG.md
index 24dd3ddd1be..8fedace7a32 100644
--- a/components/actiongroup/CHANGELOG.md
+++ b/components/actiongroup/CHANGELOG.md
@@ -8,15 +8,17 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
🗓
2024-04-18 • 📝 [Commits](https://github.com/adobe/spectrum-css/compare/@spectrum-css/actiongroup@4.2.5...@spectrum-css/actiongroup@5.0.0)
-\*feat!: postcss config build and script; remove gulp (#2466)([b0f337b](https://github.com/adobe/spectrum-css/commit/b0f337b)), closes[#2466](https://github.com/adobe/spectrum-css/issues/2466)
+- feat!: postcss config build and script; remove gulp (#2466)([b0f337b](https://github.com/adobe/spectrum-css/commit/b0f337b)), closes[#2466](https://github.com/adobe/spectrum-css/issues/2466)
- ###
- 🛑 BREAKING CHANGES
+ ###
- *
- - Removes component-builder & component-builder-simple for script leveraging postcss
+ 🛑 BREAKING CHANGES
+
+ -
+
+ * Removes component-builder & component-builder-simple for script leveraging postcss
-- Imports added to index.css and themes/express.css
+* Imports added to index.css and themes/express.css
##4.2.5
diff --git a/components/actiongroup/index.css b/components/actiongroup/index.css
index 7f78b2945f1..492f0be14f5 100644
--- a/components/actiongroup/index.css
+++ b/components/actiongroup/index.css
@@ -16,6 +16,7 @@ governing permissions and limitations under the License.
--spectrum-actiongroup-button-spacing-reset: 0;
--spectrum-actiongroup-border-radius-reset: 0;
--spectrum-actiongroup-border-radius: var(--spectrum-corner-radius-100);
+ --spectrum-actiongroup-gap-size-compact: var(--spectrum-spacing-50);
}
.spectrum-ActionGroup--sizeXS,
@@ -76,15 +77,6 @@ governing permissions and limitations under the License.
border-start-start-radius: var(--mod-actiongroup-border-radius, var(--spectrum-actiongroup-border-radius));
border-end-start-radius: var(--mod-actiongroup-border-radius, var(--spectrum-actiongroup-border-radius));
- margin-inline-start: var(--mod-actiongroup-button-spacing-reset, var(--spectrum-actiongroup-button-spacing-reset));
- }
-
- & + .spectrum-ActionGroup-item {
- /* Action button passthrough styling */
- --mod-actionbutton-focus-indicator-border-radius: 0px;
-
- margin-inline-start: var(--mod-actiongroup-horizontal-spacing-compact, var(--spectrum-actiongroup-horizontal-spacing-compact));
- margin-inline-end: var(--mod-actiongroup-horizontal-spacing-compact, var(--spectrum-actiongroup-horizontal-spacing-compact));
}
&:last-child {
@@ -93,8 +85,6 @@ governing permissions and limitations under the License.
border-start-end-radius: var(--mod-actiongroup-border-radius, var(--spectrum-actiongroup-border-radius));
border-end-end-radius: var(--mod-actiongroup-border-radius, var(--spectrum-actiongroup-border-radius));
- margin-inline-start: var(--mod-actiongroup-horizontal-spacing-compact, var(--spectrum-actiongroup-horizontal-spacing-compact));
- margin-inline-end: var(--mod-actiongroup-border-radius-reset, var(--spectrum-actiongroup-border-radius-reset));
}
&.is-selected {
@@ -128,16 +118,6 @@ governing permissions and limitations under the License.
border-start-start-radius: var(--mod-actiongroup-border-radius, var(--spectrum-actiongroup-border-radius));
border-start-end-radius: var(--mod-actiongroup-border-radius, var(--spectrum-actiongroup-border-radius));
- margin-inline-end: var(--mod-actiongroup-button-spacing-reset, var(--spectrum-actiongroup-button-spacing-reset));
- margin-block-start: var(--mod-actiongroup-vertical-spacing-compact, var(--spectrum-actiongroup-vertical-spacing-compact));
- margin-block-end: var(--mod-actiongroup-vertical-spacing-compact, var(--spectrum-actiongroup-vertical-spacing-compact));
- }
-
- & + .spectrum-ActionGroup-item {
- margin-inline-start: var(--mod-actiongroup-button-spacing-reset, var(--spectrum-actiongroup-button-spacing-reset));
- margin-inline-end: var(--mod-actiongroup-button-spacing-reset, var(--spectrum-actiongroup-button-spacing-reset));
- margin-block-start: var(--mod-actiongroup-button-spacing-reset, var(--spectrum-actiongroup-button-spacing-reset));
- margin-block-end: var(--mod-actiongroup-vertical-spacing-compact, var(--spectrum-actiongroup-vertical-spacing-compact));
}
&:last-child {
@@ -146,8 +126,6 @@ governing permissions and limitations under the License.
border-end-start-radius: var(--mod-actiongroup-border-radius, var(--spectrum-actiongroup-border-radius));
border-end-end-radius: var(--mod-actiongroup-border-radius, var(--spectrum-actiongroup-border-radius));
- margin-block-start: var(--mod-actiongroup-vertical-spacing-compact, var(--spectrum-actiongroup-vertical-spacing-compact));
- margin-block-end: var(--mod-actiongroup-button-spacing-reset, var(--spectrum-actiongroup-button-spacing-reset));
}
}
}
diff --git a/components/actiongroup/metadata/mods.md b/components/actiongroup/metadata/mods.md
index 2fcc384c89f..50e28461152 100644
--- a/components/actiongroup/metadata/mods.md
+++ b/components/actiongroup/metadata/mods.md
@@ -2,9 +2,6 @@
| ---------------------------------------------- |
| `--mod-actiongroup-border-radius` |
| `--mod-actiongroup-border-radius-reset` |
-| `--mod-actiongroup-button-spacing-reset` |
| `--mod-actiongroup-gap-size-compact` |
-| `--mod-actiongroup-horizontal-spacing-compact` |
| `--mod-actiongroup-horizontal-spacing-regular` |
-| `--mod-actiongroup-vertical-spacing-compact` |
| `--mod-actiongroup-vertical-spacing-regular` |
diff --git a/components/actiongroup/package.json b/components/actiongroup/package.json
index 55435c861ec..82f2a6e095d 100644
--- a/components/actiongroup/package.json
+++ b/components/actiongroup/package.json
@@ -1,42 +1,40 @@
{
- "name": "@spectrum-css/actiongroup",
- "version": "5.0.0",
- "description": "The Spectrum CSS actiongroup component",
- "license": "Apache-2.0",
- "author": "Adobe",
- "homepage": "https://opensource.adobe.com/spectrum-css/actiongroup",
- "repository": {
- "type": "git",
- "url": "https://github.com/adobe/spectrum-css.git",
- "directory": "components/actiongroup"
- },
- "bugs": {
- "url": "https://github.com/adobe/spectrum-css/issues"
- },
- "main": "dist/index.css",
- "files": [
- "dist/*",
- "CHANGELOG.md",
- "package.json",
- "stories/template.js",
- "metadata/mods.md"
- ],
- "peerDependencies": {
- "@spectrum-css/actionbutton": ">=5",
- "@spectrum-css/tokens": ">=13"
- },
- "peerDependenciesMeta": {
- "@spectrum-css/actionbutton": {
- "optional": true
- }
- },
- "keywords": [
- "spectrum",
- "css",
- "design system",
- "adobe"
- ],
- "publishConfig": {
- "access": "public"
- }
+ "name": "@spectrum-css/actiongroup",
+ "version": "5.0.0-next.3",
+ "description": "The Spectrum CSS actiongroup component",
+ "license": "Apache-2.0",
+ "author": "Adobe",
+ "homepage": "https://opensource.adobe.com/spectrum-css/actiongroup",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/adobe/spectrum-css.git",
+ "directory": "components/actiongroup"
+ },
+ "bugs": {
+ "url": "https://github.com/adobe/spectrum-css/issues"
+ },
+ "main": "dist/index.css",
+ "files": [
+ "dist/*",
+ "metadata/mods.md",
+ "stories/template.js"
+ ],
+ "peerDependencies": {
+ "@spectrum-css/actionbutton": ">=5",
+ "@spectrum-css/tokens": ">=14.0.0-next.3"
+ },
+ "peerDependenciesMeta": {
+ "@spectrum-css/actionbutton": {
+ "optional": true
+ }
+ },
+ "keywords": [
+ "adobe",
+ "css",
+ "design system",
+ "spectrum"
+ ],
+ "publishConfig": {
+ "access": "public"
+ }
}
diff --git a/components/actiongroup/stories/actiongroup.stories.js b/components/actiongroup/stories/actiongroup.stories.js
index 056eb3d71f9..77eb03f8345 100644
--- a/components/actiongroup/stories/actiongroup.stories.js
+++ b/components/actiongroup/stories/actiongroup.stories.js
@@ -117,8 +117,22 @@ Justified.args = {
content: items
};
+export const JustifiedCompact = Template.bind({});
+JustifiedCompact.args = {
+ justified: true,
+ compact: true,
+ content: items,
+};
+
export const Quiet = Template.bind({});
Quiet.args = {
areQuiet: true,
content: items
};
+
+export const QuietCompact = Template.bind({});
+QuietCompact.args = {
+ areQuiet: true,
+ compact: true,
+ content: items,
+};
diff --git a/components/actiongroup/themes/express.css b/components/actiongroup/themes/express.css
index 73630a7c0b2..48de489f60a 100644
--- a/components/actiongroup/themes/express.css
+++ b/components/actiongroup/themes/express.css
@@ -13,11 +13,4 @@ governing permissions and limitations under the License.
@import "./spectrum.css";
@container (--system: express) {
- .spectrum-ActionGroup {
- --spectrum-actiongroup-gap-size-compact: var(--spectrum-spacing-50);
-
- /* account for button border */
- --spectrum-actiongroup-horizontal-spacing-compact: calc(-1px * var(--spectrum-spacing-50));
- --spectrum-actiongroup-vertical-spacing-compact: calc(-1px * var(--spectrum-spacing-50));
- }
}
diff --git a/components/actiongroup/themes/spectrum.css b/components/actiongroup/themes/spectrum.css
index 0b606f3f6b3..7507c3c1e64 100644
--- a/components/actiongroup/themes/spectrum.css
+++ b/components/actiongroup/themes/spectrum.css
@@ -11,11 +11,4 @@ governing permissions and limitations under the License.
*/
@container (--system: spectrum) {
- .spectrum-ActionGroup {
- --spectrum-actiongroup-gap-size-compact: 0;
-
- /* account for button border */
- --spectrum-actiongroup-horizontal-spacing-compact: -1px;
- --spectrum-actiongroup-vertical-spacing-compact: -1px;
- }
}
diff --git a/components/actionmenu/package.json b/components/actionmenu/package.json
index 87a9d365836..3342b7caa31 100644
--- a/components/actionmenu/package.json
+++ b/components/actionmenu/package.json
@@ -32,7 +32,7 @@
"@spectrum-css/icon": ">=4",
"@spectrum-css/menu": ">=5",
"@spectrum-css/popover": ">=6",
- "@spectrum-css/tokens": ">=13"
+ "@spectrum-css/tokens": ">=14.0.0-next.3"
},
"publishConfig": {
"access": "public"
diff --git a/components/alertbanner/package.json b/components/alertbanner/package.json
index 197e1fb3f6d..56a5fe0de15 100644
--- a/components/alertbanner/package.json
+++ b/components/alertbanner/package.json
@@ -1,45 +1,43 @@
{
- "name": "@spectrum-css/alertbanner",
- "version": "2.0.0",
- "description": "The Spectrum CSS alertbanner component",
- "license": "Apache-2.0",
- "author": "Adobe",
- "homepage": "https://opensource.adobe.com/spectrum-css/alertbanner",
- "repository": {
- "type": "git",
- "url": "https://github.com/adobe/spectrum-css.git",
- "directory": "components/alertbanner"
- },
- "bugs": {
- "url": "https://github.com/adobe/spectrum-css/issues"
- },
- "main": "dist/index.css",
- "files": [
- "dist/*",
- "CHANGELOG.md",
- "package.json",
- "stories/template.js",
- "metadata/mods.md"
- ],
- "peerDependencies": {
- "@spectrum-css/button": ">=11",
- "@spectrum-css/closebutton": ">=4",
- "@spectrum-css/divider": ">=2",
- "@spectrum-css/icon": ">=4",
- "@spectrum-css/tokens": ">=13"
- },
- "peerDependenciesMeta": {
- "@spectrum-css/icon": {
- "optional": true
- }
- },
- "keywords": [
- "spectrum",
- "css",
- "design system",
- "adobe"
- ],
- "publishConfig": {
- "access": "public"
- }
+ "name": "@spectrum-css/alertbanner",
+ "version": "2.0.0",
+ "description": "The Spectrum CSS alertbanner component",
+ "license": "Apache-2.0",
+ "author": "Adobe",
+ "homepage": "https://opensource.adobe.com/spectrum-css/alertbanner",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/adobe/spectrum-css.git",
+ "directory": "components/alertbanner"
+ },
+ "bugs": {
+ "url": "https://github.com/adobe/spectrum-css/issues"
+ },
+ "main": "dist/index.css",
+ "files": [
+ "dist/*",
+ "metadata/mods.md",
+ "stories/template.js"
+ ],
+ "peerDependencies": {
+ "@spectrum-css/button": ">=11",
+ "@spectrum-css/closebutton": ">=4",
+ "@spectrum-css/divider": ">=2",
+ "@spectrum-css/icon": ">=4",
+ "@spectrum-css/tokens": ">=14.0.0-next.3"
+ },
+ "peerDependenciesMeta": {
+ "@spectrum-css/icon": {
+ "optional": true
+ }
+ },
+ "keywords": [
+ "adobe",
+ "css",
+ "design system",
+ "spectrum"
+ ],
+ "publishConfig": {
+ "access": "public"
+ }
}
diff --git a/components/alertdialog/package.json b/components/alertdialog/package.json
index 9172858ddb2..8a80cd9dfc2 100644
--- a/components/alertdialog/package.json
+++ b/components/alertdialog/package.json
@@ -1,49 +1,47 @@
{
- "name": "@spectrum-css/alertdialog",
- "version": "2.0.0",
- "description": "The Spectrum CSS alertdialog component",
- "license": "Apache-2.0",
- "author": "Adobe",
- "homepage": "https://opensource.adobe.com/spectrum-css/",
- "repository": {
- "type": "git",
- "url": "https://github.com/adobe/spectrum-css.git",
- "directory": "components/alertdialog"
- },
- "bugs": {
- "url": "https://github.com/adobe/spectrum-css/issues"
- },
- "main": "dist/index.css",
- "files": [
- "dist/*",
- "CHANGELOG.md",
- "package.json",
- "stories/template.js",
- "metadata/mods.md"
- ],
- "peerDependencies": {
- "@spectrum-css/buttongroup": ">=6",
- "@spectrum-css/divider": ">=2",
- "@spectrum-css/icon": ">=4",
- "@spectrum-css/modal": ">=4",
- "@spectrum-css/tokens": ">=13",
- "@spectrum-css/underlay": ">=3"
- },
- "peerDependenciesMeta": {
- "@spectrum-css/buttongroup": {
- "optional": true
- },
- "@spectrum-css/icon": {
- "optional": true
- }
- },
- "keywords": [
- "spectrum",
- "css",
- "design system",
- "adobe"
- ],
- "publishConfig": {
- "access": "public"
- }
+ "name": "@spectrum-css/alertdialog",
+ "version": "2.0.0",
+ "description": "The Spectrum CSS alertdialog component",
+ "license": "Apache-2.0",
+ "author": "Adobe",
+ "homepage": "https://opensource.adobe.com/spectrum-css/",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/adobe/spectrum-css.git",
+ "directory": "components/alertdialog"
+ },
+ "bugs": {
+ "url": "https://github.com/adobe/spectrum-css/issues"
+ },
+ "main": "dist/index.css",
+ "files": [
+ "dist/*",
+ "metadata/mods.md",
+ "stories/template.js"
+ ],
+ "peerDependencies": {
+ "@spectrum-css/buttongroup": ">=6",
+ "@spectrum-css/divider": ">=2",
+ "@spectrum-css/icon": ">=4",
+ "@spectrum-css/modal": ">=4",
+ "@spectrum-css/tokens": ">=14.0.0-next.3",
+ "@spectrum-css/underlay": ">=3"
+ },
+ "peerDependenciesMeta": {
+ "@spectrum-css/buttongroup": {
+ "optional": true
+ },
+ "@spectrum-css/icon": {
+ "optional": true
+ }
+ },
+ "keywords": [
+ "adobe",
+ "css",
+ "design system",
+ "spectrum"
+ ],
+ "publishConfig": {
+ "access": "public"
+ }
}
diff --git a/components/asset/index.css b/components/asset/index.css
index 29fdf09c0fd..8c83901a8de 100644
--- a/components/asset/index.css
+++ b/components/asset/index.css
@@ -42,7 +42,7 @@ governing permissions and limitations under the License.
--highcontrast-asset-folder-background-color,
var(
--mod-asset-folder-background-color,
- var(--spectrum-gray-300)
+ var(--spectrum-gray-200)
)
);
}
@@ -52,7 +52,7 @@ governing permissions and limitations under the License.
--highcontrast-asset-file-background-color,
var(
--mod-asset-file-background-color,
- var(--spectrum-gray-50)
+ var(--spectrum-gray-25)
)
);
}
diff --git a/components/asset/package.json b/components/asset/package.json
index 761e94f5d31..dbe238afd24 100644
--- a/components/asset/package.json
+++ b/components/asset/package.json
@@ -1,36 +1,34 @@
{
- "name": "@spectrum-css/asset",
- "version": "5.0.0",
- "description": "The Spectrum CSS asset component",
- "license": "Apache-2.0",
- "author": "Adobe",
- "homepage": "https://opensource.adobe.com/spectrum-css/asset",
- "repository": {
- "type": "git",
- "url": "https://github.com/adobe/spectrum-css.git",
- "directory": "components/asset"
- },
- "bugs": {
- "url": "https://github.com/adobe/spectrum-css/issues"
- },
- "main": "dist/index.css",
- "files": [
- "dist/*",
- "CHANGELOG.md",
- "package.json",
- "stories/template.js",
- "metadata/mods.md"
- ],
- "peerDependencies": {
- "@spectrum-css/tokens": ">=13"
- },
- "keywords": [
- "spectrum",
- "css",
- "design system",
- "adobe"
- ],
- "publishConfig": {
- "access": "public"
- }
+ "name": "@spectrum-css/asset",
+ "version": "5.0.0",
+ "description": "The Spectrum CSS asset component",
+ "license": "Apache-2.0",
+ "author": "Adobe",
+ "homepage": "https://opensource.adobe.com/spectrum-css/asset",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/adobe/spectrum-css.git",
+ "directory": "components/asset"
+ },
+ "bugs": {
+ "url": "https://github.com/adobe/spectrum-css/issues"
+ },
+ "main": "dist/index.css",
+ "files": [
+ "dist/*",
+ "metadata/mods.md",
+ "stories/template.js"
+ ],
+ "peerDependencies": {
+ "@spectrum-css/tokens": ">=14.0.0-next.3"
+ },
+ "keywords": [
+ "adobe",
+ "css",
+ "design system",
+ "spectrum"
+ ],
+ "publishConfig": {
+ "access": "public"
+ }
}
diff --git a/components/assetcard/index.css b/components/assetcard/index.css
index 418275e4019..ab9ca3238c3 100644
--- a/components/assetcard/index.css
+++ b/components/assetcard/index.css
@@ -16,7 +16,7 @@ governing permissions and limitations under the License.
.spectrum-AssetCard {
/* todo: this isn't quite the size from the XD file as 232px is not a size token, so we use 224px */
--spectrum-assetcard-asset-size: 224px;
- --spectrum-assetcard-background-color: var(--spectrum-gray-200);
+ --spectrum-assetcard-background-color: var(--spectrum-gray-100);
--spectrum-assetcard-asset-animation-duration: var(--spectrum-animation-duration-100);
--spectrum-assetcard-asset-container-border-size: 1px;
--spectrum-assetcard-header-margin-block-start: var(--spectrum-spacing-300);
diff --git a/components/assetcard/package.json b/components/assetcard/package.json
index d4955ebf1f2..e161afc5742 100644
--- a/components/assetcard/package.json
+++ b/components/assetcard/package.json
@@ -1,42 +1,40 @@
{
- "name": "@spectrum-css/assetcard",
- "version": "4.0.0",
- "description": "The Spectrum CSS asset card component",
- "license": "Apache-2.0",
- "author": "Adobe",
- "homepage": "https://opensource.adobe.com/spectrum-css/assetcard",
- "repository": {
- "type": "git",
- "url": "https://github.com/adobe/spectrum-css.git",
- "directory": "components/assetcard"
- },
- "bugs": {
- "url": "https://github.com/adobe/spectrum-css/issues"
- },
- "main": "dist/index.css",
- "files": [
- "dist/*",
- "CHANGELOG.md",
- "package.json",
- "stories/template.js",
- "metadata/mods.md"
- ],
- "peerDependencies": {
- "@spectrum-css/checkbox": ">=7",
- "@spectrum-css/tokens": ">=13"
- },
- "peerDependenciesMeta": {
- "@spectrum-css/checkbox": {
- "optional": true
- }
- },
- "keywords": [
- "spectrum",
- "css",
- "design system",
- "adobe"
- ],
- "publishConfig": {
- "access": "public"
- }
+ "name": "@spectrum-css/assetcard",
+ "version": "4.0.0",
+ "description": "The Spectrum CSS asset card component",
+ "license": "Apache-2.0",
+ "author": "Adobe",
+ "homepage": "https://opensource.adobe.com/spectrum-css/assetcard",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/adobe/spectrum-css.git",
+ "directory": "components/assetcard"
+ },
+ "bugs": {
+ "url": "https://github.com/adobe/spectrum-css/issues"
+ },
+ "main": "dist/index.css",
+ "files": [
+ "dist/*",
+ "metadata/mods.md",
+ "stories/template.js"
+ ],
+ "peerDependencies": {
+ "@spectrum-css/checkbox": ">=7",
+ "@spectrum-css/tokens": ">=14.0.0-next.3"
+ },
+ "peerDependenciesMeta": {
+ "@spectrum-css/checkbox": {
+ "optional": true
+ }
+ },
+ "keywords": [
+ "adobe",
+ "css",
+ "design system",
+ "spectrum"
+ ],
+ "publishConfig": {
+ "access": "public"
+ }
}
diff --git a/components/assetlist/index.css b/components/assetlist/index.css
index ccb9ba09be3..73b035f3fa5 100644
--- a/components/assetlist/index.css
+++ b/components/assetlist/index.css
@@ -23,8 +23,8 @@ governing permissions and limitations under the License.
--spectrum-assetlist-item-animation: var(--spectrum-animation-duration-100);
--spectrum-assetlist-item-font-size: var(--spectrum-font-size-100);
--spectrum-assetlist-item-font-weight: var(--spectrum-regular-font-weight);
- --spectrum-assetlist-item-background-color-down: var(--spectrum-gray-300);
- --spectrum-assetlist-item-background-color-hover: var(--spectrum-gray-200);
+ --spectrum-assetlist-item-background-color-down: var(--spectrum-gray-200);
+ --spectrum-assetlist-item-background-color-hover: var(--spectrum-gray-100);
/* thumbnail */
--spectrum-assetlist-thumbnail-width: var(--spectrum-spacing-400);
diff --git a/components/assetlist/package.json b/components/assetlist/package.json
index 435d773f7cb..71496b13d7e 100644
--- a/components/assetlist/package.json
+++ b/components/assetlist/package.json
@@ -1,46 +1,44 @@
{
- "name": "@spectrum-css/assetlist",
- "version": "6.0.0",
- "description": "The Spectrum CSS assetlist component",
- "license": "Apache-2.0",
- "author": "Adobe",
- "homepage": "https://opensource.adobe.com/spectrum-css/assetlist",
- "repository": {
- "type": "git",
- "url": "https://github.com/adobe/spectrum-css.git",
- "directory": "components/assetlist"
- },
- "bugs": {
- "url": "https://github.com/adobe/spectrum-css/issues"
- },
- "main": "dist/index.css",
- "files": [
- "dist/*",
- "CHANGELOG.md",
- "package.json",
- "stories/template.js",
- "metadata/mods.md"
- ],
- "peerDependencies": {
- "@spectrum-css/checkbox": ">=8",
- "@spectrum-css/icon": ">=4",
- "@spectrum-css/tokens": ">=13"
- },
- "peerDependenciesMeta": {
- "@spectrum-css/checkbox": {
- "optional": true
- },
- "@spectrum-css/icon": {
- "optional": true
- }
- },
- "keywords": [
- "spectrum",
- "css",
- "design system",
- "adobe"
- ],
- "publishConfig": {
- "access": "public"
- }
+ "name": "@spectrum-css/assetlist",
+ "version": "6.0.0",
+ "description": "The Spectrum CSS assetlist component",
+ "license": "Apache-2.0",
+ "author": "Adobe",
+ "homepage": "https://opensource.adobe.com/spectrum-css/assetlist",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/adobe/spectrum-css.git",
+ "directory": "components/assetlist"
+ },
+ "bugs": {
+ "url": "https://github.com/adobe/spectrum-css/issues"
+ },
+ "main": "dist/index.css",
+ "files": [
+ "dist/*",
+ "metadata/mods.md",
+ "stories/template.js"
+ ],
+ "peerDependencies": {
+ "@spectrum-css/checkbox": ">=8",
+ "@spectrum-css/icon": ">=4",
+ "@spectrum-css/tokens": ">=14.0.0-next.3"
+ },
+ "peerDependenciesMeta": {
+ "@spectrum-css/checkbox": {
+ "optional": true
+ },
+ "@spectrum-css/icon": {
+ "optional": true
+ }
+ },
+ "keywords": [
+ "adobe",
+ "css",
+ "design system",
+ "spectrum"
+ ],
+ "publishConfig": {
+ "access": "public"
+ }
}
diff --git a/components/avatar/package.json b/components/avatar/package.json
index 2b557aeb2d5..c0bbcdc3428 100644
--- a/components/avatar/package.json
+++ b/components/avatar/package.json
@@ -1,36 +1,34 @@
{
- "name": "@spectrum-css/avatar",
- "version": "7.0.0",
- "description": "The Spectrum CSS avatar component",
- "license": "Apache-2.0",
- "author": "Adobe",
- "homepage": "https://opensource.adobe.com/spectrum-css/avatar",
- "repository": {
- "type": "git",
- "url": "https://github.com/adobe/spectrum-css.git",
- "directory": "components/avatar"
- },
- "bugs": {
- "url": "https://github.com/adobe/spectrum-css/issues"
- },
- "main": "dist/index.css",
- "files": [
- "dist/*",
- "CHANGELOG.md",
- "package.json",
- "stories/template.js",
- "metadata/mods.md"
- ],
- "peerDependencies": {
- "@spectrum-css/tokens": ">=13"
- },
- "keywords": [
- "spectrum",
- "css",
- "design system",
- "adobe"
- ],
- "publishConfig": {
- "access": "public"
- }
+ "name": "@spectrum-css/avatar",
+ "version": "7.0.0",
+ "description": "The Spectrum CSS avatar component",
+ "license": "Apache-2.0",
+ "author": "Adobe",
+ "homepage": "https://opensource.adobe.com/spectrum-css/avatar",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/adobe/spectrum-css.git",
+ "directory": "components/avatar"
+ },
+ "bugs": {
+ "url": "https://github.com/adobe/spectrum-css/issues"
+ },
+ "main": "dist/index.css",
+ "files": [
+ "dist/*",
+ "metadata/mods.md",
+ "stories/template.js"
+ ],
+ "peerDependencies": {
+ "@spectrum-css/tokens": ">=14.0.0-next.3"
+ },
+ "keywords": [
+ "adobe",
+ "css",
+ "design system",
+ "spectrum"
+ ],
+ "publishConfig": {
+ "access": "public"
+ }
}
diff --git a/components/badge/package.json b/components/badge/package.json
index ca189b0a3d6..0a59f305457 100644
--- a/components/badge/package.json
+++ b/components/badge/package.json
@@ -1,42 +1,40 @@
{
- "name": "@spectrum-css/badge",
- "version": "4.0.0",
- "description": "The Spectrum CSS badge component",
- "license": "Apache-2.0",
- "author": "Adobe",
- "homepage": "https://opensource.adobe.com/spectrum-css/badge",
- "repository": {
- "type": "git",
- "url": "https://github.com/adobe/spectrum-css.git",
- "directory": "components/badge"
- },
- "bugs": {
- "url": "https://github.com/adobe/spectrum-css/issues"
- },
- "main": "dist/index.css",
- "files": [
- "dist/*",
- "CHANGELOG.md",
- "package.json",
- "stories/template.js",
- "metadata/mods.md"
- ],
- "peerDependencies": {
- "@spectrum-css/icon": ">=4",
- "@spectrum-css/tokens": ">=13"
- },
- "peerDependenciesMeta": {
- "@spectrum-css/icon": {
- "optional": true
- }
- },
- "keywords": [
- "spectrum",
- "css",
- "design system",
- "adobe"
- ],
- "publishConfig": {
- "access": "public"
- }
+ "name": "@spectrum-css/badge",
+ "version": "4.0.0",
+ "description": "The Spectrum CSS badge component",
+ "license": "Apache-2.0",
+ "author": "Adobe",
+ "homepage": "https://opensource.adobe.com/spectrum-css/badge",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/adobe/spectrum-css.git",
+ "directory": "components/badge"
+ },
+ "bugs": {
+ "url": "https://github.com/adobe/spectrum-css/issues"
+ },
+ "main": "dist/index.css",
+ "files": [
+ "dist/*",
+ "metadata/mods.md",
+ "stories/template.js"
+ ],
+ "peerDependencies": {
+ "@spectrum-css/icon": ">=4",
+ "@spectrum-css/tokens": ">=14.0.0-next.3"
+ },
+ "peerDependenciesMeta": {
+ "@spectrum-css/icon": {
+ "optional": true
+ }
+ },
+ "keywords": [
+ "adobe",
+ "css",
+ "design system",
+ "spectrum"
+ ],
+ "publishConfig": {
+ "access": "public"
+ }
}
diff --git a/components/breadcrumb/package.json b/components/breadcrumb/package.json
index e0d2394163c..c45563fd60d 100644
--- a/components/breadcrumb/package.json
+++ b/components/breadcrumb/package.json
@@ -1,46 +1,44 @@
{
- "name": "@spectrum-css/breadcrumb",
- "version": "9.0.0",
- "description": "The Spectrum CSS breadcrumb component",
- "license": "Apache-2.0",
- "author": "Adobe",
- "homepage": "https://opensource.adobe.com/spectrum-css/breadcrumb",
- "repository": {
- "type": "git",
- "url": "https://github.com/adobe/spectrum-css.git",
- "directory": "components/breadcrumb"
- },
- "bugs": {
- "url": "https://github.com/adobe/spectrum-css/issues"
- },
- "main": "dist/index.css",
- "files": [
- "dist/*",
- "CHANGELOG.md",
- "package.json",
- "stories/template.js",
- "metadata/mods.md"
- ],
- "peerDependencies": {
- "@spectrum-css/actionbutton": ">=5",
- "@spectrum-css/icon": ">=4",
- "@spectrum-css/tokens": ">=13"
- },
- "peerDependenciesMeta": {
- "@spectrum-css/actionbutton": {
- "optional": true
- },
- "@spectrum-css/icon": {
- "optional": true
- }
- },
- "keywords": [
- "spectrum",
- "css",
- "design system",
- "adobe"
- ],
- "publishConfig": {
- "access": "public"
- }
+ "name": "@spectrum-css/breadcrumb",
+ "version": "9.0.0",
+ "description": "The Spectrum CSS breadcrumb component",
+ "license": "Apache-2.0",
+ "author": "Adobe",
+ "homepage": "https://opensource.adobe.com/spectrum-css/breadcrumb",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/adobe/spectrum-css.git",
+ "directory": "components/breadcrumb"
+ },
+ "bugs": {
+ "url": "https://github.com/adobe/spectrum-css/issues"
+ },
+ "main": "dist/index.css",
+ "files": [
+ "dist/*",
+ "metadata/mods.md",
+ "stories/template.js"
+ ],
+ "peerDependencies": {
+ "@spectrum-css/actionbutton": ">=5",
+ "@spectrum-css/icon": ">=4",
+ "@spectrum-css/tokens": ">=14.0.0-next.3"
+ },
+ "peerDependenciesMeta": {
+ "@spectrum-css/actionbutton": {
+ "optional": true
+ },
+ "@spectrum-css/icon": {
+ "optional": true
+ }
+ },
+ "keywords": [
+ "adobe",
+ "css",
+ "design system",
+ "spectrum"
+ ],
+ "publishConfig": {
+ "access": "public"
+ }
}
diff --git a/components/button/CHANGELOG.md b/components/button/CHANGELOG.md
index 7a472736e45..6ac2992ad7b 100644
--- a/components/button/CHANGELOG.md
+++ b/components/button/CHANGELOG.md
@@ -1,5 +1,31 @@
# Change Log
+## 14.0.0-next.6
+
+### Major Changes
+
+- [#2600](https://github.com/adobe/spectrum-css/pull/2600) [`3559678`](https://github.com/adobe/spectrum-css/commit/35596780a1309dd145fa565461d330ddfaf50e68) Thanks [@jawinn](https://github.com/jawinn)!
+
+#### Spectrum 2 migration
+ Button now uses Spectrum 2 tokens and specifications, which includes many color changes to all variants. A few other notable changes:
+
+ - Outline buttons are no longer available in accent and negative options — use the filled variant instead.
+ - Medium size is now the default. The class `.spectrum-Button--sizeM` is now unnecessary for this size, and has been removed.
+ - The `.spectrum-Button--fill` class is no longer needed and has been removed.
+
+ The following `--mod` custom properties have been renamed:
+
+ - `--mod-line-height-100` has been renamed to `--mod-button-line-height`
+ - `--mod-sans-font-family-stack` has been renamed to `--mod-button-font-family`
+ - `--mod-animation-duration-100` has been renamed to `--mod-button-animation-duration`
+ - `--mod-bold-font-weight` has been renamed to `--mod-button-font-weight`
+
+## 14.0.0-next.5
+
+### Patch Changes
+
+- [#2700](https://github.com/adobe/spectrum-css/pull/2700) [`fd0fbc2`](https://github.com/adobe/spectrum-css/commit/fd0fbc28ab944afdbfdc615e1108bc941beb93d5) Thanks [@castastrophe](https://github.com/castastrophe)! - chore: run branch through formatter
+
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
diff --git a/components/button/index.css b/components/button/index.css
index 748097bbc91..5da0ec6c1a8 100644
--- a/components/button/index.css
+++ b/components/button/index.css
@@ -10,72 +10,73 @@ OF ANY KIND, either express or implied. See the License for the specific languag
governing permissions and limitations under the License.
*/
-@import "./themes/express.css";
@import "@spectrum-css/commons/basebutton.css";
-/* default for all buttons */
.spectrum-Button {
--spectrum-button-animation-duration: var(--spectrum-animation-duration-100);
- --spectrum-button-border-radius: var(--spectrum-corner-radius-100);
- --spectrum-button-border-width: var(--spectrum-border-width-200);
- --spectrum-button-line-height: 1.2; /* Hack to keep buttons at 32px */
--spectrum-button-focus-ring-gap: var(--spectrum-focus-indicator-gap);
- --spectrum-button-focus-ring-border-radius: calc(var(--spectrum-button-border-radius) + var(--spectrum-button-focus-ring-gap));
--spectrum-button-focus-ring-thickness: var(--spectrum-focus-indicator-thickness);
--spectrum-button-focus-indicator-color: var(--spectrum-focus-indicator-color);
- --spectrum-button-intended-icon-size: var(--spectrum-workflow-icon-size-50);
+
+ --spectrum-button-min-width: calc(var(--spectrum-component-height-100) * var(--spectrum-button-minimum-width-multiplier));
+ --spectrum-button-height: var(--spectrum-component-height-100);
+
+ --spectrum-button-border-radius: calc(var(--spectrum-button-height) / 2);
+ --spectrum-button-border-width: var(--spectrum-border-width-200);
+
+ /* @todo set line-height using font size specific line-height tokens when they are finalized along with the new variable font. */
+ --spectrum-button-line-height: 1.2;
+ --spectrum-button-font-weight: var(--spectrum-bold-font-weight);
+ --spectrum-button-font-size: var(--spectrum-font-size-100);
+
+ --spectrum-button-edge-to-visual: calc(var(--spectrum-component-pill-edge-to-visual-100) - var(--mod-button-border-width, var(--spectrum-button-border-width)));
+ --spectrum-button-edge-to-visual-only: calc(var(--spectrum-component-pill-edge-to-visual-only-100) - var(--mod-button-border-width, var(--spectrum-button-border-width)));
+ --spectrum-button-edge-to-text: calc(var(--spectrum-component-pill-edge-to-text-100) - var(--mod-button-border-width, var(--spectrum-button-border-width)));
+ --spectrum-button-padding-label-to-icon: var(--spectrum-text-to-visual-100);
+ --spectrum-button-top-to-text: var(--spectrum-button-top-to-text-medium);
+ --spectrum-button-bottom-to-text: var(--spectrum-button-bottom-to-text-medium);
+ --spectrum-button-top-to-icon: var(--spectrum-component-top-to-workflow-icon-100);
+ --spectrum-button-intended-icon-size: var(--spectrum-workflow-icon-size-100);
--mod-progress-circle-position: absolute;
+ /* stylelint-disable-next-line spectrum-tools/no-unknown-custom-properties -- height and width are set by implementations */
+ --spectrum-downstate-perspective: max(var(--spectrum-downstate-height), var(--spectrum-downstate-width) * var(--spectrum-component-size-width-ratio-down));
+
+ &.spectrum-Button--iconOnly {
+ --spectrum-button-border-radius: var(--spectrum-corner-radius-full);
+ }
}
.spectrum-Button--sizeS {
--spectrum-button-min-width: calc(var(--spectrum-component-height-75) * var(--spectrum-button-minimum-width-multiplier));
-
- --spectrum-button-border-radius: var(--spectrum-component-pill-edge-to-text-75);
--spectrum-button-height: var(--spectrum-component-height-75);
--spectrum-button-font-size: var(--spectrum-font-size-75);
- --spectrum-button-edge-to-visual: calc(var(--spectrum-component-pill-edge-to-visual-75) - var(--spectrum-button-border-width));
- --spectrum-button-edge-to-visual-only: var(--spectrum-component-pill-edge-to-visual-only-75);
- --spectrum-button-edge-to-text: calc(var(--spectrum-component-pill-edge-to-text-75) - var(--spectrum-button-border-width));
+ --spectrum-button-edge-to-visual: calc(var(--spectrum-component-pill-edge-to-visual-75) - var(--mod-button-border-width, var(--spectrum-button-border-width)));
+ --spectrum-button-edge-to-visual-only: calc(var(--spectrum-component-pill-edge-to-visual-only-75) - var(--mod-button-border-width, var(--spectrum-button-border-width)));
+ --spectrum-button-edge-to-text: calc(var(--spectrum-component-pill-edge-to-text-75) - var(--mod-button-border-width, var(--spectrum-button-border-width)));
--spectrum-button-padding-label-to-icon: var(--spectrum-text-to-visual-75);
--spectrum-button-top-to-text: var(--spectrum-button-top-to-text-small);
--spectrum-button-bottom-to-text: var(--spectrum-button-bottom-to-text-small);
--spectrum-button-top-to-icon: var(--spectrum-component-top-to-workflow-icon-75);
--spectrum-button-intended-icon-size: var(--spectrum-workflow-icon-size-75);
-}
-
-.spectrum-Button--sizeM {
- --spectrum-button-min-width: calc(var(--spectrum-component-height-100) * var(--spectrum-button-minimum-width-multiplier));
-
- --spectrum-button-border-radius: var(--spectrum-component-pill-edge-to-text-100);
- --spectrum-button-height: var(--spectrum-component-height-100);
- --spectrum-button-font-size: var(--spectrum-font-size-100);
-
- --spectrum-button-edge-to-visual: calc(var(--spectrum-component-pill-edge-to-visual-100) - var(--spectrum-button-border-width));
- --spectrum-button-edge-to-visual-only: var(--spectrum-component-pill-edge-to-visual-only-100);
- --spectrum-button-edge-to-text: calc(var(--spectrum-component-pill-edge-to-text-100) - var(--spectrum-button-border-width));
- --spectrum-button-padding-label-to-icon: var(--spectrum-text-to-visual-100);
- --spectrum-button-top-to-text: var(--spectrum-button-top-to-text-medium);
- --spectrum-button-bottom-to-text: var(--spectrum-button-bottom-to-text-medium);
- --spectrum-button-top-to-icon: var(--spectrum-component-top-to-workflow-icon-100);
- --spectrum-button-intended-icon-size: var(--spectrum-workflow-icon-size-100);
+ &.spectrum-Button--iconOnly {
+ --spectrum-downstate-perspective: var(--spectrum-component-size-minimum-perspective-down);
+ }
}
.spectrum-Button--sizeL {
--spectrum-button-min-width: calc(var(--spectrum-component-height-200) * var(--spectrum-button-minimum-width-multiplier));
-
- --spectrum-button-border-radius: var(--spectrum-component-pill-edge-to-text-200);
--spectrum-button-height: var(--spectrum-component-height-200);
--spectrum-button-font-size: var(--spectrum-font-size-200);
- --spectrum-button-edge-to-visual: calc(var(--spectrum-component-pill-edge-to-visual-200) - var(--spectrum-button-border-width));
- --spectrum-button-edge-to-visual-only: var(--spectrum-component-pill-edge-to-visual-only-200);
- --spectrum-button-edge-to-text: calc(var(--spectrum-component-pill-edge-to-text-200) - var(--spectrum-button-border-width));
+ --spectrum-button-edge-to-visual: calc(var(--spectrum-component-pill-edge-to-visual-200) - var(--mod-button-border-width, var(--spectrum-button-border-width)));
+ --spectrum-button-edge-to-visual-only: calc(var(--spectrum-component-pill-edge-to-visual-only-200) - var(--mod-button-border-width, var(--spectrum-button-border-width)));
+ --spectrum-button-edge-to-text: calc(var(--spectrum-component-pill-edge-to-text-200) - var(--mod-button-border-width, var(--spectrum-button-border-width)));
--spectrum-button-padding-label-to-icon: var(--spectrum-text-to-visual-200);
--spectrum-button-top-to-text: var(--spectrum-button-top-to-text-large);
--spectrum-button-bottom-to-text: var(--spectrum-button-bottom-to-text-large);
@@ -85,15 +86,13 @@ governing permissions and limitations under the License.
.spectrum-Button--sizeXL {
--spectrum-button-min-width: calc(var(--spectrum-component-height-300) * var(--spectrum-button-minimum-width-multiplier));
-
- --spectrum-button-border-radius: var(--spectrum-component-pill-edge-to-text-300);
--spectrum-button-height: var(--spectrum-component-height-300);
--spectrum-button-font-size: var(--spectrum-font-size-300);
- --spectrum-button-edge-to-visual: calc(var(--spectrum-component-pill-edge-to-visual-300) - var(--spectrum-button-border-width));
- --spectrum-button-edge-to-visual-only: var(--spectrum-component-pill-edge-to-visual-only-300);
- --spectrum-button-edge-to-text: calc(var(--spectrum-component-pill-edge-to-text-300) - var(--spectrum-button-border-width));
+ --spectrum-button-edge-to-visual: calc(var(--spectrum-component-pill-edge-to-visual-300) - var(--mod-button-border-width, var(--spectrum-button-border-width)));
+ --spectrum-button-edge-to-visual-only: calc(var(--spectrum-component-pill-edge-to-visual-only-300) - var(--mod-button-border-width, var(--spectrum-button-border-width)));
+ --spectrum-button-edge-to-text: calc(var(--spectrum-component-pill-edge-to-text-300) - var(--mod-button-border-width, var(--spectrum-button-border-width)));
--spectrum-button-padding-label-to-icon: var(--spectrum-text-to-visual-300);
--spectrum-button-top-to-text: var(--spectrum-button-top-to-text-extra-large);
--spectrum-button-bottom-to-text: var(--spectrum-button-bottom-to-text-extra-large);
@@ -101,6 +100,235 @@ governing permissions and limitations under the License.
--spectrum-button-intended-icon-size: var(--spectrum-workflow-icon-size-300);
}
+/* Variants and colors */
+.spectrum-Button {
+ --spectrum-button-content-color-default: var(--spectrum-white);
+ --spectrum-button-content-color-hover: var(--spectrum-white);
+ --spectrum-button-content-color-down: var(--spectrum-white);
+ --spectrum-button-content-color-focus: var(--spectrum-white);
+
+ --spectrum-button-border-color-default: transparent;
+ --spectrum-button-border-color-hover: transparent;
+ --spectrum-button-border-color-down: transparent;
+ --spectrum-button-border-color-focus: transparent;
+
+ --spectrum-button-background-color-disabled: var(--spectrum-disabled-background-color);
+ --spectrum-button-border-color-disabled: transparent;
+ --spectrum-button-content-color-disabled: var(--spectrum-disabled-content-color);
+
+ &.spectrum-Button--outline {
+ --spectrum-button-background-color-disabled: transparent;
+ --spectrum-button-border-color-disabled: var(--spectrum-disabled-border-color);
+ --spectrum-button-content-color-disabled: var(--spectrum-disabled-content-color);
+ }
+
+ /* ---- Accent ---- */
+ /* Also shows as the default when a variant class is not used. */
+ &.spectrum-Button--accent,
+ & {
+ --spectrum-button-background-color-default: var(--spectrum-accent-background-color-default);
+ --spectrum-button-background-color-hover: var(--spectrum-accent-background-color-hover);
+ --spectrum-button-background-color-down: var(--spectrum-accent-background-color-down);
+ --spectrum-button-background-color-focus: var(--spectrum-accent-background-color-key-focus);
+ }
+
+ /* ---- Negative ---- */
+ &.spectrum-Button--negative {
+ --spectrum-button-background-color-default: var(--spectrum-negative-background-color-default);
+ --spectrum-button-background-color-hover: var(--spectrum-negative-background-color-hover);
+ --spectrum-button-background-color-down: var(--spectrum-negative-background-color-down);
+ --spectrum-button-background-color-focus: var(--spectrum-negative-background-color-key-focus);
+ }
+
+ /* ---- Primary ---- */
+ &.spectrum-Button--primary {
+ --spectrum-button-background-color-default: var(--spectrum-neutral-background-color-default);
+ --spectrum-button-background-color-hover: var(--spectrum-neutral-background-color-hover);
+ --spectrum-button-background-color-down: var(--spectrum-neutral-background-color-down);
+ --spectrum-button-background-color-focus: var(--spectrum-neutral-background-color-key-focus);
+
+ --spectrum-button-content-color-default: var(--spectrum-gray-25);
+ --spectrum-button-content-color-hover: var(--spectrum-gray-25);
+ --spectrum-button-content-color-down: var(--spectrum-gray-25);
+ --spectrum-button-content-color-focus: var(--spectrum-gray-25);
+
+ &.spectrum-Button--outline {
+ --spectrum-button-background-color-default: transparent;
+ --spectrum-button-background-color-hover: var(--spectrum-gray-100);
+ --spectrum-button-background-color-down: var(--spectrum-gray-100);
+ --spectrum-button-background-color-focus: var(--spectrum-gray-100);
+
+ --spectrum-button-border-color-default: var(--spectrum-gray-800);
+ --spectrum-button-border-color-hover: var(--spectrum-gray-900);
+ --spectrum-button-border-color-down: var(--spectrum-gray-900);
+ --spectrum-button-border-color-focus: var(--spectrum-gray-900);
+
+ --spectrum-button-content-color-default: var(--spectrum-neutral-content-color-default);
+ --spectrum-button-content-color-hover: var(--spectrum-neutral-content-color-hover);
+ --spectrum-button-content-color-down: var(--spectrum-neutral-content-color-down);
+ --spectrum-button-content-color-focus: var(--spectrum-neutral-content-color-key-focus);
+ }
+ }
+
+ /* ---- Secondary ---- */
+ &.spectrum-Button--secondary {
+ --spectrum-button-background-color-default: var(--spectrum-gray-100);
+ --spectrum-button-background-color-hover: var(--spectrum-gray-200);
+ --spectrum-button-background-color-down: var(--spectrum-gray-200);
+ --spectrum-button-background-color-focus: var(--spectrum-gray-200);
+
+ --spectrum-button-content-color-default: var(--spectrum-neutral-content-color-default);
+ --spectrum-button-content-color-hover: var(--spectrum-neutral-content-color-hover);
+ --spectrum-button-content-color-down: var(--spectrum-neutral-content-color-down);
+ --spectrum-button-content-color-focus: var(--spectrum-neutral-content-color-key-focus);
+
+ &.spectrum-Button--outline {
+ --spectrum-button-background-color-default: transparent;
+ --spectrum-button-background-color-hover: var(--spectrum-gray-100);
+ --spectrum-button-background-color-down: var(--spectrum-gray-100);
+ --spectrum-button-background-color-focus: var(--spectrum-gray-100);
+
+ --spectrum-button-border-color-default: var(--spectrum-gray-300);
+ --spectrum-button-border-color-hover: var(--spectrum-gray-400);
+ --spectrum-button-border-color-down: var(--spectrum-gray-400);
+ --spectrum-button-border-color-focus: var(--spectrum-gray-400);
+
+ --spectrum-button-content-color-default: var(--spectrum-neutral-content-color-default);
+ --spectrum-button-content-color-hover: var(--spectrum-neutral-content-color-hover);
+ --spectrum-button-content-color-down: var(--spectrum-neutral-content-color-down);
+ --spectrum-button-content-color-focus: var(--spectrum-neutral-content-color-key-focus);
+ }
+ }
+
+ /* ---- Static White ---- */
+ &.spectrum-Button--staticWhite {
+ --spectrum-button-background-color-default: var(--spectrum-transparent-white-800);
+ --spectrum-button-background-color-hover: var(--spectrum-transparent-white-900);
+ --spectrum-button-background-color-down: var(--spectrum-transparent-white-900);
+ --spectrum-button-background-color-focus: var(--spectrum-transparent-white-900);
+
+ --spectrum-button-content-color-default: var(--spectrum-black);
+ --spectrum-button-content-color-hover: var(--spectrum-black);
+ --spectrum-button-content-color-down: var(--spectrum-black);
+ --spectrum-button-content-color-focus: var(--spectrum-black);
+
+ --spectrum-button-focus-indicator-color: var(--spectrum-static-white-focus-indicator-color);
+
+ --spectrum-button-background-color-disabled: var(--spectrum-disabled-static-white-background-color);
+ --spectrum-button-border-color-disabled: transparent;
+ --spectrum-button-content-color-disabled: var(--spectrum-disabled-static-white-content-color);
+
+ &.spectrum-Button--outline {
+ --spectrum-button-background-color-default: var(--spectrum-transparent-white-25);
+ --spectrum-button-background-color-hover: var(--spectrum-transparent-white-100);
+ --spectrum-button-background-color-down: var(--spectrum-transparent-white-100);
+ --spectrum-button-background-color-focus: var(--spectrum-transparent-white-100);
+
+ --spectrum-button-border-color-default: var(--spectrum-transparent-white-800);
+ --spectrum-button-border-color-hover: var(--spectrum-transparent-white-900);
+ --spectrum-button-border-color-down: var(--spectrum-transparent-white-900);
+ --spectrum-button-border-color-focus: var(--spectrum-transparent-white-900);
+
+ --spectrum-button-content-color-default: var(--spectrum-transparent-white-800);
+ --spectrum-button-content-color-hover: var(--spectrum-transparent-white-900);
+ --spectrum-button-content-color-down: var(--spectrum-transparent-white-900);
+ --spectrum-button-content-color-focus: var(--spectrum-transparent-white-900);
+
+ --spectrum-button-background-color-disabled: var(--spectrum-transparent-white-25);
+ --spectrum-button-border-color-disabled: var(--spectrum-disabled-static-white-border-color);
+ --spectrum-button-content-color-disabled: var(--spectrum-disabled-static-white-content-color);
+ }
+
+ &.spectrum-Button--secondary {
+ --spectrum-button-background-color-default: var(--spectrum-transparent-white-100);
+ --spectrum-button-background-color-hover: var(--spectrum-transparent-white-200);
+ --spectrum-button-background-color-down: var(--spectrum-transparent-white-200);
+ --spectrum-button-background-color-focus: var(--spectrum-transparent-white-200);
+
+ --spectrum-button-content-color-default: var(--spectrum-transparent-white-800);
+ --spectrum-button-content-color-hover: var(--spectrum-transparent-white-900);
+ --spectrum-button-content-color-down: var(--spectrum-transparent-white-900);
+ --spectrum-button-content-color-focus: var(--spectrum-transparent-white-900);
+
+ &.spectrum-Button--outline {
+ --spectrum-button-background-color-default: var(--spectrum-transparent-white-25);
+ --spectrum-button-background-color-hover: var(--spectrum-transparent-white-100);
+ --spectrum-button-background-color-down: var(--spectrum-transparent-white-100);
+ --spectrum-button-background-color-focus: var(--spectrum-transparent-white-100);
+
+ --spectrum-button-border-color-default: var(--spectrum-transparent-white-300);
+ --spectrum-button-border-color-hover: var(--spectrum-transparent-white-400);
+ --spectrum-button-border-color-down: var(--spectrum-transparent-white-400);
+ --spectrum-button-border-color-focus: var(--spectrum-transparent-white-400);
+ }
+ }
+ }
+
+ /* ---- Static Black ---- */
+ &.spectrum-Button--staticBlack {
+ --spectrum-button-background-color-default: var(--spectrum-transparent-black-800);
+ --spectrum-button-background-color-hover: var(--spectrum-transparent-black-900);
+ --spectrum-button-background-color-down: var(--spectrum-transparent-black-900);
+ --spectrum-button-background-color-focus: var(--spectrum-transparent-black-900);
+
+ --spectrum-button-content-color-default: var(--spectrum-white);
+ --spectrum-button-content-color-hover: var(--spectrum-white);
+ --spectrum-button-content-color-down: var(--spectrum-white);
+ --spectrum-button-content-color-focus: var(--spectrum-white);
+
+ --spectrum-button-focus-indicator-color: var(--spectrum-static-black-focus-indicator-color);
+
+ --spectrum-button-background-color-disabled: var(--spectrum-disabled-static-black-background-color);
+ --spectrum-button-border-color-disabled: transparent;
+ --spectrum-button-content-color-disabled: var(--spectrum-disabled-static-black-content-color);
+
+ &.spectrum-Button--outline {
+ --spectrum-button-background-color-default: var(--spectrum-transparent-black-25);
+ --spectrum-button-background-color-hover: var(--spectrum-transparent-black-100);
+ --spectrum-button-background-color-down: var(--spectrum-transparent-black-100);
+ --spectrum-button-background-color-focus: var(--spectrum-transparent-black-100);
+
+ --spectrum-button-border-color-default: var(--spectrum-transparent-black-800);
+ --spectrum-button-border-color-hover: var(--spectrum-transparent-black-900);
+ --spectrum-button-border-color-down: var(--spectrum-transparent-black-900);
+ --spectrum-button-border-color-focus: var(--spectrum-transparent-black-900);
+
+ --spectrum-button-content-color-default: var(--spectrum-transparent-black-800);
+ --spectrum-button-content-color-hover: var(--spectrum-transparent-black-900);
+ --spectrum-button-content-color-down: var(--spectrum-transparent-black-900);
+ --spectrum-button-content-color-focus: var(--spectrum-transparent-black-900);
+
+ --spectrum-button-background-color-disabled: transparent;
+ --spectrum-button-border-color-disabled: var(--spectrum-disabled-static-black-border-color);
+ --spectrum-button-content-color-disabled: var(--spectrum-disabled-static-black-content-color);
+ }
+
+ &.spectrum-Button--secondary {
+ --spectrum-button-background-color-default: var(--spectrum-transparent-black-100);
+ --spectrum-button-background-color-hover: var(--spectrum-transparent-black-200);
+ --spectrum-button-background-color-down: var(--spectrum-transparent-black-200);
+ --spectrum-button-background-color-focus: var(--spectrum-transparent-black-200);
+
+ --spectrum-button-content-color-default: var(--spectrum-transparent-black-800);
+ --spectrum-button-content-color-hover: var(--spectrum-transparent-black-900);
+ --spectrum-button-content-color-down: var(--spectrum-transparent-black-900);
+ --spectrum-button-content-color-focus: var(--spectrum-transparent-black-900);
+
+ &.spectrum-Button--outline {
+ --spectrum-button-background-color-default: var(--spectrum-transparent-black-25);
+ --spectrum-button-background-color-hover: var(--spectrum-transparent-black-100);
+ --spectrum-button-background-color-down: var(--spectrum-transparent-black-100);
+ --spectrum-button-background-color-focus: var(--spectrum-transparent-black-100);
+
+ --spectrum-button-border-color-default: var(--spectrum-transparent-black-300);
+ --spectrum-button-border-color-hover: var(--spectrum-transparent-black-400);
+ --spectrum-button-border-color-down: var(--spectrum-transparent-black-400);
+ --spectrum-button-border-color-focus: var(--spectrum-transparent-black-400);
+ }
+ }
+ }
+}
+
.spectrum-Button {
@extend %spectrum-BaseButton;
@extend %spectrum-ButtonWithFocusRing;
@@ -109,32 +337,30 @@ governing permissions and limitations under the License.
border-width: var(--mod-button-border-width, var(--spectrum-button-border-width));
border-style: solid;
font-size: var(--mod-button-font-size, var(--spectrum-button-font-size));
- font-weight: var(--mod-bold-font-weight, var(--spectrum-bold-font-weight));
+ font-weight: var(--mod-button-font-weight, var(--spectrum-button-font-weight));
gap: var(--mod-button-padding-label-to-icon, var(--spectrum-button-padding-label-to-icon));
min-inline-size: var(--mod-button-min-width, var(--spectrum-button-min-width));
min-block-size: var(--mod-button-height, var(--spectrum-button-height));
- /* Start with text-only padding */
padding-block: 0;
padding-inline: var(--mod-button-edge-to-text, var(--spectrum-button-edge-to-text));
position: relative;
- /* let staticColor variants inherit their color */
- color: inherit;
+ background-color: var(--highcontrast-button-background-color-default, var(--mod-button-background-color-default, var(--spectrum-button-background-color-default)));
+ border-color: var(--highcontrast-button-border-color-default, var(--mod-button-border-color-default, var(--spectrum-button-border-color-default)));
+ color: var(--highcontrast-button-content-color-default, var(--mod-button-content-color-default, var(--spectrum-button-content-color-default)));
+ transition: border var(--mod-button-animation-duration, var(--spectrum-button-animation-duration, 130ms)) linear,
+ color var(--mod-button-animation-duration, var(--spectrum-button-animation-duration, 130ms)) linear,
+ background-color var(--mod-button-animation-duration, var(--spectrum-button-animation-duration, 130ms)) linear;
margin-block: var(--mod-button-margin-block);
margin-inline-end: var(--mod-button-margin-right);
margin-inline-start: var(--mod-button-margin-left);
- &:hover,
- &:active {
- box-shadow: none;
- }
-
.spectrum-Icon {
/* Any block-size difference between the intended workflow icon size and actual icon used.
Helps support any existing use of smaller UI icons instead of intended Workflow icons. */
- --_icon-size-difference: max(0px,
+ --spectrum-button-icon-size-difference: max(0px,
var(--spectrum-button-intended-icon-size) -
var(--spectrum-icon-block-size, var(--spectrum-button-intended-icon-size))
);
@@ -143,7 +369,7 @@ governing permissions and limitations under the License.
max(0px,
var(--mod-button-top-to-icon, var(--spectrum-button-top-to-icon)) -
var(--mod-button-border-width, var(--spectrum-button-border-width)) +
- (var(--_icon-size-difference, 0px) / 2)
+ (var(--spectrum-button-icon-size-difference, 0px) / 2)
)
);
@@ -156,91 +382,48 @@ governing permissions and limitations under the License.
align-self: flex-start;
}
- /* correct focus indicator radius for t-shirt sizing */
- &::after {
- border-radius: calc(var(--mod-button-border-radius, var(--spectrum-button-border-radius)) + var(--mod-focus-indicator-gap, var(--spectrum-focus-indicator-gap)));
- }
-
- &.spectrum-Button--iconOnly {
- min-inline-size: unset;
- padding: calc(var(--mod-button-edge-to-visual-only, var(--spectrum-button-edge-to-visual-only)) - var(--mod-button-border-width, var(--spectrum-button-border-width)));
- border-radius: 50%;
-
- .spectrum-Icon {
- align-self: center;
- margin-inline-start: 0;
- margin-block-start: 0;
- }
-
- &::after {
- border-radius: 50%;
- }
- }
-}
-
-a.spectrum-Button {
- @extend %spectrum-AnchorButton;
-}
-
-.spectrum-Button-label {
- @extend %spectrum-ButtonLabel;
- padding-block-start: calc(var(--mod-button-top-to-text, var(--spectrum-button-top-to-text)) - var(--mod-button-border-width, var(--spectrum-button-border-width)));
- padding-block-end: calc(var(--mod-button-bottom-to-text, var(--spectrum-button-bottom-to-text)) - var(--mod-button-border-width, var(--spectrum-button-border-width)));
- line-height: var(--mod-button-line-height, var(--spectrum-button-line-height));
- align-self: start;
- text-align: var(--mod-button-text-align, center);
-}
-
-.spectrum-Button .spectrum-Icon + .spectrum-Button-label {
- text-align: var(--mod-button-text-align-with-icon, start);
-}
-
-.spectrum-Button {
- &:focus-visible,
- &.is-focused {
- &::after {
- box-shadow: 0 0 0 var(--mod-button-focus-ring-thickness, var(--spectrum-button-focus-ring-thickness)) var(--mod-button-focus-ring-color, var(--spectrum-button-focus-indicator-color));
- }
- }
-}
-
-/* Special cases for focus indicator */
-.spectrum-Button {
- transition: border-color var(--mod-button-animation-duration, var(--spectrum-button-animation-duration)) ease-in-out;
-
+ /* Focus indicator */
&::after {
position: absolute;
inset: 0;
- margin: calc((var(--mod-button-focus-ring-gap, var(--spectrum-button-focus-ring-gap)) + var(--mod-button-border-width, var(--spectrum-button-border-width))) * -1);
- border-radius: var(--mod-button-focus-ring-border-radius, var(--spectrum-button-focus-ring-border-radius));
+ margin: calc((
+ var(--mod-button-focus-ring-gap, var(--spectrum-button-focus-ring-gap)) +
+ var(--mod-button-border-width, var(--spectrum-button-border-width))
+ ) * -1
+ );
+ border-radius: var(--mod-button-focus-ring-border-radius, calc(
+ var(--mod-button-border-radius, var(--spectrum-button-border-radius)) +
+ var(--mod-button-focus-ring-gap, var(--spectrum-button-focus-ring-gap))
+ ));
transition: box-shadow var(--mod-button-animation-duration, var(--spectrum-button-animation-duration)) ease-in-out;
pointer-events: none;
content: '';
}
- &:focus-visible {
- /* Remove the default focus outline */
+ &:focus-visible,
+ &.is-focused {
box-shadow: none;
outline: none;
&::after {
- box-shadow: 0 0 0 var(--mod-button-focus-ring-thickness, var(--spectrum-button-focus-ring-thickness)) var(--highcontrast-button-focus-ring-color, var(--mod-button-focus-ring-color,
- var(--mod-button-focus-ring-color, var(--spectrum-button-focus-indicator-color))));
+ box-shadow: 0 0 0
+ var(--mod-button-focus-ring-thickness, var(--spectrum-button-focus-ring-thickness))
+ var(--highcontrast-button-focus-ring-color, var(--mod-button-focus-ring-color, var(--spectrum-button-focus-indicator-color)));
+
+ /* Margin is repeated to override declaration coming from the imported BaseButton. */
+ margin: calc((
+ var(--mod-button-focus-ring-gap, var(--spectrum-button-focus-ring-gap)) +
+ var(--mod-button-border-width, var(--spectrum-button-border-width))
+ ) * -1
+ );
}
}
-}
-/* Core Token Theming */
-/* former skin.css, applied / copied from actionbutton/index.css */
-.spectrum-Button {
- @extend %spectrum-BaseButton;
-
- background-color: var(--highcontrast-button-background-color-default, var(--mod-button-background-color-default, var(--spectrum-button-background-color-default)));
- border-color: var(--highcontrast-button-border-color-default, var(--mod-button-border-color-default, var(--spectrum-button-border-color-default)));
- color: var(--highcontrast-button-content-color-default, var(--mod-button-content-color-default, var(--spectrum-button-content-color-default)));
- transition: border var(--mod-button-animation-duration, var(--spectrum-button-animation-duration, 130ms)) linear,
- color var(--mod-button-animation-duration, var(--spectrum-button-animation-duration, 130ms)) linear,
- background-color var(--mod-button-animation-duration, var(--spectrum-button-animation-duration, 130ms)) linear;
+ /* States and interaction */
+ &:hover,
+ &:active {
+ box-shadow: none;
+ }
&:hover {
background-color: var(--highcontrast-button-background-color-hover, var(--mod-button-background-color-hover, var(--spectrum-button-background-color-hover)));
@@ -258,6 +441,7 @@ a.spectrum-Button {
background-color: var(--highcontrast-button-background-color-down, var(--mod-button-background-color-down, var(--spectrum-button-background-color-down)));
border-color: var(--highcontrast-button-border-color-down, var(--mod-button-border-color-down, var(--spectrum-button-border-color-down)));
color: var(--highcontrast-button-content-color-down, var(--mod-button-content-color-down, var(--spectrum-button-content-color-down)));
+ transform: perspective(var(--spectrum-downstate-perspective)) translateZ(var(--spectrum-component-size-difference-down));
}
&:disabled,
@@ -303,42 +487,75 @@ a.spectrum-Button {
}
}
-/* Static color variants */
-.spectrum-Button--staticWhite {
- --spectrum-button-focus-indicator-color: var(--mod-static-black-focus-indicator-color, var(--spectrum-static-black-focus-indicator-color));
+a.spectrum-Button {
+ @extend %spectrum-AnchorButton;
+}
+
+.spectrum-Button-label {
+ @extend %spectrum-ButtonLabel;
+ padding-block-start: calc(var(--mod-button-top-to-text, var(--spectrum-button-top-to-text)) - var(--mod-button-border-width, var(--spectrum-button-border-width)));
+ padding-block-end: calc(var(--mod-button-bottom-to-text, var(--spectrum-button-bottom-to-text)) - var(--mod-button-border-width, var(--spectrum-button-border-width)));
+ line-height: var(--mod-button-line-height, var(--spectrum-button-line-height));
+ align-self: start;
+ text-align: var(--mod-button-text-align, center);
+}
+
+.spectrum-Button .spectrum-Icon + .spectrum-Button-label {
+ text-align: var(--mod-button-text-align-with-icon, start);
}
-.spectrum-Button--staticBlack {
- --spectrum-button-focus-indicator-color: var(--mod-static-black-focus-indicator-color, var(--spectrum-static-black-focus-indicator-color));
+/* Icon only variant */
+.spectrum-Button.spectrum-Button--iconOnly {
+ min-inline-size: unset;
+ padding: var(--mod-button-edge-to-visual-only, var(--spectrum-button-edge-to-visual-only));
+
+ .spectrum-Icon {
+ align-self: center;
+ margin-inline-start: 0;
+ margin-block-start: 0;
+ }
}
-/* Windows High Contrast Mode */
+/* Forced colors / high contrast mode */
@media (forced-colors: active) {
.spectrum-Button {
--highcontrast-button-content-color-disabled: GrayText;
--highcontrast-button-border-color-disabled: GrayText;
+ --highcontrast-button-background-color-disabled: ButtonFace;
+
--mod-progress-circle-track-border-color: ButtonText;
--mod-progress-circle-track-border-color-over-background: ButtonText;
--mod-progress-circle-thickness: var(--spectrum-progress-circle-thickness-medium);
+ --highcontrast-button-focus-ring-color: ButtonText;
+
&:focus-visible {
&::after {
+ /* Make sure the box-shadow used for the focus indicator is displayed. */
forced-color-adjust: none;
- box-shadow: 0 0 0 var(--mod-button-focus-ring-thickness, var(--spectrum-button-focus-ring-thickness)) ButtonText;
}
}
- &.spectrum-Button--accent.spectrum-Button--fill {
+ &.spectrum-Button--accent,
+ &:not(
+ .spectrum-Button--primary,
+ .spectrum-Button--negative,
+ .spectrum-Button--secondary,
+ .spectrum-Button--staticBlack,
+ .spectrum-Button--staticWhite
+ ){
+ /* The accent fill variant looks different than the other buttons.
+ It inverts the background and content colors. */
--highcontrast-button-background-color-default: ButtonText;
--highcontrast-button-content-color-default: ButtonFace;
- --highcontrast-button-background-color-disabled: ButtonFace;
--highcontrast-button-background-color-hover: Highlight;
--highcontrast-button-background-color-down: Highlight;
--highcontrast-button-background-color-focus: Highlight;
- --highcontrast-button-content-color-hover: ButtonFace;
- --highcontrast-button-content-color-down: ButtonFace;
- --highcontrast-button-content-color-focus: ButtonFace;
+
+ --highcontrast-button-content-color-hover: HighlightText;
+ --highcontrast-button-content-color-down: HighlightText;
+ --highcontrast-button-content-color-focus: HighlightText;
.spectrum-Button-label {
forced-color-adjust: none;
diff --git a/components/button/metadata/button-accent.yml b/components/button/metadata/button-accent.yml
index 8d3be60b926..234a4f5e360 100644
--- a/components/button/metadata/button-accent.yml
+++ b/components/button/metadata/button-accent.yml
@@ -8,21 +8,29 @@ sections:
This component can be modified via its `--mod-*` prefixed custom properties. A list of those prefixed custom properties can be found here.
- name: Migration Guide
description: |
- ### Fill or Outline class required
- All buttons now require either the `.spectrum-Button--fill` or `.spectrum-Button--outline` class.
-
- ### CTA replaced by Accent with Fill
- Replace all `.spectrum-Button--cta` with `.spectrum-Button--accent .spectrum-Button--fill`.
+ ### Version 13.0.0
+ #### Spectrum 2 release
+ Button now uses Spectrum 2 tokens and specifications, which includes many color changes to all variants. A few other notable changes:
+ - Outline buttons are no longer available in accent and negative options — use the filled variant instead.
+ - Medium size is now the default. The class `.spectrum-Button--sizeM` is now unnecessary for this size, and has been removed.
+ - The `.spectrum-Button--fill` class is no longer needed and has been removed.
+
+ The following `--mod` custom properties have been renamed:
+ - `--mod-line-height-100` has been renamed to `--mod-button-line-height`.
+ - `--mod-sans-font-family-stack` has been renamed to `--mod-button-font-family`.
+ - `--mod-animation-duration-100` has been renamed to `--mod-button-animation-duration`.
+ - `--mod-bold-font-weight` has been renamed to `--mod-button-font-weight`.
+
+ ### Version 11.0.0
+ #### Remove focus-ring class
+ We've migrated away from the focus-ring class in favor of the native `:focus-visible` pseudo-class due to changes in browser support.
- ### Icon Only
+ ### Version 10.0.0
+ #### Icon Only
Add the `.spectrum-Button--iconOnly` class to apply the correct styling when an icon is used without a label.
Provide an `aria-label` on the button itself when using this variant for accessibility.
- ### T-shirt sizing
- Button now supports t-shirt sizing and requires that you specify the size of button by adding a `.spectrum-Button--size*` class.
-
- ### Change workflow icon size
-
+ #### Change workflow icon size
Previously, all Buttons used `.spectrum-Icon--sizeS`. This has changed:
| Button classname | Workflow icon classname |
@@ -32,8 +40,17 @@ sections:
| `.spectrum-Button--sizeL` | `.spectrum-Icon--sizeL` |
| `.spectrum-Button--sizeXL` | `.spectrum-Icon--sizeXL` |
- ### Remove focus-ring class
- We've migrated away from the focus-ring class in favor of the native `:focus-visible` pseudo-class due to changes in browser support.
+ ### Version 6.0.0
+ #### Fill or Outline class required
+ All buttons now require either the `.spectrum-Button--fill` or `.spectrum-Button--outline` class.
+
+ #### CTA replaced by Accent with Fill
+ Replace all `.spectrum-Button--cta` with `.spectrum-Button--accent .spectrum-Button--fill`.
+
+ ### Version 3.0.0
+ #### T-shirt sizing
+ Button now supports t-shirt sizing and requires that you specify the size of button by adding a `.spectrum-Button--size*` class.
+
examples:
- id: button-accent
name: Sizing
@@ -42,18 +59,18 @@ examples:
S
-