@ebay/skin 16.4.0 → 16.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/_cdn/skin/v16.5.0/skin-default.min.css +6 -0
  2. package/_cdn/skin/v16.5.0/skin-full.min.css +6 -0
  3. package/_cdn/skin/v16.5.0/skin-headless.min.css +6 -0
  4. package/_cdn/skin/v16.5.0/skin-legacy.min.css +6 -0
  5. package/dist/field/field.css +17 -0
  6. package/dist/lightbox-dialog/lightbox-dialog.css +32 -0
  7. package/dist/segmented-buttons/segmented-buttons.css +1 -0
  8. package/dist/toggle-button/toggle-button.css +8 -2
  9. package/dist/toggle-button-group/toggle-button-group.css +88 -0
  10. package/index.browser.json +1 -0
  11. package/index.css +1 -0
  12. package/index.js +1 -0
  13. package/index.mjs +1 -0
  14. package/package.json +2 -2
  15. package/scripts/generate-imports/config.json +1 -0
  16. package/src/less/avatar/stories/avatar.stories.js +10 -10
  17. package/src/less/bundles/skin-headless.less +1 -0
  18. package/src/less/field/field.less +23 -0
  19. package/src/less/field/stories/helper-texts-stacked.stories.js +114 -0
  20. package/src/less/lightbox-dialog/lightbox-dialog.less +42 -0
  21. package/src/less/lightbox-dialog/stories/lightbox-dialog.stories.js +114 -0
  22. package/src/less/segmented-buttons/segmented-buttons.less +1 -0
  23. package/src/less/toggle-button/stories/gallery-layout.stories.js +13 -0
  24. package/src/less/toggle-button/toggle-button.less +14 -2
  25. package/src/less/toggle-button-group/stories/gallery-layout.stories.js +566 -0
  26. package/src/less/toggle-button-group/stories/list-layout.stories.js +611 -0
  27. package/src/less/toggle-button-group/stories/minimal-layout.stories.js +341 -0
  28. package/src/less/toggle-button-group/toggle-button-group.less +111 -0
  29. package/toggle-button-group.browser.json +1 -0
  30. package/toggle-button-group.css +1 -0
  31. package/toggle-button-group.js +1 -0
  32. package/toggle-button-group.mjs +1 -0
  33. package/_cdn/skin/v16.4.0/skin-default.min.css +0 -6
  34. package/_cdn/skin/v16.4.0/skin-full.min.css +0 -6
  35. package/_cdn/skin/v16.4.0/skin-headless.min.css +0 -6
  36. package/_cdn/skin/v16.4.0/skin-legacy.min.css +0 -6
@@ -29,6 +29,9 @@
29
29
  outline-style: outset;
30
30
  outline-width: 2px;
31
31
  }
32
+ .toggle-button * {
33
+ pointer-events: none;
34
+ }
32
35
  .toggle-button[aria-pressed="true"] {
33
36
  background-color: var(--color-background-secondary);
34
37
  border: 1px solid var(--color-stroke-strong);
@@ -72,14 +75,17 @@
72
75
  margin-bottom: 4px;
73
76
  margin-top: 16px;
74
77
  }
