@ebay/skin 16.4.0 → 16.5.0-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 (35) hide show
  1. package/_cdn/skin/v16.5.0-0/skin-default.min.css +6 -0
  2. package/_cdn/skin/v16.5.0-0/skin-full.min.css +6 -0
  3. package/_cdn/skin/v16.5.0-0/skin-headless.min.css +6 -0
  4. package/_cdn/skin/v16.5.0-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/bundles/skin-headless.less +1 -0
  17. package/src/less/field/field.less +23 -0
  18. package/src/less/field/stories/helper-texts-stacked.stories.js +114 -0
  19. package/src/less/lightbox-dialog/lightbox-dialog.less +42 -0
  20. package/src/less/lightbox-dialog/stories/lightbox-dialog.stories.js +114 -0
  21. package/src/less/segmented-buttons/segmented-buttons.less +1 -0
  22. package/src/less/toggle-button/stories/gallery-layout.stories.js +13 -0
  23. package/src/less/toggle-button/toggle-button.less +14 -2
  24. package/src/less/toggle-button-group/stories/gallery-layout.stories.js +566 -0
  25. package/src/less/toggle-button-group/stories/list-layout.stories.js +611 -0
  26. package/src/less/toggle-button-group/stories/minimal-layout.stories.js +341 -0
  27. package/src/less/toggle-button-group/toggle-button-group.less +111 -0
  28. package/toggle-button-group.browser.json +1 -0
  29. package/toggle-button-group.css +1 -0
  30. package/toggle-button-group.js +1 -0
  31. package/toggle-button-group.mjs +1 -0
  32. package/_cdn/skin/v16.4.0/skin-default.min.css +0 -6
  33. package/_cdn/skin/v16.4.0/skin-full.min.css +0 -6
  34. package/_cdn/skin/v16.4.0/skin-headless.min.css +0 -6
  35. 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-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.1",
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": {
@@ -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">
@@ -34,6 +34,10 @@
34
34
  }
35
35
  }
36
36
 
37
+ .toggle-button * {
38
+ pointer-events: none;
39
+ }
40
+
37
41
  .toggle-button[aria-pressed="true"] {
38
42
  background-color: var(--color-background-secondary);
39
43
  border: 1px solid var(--color-stroke-strong);
@@ -85,7 +89,13 @@
85
89
  margin-top: @spacing-200;
86
90
  }
87
91
 
88
- .toggle-button .toggle-button__content .toggle-button__title:only-child {
92
+ .toggle-button__title:only-child {
93
+ margin-bottom: @spacing-200;
94
+ }
95
+
96
+ .toggle-button
97
+ .toggle-button__content:only-child
98
+ .toggle-button__title:only-child {
89
99
  font-weight: bold;
90
100
  margin-bottom: auto;
91
101
  margin-top: auto;
@@ -93,7 +103,9 @@
93
103
  width: 100%;
94
104
  }
95
105
 
96
- .toggle-button:not([aria-pressed="true"]) .toggle-button__title:only-child {
106
+ .toggle-button:not([aria-pressed="true"])
107
+ .toggle-button__content:only-child
108
+ .toggle-button__title:only-child {
97
109
  font-weight: normal;
98
110
  }
99
111