Skip to content

Commit 8147ad0

Browse files
docs(dropshadow): display both drop shadow and box shadow
1 parent dbdde03 commit 8147ad0

File tree

3 files changed

+113
-44
lines changed

3 files changed

+113
-44
lines changed

.storybook/foundations/drop-shadow/drop-shadow.mdx

Lines changed: 43 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -7,63 +7,80 @@ import * as DropShadowStories from './drop-shadow.stories.js';
77
<Title />
88
<Description of={DropShadowStories} />
99

10-
Drop shadow tokens may be used for drop shadows or box shadows in CSS. Using `box-shadow` is often preferable to using `filter: drop-shadow()`, but in situations where the shadow must be applied to the alpha channel of the content rather than the border box, or if `box-shadow` is already being used for a different purpose, such as a focus outline, `filter: drop-shadow()` may be used.
10+
Drop shadow tokens may be used for box shadows or drop shadows in CSS. Using `box-shadow` is often preferable to using `filter: drop-shadow()`, but in situations where the shadow must be applied to the alpha channel of the content rather than the border box, or if `box-shadow` is already being used for a different purpose, such as a focus outline, `filter: drop-shadow()` may be used. Note that in cases where `filter: drop-shadow()` is used, the shadow may be more blurred than the design spec due to a difference in how the blur parameter is calculated, and an adjustment by half may be needed.
11+
12+
The opacity values in dark shadow colors are 3x the light values.
1113

1214
These single-layer shadows are an interim solution for shadows until complex tokens (additional design data for the Spectrum Tokens system) are available to support multi-layer shadows.
1315

1416
## Emphasized Default
15-
This drop shadow is used to provide emphasis to containers within a page.
16-
<Story of={DropShadowStories.DropShadowEmphasizedDefault} />
17-
The opacity values in dark shadow colors are 3x the light values.
17+
This shadow is used to provide emphasis to containers within a page.
1818

19+
### Box shadow
20+
<Story of={DropShadowStories.BoxShadowEmphasizedDefault} />
1921
```
20-
filter: drop-shadow(
21-
var(--spectrum-drop-shadow-emphasized-default-x)
22-
var(--spectrum-drop-shadow-emphasized-default-y)
23-
var(--spectrum-drop-shadow-emphasized-default-blur)
24-
var(--spectrum-drop-shadow-emphasized-default-color)
25-
);
26-
2722
box-shadow:
2823
var(--spectrum-drop-shadow-emphasized-default-x)
2924
var(--spectrum-drop-shadow-emphasized-default-y)
3025
var(--spectrum-drop-shadow-emphasized-default-blur)
3126
var(--spectrum-drop-shadow-emphasized-default-color);
3227
```
3328

34-
## Emphasized Hover
35-
If the whole container is interactive, such as in a select box, the drop shadow becomes elevated on hover.
36-
<Story of={DropShadowStories.DropShadowEmphasizedHover} />
37-
29+
### Drop shadow
30+
<Story of={DropShadowStories.DropShadowEmphasizedDefault} />
3831
```
3932
filter: drop-shadow(
40-
var(--spectrum-drop-shadow-emphasized-hover-x)
41-
var(--spectrum-drop-shadow-emphasized-hover-y)
42-
var(--spectrum-drop-shadow-emphasized-hover-blur)
43-
var(--spectrum-drop-shadow-emphasized-hover-color)
33+
var(--spectrum-drop-shadow-emphasized-default-x)
34+
var(--spectrum-drop-shadow-emphasized-default-y)
35+
calc(var(--spectrum-drop-shadow-emphasized-default-blur) / 2)
36+
var(--spectrum-drop-shadow-emphasized-default-color)
4437
);
38+
```
39+
40+
## Emphasized Hover
41+
If the whole container is interactive, such as in a select box, the shadow becomes elevated on hover.
4542

