@gitlab/ui 94.6.1 → 94.7.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 (94) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/components/base/dropdown/dropdown.js +1 -1
  3. package/dist/components/base/dropdown/dropdown_item.js +1 -1
  4. package/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown_group.js +3 -3
  5. package/dist/components/base/new_dropdowns/listbox/listbox.js +4 -4
  6. package/dist/components/base/new_dropdowns/listbox/listbox_group.js +1 -1
  7. package/dist/index.css +2 -2
  8. package/dist/index.css.map +1 -1
  9. package/dist/tailwind.css +1 -1
  10. package/dist/tailwind.css.map +1 -1
  11. package/dist/tokens/build/js/tokens.dark.js +20 -1
  12. package/dist/tokens/build/js/tokens.js +20 -1
  13. package/dist/tokens/css/tokens.css +19 -0
  14. package/dist/tokens/css/tokens.dark.css +19 -0
  15. package/dist/tokens/js/tokens.dark.js +19 -0
  16. package/dist/tokens/js/tokens.js +19 -0
  17. package/dist/tokens/json/tokens.dark.json +457 -0
  18. package/dist/tokens/json/tokens.json +457 -0
  19. package/dist/tokens/scss/_tokens.dark.scss +19 -0
  20. package/dist/tokens/scss/_tokens.scss +19 -0
  21. package/dist/tokens/scss/_tokens_custom_properties.scss +19 -0
  22. package/dist/tokens/tailwind/tokens.cjs +2 -0
  23. package/dist/vendor/bootstrap-vue/src/constants/components.js +1 -4
  24. package/dist/vendor/bootstrap-vue/src/constants/regex.js +1 -6
  25. package/dist/vendor/bootstrap-vue/src/index.js +0 -4
  26. package/dist/vendor/bootstrap-vue/src/utils/string.js +2 -8
  27. package/package.json +1 -1
  28. package/src/components/base/dropdown/dropdown.scss +6 -9
  29. package/src/components/base/dropdown/dropdown.vue +1 -1
  30. package/src/components/base/dropdown/dropdown_divider.scss +1 -1
  31. package/src/components/base/dropdown/dropdown_item.scss +8 -12
  32. package/src/components/base/dropdown/dropdown_item.vue +1 -1
  33. package/src/components/base/dropdown/dropdown_section_header.scss +1 -1
  34. package/src/components/base/filtered_search/filtered_search_suggestion.scss +2 -2
  35. package/src/components/base/filtered_search/filtered_search_suggestion_list.scss +2 -1
  36. package/src/components/base/new_dropdowns/disclosure/disclosure_dropdown.scss +1 -1
  37. package/src/components/base/new_dropdowns/disclosure/disclosure_dropdown_group.vue +3 -3
  38. package/src/components/base/new_dropdowns/dropdown.scss +5 -5
  39. package/src/components/base/new_dropdowns/dropdown_item.scss +29 -12
  40. package/src/components/base/new_dropdowns/listbox/listbox.scss +2 -2
  41. package/src/components/base/new_dropdowns/listbox/listbox.vue +5 -5
  42. package/src/components/base/new_dropdowns/listbox/listbox_group.vue +1 -1
  43. package/src/tokens/build/css/tokens.css +19 -0
  44. package/src/tokens/build/css/tokens.dark.css +19 -0
  45. package/src/tokens/build/js/tokens.dark.js +19 -0
  46. package/src/tokens/build/js/tokens.js +19 -0
  47. package/src/tokens/build/json/tokens.dark.json +457 -0
  48. package/src/tokens/build/json/tokens.json +457 -0
  49. package/src/tokens/build/scss/_tokens.dark.scss +19 -0
  50. package/src/tokens/build/scss/_tokens.scss +19 -0
  51. package/src/tokens/build/scss/_tokens_custom_properties.scss +19 -0
  52. package/src/tokens/build/tailwind/tokens.cjs +2 -0
  53. package/src/tokens/contextual/dropdown.tokens.json +148 -0
  54. package/src/vendor/bootstrap-vue/nuxt/index.js +1 -13
  55. package/src/vendor/bootstrap-vue/nuxt/plugin.template.js +0 -6
  56. package/src/vendor/bootstrap-vue/package.json +1 -4
  57. package/src/vendor/bootstrap-vue/src/_variables.scss +0 -14
  58. package/src/vendor/bootstrap-vue/src/components/breadcrumb/README.md +0 -1
  59. package/src/vendor/bootstrap-vue/src/components/input-group/README.md +1 -1
  60. package/src/vendor/bootstrap-vue/src/components/navbar/README.md +1 -2
  61. package/src/vendor/bootstrap-vue/src/constants/components.js +0 -3
  62. package/src/vendor/bootstrap-vue/src/constants/regex.js +0 -5
  63. package/src/vendor/bootstrap-vue/src/index.d.ts +0 -3
  64. package/src/vendor/bootstrap-vue/src/index.js +0 -9
  65. package/src/vendor/bootstrap-vue/src/index.scss +0 -3
  66. package/src/vendor/bootstrap-vue/src/utils/string.js +1 -8
  67. package/src/vendor/bootstrap-vue/src/utils/string.spec.js +1 -11
  68. package/dist/vendor/bootstrap-vue/src/browser-icons.js +0 -8
  69. package/dist/vendor/bootstrap-vue/src/icons/helpers/icon-base.js +0 -139
  70. package/dist/vendor/bootstrap-vue/src/icons/helpers/make-icon.js +0 -56
  71. package/dist/vendor/bootstrap-vue/src/icons/icon.js +0 -56
  72. package/dist/vendor/bootstrap-vue/src/icons/icons.js +0 -1377
  73. package/dist/vendor/bootstrap-vue/src/icons/iconstack.js +0 -31
  74. package/dist/vendor/bootstrap-vue/src/icons/index.js +0 -4
  75. package/dist/vendor/bootstrap-vue/src/icons/plugin.js +0 -1410
  76. package/dist/vendor/bootstrap-vue/src/icons-only.js +0 -10
  77. package/src/vendor/bootstrap-vue/src/browser-icons.js +0 -9
  78. package/src/vendor/bootstrap-vue/src/icons/README.md +0 -874
  79. package/src/vendor/bootstrap-vue/src/icons/_icons.scss +0 -156
  80. package/src/vendor/bootstrap-vue/src/icons/helpers/icon-base.js +0 -134
  81. package/src/vendor/bootstrap-vue/src/icons/helpers/make-icon.js +0 -48
  82. package/src/vendor/bootstrap-vue/src/icons/icon.js +0 -54
  83. package/src/vendor/bootstrap-vue/src/icons/icons.d.ts +0 -2757
  84. package/src/vendor/bootstrap-vue/src/icons/icons.js +0 -8241
  85. package/src/vendor/bootstrap-vue/src/icons/icons.spec.js +0 -522
  86. package/src/vendor/bootstrap-vue/src/icons/iconstack.js +0 -31
  87. package/src/vendor/bootstrap-vue/src/icons/iconstack.spec.js +0 -161
  88. package/src/vendor/bootstrap-vue/src/icons/index.d.ts +0 -18
  89. package/src/vendor/bootstrap-vue/src/icons/index.js +0 -16
  90. package/src/vendor/bootstrap-vue/src/icons/index.scss +0 -1
  91. package/src/vendor/bootstrap-vue/src/icons/package.json +0 -72782
  92. package/src/vendor/bootstrap-vue/src/icons/plugin.js +0 -4159
  93. package/src/vendor/bootstrap-vue/src/icons-only.js +0 -33
  94. package/src/vendor/bootstrap-vue/src/icons.scss +0 -8
