@ebay/skin 17.3.0 → 17.4.0-next.1

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 (135) hide show
  1. package/.changeset/big-cheetahs-peel.md +5 -0
  2. package/.changeset/kind-pens-own.md +5 -0
  3. package/.changeset/loud-carrots-protect.md +5 -0
  4. package/.changeset/metal-cars-promise.md +5 -0
  5. package/.changeset/pre.json +16 -0
  6. package/.changeset/shaggy-ways-pump.md +5 -0
  7. package/.changeset/shaggy-yaks-guess.md +5 -0
  8. package/.changeset/soft-ligers-march.md +5 -0
  9. package/.github/workflows/jekyll-gh-pages.yml +8 -2
  10. package/.storybook/main.js +1 -1
  11. package/CHANGELOG.md +22 -0
  12. package/ICON-CREATION.md +1 -1
  13. package/_cdn/skin/v17.4.0-next.1/skin-default.min.css +76 -0
  14. package/_cdn/skin/v17.4.0-next.1/skin-full.min.css +160 -0
  15. package/_cdn/skin/v17.4.0-next.1/skin-headless.min.css +6 -0
  16. package/dist/flag/flag.css +774 -0
  17. package/dist/icon/icon.css +20 -0
  18. package/dist/icon-button/icon-button.css +113 -0
  19. package/dist/phone-input/phone-input.css +144 -0
  20. package/dist/skeleton/skeleton.css +6 -0
  21. package/dist/svg/icon/icon-bids-24.svg +4 -2
  22. package/dist/svg/icon/icon-bids-64.svg +2 -5
  23. package/dist/svg/icon/icon-bookmark-filled-16.svg +7 -0
  24. package/dist/svg/icon/icon-bookmark-filled-24.svg +7 -0
  25. package/dist/svg/icon/icon-exclude-16.svg +7 -0
  26. package/dist/svg/icon/icon-exclude-24.svg +7 -0
  27. package/dist/svg/icon/icon-fast-and-free-16.svg +4 -2
  28. package/dist/svg/icon/icon-fast-and-free-24.svg +4 -2
  29. package/dist/svg/icon/icon-inspect-64.svg +7 -0
  30. package/dist/svg/icon/icon-on-the-way-16.svg +4 -3
  31. package/dist/svg/icon/icon-on-the-way-24.svg +4 -2
  32. package/dist/svg/icon/icon-wallet-24.svg +4 -2
  33. package/dist/svg/icon/icon-wallet-64.svg +4 -2
  34. package/dist/svg/icons.svg +72 -27
  35. package/dist/tokens/evo-dark.css +14 -9
  36. package/dist/tokens/evo-light.css +13 -3
  37. package/eslint.config.mjs +15 -0
  38. package/index.browser.json +1 -0
  39. package/index.css +1 -0
  40. package/index.js +1 -0
  41. package/index.mjs +1 -0
  42. package/lint.log +10 -0
  43. package/package.json +17 -17
  44. package/phone-input.browser.json +1 -0
  45. package/phone-input.css +1 -0
  46. package/phone-input.js +1 -0
  47. package/phone-input.mjs +1 -0
  48. package/scripts/jekyll-config.js +2 -4
  49. package/src/less/alert-dialog/stories/alert-dialog.stories.js +16 -0
  50. package/src/less/badge/stories/badge.stories.js +4 -0
  51. package/src/less/breadcrumbs/stories/button-cascade.stories.js +29 -0
  52. package/src/less/breadcrumbs/stories/button-overflow.stories.js +48 -0
  53. package/src/less/breadcrumbs/stories/link-cascade.stories.js +29 -0
  54. package/src/less/breadcrumbs/stories/link-overflow.stories.js +51 -0
  55. package/src/less/bundles/skin-headless.less +1 -0
  56. package/src/less/button/stories/button/text-spacing.stories.js +16 -0
  57. package/src/less/button/stories/fake-button/text-spacing.stories.js +13 -0
  58. package/src/less/calendar/stories/calendar.stories.js +210 -0
  59. package/src/less/checkbox/stories/checked.stories.js +20 -0
  60. package/src/less/chips-combobox/stories/chips-combobox.stories.js +58 -0
  61. package/src/less/combobox/stories/combobox.stories.js +21 -0
  62. package/src/less/confirm-dialog/stories/confirm-dialog.stories.js +17 -0
  63. package/src/less/cta-button/stories/cta-button.stories.js +11 -0
  64. package/src/less/date-textbox/stories/date-textbox.stories.js +27 -0
  65. package/src/less/details/stories/details.stories.js +14 -0
  66. package/src/less/drawer-dialog/stories/drawer-dialog.stories.js +27 -0
  67. package/src/less/field/stories/helper-texts-stacked.stories.js +17 -0
  68. package/src/less/filter-button/stories/button.stories.js +8 -0
  69. package/src/less/filter-menu/stories/filter-menu.stories.js +41 -0
  70. package/src/less/filter-menu-button/stories/filter-menu-button.stories.js +238 -0
  71. package/src/less/flag/flag.less +777 -0
  72. package/src/less/flag/stories/flag.stories.js +9 -0
  73. package/src/less/floating-label/stories/floating-label.stories.js +102 -0
  74. package/src/less/fullscreen-dialog/stories/fullscreen-dialog.stories.js +27 -0
  75. package/src/less/global/stories/global.stories.js +16 -0
  76. package/src/less/icon/generated/icon.less +20 -0
  77. package/src/less/icon-button/icon-button.less +133 -0
  78. package/src/less/icon-button/stories/buttons.stories.js +241 -0
  79. package/src/less/icon-button/stories/links.stories.js +241 -0
  80. package/src/less/infotip/stories/infotip.stories.js +27 -2
  81. package/src/less/inline-notice/stories/inline.stories.js +13 -0
  82. package/src/less/lightbox-dialog/stories/lightbox-dialog.stories.js +24 -0
  83. package/src/less/link/stories/link.stories.js +9 -3
  84. package/src/less/listbox/stories/listbox.stories.js +37 -0
  85. package/src/less/listbox-button/stories/base.stories.js +42 -0
  86. package/src/less/menu/stories/misc.stories.js +10 -0
  87. package/src/less/menu-button/stories/base.stories.js +26 -0
  88. package/src/less/page-notice/stories/page-notice.stories.js +22 -0
  89. package/src/less/pagination/stories/overflow.stories.js +49 -0
  90. package/src/less/panel-dialog/stories/panel-dialog.stories.js +45 -0
  91. package/src/less/phone-input/phone-input.less +175 -0
  92. package/src/less/phone-input/stories/phone-input.stories.js +771 -0
  93. package/src/less/progress-bar-expressive/stories/progress-bar-expressive.stories.js +31 -0
  94. package/src/less/progress-stepper/stories/progress-stepper.stories.js +52 -0
  95. package/src/less/radio/stories/checked.stories.js +49 -2
  96. package/src/less/section-notice/stories/icon-16.stories.js +25 -1
  97. package/src/less/section-title/stories/section-title.stories.js +17 -0
  98. package/src/less/segmented-buttons/stories/segmented-buttons.stories.js +10 -0
  99. package/src/less/select/stories/default.stories.js +13 -0
  100. package/src/less/signal/stories/signal.stories.js +6 -0
  101. package/src/less/skeleton/skeleton.less +11 -0
  102. package/src/less/skeleton/stories/composite.stories.js +1 -1
  103. package/src/less/snackbar-dialog/stories/base.stories.js +14 -0
  104. package/src/less/split-button/stories/base.stories.js +30 -0
  105. package/src/less/tabs/stories/tabs/block.stories.js +17 -0
  106. package/src/less/tabs/stories/tabs/inlineBlock.stories.js +17 -0
  107. package/src/less/textbox/stories/textbox.stories.js +6 -0
  108. package/src/less/toast-dialog/stories/toast-dialog.stories.js +23 -0
  109. package/src/less/toggle-button/stories/gallery-layout.stories.js +13 -0
  110. package/src/less/toggle-button/stories/list-layout.stories.js +14 -0
  111. package/src/less/toggle-button/stories/minimal-layout.stories.js +8 -0
  112. package/src/less/tooltip/stories/tooltip.stories.js +19 -0
  113. package/src/less/tourtip/stories/tourtip.stories.js +21 -0
  114. package/src/svg/icon/icon-bids-24.svg +4 -2
  115. package/src/svg/icon/icon-bids-64.svg +2 -5
  116. package/src/svg/icon/icon-bookmark-filled-16.svg +7 -0
  117. package/src/svg/icon/icon-bookmark-filled-24.svg +7 -0
  118. package/src/svg/icon/icon-exclude-16.svg +7 -0
  119. package/src/svg/icon/icon-exclude-24.svg +7 -0
  120. package/src/svg/icon/icon-fast-and-free-16.svg +4 -2
  121. package/src/svg/icon/icon-fast-and-free-24.svg +4 -2
  122. package/src/svg/icon/icon-inspect-64.svg +7 -0
  123. package/src/svg/icon/icon-on-the-way-16.svg +4 -3
  124. package/src/svg/icon/icon-on-the-way-24.svg +4 -2
  125. package/src/svg/icon/icon-wallet-24.svg +4 -2
  126. package/src/svg/icon/icon-wallet-64.svg +4 -2
  127. package/src/svg/icons.svg +72 -27
  128. package/src/tokens/evo-dark.css +14 -9
  129. package/src/tokens/evo-light.css +13 -3
  130. package/svg.svg +72 -27
  131. package/.eslintrc +0 -14
  132. package/_cdn/skin/v17.3.0/skin-default.min.css +0 -69
  133. package/_cdn/skin/v17.3.0/skin-full.min.css +0 -151
  134. package/_cdn/skin/v17.3.0/skin-headless.min.css +0 -6
  135. package/src/less/section-notice/stories/icon-24.stories.js +0 -251
