@fortawesome/vue-fontawesome 0.1.0-4 → 0.1.2
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.
- package/.github/ISSUE_TEMPLATE/bug-report.md +13 -0
- package/.github/ISSUE_TEMPLATE/feature-request.md +25 -0
- package/CHANGELOG.md +28 -0
- package/CODE_OF_CONDUCT.md +74 -0
- package/CONTRIBUTING.md +57 -0
- package/DEVELOPMENT.md +23 -0
- package/README.md +292 -41
- package/UPGRADING.md +7 -7
- package/examples/vue-cli/package.json +25 -25
- package/examples/vue-cli/src/App.vue +1 -1
- package/index.es.js +501 -0
- package/index.js +2 -2
- package/package.json +14 -4
- package/src/components/FontAwesomeLayersText.js +2 -2
- package/src/components/__tests__/FontAwesomeIcon.test.js +2 -2
- package/src/components/__tests__/FontAwesomeLayersText.test.js +7 -0
- package/yarn.lock +2008 -971
- package/examples/vue-cli/config/index.js +0 -69
- package/yarn-error.log +0 -3994
package/README.md
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
<a href="https://fontawesome.com">
|
|
2
|
+
<img align="right" width="100" height="100" alt="Official Javascript Component" src="https://img.fortawesome.com/349cfdf6/official-javascript-component.svg">
|
|
3
|
+
</a>
|
|
4
|
+
|
|
1
5
|
# vue-fontawesome
|
|
2
6
|
|
|
3
7
|
[](https://www.npmjs.com/package/@fortawesome/vue-fontawesome)
|
|
@@ -5,6 +9,47 @@
|
|
|
5
9
|
|
|
6
10
|
> Font Awesome 5 Vue component using SVG with JS
|
|
7
11
|
|
|
12
|
+
<!-- toc -->
|
|
13
|
+
|
|
14
|
+
- [Introduction](#introduction)
|
|
15
|
+
+ [Upgrading Font Awesome?](#upgrading-font-awesome)
|
|
16
|
+
+ [Get started](#get-started)
|
|
17
|
+
+ [Learn about our new SVG implementation](#learn-about-our-new-svg-implementation)
|
|
18
|
+
+ [Going from 0.0.x to 0.1.0](#going-from-00x-to-010)
|
|
19
|
+
- [Installation](#installation)
|
|
20
|
+
- [Add more styles or Pro icons](#add-more-styles-or-pro-icons)
|
|
21
|
+
- [Usage](#usage)
|
|
22
|
+
* [Recommended](#recommended)
|
|
23
|
+
+ [Quick warning about self-closing tags](#quick-warning-about-self-closing-tags)
|
|
24
|
+
+ [Processing i tags into svg using Font Awesome](#processing-i-tags-into-svg-using-font-awesome)
|
|
25
|
+
* [The icon property](#the-icon-property)
|
|
26
|
+
+ [Shorthand that assumes a prefix of "fas"](#shorthand-that-assumes-a-prefix-of-fas)
|
|
27
|
+
+ [Explicit prefix (note the Vue bind shorthand because this uses an array)](#explicit-prefix-note-the-vue-bind-shorthand-because-this-uses-an-array)
|
|
28
|
+
+ [Explicit icon definition through something like a computed property](#explicit-icon-definition-through-something-like-a-computed-property)
|
|
29
|
+
* [Alternative using component property](#alternative-using-component-property)
|
|
30
|
+
* [Why use the concept of a library?](#why-use-the-concept-of-a-library)
|
|
31
|
+
+ [Import the specific icons that you need](#import-the-specific-icons-that-you-need)
|
|
32
|
+
+ [Import entire styles](#import-entire-styles)
|
|
33
|
+
* [Tree shaking alternative](#tree-shaking-alternative)
|
|
34
|
+
- [Features](#features)
|
|
35
|
+
* [Register your components first](#register-your-components-first)
|
|
36
|
+
* [Basic](#basic)
|
|
37
|
+
* [Advanced](#advanced)
|
|
38
|
+
- [Integrating with other tools and frameworks](#integrating-with-other-tools-and-frameworks)
|
|
39
|
+
* [Nuxt.js](#nuxtjs)
|
|
40
|
+
- [FAQ](#faq)
|
|
41
|
+
* [Why so explicit (the :icon="['far', 'coffee']" syntax)?](#why-so-explicit-the-iconfar-coffee-syntax)
|
|
42
|
+
+ [How about a separate property for the prefix?](#how-about-a-separate-property-for-the-prefix)
|
|
43
|
+
+ [Bindings become boilerplate and verbose](#bindings-become-boilerplate-and-verbose)
|
|
44
|
+
+ [Properties can disagree with each other](#properties-can-disagree-with-each-other)
|
|
45
|
+
- [How to Help](#how-to-help)
|
|
46
|
+
- [Contributors](#contributors)
|
|
47
|
+
- [Releasing this project](#releasing-this-project)
|
|
48
|
+
|
|
49
|
+
<!-- tocstop -->
|
|
50
|
+
|
|
51
|
+
## Introduction
|
|
52
|
+
|
|
8
53
|
Hey there! We're glad you're here...
|
|
9
54
|
|
|
10
55
|
#### Upgrading Font Awesome?
|
|
@@ -12,21 +57,21 @@ Hey there! We're glad you're here...
|
|
|
12
57
|
If you've used Font Awesome in the past (version 4 or older) there are some
|
|
13
58
|
things that you should learn before you dive in.
|
|
14
59
|
|
|
15
|
-
> https://fontawesome.com/how-to-use/upgrading-from-4
|
|
60
|
+
> https://fontawesome.com/how-to-use/on-the-web/setup/upgrading-from-version-4
|
|
16
61
|
|
|
17
62
|
#### Get started
|
|
18
63
|
|
|
19
64
|
This package is for integrating with Vue.js. If you aren't using Vue then it's
|
|
20
65
|
not going to help you. Head over to our "Get Started" page for some guidance.
|
|
21
66
|
|
|
22
|
-
> https://fontawesome.com/
|
|
67
|
+
> https://fontawesome.com/how-to-use/on-the-web/setup/getting-started
|
|
23
68
|
|
|
24
69
|
#### Learn about our new SVG implementation
|
|
25
70
|
|
|
26
71
|
This package, under the hood, uses SVG with JS and the `@fortawesome/fontawesome-svg-core` library. This implementation differs drastically from
|
|
27
72
|
the web fonts implementation that was used in version 4 and older of Font Awesome. You might head over there to learn about how it works.
|
|
28
73
|
|
|
29
|
-
> https://fontawesome.com/how-to-use/svg-
|
|
74
|
+
> https://fontawesome.com/how-to-use/on-the-web/advanced/svg-javascript-core
|
|
30
75
|
|
|
31
76
|
#### Going from 0.0.x to 0.1.0
|
|
32
77
|
|
|
@@ -62,9 +107,9 @@ $ npm i --save @fortawesome/pro-regular-svg-icons
|
|
|
62
107
|
$ npm i --save @fortawesome/pro-light-svg-icons
|
|
63
108
|
```
|
|
64
109
|
|
|
65
|
-
Using the Pro packages requires [additional configuration](https://fontawesome.com/how-to-use/
|
|
110
|
+
Using the Pro packages requires [additional configuration](https://fontawesome.com/how-to-use/on-the-web/setup/using-package-managers).
|
|
66
111
|
|
|
67
|
-
|
|
112
|
+
Or with Yarn:
|
|
68
113
|
|
|
69
114
|
```
|
|
70
115
|
$ yarn add @fortawesome/fontawesome-svg-core
|
|
@@ -84,10 +129,10 @@ The following examples are based on a project configured with [vue-cli](https://
|
|
|
84
129
|
import Vue from 'vue'
|
|
85
130
|
import App from './App'
|
|
86
131
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
|
87
|
-
import {
|
|
132
|
+
import { faUserSecret } from '@fortawesome/free-solid-svg-icons'
|
|
88
133
|
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'
|
|
89
134
|
|
|
90
|
-
library.add(
|
|
135
|
+
library.add(faUserSecret)
|
|
91
136
|
|
|
92
137
|
Vue.component('font-awesome-icon', FontAwesomeIcon)
|
|
93
138
|
|
|
@@ -106,7 +151,7 @@ new Vue({
|
|
|
106
151
|
```javascript
|
|
107
152
|
<template>
|
|
108
153
|
<div id="app">
|
|
109
|
-
<font-awesome-icon icon="
|
|
154
|
+
<font-awesome-icon icon="user-secret" />
|
|
110
155
|
</div>
|
|
111
156
|
</template>
|
|
112
157
|
|
|
@@ -129,9 +174,9 @@ If you are writing these types of templates make sure and use valid HTML syntax:
|
|
|
129
174
|
<font-awesome-icon icon="coffee"></font-awesome-icon>
|
|
130
175
|
```
|
|
131
176
|
|
|
132
|
-
#### Processing
|
|
177
|
+
#### Processing i tags into svg using Font Awesome
|
|
133
178
|
|
|
134
|
-
A basic installation of [Font Awesome](https://fontawesome.com/
|
|
179
|
+
A basic installation of [Font Awesome](https://fontawesome.com/how-to-use/on-the-web/setup/getting-started?using=svg-with-js) has
|
|
135
180
|
the ability to automatically transform `<i class="fas fa-coffee"></i>` into
|
|
136
181
|
`<svg class="...">...</svg>` icons. This technology works with the browser's
|
|
137
182
|
DOM, [`requestAnimationFrame`][raf], and [`MutationObserver`][mo].
|
|
@@ -153,23 +198,33 @@ dom.watch() // This will kick of the initial replacement of i to svg tags and co
|
|
|
153
198
|
|
|
154
199
|
The `icon` property of the `FontAwesomeIcon` component can be used in the following way:
|
|
155
200
|
|
|
156
|
-
#### Shorthand that assumes a prefix of
|
|
201
|
+
#### Shorthand that assumes a prefix of "fas"
|
|
157
202
|
|
|
158
203
|
```javascript
|
|
159
204
|
<font-awesome-icon icon="spinner" />
|
|
205
|
+
<font-awesome-icon icon="align-left" />
|
|
206
|
+
|
|
160
207
|
<font-awesome-icon :icon="['fas', 'spinner']" /> # Same as above
|
|
208
|
+
<font-awesome-icon :icon="['fas', 'align-left']" /> # Same as above
|
|
161
209
|
```
|
|
162
210
|
|
|
163
|
-
For the above to work you must add the `spinner` icon to the library.
|
|
211
|
+
For the above to work you must add the `spinner` and `align-left` icon to the library.
|
|
164
212
|
|
|
165
213
|
```javascript
|
|
166
214
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
|
167
|
-
import { faSpinner } from '@fortawesome/free-solid-svg-icons'
|
|
215
|
+
import { faSpinner, faAlignLeft } from '@fortawesome/free-solid-svg-icons'
|
|
168
216
|
|
|
169
|
-
library.add(faSpinner)
|
|
217
|
+
library.add(faSpinner, faAlignLeft)
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
In the event that you are using an icon with a multi-word name please note that
|
|
221
|
+
you would need to pass in the icon name using _kebab-case_ as opposed to _camelCase_.
|
|
222
|
+
|
|
223
|
+
```javascript
|
|
224
|
+
<font-awesome-icon icon="address-card" /> # import { faAddressCard } from '@fortawesome/free-solid-svg-icons'
|
|
170
225
|
```
|
|
171
226
|
|
|
172
|
-
#### Explicit prefix (note the Vue bind shorthand because this uses an array)
|
|
227
|
+
#### Explicit prefix (note the Vue bind shorthand because this uses an array)
|
|
173
228
|
|
|
174
229
|
```javascript
|
|
175
230
|
<font-awesome-icon :icon="['far', 'spinner']" />
|
|
@@ -184,7 +239,7 @@ import { faSpinner } from '@fortawesome/pro-regular-svg-icons'
|
|
|
184
239
|
library.add(faSpinner)
|
|
185
240
|
```
|
|
186
241
|
|
|
187
|
-
#### Explicit icon definition through something like a computed property
|
|
242
|
+
#### Explicit icon definition through something like a computed property
|
|
188
243
|
|
|
189
244
|
```javascript
|
|
190
245
|
<template>
|
|
@@ -245,14 +300,14 @@ Explicitly selecting icons offer the advantage of only bundling the icons that y
|
|
|
245
300
|
use in your final bundled file. This allows us to subset Font Awesome's
|
|
246
301
|
thousands of icons to just the small number that are normally used.
|
|
247
302
|
|
|
248
|
-
#### Import the specific icons that you need
|
|
303
|
+
#### Import the specific icons that you need
|
|
249
304
|
|
|
250
305
|
```javascript
|
|
251
306
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
|
252
307
|
import { faCoffee } from '@fortawesome/free-solid-svg-icons'
|
|
253
308
|
import { faSpinner } from '@fortawesome/pro-light-svg-icons'
|
|
254
309
|
|
|
255
|
-
library.add(faCoffee,
|
|
310
|
+
library.add(faCoffee, faSpinner)
|
|
256
311
|
```
|
|
257
312
|
|
|
258
313
|
#### Import entire styles
|
|
@@ -288,7 +343,7 @@ that specific icon.
|
|
|
288
343
|
|
|
289
344
|
## Features
|
|
290
345
|
|
|
291
|
-
The following features are available as
|
|
346
|
+
The following features are available as part of Font Awesome. Note that the syntax is different from our general web-use documentation.
|
|
292
347
|
|
|
293
348
|
### Register your components first
|
|
294
349
|
|
|
@@ -300,7 +355,7 @@ library** before you bootstrap your Vue application.
|
|
|
300
355
|
|
|
301
356
|
```
|
|
302
357
|
import Vue from 'vue'
|
|
303
|
-
import { FontAwesomeIcon, FontAwesomeLayers, FontAwesomeLayersText } from 'vue-fontawesome'
|
|
358
|
+
import { FontAwesomeIcon, FontAwesomeLayers, FontAwesomeLayersText } from '@fortawesome/vue-fontawesome'
|
|
304
359
|
|
|
305
360
|
Vue.component('font-awesome-icon', FontAwesomeIcon)
|
|
306
361
|
Vue.component('font-awesome-layers', FontAwesomeLayers)
|
|
@@ -309,23 +364,26 @@ Vue.component('font-awesome-layers-text', FontAwesomeLayersText)
|
|
|
309
364
|
|
|
310
365
|
### Basic
|
|
311
366
|
|
|
312
|
-
|
|
367
|
+
[Size](https://fontawesome.com/how-to-use/on-the-web/styling/sizing-icons):
|
|
313
368
|
|
|
314
369
|
```html
|
|
315
|
-
<font-awesome-icon icon="spinner"
|
|
316
|
-
<font-awesome-icon icon="spinner"
|
|
370
|
+
<font-awesome-icon icon="spinner" size="xs" />
|
|
371
|
+
<font-awesome-icon icon="spinner" size="lg" />
|
|
372
|
+
<font-awesome-icon icon="spinner" size="6x" />
|
|
317
373
|
```
|
|
318
374
|
|
|
319
|
-
Fixed width:
|
|
375
|
+
[Fixed width](https://fontawesome.com/how-to-use/on-the-web/styling/fixed-width-icons):
|
|
320
376
|
|
|
321
377
|
```html
|
|
322
378
|
<font-awesome-icon icon="spinner" fixed-width />
|
|
323
379
|
```
|
|
324
380
|
|
|
325
|
-
|
|
381
|
+
[Rotate](https://fontawesome.com/how-to-use/on-the-web/styling/rotating-icons):
|
|
326
382
|
|
|
327
383
|
```html
|
|
328
|
-
<font-awesome-icon icon="spinner"
|
|
384
|
+
<font-awesome-icon icon="spinner" rotation="90" />
|
|
385
|
+
<font-awesome-icon icon="spinner" rotation="180" />
|
|
386
|
+
<font-awesome-icon icon="spinner" rotation="270" />
|
|
329
387
|
```
|
|
330
388
|
|
|
331
389
|
Flip horizontally, vertically, or both:
|
|
@@ -336,23 +394,20 @@ Flip horizontally, vertically, or both:
|
|
|
336
394
|
<font-awesome-icon icon="spinner" flip="both" />
|
|
337
395
|
```
|
|
338
396
|
|
|
339
|
-
|
|
397
|
+
Spin and pulse [animation](https://fontawesome.com/how-to-use/on-the-web/styling/animating-icons):
|
|
340
398
|
|
|
341
399
|
```html
|
|
342
|
-
<font-awesome-icon icon="spinner"
|
|
343
|
-
<font-awesome-icon icon="spinner"
|
|
344
|
-
<font-awesome-icon icon="spinner" size="6x" />
|
|
400
|
+
<font-awesome-icon icon="spinner" spin />
|
|
401
|
+
<font-awesome-icon icon="spinner" pulse />
|
|
345
402
|
```
|
|
346
403
|
|
|
347
|
-
|
|
404
|
+
[Border](https://fontawesome.com/how-to-use/on-the-web/styling/bordered-pulled-icons):
|
|
348
405
|
|
|
349
406
|
```html
|
|
350
|
-
<font-awesome-icon icon="spinner"
|
|
351
|
-
<font-awesome-icon icon="spinner" rotation="180" />
|
|
352
|
-
<font-awesome-icon icon="spinner" rotation="270" />
|
|
407
|
+
<font-awesome-icon icon="spinner" border />
|
|
353
408
|
```
|
|
354
409
|
|
|
355
|
-
Pull left or right:
|
|
410
|
+
[Pull left or right](https://fontawesome.com/how-to-use/on-the-web/styling/bordered-pulled-icons):
|
|
356
411
|
|
|
357
412
|
```html
|
|
358
413
|
<font-awesome-icon icon="spinner" pull="left" />
|
|
@@ -361,36 +416,36 @@ Pull left or right:
|
|
|
361
416
|
|
|
362
417
|
### Advanced
|
|
363
418
|
|
|
364
|
-
Power Transforms:
|
|
419
|
+
[Power Transforms]((https://fontawesome.com/how-to-use/on-the-web/styling/power-transforms)):
|
|
365
420
|
|
|
366
421
|
```html
|
|
367
422
|
<font-awesome-icon icon="spinner" transform="shrink-6 left-4" />
|
|
368
423
|
<font-awesome-icon icon="spinner" :transform="{ rotate: 42 }" />
|
|
369
424
|
```
|
|
370
425
|
|
|
371
|
-
Masking:
|
|
426
|
+
[Masking](https://fontawesome.com/how-to-use/on-the-web/styling/masking):
|
|
372
427
|
|
|
373
428
|
```html
|
|
374
429
|
<font-awesome-icon icon="coffee" :mask="['far', 'circle']" />
|
|
375
430
|
```
|
|
376
431
|
|
|
377
|
-
Symbols:
|
|
432
|
+
[Symbols](https://fontawesome.com/how-to-use/on-the-web/advanced/svg-symbols):
|
|
378
433
|
|
|
379
434
|
```html
|
|
380
435
|
<font-awesome-icon icon="edit" symbol />
|
|
381
436
|
<font-awesome-icon icon="edit" symbol="edit-icon" />
|
|
382
437
|
```
|
|
383
438
|
|
|
384
|
-
Layers:
|
|
439
|
+
[Layers](https://fontawesome.com/how-to-use/on-the-web/styling/layering):
|
|
385
440
|
|
|
386
441
|
```html
|
|
387
442
|
<font-awesome-layers class="fa-lg">
|
|
388
443
|
<font-awesome-icon icon="circle" />
|
|
389
|
-
<font-awesome-icon icon="check" transform="shrink-6" style="color: white
|
|
444
|
+
<font-awesome-icon icon="check" transform="shrink-6" :style="{ color: 'white' }" />
|
|
390
445
|
</font-awesome-layers>
|
|
391
446
|
```
|
|
392
447
|
|
|
393
|
-
Layers text:
|
|
448
|
+
[Layers text](https://fontawesome.com/how-to-use/on-the-web/styling/layering):
|
|
394
449
|
|
|
395
450
|
```html
|
|
396
451
|
<font-awesome-layers full-width class="fa-4x">
|
|
@@ -398,3 +453,199 @@ Layers text:
|
|
|
398
453
|
<font-awesome-layers-text class="gray8" transform="down-2 shrink-8" value="Q" />
|
|
399
454
|
</font-awesome-layers>
|
|
400
455
|
```
|
|
456
|
+
|
|
457
|
+
## Integrating with other tools and frameworks
|
|
458
|
+
|
|
459
|
+
### Nuxt.js
|
|
460
|
+
|
|
461
|
+
Install `@fortawesome/vue-fontawesome` and `@fortawesome/fontawesome-svg-core` and any icon packages.
|
|
462
|
+
|
|
463
|
+
```
|
|
464
|
+
npm install --save @fortawesome/vue-fontawesome @fortawesome/fontawesome-svg-core @fortawesome/free-solid-svg-icons
|
|
465
|
+
```
|
|
466
|
+
|
|
467
|
+
Inside your Nuxt.js project add a `plugins/fontawesome.js` file.
|
|
468
|
+
|
|
469
|
+
```javascript
|
|
470
|
+
import Vue from 'vue'
|
|
471
|
+
import { library, config } from '@fortawesome/fontawesome-svg-core'
|
|
472
|
+
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'
|
|
473
|
+
import { fas } from '@fortawesome/free-solid-svg-icons'
|
|
474
|
+
|
|
475
|
+
// This is important, we are going to let Nuxt.js worry about the CSS
|
|
476
|
+
config.autoAddCss = false
|
|
477
|
+
|
|
478
|
+
// You can add your icons directly in this plugin. See other examples for how you
|
|
479
|
+
// can add other styles or just individual icons.
|
|
480
|
+
library.add(fas)
|
|
481
|
+
|
|
482
|
+
// Register the component globally
|
|
483
|
+
Vue.component('font-awesome-icon', FontAwesomeIcon)
|
|
484
|
+
```
|
|
485
|
+
|
|
486
|
+
Modify `nuxt.config.js` adding to the `css` and `plugins` sections.
|
|
487
|
+
|
|
488
|
+
```javascript
|
|
489
|
+
css: [
|
|
490
|
+
'@fortawesome/fontawesome-svg-core/styles.css'
|
|
491
|
+
]
|
|
492
|
+
```
|
|
493
|
+
|
|
494
|
+
```javascript
|
|
495
|
+
plugins: [
|
|
496
|
+
'~/plugins/fontawesome.js'
|
|
497
|
+
]
|
|
498
|
+
```
|
|
499
|
+
|
|
500
|
+
## FAQ
|
|
501
|
+
|
|
502
|
+
### Why so explicit (the :icon="['far', 'coffee']" syntax)?
|
|
503
|
+
|
|
504
|
+
It's been brought up a few times that the array syntax used for specifying an
|
|
505
|
+
icon from the library is a bit cumbersome. Initially, this does seem to
|
|
506
|
+
be the case but we do have good reasons.
|
|
507
|
+
|
|
508
|
+
#### How about a separate property for the prefix?
|
|
509
|
+
|
|
510
|
+
```html
|
|
511
|
+
<font-awesome-icon far icon="spinner" />
|
|
512
|
+
```
|
|
513
|
+
|
|
514
|
+
or
|
|
515
|
+
|
|
516
|
+
```html
|
|
517
|
+
<font-awesome-icon prefix="far" icon="spinner" />
|
|
518
|
+
```
|
|
519
|
+
|
|
520
|
+
The problem with this is that it does not provide a consistent or concise way to specify the mask.
|
|
521
|
+
|
|
522
|
+
```html
|
|
523
|
+
<font-awesome-icon far icon="spinner" mask="circle" />
|
|
524
|
+
```
|
|
525
|
+
|
|
526
|
+
Does the `far` apply to the icon or the mask? What is the prefix for the property it does not apply to?
|
|
527
|
+
|
|
528
|
+
Whereas this is consistent and concise:
|
|
529
|
+
|
|
530
|
+
```html
|
|
531
|
+
<font-awesome-icon :icon="['far', 'spinner']" :mask="['fas', 'circle']" />
|
|
532
|
+
```
|
|
533
|
+
|
|
534
|
+
#### Bindings become boilerplate and verbose
|
|
535
|
+
|
|
536
|
+
Since icons are not always static but can change based on Vue component
|
|
537
|
+
`methods` or `computed` values we have to take that into consideration.
|
|
538
|
+
|
|
539
|
+
Icon properties end up being more verbose:
|
|
540
|
+
|
|
541
|
+
```html
|
|
542
|
+
<font-awesome-icon :far="style === 'far'" :fal="style === 'fal'" :icon="icon" />
|
|
543
|
+
```
|
|
544
|
+
|
|
545
|
+
vs.
|
|
546
|
+
|
|
547
|
+
```html
|
|
548
|
+
<font-awesome-icon :icon="[style, icon]" />
|
|
549
|
+
```
|
|
550
|
+
|
|
551
|
+
Or if you are using a `prefix` property it smells of needless boilerplate:
|
|
552
|
+
|
|
553
|
+
```html
|
|
554
|
+
<template>
|
|
555
|
+
<font-awesome-icon :prefix="iconPrefix" :icon="iconName" />
|
|
556
|
+
</template>
|
|
557
|
+
|
|
558
|
+
<script>
|
|
559
|
+
export default {
|
|
560
|
+
computed: {
|
|
561
|
+
iconPrefix() {
|
|
562
|
+
return 'fas'
|
|
563
|
+
},
|
|
564
|
+
iconName() {
|
|
565
|
+
return 'coffee'
|
|
566
|
+
}
|
|
567
|
+
}
|
|
568
|
+
}
|
|
569
|
+
</script>
|
|
570
|
+
```
|
|
571
|
+
|
|
572
|
+
vs.
|
|
573
|
+
|
|
574
|
+
```html
|
|
575
|
+
<template>
|
|
576
|
+
<font-awesome-icon :icon="icon" />
|
|
577
|
+
</template>
|
|
578
|
+
|
|
579
|
+
<script>
|
|
580
|
+
export default {
|
|
581
|
+
computed: {
|
|
582
|
+
icon() {
|
|
583
|
+
return ['fas', 'coffee']
|
|
584
|
+
}
|
|
585
|
+
}
|
|
586
|
+
}
|
|
587
|
+
</script>
|
|
588
|
+
```
|
|
589
|
+
|
|
590
|
+
#### Properties can disagree with each other
|
|
591
|
+
|
|
592
|
+
If we allow prefix definition through a property and we also allow an icon to
|
|
593
|
+
be specified as an object through direct import these two have a chance to
|
|
594
|
+
argue with eachother. This could lead to some head-scratching when an icon
|
|
595
|
+
doesn't appear in the expected style.
|
|
596
|
+
|
|
597
|
+
In the following case which style should be used (light from the icon definition or regular from the far boolean):
|
|
598
|
+
|
|
599
|
+
```html
|
|
600
|
+
import { faSpinner } from `@fortawesome/pro-light-svg-icons`
|
|
601
|
+
|
|
602
|
+
<template>
|
|
603
|
+
<font-awesome-icon far :icon="faSpinner" />
|
|
604
|
+
</template>
|
|
605
|
+
|
|
606
|
+
<script>
|
|
607
|
+
export default {
|
|
608
|
+
data() {
|
|
609
|
+
return {
|
|
610
|
+
faSpinner
|
|
611
|
+
}
|
|
612
|
+
}
|
|
613
|
+
}
|
|
614
|
+
</script>
|
|
615
|
+
```
|
|
616
|
+
|
|
617
|
+
## How to Help
|
|
618
|
+
|
|
619
|
+
Review the following docs before diving in:
|
|
620
|
+
|
|
621
|
+
* [CONTRIBUTING.md](CONTRIBUTING.md)
|
|
622
|
+
* [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md)
|
|
623
|
+
|
|
624
|
+
And then:
|
|
625
|
+
|
|
626
|
+
1. Check the existing issue and see if you can help!
|
|
627
|
+
|
|
628
|
+
## Contributors
|
|
629
|
+
|
|
630
|
+
The following contributors have either hepled to start this project, have contributed
|
|
631
|
+
code, are actively maintaining it (including documentation), or in other ways
|
|
632
|
+
being awesome contributors to this project. **We'd like to take a moment to recognize them.**
|
|
633
|
+
|
|
634
|
+
| | Name | GitHub |
|
|
635
|
+
| :--------------------------------------------------------: | -------------- | -------------------------------------------------- |
|
|
636
|
+
| <img src="https://github.com/SirLamer.png?size=72" /> | SirLamer | [@SirLamer](https://github.com/SirLamer) |
|
|
637
|
+
|
|
638
|
+
If we've missed someone (which is quite likely) submit a Pull Request to us and we'll get it resolved.
|
|
639
|
+
|
|
640
|
+
The Font Awesome team:
|
|
641
|
+
|
|
642
|
+
| | Name | GitHub |
|
|
643
|
+
| :--------------------------------------------------------: | -------------- | -------------------------------------------------- |
|
|
644
|
+
| <img src="https://github.com/supercodepoet.png?size=72" /> | Travis Chase | [@supercodepoet](https://github.com/supercodepoet) |
|
|
645
|
+
| <img src="https://github.com/robmadole.png?size=72" /> | Rob Madole | [@robmadole](https://github.com/robmadole) |
|
|
646
|
+
| <img src="https://github.com/mlwilkerson.png?size=72" /> | Mike Wilkerson | [@mlwilkerson](https://github.com/mlwilkerson) |
|
|
647
|
+
| <img src="https://github.com/talbs.png?size=72" /> | Brian Talbot | [@talbs](https://github.com/talbs) |
|
|
648
|
+
|
|
649
|
+
## Releasing this project
|
|
650
|
+
|
|
651
|
+
See [DEVELOPMENT.md](DEVELOPMENT.md#release)
|
package/UPGRADING.md
CHANGED
|
@@ -42,23 +42,23 @@ What does that mean?
|
|
|
42
42
|
~~Old way:~~
|
|
43
43
|
|
|
44
44
|
```javascript
|
|
45
|
-
import fontawesome from '@
|
|
45
|
+
import fontawesome from '@fortawesome/fontawesome'
|
|
46
46
|
import solid from '@fortawesome/fontawesome-free-solid'
|
|
47
47
|
import faTwitter from '@fortawesome/fontawesome-free-brands/faTwitter'
|
|
48
48
|
import FontAwesomeIcon from '@fortawesome/vue-fontawesome'
|
|
49
49
|
|
|
50
|
-
|
|
50
|
+
fontawesome.library.add(solid, faTwitter)
|
|
51
51
|
```
|
|
52
52
|
|
|
53
53
|
New way:
|
|
54
54
|
|
|
55
55
|
```javascript
|
|
56
|
-
import { library } from '@
|
|
57
|
-
import { fas } from '@fortawesome/
|
|
56
|
+
import { library } from '@fortawesome/fontawesome-svg-core'
|
|
57
|
+
import { fas } from '@fortawesome/free-solid-svg-icons'
|
|
58
58
|
import { faTwitter } from '@fortawesome/free-brands-svg-icons'
|
|
59
59
|
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'
|
|
60
60
|
|
|
61
|
-
|
|
61
|
+
library.add(fas, faTwitter)
|
|
62
62
|
```
|
|
63
63
|
|
|
64
64
|
This is also a valid way to import icons that works if your tool does not support tree shaking:
|
|
@@ -107,7 +107,7 @@ If you were previously relying on Font Awesome to replace any `<i>` tags in
|
|
|
107
107
|
your page or app with `<svg>` you'll need to explicitly control that now.
|
|
108
108
|
|
|
109
109
|
```javascript
|
|
110
|
-
import {
|
|
110
|
+
import { dom } from '@fortawesome/fontawesome-svg-core'
|
|
111
111
|
|
|
112
|
-
watch() // This will kick of the replacement of i tags and configure a MutationObserver
|
|
112
|
+
dom.watch() // This will kick of the replacement of i tags and configure a MutationObserver
|
|
113
113
|
```
|
|
@@ -10,50 +10,50 @@
|
|
|
10
10
|
"build": "node build/build.js"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"vue": "^2.5.
|
|
13
|
+
"vue": "^2.5.17"
|
|
14
14
|
},
|
|
15
15
|
"devDependencies": {
|
|
16
|
-
"@fortawesome/fontawesome-svg-core": "^1.2.
|
|
17
|
-
"@fortawesome/free-brands-svg-icons": "^5.1
|
|
18
|
-
"@fortawesome/free-regular-svg-icons": "^5.1
|
|
19
|
-
"@fortawesome/free-solid-svg-icons": "^5.1
|
|
20
|
-
"@fortawesome/vue-fontawesome": "^0.1.
|
|
21
|
-
"ajv": "^6.
|
|
16
|
+
"@fortawesome/fontawesome-svg-core": "^1.2.6",
|
|
17
|
+
"@fortawesome/free-brands-svg-icons": "^5.4.1",
|
|
18
|
+
"@fortawesome/free-regular-svg-icons": "^5.4.1",
|
|
19
|
+
"@fortawesome/free-solid-svg-icons": "^5.4.1",
|
|
20
|
+
"@fortawesome/vue-fontawesome": "^0.1.1",
|
|
21
|
+
"ajv": "^6.5.4",
|
|
22
22
|
"autoprefixer": "^7.1.2",
|
|
23
|
-
"babel-core": "^6.
|
|
23
|
+
"babel-core": "^6.26.3",
|
|
24
24
|
"babel-helper-vue-jsx-merge-props": "^2.0.3",
|
|
25
|
-
"babel-loader": "^7.1.
|
|
25
|
+
"babel-loader": "^7.1.5",
|
|
26
26
|
"babel-plugin-syntax-jsx": "^6.18.0",
|
|
27
27
|
"babel-plugin-transform-runtime": "^6.22.0",
|
|
28
28
|
"babel-plugin-transform-vue-jsx": "^3.5.0",
|
|
29
|
-
"babel-preset-env": "^1.
|
|
29
|
+
"babel-preset-env": "^1.7.0",
|
|
30
30
|
"babel-preset-stage-2": "^6.22.0",
|
|
31
|
-
"chalk": "^2.
|
|
32
|
-
"copy-webpack-plugin": "^4.
|
|
33
|
-
"css-loader": "^0.28.
|
|
31
|
+
"chalk": "^2.4.1",
|
|
32
|
+
"copy-webpack-plugin": "^4.5.3",
|
|
33
|
+
"css-loader": "^0.28.11",
|
|
34
34
|
"extract-text-webpack-plugin": "^3.0.0",
|
|
35
35
|
"file-loader": "^1.1.4",
|
|
36
|
-
"friendly-errors-webpack-plugin": "^1.
|
|
36
|
+
"friendly-errors-webpack-plugin": "^1.7.0",
|
|
37
37
|
"html-webpack-plugin": "^2.30.1",
|
|
38
38
|
"node-notifier": "^5.1.2",
|
|
39
39
|
"optimize-css-assets-webpack-plugin": "^3.2.0",
|
|
40
40
|
"ora": "^1.2.0",
|
|
41
|
-
"portfinder": "^1.0.
|
|
41
|
+
"portfinder": "^1.0.17",
|
|
42
42
|
"postcss-import": "^11.0.0",
|
|
43
|
-
"postcss-loader": "^2.
|
|
44
|
-
"postcss-url": "^7.2
|
|
43
|
+
"postcss-loader": "^2.1.6",
|
|
44
|
+
"postcss-url": "^7.3.2",
|
|
45
45
|
"rimraf": "^2.6.0",
|
|
46
|
-
"semver": "^5.
|
|
46
|
+
"semver": "^5.6.0",
|
|
47
47
|
"shelljs": "^0.7.6",
|
|
48
|
-
"uglifyjs-webpack-plugin": "^1.
|
|
48
|
+
"uglifyjs-webpack-plugin": "^1.3.0",
|
|
49
49
|
"url-loader": "^0.5.8",
|
|
50
|
-
"vue-loader": "^13.3
|
|
50
|
+
"vue-loader": "^13.7.3",
|
|
51
51
|
"vue-style-loader": "^3.0.1",
|
|
52
|
-
"vue-template-compiler": "^2.5.
|
|
53
|
-
"webpack": "^3.
|
|
54
|
-
"webpack-bundle-analyzer": "^2.
|
|
55
|
-
"webpack-dev-server": "^2.
|
|
56
|
-
"webpack-merge": "^4.1.
|
|
52
|
+
"vue-template-compiler": "^2.5.17",
|
|
53
|
+
"webpack": "^3.12.0",
|
|
54
|
+
"webpack-bundle-analyzer": "^2.13.1",
|
|
55
|
+
"webpack-dev-server": "^2.11.3",
|
|
56
|
+
"webpack-merge": "^4.1.4"
|
|
57
57
|
},
|
|
58
58
|
"engines": {
|
|
59
59
|
"node": ">= 6.0.0",
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<div id="app">
|
|
3
3
|
<main class="w-100 min-vh-100 bg-gray8 white sans-serif pa6 flex flex-column justify-center items-center">
|
|
4
4
|
<div class="mw8 center overflow-hidden">
|
|
5
|
-
<h2 class="tc ttu tracked3 b f2 mt0 mb2 teal0 o-30">
|
|
5
|
+
<h2 class="tc ttu tracked3 b f2 mt0 mb2 teal0 o-30">vue-fontawesome</h2>
|
|
6
6
|
|
|
7
7
|
<ul class="list ma0 pa0 flex flex-row flex-wrap teal4">
|
|
8
8
|
<li class="pv3 ph2 ma0 link grow">
|