@@ -1,874 +0,0 @@
1
- # Icons
2
-
3
- > Bootstrap Icons are designed to work with Bootstrap components, from form controls to navigation.
4
- > Bootstrap Icons are SVGs, so they scale quickly and easily and can be styled with CSS. While they
5
- > are built for Bootstrap, they will work in any project.
6
-
7
- BootstrapVue icon components are built from
8
- [`bootstrap-icons` v{{ bootstrapIconsVersion }}](https://icons.getbootstrap.com/) source SVGs. Icons
9
- are opt-in, meaning that they explicitly need to be imported in order to be used. They are not
10
- installed by default. You do not need `bootstrap-icons` as a dependency.
11
-
12
- - [Bootstrap Icons](https://blog.getbootstrap.com/2019/11/26/bootstrap-icons/) were introduced to
13
- BootstrapVue in release `v2.2.0`.
14
- - [Bootstrap Icons `v1.0.0-alpha3`](https://blog.getbootstrap.com/2020/03/19/bootstrap-icons-alpha-3/)
15
- were added in BootstrapVue `v2.8.0`.
16
- - [Bootstrap Icons `v1.0.0-alpha4`](https://blog.getbootstrap.com/2020/05/21/bootstrap-icons-alpha4/)
17
- were added in BootstrapVue `v2.15.0`.
18
- - [Bootstrap Icons `v1.0.0-alpha5`](https://blog.getbootstrap.com/2020/06/26/bootstrap-icons-alpha5/)
19
- were added in BootstrapVue `v2.16.0`.
20
- - [Bootstrap Icons `v1.0.0`](https://blog.getbootstrap.com/2020/08/28/bootstrap-icons-stable/) were
21
- added in BootstrapVue `v2.17.0`.
22
- - [Bootstrap Icons `v1.1.0`](https://blog.getbootstrap.com/2020/10/28/bootstrap-icons-1-1-0/) were
23
- added in BootstrapVue `v2.19.0`.
24
- - [Bootstrap Icons `v1.2.0`](https://blog.getbootstrap.com/2020/12/11/bootstrap-icons-1-2-0/) were
25
- added in BootstrapVue `v2.21.0`.
26
- - [Bootstrap Icons `v1.3.0`](https://blog.getbootstrap.com/2021/01/07/bootstrap-icons-1-3-0/) were
27
- added in BootstrapVue `v2.22.0`.
28
- - [Bootstrap Icons `v1.4.0`](https://blog.getbootstrap.com/2021/02/22/bootstrap-icons-1-4-0/) were
29
- added in BootstrapVue `v2.22.0`.
30
- - [Bootstrap Icons `v1.4.1`](https://blog.getbootstrap.com/2021/03/29/bootstrap-icons-1-4-1/) were
31
- added in BootstrapVue `v2.22.0`.
32
- - [Bootstrap Icons `v1.5.0`](https://blog.getbootstrap.com/2021/05/10/bootstrap-icons-1-5-0/) were
33
- added in BootstrapVue `v2.22.0`.
34
-
35
- ## Usage
36
-
37
- BootstrapVue icons are not automatically installed when using BootstrapVue in your project, you must
38
- explicitly include them.
39
-
40
- Icons inherit the current font color and font size from their parent container element. To change
41
- the color of the icon, refer to the [Variants](#variants) section, and to change the size of the
42
- icon refer to the [Sizing](#sizing) section.
43
-
44
- All icons are exported with the name in <samp>PascalCase</samp>, prefixed with <samp>BIcon</samp>.
45
- i.e icon `'alert-circle-fill'` is exported as `BIconAlertCircleFill`, icon `'x'` is exported as
46
- `BIconX`, and icon `'x-square-fill'` is exported as `BIconXSquareFill`.
47
-
48
- ### Module bundlers
49
-
50
- **Importing all icons:**
51
-
52
- ```js
53
- import { Vue } from 'vue'
54
- import { BootstrapVue, BootstrapVueIcons } from 'bootstrap-vue'
55
-
56
- Vue.use(BootstrapVue)
57
- Vue.use(BootstrapVueIcons)
58
- ```
59
-
60
- Or
61
-
62
- ```js
63
- import { Vue } from 'vue'
64
- import { BootstrapVue, IconsPlugin } from 'bootstrap-vue'
65
-
66
- Vue.use(BootstrapVue)
67
- Vue.use(IconsPlugin)
68
- ```
69
-
70
- **Importing specific icons:**
71
-
72
- Making them globally available:
73
-
74
- ```js
75
- import { Vue } from 'vue'
76
- import { BootstrapVue, BIcon, BIconArrowUp, BIconArrowDown } from 'bootstrap-vue'
77
-
78
- Vue.use(BootstrapVue)
79
- Vue.component('BIcon', BIcon)
80
- Vue.component('BIconArrowUp', BIconArrowUp)
81
- Vue.component('BIconArrowDown', BIconArrowDown)
82
- ```
83
-
84
- Or if using in specific pages or components:
85
-
86
- ```js
87
- import { BIcon, BIconArrowUp, BIconArrowDown } from 'bootstrap-vue'
88
-
89
- export default {
90
- components: {
91
- BIcon,
92
- BIconArrowUp,
93
- BIconArrowDown
94
- },
95
- props: {
96
- // ...
97
- }
98
- // ...
99
- }
100
- ```
101
-
102
- If you are using _only_ `BootstrapVueIcons` or `IconsPlugin` in your project, you can also just
103
- import the required icons CSS, rather than the full Bootstrap and BootstrapVue SCSS/CSS.
104
-
105
- ```js
106
- import { BootstrapVueIcons } from 'bootstrap-vue'
107
- import 'bootstrap-vue/dist/bootstrap-vue-icons.min.css'
108
-
109
- Vue.use(BootstrapVueIcons)
110
- ```
111
-
112
- Or if using the icons SCSS source:
113
-
114
- ```js
115
- import { BootstrapVueIcons } from 'bootstrap-vue'
116
- import 'bootstrap-vue/src/icons.scss'
117
-
118
- Vue.use(BootstrapVueIcons)
119
- ```
120
-
121
- BootstrapVue icons SCSS/CSS does not depend on any Bootstrap SASS variables, mixins, functions or
122
- CSS classes (other than the Bootstrap `text-{variant}` text color utility classes, if using the
123
- `variant` prop). Please note that the icons CSS is _also_ included in the main BootstrapVue SCSS/CSS
124
- files. Animations effects require BootstrapVue custom SCSS/CSS.
125
-
126
- ### Browser
127
-
128
- Icons are **not** installed by default in the UMD browser build, so you must explicitly include the
129
- icons library:
130
-
131
- ```html
132
- <head>
133
- <link type="text/css" rel="stylesheet" href="//unpkg.com/bootstrap/dist/css/bootstrap.min.css" />
134
- <link type="text/css" rel="stylesheet" href="//unpkg.com/bootstrap-vue@latest/dist/bootstrap-vue.min.css" />
135
- <!-- Load Vue followed by BootstrapVue, and BootstrapVueIcons -->
136
- <script src="//unpkg.com/vue@latest/dist/vue.min.js"></script>
137
- <script src="//unpkg.com/bootstrap-vue@latest/dist/bootstrap-vue.min.js"></script>
138
- <script src="//unpkg.com/bootstrap-vue@latest/dist/bootstrap-vue-icons.min.js"></script>
139
- </head>
140
- ```
141
-
142
- If using just the icons:
143
-
144
- ```html
145
- <head>
146
- <link type="text/css" rel="stylesheet" href="//unpkg.com/bootstrap/dist/css/bootstrap.min.css" />
147
- <link type="text/css" rel="stylesheet" href="//unpkg.com/bootstrap-vue@latest/dist/bootstrap-vue-icons.min.css" />
148
- <!-- Load Vue followed by BootstrapVueIcons -->
149
- <script src="//unpkg.com/vue@latest/dist/vue.min.js"></script>
150
- <script src="//unpkg.com/bootstrap-vue@latest/dist/bootstrap-vue-icons.min.js"></script>
151
- </head>
152
- ```
153
-
154
- ### Icon components
155
-
156
- You can either uses individual icon components, or use the icon helper component `<b-icon>`, to
157
- place icons in your project templates.
158
-
159
- All individual icon components are prefixed with the name `<b-icon-{name}>`, where `{name}` is one
160
- of the icon names listed in the [Icons](#icons) section above.
161
-
162
- **Using individual icon components:**
163
-
164
- ```html
165
- <template>
166
- <div class="h2 mb-0">
167
- <b-icon-arrow-up></b-icon-arrow-up>
168
- <b-icon-exclamation-triangle-fill></b-icon-exclamation-triangle-fill>
169
- </div>
170
- </template>
171
-
172
- <!-- icons-individual-usage.vue -->
173
- ```
174
-
175
- **Using the `<b-icon>` helper component:**
176
-
177
- ```html
178
- <template>
179
- <div class="h2 mb-0">
180
- <b-icon icon="arrow-up"></b-icon>
181
- <b-icon icon="exclamation-triangle"></b-icon>
182
- </div>
183
- </template>
184
-
185
- <!-- icons-helper-usage.vue -->
186
- ```
187
-
188
- **Note:** when using `<b-icon>`, you **must** also import the required individual icon components,
189
- unless you are using the `IconsPlugin` or `BootstrapVueIcons` plugin.
190
-
191
- ## Variants
192
-
193
- By default, icons inherit the current text color of their parent element. All icon components
194
- provide a `variant` prop to apply one of the Bootstrap contextual text variant colors:
195
-
196
- ```html
197
- <template>
198
- <div class="h2 mb-0">
199
- <b-icon icon="exclamation-circle-fill" variant="success"></b-icon>
200
- <b-icon icon="exclamation-circle-fill" variant="warning"></b-icon>
201
- <b-icon icon="exclamation-circle-fill" variant="danger"></b-icon>
202
- <b-icon icon="exclamation-circle-fill" variant="info"></b-icon>
203
- <b-icon icon="exclamation-circle-fill" variant="primary"></b-icon>
204
- <b-icon icon="exclamation-circle-fill" variant="secondary"></b-icon>
205
- <b-icon icon="exclamation-circle-fill" variant="dark"></b-icon>
206
- </div>
207
- </template>
208
-
209
- <!-- icons-color-variants.vue -->
210
- ```
211
-
212
- You can also use custom CSS to set the icon color, either via direct `style` attribute, or via
213
- custom classes:
214
-
215
- ```html
216
- <template>
217
- <div class="h2 mb-0">
218
- <b-icon icon="battery-full" style="color: #7952b3;"></b-icon>
219
- </div>
220
- </template>
221
-
222
- <!-- icons-color-css.vue -->
223
- ```
224
-
225
- The `variant` prop places the [color utility class](/docs/reference/color-variants) `text-{variant}`
226
- on the icon's root element.
227
-
228
- ## Sizing
229
-
230
- Icons have a default width and height of `1em`, which means they will scale with the size of the
231
- current font size:
232
-
233
- ```html
234
- <template>
235
- <div>
236
- <p class="h1 mb-2">Icon <b-icon icon="exclamation-circle-fill"></b-icon></p>
237
- <p class="h2 mb-2">Icon <b-icon icon="exclamation-circle-fill"></b-icon></p>
238
- <p class="h3 mb-2">Icon <b-icon icon="exclamation-circle-fill"></b-icon></p>
239
- <p class="h4 mb-2">Icon <b-icon icon="exclamation-circle-fill"></b-icon></p>
240
- <p class="h5 mb-2">Icon <b-icon icon="exclamation-circle-fill"></b-icon></p>
241
- </div>
242
- </template>
243
-
244
- <!-- icons-size-inherit.vue -->
245
- ```
246
-
247
- You can also use custom CSS to set the icon size, either via direct `style` attribute, or via custom
248
- classes:
249
-
250
- ```html
251
- <template>
252
- <div>
253
- <b-icon icon="exclamation-circle" style="width: 120px; height: 120px;"></b-icon>
254
- </div>
255
- </template>
256
-
257
- <!-- icons-size-css.vue -->
258
- ```
259
-
260
- You can also use the prop `font-scale` to scale the icon's current font size by the specified
261
- factor:
262
-
263
- ```html
264
- <template>
265
- <div>
266
- <b-icon icon="camera" font-scale="0.5"></b-icon>
267
- <b-icon icon="camera" font-scale="1"></b-icon>
268
- <b-icon icon="camera" font-scale="2"></b-icon>
269
- <b-icon icon="camera" font-scale="3"></b-icon>
270
- <b-icon icon="camera" font-scale="4"></b-icon>
271
- <b-icon icon="camera" font-scale="5"></b-icon>
272
- <b-icon icon="camera" font-scale="7.5"></b-icon>
273
- </div>
274
- </template>
275
-
276
- <!-- icons-size-font-size-prop.vue -->
277
- ```
278
-
279
- Also see the [scaling transforms](#scale) section below for additional sizing options.
280
-
281
- ## Styling
282
-
283
- With the use of Bootstrap's border, background and padding
284
- [utility classes](/docs/reference/utility-classes), you can create various styling effects:
285
-
286
- ```html
287
- <template>
288
- <div style="font-size: 4rem;">
289
- <b-icon icon="bell-fill" class="border rounded p-2"></b-icon>
290
- <b-icon icon="bell-fill" class="border border-info rounded p-2" variant="info"></b-icon>
291
- <b-icon icon="bell-fill" class="rounded-circle bg-danger p-2" variant="light"></b-icon>
292
- <b-icon icon="unlock-fill" class="rounded bg-primary p-1" variant="light"></b-icon>
293
- </div>
294
- </template>
295
-
296
- <!-- icons-styling.vue -->
297
- ```
298
-
299
- ## SVG transforms
300
-
301
- BootstrapVue icons provide several props for applying basic SVG transforms to the `<svg>`. All
302
- transforms can be combined for added effect. Note that the transforms are applied to the `<svg>`
303
- _content_ and not the `<svg>` bounding box.
304
-
305
- ### Flipping
306
-
307
- Flip the icon horizontally and/or vertically via the `flip-h` and `flip-v` props.
308
-
309
- ```html
310
- <template>
311
- <div style="font-size: 4rem;">
312
- <b-icon icon="bar-chart-fill"></b-icon>
313
- <b-icon icon="bar-chart-fill" flip-h></b-icon>
314
- <b-icon icon="bar-chart-fill" flip-v></b-icon>
315
- <b-icon icon="bar-chart-fill" flip-h flip-v></b-icon>
316
- </div>
317
- </template>
318
-
319
- <!-- icons-transform-flip.vue -->
320
- ```
321
-
322
- ### Rotate
323
-
324
- Rotate the icon by a specified number of degrees via the `rotate` prop. Positive values will rotate
325
- the icon clockwise, while negative values will rotate the icon counterclockwise.
326
-
327
- ```html
328
- <template>
329
- <div style="font-size: 4rem;">
330
- <b-icon icon="camera"></b-icon>
331
- <b-icon icon="camera" rotate="45"></b-icon>
332
- <b-icon icon="camera" rotate="90"></b-icon>
333
- <b-icon icon="camera" rotate="180"></b-icon>
334
- <b-icon icon="camera" rotate="270"></b-icon>
335
- <b-icon icon="camera" rotate="-45"></b-icon>
336
- </div>
337
- </template>
338
-
339
- <!-- icons-transform-rotate.vue -->
340
- ```
341
-
342
- Note that any [flipping](#flipping) is performed before the rotation is applied.
343
-
344
- ### Scale
345
-
346
- Scale the icon by any positive factor via the `scale` prop. Note this changes the icon's visual size
347
- but not its physical font size. To illustrate this we have added a background color to the icons.
348
-
349
- ```html
350
- <template>
351
- <b-row cols="2" cols-sm="4" class="text-center" style="font-size: 4rem;">
352
- <b-col class="mb-2">
353
- <b-icon icon="exclamation-circle" scale="0.5" class="bg-info"></b-icon>
354
- </b-col>
355
- <b-col class="mb-2">
356
- <b-icon icon="exclamation-circle" class="bg-info"></b-icon>
357
- </b-col>
358
- <b-col class="mb-2">
359
- <b-icon icon="exclamation-circle" scale="1.5" class="bg-info"></b-icon>
360
- </b-col>
361
- <b-col class="mb-2">
362
- <b-icon icon="exclamation-circle" scale="2" class="bg-info"></b-icon>
363
- </b-col>
364
- </b-row>
365
- </template>
366
-
367
- <!-- icons-transform-scale.vue -->
368
- ```
369
-
370
- If you need to have the background and/or border scale with the icon, use the `font-scale` prop
371
- instead.
372
-
373
- ### Shifting
374
-
375
- Shifting affects icon location without changing or moving the svg container. To move icons on the
376
- horizontal and/or vertical axis, use the `shift-h` and `shift-v` props with any arbitrary numeric
377
- value, including decimals.
378
-
379
- For `shift-v`, positive values will move the icon upwards, while negative values will move the icon
380
- downwards. For `shift-h`, positive values will move the icon to the right, while negative values
381
- will move it left. Both props accept values that are in units of 1/16em (relative to the icon's
382
- current _font size_).
383
-
384
- For clarity in the example, we’ve added a background color on the icon so you can see the effect.
385
-
386
- ```html
387
- <template>
388
- <b-row cols="2" cols-sm="4" class="text-center" style="font-size: 4rem;">
389
- <b-col class="py-4 mb-2">
390
- <b-icon icon="exclamation-circle" class="bg-info"></b-icon>
391
- </b-col>
392
- <b-col class="py-4 mb-2">
393
- <b-icon icon="exclamation-circle" shift-v="8" class="bg-info"></b-icon>
394
- </b-col>
395
- <b-col class="py-4 mb-2">
396
- <b-icon icon="exclamation-circle" shift-v="-8" class="bg-info"></b-icon>
397
- </b-col>
398
- <b-col class="py-4 mb-2">
399
- <b-icon icon="exclamation-circle" shift-h="8" class="bg-info"></b-icon>
400
- </b-col>
401
- <b-col class="py-4 mb-2">
402
- <b-icon icon="exclamation-circle" shift-h="-8" class="bg-info"></b-icon>
403
- </b-col>
404
- <b-col class="py-4 mb-2">
405
- <b-icon icon="exclamation-circle" shift-v="16" class="bg-info"></b-icon>
406
- </b-col>
407
- <b-col class="py-4 mb-2">
408
- <b-icon icon="exclamation-circle" shift-h="-8" shift-v="-8" class="bg-info"></b-icon>
409
- </b-col>
410
- <b-col class="py-4 mb-2">
411
- <b-icon
412
- icon="exclamation-circle"
413
- scale="0.5"
414
- rotate="45"
415
- shift-h="-4"
416
- shift-v="4"
417
- class="bg-info"
418
- ></b-icon>
419
- </b-col>
420
- </b-row>
421
- </template>
422
-
423
- <!-- icons-transform-shift.vue -->
424
- ```
425
-
426
- Shifting is applied after any rotation transforms. As with scaling, backgrounds and borders are not
427
- affected. If you need to shift the border/background with the icon, use Bootstrap's margin
428
- [spacing utility classes](/docs/reference/utility-classes).
429
-
430
- ## Animated icons
431
-
432
- <span class="badge badge-info small">v2.7.0+</span>
433
-
434
- BootstrapVue includes the following built-in animations for icons:
435
-
436
- - `'cylon'` slides the icon left-right
437
- - `'cylon-vertical'` slides the icon up-down
438
- - `'fade'` fades the icon in and out <span class="badge badge-info small">2.12.0+</span>
439
- - `'spin'` smoothly spins the icon clockwise
440
- - `'spin-reverse'` smoothly spins the icon counter-clockwise
441
- - `'spin-pulse'` spins the icon clockwise, but in a pulsed step style
442
- - `'spin-reverse-pulse'` spins the icon counter-clockwise, but in a pulsed step style
443
- - `'throb'` scales the icon in and out <span class="badge badge-info small">2.12.0+</span>
444
-
445
- To use the animation, set the `animation` prop to one of the animation names above.
446
-
447
- ```html
448
- <template>
449
- <b-row class="text-md-center">
450
- <b-col md="6" class="mb-3">
451
- <p>Cylon animation:</p>
452
- <b-icon icon="three-dots" animation="cylon" font-scale="4"></b-icon>
453
- </b-col>
454
- <b-col md="6" class="mb-3">
455
- <p>Vertical cylon animation:</p>
456
- <b-icon icon="three-dots-vertical" animation="cylon-vertical" font-scale="4"></b-icon>
457
- </b-col>
458
- <b-col md="6" class="mb-3">
459
- <p>Fade animation:</p>
460
- <b-icon icon="star-fill" animation="fade" font-scale="4"></b-icon>
461
- </b-col>
462
- <b-col md="6" class="mb-3">
463
- <p>Spinning animation:</p>
464
- <b-icon icon="arrow-clockwise" animation="spin" font-scale="4"></b-icon>
465
- </b-col>
466
- <b-col md="6" class="mb-3">
467
- <p>Reverse spinning animation:</p>
468
- <b-icon icon="arrow-counterclockwise" animation="spin-reverse" font-scale="4"></b-icon>
469
- </b-col>
470
- <b-col md="6" class="mb-3">
471
- <p>Pulsing spin animation:</p>
472
- <b-icon icon="arrow-clockwise" animation="spin-pulse" font-scale="4"></b-icon>
473
- </b-col>
474
- <b-col md="6" class="mb-3">
475
- <p>Reversed pulsing spin animation:</p>
476
- <b-icon icon="arrow-counterclockwise" animation="spin-reverse-pulse" font-scale="4"></b-icon>
477
- </b-col>
478
- <b-col md="6" class="mb-3">
479
- <p>Throb animation:</p>
480
- <b-icon icon="circle-fill" animation="throb" font-scale="4"></b-icon>
481
- </b-col>
482
- </b-row>
483
- </template>
484
-
485
- <!-- b-icon-aminations.vue -->
486
- ```
487
-
488
- As the animations are CSS based, they are applied _after_ any SVG transforms have taken place:
489
-
490
- ```html
491
- <template>
492
- <div class="p-4">
493
- <b-icon icon="clock" animation="spin" font-scale="4" shift-v="8"></b-icon>
494
- </div>
495
- </template>
496
-
497
- <!-- b-icon-aminations-transforms.vue -->
498
- ```
499
-
500
- The BootstrapVue defined icon animation effects require BootstrapVue's custom CSS. The `animation`
501
- prop translates to the class name `b-icon-animation-{animationName}`.
502
-
503
- Need a different style animation? Just create a custom class defining the animation, and apply that
504
- class to the icon component, or create a new animation class in the form of
505
- `b-icon-animation-{animationName}` and pass the custom animation name to the `animation` prop.
506
-
507
- **Animation notes:**
508
-
509
- - With the `cylon` animations, the left-right movement (or up-down movement) extends _past_ the
510
- icon's bounding box by `+/- 25%`, so you may need to adjust padding or margins to compensate for
511
- your use case.
512
- - Animation durations can be [configured via SASS SCSS variables](/docs/reference/theming)
513
- - The BootstrapVue defined animation effects of this component is dependent on the
514
- `prefers-reduced-motion` media query. See the
515
- [reduced motion section of our accessibility documentation](/docs/reference/accessibility#reduced-motion)
516
- for additional details.
517
- - The `cylon` animation gets its name from the "eye" of the Cylons from the _original_
518
- [1978 Battlestar Galactica TV series](https://www.youtube.com/watch?v=5a5bEIf0UaU).
519
-
520
- ## Stacking icons
521
-
522
- <span class="badge badge-info small">v2.3.0+</span>
523
-
524
- Combine icons together via the use of the component `<b-iconstack>` and the `stacked` prop on
525
- individual icons (`<b-icon>` or `<b-icon-{icon-name}>`) to create complex icons:
526
-
527
- ```html
528
- <template>
529
- <div>
530
- <b-iconstack font-scale="5">
531
- <b-icon stacked icon="camera" variant="info" scale="0.75"></b-icon>
532
- <b-icon stacked icon="slash-circle" variant="danger"></b-icon>
533
- </b-iconstack>
534
-
535
- <b-iconstack font-scale="5" rotate="90">
536
- <b-icon stacked icon="chevron-right" shift-h="-4" variant="danger"></b-icon>
537
- <b-icon stacked icon="chevron-right" shift-h="0" variant="success"></b-icon>
538
- <b-icon stacked icon="chevron-right" shift-h="4" variant="primary"></b-icon>
539
- </b-iconstack>
540
-
541
- <b-iconstack font-scale="5">
542
- <b-icon stacked icon="circle-fill" variant="info"></b-icon>
543
- <b-icon stacked icon="bell-fill" scale="0.5" variant="white"></b-icon>
544
- <b-icon stacked icon="circle" variant="danger"></b-icon>
545
- </b-iconstack>
546
-
547
- <b-iconstack font-scale="5" variant="white">
548
- <b-icon stacked icon="square-fill" variant="dark"></b-icon>
549
- <b-icon stacked icon="arrow-up-short" scale="0.5" shift-v="3" shift-h="-3"></b-icon>
550
- <b-icon stacked icon="arrow-up-short" scale="0.5" shift-v="3" shift-h="3" rotate="90"></b-icon>
551
- <b-icon stacked icon="arrow-up-short" scale="0.5" shift-v="-3" shift-h="3" rotate="180"></b-icon>
552
- <b-icon stacked icon="arrow-up-short" scale="0.5" shift-v="-3" shift-h="-3" rotate="270"></b-icon>
553
- </b-iconstack>
554
-
555
- <b-iconstack font-scale="5">
556
- <b-icon stacked icon="square"></b-icon>
557
- <b-icon stacked icon="check"></b-icon>
558
- </b-iconstack>
559
-
560
- <b-iconstack font-scale="5">
561
- <b-icon stacked icon="square"></b-icon>
562
- <b-icon stacked icon="dot" shift-h="-3" shift-v="4"></b-icon>
563
- <b-icon stacked icon="dot" shift-h="-3"></b-icon>
564
- <b-icon stacked icon="dot" shift-h="-3" shift-v="-4"></b-icon>
565
- <b-icon stacked icon="dot" shift-h="3" shift-v="4"></b-icon>
566
- <b-icon stacked icon="dot" shift-h="3"></b-icon>
567
- <b-icon stacked icon="dot" shift-h="3" shift-v="-4"></b-icon>
568
- </b-iconstack>
569
- </div>
570
- </template>
571
-
572
- <!-- b-iconsstack.vue -->
573
- ```
574
-
575
- `<b-iconstack>` supports the same `variant`, `font-size`, `animation` and transformation props
576
- available on individual icons.
577
-
578
- Stacked icon notes:
579
-
580
- - Remember to set the `stacked` prop on the inner icon components!
581
- - The `font-scale` prop cannot be used on the inner icon components
582
- - The `width` and `height` attributes cannot be applied to the inner icon components
583
- - Stacked icons **cannot** be stacked inside another `<b-iconstack>`
584
-
585
- ### Stacked icon animation
586
-
587
- The `<b-iconstack>` component supports the same animations as individual icons:
588
-
589
- ```html
590
- <template>
591
- <div>
592
- <b-iconstack font-scale="5" animation="spin">
593
- <b-icon stacked icon="camera" variant="info" scale="0.75" shift-v="-0.25"></b-icon>
594
- <b-icon stacked icon="slash-circle" variant="danger"></b-icon>
595
- </b-iconstack>
596
- </div>
597
- </template>
598
-
599
- <!-- b-iconstack-animation.vue -->
600
- ```
601
-
602
- Individual icons within the icon stack can also be animated (except on IE 11):
603
-
604
- ```html
605
- <template>
606
- <div>
607
- <b-iconstack font-scale="5" animation="cylon">
608
- <b-icon
609
- stacked
610
- icon="camera"
611
- animation="throb"
612
- variant="info"
613
- scale="0.75"
614
- ></b-icon>
615
- <b-icon
616
- stacked
617
- icon="slash-circle"
618
- animation="spin-reverse"
619
- variant="danger"
620
- ></b-icon>
621
- </b-iconstack>
622
- </div>
623
- </template>
624
-
625
- <!-- b-iconstack-animation-child-icons.vue -->
626
- ```
627
-
628
- **Notes:**
629
-
630
- - IE 11 does not support animation of child elements within an SVG, hence only the `<b-iconstack>`
631
- component can be animated. The child icon(s) animation will not be visible to IE 11 users.
632
- - The BootstrapVue defined animation effects of this component is dependent on the
633
- `prefers-reduced-motion` media query. See the
634
- [reduced motion section of our accessibility documentation](/docs/reference/accessibility) for
635
- additional details.
636
-
637
- ## Using in components
638
-
639
- Easily place icons as content in other components.
640
-
641
- Note that icons placed in BootstrapVue components use BootstrapVue's custom CSS for additional
642
- styling compensation due to current issues with Bootstrap Icons `<svg>` alignment implementation,
643
- and for additional aesthetic scaling (icons placed in the components listed below will have their
644
- font scaled by 125%).
645
-
646
- ### Buttons
647
-
648
- ```html
649
- <template>
650
- <div>
651
- <b-button size="sm" class="mb-2">
652
- <b-icon icon="gear-fill" aria-hidden="true"></b-icon> Settings
653
- </b-button>
654
- <br>
655
- <b-button variant="primary" class="mb-2">
656
- Pay now <b-icon icon="credit-card" aria-hidden="true"></b-icon>
657
- </b-button>
658
- <br>
659
- <b-button variant="outline-info" class="mb-2">
660
- <b-icon icon="power" aria-hidden="true"></b-icon> Logout
661
- </b-button>
662
- <br>
663
- <b-button size="lg" variant="primary" class="mb-2">
664
- <b-icon icon="question-circle-fill" aria-label="Help"></b-icon>
665
- </b-button>
666
- </div>
667
- </template>
668
-
669
- <!-- icons-buttons.vue -->
670
- ```
671
-
672
- ### Button Groups and toolbars
673
-
674
- #### Button Group
675
-
676
- ```html
677
- <template>
678
- <div>
679
- <b-button-group>
680
- <b-button variant="outline-primary">
681
- <b-icon icon="tools"></b-icon> Settings
682
- </b-button>
683
- <b-button variant="outline-primary">
684
- <b-icon icon="person-fill"></b-icon> Account
685
- </b-button>
686
- <b-button variant="outline-primary">
687
- <b-icon icon="inbox-fill"></b-icon> Messages
688
- </b-button>
689
- </b-button-group>
690
- </div>
691
- </template>
692
-
693
- <!-- icons-button-group.vue -->
694
- ```
695
-
696
- #### Button Toolbar
697
-
698
- ```html
699
- <template>
700
- <div>
701
- <b-button-toolbar>
702
- <b-button-group class="mr-1">
703
- <b-button title="Save file">
704
- <b-icon icon="cloud-upload" aria-hidden="true"></b-icon>
705
- </b-button>
706
- <b-button title="Load file">
707
- <b-icon icon="cloud-download" aria-hidden="true"></b-icon>
708
- </b-button>
709
- <b-button title="New document">
710
- <b-icon icon="file-earmark" aria-hidden="true"></b-icon>
711
- </b-button>
712
- </b-button-group>
713
- <b-button-group class="mr-1">
714
- <b-button title="Align left">
715
- <b-icon icon="text-left" aria-hidden="true"></b-icon>
716
- </b-button>
717
- <b-button title="Align center">
718
- <b-icon icon="text-center" aria-hidden="true"></b-icon>
719
- </b-button>
720
- <b-button title="Align right">
721
- <b-icon icon="text-right" aria-hidden="true"></b-icon>
722
- </b-button>
723
- </b-button-group>
724
- <b-button-group>
725
- <b-button title="Bold">
726
- <b-icon icon="type-bold" aria-hidden="true"></b-icon>
727
- </b-button>
728
- <b-button title="Italic">
729
- <b-icon icon="type-italic" aria-hidden="true"></b-icon>
730
- </b-button>
731
- <b-button title="Underline">
732
- <b-icon icon="type-underline" aria-hidden="true"></b-icon>
733
- </b-button>
734
- <b-button title="Strikethrough">
735
- <b-icon icon="type-strikethrough" aria-hidden="true"></b-icon>
736
- </b-button>
737
- </b-button-group>
738
- </b-button-toolbar>
739
- </div>
740
- </template>
741
-
742
- <!-- icons-button-toolbar.vue -->
743
- ```
744
-
745
- ### Input Groups
746
-
747
- ```html
748
- <template>
749
- <div>
750
- <b-input-group size="sm" class="mb-2">
751
- <b-input-group-prepend is-text>
752
- <b-icon icon="search"></b-icon>
753
- </b-input-group-prepend>
754
- <b-form-input type="search" placeholder="Search terms"></b-form-input>
755
- </b-input-group>
756
- <b-input-group class="mb-2">
757
- <b-input-group-prepend is-text>
758
- <b-icon icon="tag-fill"></b-icon>
759
- </b-input-group-prepend>
760
- <b-form-tags
761
- separator=" ,;"
762
- tag-variant="primary"
763
- placeholder="Enter new tags separated by space, comma or semicolon"
764
- no-add-on-enter
765
- ></b-form-tags>
766
- </b-input-group>
767
- <b-input-group class="mb-2">
768
- <b-input-group-prepend is-text>
769
- <b-icon icon="person-fill"></b-icon>
770
- </b-input-group-prepend>
771
- <b-form-input type="text" placeholder="User ID"></b-form-input>
772
- </b-input-group>
773
- <b-input-group size="lg">
774
- <b-input-group-prepend is-text>
775
- <b-icon icon="envelope"></b-icon>
776
- </b-input-group-prepend>
777
- <b-form-input type="email" placeholder="me@example.com"></b-form-input>
778
- </b-input-group>
779
- </div>
780
- </template>
781
-
782
- <!-- icons-input-groups.vue -->
783
- ```
784
-
785
- ### List Groups
786
-
787
- ```html
788
- <template>
789
- <b-list-group>
790
- <b-list-group-item class="d-flex justify-content-between align-items-center">
791
- <b-icon icon="x-circle" scale="2" variant="danger"></b-icon>
792
- Cras justo odio
793
- </b-list-group-item>
794
- <b-list-group-item class="d-flex justify-content-between align-items-center">
795
- <b-icon icon="exclamation-triangle-fill" scale="2" variant="warning"></b-icon>
796
- Dapibus ac facilisis in
797
- </b-list-group-item>
798
- <b-list-group-item class="d-flex justify-content-between align-items-center">
799
- <b-icon icon="info-circle-fill" scale="2" variant="info"></b-icon>
800
- Morbi leo risus
801
- </b-list-group-item>
802
- <b-list-group-item class="d-flex justify-content-between align-items-center">
803
- <b-icon icon="check-square" scale="2" variant="success"></b-icon>
804
- Incididunt veniam velit
805
- </b-list-group-item>
806
- </b-list-group>
807
- </template>
808
-
809
- <!-- icons-list-groups.vue -->
810
- ```
811
-
812
- ### Dropdowns
813
-
814
- ```html
815
- <template>
816
- <div>
817
- <b-dropdown variant="primary">
818
- <template #button-content>
819
- <b-icon icon="gear-fill" aria-hidden="true"></b-icon> Settings
820
- </template>
821
- <b-dropdown-item-button>
822
- <b-icon icon="lock-fill" aria-hidden="true"></b-icon>
823
- Locked <span class="sr-only">(Click to unlock)</span>
824
- </b-dropdown-item-button>
825
- <b-dropdown-divider></b-dropdown-divider>
826
- <b-dropdown-group header="Choose options" class="small">
827
- <b-dropdown-item-button>
828
- <b-icon icon="blank" aria-hidden="true"></b-icon>
829
- Option A <span class="sr-only">(Not selected)</span>
830
- </b-dropdown-item-button>
831
- <b-dropdown-item-button>
832
- <b-icon icon="check" aria-hidden="true"></b-icon>
833
- Option B <span class="sr-only">(Selected)</span>
834
- </b-dropdown-item-button>
835
- <b-dropdown-item-button>
836
- <b-icon icon="blank" aria-hidden="true"></b-icon>
837
- Option C <span class="sr-only">(Not selected)</span>
838
- </b-dropdown-item-button>
839
- </b-dropdown-group>
840
- <b-dropdown-divider></b-dropdown-divider>
841
- <b-dropdown-item-button>Some action</b-dropdown-item-button>
842
- <b-dropdown-item-button>Some other action</b-dropdown-item-button>
843
- <b-dropdown-divider></b-dropdown-divider>
844
- <b-dropdown-item-button variant="danger">
845
- <b-icon icon="trash-fill" aria-hidden="true"></b-icon>
846
- Delete
847
- </b-dropdown-item-button>
848
- </b-dropdown>
849
- </div>
850
- </template>
851
-
852
- <!-- icons-dropdowns.vue -->
853
- ```
854
-
855
- ## Working with SVGs
856
-
857
- SVGs are awesome to work with, but they do have some known quirks to work around.
858
-
859
- - **Focus handling is broken in Internet Explorer and Edge.** We have added the attribute
860
- `focusable="false"` to the `<svg>` element. You can override this by setting the attribute
861
- `focusable="false"` on the icon component.
862
- - **Browsers inconsistently announce SVGs as `<img>` tags with voice assistance.** Hence, we have
863
- added added the attributes `role="img"` and `alt="icon"`. You can override these attributes if
864
- needed.
865
- - **Safari skips `aria-label` when used on non-focusable SVGs.** As such, use the attribute
866
- `aria-hidden="true"` when using the icon and use CSS to visually hide the equivalent label.
867
-
868
- ## Icons
869
-
870
- Use the explorer below to search and browse the available icons.
871
-
872
- <!-- Component rendered by `docs/pages/docs/icons.index.js` -->
873
- <!-- We use a `<div is="...">` to prevent marked loader from mangling the unknown tag -->
874
- <div is="IconsTable"></div>