@@ -46,3 +46,12 @@ export const beforeLink = () => `
46
46
  <span style="vertical-align: middle;">United States of America</span>
47
47
  </a>
48
48
  `;
49
+
50
+ export const textSpacing = () => `
51
+ <p class="demo-a11y-text-spacing">
52
+ <svg class="flag flag--us">
53
+ <use href="#flag-us"></use>
54
+ </svg>
55
+ <span style="vertical-align: middle;">United States of America</span>
56
+ </p>
57
+ `;
@@ -185,3 +185,105 @@ export const TextArea = () => `
185
185
  </span>
186
186
  </span>
187
187
  `;
188
+
189
+ export const textSpacing = () => `
190
+ <span class="floating-label demo-a11y-text-spacing">
191
+ <label class="floating-label__label" for="firstName">First Name</label>
192
+ <span class="textbox">
193
+ <input class="textbox__control" id="firstName" type="text" />
194
+ </span>
195
+ </span>
196
+ `;
197
+
198
+ export const phoneInput = () => `
199
+ <span class="phone-input">
200
+ <span class="listbox-button listbox-button--form">
201
+ <button class="btn btn--form btn--split-start" aria-expanded="false" aria-haspopup="listbox" type="button"
202
+ data-listbox-button-prefix="Country: " aria-label="Country: United States of America (+1)">
203
+ <span class="btn__cell">
204
+ <span class="btn__text">
205
+ <svg class="flag flag--us" focusable="false" height="18" width="24" aria-hidden="true" data-country-code="1">
206
+ <use href="#flag-us"></use>
207
+ </svg>
208
+ </span>
209
+ <svg class="icon icon--chevron-down-12" focusable="false" height="10" width="14" aria-hidden="true">
210
+ <use href="#icon-chevron-down-12"></use>
211
+ </svg>
212
+ </span>
213
+ </button>
214
+ <div class="listbox-button__listbox">
215
+ <div class="listbox-button__options" role="listbox">
216
+ <div class="listbox-button__option" role="option">
217
+ <span class="listbox-button__value">
218
+ <svg class="flag flag--al" focusable="false" height="18" width="24" aria-hidden="true" data-country-code="355">
219
+ <use href="#flag-al"></use>
220
+ </svg>
221
+ <span>Albania</span>
222
+ <span>(+355)</span>
223
+ </span>
224
+ <svg class="icon icon--tick-16" focusable="false" height="10" width="14" aria-hidden="true">
225
+ <use href="#icon-tick-16"></use>
226
+ </svg>
227
+ </div>
228
+ <div class="listbox-button__option" role="option">
229
+ <span class="listbox-button__value">
230
+ <svg class="flag flag--in" focusable="false" height="18" width="24" aria-hidden="true" data-country-code="91">
231
+ <use href="#flag-in"></use>
232
+ </svg>
233
+ <span>India</span>
234
+ <span>(+91)</span>
235
+ </span>
236
+ <svg class="icon icon--tick-16" focusable="false" height="10" width="14" aria-hidden="true">
237
+ <use href="#icon-tick-16"></use>
238
+ </svg>
239
+ </div>
240
+ <div class="listbox-button__option" role="option">
241
+ <span class="listbox-button__value">
242
+ <svg class="flag flag--sh" focusable="false" height="18" width="24" aria-hidden="true" data-country-code="290">
243
+ <use href="#flag-sh"></use>
244
+ </svg>
245
+ <span>Saint Helena, Ascension and Tristan da Cunha</span>
246
+ <span>(+290)</span>
247
+ </span>
248
+ <svg class="icon icon--tick-16" focusable="false" height="10" width="14" aria-hidden="true">
249
+ <use href="#icon-tick-16"></use>
250
+ </svg>
251
+ </div>
252
+ <div class="listbox-button__option" role="option">
253
+ <span class="listbox-button__value">
254
+ <svg class="flag flag--gb" focusable="false" height="18" width="24" aria-hidden="true" data-country-code="44">
255
+ <use href="#flag-gb"></use>
256
+ </svg>
257
+ <span>United Kingdom</span>
258
+ <span>(+44)</span>
259
+ </span>
260
+ <svg class="icon icon--tick-16" focusable="false" height="10" width="14" aria-hidden="true">
261
+ <use href="#icon-tick-16"></use>
262
+ </svg>
263
+ </div>
264
+ <div class="listbox-button__option" role="option" aria-selected="true">
265
+ <span class="listbox-button__value">
266
+ <svg class="flag flag--us" focusable="false" height="18" width="24" aria-hidden="true" data-country-code="1">
267
+ <use href="#flag-us"></use>
268
+ </svg>
269
+ <span>United States of America</span>
270
+ <span>(+1)</span>
271
+ </span>
272
+ <svg class="icon icon--tick-16" focusable="false" height="10" width="14" aria-hidden="true">
273
+ <use href="#icon-tick-16"></use>
274
+ </svg>
275
+ </div>
276
+ </div>
277
+ </div>
278
+ </span>
279
+ <span class="field floating-label">
280
+ <label class="floating-label__label" for="field1"><span class="clipped">Area code + </span>Phone
281
+ Number</label>
282
+ <span class="textbox">
283
+ <span id="floating-phone-prefix-0">+1</span>
284
+ <input class="textbox__control" type="tel" aria-label="area code + phone number"
285
+ autocomplete="tel-national" aria-describedby="floating-phone-prefix-0"/>
286
+ </span>
287
+ </span>
288
+ </span>
289
+ `;
@@ -116,3 +116,30 @@ export const secondaryButton = () => `
116
116
  </div>
117
117
  </div>
118
118
  `;
