Package Exports
- @spectrum-web-components/theme
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@spectrum-web-components/theme) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Overview
An sp-theme sets the rendering theme for all child components.
The Spectrum design system supports four color themes and two different
scales. spectrum-web-components currently supports three of the four
color themes (dark, light and lightest) and one one of the scales (medium).
Installation
npm install @spectrum-web-components/themes
# or
yarn add @spectrum-web-components/themesLight theme
<style type="text/css">
#example {
width: 500px;
padding: 3em;
background-color: var(--spectrum-global-color-gray-100);
color: var(--spectrum-global-color-gray-800);
}
#buttons {
margin-top: 2em;
}
</style>
<sp-theme color="light">
<div id="example">
<div>
<sp-slider
value="5"
step="1"
min="1"
max="11"
label="Volume"
id="volume-slider"
></sp-slider>
</div>
<div><sp-switch>Overdrive</sp-switch></div>
<div id="buttons">
<sp-button variant="primary">Cancel</sp-button>
<sp-button variant="cta">Continue</sp-button>
</div>
</div>
</sp-theme>Dark theme
<style type="text/css">
#example {
width: 500px;
padding: 3em;
background-color: var(--spectrum-global-color-gray-100);
color: var(--spectrum-global-color-gray-800);
}
#buttons {
margin-top: 2em;
}
</style>
<sp-theme color="dark">
<div id="example">
<div>
<sp-slider
value="5"
step="1"
min="1"
max="11"
label="Volume"
id="volume-slider"
></sp-slider>
</div>
<div><sp-switch>Overdrive</sp-switch></div>
<div id="buttons">
<sp-button variant="primary">Cancel</sp-button>
<sp-button variant="cta">Continue</sp-button>
</div>
</div>
</sp-theme>Embedding themes
There are a few cases where it is necessary to embed one theme within another. For example, if you have an application that is using a dark theme that is previewing or editing content that will be displayed in a light theme.
<style type="text/css">
#outer {
width: 500px;
padding: 3em;
background-color: var(--spectrum-global-color-gray-100);
color: var(--spectrum-global-color-gray-800);
}
#inner {
margin-top: 2em;
padding: 2em;
background-color: var(--spectrum-global-color-gray-100);
color: var(--spectrum-global-color-gray-800);
}
#buttons {
margin-top: 2em;
}
</style>
<sp-theme color="dark">
<div id="outer">
<div>
<sp-slider
value="5"
step="1"
min="1"
max="11"
label="Volume"
id="volume-slider"
></sp-slider>
</div>
<div><sp-switch>Overdrive</sp-switch></div>
<div id="buttons">
<sp-button variant="primary">Cancel</sp-button>
<sp-button variant="cta">Continue</sp-button>
</div>
<sp-theme color="light">
<div id="inner">
<div>
<sp-slider
value="5"
step="1"
min="1"
max="11"
label="Volume"
id="volume-slider"
></sp-slider>
</div>
<div><sp-switch>Overdrive</sp-switch></div>
<div id="buttons">
<sp-button variant="primary">Cancel</sp-button>
<sp-button variant="cta">Continue</sp-button>
</div>
</div>
</sp-theme>
</div>
</sp-theme>