43+
### Box shadow
44+
<Story of={DropShadowStories.BoxShadowEmphasizedHover} />
45+
```
4646
box-shadow:
4747
var(--spectrum-drop-shadow-emphasized-hover-x)
4848
var(--spectrum-drop-shadow-emphasized-hover-y)
4949
var(--spectrum-drop-shadow-emphasized-hover-blur)
5050
var(--spectrum-drop-shadow-emphasized-hover-color);
5151
```
5252

53-
## Elevated
54-
Elevated drop shadows can be used on containers that appear on top of content, such as menus, coach marks, popovers, and floating bar panels.
55-
<Story of={DropShadowStories.DropShadowElevated} />
53+
### Drop shadow
54+
<Story of={DropShadowStories.DropShadowEmphasizedHover} />
5655
```
5756
filter: drop-shadow(
58-
var(--spectrum-drop-shadow-elevated-x)
59-
var(--spectrum-drop-shadow-elevated-y)
60-
var(--spectrum-drop-shadow-elevated-blur)
61-
var(--spectrum-drop-shadow-elevated-color)
57+
var(--spectrum-drop-shadow-emphasized-hover-x)
58+
var(--spectrum-drop-shadow-emphasized-hover-y)
59+
calc(var(--spectrum-drop-shadow-emphasized-hover-blur) / 2)
60+
var(--spectrum-drop-shadow-emphasized-hover-color)
6261
);
62+
```
6363

64+
## Elevated
65+
Elevated shadows can be used on containers that appear on top of content, such as menus, coach marks, popovers, and floating bar panels.
66+
67+
### Box shadow
68+
<Story of={DropShadowStories.BoxShadowElevated} />
69+
```
6470
box-shadow:
6571
var(--spectrum-drop-shadow-elevated-x)
6672
var(--spectrum-drop-shadow-elevated-y)
6773
var(--spectrum-drop-shadow-elevated-blur)
6874
var(--spectrum-drop-shadow-elevated-color);
6975
```
76+
77+
### Drop shadow
78+
<Story of={DropShadowStories.DropShadowElevated} />
79+
```
80+
filter: drop-shadow(
81+
var(--spectrum-drop-shadow-elevated-x)
82+
var(--spectrum-drop-shadow-elevated-y)
83+
calc(var(--spectrum-drop-shadow-elevated-blur) / 2)
84+
var(--spectrum-drop-shadow-elevated-color)
85+
);
86+
```

.storybook/foundations/drop-shadow/drop-shadow.stories.js

Lines changed: 28 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,17 @@ export default {
99
tags: ['foundation'],
1010
}
1111