119
+
120
+ export const textSpacing = () => `
121
+ <div aria-labelledby="fullscreen-dialog-title" aria-modal="true" class="fullscreen-dialog demo-a11y-text-spacing" role="dialog">
122
+ <div class="fullscreen-dialog__window">
123
+ <div class="fullscreen-dialog__header">
124
+ <h2 id="fullscreen-dialog-title">Dialog Full</h2>
125
+ <button class="icon-btn fullscreen-dialog__close" type="button" aria-label="Close Dialog">
126
+ <svg class="icon icon--close-16" aria-hidden="true">
127
+ <use href="#icon-close-16"></use>
128
+ </svg>
129
+ </button>
130
+ </div>
131
+ <div class="fullscreen-dialog__main">
132
+ <h3>Heading</h3>
133
+ <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>
134
+ <p><a href="http://www.ebay.com">www.ebay.com</a></p>
135
+ <h3>Heading</h3>
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
+ </div>
139
+ <div class="fullscreen-dialog__footer">
140
+ <button class="btn btn--primary">Submit</button>
141
+ <button class="btn">Cancel</button>
142
+ </div>
143
+ </div>
144
+ </div>
145
+ `;
@@ -14,6 +14,22 @@ export const headings = () => `
14
14
  <h6>This is a level 6 heading</h6>
15
15
  `;
