@adobe/spectrum-adaptive-theme
v1.1.0
Published
An implementation of Spectrum's colors as an adaptive color theme
Downloads
16
Readme
spectrum-adaptive-theme
An implementation of Spectrum's colors as an adaptive color theme.
Spectrum's entire color palette is generated with function. The function is a wrapper for Leonardo with custom configurations and settings to replicate Spectrum's specific colors.
Color parameters are conditional based on lightness and contrast settings, and are percentages of available contrast within the specified environment.
Usage
import { spectrumAdaptiveTheme } from '@adobe/spectrum-adaptive-theme';
const theme = spectrumAdaptiveTheme(lightness, contrast, saturation, format);
theme.contrastColorPairs; // returns key-value pairs for spectrum colors
Generate CSS properties
Below is a basic javascript method for assigning new CSS properties. For React example and more details, visit @adobe/leonardo-contrast-colors readme.
Target the location where Spectrum's original CSS properties are assigned
// Target the spectrum theme class
// Note: this example targets the first instance.
// There may be complications if additional 'spectrum--light'
// classes are assigned within the DOM
const themeElement = document.getElementsByClassName('spectrum--light')[0];
// Alternatively, target the document
const themeElement = document.documentElement;
Generate and assign new CSS properties based on theme output
const prefix = '--'; // can set custom prefix, such as '--ccac-projects-'
for (const [key, value] of Object.entries( theme )) {
let prop = prefix.concat(key);
themeElement.style
.setProperty(prop, value);
}
API reference
lightness
Value from 0-100 to determine the lightness of the theme.
Required parameter. Default 'themes' are:
| Spectrum theme | Lightness value |
|----------------|-----------------|
| Light | 98
|
| Dark | 21
|
| Darkest | 11
|
| Static colors | 100
|
contrast
Multiplier for overall contrast of the colors generated in the theme. Values above 1
will increase contrast; values below 1
will decrease contrast.
Optional parameter. Default is 1
.
saturation
Percentage of the original saturation as a value from 0-100.
Optional parameter. Default is 100
, returning colors at full saturation.
format
Optional format for output colors. Available output formats conform to the W3C CSS Color Module Level 4 spec for the supported options. Output options are defined in Leonardo and listed below:
| Output option | Sample value |
|---------------|--------------|
| 'HEX'
(default) | #RRGGBB
|
| 'RGB'
| rgb(255, 255, 255)
|
| 'HSL'
| hsl(360deg, 0%, 100%)
|
| 'HSV'
| hsv(360deg, 0%, 100%)
|
| 'HSLuv'
| hsluv(360, 0, 100)
|
| 'LAB'
| lab(100%, 0, 0)
|
| 'LCH'
| lch(100%, 0, 360deg)
|
| 'CAM02'
| jab(100%, 0, 0)
|
| 'CAM02p'
| jch(100%, 0, 360deg)
|
Contributing
Branches
master
development for the@adobe/spectrum-adaptive-theme
packagegh-pages
branch where web playground app content is deployed
Install dependencies
npm install
Run tests against colors
npm run test
Run development server locally
npm run dev
Build and deploy the site
npm run build:full