12-
const DropShadowSwatch = ({rootClass = "spectrum-Foundations-Example-DropShadow-swatch", variant}) => {
12+
const DropShadowSwatch = ({rootClass = "spectrum-Foundations-Example-DropShadow-swatch", variant, ...args}) => {
13+
const { isDropShadow } = args;
1314
return html`
1415
<div class=${classMap({
1516
[rootClass]: true,
16-
[`${rootClass}--${variant}`]: typeof variant !== undefined,
17+
[`${rootClass}--${variant}-drop-shadow`]: typeof variant !== undefined && !!isDropShadow,
18+
[`${rootClass}--${variant}-box-shadow`]: typeof variant !== undefined && !isDropShadow,
1719
})}></div>
1820
`;}
1921

20-
const DropShadowBackground = ({rootClass = "spectrum-Foundations-Example-swatch-container", color, ...args}) => {
21-
22-
return html`
22+
const DropShadowBackground = ({rootClass = "spectrum-Foundations-Example-swatch-container", color, ...args}) => html`
2323
<div class=${classMap({
2424
[rootClass]: true,
2525
"spectrum--light": color === "light",
@@ -28,28 +28,47 @@ const DropShadowBackground = ({rootClass = "spectrum-Foundations-Example-swatch-
2828
${DropShadowSwatch(args)}
2929
</div>
3030
`;
31-
}
3231

33-
const DropShadowVariant = ({...args}) => {
34-
return html`
32+
const DropShadowVariant = ({...args}) => html`
3533
<div class="spectrum-Foundations-Example-variant-container">
3634
${DropShadowBackground({...args, color: "light"})}
3735
${DropShadowBackground({...args, color: "dark"})}
3836
</div>
39-
`;}
37+
`;
4038

4139

4240
export const DropShadowEmphasizedDefault = DropShadowVariant.bind({});
4341
DropShadowEmphasizedDefault.args = {
4442
variant: "emphasized-default",
43+
isDropShadow: true,
4544
};
4645

4746
export const DropShadowEmphasizedHover = DropShadowVariant.bind({});
4847
DropShadowEmphasizedHover.args = {
4948
variant: "emphasized-hover",
49+
isDropShadow: true,
5050
};
5151

5252
export const DropShadowElevated = DropShadowVariant.bind({});
5353
DropShadowElevated.args = {
5454
variant: "elevated",
55+
isDropShadow: true,
56+
};
57+
58+
export const BoxShadowEmphasizedDefault = DropShadowVariant.bind({});
59+
BoxShadowEmphasizedDefault.args = {
60+
variant: "emphasized-default",
61+
isDropShadow: false,
62+
};
63+
64+
export const BoxShadowEmphasizedHover = DropShadowVariant.bind({});
65+
BoxShadowEmphasizedHover.args = {
66+
variant: "emphasized-hover",
67+
isDropShadow: false,
68+
};
69+
70+
export const BoxShadowElevated = DropShadowVariant.bind({});
71+
BoxShadowElevated.args = {
72+
variant: "elevated",
73+
isDropShadow: false,
5574
};

.storybook/foundations/drop-shadow/index.css

Lines changed: 42 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,44 +24,77 @@ governing permissions and limitations under the License.
2424
background-color: var(--spectrum-gray-75); /* matches dark mode design spec rgb(34, 34, 34) */
2525
}
2626

27-
.spectrum-Foundations-Example-DropShadow-swatch--emphasized-default {
27+
.spectrum-Foundations-Example-DropShadow-swatch--emphasized-default-box-shadow {
2828
box-shadow:
2929
var(--spectrum-drop-shadow-emphasized-default-x)
3030
var(--spectrum-drop-shadow-emphasized-default-y)
3131
var(--spectrum-drop-shadow-emphasized-default-blur)
3232
var(--mod-drop-shadow-emphasized-default-color, var(--spectrum-drop-shadow-emphasized-default-color));
3333
}
3434

35-
.spectrum--light .spectrum-Foundations-Example-DropShadow-swatch--emphasized-default,
36-
.spectrum--dark .spectrum-Foundations-Example-DropShadow-swatch--emphasized-default {
35+
.spectrum-Foundations-Example-DropShadow-swatch--emphasized-default-drop-shadow {
36+
filter: drop-shadow(
37+
var(--spectrum-drop-shadow-emphasized-default-x)
38+
var(--spectrum-drop-shadow-emphasized-default-y)
39+
calc(var(--spectrum-drop-shadow-emphasized-default-blur) / 2) /* adjust blur by half of box-shadow */
40+
var(--mod-drop-shadow-emphasized-default-color, var(--spectrum-drop-shadow-emphasized-default-color))
41+
);
42+
}
43+
44+
.spectrum--light .spectrum-Foundations-Example-DropShadow-swatch--emphasized-default-box-shadow,
45+
.spectrum--dark .spectrum-Foundations-Example-DropShadow-swatch--emphasized-default-box-shadow,
46+
.spectrum--light .spectrum-Foundations-Example-DropShadow-swatch--emphasized-default-drop-shadow,
47+
.spectrum--dark .spectrum-Foundations-Example-DropShadow-swatch--emphasized-default-drop-shadow {
3748
/* adjustment because color tokens do not work properly on foundations pages */
3849
--mod-drop-shadow-emphasized-default-color: var(--spectrum-drop-shadow-color-100);
3950
}
4051

41-
.spectrum-Foundations-Example-DropShadow-swatch--emphasized-hover {
52+
.spectrum-Foundations-Example-DropShadow-swatch--emphasized-hover-box-shadow {
4253
box-shadow:
4354
var(--spectrum-drop-shadow-emphasized-hover-x)
4455
var(--spectrum-drop-shadow-emphasized-hover-y)
4556
var(--spectrum-drop-shadow-emphasized-hover-blur)
4657
var(--mod-drop-shadow-emphasized-hover-color, var(--spectrum-drop-shadow-emphasized-hover-color));
4758
}
4859

49-
.spectrum--light .spectrum-Foundations-Example-DropShadow-swatch--emphasized-hover,
50-
.spectrum--dark .spectrum-Foundations-Example-DropShadow-swatch--emphasized-hover {
60+
.spectrum-Foundations-Example-DropShadow-swatch--emphasized-hover-drop-shadow {
61+
filter: drop-shadow(
62+
var(--spectrum-drop-shadow-emphasized-hover-x)
63+
var(--spectrum-drop-shadow-emphasized-hover-y)
64+
calc(var(--spectrum-drop-shadow-emphasized-hover-blur) / 2) /* adjust blur by half of box-shadow */
65+
var(--mod-drop-shadow-emphasized-hover-color, var(--spectrum-drop-shadow-emphasized-hover-color))
66+
);
67+
}
68+
69+
.spectrum--light .spectrum-Foundations-Example-DropShadow-swatch--emphasized-hover-drop-shadow,
70+
.spectrum--dark .spectrum-Foundations-Example-DropShadow-swatch--emphasized-hover-drop-shadow,
71+
.spectrum--light .spectrum-Foundations-Example-DropShadow-swatch--emphasized-hover-box-shadow,
72+
.spectrum--dark .spectrum-Foundations-Example-DropShadow-swatch--emphasized-hover-box-shadow {
5173
/* adjustment because color tokens do not work properly on foundations pages */
5274
--mod-drop-shadow-emphasized-hover-color: var(--spectrum-drop-shadow-color-200);
5375
}
5476

55-
.spectrum-Foundations-Example-DropShadow-swatch--elevated {
77+
.spectrum-Foundations-Example-DropShadow-swatch--elevated-box-shadow {
5678
box-shadow:
5779
var(--spectrum-drop-shadow-elevated-x)
5880
var(--spectrum-drop-shadow-elevated-y)
5981
var(--spectrum-drop-shadow-elevated-blur)
6082
var(--mod-drop-shadow-elevated-color, var(--spectrum-drop-shadow-elevated-color));
6183
}
6284

63-
.spectrum--light .spectrum-Foundations-Example-DropShadow-swatch--elevated,
64-
.spectrum--dark .spectrum-Foundations-Example-DropShadow-swatch--elevated {
85+
.spectrum-Foundations-Example-DropShadow-swatch--elevated-drop-shadow {
86+
filter: drop-shadow(
87+
var(--spectrum-drop-shadow-elevated-x)
88+
var(--spectrum-drop-shadow-elevated-y)
89+
calc(var(--spectrum-drop-shadow-elevated-blur) / 2) /* adjust blur by half of box-shadow */
90+
var(--mod-drop-shadow-elevated-color, var(--spectrum-drop-shadow-elevated-color))
91+
);
92+
}
93+
94+
.spectrum--light .spectrum-Foundations-Example-DropShadow-swatch--elevated-drop-shadow,
95+
.spectrum--dark .spectrum-Foundations-Example-DropShadow-swatch--elevated-drop-shadow,
96+
.spectrum--light .spectrum-Foundations-Example-DropShadow-swatch--elevated-box-shadow,
97+
.spectrum--dark .spectrum-Foundations-Example-DropShadow-swatch--elevated-box-shadow {
6598
/* adjustment because color tokens do not work properly on foundations pages */
6699
--mod-drop-shadow-elevated-color: var(--spectrum-drop-shadow-color-200);
67100
}

0 commit comments

Comments
 (0)