fonts.php 33 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084
  1. <?php
  2. namespace Elementor;
  3. if ( ! defined( 'ABSPATH' ) ) {
  4. exit; // Exit if accessed directly.
  5. }
  6. /**
  7. * Elementor fonts.
  8. *
  9. * Elementor fonts handler class is responsible for registering the supported
  10. * fonts used by Elementor.
  11. *
  12. * @since 1.0.0
  13. */
  14. class Fonts {
  15. /**
  16. * The system font name.
  17. */
  18. const SYSTEM = 'system';
  19. /**
  20. * The google font name.
  21. */
  22. const GOOGLE = 'googlefonts';
  23. /**
  24. * The google early access font name.
  25. */
  26. const EARLYACCESS = 'earlyaccess';
  27. /**
  28. * The local font name.
  29. */
  30. const LOCAL = 'local';
  31. /**
  32. * Additional fonts.
  33. *
  34. * Used to hold additional fonts.
  35. *
  36. * @since 1.9.4
  37. * @access private
  38. * @static
  39. *
  40. * @var null|array
  41. */
  42. private static $additional_fonts = null;
  43. /**
  44. * Font groups.
  45. *
  46. * Used to hold font types/groups.
  47. *
  48. * @since 1.9.4
  49. * @access private
  50. * @static
  51. *
  52. * @var null|array
  53. */
  54. private static $font_groups = null;
  55. /**
  56. * Get font Groups.
  57. *
  58. * Retrieve the list of font groups.
  59. *
  60. * @since 1.9.4
  61. * @access public
  62. * @static
  63. *
  64. * @return array Supported font groups/types.
  65. */
  66. public static function get_font_groups() {
  67. if ( null === self::$font_groups ) {
  68. $font_groups = [
  69. self::SYSTEM => __( 'System', 'elementor' ),
  70. self::GOOGLE => __( 'Google', 'elementor' ),
  71. self::EARLYACCESS => __( 'Google Early Access', 'elementor' ),
  72. ];
  73. /**
  74. * Font groups.
  75. *
  76. * Filters the fonts groups used by Elementor.
  77. *
  78. * @since 1.9.4
  79. *
  80. * @param array $font_groups Font groups.
  81. */
  82. $font_groups = apply_filters( 'elementor/fonts/groups', $font_groups );
  83. self::$font_groups = $font_groups;
  84. }
  85. return self::$font_groups;
  86. }
  87. /**
  88. * Get fonts.
  89. *
  90. * Retrieve the list of supported fonts.
  91. *
  92. * @since 1.0.0
  93. * @access public
  94. * @static
  95. *
  96. * @return array Supported fonts.
  97. */
  98. public static function get_fonts() {
  99. if ( null === self::$additional_fonts ) {
  100. $additional_fonts = [];
  101. /**
  102. * Additional fonts.
  103. *
  104. * Filters the fonts used by Elementor to add additional fonts.
  105. *
  106. * @since 1.9.4
  107. *
  108. * @param array $additional_fonts Additional Elementor fonts.
  109. */
  110. $additional_fonts = apply_filters( 'elementor/fonts/additional_fonts', $additional_fonts );
  111. self::$additional_fonts = $additional_fonts;
  112. }
  113. return array_merge( self::get_native_fonts(), self::$additional_fonts );
  114. }
  115. /**
  116. * Get Elementor native fonts.
  117. *
  118. * Retrieve the list of supported fonts.
  119. *
  120. * @since 1.9.4
  121. * @access private
  122. * @static
  123. *
  124. * @return array Supported fonts.
  125. */
  126. private static function get_native_fonts() {
  127. return [
  128. // System fonts.
  129. 'Arial' => self::SYSTEM,
  130. 'Tahoma' => self::SYSTEM,
  131. 'Verdana' => self::SYSTEM,
  132. 'Helvetica' => self::SYSTEM,
  133. 'Times New Roman' => self::SYSTEM,
  134. 'Trebuchet MS' => self::SYSTEM,
  135. 'Georgia' => self::SYSTEM,
  136. // Google Fonts (last update: 08/04/2018).
  137. 'ABeeZee' => self::GOOGLE,
  138. 'Abel' => self::GOOGLE,
  139. 'Abhaya Libre' => self::GOOGLE,
  140. 'Abril Fatface' => self::GOOGLE,
  141. 'Aclonica' => self::GOOGLE,
  142. 'Acme' => self::GOOGLE,
  143. 'Actor' => self::GOOGLE,
  144. 'Adamina' => self::GOOGLE,
  145. 'Advent Pro' => self::GOOGLE,
  146. 'Aguafina Script' => self::GOOGLE,
  147. 'Akronim' => self::GOOGLE,
  148. 'Aladin' => self::GOOGLE,
  149. 'Aldrich' => self::GOOGLE,
  150. 'Alef' => self::GOOGLE,
  151. 'Alef Hebrew' => self::EARLYACCESS, // Hack for Google Early Access.
  152. 'Alegreya' => self::GOOGLE,
  153. 'Alegreya SC' => self::GOOGLE,
  154. 'Alegreya Sans' => self::GOOGLE,
  155. 'Alegreya Sans SC' => self::GOOGLE,
  156. 'Alex Brush' => self::GOOGLE,
  157. 'Alfa Slab One' => self::GOOGLE,
  158. 'Alice' => self::GOOGLE,
  159. 'Alike' => self::GOOGLE,
  160. 'Alike Angular' => self::GOOGLE,
  161. 'Allan' => self::GOOGLE,
  162. 'Allerta' => self::GOOGLE,
  163. 'Allerta Stencil' => self::GOOGLE,
  164. 'Allura' => self::GOOGLE,
  165. 'Almendra' => self::GOOGLE,
  166. 'Almendra Display' => self::GOOGLE,
  167. 'Almendra SC' => self::GOOGLE,
  168. 'Amarante' => self::GOOGLE,
  169. 'Amaranth' => self::GOOGLE,
  170. 'Amatic SC' => self::GOOGLE,
  171. 'Amethysta' => self::GOOGLE,
  172. 'Amiko' => self::GOOGLE,
  173. 'Amiri' => self::GOOGLE,
  174. 'Amita' => self::GOOGLE,
  175. 'Anaheim' => self::GOOGLE,
  176. 'Andada' => self::GOOGLE,
  177. 'Andika' => self::GOOGLE,
  178. 'Angkor' => self::GOOGLE,
  179. 'Annie Use Your Telescope' => self::GOOGLE,
  180. 'Anonymous Pro' => self::GOOGLE,
  181. 'Antic' => self::GOOGLE,
  182. 'Antic Didone' => self::GOOGLE,
  183. 'Antic Slab' => self::GOOGLE,
  184. 'Anton' => self::GOOGLE,
  185. 'Arapey' => self::GOOGLE,
  186. 'Arbutus' => self::GOOGLE,
  187. 'Arbutus Slab' => self::GOOGLE,
  188. 'Architects Daughter' => self::GOOGLE,
  189. 'Archivo' => self::GOOGLE,
  190. 'Archivo Black' => self::GOOGLE,
  191. 'Archivo Narrow' => self::GOOGLE,
  192. 'Aref Ruqaa' => self::GOOGLE,
  193. 'Arima Madurai' => self::GOOGLE,
  194. 'Arimo' => self::GOOGLE,
  195. 'Arizonia' => self::GOOGLE,
  196. 'Armata' => self::GOOGLE,
  197. 'Arsenal' => self::GOOGLE,
  198. 'Artifika' => self::GOOGLE,
  199. 'Arvo' => self::GOOGLE,
  200. 'Arya' => self::GOOGLE,
  201. 'Asap' => self::GOOGLE,
  202. 'Asap Condensed' => self::GOOGLE,
  203. 'Asar' => self::GOOGLE,
  204. 'Asset' => self::GOOGLE,
  205. 'Assistant' => self::GOOGLE,
  206. 'Astloch' => self::GOOGLE,
  207. 'Asul' => self::GOOGLE,
  208. 'Athiti' => self::GOOGLE,
  209. 'Atma' => self::GOOGLE,
  210. 'Atomic Age' => self::GOOGLE,
  211. 'Aubrey' => self::GOOGLE,
  212. 'Audiowide' => self::GOOGLE,
  213. 'Autour One' => self::GOOGLE,
  214. 'Average' => self::GOOGLE,
  215. 'Average Sans' => self::GOOGLE,
  216. 'Averia Gruesa Libre' => self::GOOGLE,
  217. 'Averia Libre' => self::GOOGLE,
  218. 'Averia Sans Libre' => self::GOOGLE,
  219. 'Averia Serif Libre' => self::GOOGLE,
  220. 'Bad Script' => self::GOOGLE,
  221. 'Bahiana' => self::GOOGLE,
  222. 'Baloo' => self::GOOGLE,
  223. 'Baloo Bhai' => self::GOOGLE,
  224. 'Baloo Bhaijaan' => self::GOOGLE,
  225. 'Baloo Bhaina' => self::GOOGLE,
  226. 'Baloo Chettan' => self::GOOGLE,
  227. 'Baloo Da' => self::GOOGLE,
  228. 'Baloo Paaji' => self::GOOGLE,
  229. 'Baloo Tamma' => self::GOOGLE,
  230. 'Baloo Tammudu' => self::GOOGLE,
  231. 'Baloo Thambi' => self::GOOGLE,
  232. 'Balthazar' => self::GOOGLE,
  233. 'Bangers' => self::GOOGLE,
  234. 'Barlow' => self::GOOGLE,
  235. 'Barlow Condensed' => self::GOOGLE,
  236. 'Barlow Semi Condensed' => self::GOOGLE,
  237. 'Barrio' => self::GOOGLE,
  238. 'Basic' => self::GOOGLE,
  239. 'Battambang' => self::GOOGLE,
  240. 'Baumans' => self::GOOGLE,
  241. 'Bayon' => self::GOOGLE,
  242. 'Belgrano' => self::GOOGLE,
  243. 'Bellefair' => self::GOOGLE,
  244. 'Belleza' => self::GOOGLE,
  245. 'BenchNine' => self::GOOGLE,
  246. 'Bentham' => self::GOOGLE,
  247. 'Berkshire Swash' => self::GOOGLE,
  248. 'Bevan' => self::GOOGLE,
  249. 'Bigelow Rules' => self::GOOGLE,
  250. 'Bigshot One' => self::GOOGLE,
  251. 'Bilbo' => self::GOOGLE,
  252. 'Bilbo Swash Caps' => self::GOOGLE,
  253. 'BioRhyme' => self::GOOGLE,
  254. 'BioRhyme Expanded' => self::GOOGLE,
  255. 'Biryani' => self::GOOGLE,
  256. 'Bitter' => self::GOOGLE,
  257. 'Black And White Picture' => self::GOOGLE,
  258. 'Black Han Sans' => self::GOOGLE,
  259. 'Black Ops One' => self::GOOGLE,
  260. 'Bokor' => self::GOOGLE,
  261. 'Bonbon' => self::GOOGLE,
  262. 'Boogaloo' => self::GOOGLE,
  263. 'Bowlby One' => self::GOOGLE,
  264. 'Bowlby One SC' => self::GOOGLE,
  265. 'Brawler' => self::GOOGLE,
  266. 'Bree Serif' => self::GOOGLE,
  267. 'Bubblegum Sans' => self::GOOGLE,
  268. 'Bubbler One' => self::GOOGLE,
  269. 'Buda' => self::GOOGLE,
  270. 'Buenard' => self::GOOGLE,
  271. 'Bungee' => self::GOOGLE,
  272. 'Bungee Hairline' => self::GOOGLE,
  273. 'Bungee Inline' => self::GOOGLE,
  274. 'Bungee Outline' => self::GOOGLE,
  275. 'Bungee Shade' => self::GOOGLE,
  276. 'Butcherman' => self::GOOGLE,
  277. 'Butterfly Kids' => self::GOOGLE,
  278. 'Cabin' => self::GOOGLE,
  279. 'Cabin Condensed' => self::GOOGLE,
  280. 'Cabin Sketch' => self::GOOGLE,
  281. 'Caesar Dressing' => self::GOOGLE,
  282. 'Cagliostro' => self::GOOGLE,
  283. 'Cairo' => self::GOOGLE,
  284. 'Calligraffitti' => self::GOOGLE,
  285. 'Cambay' => self::GOOGLE,
  286. 'Cambo' => self::GOOGLE,
  287. 'Candal' => self::GOOGLE,
  288. 'Cantarell' => self::GOOGLE,
  289. 'Cantata One' => self::GOOGLE,
  290. 'Cantora One' => self::GOOGLE,
  291. 'Capriola' => self::GOOGLE,
  292. 'Cardo' => self::GOOGLE,
  293. 'Carme' => self::GOOGLE,
  294. 'Carrois Gothic' => self::GOOGLE,
  295. 'Carrois Gothic SC' => self::GOOGLE,
  296. 'Carter One' => self::GOOGLE,
  297. 'Catamaran' => self::GOOGLE,
  298. 'Caudex' => self::GOOGLE,
  299. 'Caveat' => self::GOOGLE,
  300. 'Caveat Brush' => self::GOOGLE,
  301. 'Cedarville Cursive' => self::GOOGLE,
  302. 'Ceviche One' => self::GOOGLE,
  303. 'Changa' => self::GOOGLE,
  304. 'Changa One' => self::GOOGLE,
  305. 'Chango' => self::GOOGLE,
  306. 'Chathura' => self::GOOGLE,
  307. 'Chau Philomene One' => self::GOOGLE,
  308. 'Chela One' => self::GOOGLE,
  309. 'Chelsea Market' => self::GOOGLE,
  310. 'Chenla' => self::GOOGLE,
  311. 'Cherry Cream Soda' => self::GOOGLE,
  312. 'Cherry Swash' => self::GOOGLE,
  313. 'Chewy' => self::GOOGLE,
  314. 'Chicle' => self::GOOGLE,
  315. 'Chivo' => self::GOOGLE,
  316. 'Chonburi' => self::GOOGLE,
  317. 'Cinzel' => self::GOOGLE,
  318. 'Cinzel Decorative' => self::GOOGLE,
  319. 'Clicker Script' => self::GOOGLE,
  320. 'Coda' => self::GOOGLE,
  321. 'Coda Caption' => self::GOOGLE,
  322. 'Codystar' => self::GOOGLE,
  323. 'Coiny' => self::GOOGLE,
  324. 'Combo' => self::GOOGLE,
  325. 'Comfortaa' => self::GOOGLE,
  326. 'Coming Soon' => self::GOOGLE,
  327. 'Concert One' => self::GOOGLE,
  328. 'Condiment' => self::GOOGLE,
  329. 'Content' => self::GOOGLE,
  330. 'Contrail One' => self::GOOGLE,
  331. 'Convergence' => self::GOOGLE,
  332. 'Cookie' => self::GOOGLE,
  333. 'Copse' => self::GOOGLE,
  334. 'Corben' => self::GOOGLE,
  335. 'Cormorant' => self::GOOGLE,
  336. 'Cormorant Garamond' => self::GOOGLE,
  337. 'Cormorant Infant' => self::GOOGLE,
  338. 'Cormorant SC' => self::GOOGLE,
  339. 'Cormorant Unicase' => self::GOOGLE,
  340. 'Cormorant Upright' => self::GOOGLE,
  341. 'Courgette' => self::GOOGLE,
  342. 'Cousine' => self::GOOGLE,
  343. 'Coustard' => self::GOOGLE,
  344. 'Covered By Your Grace' => self::GOOGLE,
  345. 'Crafty Girls' => self::GOOGLE,
  346. 'Creepster' => self::GOOGLE,
  347. 'Crete Round' => self::GOOGLE,
  348. 'Crimson Text' => self::GOOGLE,
  349. 'Croissant One' => self::GOOGLE,
  350. 'Crushed' => self::GOOGLE,
  351. 'Cuprum' => self::GOOGLE,
  352. 'Cute Font' => self::GOOGLE,
  353. 'Cutive' => self::GOOGLE,
  354. 'Cutive Mono' => self::GOOGLE,
  355. 'Damion' => self::GOOGLE,
  356. 'Dancing Script' => self::GOOGLE,
  357. 'Dangrek' => self::GOOGLE,
  358. 'David Libre' => self::GOOGLE,
  359. 'Dawning of a New Day' => self::GOOGLE,
  360. 'Days One' => self::GOOGLE,
  361. 'Dekko' => self::GOOGLE,
  362. 'Delius' => self::GOOGLE,
  363. 'Delius Swash Caps' => self::GOOGLE,
  364. 'Delius Unicase' => self::GOOGLE,
  365. 'Della Respira' => self::GOOGLE,
  366. 'Denk One' => self::GOOGLE,
  367. 'Devonshire' => self::GOOGLE,
  368. 'Dhurjati' => self::GOOGLE,
  369. 'Didact Gothic' => self::GOOGLE,
  370. 'Diplomata' => self::GOOGLE,
  371. 'Diplomata SC' => self::GOOGLE,
  372. 'Do Hyeon' => self::GOOGLE,
  373. 'Dokdo' => self::GOOGLE,
  374. 'Domine' => self::GOOGLE,
  375. 'Donegal One' => self::GOOGLE,
  376. 'Doppio One' => self::GOOGLE,
  377. 'Dorsa' => self::GOOGLE,
  378. 'Dosis' => self::GOOGLE,
  379. 'Dr Sugiyama' => self::GOOGLE,
  380. 'Droid Arabic Kufi' => self::EARLYACCESS, // Hack for Google Early Access.
  381. 'Droid Arabic Naskh' => self::EARLYACCESS, // Hack for Google Early Access.
  382. 'Duru Sans' => self::GOOGLE,
  383. 'Dynalight' => self::GOOGLE,
  384. 'EB Garamond' => self::GOOGLE,
  385. 'Eagle Lake' => self::GOOGLE,
  386. 'East Sea Dokdo' => self::GOOGLE,
  387. 'Eater' => self::GOOGLE,
  388. 'Economica' => self::GOOGLE,
  389. 'Eczar' => self::GOOGLE,
  390. 'El Messiri' => self::GOOGLE,
  391. 'Electrolize' => self::GOOGLE,
  392. 'Elsie' => self::GOOGLE,
  393. 'Elsie Swash Caps' => self::GOOGLE,
  394. 'Emblema One' => self::GOOGLE,
  395. 'Emilys Candy' => self::GOOGLE,
  396. 'Encode Sans' => self::GOOGLE,
  397. 'Encode Sans Condensed' => self::GOOGLE,
  398. 'Encode Sans Expanded' => self::GOOGLE,
  399. 'Encode Sans Semi Condensed' => self::GOOGLE,
  400. 'Encode Sans Semi Expanded' => self::GOOGLE,
  401. 'Engagement' => self::GOOGLE,
  402. 'Englebert' => self::GOOGLE,
  403. 'Enriqueta' => self::GOOGLE,
  404. 'Erica One' => self::GOOGLE,
  405. 'Esteban' => self::GOOGLE,
  406. 'Euphoria Script' => self::GOOGLE,
  407. 'Ewert' => self::GOOGLE,
  408. 'Exo' => self::GOOGLE,
  409. 'Exo 2' => self::GOOGLE,
  410. 'Expletus Sans' => self::GOOGLE,
  411. 'Fanwood Text' => self::GOOGLE,
  412. 'Farsan' => self::GOOGLE,
  413. 'Fascinate' => self::GOOGLE,
  414. 'Fascinate Inline' => self::GOOGLE,
  415. 'Faster One' => self::GOOGLE,
  416. 'Fasthand' => self::GOOGLE,
  417. 'Fauna One' => self::GOOGLE,
  418. 'Faustina' => self::GOOGLE,
  419. 'Federant' => self::GOOGLE,
  420. 'Federo' => self::GOOGLE,
  421. 'Felipa' => self::GOOGLE,
  422. 'Fenix' => self::GOOGLE,
  423. 'Finger Paint' => self::GOOGLE,
  424. 'Fira Mono' => self::GOOGLE,
  425. 'Fira Sans' => self::GOOGLE,
  426. 'Fira Sans Condensed' => self::GOOGLE,
  427. 'Fira Sans Extra Condensed' => self::GOOGLE,
  428. 'Fjalla One' => self::GOOGLE,
  429. 'Fjord One' => self::GOOGLE,
  430. 'Flamenco' => self::GOOGLE,
  431. 'Flavors' => self::GOOGLE,
  432. 'Fondamento' => self::GOOGLE,
  433. 'Fontdiner Swanky' => self::GOOGLE,
  434. 'Forum' => self::GOOGLE,
  435. 'Francois One' => self::GOOGLE,
  436. 'Frank Ruhl Libre' => self::GOOGLE,
  437. 'Freckle Face' => self::GOOGLE,
  438. 'Fredericka the Great' => self::GOOGLE,
  439. 'Fredoka One' => self::GOOGLE,
  440. 'Freehand' => self::GOOGLE,
  441. 'Fresca' => self::GOOGLE,
  442. 'Frijole' => self::GOOGLE,
  443. 'Fruktur' => self::GOOGLE,
  444. 'Fugaz One' => self::GOOGLE,
  445. 'GFS Didot' => self::GOOGLE,
  446. 'GFS Neohellenic' => self::GOOGLE,
  447. 'Gabriela' => self::GOOGLE,
  448. 'Gaegu' => self::GOOGLE,
  449. 'Gafata' => self::GOOGLE,
  450. 'Galada' => self::GOOGLE,
  451. 'Galdeano' => self::GOOGLE,
  452. 'Galindo' => self::GOOGLE,
  453. 'Gamja Flower' => self::GOOGLE,
  454. 'Gentium Basic' => self::GOOGLE,
  455. 'Gentium Book Basic' => self::GOOGLE,
  456. 'Geo' => self::GOOGLE,
  457. 'Geostar' => self::GOOGLE,
  458. 'Geostar Fill' => self::GOOGLE,
  459. 'Germania One' => self::GOOGLE,
  460. 'Gidugu' => self::GOOGLE,
  461. 'Gilda Display' => self::GOOGLE,
  462. 'Give You Glory' => self::GOOGLE,
  463. 'Glass Antiqua' => self::GOOGLE,
  464. 'Glegoo' => self::GOOGLE,
  465. 'Gloria Hallelujah' => self::GOOGLE,
  466. 'Goblin One' => self::GOOGLE,
  467. 'Gochi Hand' => self::GOOGLE,
  468. 'Gorditas' => self::GOOGLE,
  469. 'Gothic A1' => self::GOOGLE,
  470. 'Goudy Bookletter 1911' => self::GOOGLE,
  471. 'Graduate' => self::GOOGLE,
  472. 'Grand Hotel' => self::GOOGLE,
  473. 'Gravitas One' => self::GOOGLE,
  474. 'Great Vibes' => self::GOOGLE,
  475. 'Griffy' => self::GOOGLE,
  476. 'Gruppo' => self::GOOGLE,
  477. 'Gudea' => self::GOOGLE,
  478. 'Gugi' => self::GOOGLE,
  479. 'Gurajada' => self::GOOGLE,
  480. 'Habibi' => self::GOOGLE,
  481. 'Halant' => self::GOOGLE,
  482. 'Hammersmith One' => self::GOOGLE,
  483. 'Hanalei' => self::GOOGLE,
  484. 'Hanalei Fill' => self::GOOGLE,
  485. 'Handlee' => self::GOOGLE,
  486. 'Hanuman' => self::GOOGLE,
  487. 'Happy Monkey' => self::GOOGLE,
  488. 'Harmattan' => self::GOOGLE,
  489. 'Headland One' => self::GOOGLE,
  490. 'Heebo' => self::GOOGLE,
  491. 'Henny Penny' => self::GOOGLE,
  492. 'Herr Von Muellerhoff' => self::GOOGLE,
  493. 'Hi Melody' => self::GOOGLE,
  494. 'Hind' => self::GOOGLE,
  495. 'Hind Guntur' => self::GOOGLE,
  496. 'Hind Madurai' => self::GOOGLE,
  497. 'Hind Siliguri' => self::GOOGLE,
  498. 'Hind Vadodara' => self::GOOGLE,
  499. 'Holtwood One SC' => self::GOOGLE,
  500. 'Homemade Apple' => self::GOOGLE,
  501. 'Homenaje' => self::GOOGLE,
  502. 'IBM Plex Mono' => self::GOOGLE,
  503. 'IBM Plex Sans' => self::GOOGLE,
  504. 'IBM Plex Sans Condensed' => self::GOOGLE,
  505. 'IBM Plex Serif' => self::GOOGLE,
  506. 'IM Fell DW Pica' => self::GOOGLE,
  507. 'IM Fell DW Pica SC' => self::GOOGLE,
  508. 'IM Fell Double Pica' => self::GOOGLE,
  509. 'IM Fell Double Pica SC' => self::GOOGLE,
  510. 'IM Fell English' => self::GOOGLE,
  511. 'IM Fell English SC' => self::GOOGLE,
  512. 'IM Fell French Canon' => self::GOOGLE,
  513. 'IM Fell French Canon SC' => self::GOOGLE,
  514. 'IM Fell Great Primer' => self::GOOGLE,
  515. 'IM Fell Great Primer SC' => self::GOOGLE,
  516. 'Iceberg' => self::GOOGLE,
  517. 'Iceland' => self::GOOGLE,
  518. 'Imprima' => self::GOOGLE,
  519. 'Inconsolata' => self::GOOGLE,
  520. 'Inder' => self::GOOGLE,
  521. 'Indie Flower' => self::GOOGLE,
  522. 'Inika' => self::GOOGLE,
  523. 'Inknut Antiqua' => self::GOOGLE,
  524. 'Irish Grover' => self::GOOGLE,
  525. 'Istok Web' => self::GOOGLE,
  526. 'Italiana' => self::GOOGLE,
  527. 'Italianno' => self::GOOGLE,
  528. 'Itim' => self::GOOGLE,
  529. 'Jacques Francois' => self::GOOGLE,
  530. 'Jacques Francois Shadow' => self::GOOGLE,
  531. 'Jaldi' => self::GOOGLE,
  532. 'Jim Nightshade' => self::GOOGLE,
  533. 'Jockey One' => self::GOOGLE,
  534. 'Jolly Lodger' => self::GOOGLE,
  535. 'Jomhuria' => self::GOOGLE,
  536. 'Josefin Sans' => self::GOOGLE,
  537. 'Josefin Slab' => self::GOOGLE,
  538. 'Joti One' => self::GOOGLE,
  539. 'Jua' => self::GOOGLE,
  540. 'Judson' => self::GOOGLE,
  541. 'Julee' => self::GOOGLE,
  542. 'Julius Sans One' => self::GOOGLE,
  543. 'Junge' => self::GOOGLE,
  544. 'Jura' => self::GOOGLE,
  545. 'Just Another Hand' => self::GOOGLE,
  546. 'Just Me Again Down Here' => self::GOOGLE,
  547. 'Kadwa' => self::GOOGLE,
  548. 'Kalam' => self::GOOGLE,
  549. 'Kameron' => self::GOOGLE,
  550. 'Kanit' => self::GOOGLE,
  551. 'Kantumruy' => self::GOOGLE,
  552. 'Karla' => self::GOOGLE,
  553. 'Karma' => self::GOOGLE,
  554. 'Katibeh' => self::GOOGLE,
  555. 'Kaushan Script' => self::GOOGLE,
  556. 'Kavivanar' => self::GOOGLE,
  557. 'Kavoon' => self::GOOGLE,
  558. 'Kdam Thmor' => self::GOOGLE,
  559. 'Keania One' => self::GOOGLE,
  560. 'Kelly Slab' => self::GOOGLE,
  561. 'Kenia' => self::GOOGLE,
  562. 'Khand' => self::GOOGLE,
  563. 'Khmer' => self::GOOGLE,
  564. 'Khula' => self::GOOGLE,
  565. 'Kirang Haerang' => self::GOOGLE,
  566. 'Kite One' => self::GOOGLE,
  567. 'Knewave' => self::GOOGLE,
  568. 'Kotta One' => self::GOOGLE,
  569. 'Koulen' => self::GOOGLE,
  570. 'Kranky' => self::GOOGLE,
  571. 'Kreon' => self::GOOGLE,
  572. 'Kristi' => self::GOOGLE,
  573. 'Krona One' => self::GOOGLE,
  574. 'Kumar One' => self::GOOGLE,
  575. 'Kumar One Outline' => self::GOOGLE,
  576. 'Kurale' => self::GOOGLE,
  577. 'La Belle Aurore' => self::GOOGLE,
  578. 'Laila' => self::GOOGLE,
  579. 'Lakki Reddy' => self::GOOGLE,
  580. 'Lalezar' => self::GOOGLE,
  581. 'Lancelot' => self::GOOGLE,
  582. 'Lateef' => self::GOOGLE,
  583. 'Lato' => self::GOOGLE,
  584. 'League Script' => self::GOOGLE,
  585. 'Leckerli One' => self::GOOGLE,
  586. 'Ledger' => self::GOOGLE,
  587. 'Lekton' => self::GOOGLE,
  588. 'Lemon' => self::GOOGLE,
  589. 'Lemonada' => self::GOOGLE,
  590. 'Libre Barcode 128' => self::GOOGLE,
  591. 'Libre Barcode 128 Text' => self::GOOGLE,
  592. 'Libre Barcode 39' => self::GOOGLE,
  593. 'Libre Barcode 39 Extended' => self::GOOGLE,
  594. 'Libre Barcode 39 Extended Text' => self::GOOGLE,
  595. 'Libre Barcode 39 Text' => self::GOOGLE,
  596. 'Libre Baskerville' => self::GOOGLE,
  597. 'Libre Franklin' => self::GOOGLE,
  598. 'Life Savers' => self::GOOGLE,
  599. 'Lilita One' => self::GOOGLE,
  600. 'Lily Script One' => self::GOOGLE,
  601. 'Limelight' => self::GOOGLE,
  602. 'Linden Hill' => self::GOOGLE,
  603. 'Lobster' => self::GOOGLE,
  604. 'Lobster Two' => self::GOOGLE,
  605. 'Londrina Outline' => self::GOOGLE,
  606. 'Londrina Shadow' => self::GOOGLE,
  607. 'Londrina Sketch' => self::GOOGLE,
  608. 'Londrina Solid' => self::GOOGLE,
  609. 'Lora' => self::GOOGLE,
  610. 'Love Ya Like A Sister' => self::GOOGLE,
  611. 'Loved by the King' => self::GOOGLE,
  612. 'Lovers Quarrel' => self::GOOGLE,
  613. 'Luckiest Guy' => self::GOOGLE,
  614. 'Lusitana' => self::GOOGLE,
  615. 'Lustria' => self::GOOGLE,
  616. 'Macondo' => self::GOOGLE,
  617. 'Macondo Swash Caps' => self::GOOGLE,
  618. 'Mada' => self::GOOGLE,
  619. 'Magra' => self::GOOGLE,
  620. 'Maiden Orange' => self::GOOGLE,
  621. 'Maitree' => self::GOOGLE,
  622. 'Mako' => self::GOOGLE,
  623. 'Mallanna' => self::GOOGLE,
  624. 'Mandali' => self::GOOGLE,
  625. 'Manuale' => self::GOOGLE,
  626. 'Marcellus' => self::GOOGLE,
  627. 'Marcellus SC' => self::GOOGLE,
  628. 'Marck Script' => self::GOOGLE,
  629. 'Margarine' => self::GOOGLE,
  630. 'Marko One' => self::GOOGLE,
  631. 'Marmelad' => self::GOOGLE,
  632. 'Martel' => self::GOOGLE,
  633. 'Martel Sans' => self::GOOGLE,
  634. 'Marvel' => self::GOOGLE,
  635. 'Mate' => self::GOOGLE,
  636. 'Mate SC' => self::GOOGLE,
  637. 'Maven Pro' => self::GOOGLE,
  638. 'McLaren' => self::GOOGLE,
  639. 'Meddon' => self::GOOGLE,
  640. 'MedievalSharp' => self::GOOGLE,
  641. 'Medula One' => self::GOOGLE,
  642. 'Meera Inimai' => self::GOOGLE,
  643. 'Megrim' => self::GOOGLE,
  644. 'Meie Script' => self::GOOGLE,
  645. 'Merienda' => self::GOOGLE,
  646. 'Merienda One' => self::GOOGLE,
  647. 'Merriweather' => self::GOOGLE,
  648. 'Merriweather Sans' => self::GOOGLE,
  649. 'Metal' => self::GOOGLE,
  650. 'Metal Mania' => self::GOOGLE,
  651. 'Metamorphous' => self::GOOGLE,
  652. 'Metrophobic' => self::GOOGLE,
  653. 'Michroma' => self::GOOGLE,
  654. 'Milonga' => self::GOOGLE,
  655. 'Miltonian' => self::GOOGLE,
  656. 'Miltonian Tattoo' => self::GOOGLE,
  657. 'Mina' => self::GOOGLE,
  658. 'Miniver' => self::GOOGLE,
  659. 'Miriam Libre' => self::GOOGLE,
  660. 'Mirza' => self::GOOGLE,
  661. 'Miss Fajardose' => self::GOOGLE,
  662. 'Mitr' => self::GOOGLE,
  663. 'Modak' => self::GOOGLE,
  664. 'Modern Antiqua' => self::GOOGLE,
  665. 'Mogra' => self::GOOGLE,
  666. 'Molengo' => self::GOOGLE,
  667. 'Molle' => self::GOOGLE,
  668. 'Monda' => self::GOOGLE,
  669. 'Monofett' => self::GOOGLE,
  670. 'Monoton' => self::GOOGLE,
  671. 'Monsieur La Doulaise' => self::GOOGLE,
  672. 'Montaga' => self::GOOGLE,
  673. 'Montez' => self::GOOGLE,
  674. 'Montserrat' => self::GOOGLE,
  675. 'Montserrat Alternates' => self::GOOGLE,
  676. 'Montserrat Subrayada' => self::GOOGLE,
  677. 'Moul' => self::GOOGLE,
  678. 'Moulpali' => self::GOOGLE,
  679. 'Mountains of Christmas' => self::GOOGLE,
  680. 'Mouse Memoirs' => self::GOOGLE,
  681. 'Mr Bedfort' => self::GOOGLE,
  682. 'Mr Dafoe' => self::GOOGLE,
  683. 'Mr De Haviland' => self::GOOGLE,
  684. 'Mrs Saint Delafield' => self::GOOGLE,
  685. 'Mrs Sheppards' => self::GOOGLE,
  686. 'Mukta' => self::GOOGLE,
  687. 'Mukta Mahee' => self::GOOGLE,
  688. 'Mukta Malar' => self::GOOGLE,
  689. 'Mukta Vaani' => self::GOOGLE,
  690. 'Muli' => self::GOOGLE,
  691. 'Mystery Quest' => self::GOOGLE,
  692. 'NTR' => self::GOOGLE,
  693. 'Nanum Brush Script' => self::GOOGLE,
  694. 'Nanum Gothic' => self::GOOGLE,
  695. 'Nanum Gothic Coding' => self::GOOGLE,
  696. 'Nanum Myeongjo' => self::GOOGLE,
  697. 'Nanum Pen Script' => self::GOOGLE,
  698. 'Neucha' => self::GOOGLE,
  699. 'Neuton' => self::GOOGLE,
  700. 'New Rocker' => self::GOOGLE,
  701. 'News Cycle' => self::GOOGLE,
  702. 'Niconne' => self::GOOGLE,
  703. 'Nixie One' => self::GOOGLE,
  704. 'Nobile' => self::GOOGLE,
  705. 'Nokora' => self::GOOGLE,
  706. 'Norican' => self::GOOGLE,
  707. 'Nosifer' => self::GOOGLE,
  708. 'Nothing You Could Do' => self::GOOGLE,
  709. 'Noticia Text' => self::GOOGLE,
  710. 'Noto Kufi Arabic' => self::EARLYACCESS, // Hack for Google Early Access.
  711. 'Noto Naskh Arabic' => self::EARLYACCESS, // Hack for Google Early Access.
  712. 'Noto Sans' => self::GOOGLE,
  713. 'Noto Sans Hebrew' => self::EARLYACCESS, // Hack for Google Early Access.
  714. 'Noto Serif' => self::GOOGLE,
  715. 'Nova Cut' => self::GOOGLE,
  716. 'Nova Flat' => self::GOOGLE,
  717. 'Nova Mono' => self::GOOGLE,
  718. 'Nova Oval' => self::GOOGLE,
  719. 'Nova Round' => self::GOOGLE,
  720. 'Nova Script' => self::GOOGLE,
  721. 'Nova Slim' => self::GOOGLE,
  722. 'Nova Square' => self::GOOGLE,
  723. 'Numans' => self::GOOGLE,
  724. 'Nunito' => self::GOOGLE,
  725. 'Nunito Sans' => self::GOOGLE,
  726. 'Odor Mean Chey' => self::GOOGLE,
  727. 'Offside' => self::GOOGLE,
  728. 'Old Standard TT' => self::GOOGLE,
  729. 'Oldenburg' => self::GOOGLE,
  730. 'Oleo Script' => self::GOOGLE,
  731. 'Oleo Script Swash Caps' => self::GOOGLE,
  732. 'Open Sans' => self::GOOGLE,
  733. 'Open Sans Condensed' => self::GOOGLE,
  734. 'Open Sans Hebrew' => self::EARLYACCESS, // Hack for Google Early Access.
  735. 'Open Sans Hebrew Condensed' => self::EARLYACCESS, // Hack for Google Early Access.
  736. 'Oranienbaum' => self::GOOGLE,
  737. 'Orbitron' => self::GOOGLE,
  738. 'Oregano' => self::GOOGLE,
  739. 'Orienta' => self::GOOGLE,
  740. 'Original Surfer' => self::GOOGLE,
  741. 'Oswald' => self::GOOGLE,
  742. 'Over the Rainbow' => self::GOOGLE,
  743. 'Overlock' => self::GOOGLE,
  744. 'Overlock SC' => self::GOOGLE,
  745. 'Overpass' => self::GOOGLE,
  746. 'Overpass Mono' => self::GOOGLE,
  747. 'Ovo' => self::GOOGLE,
  748. 'Oxygen' => self::GOOGLE,
  749. 'Oxygen Mono' => self::GOOGLE,
  750. 'PT Mono' => self::GOOGLE,
  751. 'PT Sans' => self::GOOGLE,
  752. 'PT Sans Caption' => self::GOOGLE,
  753. 'PT Sans Narrow' => self::GOOGLE,
  754. 'PT Serif' => self::GOOGLE,
  755. 'PT Serif Caption' => self::GOOGLE,
  756. 'Pacifico' => self::GOOGLE,
  757. 'Padauk' => self::GOOGLE,
  758. 'Palanquin' => self::GOOGLE,
  759. 'Palanquin Dark' => self::GOOGLE,
  760. 'Pangolin' => self::GOOGLE,
  761. 'Paprika' => self::GOOGLE,
  762. 'Parisienne' => self::GOOGLE,
  763. 'Passero One' => self::GOOGLE,
  764. 'Passion One' => self::GOOGLE,
  765. 'Pathway Gothic One' => self::GOOGLE,
  766. 'Patrick Hand' => self::GOOGLE,
  767. 'Patrick Hand SC' => self::GOOGLE,
  768. 'Pattaya' => self::GOOGLE,
  769. 'Patua One' => self::GOOGLE,
  770. 'Pavanam' => self::GOOGLE,
  771. 'Paytone One' => self::GOOGLE,
  772. 'Peddana' => self::GOOGLE,
  773. 'Peralta' => self::GOOGLE,
  774. 'Permanent Marker' => self::GOOGLE,
  775. 'Petit Formal Script' => self::GOOGLE,
  776. 'Petrona' => self::GOOGLE,
  777. 'Philosopher' => self::GOOGLE,
  778. 'Piedra' => self::GOOGLE,
  779. 'Pinyon Script' => self::GOOGLE,
  780. 'Pirata One' => self::GOOGLE,
  781. 'Plaster' => self::GOOGLE,
  782. 'Play' => self::GOOGLE,
  783. 'Playball' => self::GOOGLE,
  784. 'Playfair Display' => self::GOOGLE,
  785. 'Playfair Display SC' => self::GOOGLE,
  786. 'Podkova' => self::GOOGLE,
  787. 'Poiret One' => self::GOOGLE,
  788. 'Poller One' => self::GOOGLE,
  789. 'Poly' => self::GOOGLE,
  790. 'Pompiere' => self::GOOGLE,
  791. 'Pontano Sans' => self::GOOGLE,
  792. 'Poor Story' => self::GOOGLE,
  793. 'Poppins' => self::GOOGLE,
  794. 'Port Lligat Sans' => self::GOOGLE,
  795. 'Port Lligat Slab' => self::GOOGLE,
  796. 'Pragati Narrow' => self::GOOGLE,
  797. 'Prata' => self::GOOGLE,
  798. 'Preahvihear' => self::GOOGLE,
  799. 'Press Start 2P' => self::GOOGLE,
  800. 'Pridi' => self::GOOGLE,
  801. 'Princess Sofia' => self::GOOGLE,
  802. 'Prociono' => self::GOOGLE,
  803. 'Prompt' => self::GOOGLE,
  804. 'Prosto One' => self::GOOGLE,
  805. 'Proza Libre' => self::GOOGLE,
  806. 'Puritan' => self::GOOGLE,
  807. 'Purple Purse' => self::GOOGLE,
  808. 'Quando' => self::GOOGLE,
  809. 'Quantico' => self::GOOGLE,
  810. 'Quattrocento' => self::GOOGLE,
  811. 'Quattrocento Sans' => self::GOOGLE,
  812. 'Questrial' => self::GOOGLE,
  813. 'Quicksand' => self::GOOGLE,
  814. 'Quintessential' => self::GOOGLE,
  815. 'Qwigley' => self::GOOGLE,
  816. 'Racing Sans One' => self::GOOGLE,
  817. 'Radley' => self::GOOGLE,
  818. 'Rajdhani' => self::GOOGLE,
  819. 'Rakkas' => self::GOOGLE,
  820. 'Raleway' => self::GOOGLE,
  821. 'Raleway Dots' => self::GOOGLE,
  822. 'Ramabhadra' => self::GOOGLE,
  823. 'Ramaraja' => self::GOOGLE,
  824. 'Rambla' => self::GOOGLE,
  825. 'Rammetto One' => self::GOOGLE,
  826. 'Ranchers' => self::GOOGLE,
  827. 'Rancho' => self::GOOGLE,
  828. 'Ranga' => self::GOOGLE,
  829. 'Rasa' => self::GOOGLE,
  830. 'Rationale' => self::GOOGLE,
  831. 'Ravi Prakash' => self::GOOGLE,
  832. 'Redressed' => self::GOOGLE,
  833. 'Reem Kufi' => self::GOOGLE,
  834. 'Reenie Beanie' => self::GOOGLE,
  835. 'Revalia' => self::GOOGLE,
  836. 'Rhodium Libre' => self::GOOGLE,
  837. 'Ribeye' => self::GOOGLE,
  838. 'Ribeye Marrow' => self::GOOGLE,
  839. 'Righteous' => self::GOOGLE,
  840. 'Risque' => self::GOOGLE,
  841. 'Roboto' => self::GOOGLE,
  842. 'Roboto Condensed' => self::GOOGLE,
  843. 'Roboto Mono' => self::GOOGLE,
  844. 'Roboto Slab' => self::GOOGLE,
  845. 'Rochester' => self::GOOGLE,
  846. 'Rock Salt' => self::GOOGLE,
  847. 'Rokkitt' => self::GOOGLE,
  848. 'Romanesco' => self::GOOGLE,
  849. 'Ropa Sans' => self::GOOGLE,
  850. 'Rosario' => self::GOOGLE,
  851. 'Rosarivo' => self::GOOGLE,
  852. 'Rouge Script' => self::GOOGLE,
  853. 'Rozha One' => self::GOOGLE,
  854. 'Rubik' => self::GOOGLE,
  855. 'Rubik Mono One' => self::GOOGLE,
  856. 'Ruda' => self::GOOGLE,
  857. 'Rufina' => self::GOOGLE,
  858. 'Ruge Boogie' => self::GOOGLE,
  859. 'Ruluko' => self::GOOGLE,
  860. 'Rum Raisin' => self::GOOGLE,
  861. 'Ruslan Display' => self::GOOGLE,
  862. 'Russo One' => self::GOOGLE,
  863. 'Ruthie' => self::GOOGLE,
  864. 'Rye' => self::GOOGLE,
  865. 'Sacramento' => self::GOOGLE,
  866. 'Sahitya' => self::GOOGLE,
  867. 'Sail' => self::GOOGLE,
  868. 'Saira' => self::GOOGLE,
  869. 'Saira Condensed' => self::GOOGLE,
  870. 'Saira Extra Condensed' => self::GOOGLE,
  871. 'Saira Semi Condensed' => self::GOOGLE,
  872. 'Salsa' => self::GOOGLE,
  873. 'Sanchez' => self::GOOGLE,
  874. 'Sancreek' => self::GOOGLE,
  875. 'Sansita' => self::GOOGLE,
  876. 'Sarala' => self::GOOGLE,
  877. 'Sarina' => self::GOOGLE,
  878. 'Sarpanch' => self::GOOGLE,
  879. 'Satisfy' => self::GOOGLE,
  880. 'Scada' => self::GOOGLE,
  881. 'Scheherazade' => self::GOOGLE,
  882. 'Schoolbell' => self::GOOGLE,
  883. 'Scope One' => self::GOOGLE,
  884. 'Seaweed Script' => self::GOOGLE,
  885. 'Secular One' => self::GOOGLE,
  886. 'Sedgwick Ave' => self::GOOGLE,
  887. 'Sedgwick Ave Display' => self::GOOGLE,
  888. 'Sevillana' => self::GOOGLE,
  889. 'Seymour One' => self::GOOGLE,
  890. 'Shadows Into Light' => self::GOOGLE,
  891. 'Shadows Into Light Two' => self::GOOGLE,
  892. 'Shanti' => self::GOOGLE,
  893. 'Share' => self::GOOGLE,
  894. 'Share Tech' => self::GOOGLE,
  895. 'Share Tech Mono' => self::GOOGLE,
  896. 'Shojumaru' => self::GOOGLE,
  897. 'Short Stack' => self::GOOGLE,
  898. 'Shrikhand' => self::GOOGLE,
  899. 'Siemreap' => self::GOOGLE,
  900. 'Sigmar One' => self::GOOGLE,
  901. 'Signika' => self::GOOGLE,
  902. 'Signika Negative' => self::GOOGLE,
  903. 'Simonetta' => self::GOOGLE,
  904. 'Sintony' => self::GOOGLE,
  905. 'Sirin Stencil' => self::GOOGLE,
  906. 'Six Caps' => self::GOOGLE,
  907. 'Skranji' => self::GOOGLE,
  908. 'Slabo 13px' => self::GOOGLE,
  909. 'Slabo 27px' => self::GOOGLE,
  910. 'Slackey' => self::GOOGLE,
  911. 'Smokum' => self::GOOGLE,
  912. 'Smythe' => self::GOOGLE,
  913. 'Sniglet' => self::GOOGLE,
  914. 'Snippet' => self::GOOGLE,
  915. 'Snowburst One' => self::GOOGLE,
  916. 'Sofadi One' => self::GOOGLE,
  917. 'Sofia' => self::GOOGLE,
  918. 'Song Myung' => self::GOOGLE,
  919. 'Sonsie One' => self::GOOGLE,
  920. 'Sorts Mill Goudy' => self::GOOGLE,
  921. 'Source Code Pro' => self::GOOGLE,
  922. 'Source Sans Pro' => self::GOOGLE,
  923. 'Source Serif Pro' => self::GOOGLE,
  924. 'Space Mono' => self::GOOGLE,
  925. 'Special Elite' => self::GOOGLE,
  926. 'Spectral' => self::GOOGLE,
  927. 'Spectral SC' => self::GOOGLE,
  928. 'Spicy Rice' => self::GOOGLE,
  929. 'Spinnaker' => self::GOOGLE,
  930. 'Spirax' => self::GOOGLE,
  931. 'Squada One' => self::GOOGLE,
  932. 'Sree Krushnadevaraya' => self::GOOGLE,
  933. 'Sriracha' => self::GOOGLE,
  934. 'Stalemate' => self::GOOGLE,
  935. 'Stalinist One' => self::GOOGLE,
  936. 'Stardos Stencil' => self::GOOGLE,
  937. 'Stint Ultra Condensed' => self::GOOGLE,
  938. 'Stint Ultra Expanded' => self::GOOGLE,
  939. 'Stoke' => self::GOOGLE,
  940. 'Strait' => self::GOOGLE,
  941. 'Stylish' => self::GOOGLE,
  942. 'Sue Ellen Francisco' => self::GOOGLE,
  943. 'Suez One' => self::GOOGLE,
  944. 'Sumana' => self::GOOGLE,
  945. 'Sunflower' => self::GOOGLE,
  946. 'Sunshiney' => self::GOOGLE,
  947. 'Supermercado One' => self::GOOGLE,
  948. 'Sura' => self::GOOGLE,
  949. 'Suranna' => self::GOOGLE,
  950. 'Suravaram' => self::GOOGLE,
  951. 'Suwannaphum' => self::GOOGLE,
  952. 'Swanky and Moo Moo' => self::GOOGLE,
  953. 'Syncopate' => self::GOOGLE,
  954. 'Tajawal' => self::GOOGLE,
  955. 'Tangerine' => self::GOOGLE,
  956. 'Taprom' => self::GOOGLE,
  957. 'Tauri' => self::GOOGLE,
  958. 'Taviraj' => self::GOOGLE,
  959. 'Teko' => self::GOOGLE,
  960. 'Telex' => self::GOOGLE,
  961. 'Tenali Ramakrishna' => self::GOOGLE,
  962. 'Tenor Sans' => self::GOOGLE,
  963. 'Text Me One' => self::GOOGLE,
  964. 'The Girl Next Door' => self::GOOGLE,
  965. 'Tienne' => self::GOOGLE,
  966. 'Tillana' => self::GOOGLE,
  967. 'Timmana' => self::GOOGLE,
  968. 'Tinos' => self::GOOGLE,
  969. 'Titan One' => self::GOOGLE,
  970. 'Titillium Web' => self::GOOGLE,
  971. 'Trade Winds' => self::GOOGLE,
  972. 'Trirong' => self::GOOGLE,
  973. 'Trocchi' => self::GOOGLE,
  974. 'Trochut' => self::GOOGLE,
  975. 'Trykker' => self::GOOGLE,
  976. 'Tulpen One' => self::GOOGLE,
  977. 'Ubuntu' => self::GOOGLE,
  978. 'Ubuntu Condensed' => self::GOOGLE,
  979. 'Ubuntu Mono' => self::GOOGLE,
  980. 'Ultra' => self::GOOGLE,
  981. 'Uncial Antiqua' => self::GOOGLE,
  982. 'Underdog' => self::GOOGLE,
  983. 'Unica One' => self::GOOGLE,
  984. 'UnifrakturCook' => self::GOOGLE,
  985. 'UnifrakturMaguntia' => self::GOOGLE,
  986. 'Unkempt' => self::GOOGLE,
  987. 'Unlock' => self::GOOGLE,
  988. 'Unna' => self::GOOGLE,
  989. 'VT323' => self::GOOGLE,
  990. 'Vampiro One' => self::GOOGLE,
  991. 'Varela' => self::GOOGLE,
  992. 'Varela Round' => self::GOOGLE,
  993. 'Vast Shadow' => self::GOOGLE,
  994. 'Vesper Libre' => self::GOOGLE,
  995. 'Vibur' => self::GOOGLE,
  996. 'Vidaloka' => self::GOOGLE,
  997. 'Viga' => self::GOOGLE,
  998. 'Voces' => self::GOOGLE,
  999. 'Volkhov' => self::GOOGLE,
  1000. 'Vollkorn' => self::GOOGLE,
  1001. 'Vollkorn SC' => self::GOOGLE,
  1002. 'Voltaire' => self::GOOGLE,
  1003. 'Waiting for the Sunrise' => self::GOOGLE,
  1004. 'Wallpoet' => self::GOOGLE,
  1005. 'Walter Turncoat' => self::GOOGLE,
  1006. 'Warnes' => self::GOOGLE,
  1007. 'Wellfleet' => self::GOOGLE,
  1008. 'Wendy One' => self::GOOGLE,
  1009. 'Wire One' => self::GOOGLE,
  1010. 'Work Sans' => self::GOOGLE,
  1011. 'Yanone Kaffeesatz' => self::GOOGLE,
  1012. 'Yantramanav' => self::GOOGLE,
  1013. 'Yatra One' => self::GOOGLE,
  1014. 'Yellowtail' => self::GOOGLE,
  1015. 'Yeon Sung' => self::GOOGLE,
  1016. 'Yeseva One' => self::GOOGLE,
  1017. 'Yesteryear' => self::GOOGLE,
  1018. 'Yrsa' => self::GOOGLE,
  1019. 'Zeyada' => self::GOOGLE,
  1020. 'Zilla Slab' => self::GOOGLE,
  1021. 'Zilla Slab Highlight' => self::GOOGLE,
  1022. ];
  1023. }
  1024. /**
  1025. * Get font type.
  1026. *
  1027. * Retrieve the font type for a given font.
  1028. *
  1029. * @since 1.0.0
  1030. * @access public
  1031. * @static
  1032. *
  1033. * @param string $name Font name.
  1034. *
  1035. * @return string|false Font type, or false if font doesn't exist.
  1036. */
  1037. public static function get_font_type( $name ) {
  1038. $fonts = self::get_fonts();
  1039. if ( empty( $fonts[ $name ] ) ) {
  1040. return false;
  1041. }
  1042. return $fonts[ $name ];
  1043. }
  1044. /**
  1045. * Get fonts by group.
  1046. *
  1047. * Retrieve all the fonts belong to specific group.
  1048. *
  1049. * @since 1.0.0
  1050. * @access public
  1051. * @static
  1052. *
  1053. * @param array $groups Optional. Font group. Default is an empty array.
  1054. *
  1055. * @return array Font type, or false if font doesn't exist.
  1056. */
  1057. public static function get_fonts_by_groups( $groups = [] ) {
  1058. return array_filter( self::get_fonts(), function( $font ) use ( $groups ) {
  1059. return in_array( $font, $groups );
  1060. } );
  1061. }
  1062. }