75
- .toggle-button .toggle-button__content .toggle-button__title:only-child {
78
+ .toggle-button__title:only-child {
79
+ margin-bottom: 16px;
80
+ }
81
+ .toggle-button .toggle-button__content:only-child .toggle-button__title:only-child {
76
82
  font-weight: bold;
77
83
  margin-bottom: auto;
78
84
  margin-top: auto;
79
85
  text-align: center;
80
86
  width: 100%;
81
87
  }
82
- .toggle-button:not([aria-pressed="true"]) .toggle-button__title:only-child {
88
+ .toggle-button:not([aria-pressed="true"]) .toggle-button__content:only-child .toggle-button__title:only-child {
83
89
  font-weight: normal;
84
90
  }
85
91
  .toggle-button__subtitle {
@@ -0,0 +1,88 @@
1
+ .toggle-button-group {
2
+ display: inline-block;
3
+ list-style: none;
4
+ margin: 0;
5
+ padding: 0;
6
+ width: 100%;
7
+ }
8
+ .toggle-button-group li {
9
+ display: inline-table;
10
+ margin-bottom: 4px;
11
+ margin-left: 4px;
12
+ margin-right: 4px;
13
+ margin-top: 4px;
14
+ max-width: var(--toggle-button-width-max);
15
+ min-height: var(--toggle-button-height-min);
16
+ min-width: var(--toggle-button-width-min);
17
+ }
18
+ .toggle-button-group .toggle-button {
19
+ width: 100%;
20
+ }
21
+ /* Layout Themes */
22
+ .toggle-button-group--list-layout li {
23
+ max-width: var(--toggle-button-list-width-max);
24
+ min-width: var(--toggle-button-list-width-min);
25
+ }
26
+ .toggle-button-group--list-layout .toggle-button {
27
+ justify-content: left;
28
+ max-width: var(--toggle-button-list-width-max);
29
+ min-width: var(--toggle-button-list-width-min);
30
+ }
31
+ .toggle-button-group--gallery-layout li {
32
+ max-width: var(--toggle-button-gallery-width-max);
33
+ min-width: var(--toggle-button-gallery-width-min);
34
+ }
35
+ .toggle-button-group--gallery-layout .toggle-button {
36
+ flex-direction: column;
37
+ }
38
+ .toggle-button-group--gallery-layout .toggle-button__image,
39
+ .toggle-button-group--gallery-layout .toggle-button__icon {
40
+ margin-bottom: 0;
41
+ margin-right: 0;
42
+ }
43
+ .toggle-button-group--gallery-layout .toggle-button__icon ~ .toggle-button__content,
44
+ .toggle-button-group--gallery-layout .toggle-button__image-container ~ .toggle-button__content {
45
+ align-self: flex-start;
46
+ }
47
+ .toggle-button-group--gallery-layout .toggle-button__icon,
48
+ .toggle-button-group--gallery-layout .toggle-button__image-container {
49
+ margin-bottom: 0;
50
+ margin-right: 0;
51
+ text-align: left;
52
+ }
53
+ .toggle-button-group--gallery-layout .toggle-button__image-container {
54
+ padding-bottom: 60%;
55
+ position: relative;
56
+ text-align: center;
57
+ width: 100%;
58
+ }
59
+ .toggle-button-group--gallery-layout .toggle-button__image {
60
+ bottom: 0;
61
+ height: 100%;
62
+ left: 0;
63
+ position: absolute;
64
+ right: 0;
65
+ top: 0;
66
+ width: 100%;
67
+ }
68
+ .toggle-button-group--gallery-layout .toggle-button__image-container img {
69
+ height: 100%;
70
+ max-height: 200px;
71
+ max-width: initial;
72
+ }
73
+ /* Columns */
74
+ .toggle-button-group[data-columns="2"] li {
75
+ width: calc(100% / 2 - 11px);
76
+ }
77
+ .toggle-button-group[data-columns="3"] li {
78
+ width: calc(100% / 3 - 11px);
79
+ }
80
+ .toggle-button-group[data-columns="4"] li {
81
+ width: calc(100% / 4 - 11px);
82
+ }
83
+ .toggle-button-group[data-columns="5"] li {
84
+ width: calc(100% / 5 - 11px);
85
+ }
86
+ .toggle-button-group[data-columns="6"] li {
87
+ width: calc(100% / 6 - 11px);
88
+ }
@@ -56,6 +56,7 @@
56
56
  "require: ./textbox.js",
57
57
  "require: ./toast-dialog.js",
58
58
  "require: ./toggle-button.js",
59
+ "require: ./toggle-button-group.js",
59
60
  "require: ./tooltip.js",
60
61
  "require: ./tourtip.js",
61
62
  "require: ./typography.js",
package/index.css CHANGED
@@ -54,6 +54,7 @@
54
54
  @import "./textbox.css";
55
55
  @import "./toast-dialog.css";
56
56
  @import "./toggle-button.css";
57
+ @import "./toggle-button-group.css";
57
58
  @import "./tooltip.css";
58
59
  @import "./tourtip.css";
59
60
  @import "./typography.css";
package/index.js CHANGED
@@ -54,6 +54,7 @@ require('./tabs.js');
54
54
  require('./textbox.js');
55
55
  require('./toast-dialog.js');
56
56
  require('./toggle-button.js');
57
+ require('./toggle-button-group.js');
57
58
  require('./tooltip.js');
58
59
  require('./tourtip.js');
59
60
  require('./typography.js');
package/index.mjs CHANGED
@@ -54,6 +54,7 @@ import './tabs.css';
54
54
  import './textbox.css';
55
55
  import './toast-dialog.css';
56
56
  import './toggle-button.css';
57
+ import './toggle-button-group.css';
57
58
  import './tooltip.css';
58
59
  import './tourtip.css';
59
60
  import './typography.css';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ebay/skin",
3
3
  "description": "Skin - CSS modules that represent the brand eBay",
4
- "version": "16.4.0",
4
+ "version": "16.5.0",
5
5
  "license": "MIT",
6
6
  "main": "./index.js",
7
7
  "maintainers": [
@@ -65,7 +65,7 @@
65
65
  "@commitlint/cli": "^17.6.3",
66
66
  "@commitlint/config-conventional": "^17.6.3",
67
67
  "@ebay/browserslist-config": "^2.6.0",
68
- "@percy/cli": "^1.24.1",
68
+ "@percy/cli": "^1.26.2",
69
69
  "@percy/storybook": "^4.3.6",
70
70
  "@storybook/html": "^7.0.12",
71
71
  "@storybook/html-webpack5": "^7.0.12",
@@ -50,6 +50,7 @@
50
50
  "section-notice": ["button"],
51
51
  "split-button": ["button", "menu-button"],
52
52
  "toast-dialog": ["icon-button"],
53
+ "toggle-button-group": ["toggle-button"],
53
54
  "tourtip": ["icon-button"]
54
55
  },
55
56
  "nested": {
@@ -27,13 +27,13 @@ export const variations = () => /* HTML */ `
27
27
  export const withImage = () => /* HTML */ `
28
28
  <div class="avatar" role="img" aria-label="Signed-in as Doggy">
29
29
  <img
30
- src="https://ir.ebaystatic.com/cr/v/c01/skin/docs/dog_profile.png"
30
+ src="https://ir.ebaystatic.com/cr/v/c01/skin/docs/dog_profile_optimized.jpg"
31
31
  alt="profile pic"
32
32
  />
33
33
  </div>
34
34
  <div class="avatar avatar--128" role="img" aria-label="Signed-in as Doggy">
35
35
  <img
36
- src="https://ir.ebaystatic.com/cr/v/c01/skin/docs/dog_profile.png"
36
+ src="https://ir.ebaystatic.com/cr/v/c01/skin/docs/dog_profile_optimized.jpg"
37
37
  alt="profile pic"
38
38
  />
39
39
  </div>
@@ -101,7 +101,7 @@ export const sizesProfilePic = () => /* HTML */ `
101
101
  aria-label="Signed-in as Doggy"
102
102
  >
103
103
  <img
104
- src="https://ir.ebaystatic.com/cr/v/c01/skin/docs/dog_profile.png"
104
+ src="https://ir.ebaystatic.com/cr/v/c01/skin/docs/dog_profile_optimized.jpg"
105
105
  alt="profile pic"
106
106
  />
107
107
  </div>
@@ -111,7 +111,7 @@ export const sizesProfilePic = () => /* HTML */ `
111
111
  aria-label="Signed-in as Doggy"
112
112
  >
113
113
  <img
114
- src="https://ir.ebaystatic.com/cr/v/c01/skin/docs/dog_profile.png"
114
+ src="https://ir.ebaystatic.com/cr/v/c01/skin/docs/dog_profile_optimized.jpg"
115
115
  alt="profile pic"
116
116
  />
117
117
  </div>
@@ -121,7 +121,7 @@ export const sizesProfilePic = () => /* HTML */ `
121
121
  aria-label="Signed-in as Doggy"
122
122
  >
123
123
  <img
124
- src="https://ir.ebaystatic.com/cr/v/c01/skin/docs/dog_profile.png"
124
+ src="https://ir.ebaystatic.com/cr/v/c01/skin/docs/dog_profile_optimized.jpg"
125
125
  alt="profile pic"
126
126
  />
127
127
  </div>
@@ -131,7 +131,7 @@ export const sizesProfilePic = () => /* HTML */ `
131
131
  aria-label="Signed-in as Doggy"
132
132
  >
133
133
  <img
134
- src="https://ir.ebaystatic.com/cr/v/c01/skin/docs/dog_profile.png"
134
+ src="https://ir.ebaystatic.com/cr/v/c01/skin/docs/dog_profile_optimized.jpg"
135
135
  alt="profile pic"
136
136
  />
137
137
  </div>
@@ -141,7 +141,7 @@ export const sizesProfilePic = () => /* HTML */ `
141
141
  aria-label="Signed-in as Doggy"
142
142
  >
143
143
  <img
144
- src="https://ir.ebaystatic.com/cr/v/c01/skin/docs/dog_profile.png"
144
+ src="https://ir.ebaystatic.com/cr/v/c01/skin/docs/dog_profile_optimized.jpg"
145
145
  alt="profile pic"
146
146
  />
147
147
  </div>
@@ -151,7 +151,7 @@ export const sizesProfilePic = () => /* HTML */ `
151
151
  aria-label="Signed-in as Doggy"
152
152
  >
153
153
  <img
154
- src="https://ir.ebaystatic.com/cr/v/c01/skin/docs/dog_profile.png"
154
+ src="https://ir.ebaystatic.com/cr/v/c01/skin/docs/dog_profile_optimized.jpg"
155
155
  alt="profile pic"
156
156
  />
157
157
  </div>
@@ -161,7 +161,7 @@ export const sizesProfilePic = () => /* HTML */ `
161
161
  aria-label="Signed-in as Doggy"
162
162
  >
163
163
  <img
164
- src="https://ir.ebaystatic.com/cr/v/c01/skin/docs/dog_profile.png"
164
+ src="https://ir.ebaystatic.com/cr/v/c01/skin/docs/dog_profile_optimized.jpg"
165
165
  alt="profile pic"
166
166
  />
167
167
  </div>
@@ -235,7 +235,7 @@ export const combinations = () => /* HTML */ `
235
235
  aria-label="Signed-in as Doggy"
236
236
  >
237
237
  <img
238
- src="https://ir.ebaystatic.com/cr/v/c01/skin/docs/dog_profile.png"
238
+ src="https://ir.ebaystatic.com/cr/v/c01/skin/docs/dog_profile_optimized.jpg"
239
239
  alt="profile pic"
240
240
  />
241
241
  </div>
@@ -56,6 +56,7 @@
56
56
  @import "../textbox/textbox.less";
57
57
  @import "../toast-dialog/toast-dialog.less";
58
58
  @import "../toggle-button/toggle-button.less";
59
+ @import "../toggle-button-group/toggle-button-group.less";
59
60
  @import "../tooltip/tooltip.less";
60
61
  @import "../tourtip/tourtip.less";
61
62
  @import "../typography/typography.less";
@@ -34,6 +34,20 @@ div.field--table {
34
34
  display: table;
35
35
  }
36
36
 
37
+ .field__description--group {
38
+ display: flex;
39
+ justify-content: end;
40
+ }
41
+
42
+ .field__description--group > :last-child {
43
+ margin-left: 5px;
44
+ text-align: right;
45
+ }
46
+
47
+ .field__description--group > :first-child {
48
+ flex: 1;
49
+ }
50
+
37
51
  // ELEMENT CLASSES
38
52
 
39
53
  .field__label {
@@ -43,6 +57,8 @@ div.field--table {
43
57
  .field__description {
44
58
  .color-token(field-description-color, color-foreground-secondary);
45
59
  font-size: @font-size-small;
60
+ line-height: @spacing-200;
61
+ margin-top: @spacing-50;
46
62
  }
47
63
 
48
64
  .field__description--confirmation {
@@ -148,3 +164,10 @@ div.field__description {
148
164
  align-self: start;
149
165
  margin-top: 16px;
150
166
  }
167
+
168
+ [dir="rtl"] {
169
+ .field__description--group > :last-child {
170
+ margin-right: 5px;
171
+ text-align: left;
172
+ }
173
+ }
@@ -0,0 +1,114 @@
1
+ export default { title: "Skin/Field/Helper Texts/Stacked" };
2
+
3
+ export const characterMeterOnly = () => `
4
+ <span class="field">
5
+ <label class="field__label field__label--stacked" for="field-character-1-input">Field 1</label>
6
+ <span class="field__control textbox">
7
+ <input type="text" aria-describedby="field-character-1" class="textbox__control" id="field-character-1-input" aria-live="off" />
8
+ </span>
9
+ <div class="field__description field__description--group">
10
+ <span id="field-character-1">
11
+ 0 of 140
12
+ </span>
13
+ </div>
14
+ </span>
15
+ `;
16
+
17
+ export const descriptionCharacterMeter = () => `
18
+ <span class="field ">
19
+ <label class="field__label field__label--stacked" for="field-character-1-input">Field 1</label>
20
+ <span class="field__control textbox">
21
+ <input type="text" aria-describedby="field-character-1-description field-character-1" class="textbox__control" id="field-character-1-input" aria-live="off" />
22
+ </span>
23
+
24
+ <div class="field__description field__description--group">
25
+ <span id="field-character-1-description">
26
+ Field description or error
27
+ </span>
28
+ <span id="field-character-1">
29
+ 0 of 140
30
+ </span>
31
+ </div>
32
+ </span>
33
+ `;
34
+
35
+ export const longDescriptionCharacterMeter = () => `
36
+ <span class="field" style="width:200px">
37
+ <label class="field__label field__label--stacked" for="field-character-1-input">Field 1</label>
38
+ <span class="field__control textbox">
39
+ <input type="text" aria-describedby="field-character-1-description field-character-1" class="textbox__control" id="field-character-1-input" aria-live="off" />
40
+ </span>
41
+
42
+ <div class="field__description field__description--group">
43
+ <span id="field-character-1-description">
44
+ Field description or error which is long and should wrap to next line
45
+ </span>
46
+ <span id="field-character-1">
47
+ 0 of 140
48
+ </span>
49
+ </div>
50
+ </span>
51
+ `;
52
+
53
+ export const fluidDescriptionCharacterMeter = () => `
54
+ <div class="field fluid">
55
+ <label class="field__label field__label--stacked" for="field-character-3-input">Field 1</label>
56
+ <div class="field__control textbox">
57
+ <input type="text" aria-describedby="field-character-3-description field-character-1" class="textbox__control textbox__control--fluid" id="field-character-3-input" aria-live="off" />
58
+ </div>
59
+ <div class="field__description field__description--group">
60
+ <span id="field-character-1-description">
61
+ Field description or error
62
+ </span>
63
+ <span id="field-character-1">
64
+ 0 of 140
65
+ </span>
66
+ </div>
67
+ </div>
68
+ `;
69
+
70
+ export const RTL = () => `
71
+ <div dir="rtl">
72
+ <span class="field ">
73
+ <label class="field__label field__label--stacked" for="field-character-1-input">Field 1</label>
74
+ <span class="field__control textbox">
75
+ <input type="text" aria-describedby="field-character-1-description field-character-1" class="textbox__control" id="field-character-1-input" aria-live="off" />
76
+ </span>
77
+
78
+ <div class="field__description field__description--group">
79
+ <span id="field-character-1-description">
80
+ Field description or error
81
+ </span>
82
+ <span id="field-character-1">
83
+ 0 / 140
84
+ </span>
85
+ </div>
86
+ </span>
87
+ <span class="field ">
88
+ <label class="field__label field__label--stacked" for="field-character-1-input">Field 1</label>
89
+ <span class="field__control textbox">
90
+ <input type="text" aria-describedby="field-character-1" class="textbox__control" id="field-character-1-input" aria-live="off" />
91
+ </span>
92
+
93
+ <div class="field__description field__description--group">
94
+ <span id="field-character-1">
95
+ 0 / 140
96
+ </span>
97
+ </div>
98
+ </span>
99
+ <div class="field fluid">
100
+ <label class="field__label field__label--stacked" for="field-character-3-input">Field 1</label>
101
+ <div class="field__control textbox">
102
+ <input type="text" aria-describedby="field-character-3-description field-character-1" class="textbox__control textbox__control--fluid" id="field-character-3-input" aria-live="off" />
103
+ </div>
104
+ <div class="field__description field__description--group">
105
+ <span id="field-character-1-description">
106
+ Field description or error
107
+ </span>
108
+ <span id="field-character-1">
109
+ 0 of 140
110
+ </span>
111
+ </div>
112
+ </div>
113
+ </div>
114
+ `;
@@ -25,6 +25,33 @@
25
25
  .dialog-footer-content();
26
26
  }
27
27
 
28
+ .lightbox-dialog__image {
29
+ background-position: center;
30
+ background-repeat: no-repeat;
31
+ background-size: cover;
32
+ border-radius: var(--border-radius-100) var(--border-radius-100) 0 0;
33
+ height: 218px;
34
+ position: absolute;
35
+ width: 100%;
36
+ }
37
+
38
+ .lightbox-dialog--expressive .lightbox-dialog__window {
39
+ padding-bottom: @spacing-100;
40
+ }
41
+
42
+ .lightbox-dialog--expressive .lightbox-dialog__header > * {
43
+ margin-top: 218px;
44
+ }
45
+
46
+ .lightbox-dialog--expressive .lightbox-dialog__header {
47
+ margin: @spacing-300 @spacing-300 0;
48
+ }
49
+
50
+ .lightbox-dialog--expressive .lightbox-dialog__main,
51
+ .lightbox-dialog--expressive .lightbox-dialog__footer {
52
+ padding: @spacing-200 @spacing-300;
53
+ }
54
+
28
55
  // inherits from .icon-btn
29
56
  // Might need to see if icon-btn can support a small version
30
57
  button.icon-btn.lightbox-dialog__close {
@@ -37,6 +64,11 @@ button.icon-btn.lightbox-dialog__close {
37
64
  z-index: 1;
38
65
  }
39
66
 
67
+ .lightbox-dialog--expressive button.icon-btn.lightbox-dialog__close {
68
+ align-self: self-start;
69
+ margin: 0;
70
+ }
71
+
40
72
  .lightbox-dialog__title {
41
73
  &:not(:first-child) {
42
74
  margin-left: @spacing-200;
@@ -113,4 +145,14 @@ button.icon-btn.lightbox-dialog__close {
113
145
  .lightbox-dialog--wide .lightbox-dialog__window {
114
146
  max-width: var(--dialog-lightbox-wide-max-width);
115
147
  }
148
+
149
+ .lightbox-dialog--wide .lightbox-dialog__image {
150
+ height: 256px;
151
+ }
152
+
153
+ .lightbox-dialog--wide.lightbox-dialog--expressive
154
+ .lightbox-dialog__header
155
+ > * {
156
+ margin-top: 256px;
157
+ }
116
158
  }
@@ -23,6 +23,30 @@ export const base = () => `
23
23
  </div>
24
24
  `;
25
25
 
26
+ export const expressiveBase = () => `
27
+ <div aria-labelledby="lightbox-dialog-title" aria-modal="true" class="lightbox-dialog lightbox-dialog--expressive" role="dialog">
28
+ <div class="lightbox-dialog__window">
29
+ <div class="lightbox-dialog__image" style="background-image:url(https://ir.ebaystatic.com/cr/v/c01/skin/docs/tb-landscape-pic.jpg)"></div>
30
+ <div class="lightbox-dialog__header">
31
+ <h2 id="lightbox-dialog-title">Dialog Lightbox</h2>
32
+ <button class="icon-btn lightbox-dialog__close" type="button" aria-label="Close Dialog">
33
+ <svg class="icon icon--close-16" aria-hidden="true">
34
+ <use href="#icon-close-16"></use>
35
+ </svg>
36
+ </button>
37
+ </div>
38
+ <div class="lightbox-dialog__main">
39
+ <h3>Heading</h3>
40
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum lorem, eu sodales velit sagittis id.</p>
41
+ <p><a href="http://www.ebay.com">www.ebay.com</a></p>
42
+ <h3>Heading</h3>
43
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum lorem, eu sodales velit sagittis id.</p>
44
+ <p><a href="http://www.ebay.com">www.ebay.com</a></p>
45
+ </div>
46
+ </div>
47
+ </div>
48
+ `;
49
+
26
50
  export const scrollingLightbox = () => `
27
51
  <div aria-labelledby="lightbox-dialog-title" aria-modal="true" class="lightbox-dialog" role="dialog">
28
52
  <div class="lightbox-dialog__window">
@@ -84,7 +108,73 @@ export const scrollingLightbox = () => `
84
108
  <p><a href="http://www.ebay.com">www.ebay.com</a></p>
85
109
  <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum lorem, eu sodales velit sagittis id.</p>
86
110
  <p><a href="http://www.ebay.com">www.ebay.com</a></p>
111
+ </div>
112
+ </div>
113
+ </div>
114
+ `;
87
115
 
116
+ export const expressiveScrolling = () => `
117
+ <div aria-labelledby="lightbox-dialog-title" aria-modal="true" class="lightbox-dialog lightbox-dialog--expressive" role="dialog">
118
+ <div class="lightbox-dialog__window">
119
+ <div class="lightbox-dialog__image" style="background-image:url(https://ir.ebaystatic.com/cr/v/c01/skin/docs/tb-landscape-pic.jpg)"></div>
120
+ <div class="lightbox-dialog__header">
121
+ <h2 id="lightbox-dialog-title">Dialog Lightbox</h2>
122
+ <button class="icon-btn lightbox-dialog__close" type="button" aria-label="Close Dialog">
123
+ <svg class="icon icon--close-16" aria-hidden="true">
124
+ <use href="#icon-close-16"></use>
125
+ </svg>
126
+ </button>
127
+ </div>
128
+ <div class="lightbox-dialog__main">
129
+ <h3>Heading</h3>
130
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum lorem, eu sodales velit sagittis id.</p>
131
+ <p><a href="http://www.ebay.com">www.ebay.com</a></p>
132
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum lorem, eu sodales velit sagittis id.</p>
133
+ <p><a href="http://www.ebay.com">www.ebay.com</a></p>
134
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum lorem, eu sodales velit sagittis id.</p>
135
+ <p><a href="http://www.ebay.com">www.ebay.com</a></p>
136
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum lorem, eu sodales velit sagittis id.</p>
137
+ <p><a href="http://www.ebay.com">www.ebay.com</a></p>
138
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum lorem, eu sodales velit sagittis id.</p>
139
+ <p><a href="http://www.ebay.com">www.ebay.com</a></p>
140
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum lorem, eu sodales velit sagittis id.</p>
141
+ <p><a href="http://www.ebay.com">www.ebay.com</a></p>
142
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum lorem, eu sodales velit sagittis id.</p>
143
+ <p><a href="http://www.ebay.com">www.ebay.com</a></p>
144
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum lorem, eu sodales velit sagittis id.</p>
145
+ <p><a href="http://www.ebay.com">www.ebay.com</a></p>
146
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum lorem, eu sodales velit sagittis id.</p>
147
+ <p><a href="http://www.ebay.com">www.ebay.com</a></p>
148
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum lorem, eu sodales velit sagittis id.</p>
149
+ <p><a href="http://www.ebay.com">www.ebay.com</a></p>
150
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum lorem, eu sodales velit sagittis id.</p>
151
+ <p><a href="http://www.ebay.com">www.ebay.com</a></p>
152
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum lorem, eu sodales velit sagittis id.</p>
153
+ <p><a href="http://www.ebay.com">www.ebay.com</a></p>
154
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum lorem, eu sodales velit sagittis id.</p>
155
+ <p><a href="http://www.ebay.com">www.ebay.com</a></p>
156
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum lorem, eu sodales velit sagittis id.</p>
157
+ <p><a href="http://www.ebay.com">www.ebay.com</a></p>
158
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum lorem, eu sodales velit sagittis id.</p>
159
+ <p><a href="http://www.ebay.com">www.ebay.com</a></p>
160
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum lorem, eu sodales velit sagittis id.</p>
161
+ <p><a href="http://www.ebay.com">www.ebay.com</a></p>
162
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum lorem, eu sodales velit sagittis id.</p>
163
+ <p><a href="http://www.ebay.com">www.ebay.com</a></p>
164
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum lorem, eu sodales velit sagittis id.</p>
165
+ <p><a href="http://www.ebay.com">www.ebay.com</a></p>
166
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum lorem, eu sodales velit sagittis id.</p>
167
+ <p><a href="http://www.ebay.com">www.ebay.com</a></p>
168
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum lorem, eu sodales velit sagittis id.</p>
169
+ <p><a href="http://www.ebay.com">www.ebay.com</a></p>
170
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum lorem, eu sodales velit sagittis id.</p>
171
+ <p><a href="http://www.ebay.com">www.ebay.com</a></p>
172
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum lorem, eu sodales velit sagittis id.</p>
173
+ <p><a href="http://www.ebay.com">www.ebay.com</a></p>
174
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum lorem, eu sodales velit sagittis id.</p>
175
+ <p><a href="http://www.ebay.com">www.ebay.com</a></p>
176
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum lorem, eu sodales velit sagittis id.</p>
177
+ <p><a href="http://www.ebay.com">www.ebay.com</a></p>
88
178
  </div>
89
179
  </div>
90
180
  </div>
@@ -188,3 +278,27 @@ export const wide = () => `
188
278
  </div>
189
279
  </div>
190
280
  `;
281
+
282
+ export const expressiveWide = () => `
283
+ <div aria-labelledby="lightbox-dialog-title" aria-modal="true" class="lightbox-dialog lightbox-dialog--wide lightbox-dialog--expressive" role="dialog">
284
+ <div class="lightbox-dialog__window">
285
+ <div class="lightbox-dialog__image" style="background-image:url(https://ir.ebaystatic.com/cr/v/c01/skin/docs/tb-landscape-pic.jpg)"></div>
286
+ <div class="lightbox-dialog__header">
287
+ <h2 id="lightbox-dialog-title">Dialog Lightbox</h2>
288
+ <button class="icon-btn lightbox-dialog__close" type="button" aria-label="Close Dialog">
289
+ <svg class="icon icon--close-16" aria-hidden="true">
290
+ <use href="#icon-close-16"></use>
291
+ </svg>
292
+ </button>
293
+ </div>
294
+ <div class="lightbox-dialog__main">
295
+ <h3>Heading</h3>
296
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum lorem, eu sodales velit sagittis id.</p>
297
+ <p><a href="http://www.ebay.com">www.ebay.com</a></p>
298
+ <h3>Heading</h3>
299
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis molestie erat, ut adipiscing risus blandit vel. Vivamus luctus elementum lorem, eu sodales velit sagittis id.</p>
300
+ <p><a href="http://www.ebay.com">www.ebay.com</a></p>
301
+ </div>
302
+ </div>
303
+ </div>
304
+ `;
@@ -34,6 +34,7 @@
34
34
  background-color: transparent;
35
35
  border: none;
36
36
  border-radius: var(--btn-border-radius, calc(@button-height-regular / 2));
37
+ color: var(--color-foreground-on-primary);
37
38
  font-size: @font-size-regular;
38
39
  min-height: @button-height-regular - (@segmented-buttons-padding * 2);
39
40
  padding: @spacing-100 @spacing-200;
@@ -28,6 +28,19 @@ export const longTitle = () => `
28
28
  </button>
29
29
  `;
30
30
 
31
+ export const profileImageTitle = () => `
32
+ <button type="button" class="toggle-button toggle-button--gallery-layout" aria-pressed="false">
33
+ <span class="toggle-button__image-container">
34
+ <span class="toggle-button__image">
35
+ <img src="https://ir.ebaystatic.com/cr/v/c01/skin/docs/tb-profile-pic.jpg" alt="">
36
+ </span>
37
+ </span>
38
+ <span class="toggle-button__content">
39
+ <span class="toggle-button__title">Image Button Title</span>
40
+ </span>
41
+ </button>
42
+ `;
43
+
31
44
  export const profileImageTitleSubtitle = () => `
32
45
  <button type="button" class="toggle-button toggle-button--gallery-layout" aria-pressed="false">
33
46
  <span class="toggle-button__image-container">