16
16
 
17
+ export const headingsTextSpacing = () => `
18
+ <div class="demo-a11y-text-spacing">
19
+ <h1>This is a level 1 heading</h1>
20
+ <hr/>
21
+ <h2>This is a level 2 heading</h2>
22
+ <hr/>
23
+ <h3>This is a level 3 heading</h3>
24
+ <hr/>
25
+ <h4>This is a level 4 heading</h4>
26
+ <hr/>
27
+ <h5>This is a level 5 heading</h5>
28
+ <hr/>
29
+ <h6>This is a level 6 heading</h6>
30
+ </div>
31
+ `;
32
+
17
33
  export const RTLHeadings = () => `
18
34
  <div dir="rtl">
19
35
  <h1>This is a level 1 heading</h1>
@@ -295,6 +295,14 @@ svg.icon--bookmark-24 {
295
295
  height: 24px;
296
296
  width: 24px;
297
297
  }
298
+ svg.icon--bookmark-filled-16 {
299
+ height: 16px;
300
+ width: 16px;
301
+ }
302
+ svg.icon--bookmark-filled-24 {
303
+ height: 24px;
304
+ width: 24px;
305
+ }
298
306
  svg.icon--brand-authorized-seller-16 {
299
307
  height: 16px;
300
308
  width: 16px;
@@ -887,6 +895,14 @@ svg.icon--euro-24 {
887
895
  height: 24px;
888
896
  width: 24px;
889
897
  }
898
+ svg.icon--exclude-16 {
899
+ height: 16px;
900
+ width: 16px;
901
+ }
902
+ svg.icon--exclude-24 {
903
+ height: 24px;
904
+ width: 24px;
905
+ }
890
906
  svg.icon--expand-16 {
891
907
  height: 16px;
892
908
  width: 16px;
@@ -1287,6 +1303,10 @@ svg.icon--inspect-24 {
1287
1303
  height: 24px;
1288
1304
  width: 24px;
1289
1305
  }
1306
+ svg.icon--inspect-64 {
1307
+ height: 64px;
1308
+ width: 64px;
1309
+ }
1290
1310
  svg.icon--instagram-24 {
1291
1311
  height: 24px;
1292
1312
  width: 24px;
@@ -18,6 +18,7 @@ a.icon-link {
18
18
  box-sizing: border-box;
19
19
  font-family: inherit;
20
20
  height: 40px;
21
+ justify-content: center;
21
22
  margin: 0;
22
23
  padding: 0;
23
24
  vertical-align: text-bottom;
@@ -43,6 +44,29 @@ a.icon-link {
43
44
  }
44
45
  }
45
46
 
47
+ button.icon-btn.icon-btn--primary,
48
+ a.icon-link.icon-link--primary {
49
+ .background-color-token(btn-primary-background-color, color-background-accent);
50
+ .border-color-token(btn-primary-border-color, color-stroke-accent);
51
+ .color-token(btn-primary-foreground-color, color-foreground-on-accent);
52
+ }
53
+
54
+ button.icon-btn.icon-btn--primary > svg,
55
+ a.icon-link.icon-link--primary > svg {
56
+ .fill-token(icon-button-icon-foreground-color, color-foreground-on-accent);
57
+ }
58
+
59
+ button.icon-btn.icon-btn--secondary > svg,
60
+ a.icon-link.icon-link--secondary > svg {
61
+ .fill-token(icon-button-icon-foreground-color, color-foreground-accent);
62
+ }
63
+
64
+ button.icon-btn.icon-btn--small .progress-spinner,
65
+ a.icon-link.icon-link--small .progress-spinner {
66
+ height: 20px;
67
+ width: 20px;
68
+ }
69
+
46
70
  button.icon-btn.icon-btn--transparent > svg,
47
71
  a.icon-link.icon-link--transparent > svg {
48
72
  max-width: 100%;
@@ -142,3 +166,112 @@ a.icon-link > svg.icon--information-filled-16 {
142
166
  .fill-token(color-foreground-information);
143
167
  }
144
168
  }
169
+
170
+ button.icon-btn.icon-btn--primary,
171
+ a.icon-link.icon-link--primary,
172
+ button.icon-btn.icon-btn--secondary,
173
+ a.icon-link.icon-link--secondary,
174
+ button.icon-btn.icon-btn--tertiary,
175
+ a.icon-link.icon-link--tertiary {
176
+ border-width: 1px;
177
+ }
178
+
179
+ button[disabled].icon-btn.icon-btn--primary,
180
+ button[aria-disabled="true"].icon-btn.icon-btn--primary,
181
+ a:not([href]).icon-link.icon-link--primary,
182
+ a[aria-disabled="true"].icon-link.icon-link--primary {
183
+ .background-color-token(icon-button-disabled-background-color, color-background-disabled);
184
+ .border-color-token(btn-primary-disabled-border-color, color-stroke-disabled);
185
+ }
186
+
187
+ button[disabled].icon-btn.icon-btn--primary > svg,
188
+ button[aria-disabled="true"].icon-btn.icon-btn--primary > svg,
189
+ a:not([href]).icon-link.icon-link--primary > svg,
190
+ a[aria-disabled="true"].icon-link.icon-link--primary > svg {
191
+ .fill-token(icon-button-icon-foreground-color, color-foreground-on-accent);
192
+ }
193
+
194
+ button.icon-btn.icon-btn--primary .progress-spinner,
195
+ a.icon-link.icon-link--primary .progress-spinner {
196
+ --color-spinner-icon-background: var(--color-background-primary);
197
+ --color-spinner-icon-foreground: #8fa3f8; // 40% of white on top of --color-foreground-on-accent
198
+ }
199
+
200
+ button.icon-btn.icon-btn--secondary,
201
+ a.icon-link.icon-link--secondary {
202
+ background-color: transparent;
203
+ .border-color-token(btn-secondary-border-color, color-stroke-accent);
204
+ .color-token(btn-secondary-foreground-color, color-foreground-accent);
205
+ }
206
+
207
+ button.icon-btn.icon-btn--primary:not([disabled], [aria-disabled="true"]),
208
+ a.icon-link.icon-link--primary:not([disabled], [aria-disabled="true"]) {
209
+ &:hover,
210
+ &:focus {
211
+ background-blend-mode: multiply;
212
+ filter: brightness(96%);
213
+ }
214
+
215
+ &:active {
216
+ filter: brightness(92%);
217
+ }
218
+ }
219
+
220
+ button.icon-btn.icon-btn--secondary .progress-spinner,
221
+ a.icon-link.icon-link--secondary .progress-spinner,
222
+ button.icon-btn.icon-btn--tertiary .progress-spinner,
223
+ a.icon-link.icon-link--tertiary .progress-spinner {
224
+ --color-spinner-icon-foreground: #3665f366; // 40% of #3665f3
225
+ }
226
+
227
+ button[disabled].icon-btn.icon-btn--secondary,
228
+ button[aria-disabled="true"].icon-btn.icon-btn--secondary,
229
+ a:not([href]).icon-link.icon-link--secondary,
230
+ a[aria-disabled="true"].icon-link.icon-link--secondary {
231
+ .border-color-token(btn-secondary-disabled-border-color, color-stroke-disabled);
232
+ }
233
+
234
+ button[disabled].icon-btn.icon-btn--secondary > svg,
235
+ button[aria-disabled="true"].icon-btn.icon-btn--secondary > svg,
236
+ a:not([href]).icon-link.icon-blinktn--secondary > svg,
237
+ a[aria-disabled="true"].icon-link.icon-link--secondary > svg {
238
+ .fill-token(icon-button-icon-foreground-color, color-foreground-disabled);
239
+ }
240
+
241
+ button.icon-btn.icon-btn--secondary:not([disabled], [aria-disabled="true"]),
242
+ a.icon-link.icon-link--secondary:not([disabled], [aria-disabled="true"]) {
243
+ &:hover,
244
+ &:focus {
245
+ background-color: var(--color-state-secondary-hover);
246
+ }
247
+
248
+ &:active {
249
+ background-color: var(--color-state-secondary-active);
250
+ }
251
+ }
252
+
253
+ button.icon-btn.icon-btn--tertiary,
254
+ a.icon-link.icon-link--tertiary {
255
+ background-color: transparent;
256
+ .border-color-token(btn-primary-border-color, color-stroke-default);
257
+ .color-token(btn-primary-foreground-color, color-foreground-accent);
258
+ }
259
+
260
+ button[disabled].icon-btn.icon-btn--tertiary,
261
+ button[aria-disabled="true"].icon-btn.icon-btn--tertiary,
262
+ a:not([href]).icon-link.icon-link--tertiary,
263
+ a[aria-disabled="true"].icon-link.icon-link--tertiary {
264
+ .border-color-token(btn-tertiary-disabled-border-color, color-stroke-disabled);
265
+ }
266
+
267
+ button.icon-btn.icon-btn--tertiary:not([disabled], [aria-disabled="true"]),
268
+ a.icon-link.icon-link--tertiary:not([disabled], [aria-disabled="true"]) {
269
+ &:hover,
270
+ &:focus {
271
+ background-color: var(--color-state-secondary-hover);
272
+ }
273
+
274
+ &:active {
275
+ background-color: var(--color-state-secondary-active);
276
+ }
277
+ }
@@ -0,0 +1,241 @@
1
+ export default { title: "Skin/Icon Button/Buttons" };
2
+
3
+ export const base = () => `
4
+ <button class="icon-btn icon-btn--large" type="button" aria-label="Save">
5
+ <svg class="icon icon--save-24" width="16" height="16" aria-hidden="true">
6
+ <use href="#icon-save-24"></use>
7
+ </svg>
8
+ </button>
9
+ <button class="icon-btn" type="button" aria-label="Save">
10
+ <svg class="icon icon--save-20" width="16" height="16" aria-hidden="true">
11
+ <use href="#icon-save-20"></use>
12
+ </svg>
13
+ </button>
14
+ <button class="icon-btn icon-btn--small" type="button" aria-label="Save">
15
+ <svg class="icon icon--save-16" width="16" height="16" aria-hidden="true">
16
+ <use href="#icon-save-16"></use>
17
+ </svg>
18
+ </button>
19
+ `;
20
+
21
+ export const baseSpinner = () => `
22
+ <button class="icon-btn icon-btn--large" type="button" aria-label="Save">
23
+ <span class="progress-spinner progress-spinner--large">
24
+ <svg aria-hidden="true" class="icon icon--spinner-24" height="24" width="24">
25
+ <use href="#icon-spinner-24"></use>
26
+ </svg>
27
+ </span>
28
+ </button>
29
+ <button class="icon-btn" type="button" aria-label="Save">
30
+ <span class="progress-spinner">
31
+ <svg aria-hidden="true" class="icon icon--spinner-20" height="24" width="24">
32
+ <use href="#icon-spinner-20"></use>
33
+ </svg>
34
+ </span>
35
+ </button>
36
+ <button class="icon-btn icon-btn--small" type="button" aria-label="Save">
37
+ <span class="progress-spinner progress-spinner--small">
38
+ <svg aria-hidden="true" class="icon icon--spinner-20" height="24" width="24">
39
+ <use href="#icon-spinner-20"></use>
40
+ </svg>
41
+ </span>
42
+ </button>
43
+ `;
44
+
45
+ export const baseDisabled = () => `
46
+ <button class="icon-btn icon-btn--large" type="button" aria-label="Save" disabled>
47
+ <svg class="icon icon--save-24" width="16" height="16" aria-hidden="true">
48
+ <use href="#icon-save-24"></use>
49
+ </svg>
50
+ </button>
51
+ <button class="icon-btn" type="button" aria-label="Save" disabled>
52
+ <svg class="icon icon--save-20" width="16" height="16" aria-hidden="true">
53
+ <use href="#icon-save-20"></use>
54
+ </svg>
55
+ </button>
56
+ <button class="icon-btn icon-btn--small" type="button" aria-label="Save" disabled>
57
+ <svg class="icon icon--save-16" width="16" height="16" aria-hidden="true">
58
+ <use href="#icon-save-16"></use>
59
+ </svg>
60
+ </button>
61
+ `;
62
+
63
+ export const primary = () => `
64
+ <button class="icon-btn icon-btn--large icon-btn--primary" type="button" aria-label="Save">
65
+ <svg class="icon icon--save-24" width="16" height="16" aria-hidden="true">
66
+ <use href="#icon-save-24"></use>
67
+ </svg>
68
+ </button>
69
+ <button class="icon-btn icon-btn--primary" type="button" aria-label="Save">
70
+ <svg class="icon icon--save-20" width="16" height="16" aria-hidden="true">
71
+ <use href="#icon-save-20"></use>
72
+ </svg>
73
+ </button>
74
+ <button class="icon-btn icon-btn--small icon-btn--primary" type="button" aria-label="Save">
75
+ <svg class="icon icon--save-16" width="16" height="16" aria-hidden="true">
76
+ <use href="#icon-save-16"></use>
77
+ </svg>
78
+ </button>
79
+ `;
80
+
81
+ export const primarySpinner = () => `
82
+ <button class="icon-btn icon-btn--large icon-btn--primary" type="button" aria-label="Save">
83
+ <span class="progress-spinner progress-spinner--large">
84
+ <svg aria-hidden="true" class="icon icon--spinner-24" height="24" width="24">
85
+ <use href="#icon-spinner-24"></use>
86
+ </svg>
87
+ </span>
88
+ </button>
89
+ <button class="icon-btn icon-btn--primary" type="button" aria-label="Save">
90
+ <span class="progress-spinner">
91
+ <svg aria-hidden="true" class="icon icon--spinner-20" height="24" width="24">
92
+ <use href="#icon-spinner-20"></use>
93
+ </svg>
94
+ </span>
95
+ </button>
96
+ <button class="icon-btn icon-btn--small icon-btn--primary" type="button" aria-label="Save">
97
+ <span class="progress-spinner progress-spinner--small">
98
+ <svg aria-hidden="true" class="icon icon--spinner-20" height="24" width="24">
99
+ <use href="#icon-spinner-20"></use>
100
+ </svg>
101
+ </span>
102
+ </button>
103
+ `;
104
+
105
+ export const primaryDisabled = () => `
106
+ <button class="icon-btn icon-btn--large icon-btn--primary" type="button" aria-label="Save" disabled>
107
+ <svg class="icon icon--save-24" width="16" height="16" aria-hidden="true">
108
+ <use href="#icon-save-24"></use>
109
+ </svg>
110
+ </button>
111
+ <button class="icon-btn icon-btn--primary" type="button" aria-label="Save" disabled>
112
+ <svg class="icon icon--save-20" width="16" height="16" aria-hidden="true">
113
+ <use href="#icon-save-20"></use>
114
+ </svg>
115
+ </button>
116
+ <button class="icon-btn icon-btn--small icon-btn--primary" type="button" aria-label="Save" disabled>
117
+ <svg class="icon icon--save-16" width="16" height="16" aria-hidden="true">
118
+ <use href="#icon-save-16"></use>
119
+ </svg>
120
+ </button>
121
+ `;
122
+
123
+ export const secondary = () => `
124
+ <button class="icon-btn icon-btn--large icon-btn--secondary" type="button" aria-label="Save">
125
+ <svg class="icon icon--save-24" width="16" height="16" aria-hidden="true">
126
+ <use href="#icon-save-24"></use>
127
+ </svg>
128
+ </button>
129
+ <button class="icon-btn icon-btn--secondary" type="button" aria-label="Save">
130
+ <svg class="icon icon--save-20" width="16" height="16" aria-hidden="true">
131
+ <use href="#icon-save-20"></use>
132
+ </svg>
133
+ </button>
134
+ <button class="icon-btn icon-btn--small icon-btn--secondary" type="button" aria-label="Save">
135
+ <svg class="icon icon--save-16" width="16" height="16" aria-hidden="true">
136
+ <use href="#icon-save-16"></use>
137
+ </svg>
138
+ </button>
139
+ `;
140
+
141
+ export const secondarySpinner = () => `
142
+ <button class="icon-btn icon-btn--large icon-btn--secondary" type="button" aria-label="Save">
143
+ <span class="progress-spinner progress-spinner--large">
144
+ <svg aria-hidden="true" class="icon icon--spinner-24" height="24" width="24">
145
+ <use href="#icon-spinner-24"></use>
146
+ </svg>
147
+ </span>
148
+ </button>
149
+ <button class="icon-btn icon-btn--secondary" type="button" aria-label="Save">
150
+ <span class="progress-spinner">
151
+ <svg aria-hidden="true" class="icon icon--spinner-20" height="24" width="24">
152
+ <use href="#icon-spinner-20"></use>
153
+ </svg>
154
+ </span>
155
+ </button>
156
+ <button class="icon-btn icon-btn--small icon-btn--secondary" type="button" aria-label="Save">
157
+ <span class="progress-spinner progress-spinner--small">
158
+ <svg aria-hidden="true" class="icon icon--spinner-20" height="24" width="24">
159
+ <use href="#icon-spinner-20"></use>
160
+ </svg>
161
+ </span>
162
+ </button>
163
+ `;
164
+
165
+ export const secondaryDisabled = () => `
166
+ <button class="icon-btn icon-btn--large icon-btn--secondary" type="button" aria-label="Save" disabled>
167
+ <svg class="icon icon--save-24" width="16" height="16" aria-hidden="true">
168
+ <use href="#icon-save-24"></use>
169
+ </svg>
170
+ </button>
171
+ <button class="icon-btn icon-btn--secondary" type="button" aria-label="Save" disabled>
172
+ <svg class="icon icon--save-20" width="16" height="16" aria-hidden="true">
173
+ <use href="#icon-save-20"></use>
174
+ </svg>
175
+ </button>
176
+ <button class="icon-btn icon-btn--small icon-btn--secondary" type="button" aria-label="Save" disabled>
177
+ <svg class="icon icon--save-16" width="16" height="16" aria-hidden="true">
178
+ <use href="#icon-save-16"></use>
179
+ </svg>
180
+ </button>
181
+ `;
182
+
183
+ export const tertiary = () => `
184
+ <button class="icon-btn icon-btn--large icon-btn--tertiary" type="button" aria-label="Save">
185
+ <svg class="icon icon--save-24" width="16" height="16" aria-hidden="true">
186
+ <use href="#icon-save-24"></use>
187
+ </svg>
188
+ </button>
189
+ <button class="icon-btn icon-btn--tertiary" type="button" aria-label="Save">
190
+ <svg class="icon icon--save-20" width="16" height="16" aria-hidden="true">
191
+ <use href="#icon-save-20"></use>
192
+ </svg>
193
+ </button>
194
+ <button class="icon-btn icon-btn--small icon-btn--tertiary" type="button" aria-label="Save">
195
+ <svg class="icon icon--save-16" width="16" height="16" aria-hidden="true">
196
+ <use href="#icon-save-16"></use>
197
+ </svg>
198
+ </button>
199
+ `;
200
+
201
+ export const tertiarySpinner = () => `
202
+ <button class="icon-btn icon-btn--large icon-btn--tertiary" type="button" aria-label="Save">
203
+ <span class="progress-spinner progress-spinner--large">
204
+ <svg aria-hidden="true" class="icon icon--spinner-24" height="24" width="24">
205
+ <use href="#icon-spinner-24"></use>
206
+ </svg>
207
+ </span>
208
+ </button>
209
+ <button class="icon-btn icon-btn--tertiary" type="button" aria-label="Save">
210
+ <span class="progress-spinner">
211
+ <svg aria-hidden="true" class="icon icon--spinner-20" height="24" width="24">
212
+ <use href="#icon-spinner-20"></use>
213
+ </svg>
214
+ </span>
215
+ </button>
216
+ <button class="icon-btn icon-btn--small icon-btn--tertiary" type="button" aria-label="Save">
217
+ <span class="progress-spinner progress-spinner--small">
218
+ <svg aria-hidden="true" class="icon icon--spinner-20" height="24" width="24">
219
+ <use href="#icon-spinner-20"></use>
220
+ </svg>
221
+ </span>
222
+ </button>
223
+ `;
224
+
225
+ export const tertiaryDisabled = () => `
226
+ <button class="icon-btn icon-btn--large icon-btn--tertiary" type="button" aria-label="Save" disabled>
227
+ <svg class="icon icon--save-24" width="16" height="16" aria-hidden="true">
228
+ <use href="#icon-save-24"></use>
229
+ </svg>
230
+ </button>
231
+ <button class="icon-btn icon-btn--tertiary" type="button" aria-label="Save" disabled>
232
+ <svg class="icon icon--save-20" width="16" height="16" aria-hidden="true">
233
+ <use href="#icon-save-20"></use>
234
+ </svg>
235
+ </button>
236
+ <button class="icon-btn icon-btn--small icon-btn--tertiary" type="button" aria-label="Save" disabled>
237
+ <svg class="icon icon--save-16" width="16" height="16" aria-hidden="true">
238
+ <use href="#icon-save-16"></use>
239
+ </svg>
240
+ </button>
241
+ `;