react-fontpicker-ts 0.1.0 → 0.3.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.
- package/README.md +4 -109
- package/dist/index.css +3277 -3788
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +836 -674
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +838 -671
- package/dist/index.mjs.map +1 -1
- package/dist/sprite.1.1.5x-IEN72JY6.png +0 -0
- package/dist/sprite.1.1x-TBCR3GHG.png +0 -0
- package/dist/sprite.1.2x-7DLPF4QI.png +0 -0
- package/dist/sprite.2.1.5x-BTV2IYQE.png +0 -0
- package/dist/sprite.2.1x-LMLU3WAY.png +0 -0
- package/dist/sprite.2.2x-GLHW3CGI.png +0 -0
- package/dist/sprite.3.1.5x-APCYMH2U.png +0 -0
- package/dist/sprite.3.1x-4P6LGCUY.png +0 -0
- package/dist/sprite.3.2x-TXTVEISQ.png +0 -0
- package/dist/sprite.4.1.5x-QHIEK3EL.png +0 -0
- package/dist/sprite.4.1x-CKFO5N5Y.png +0 -0
- package/dist/sprite.4.2x-M7QAUGJM.png +0 -0
- package/dist/sprite.5.1.5x-FGGQRINX.png +0 -0
- package/dist/sprite.5.1x-7BMSHF5E.png +0 -0
- package/dist/sprite.5.2x-6GGR2CKH.png +0 -0
- package/dist/sprite.6.1.5x-RDOEAOLD.png +0 -0
- package/dist/sprite.6.1x-GJO4G432.png +0 -0
- package/dist/sprite.6.2x-P5P3ZGLE.png +0 -0
- package/dist/sprite.7.1.5x-NOP4JY5I.png +0 -0
- package/dist/sprite.7.1x-27V2WF2K.png +0 -0
- package/dist/sprite.7.2x-ZHKWVQ4L.png +0 -0
- package/dist/sprite.8.1.5x-J3A7XQVH.png +0 -0
- package/dist/sprite.8.1x-ZTY27DI3.png +0 -0
- package/dist/sprite.8.2x-PK3I6JFC.png +0 -0
- package/dist/src/components/FontPicker.d.ts +4 -3
- package/dist/src/components/FontPicker.d.ts.map +1 -1
- package/dist/src/components/FontPreviews.d.ts +7 -0
- package/dist/src/components/FontPreviews.d.ts.map +1 -0
- package/package.json +42 -22
- package/dist/sprite.1.1.5x-XMWDUN3B.png +0 -0
- package/dist/sprite.1.1x-HDD5SCOX.png +0 -0
- package/dist/sprite.1.2x-R5OZY447.png +0 -0
- package/dist/sprite.10.1.5x-NKFUPOTH.png +0 -0
- package/dist/sprite.10.1x-N74JTAKW.png +0 -0
- package/dist/sprite.10.2x-XVSCEJWZ.png +0 -0
- package/dist/sprite.11.1.5x-R3M3D3TB.png +0 -0
- package/dist/sprite.11.1x-7SYW6ANG.png +0 -0
- package/dist/sprite.11.2x-OXV2QAU2.png +0 -0
- package/dist/sprite.12.1.5x-RK5K5CBC.png +0 -0
- package/dist/sprite.12.1x-2UXSH2BC.png +0 -0
- package/dist/sprite.12.2x-ILRYIKLL.png +0 -0
- package/dist/sprite.13.1.5x-ZVKWAYBW.png +0 -0
- package/dist/sprite.13.1x-W35QRJN6.png +0 -0
- package/dist/sprite.13.2x-6QDJKTFQ.png +0 -0
- package/dist/sprite.14.1.5x-YQ5TVP4X.png +0 -0
- package/dist/sprite.14.1x-P62F5ZHB.png +0 -0
- package/dist/sprite.14.2x-FJMFBXNN.png +0 -0
- package/dist/sprite.15.1.5x-RSJTKGXJ.png +0 -0
- package/dist/sprite.15.1x-VT6OXOD4.png +0 -0
- package/dist/sprite.15.2x-O6JPUDO5.png +0 -0
- package/dist/sprite.16.1.5x-IF5CXL2K.png +0 -0
- package/dist/sprite.16.1x-BH3FBEAS.png +0 -0
- package/dist/sprite.16.2x-GWMKGITZ.png +0 -0
- package/dist/sprite.17.1.5x-VZ4PAF6Q.png +0 -0
- package/dist/sprite.17.1x-NZ7X6YT5.png +0 -0
- package/dist/sprite.17.2x-6XQTSIXG.png +0 -0
- package/dist/sprite.18.1.5x-SWHUCEVQ.png +0 -0
- package/dist/sprite.18.1x-57L6JD6F.png +0 -0
- package/dist/sprite.18.2x-WWYT5NSE.png +0 -0
- package/dist/sprite.19.1.5x-3RQQUIO3.png +0 -0
- package/dist/sprite.19.1x-3LJ7M6AR.png +0 -0
- package/dist/sprite.19.2x-IK6T6HLQ.png +0 -0
- package/dist/sprite.2.1.5x-K5NNDIW3.png +0 -0
- package/dist/sprite.2.1x-6JLC6P3G.png +0 -0
- package/dist/sprite.2.2x-265H7CFZ.png +0 -0
- package/dist/sprite.20.1.5x-JXDIFNZH.png +0 -0
- package/dist/sprite.20.1x-XNU2TJ6Q.png +0 -0
- package/dist/sprite.20.2x-XOZTSZTY.png +0 -0
- package/dist/sprite.21.1.5x-NPYIH4LB.png +0 -0
- package/dist/sprite.21.1x-SFNMHFDI.png +0 -0
- package/dist/sprite.21.2x-ZLQ2B6IK.png +0 -0
- package/dist/sprite.22.1.5x-BEHLPSYK.png +0 -0
- package/dist/sprite.22.1x-PGMCTRGT.png +0 -0
- package/dist/sprite.22.2x-2X3QIOVQ.png +0 -0
- package/dist/sprite.23.1.5x-XQITU43V.png +0 -0
- package/dist/sprite.23.1x-C765STXM.png +0 -0
- package/dist/sprite.23.2x-RFIXCUQ5.png +0 -0
- package/dist/sprite.24.1.5x-AWFULXDG.png +0 -0
- package/dist/sprite.24.1x-X3VC4KER.png +0 -0
- package/dist/sprite.24.2x-VKZEB2CH.png +0 -0
- package/dist/sprite.25.1.5x-J2DDFQLL.png +0 -0
- package/dist/sprite.25.1x-XQF4XMN7.png +0 -0
- package/dist/sprite.25.2x-QTVFDGUX.png +0 -0
- package/dist/sprite.26.1.5x-OJL22L3R.png +0 -0
- package/dist/sprite.26.1x-CGQ7DGJJ.png +0 -0
- package/dist/sprite.26.2x-H3G2GZUW.png +0 -0
- package/dist/sprite.27.1.5x-GAOIHSTF.png +0 -0
- package/dist/sprite.27.1x-SOKO7GY2.png +0 -0
- package/dist/sprite.27.2x-ITHLNV7Y.png +0 -0
- package/dist/sprite.28.1.5x-L6PPUSPI.png +0 -0
- package/dist/sprite.28.1x-A7MKNFXG.png +0 -0
- package/dist/sprite.28.2x-K77CZFAS.png +0 -0
- package/dist/sprite.29.1.5x-NKWAULUW.png +0 -0
- package/dist/sprite.29.1x-CDNA2EMC.png +0 -0
- package/dist/sprite.29.2x-O3XIGYZ7.png +0 -0
- package/dist/sprite.3.1.5x-IJHYR3HX.png +0 -0
- package/dist/sprite.3.1x-7WCEQE3K.png +0 -0
- package/dist/sprite.3.2x-5BRAAPEV.png +0 -0
- package/dist/sprite.30.1.5x-5J52YR4L.png +0 -0
- package/dist/sprite.30.1x-O2IEWRXU.png +0 -0
- package/dist/sprite.30.2x-HPGJXVZN.png +0 -0
- package/dist/sprite.31.1.5x-UJPCJFMG.png +0 -0
- package/dist/sprite.31.1x-U2J2WYAY.png +0 -0
- package/dist/sprite.31.2x-HKQONG4Z.png +0 -0
- package/dist/sprite.32.1.5x-MZ6JDYEM.png +0 -0
- package/dist/sprite.32.1x-TP2UTYLR.png +0 -0
- package/dist/sprite.32.2x-RZPSV5UX.png +0 -0
- package/dist/sprite.33.1.5x-TCAZHHP2.png +0 -0
- package/dist/sprite.33.1x-7S6OSG77.png +0 -0
- package/dist/sprite.33.2x-TICPWNE4.png +0 -0
- package/dist/sprite.34.1.5x-2NTL4MDB.png +0 -0
- package/dist/sprite.34.1x-IXYJYOUK.png +0 -0
- package/dist/sprite.34.2x-5GUPUSQT.png +0 -0
- package/dist/sprite.35.1.5x-7H3ORIFA.png +0 -0
- package/dist/sprite.35.1x-EPNBZ6SY.png +0 -0
- package/dist/sprite.35.2x-TXYDDKLH.png +0 -0
- package/dist/sprite.36.1.5x-JZYN2W6L.png +0 -0
- package/dist/sprite.36.1x-IZPAQFY7.png +0 -0
- package/dist/sprite.36.2x-QLFTLI4X.png +0 -0
- package/dist/sprite.37.1.5x-4JR4JB6C.png +0 -0
- package/dist/sprite.37.1x-6HIYOKB6.png +0 -0
- package/dist/sprite.37.2x-BJDJQKMI.png +0 -0
- package/dist/sprite.38.1.5x-A4MINTST.png +0 -0
- package/dist/sprite.38.1x-2ZSFTMRI.png +0 -0
- package/dist/sprite.38.2x-QH4TU7B7.png +0 -0
- package/dist/sprite.39.1.5x-GLTUGRUY.png +0 -0
- package/dist/sprite.39.1x-J3WKKDRT.png +0 -0
- package/dist/sprite.39.2x-IGNBAI52.png +0 -0
- package/dist/sprite.4.1.5x-MZSU4BIU.png +0 -0
- package/dist/sprite.4.1x-K2ZKVXBW.png +0 -0
- package/dist/sprite.4.2x-36JMJ5TY.png +0 -0
- package/dist/sprite.40.1.5x-KQ4UMFBJ.png +0 -0
- package/dist/sprite.40.1x-UAV75KRX.png +0 -0
- package/dist/sprite.40.2x-E6HWOLRK.png +0 -0
- package/dist/sprite.41.1.5x-2V2IOC5B.png +0 -0
- package/dist/sprite.41.1x-S454BCDL.png +0 -0
- package/dist/sprite.41.2x-O35F2TH5.png +0 -0
- package/dist/sprite.42.1.5x-55VRTVTZ.png +0 -0
- package/dist/sprite.42.1x-N5BTF34E.png +0 -0
- package/dist/sprite.42.2x-C7GLPHJL.png +0 -0
- package/dist/sprite.43.1.5x-7FOQHJZD.png +0 -0
- package/dist/sprite.43.1x-SVQ2YYRE.png +0 -0
- package/dist/sprite.43.2x-T4LGXBHT.png +0 -0
- package/dist/sprite.44.1.5x-ORB33HMT.png +0 -0
- package/dist/sprite.44.1x-26CE7BIA.png +0 -0
- package/dist/sprite.44.2x-WBXV5LJE.png +0 -0
- package/dist/sprite.45.1.5x-CM766AXL.png +0 -0
- package/dist/sprite.45.1x-I6HKG3TH.png +0 -0
- package/dist/sprite.45.2x-HTJBMJNX.png +0 -0
- package/dist/sprite.46.1.5x-FD6HAIAD.png +0 -0
- package/dist/sprite.46.1x-7CZZNAHY.png +0 -0
- package/dist/sprite.46.2x-RCELUTX4.png +0 -0
- package/dist/sprite.47.1.5x-UQEQZOLH.png +0 -0
- package/dist/sprite.47.1x-LZIROWHW.png +0 -0
- package/dist/sprite.47.2x-JHNRBS6B.png +0 -0
- package/dist/sprite.48.1.5x-CF4VLDQ3.png +0 -0
- package/dist/sprite.48.1x-37URWHJI.png +0 -0
- package/dist/sprite.48.2x-EO5K3WR3.png +0 -0
- package/dist/sprite.49.1.5x-ER2M27VD.png +0 -0
- package/dist/sprite.49.1x-QL2VV3AJ.png +0 -0
- package/dist/sprite.49.2x-U5RDSY6J.png +0 -0
- package/dist/sprite.5.1.5x-ME4GYDCA.png +0 -0
- package/dist/sprite.5.1x-W2IWAFNP.png +0 -0
- package/dist/sprite.5.2x-NCLJRA2R.png +0 -0
- package/dist/sprite.50.1.5x-S4Y55SM6.png +0 -0
- package/dist/sprite.50.1x-DORVBMXE.png +0 -0
- package/dist/sprite.50.2x-QW6UCBLZ.png +0 -0
- package/dist/sprite.51.1.5x-GX652CJX.png +0 -0
- package/dist/sprite.51.1x-7NDXNDRS.png +0 -0
- package/dist/sprite.51.2x-4VRCJBYW.png +0 -0
- package/dist/sprite.52.1.5x-ZCK4ZIRH.png +0 -0
- package/dist/sprite.52.1x-GHOWEHH7.png +0 -0
- package/dist/sprite.52.2x-6BUOP2DB.png +0 -0
- package/dist/sprite.53.1.5x-QYANAO2M.png +0 -0
- package/dist/sprite.53.1x-S5U5ZDQ2.png +0 -0
- package/dist/sprite.53.2x-J4WSXJEA.png +0 -0
- package/dist/sprite.54.1.5x-O4DSMMTX.png +0 -0
- package/dist/sprite.54.1x-3CA3HGGE.png +0 -0
- package/dist/sprite.54.2x-P7BQZS3S.png +0 -0
- package/dist/sprite.55.1.5x-HMGBFTI6.png +0 -0
- package/dist/sprite.55.1x-CT2NOYGV.png +0 -0
- package/dist/sprite.55.2x-GATJVZRT.png +0 -0
- package/dist/sprite.56.1.5x-XTQAT7P6.png +0 -0
- package/dist/sprite.56.1x-YBQIZY6U.png +0 -0
- package/dist/sprite.56.2x-7Y3HHBFF.png +0 -0
- package/dist/sprite.57.1.5x-EL7DF7DQ.png +0 -0
- package/dist/sprite.57.1x-ISDAJNBK.png +0 -0
- package/dist/sprite.57.2x-B3T3RWBJ.png +0 -0
- package/dist/sprite.58.1.5x-AB7E3NK7.png +0 -0
- package/dist/sprite.58.1x-5STNT7PP.png +0 -0
- package/dist/sprite.58.2x-3SUOF7OU.png +0 -0
- package/dist/sprite.59.1.5x-Q3QOSJF4.png +0 -0
- package/dist/sprite.59.1x-SJEVMFTL.png +0 -0
- package/dist/sprite.59.2x-CA2OYCYC.png +0 -0
- package/dist/sprite.6.1.5x-J2HZX7WZ.png +0 -0
- package/dist/sprite.6.1x-66ABRCF2.png +0 -0
- package/dist/sprite.6.2x-UELS3N4N.png +0 -0
- package/dist/sprite.60.1.5x-KUQO36F5.png +0 -0
- package/dist/sprite.60.1x-QFJ2HYZK.png +0 -0
- package/dist/sprite.60.2x-LZKO5ZIT.png +0 -0
- package/dist/sprite.61.1.5x-LN6RYWZK.png +0 -0
- package/dist/sprite.61.1x-EPK4BOK3.png +0 -0
- package/dist/sprite.61.2x-7JBPKG7R.png +0 -0
- package/dist/sprite.62.1.5x-7DSQK4RF.png +0 -0
- package/dist/sprite.62.1x-CSP67HCY.png +0 -0
- package/dist/sprite.62.2x-I5UD5YZC.png +0 -0
- package/dist/sprite.63.1.5x-5ZNCAXSC.png +0 -0
- package/dist/sprite.63.1x-7F4VERUU.png +0 -0
- package/dist/sprite.63.2x-LSCUFJAM.png +0 -0
- package/dist/sprite.64.1.5x-ATA5Q6LX.png +0 -0
- package/dist/sprite.64.1x-R2VDRSFT.png +0 -0
- package/dist/sprite.64.2x-YD5YI2DI.png +0 -0
- package/dist/sprite.65.1.5x-5O7TEWNR.png +0 -0
- package/dist/sprite.65.1x-V2BPH7ZR.png +0 -0
- package/dist/sprite.65.2x-ST7CS564.png +0 -0
- package/dist/sprite.66.1.5x-3KT73X5J.png +0 -0
- package/dist/sprite.66.1x-TK25CYYS.png +0 -0
- package/dist/sprite.66.2x-Q5Y23QE2.png +0 -0
- package/dist/sprite.67.1.5x-4CB2ACPO.png +0 -0
- package/dist/sprite.67.1x-AP27GV7V.png +0 -0
- package/dist/sprite.67.2x-OLVC2C4A.png +0 -0
- package/dist/sprite.68.1.5x-DRIVGXLF.png +0 -0
- package/dist/sprite.68.1x-YUI77IJP.png +0 -0
- package/dist/sprite.68.2x-QKQ6YI3Y.png +0 -0
- package/dist/sprite.69.1.5x-RITPHCT7.png +0 -0
- package/dist/sprite.69.1x-PYKOSVZM.png +0 -0
- package/dist/sprite.69.2x-6Y7W52SL.png +0 -0
- package/dist/sprite.7.1.5x-EGXDBUOU.png +0 -0
- package/dist/sprite.7.1x-LUXIWLZC.png +0 -0
- package/dist/sprite.7.2x-QXDRQFQV.png +0 -0
- package/dist/sprite.70.1.5x-PQQ25DCD.png +0 -0
- package/dist/sprite.70.1x-IMJFP6HN.png +0 -0
- package/dist/sprite.70.2x-UNFPYHDK.png +0 -0
- package/dist/sprite.71.1.5x-NEV4VFNG.png +0 -0
- package/dist/sprite.71.1x-QJZ3CDII.png +0 -0
- package/dist/sprite.71.2x-RACGFWVF.png +0 -0
- package/dist/sprite.8.1.5x-HNTPXNGH.png +0 -0
- package/dist/sprite.8.1x-X4QYD7LC.png +0 -0
- package/dist/sprite.8.2x-T3RXA3ZV.png +0 -0
- package/dist/sprite.9.1.5x-RREHIND2.png +0 -0
- package/dist/sprite.9.1x-7PBKZIKE.png +0 -0
- package/dist/sprite.9.2x-I4TPORKV.png +0 -0
package/README.md
CHANGED
|
@@ -11,113 +11,8 @@ Forked from https://github.com/Mikk3lRo/vue-fontpicker/
|
|
|
11
11
|
|
|
12
12
|
# Documentation
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
https://
|
|
16
|
-
|
|
17
|
-
# Installing
|
|
18
|
-
|
|
19
|
-
```bash
|
|
20
|
-
# npm
|
|
21
|
-
npm i react-fontpicker-ts
|
|
22
|
-
# yarn
|
|
23
|
-
yarn add react-fontpicker-ts
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
Then, import the component and stylesheet:
|
|
27
|
-
|
|
28
|
-
```js
|
|
29
|
-
import FontPicker from 'react-fontpicker-ts'
|
|
30
|
-
import 'react-fontpicker-ts/dist/index.css'
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
# Styling
|
|
34
|
-
|
|
35
|
-
See css classnames in: [src/components/FontPicker.css](https://github.com/ae9is/react-fontpicker/tree/main/src/components/FontPicker.css)
|
|
36
|
-
|
|
37
|
-
# Project structure
|
|
38
|
-
|
|
39
|
-
The live demo is a Vite app you can run yourself via `npm run dev` and which builds to `/docs`. Uses `tsconfig.json`.
|
|
40
|
-
|
|
41
|
-
The font picker component itself builds via `tsup` (i.e. `esbuild`) to `/dist` with type definitions generated via `tsc` according to `tsconfig.types.json`.
|
|
42
|
-
|
|
43
|
-
The font preview generation PHP script downloads font files to `/font-cache` and builds font image previews to `/font-preview`.
|
|
44
|
-
|
|
45
|
-
# Performance
|
|
46
|
-
|
|
47
|
-
The font picker previews work by loading font preview image files in CSS. The fonts are split across many image files for faster initial preview.
|
|
48
|
-
|
|
49
|
-
Once the dropdown select is opened, all the preview image files are retrieved enabling smooth scrolling and searching.
|
|
50
|
-
|
|
51
|
-
No requests are made to the Google fonts API unless the font picker is set to autoload, in which case the currently selected font is appended to the page header. (The previously selected font link is _not_ removed.)
|
|
52
|
-
|
|
53
|
-
For example:
|
|
54
|
-
|
|
55
|
-
```html
|
|
56
|
-
<head>
|
|
57
|
-
...
|
|
58
|
-
<link
|
|
59
|
-
rel="stylesheet"
|
|
60
|
-
id="google-font-rock_salt-all"
|
|
61
|
-
href="https://fonts.googleapis.com/css2?family=Rock Salt:ital,wght@0,400&display=swap"
|
|
62
|
-
/>
|
|
63
|
-
</head>
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
The big trade-off of this approach is that the component's bundle is quite large due to all the font image previews (~14 MB). Only a subset of this is served depending on the client's device pixel ratio:
|
|
67
|
-
|
|
68
|
-
- 2x → 6.2 MB
|
|
69
|
-
- 1.5x → 4.4 MB
|
|
70
|
-
- 1x → 2.7 MB
|
|
71
|
-
|
|
72
|
-
For a different font picker following an on demand approach, check out: [https://github.com/samuelmeuli/font-picker-react](https://github.com/samuelmeuli/font-picker-react)
|
|
14
|
+
Source and documentation:
|
|
15
|
+
https://github.com/ae9is/react-fontpicker
|
|
73
16
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
# Building font previews
|
|
77
|
-
|
|
78
|
-
_Note: most users shouldn't need to rebuild the font previews, but this section is included for convenience if you need to grab the latest fonts or edit the previews._
|
|
79
|
-
|
|
80
|
-
### 1\. Setup PHP
|
|
81
|
-
|
|
82
|
-
Setup a PHP installation with the GD image processing library. The `php-cli` package lets you run PHP scripts without needing a server.
|
|
83
|
-
|
|
84
|
-
```bash
|
|
85
|
-
# Ubuntu 22.04
|
|
86
|
-
apt install php-cli php-gd
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
### 2\. Google API key
|
|
90
|
-
|
|
91
|
-
Get a Google API key here [https://developers.google.com/fonts/docs/developer_api#APIKey](https://developers.google.com/fonts/docs/developer_api#APIKey) and create a new file called `GOOGLE_API_KEY` in the same directory as the `build-font-previews.php` script.
|
|
92
|
-
|
|
93
|
-
### 3\. Font preview script
|
|
94
|
-
|
|
95
|
-
### All Google fonts
|
|
96
|
-
|
|
97
|
-
To generate font previews for all currently available Google fonts (latin font families only, minus `Kumar One`).
|
|
98
|
-
|
|
99
|
-
```bash
|
|
100
|
-
php ./build-font-previews.php
|
|
101
|
-
# or npm alias:
|
|
102
|
-
npm run build-font-previews
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
_Note: For 1410 fonts, budget 20-30 minutes and 700 MB to download all the fonts. Compiling the image previews themselves should be less than a minute. When re-running, the script only retrieves new font info if it's older than 1 day and skips downloading cached fonts._
|
|
106
|
-
|
|
107
|
-
### Custom fonts
|
|
108
|
-
|
|
109
|
-
To generate font previews for custom fonts you'll need some info about the fonts and paths to the font file downloaded in TTF format.
|
|
110
|
-
|
|
111
|
-
```bash
|
|
112
|
-
php build-font-previews.php "font-name|font-category|font-variants-info|font-file" "font-name-2..."
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
Where font-variants-info is an array of values like 0,400 and 1,700 joined by +.
|
|
116
|
-
The first value denotes a normal (0) or italic (1) font.
|
|
117
|
-
The second value is the font weight (i.e. 100 = thin, 400 = normal, 700 = bold, 900 = heavy).
|
|
118
|
-
|
|
119
|
-
For example:
|
|
120
|
-
|
|
121
|
-
```bash
|
|
122
|
-
php build-font-previews.php "FontName|sans-serif|0,400+0,700+1,400+1,700|/path/to/font.ttf" "Font2|serif|0,400|/path/to/font2.ttf"
|
|
123
|
-
```
|
|
17
|
+
Live demo including usage:
|
|
18
|
+
https://ae9is.github.io/react-fontpicker/
|