├── README.md ├── bookmarklet.js └── demos ├── bookmarklet.js ├── index.html ├── refresh-css.js ├── styles.css ├── try-font.css ├── try-font.js └── try-font.list.js /README.md: -------------------------------------------------------------------------------- 1 | Bookmarklet Framework 2 | ===================== 3 | 4 | Created by Oscar Otero 5 | GNU Affero GPL version 3. http://www.gnu.org/licenses/agpl-3.0.html 6 | 7 | Simple javascript framework focused to create bookmarklets easily. You can load css, jquery and other js files. 8 | You only have to write a config file with the options for your bookmarklet. The available options are: 9 | 10 | * jquery: If you want to use jQuery, define the url where load it. 11 | * css: The url to load some css code. If you need load more than one file, use an array. 12 | * js: The url to load some javascript files. If you need load more than one file, use an array. 13 | * ready: The function to be executed when the jQuery and all javascript files are loaded. If you use jQuery, the function has a parameter with the instance of the jQuery object (to prevent conflicts with the jQuery used by the webpage) 14 | 15 | #### Example 16 | 17 | ```javascript 18 | window.bookmarklet.options = { 19 | jquery: 'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js', 20 | css: 'http://mysite.com/bookmarklet/styles.css', 21 | js: 'http://mysite.com/bookmarklet/javascript.js', 22 | 23 | ready: function ($bookmarklet_jquery_instance) { 24 | //Javascript code executed when jquery and js files are loaded. 25 | } 26 | } 27 | ``` 28 | 29 | #### Loading the options in an external file 30 | 31 | This method is useful if you have several bookmarklets and prefer keep the bookmarklet framework in an individual file. 32 | 33 | You have to create a javascript file with the options, for example, this bookmarklet removes all images of the current page: 34 | 35 | ```javascript 36 | window.bookmarklet.options = { 37 | jquery: 'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js', 38 | 39 | ready: function ($) { 40 | $('img').remove(); 41 | } 42 | } 43 | ``` 44 | 45 | To execute this bookmarklet, you have to load the framework and execute the function lauch passing the url of the options file: 46 | 47 | ```javascript 48 | window.bookmarklet.launch('http://mysite.com/bookmarklet-options.js'); 49 | ``` 50 | 51 | To convert this code in a real bookmarklet you need some extra code (obviously, this code can be shorter and minified): 52 | 53 | ```javascript 54 | var launchBookmarklet = function () { 55 | var b = 'http://mysite.com/bookmarklet.js'; 56 | var f = 'http://mysite.com/bookmarklet-options.js'; 57 | 58 | if (window.bookmarklet == undefined || window.bookmarklet.launch == undefined) { 59 | var s = document.createElement('script'); 60 | s.type = 'text/javascript'; 61 | s.src = b; 62 | 63 | if (!document.attachEvent) { 64 | s.onload = function () { 65 | window.bookmarklet.launch(f); 66 | } 67 | } else { 68 | s.onreadystatechange = function () { 69 | if (s.readyState == 'complete' || s.readyState == 'loaded') { 70 | window.bookmarklet.launch(f); 71 | s.onreadystatechange = null; 72 | } 73 | } 74 | } 75 | 76 | document.body.appendChild(s); 77 | } else { 78 | window.bookmarklet.launch(f); 79 | } 80 | }; 81 | ``` 82 | ```html 83 | Remove all images 84 | ``` 85 | 86 | #### Loading all code in an unique file 87 | 88 | You can include the options in the same file than the bookmarklet to reduce http requests. Append the following code in bookmarklet.js: 89 | 90 | ```javascript 91 | var executeMyBookmarklet = function () { 92 | window.bookmarklet.execute({ 93 | jquery: 'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js', 94 | 95 | ready: function ($) { 96 | $('img').remove(); 97 | } 98 | }); 99 | } 100 | ``` 101 | 102 | And now you have to create the bookmarklet code: 103 | 104 | ```javascript 105 | var launchBookmarklet = function () { 106 | var b = 'http://mysite.com/bookmarklet.js'; 107 | 108 | if (window.bookmarklet == undefined || window.bookmarklet.executeMyBookmarklet == undefined) { 109 | var s = document.createElement('script'); 110 | s.type = 'text/javascript'; 111 | s.src = b; 112 | 113 | if (!document.attachEvent) { 114 | s.onload = function () { 115 | window.bookmarklet.executeMyBookmarklet(); 116 | } 117 | } else { 118 | s.onreadystatechange = function () { 119 | if (s.readyState == 'complete' || s.readyState == 'loaded') { 120 | window.bookmarklet.executeMyBookmarklet(); 121 | s.onreadystatechange = null; 122 | } 123 | } 124 | } 125 | 126 | document.body.appendChild(s); 127 | } else { 128 | window.bookmarklet.executeMyBookmarklet(); 129 | } 130 | }; 131 | ``` 132 | ```html 133 | Remove all images 134 | ``` -------------------------------------------------------------------------------- /bookmarklet.js: -------------------------------------------------------------------------------- 1 | /* 2 | * ANS jQuery Bookmarklet launcher (v.3.0) 3 | * 4 | * A navalla suíza (http://idc.anavallasuiza.com/project/bookmarklet/) 5 | * 6 | * Released under the Creative Commons Attribution 3.0 Unported License, 7 | * as defined here: http://creativecommons.org/licenses/by/3.0/ 8 | */ 9 | 10 | "use strict"; 11 | 12 | window.bookmarklet = { 13 | css: {}, 14 | js: {}, 15 | jQuery: false, 16 | 17 | launch: function (file) { 18 | if (!file) { 19 | return false; 20 | } 21 | 22 | this.loadJS(file, function () { 23 | var options = window.bookmarklet.options || {}; 24 | 25 | window.bookmarklet.execute(options); 26 | }); 27 | }, 28 | execute: function (options) { 29 | if (typeof(options.css) !== 'object') { 30 | if (options.css) { 31 | options.css = [options.css]; 32 | } else { 33 | options.css = []; 34 | } 35 | } 36 | 37 | if (typeof(options.js) !== 'object') { 38 | if (options.js) { 39 | options.js = [options.js]; 40 | } else { 41 | options.js = []; 42 | } 43 | } 44 | 45 | //Load css 46 | if (options.css.length) { 47 | var i; 48 | 49 | for (i in options.css) { 50 | window.bookmarklet.loadCSS(options.css[i]); 51 | } 52 | } 53 | 54 | //Load jQuery 55 | if (options.jquery) { 56 | options.js.unshift(options.jquery); 57 | } 58 | 59 | //Load js 60 | window.bookmarklet.loadMultipleJS(options.js, function () { 61 | if (options.jquery) { 62 | if (!window.bookmarklet.jQuery) { 63 | window.bookmarklet.jQuery = window.jQuery.noConflict(true); 64 | } 65 | 66 | window.bookmarklet.jQuery(options.ready); 67 | } else { 68 | options.ready(); 69 | } 70 | }); 71 | }, 72 | loadMultipleJS: function (files, onload) { 73 | if (files.length === 0) { 74 | if (onload) { 75 | onload(); 76 | } 77 | 78 | return true; 79 | } 80 | 81 | this.loadJS(files.shift(), function () { 82 | window.bookmarklet.loadMultipleJS(files, onload); 83 | }); 84 | }, 85 | loadJS: function (file, onload) { 86 | var element = this.loadedJS(file); 87 | 88 | if (element) { 89 | if (typeof onload === 'function') { 90 | onload.call(element); 91 | } 92 | 93 | return false; 94 | } 95 | 96 | element = document.createElement('script'); 97 | element.type = 'text/javascript'; 98 | element.src = file; 99 | 100 | if (!document.attachEvent) { 101 | element.onload = onload; 102 | } else if (typeof onload === 'function') { 103 | element.onreadystatechange = function () { 104 | if (element.readyState === 'complete' || element.readyState === 'loaded') { 105 | onload.call(element); 106 | element.onreadystatechange = null; 107 | } 108 | }; 109 | } 110 | 111 | document.body.appendChild(element); 112 | 113 | this.js[file] = element; 114 | 115 | return element; 116 | }, 117 | loadCSS: function (file) { 118 | if (this.loadedCSS(file)) { 119 | return false; 120 | } 121 | 122 | var element = document.createElement('link'); 123 | element.setAttribute('rel', 'stylesheet'); 124 | element.setAttribute('type', 'text/css'); 125 | element.setAttribute('href', file); 126 | 127 | document.getElementsByTagName('head')[0].appendChild(element); 128 | 129 | this.css[file] = element; 130 | 131 | return element; 132 | }, 133 | loadedJS: function (file) { 134 | if (this.js[file]) { 135 | return this.js[file]; 136 | } 137 | 138 | return false; 139 | }, 140 | loadedCSS: function (file) { 141 | if (this.css[file]) { 142 | return this.css[file]; 143 | } 144 | 145 | return false; 146 | }, 147 | die: function () { 148 | var i; 149 | 150 | for (i in this.js) { 151 | this.js[i].parentNode.removeChild(this.js[i]); 152 | } 153 | for (i in this.css) { 154 | this.css[i].parentNode.removeChild(this.css[i]); 155 | } 156 | 157 | this.js = {}; 158 | this.css = {}; 159 | this.jQuery = false; 160 | } 161 | }; -------------------------------------------------------------------------------- /demos/bookmarklet.js: -------------------------------------------------------------------------------- 1 | /* 2 | * ANS jQuery Bookmarklet launcher (v.3.0) 3 | * 4 | * A navalla suíza (http://idc.anavallasuiza.com/project/bookmarklet/) 5 | * 6 | * Released under the Creative Commons Attribution 3.0 Unported License, 7 | * as defined here: http://creativecommons.org/licenses/by/3.0/ 8 | */ 9 | 10 | "use strict"; 11 | 12 | window.bookmarklet = { 13 | css: {}, 14 | js: {}, 15 | jQuery: false, 16 | 17 | launch: function (file) { 18 | if (!file) { 19 | return false; 20 | } 21 | 22 | this.loadJS(file, function () { 23 | var options = window.bookmarklet.options || {}; 24 | 25 | window.bookmarklet.execute(options); 26 | }); 27 | }, 28 | execute: function (options) { 29 | if (typeof(options.css) !== 'object') { 30 | if (options.css) { 31 | options.css = [options.css]; 32 | } else { 33 | options.css = []; 34 | } 35 | } 36 | 37 | if (typeof(options.js) !== 'object') { 38 | if (options.js) { 39 | options.js = [options.js]; 40 | } else { 41 | options.js = []; 42 | } 43 | } 44 | 45 | //Load css 46 | if (options.css.length) { 47 | var i; 48 | 49 | for (i in options.css) { 50 | window.bookmarklet.loadCSS(options.css[i]); 51 | } 52 | } 53 | 54 | //Load jQuery 55 | if (options.jquery) { 56 | options.js.unshift(options.jquery); 57 | } 58 | 59 | //Load js 60 | window.bookmarklet.loadMultipleJS(options.js, function () { 61 | if (options.jquery) { 62 | if (!window.bookmarklet.jQuery) { 63 | window.bookmarklet.jQuery = window.jQuery.noConflict(true); 64 | } 65 | 66 | window.bookmarklet.jQuery(options.ready); 67 | } else { 68 | options.ready(); 69 | } 70 | }); 71 | }, 72 | loadMultipleJS: function (files, onload) { 73 | if (files.length === 0) { 74 | if (onload) { 75 | onload(); 76 | } 77 | 78 | return true; 79 | } 80 | 81 | this.loadJS(files.shift(), function () { 82 | window.bookmarklet.loadMultipleJS(files, onload); 83 | }); 84 | }, 85 | loadJS: function (file, onload) { 86 | var element = this.loadedJS(file); 87 | 88 | if (element) { 89 | if (typeof onload === 'function') { 90 | onload.call(element); 91 | } 92 | 93 | return false; 94 | } 95 | 96 | element = document.createElement('script'); 97 | element.type = 'text/javascript'; 98 | element.src = file; 99 | 100 | if (!document.attachEvent) { 101 | element.onload = onload; 102 | } else if (typeof onload === 'function') { 103 | element.onreadystatechange = function () { 104 | if (element.readyState === 'complete' || element.readyState === 'loaded') { 105 | onload.call(element); 106 | element.onreadystatechange = null; 107 | } 108 | }; 109 | } 110 | 111 | document.body.appendChild(element); 112 | 113 | this.js[file] = element; 114 | 115 | return element; 116 | }, 117 | loadCSS: function (file) { 118 | if (this.loadedCSS(file)) { 119 | return false; 120 | } 121 | 122 | var element = document.createElement('link'); 123 | element.setAttribute('rel', 'stylesheet'); 124 | element.setAttribute('type', 'text/css'); 125 | element.setAttribute('href', file); 126 | 127 | document.getElementsByTagName('head')[0].appendChild(element); 128 | 129 | this.css[file] = element; 130 | 131 | return element; 132 | }, 133 | loadedJS: function (file) { 134 | if (this.js[file]) { 135 | return this.js[file]; 136 | } 137 | 138 | return false; 139 | }, 140 | loadedCSS: function (file) { 141 | if (this.css[file]) { 142 | return this.css[file]; 143 | } 144 | 145 | return false; 146 | }, 147 | die: function () { 148 | var i; 149 | 150 | for (i in this.js) { 151 | this.js[i].parentNode.removeChild(this.js[i]); 152 | } 153 | for (i in this.css) { 154 | this.css[i].parentNode.removeChild(this.css[i]); 155 | } 156 | 157 | this.js = {}; 158 | this.css = {}; 159 | this.jQuery = false; 160 | } 161 | }; 162 | 163 | window.bookmarklet.executeMyBookmarklet = function () { 164 | var options = { 165 | jquery: 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js', 166 | ready: function ($) { 167 | $("body").css("background","yellow"); 168 | window.bookmarklet.die(); 169 | } 170 | }; 171 | window.bookmarklet.execute(options); 172 | } 173 | 174 | /* 175 | window.bookmarklet.executeMyBookmarklet = function () { 176 | var options = { 177 | js: [ 178 | 'http://svn.wikimedia.org/svnroot/mediawiki/trunk/tools/viaf/jquery.cookie.js', 179 | 'http://svn.wikimedia.org/svnroot/mediawiki/trunk/tools/viaf/jquery.ba-replacetext.js', 180 | ], 181 | jquery: 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js', 182 | ready: function ($) { 183 | $("body").replaceText(/a/gi, "*****"); 184 | console.log($.fn.replaceText); 185 | window.bookmarklet.die(); 186 | } 187 | }; 188 | 189 | window.bookmarklet.execute(options); 190 | } 191 | /* 192 | window.bookmarklet.executeMyBookmarklet = function () { 193 | var options = { 194 | ready: function () { 195 | var links = document.getElementsByTagName('link'); 196 | var num = links.length; 197 | 198 | if (!num) { 199 | return; 200 | } 201 | 202 | for (var n = 0; n < num; n++) { 203 | if (links[n].rel.toLowerCase() == 'stylesheet' && links[n].href) { 204 | if (links[n].href.indexOf('?') == -1) { 205 | links[n].href += '?'; 206 | } 207 | 208 | links[n].href += '&r' 209 | } 210 | } 211 | 212 | window.bookmarklet.die(); 213 | } 214 | }; 215 | 216 | window.bookmarklet.execute(options); 217 | }*/ -------------------------------------------------------------------------------- /demos/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Bookmarklets list 4 | 5 | 6 | 57 | 58 | 59 | 60 |

Refresh CSS

61 |

Refresh CSS (min)

62 |

Try font

63 |

Try font (min)

64 |

Refresh CSS (load 1 file)

65 |

Refresh CSS (load 1 file) (min)

66 | 67 | -------------------------------------------------------------------------------- /demos/refresh-css.js: -------------------------------------------------------------------------------- 1 | window.bookmarklet.options = { 2 | ready: function () { 3 | var links = document.getElementsByTagName('link'); 4 | var num = links.length; 5 | 6 | if (!num) { 7 | return; 8 | } 9 | 10 | for (var n = 0; n < num; n++) { 11 | if (links[n].rel.toLowerCase() == 'stylesheet' && links[n].href) { 12 | if (links[n].href.indexOf('?') == -1) { 13 | links[n].href += '?'; 14 | } 15 | 16 | links[n].href += '&r' 17 | } 18 | } 19 | 20 | window.bookmarklet.die(); 21 | } 22 | }; -------------------------------------------------------------------------------- /demos/styles.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-family: Arial, sans-serif; 3 | background: #DED; 4 | } 5 | 6 | a { 7 | background: #999; 8 | color: #000; 9 | text-decoration: none; 10 | padding: 3px 8px; 11 | font-size: 0.9em; 12 | font-weight: bold; 13 | border-radius: 12px; 14 | text-shadow: 1px 1px 0 #CCC; 15 | } 16 | a:hover { 17 | background: #666; 18 | color: #FFF; 19 | text-shadow: 1px 1px 0 #000; 20 | } -------------------------------------------------------------------------------- /demos/try-font.css: -------------------------------------------------------------------------------- 1 | #try-font { 2 | position: fixed; 3 | top: 10px; 4 | right: 10px; 5 | width: 200px; 6 | background: #000; 7 | padding: 20px; 8 | color: #999; 9 | font-family: sans-serif; 10 | font-size: 13px; 11 | border-radius: 6px; 12 | z-index: 1000; 13 | text-align: left; 14 | } 15 | #try-font label { 16 | margin: 5px 0; 17 | display: block; 18 | font-weight: bold; 19 | } 20 | #try-font select { 21 | display: block; 22 | box-sizing: border-box; 23 | -moz-box-sizing: border-box; 24 | -webkit-box-sizing: border-box; 25 | width: 100%; 26 | margin-top: 2px; 27 | } 28 | .try-font-hover { 29 | outline: dotted 2px red; 30 | } 31 | .try-font-selected { 32 | outline: solid 2px blue; 33 | } -------------------------------------------------------------------------------- /demos/try-font.js: -------------------------------------------------------------------------------- 1 | window.bookmarklet.options = { 2 | jquery: 'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js', 3 | css: 'try-font.css', 4 | js: 'try-font.list.js', 5 | 6 | ready: function ($) { 7 | var $selected = $(), $widget, $menu_font, $menu_variant, 8 | fonts = window.bookmarklet.options.fonts, 9 | helpers = { 10 | onMouseOver: function (e) { 11 | $('.try-font-hover').removeClass('try-font-hover'); 12 | $(e.target).addClass('try-font-hover'); 13 | }, 14 | onMouseLeave: function (e) { 15 | $('.try-font-hover').removeClass('try-font-hover'); 16 | }, 17 | onClick: function (e) { 18 | $selected = $(e.target); 19 | 20 | $('.try-font-hover').removeClass('try-font-hover'); 21 | 22 | if ($selected.hasClass('try-font-selected')) { 23 | $selected.removeClass('try-font-selected'); 24 | $selected = false; 25 | $menu_font.val('-1').change(); 26 | 27 | return false; 28 | } 29 | 30 | $('.try-font-selected').removeClass('try-font-selected'); 31 | $selected = $(e.target).addClass('try-font-selected'); 32 | 33 | if ($selected.data('try-font-key') != undefined) { 34 | var keyfont = $selected.data('try-font-key'); 35 | $menu_font.val(keyfont); 36 | helpers.fillVariants(keyfont); 37 | $menu_variant.val($selected.data('try-font-variant')); 38 | } else { 39 | $menu_font.val('-1').change(); 40 | } 41 | 42 | return false; 43 | }, 44 | fillVariants: function (keyfont) { 45 | $menu_variant.empty(); 46 | 47 | if (!keyfont || !fonts[keyfont]) { 48 | return; 49 | } 50 | 51 | $.each(fonts[keyfont].variants, function (name, info) { 52 | $('', { 53 | html: name, 54 | value: name 55 | }).appendTo($menu_variant); 56 | }); 57 | } 58 | }; 59 | 60 | $widget ='
' 61 | + '' 64 | + '' 66 | + '' 67 | + '
'; 68 | 69 | $('body').children().mouseover(helpers.onMouseOver).mouseleave(helpers.onMouseLeave).click(helpers.onClick); 70 | 71 | $widget = $($widget).appendTo('body'); 72 | $menu_font = $widget.find('#try-font-family'); 73 | $menu_variant = $widget.find('#try-font-variant'); 74 | 75 | //Close button 76 | $widget.find('#try-font-close').click(function () { 77 | $('body').children() 78 | .unbind('mouseover', helpers.onMouseOver) 79 | .unbind('mouseleave', helpers.onMouseLeave) 80 | .unbind('click', helpers.onClick); 81 | 82 | $widget.remove(); 83 | 84 | $('.try-font-hover, .try-font-selected').removeClass('try-font-hover try-font-selected'); 85 | }); 86 | 87 | //Save font list 88 | $.each(fonts, function (k, info) { 89 | $('', { 90 | html: info.name, 91 | value: k 92 | }).appendTo($menu_font); 93 | }); 94 | 95 | //Apply the font 96 | $menu_font.change(function () { 97 | var value = $(this).val(); 98 | var font = fonts[value]; 99 | 100 | if (value == -1 && $selected) { 101 | $selected.css('font-family', '').removeData('try-font-key'); 102 | } 103 | 104 | if (!$selected.length || !font) { 105 | helpers.fillVariants(); 106 | $(this).val('-1'); 107 | return false; 108 | } 109 | 110 | helpers.fillVariants(value); 111 | 112 | window.bookmarklet.loadCSS(font.file); 113 | 114 | $selected.css('font-family', font.name).data('try-font-key', value); 115 | 116 | //Select the first variant 117 | for(var variant in font.variants) { 118 | $menu_variant.val(variant).change(); 119 | break; 120 | } 121 | }); 122 | 123 | //Apply the variant 124 | $menu_variant.change(function () { 125 | var value = $(this).val(); 126 | var font = fonts[$selected.data('try-font-key')]; 127 | 128 | if (!$selected.length || !font || !font.variants[value]) { 129 | return false; 130 | } 131 | 132 | $selected.css({ 133 | 'font-weight': font.variants[value][0], 134 | 'font-style': font.variants[value][1] 135 | }).data('try-font-variant', value); 136 | }); 137 | } 138 | }; -------------------------------------------------------------------------------- /demos/try-font.list.js: -------------------------------------------------------------------------------- 1 | window.bookmarklet.options.fonts = [ 2 | { 3 | name: "Aclonica", 4 | file: "http://fonts.googleapis.com/css?family=Aclonica:regular", 5 | variants: { 6 | "Regular": ["normal", "normal"] 7 | } 8 | },{ 9 | name: "Allan", 10 | file: "http://fonts.googleapis.com/css?family=Allan:bold", 11 | variants: { 12 | "Bold": ["bold", "normal"] 13 | } 14 | },{ 15 | name: "Allerta", 16 | file: "http://fonts.googleapis.com/css?family=Allerta:regular", 17 | variants: { 18 | "Regular": ["normal", "normal"] 19 | } 20 | },{ 21 | name: "Allerta Stencil", 22 | file: "http://fonts.googleapis.com/css?family=Allerta+Stencil:regular", 23 | variants: { 24 | "Regular": ["normal", "normal"] 25 | } 26 | },{ 27 | name: "Amaranth", 28 | file: "http://fonts.googleapis.com/css?family=Amaranth:regular,regularitalic,bold,bolditalic", 29 | variants: { 30 | "Regular": ["normal", "normal"], 31 | "Italic": ["normal", "italic"], 32 | "Bold": ["bold", "normal"], 33 | "Bold italic": ["bold", "italic"] 34 | } 35 | },{ 36 | name: "Angkor", 37 | file: "http://fonts.googleapis.com/css?family=Angkor:regular", 38 | variants: { 39 | "Regular": ["normal", "normal"] 40 | } 41 | },{ 42 | name: "Annie Use Your Telescope", 43 | file: "http://fonts.googleapis.com/css?family=Annie+Use+Your+Telescope:regular", 44 | variants: { 45 | "Regular": ["normal", "normal"] 46 | } 47 | },{ 48 | name: "Anonymous Pro", 49 | file: "http://fonts.googleapis.com/css?family=Anonymous+Pro:regular,italic,bold,bolditalic", 50 | variants: { 51 | "Regular": ["normal", "normal"], 52 | "Italic": ["normal", "italic"], 53 | "Bold": ["bold", "normal"], 54 | "Bold italic": ["bold", "italic"] 55 | } 56 | },{ 57 | name: "Anton", 58 | file: "http://fonts.googleapis.com/css?family=Anton:regular", 59 | variants: { 60 | "Regular": ["normal", "normal"] 61 | } 62 | },{ 63 | name: "Architects Daughter", 64 | file: "http://fonts.googleapis.com/css?family=Architects+Daughter:regular", 65 | variants: { 66 | "Regular": ["normal", "normal"] 67 | } 68 | },{ 69 | name: "Arimo", 70 | file: "http://fonts.googleapis.com/css?family=Arimo:regular,italic,bold,bolditalic", 71 | variants: { 72 | "Regular": ["normal", "normal"], 73 | "Italic": ["normal", "italic"], 74 | "Bold": ["bold", "normal"], 75 | "Bold italic": ["bold", "italic"] 76 | } 77 | },{ 78 | name: "Artifika", 79 | file: "http://fonts.googleapis.com/css?family=Artifika:regular", 80 | variants: { 81 | "Regular": ["normal", "normal"] 82 | } 83 | },{ 84 | name: "Arvo", 85 | file: "http://fonts.googleapis.com/css?family=Arvo:regular,italic,bold,bolditalic", 86 | variants: { 87 | "Regular": ["normal", "normal"], 88 | "Italic": ["normal", "italic"], 89 | "Bold": ["bold", "normal"], 90 | "Bold italic": ["bold", "italic"] 91 | } 92 | },{ 93 | name: "Astloch", 94 | file: "http://fonts.googleapis.com/css?family=Astloch:regular,bold", 95 | variants: { 96 | "Regular": ["normal", "normal"], 97 | "Bold": ["bold", "normal"] 98 | } 99 | },{ 100 | name: "Bangers", 101 | file: "http://fonts.googleapis.com/css?family=Bangers:regular", 102 | variants: { 103 | "Regular": ["normal", "normal"] 104 | } 105 | },{ 106 | name: "Battambang", 107 | file: "http://fonts.googleapis.com/css?family=Battambang:regular,bold", 108 | variants: { 109 | "Regular": ["normal", "normal"], 110 | "Bold": ["bold", "normal"] 111 | } 112 | },{ 113 | name: "Bayon", 114 | file: "http://fonts.googleapis.com/css?family=Bayon:regular", 115 | variants: { 116 | "Regular": ["normal", "normal"] 117 | } 118 | },{ 119 | name: "Bentham", 120 | file: "http://fonts.googleapis.com/css?family=Bentham:regular", 121 | variants: { 122 | "Regular": ["normal", "normal"] 123 | } 124 | },{ 125 | name: "Bevan", 126 | file: "http://fonts.googleapis.com/css?family=Bevan:regular", 127 | variants: { 128 | "Regular": ["normal", "normal"] 129 | } 130 | },{ 131 | name: "Bigshot One", 132 | file: "http://fonts.googleapis.com/css?family=Bigshot+One:regular", 133 | variants: { 134 | "Regular": ["normal", "normal"] 135 | } 136 | },{ 137 | name: "Bokor", 138 | file: "http://fonts.googleapis.com/css?family=Bokor:regular", 139 | variants: { 140 | "Regular": ["normal", "normal"] 141 | } 142 | },{ 143 | name: "Brawler", 144 | file: "http://fonts.googleapis.com/css?family=Brawler:regular", 145 | variants: { 146 | "Regular": ["normal", "normal"] 147 | } 148 | },{ 149 | name: "Buda", 150 | file: "http://fonts.googleapis.com/css?family=Buda:300", 151 | variants: { 152 | "300": ["300", "normal"] 153 | } 154 | },{ 155 | name: "Cabin", 156 | file: "http://fonts.googleapis.com/css?family=Cabin:400,400italic,500,500italic,600,600italic,bold,bolditalic", 157 | variants: { 158 | "Regular": ["400", "normal"], 159 | "Regular italic": ["400", "italic"], 160 | "500": ["500", "normal"], 161 | "500 italic": ["500", "italic"], 162 | "600": ["600", "normal"], 163 | "600 italic": ["600", "italic"], 164 | "Bold": ["bold", "normal"], 165 | "Bold italic": ["bold", "italic"] 166 | } 167 | },{ 168 | name: "Cabin Sketch", 169 | file: "http://fonts.googleapis.com/css?family=Cabin+Sketch:bold", 170 | variants: { 171 | "Bold": ["bold", "normal"] 172 | } 173 | },{ 174 | name: "Calligraffitti", 175 | file: "http://fonts.googleapis.com/css?family=Calligraffitti:regular", 176 | variants: { 177 | "Regular": ["normal", "normal"] 178 | } 179 | },{ 180 | name: "Candal", 181 | file: "http://fonts.googleapis.com/css?family=Candal:regular", 182 | variants: { 183 | "Regular": ["normal", "normal"] 184 | } 185 | },{ 186 | name: "Cantarell", 187 | file: "http://fonts.googleapis.com/css?family=Cantarell:regular,italic,bold,bolditalic", 188 | variants: { 189 | "Regular": ["normal", "normal"], 190 | "Italic": ["normal", "italic"], 191 | "Bold": ["bold", "normal"], 192 | "Bold italic": ["bold", "italic"] 193 | } 194 | },{ 195 | name: "Cardo", 196 | file: "http://fonts.googleapis.com/css?family=Cardo:regular", 197 | variants: { 198 | "Regular": ["normal", "normal"] 199 | } 200 | },{ 201 | name: "Carter One", 202 | file: "http://fonts.googleapis.com/css?family=Carter+One:regular", 203 | variants: { 204 | "Regular": ["normal", "normal"] 205 | } 206 | },{ 207 | name: "Caudex", 208 | file: "http://fonts.googleapis.com/css?family=Caudex:regular,italic,bold,bolditalic", 209 | variants: { 210 | "Regular": ["normal", "normal"], 211 | "Italic": ["normal", "italic"], 212 | "Bold": ["bold", "normal"], 213 | "Bold italic": ["bold", "italic"] 214 | } 215 | },{ 216 | name: "Cedarville Cursive", 217 | file: "http://fonts.googleapis.com/css?family=Cedarville+Cursive:regular", 218 | variants: { 219 | "Regular": ["normal", "normal"] 220 | } 221 | },{ 222 | name: "Chenla", 223 | file: "http://fonts.googleapis.com/css?family=Chenla:regular", 224 | variants: { 225 | "Regular": ["normal", "normal"] 226 | } 227 | },{ 228 | name: "Cherry Cream Soda", 229 | file: "http://fonts.googleapis.com/css?family=Cherry+Cream+Soda:regular", 230 | variants: { 231 | "Regular": ["normal", "normal"] 232 | } 233 | },{ 234 | name: "Chewy", 235 | file: "http://fonts.googleapis.com/css?family=Chewy:regular", 236 | variants: { 237 | "Regular": ["normal", "normal"] 238 | } 239 | },{ 240 | name: "Coda", 241 | file: "http://fonts.googleapis.com/css?family=Coda:800", 242 | variants: { 243 | "800": ["800", "normal"] 244 | } 245 | },{ 246 | name: "Coda Caption", 247 | file: "http://fonts.googleapis.com/css?family=Coda+Caption:800", 248 | variants: { 249 | "800": ["800", "normal"] 250 | } 251 | },{ 252 | name: "Coming Soon", 253 | file: "http://fonts.googleapis.com/css?family=Coming+Soon:regular", 254 | variants: { 255 | "Regular": ["normal", "normal"] 256 | } 257 | },{ 258 | name: "Content", 259 | file: "http://fonts.googleapis.com/css?family=Content:regular,bold", 260 | variants: { 261 | "Regular": ["normal", "normal"], 262 | "Bold": ["bold", "normal"] 263 | } 264 | },{ 265 | name: "Copse", 266 | file: "http://fonts.googleapis.com/css?family=Copse:regular", 267 | variants: { 268 | "Regular": ["normal", "normal"] 269 | } 270 | },{ 271 | name: "Corben", 272 | file: "http://fonts.googleapis.com/css?family=Corben:bold", 273 | variants: { 274 | "Bold": ["bold", "normal"] 275 | } 276 | },{ 277 | name: "Cousine", 278 | file: "http://fonts.googleapis.com/css?family=Cousine:regular,italic,bold,bolditalic", 279 | variants: { 280 | "Regular": ["normal", "normal"], 281 | "Italic": ["normal", "italic"], 282 | "Bold": ["bold", "normal"], 283 | "Bold italic": ["bold", "italic"] 284 | } 285 | },{ 286 | name: "Covered By Your Grace", 287 | file: "http://fonts.googleapis.com/css?family=Covered+By+Your+Grace:regular", 288 | variants: { 289 | "Regular": ["normal", "normal"] 290 | } 291 | },{ 292 | name: "Crafty Girls", 293 | file: "http://fonts.googleapis.com/css?family=Crafty+Girls:regular", 294 | variants: { 295 | "Regular": ["normal", "normal"] 296 | } 297 | },{ 298 | name: "Crimson Text", 299 | file: "http://fonts.googleapis.com/css?family=Crimson+Text:regular,regularitalic,600,600italic,bold,bolditalic", 300 | variants: { 301 | "Regular": ["normal", "normal"], 302 | "Regular italic": ["normal", "italic"], 303 | "600": ["600", "normal"], 304 | "600 italic": ["600", "italic"], 305 | "Bold": ["bold", "normal"], 306 | "Bold italic": ["bold", "italic"] 307 | } 308 | },{ 309 | name: "Crushed", 310 | file: "http://fonts.googleapis.com/css?family=Crushed:regular", 311 | variants: { 312 | "Regular": ["normal", "normal"] 313 | } 314 | },{ 315 | name: "Cuprum", 316 | file: "http://fonts.googleapis.com/css?family=Cuprum:regular", 317 | variants: { 318 | "Regular": ["normal", "normal"] 319 | } 320 | },{ 321 | name: "Damion", 322 | file: "http://fonts.googleapis.com/css?family=Damion:regular", 323 | variants: { 324 | "Regular": ["normal", "normal"] 325 | } 326 | },{ 327 | name: "Dancing Script", 328 | file: "http://fonts.googleapis.com/css?family=Dancing+Script:regular,bold", 329 | variants: { 330 | "Regular": ["normal", "normal"], 331 | "Bold": ["bold", "normal"] 332 | } 333 | },{ 334 | name: "Dangrek", 335 | file: "http://fonts.googleapis.com/css?family=Dangrek:regular", 336 | variants: { 337 | "Regular": ["normal", "normal"] 338 | } 339 | },{ 340 | name: "Dawning of a New Day", 341 | file: "http://fonts.googleapis.com/css?family=Dawning+of+a+New+Day:regular", 342 | variants: { 343 | "Regular": ["normal", "normal"] 344 | } 345 | },{ 346 | name: "Didact Gothic", 347 | file: "http://fonts.googleapis.com/css?family=Didact+Gothic:regular", 348 | variants: { 349 | "Regular": ["normal", "normal"] 350 | } 351 | },{ 352 | name: "Droid Sans", 353 | file: "http://fonts.googleapis.com/css?family=Droid+Sans:regular,bold", 354 | variants: { 355 | "Regular": ["normal", "normal"], 356 | "Bold": ["bold", "normal"] 357 | } 358 | },{ 359 | name: "Droid Sans Mono", 360 | file: "http://fonts.googleapis.com/css?family=Droid+Sans+Mono:regular", 361 | variants: { 362 | "Regular": ["normal", "normal"] 363 | } 364 | },{ 365 | name: "Droid Serif", 366 | file: "http://fonts.googleapis.com/css?family=Droid+Serif:regular,italic,bold,bolditalic", 367 | variants: { 368 | "Regular": ["normal", "normal"], 369 | "Italic": ["normal", "italic"], 370 | "Bold": ["bold", "normal"], 371 | "Bold italic": ["bold", "italic"] 372 | } 373 | },{ 374 | name: "EB Garamond", 375 | file: "http://fonts.googleapis.com/css?family=EB+Garamond:regular", 376 | variants: { 377 | "Regular": ["normal", "normal"] 378 | } 379 | },{ 380 | name: "Expletus Sans", 381 | file: "http://fonts.googleapis.com/css?family=Expletus+Sans:regular,regularitalic,500,500italic,600,600italic,bold,bolditalic", 382 | variants: { 383 | "Regular": ["normal", "normal"], 384 | "Regular italic": ["normal", "italic"], 385 | "500": ["500", "normal"], 386 | "500 italic": ["500", "italic"], 387 | "600": ["600", "normal"], 388 | "600 italic": ["600", "italic"], 389 | "Bold": ["bold", "normal"], 390 | "Bold italic": ["bold", "italic"] 391 | } 392 | },{ 393 | name: "Fontdiner Swanky", 394 | file: "http://fonts.googleapis.com/css?family=Fontdiner+Swanky:regular", 395 | variants: { 396 | "Regular": ["normal", "normal"] 397 | } 398 | },{ 399 | name: "Francois One", 400 | file: "http://fonts.googleapis.com/css?family=Francois+One:regular", 401 | variants: { 402 | "Regular": ["normal", "normal"] 403 | } 404 | },{ 405 | name: "Freehand", 406 | file: "http://fonts.googleapis.com/css?family=Freehand:regular", 407 | variants: { 408 | "Regular": ["normal", "normal"] 409 | } 410 | },{ 411 | name: "GFS Didot", 412 | file: "http://fonts.googleapis.com/css?family=GFS+Didot:regular", 413 | variants: { 414 | "Regular": ["normal", "normal"] 415 | } 416 | },{ 417 | name: "GFS Neohellenic", 418 | file: "http://fonts.googleapis.com/css?family=GFS+Neohellenic:regular,italic,bold,bolditalic", 419 | variants: { 420 | "Regular": ["normal", "normal"], 421 | "Italic": ["normal", "italic"], 422 | "Bold": ["bold", "normal"], 423 | "Bold italic": ["bold", "italic"] 424 | } 425 | },{ 426 | name: "Geo", 427 | file: "http://fonts.googleapis.com/css?family=Geo:regular", 428 | variants: { 429 | "Regular": ["normal", "normal"] 430 | } 431 | },{ 432 | name: "Goudy Bookletter 1911", 433 | file: "http://fonts.googleapis.com/css?family=Goudy+Bookletter+1911:regular", 434 | variants: { 435 | "Regular": ["normal", "normal"] 436 | } 437 | },{ 438 | name: "Gruppo", 439 | file: "http://fonts.googleapis.com/css?family=Gruppo:regular", 440 | variants: { 441 | "Regular": ["normal", "normal"] 442 | } 443 | },{ 444 | name: "Hanuman", 445 | file: "http://fonts.googleapis.com/css?family=Hanuman:regular,bold", 446 | variants: { 447 | "Regular": ["normal", "normal"], 448 | "Bold": ["bold", "normal"] 449 | } 450 | },{ 451 | name: "Holtwood One SC", 452 | file: "http://fonts.googleapis.com/css?family=Holtwood+One+SC:regular", 453 | variants: { 454 | "Regular": ["normal", "normal"] 455 | } 456 | },{ 457 | name: "Homemade Apple", 458 | file: "http://fonts.googleapis.com/css?family=Homemade+Apple:regular", 459 | variants: { 460 | "Regular": ["normal", "normal"] 461 | } 462 | },{ 463 | name: "IM Fell DW Pica", 464 | file: "http://fonts.googleapis.com/css?family=IM+Fell+DW+Pica:regular,italic", 465 | variants: { 466 | "Regular": ["normal", "normal"], 467 | "Italic": ["normal", "italic"] 468 | } 469 | },{ 470 | name: "IM Fell DW Pica SC", 471 | file: "http://fonts.googleapis.com/css?family=IM+Fell+DW+Pica+SC:regular", 472 | variants: { 473 | "Regular": ["normal", "normal"] 474 | } 475 | },{ 476 | name: "IM Fell Double Pica", 477 | file: "http://fonts.googleapis.com/css?family=IM+Fell+Double+Pica:regular,italic", 478 | variants: { 479 | "Regular": ["normal", "normal"], 480 | "Italic": ["normal", "italic"] 481 | } 482 | },{ 483 | name: "IM Fell Double Pica SC", 484 | file: "http://fonts.googleapis.com/css?family=IM+Fell+Double+Pica+SC:regular", 485 | variants: { 486 | "Regular": ["normal", "normal"] 487 | } 488 | },{ 489 | name: "IM Fell English", 490 | file: "http://fonts.googleapis.com/css?family=IM+Fell+English:regular,italic", 491 | variants: { 492 | "Regular": ["normal", "normal"], 493 | "Italic": ["normal", "italic"] 494 | } 495 | },{ 496 | name: "IM Fell English SC", 497 | file: "http://fonts.googleapis.com/css?family=IM+Fell+English+SC:regular", 498 | variants: { 499 | "Regular": ["normal", "normal"] 500 | } 501 | },{ 502 | name: "IM Fell French Canon", 503 | file: "http://fonts.googleapis.com/css?family=IM+Fell+French+Canon:regular,italic", 504 | variants: { 505 | "Regular": ["normal", "normal"], 506 | "Italic": ["normal", "italic"] 507 | } 508 | },{ 509 | name: "IM Fell French Canon SC", 510 | file: "http://fonts.googleapis.com/css?family=IM+Fell+French+Canon+SC:regular", 511 | variants: { 512 | "Regular": ["normal", "normal"] 513 | } 514 | },{ 515 | name: "IM Fell Great Primer", 516 | file: "http://fonts.googleapis.com/css?family=IM+Fell+Great+Primer:regular,italic", 517 | variants: { 518 | "Regular": ["normal", "normal"], 519 | "Italic": ["normal", "italic"] 520 | } 521 | },{ 522 | name: "IM Fell Great Primer SC", 523 | file: "http://fonts.googleapis.com/css?family=IM+Fell+Great+Primer+SC:regular", 524 | variants: { 525 | "Regular": ["normal", "normal"] 526 | } 527 | },{ 528 | name: "Inconsolata", 529 | file: "http://fonts.googleapis.com/css?family=Inconsolata:regular", 530 | variants: { 531 | "Regular": ["normal", "normal"] 532 | } 533 | },{ 534 | name: "Indie Flower", 535 | file: "http://fonts.googleapis.com/css?family=Indie+Flower:regular", 536 | variants: { 537 | "Regular": ["normal", "normal"] 538 | } 539 | },{ 540 | name: "Irish Grover", 541 | file: "http://fonts.googleapis.com/css?family=Irish+Grover:regular", 542 | variants: { 543 | "Regular": ["normal", "normal"] 544 | } 545 | },{ 546 | name: "Josefin Sans", 547 | file: "http://fonts.googleapis.com/css?family=Josefin+Sans:100,100italic,300,300italic,400,400italic,600,600italic,700,700italic", 548 | variants: { 549 | "100": ["100", "normal"], 550 | "100 italic": ["100", "italic"], 551 | "Light": ["300", "normal"], 552 | "Light italic": ["300", "italic"], 553 | "Regular": ["400", "normal"], 554 | "Regular italic": ["400", "italic"], 555 | "600": ["600", "normal"], 556 | "600 italic": ["600", "italic"], 557 | "Bold": ["700", "normal"], 558 | "Bold italic": ["700", "italic"] 559 | } 560 | },{ 561 | name: "Josefin Slab", 562 | file: "http://fonts.googleapis.com/css?family=Josefin+Slab:100,100italic,300,300italic,400,400italic,600,600italic,700,700italic", 563 | variants: { 564 | "100": ["100", "normal"], 565 | "100 italic": ["100", "italic"], 566 | "Light": ["300", "normal"], 567 | "Light italic": ["300", "italic"], 568 | "Regular": ["400", "normal"], 569 | "Regular italic": ["400", "italic"], 570 | "600": ["600", "normal"], 571 | "600 italic": ["600", "italic"], 572 | "Bold": ["700", "normal"], 573 | "Bold italic": ["700", "italic"] 574 | } 575 | },{ 576 | name: "Judson", 577 | file: "http://fonts.googleapis.com/css?family=Judson:regular,regularitalic,bold", 578 | variants: { 579 | "Regular": ["normal", "normal"], 580 | "Regular italic": ["normal", "italic"], 581 | "Bold": ["bold", "normal"] 582 | } 583 | },{ 584 | name: "Jura", 585 | file: "http://fonts.googleapis.com/css?family=Jura:300,400,500,600", 586 | variants: { 587 | "Light": ["300", "normal"], 588 | "Regular": ["normal", "normal"], 589 | "500": ["500", "normal"], 590 | "600": ["600", "normal"] 591 | } 592 | },{ 593 | name: "Just Another Hand", 594 | file: "http://fonts.googleapis.com/css?family=Just+Another+Hand:regular", 595 | variants: { 596 | "Regular": ["normal", "normal"] 597 | } 598 | },{ 599 | name: "Just Me Again Down Here", 600 | file: "http://fonts.googleapis.com/css?family=Just+Me+Again+Down+Here:regular", 601 | variants: { 602 | "Regular": ["normal", "normal"] 603 | } 604 | },{ 605 | name: "Kameron", 606 | file: "http://fonts.googleapis.com/css?family=Kameron:regular,bold", 607 | variants: { 608 | "Regular": ["normal", "normal"], 609 | "Bold": ["bold", "normal"] 610 | } 611 | },{ 612 | name: "Kenia", 613 | file: "http://fonts.googleapis.com/css?family=Kenia:regular", 614 | variants: { 615 | "Regular": ["normal", "normal"] 616 | } 617 | },{ 618 | name: "Khmer", 619 | file: "http://fonts.googleapis.com/css?family=Khmer:regular", 620 | variants: { 621 | "Regular": ["normal", "normal"] 622 | } 623 | },{ 624 | name: "Koulen", 625 | file: "http://fonts.googleapis.com/css?family=Koulen:regular", 626 | variants: { 627 | "Regular": ["normal", "normal"] 628 | } 629 | },{ 630 | name: "Kranky", 631 | file: "http://fonts.googleapis.com/css?family=Kranky:regular", 632 | variants: { 633 | "Regular": ["normal", "normal"] 634 | } 635 | },{ 636 | name: "Kreon", 637 | file: "http://fonts.googleapis.com/css?family=Kreon:300,400,700", 638 | variants: { 639 | "Light": ["300", "normal"], 640 | "Regular": ["400", "normal"], 641 | "Bold": ["700", "normal"] 642 | } 643 | },{ 644 | name: "Kristi", 645 | file: "http://fonts.googleapis.com/css?family=Kristi:regular", 646 | variants: { 647 | "Regular": ["normal", "normal"] 648 | } 649 | },{ 650 | name: "La Belle Aurore", 651 | file: "http://fonts.googleapis.com/css?family=La+Belle+Aurore:regular", 652 | variants: { 653 | "Regular": ["normal", "normal"] 654 | } 655 | },{ 656 | name: "Lato", 657 | file: "http://fonts.googleapis.com/css?family=Lato:100,100italic,300,300italic,400,400italic,700,700italic,900,900italic", 658 | variants: { 659 | "100": ["100", "normal"], 660 | "100 italic": ["100", "italic"], 661 | "Light": ["300", "normal"], 662 | "Light italic": ["300", "italic"], 663 | "Regular": ["400", "normal"], 664 | "Regular italic": ["400", "italic"], 665 | "Bold": ["700", "normal"], 666 | "Bold italic": ["700", "italic"], 667 | "900": ["900", "normal"], 668 | "900 italic": ["900", "italic"] 669 | } 670 | },{ 671 | name: "League Script", 672 | file: "http://fonts.googleapis.com/css?family=League+Script:400", 673 | variants: { 674 | "Regular": ["normal", "normal"] 675 | } 676 | },{ 677 | name: "Lekton", 678 | file: "http://fonts.googleapis.com/css?family=Lekton:400,italic,700", 679 | variants: { 680 | "Regular": ["normal", "normal"], 681 | "Italic": ["normal", "italic"], 682 | "Bold": ["bold", "normal"] 683 | } 684 | },{ 685 | name: "Limelight", 686 | file: "http://fonts.googleapis.com/css?family=Limelight:regular", 687 | variants: { 688 | "Regular": ["normal", "normal"] 689 | } 690 | },{ 691 | name: "Lobster", 692 | file: "http://fonts.googleapis.com/css?family=Lobster:regular", 693 | variants: { 694 | "Regular": ["normal", "normal"] 695 | } 696 | },{ 697 | name: "Lora", 698 | file: "http://fonts.googleapis.com/css?family=Lora:regular", 699 | variants: { 700 | "Regular": ["normal", "normal"] 701 | } 702 | },{ 703 | name: "Luckiest Guy", 704 | file: "http://fonts.googleapis.com/css?family=Luckiest+Guy:regular", 705 | variants: { 706 | "Regular": ["normal", "normal"] 707 | } 708 | },{ 709 | name: "Maiden Orange", 710 | file: "http://fonts.googleapis.com/css?family=Maiden+Orange:regular", 711 | variants: { 712 | "Regular": ["normal", "normal"] 713 | } 714 | },{ 715 | name: "Mako", 716 | file: "http://fonts.googleapis.com/css?family=Mako:regular", 717 | variants: { 718 | "Regular": ["normal", "normal"] 719 | } 720 | },{ 721 | name: "Maven Pro", 722 | file: "http://fonts.googleapis.com/css?family=Maven+Pro:400,500,700,900", 723 | variants: { 724 | "Regular": ["normal", "normal"], 725 | "500": ["500", "normal"], 726 | "Bold": ["bold", "normal"], 727 | "900": ["900", "normal"] 728 | } 729 | },{ 730 | name: "Meddon", 731 | file: "http://fonts.googleapis.com/css?family=Meddon:regular", 732 | variants: { 733 | "Regular": ["normal", "normal"] 734 | } 735 | },{ 736 | name: "MedievalSharp", 737 | file: "http://fonts.googleapis.com/css?family=MedievalSharp:regular", 738 | variants: { 739 | "Regular": ["normal", "normal"] 740 | } 741 | },{ 742 | name: "Megrim", 743 | file: "http://fonts.googleapis.com/css?family=Megrim:regular", 744 | variants: { 745 | "Regular": ["normal", "normal"] 746 | } 747 | },{ 748 | name: "Merriweather", 749 | file: "http://fonts.googleapis.com/css?family=Merriweather:300,regular,700,900", 750 | variants: { 751 | "Light": ["300", "normal"], 752 | "Regular": ["normal", "normal"], 753 | "Bold": ["bold", "normal"], 754 | "900": ["900", "normal"] 755 | } 756 | },{ 757 | name: "Metal", 758 | file: "http://fonts.googleapis.com/css?family=Metal:regular", 759 | variants: { 760 | "Regular": ["normal", "normal"] 761 | } 762 | },{ 763 | name: "Metrophobic", 764 | file: "http://fonts.googleapis.com/css?family=Metrophobic:regular", 765 | variants: { 766 | "Regular": ["normal", "normal"] 767 | } 768 | },{ 769 | name: "Michroma", 770 | file: "http://fonts.googleapis.com/css?family=Michroma:regular", 771 | variants: { 772 | "Regular": ["normal", "normal"] 773 | } 774 | },{ 775 | name: "Miltonian", 776 | file: "http://fonts.googleapis.com/css?family=Miltonian:regular", 777 | variants: { 778 | "Regular": ["normal", "normal"] 779 | } 780 | },{ 781 | name: "Miltonian Tattoo", 782 | file: "http://fonts.googleapis.com/css?family=Miltonian+Tattoo:regular", 783 | variants: { 784 | "Regular": ["normal", "normal"] 785 | } 786 | },{ 787 | name: "Molengo", 788 | file: "http://fonts.googleapis.com/css?family=Molengo:regular", 789 | variants: { 790 | "Regular": ["normal", "normal"] 791 | } 792 | },{ 793 | name: "Monofett", 794 | file: "http://fonts.googleapis.com/css?family=Monofett:regular", 795 | variants: { 796 | "Regular": ["normal", "normal"] 797 | } 798 | },{ 799 | name: "Moul", 800 | file: "http://fonts.googleapis.com/css?family=Moul:regular", 801 | variants: { 802 | "Regular": ["normal", "normal"] 803 | } 804 | },{ 805 | name: "Moulpali", 806 | file: "http://fonts.googleapis.com/css?family=Moulpali:regular", 807 | variants: { 808 | "Regular": ["normal", "normal"] 809 | } 810 | },{ 811 | name: "Mountains of Christmas", 812 | file: "http://fonts.googleapis.com/css?family=Mountains+of+Christmas:regular", 813 | variants: { 814 | "Regular": ["normal", "normal"] 815 | } 816 | },{ 817 | name: "Muli", 818 | file: "http://fonts.googleapis.com/css?family=Muli:300,300italic,400,400italic", 819 | variants: { 820 | "Light": ["300", "normal"], 821 | "Light italic": ["300", "italic"], 822 | "Regular": ["normal", "normal"], 823 | "Regular italic": ["normal", "italic"] 824 | } 825 | },{ 826 | name: "Neucha", 827 | file: "http://fonts.googleapis.com/css?family=Neucha:regular", 828 | variants: { 829 | "Regular": ["normal", "normal"] 830 | } 831 | },{ 832 | name: "Neuton", 833 | file: "http://fonts.googleapis.com/css?family=Neuton:regular,italic", 834 | variants: { 835 | "Regular": ["normal", "normal"], 836 | "Regular italic": ["normal", "italic"] 837 | } 838 | },{ 839 | name: "News Cycle", 840 | file: "http://fonts.googleapis.com/css?family=News+Cycle:regular", 841 | variants: { 842 | "Regular": ["normal", "normal"] 843 | } 844 | },{ 845 | name: "Nobile", 846 | file: "http://fonts.googleapis.com/css?family=Nobile:regular,italic,bold,bolditalic", 847 | variants: { 848 | "Regular": ["normal", "normal"], 849 | "Italic": ["normal", "italic"], 850 | "Bold": ["bold", "normal"], 851 | "Bold italic": ["bold", "italic"] 852 | } 853 | },{ 854 | name: "Nova Cut", 855 | file: "http://fonts.googleapis.com/css?family=Nova+Cut:regular", 856 | variants: { 857 | "Regular": ["normal", "normal"] 858 | } 859 | },{ 860 | name: "Nova Flat", 861 | file: "http://fonts.googleapis.com/css?family=Nova+Flat:regular", 862 | variants: { 863 | "Regular": ["normal", "normal"] 864 | } 865 | },{ 866 | name: "Nova Mono", 867 | file: "http://fonts.googleapis.com/css?family=Nova+Mono:regular", 868 | variants: { 869 | "Regular": ["normal", "normal"] 870 | } 871 | },{ 872 | name: "Nova Oval", 873 | file: "http://fonts.googleapis.com/css?family=Nova+Oval:regular", 874 | variants: { 875 | "Regular": ["normal", "normal"] 876 | } 877 | },{ 878 | name: "Nova Round", 879 | file: "http://fonts.googleapis.com/css?family=Nova+Round:regular", 880 | variants: { 881 | "Regular": ["normal", "normal"] 882 | } 883 | },{ 884 | name: "Nova Script", 885 | file: "http://fonts.googleapis.com/css?family=Nova+Script:regular", 886 | variants: { 887 | "Regular": ["normal", "normal"] 888 | } 889 | },{ 890 | name: "Nova Slim", 891 | file: "http://fonts.googleapis.com/css?family=Nova+Slim:regular", 892 | variants: { 893 | "Regular": ["normal", "normal"] 894 | } 895 | },{ 896 | name: "Nova Square", 897 | file: "http://fonts.googleapis.com/css?family=Nova+Square:regular", 898 | variants: { 899 | "Regular": ["normal", "normal"] 900 | } 901 | },{ 902 | name: "Nunito", 903 | file: "http://fonts.googleapis.com/css?family=Nunito:300,400,700", 904 | variants: { 905 | "Light": ["300", "normal"], 906 | "Regular": ["normal", "normal"], 907 | "Bold": ["bold", "normal"] 908 | } 909 | },{ 910 | name: "OFL Sorts Mill Goudy TT", 911 | file: "http://fonts.googleapis.com/css?family=OFL+Sorts+Mill+Goudy+TT:regular,italic", 912 | variants: { 913 | "Regular": ["normal", "normal"], 914 | "Italic": ["normal", "italic"] 915 | } 916 | },{ 917 | name: "Odor Mean Chey", 918 | file: "http://fonts.googleapis.com/css?family=Odor+Mean+Chey:regular", 919 | variants: { 920 | "Regular": ["normal", "normal"] 921 | } 922 | },{ 923 | name: "Old Standard TT", 924 | file: "http://fonts.googleapis.com/css?family=Old+Standard+TT:regular,italic,bold", 925 | variants: { 926 | "Regular": ["normal", "normal"], 927 | "Italic": ["normal", "italic"], 928 | "Bold": ["bold", "normal"] 929 | } 930 | },{ 931 | name: "Open Sans", 932 | file: "http://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic,700,700italic,800,800italic", 933 | variants: { 934 | "Light": ["300", "normal"], 935 | "Light italic": ["300", "italic"], 936 | "Regular": ["400", "normal"], 937 | "Regular italic": ["400", "italic"], 938 | "600": ["600", "normal"], 939 | "600 italic": ["600", "italic"], 940 | "Bold": ["700", "normal"], 941 | "Bold italic": ["700", "italic"], 942 | "800": ["800", "normal"], 943 | "800 italic": ["800", "italic"] 944 | } 945 | },{ 946 | name: "Open Sans Condensed", 947 | file: "http://fonts.googleapis.com/css?family=Open+Sans+Condensed:300,300italic", 948 | variants: { 949 | "Light": ["300", "normal"], 950 | "Light italic": ["300", "italic"] 951 | } 952 | },{ 953 | name: "Orbitron", 954 | file: "http://fonts.googleapis.com/css?family=Orbitron:400,500,700,900", 955 | variants: { 956 | "Regular": ["400", "normal"], 957 | "500": ["500", "normal"], 958 | "Bold": ["700", "normal"], 959 | "900": ["900", "normal"] 960 | } 961 | },{ 962 | name: "Oswald", 963 | file: "http://fonts.googleapis.com/css?family=Oswald:regular", 964 | variants: { 965 | "Regular": ["normal", "normal"] 966 | } 967 | },{ 968 | name: "Over the Rainbow", 969 | file: "http://fonts.googleapis.com/css?family=Over+the+Rainbow:regular", 970 | variants: { 971 | "Regular": ["normal", "normal"] 972 | } 973 | },{ 974 | name: "PT Sans", 975 | file: "http://fonts.googleapis.com/css?family=PT+Sans:regular,italic,bold,bolditalic", 976 | variants: { 977 | "Regular": ["normal", "normal"], 978 | "Italic": ["normal", "italic"], 979 | "Bold": ["bold", "normal"], 980 | "Bold italic": ["bold", "italic"] 981 | } 982 | },{ 983 | name: "PT Sans Caption", 984 | file: "http://fonts.googleapis.com/css?family=PT+Sans+Caption:regular,bold", 985 | variants: { 986 | "Regular": ["normal", "normal"], 987 | "Bold": ["bold", "normal"] 988 | } 989 | },{ 990 | name: "PT Sans Narrow", 991 | file: "http://fonts.googleapis.com/css?family=PT+Sans+Narrow:regular,bold", 992 | variants: { 993 | "Regular": ["normal", "normal"], 994 | "Bold": ["bold", "normal"] 995 | } 996 | },{ 997 | name: "PT Serif", 998 | file: "http://fonts.googleapis.com/css?family=PT+Serif:regular,italic,bold,bolditalic", 999 | variants: { 1000 | "Regular": ["normal", "normal"], 1001 | "Italic": ["normal", "italic"], 1002 | "Bold": ["bold", "normal"], 1003 | "Bold italic": ["bold", "italic"] 1004 | } 1005 | },{ 1006 | name: "PT Serif Caption", 1007 | file: "http://fonts.googleapis.com/css?family=PT+Serif+Caption:regular,italic", 1008 | variants: { 1009 | "Regular": ["normal", "normal"], 1010 | "Italic": ["normal", "italic"] 1011 | } 1012 | },{ 1013 | name: "Pacifico", 1014 | file: "http://fonts.googleapis.com/css?family=Pacifico:regular", 1015 | variants: { 1016 | "Regular": ["normal", "normal"] 1017 | } 1018 | },{ 1019 | name: "Paytone One", 1020 | file: "http://fonts.googleapis.com/css?family=Paytone+One:regular", 1021 | variants: { 1022 | "Regular": ["normal", "normal"] 1023 | } 1024 | },{ 1025 | name: "Permanent Marker", 1026 | file: "http://fonts.googleapis.com/css?family=Permanent+Marker:regular", 1027 | variants: { 1028 | "Regular": ["normal", "normal"] 1029 | } 1030 | },{ 1031 | name: "Philosopher", 1032 | file: "http://fonts.googleapis.com/css?family=Philosopher:regular", 1033 | variants: { 1034 | "Regular": ["normal", "normal"] 1035 | } 1036 | },{ 1037 | name: "Play", 1038 | file: "http://fonts.googleapis.com/css?family=Play:regular,bold", 1039 | variants: { 1040 | "Regular": ["normal", "normal"], 1041 | "Bold": ["bold", "normal"] 1042 | } 1043 | },{ 1044 | name: "Playfair Display", 1045 | file: "http://fonts.googleapis.com/css?family=Playfair+Display:regular", 1046 | variants: { 1047 | "Regular": ["normal", "normal"] 1048 | } 1049 | },{ 1050 | name: "Podkova", 1051 | file: "http://fonts.googleapis.com/css?family=Podkova:regular", 1052 | variants: { 1053 | "Regular": ["normal", "normal"] 1054 | } 1055 | },{ 1056 | name: "Preahvihear", 1057 | file: "http://fonts.googleapis.com/css?family=Preahvihear:regular", 1058 | variants: { 1059 | "Regular": ["normal", "normal"] 1060 | } 1061 | },{ 1062 | name: "Puritan", 1063 | file: "http://fonts.googleapis.com/css?family=Puritan:regular,italic,bold,bolditalic", 1064 | variants: { 1065 | "Regular": ["normal", "normal"], 1066 | "Italic": ["normal", "italic"], 1067 | "Bold": ["bold", "normal"], 1068 | "Bold italic": ["bold", "italic"] 1069 | } 1070 | },{ 1071 | name: "Quattrocento", 1072 | file: "http://fonts.googleapis.com/css?family=Quattrocento:regular", 1073 | variants: { 1074 | "Regular": ["normal", "normal"] 1075 | } 1076 | },{ 1077 | name: "Quattrocento Sans", 1078 | file: "http://fonts.googleapis.com/css?family=Quattrocento+Sans:regular", 1079 | variants: { 1080 | "Regular": ["normal", "normal"] 1081 | } 1082 | },{ 1083 | name: "Radley", 1084 | file: "http://fonts.googleapis.com/css?family=Radley:regular", 1085 | variants: { 1086 | "Regular": ["normal", "normal"] 1087 | } 1088 | },{ 1089 | name: "Raleway", 1090 | file: "http://fonts.googleapis.com/css?family=Raleway:100", 1091 | variants: { 1092 | "100": ["100", "normal"] 1093 | } 1094 | },{ 1095 | name: "Reenie Beanie", 1096 | file: "http://fonts.googleapis.com/css?family=Reenie+Beanie:regular", 1097 | variants: { 1098 | "Regular": ["normal", "normal"] 1099 | } 1100 | },{ 1101 | name: "Rock Salt", 1102 | file: "http://fonts.googleapis.com/css?family=Rock+Salt:regular", 1103 | variants: { 1104 | "Regular": ["normal", "normal"] 1105 | } 1106 | },{ 1107 | name: "Rokkitt", 1108 | file: "http://fonts.googleapis.com/css?family=Rokkitt:regular", 1109 | variants: { 1110 | "Regular": ["normal", "normal"] 1111 | } 1112 | },{ 1113 | name: "Ruslan Display", 1114 | file: "http://fonts.googleapis.com/css?family=Ruslan+Display:regular", 1115 | variants: { 1116 | "Regular": ["normal", "normal"] 1117 | } 1118 | },{ 1119 | name: "Schoolbell", 1120 | file: "http://fonts.googleapis.com/css?family=Schoolbell:regular", 1121 | variants: { 1122 | "Regular": ["normal", "normal"] 1123 | } 1124 | },{ 1125 | name: "Shadows Into Light", 1126 | file: "http://fonts.googleapis.com/css?family=Shadows+Into+Light:regular", 1127 | variants: { 1128 | "Regular": ["normal", "normal"] 1129 | } 1130 | },{ 1131 | name: "Shanti", 1132 | file: "http://fonts.googleapis.com/css?family=Shanti:regular", 1133 | variants: { 1134 | "Regular": ["normal", "normal"] 1135 | } 1136 | },{ 1137 | name: "Siemreap", 1138 | file: "http://fonts.googleapis.com/css?family=Siemreap:regular", 1139 | variants: { 1140 | "Regular": ["normal", "normal"] 1141 | } 1142 | },{ 1143 | name: "Sigmar One", 1144 | file: "http://fonts.googleapis.com/css?family=Sigmar+One:regular", 1145 | variants: { 1146 | "Regular": ["normal", "normal"] 1147 | } 1148 | },{ 1149 | name: "Six Caps", 1150 | file: "http://fonts.googleapis.com/css?family=Six+Caps:regular", 1151 | variants: { 1152 | "Regular": ["normal", "normal"] 1153 | } 1154 | },{ 1155 | name: "Slackey", 1156 | file: "http://fonts.googleapis.com/css?family=Slackey:regular", 1157 | variants: { 1158 | "Regular": ["normal", "normal"] 1159 | } 1160 | },{ 1161 | name: "Smythe", 1162 | file: "http://fonts.googleapis.com/css?family=Smythe:regular", 1163 | variants: { 1164 | "Regular": ["normal", "normal"] 1165 | } 1166 | },{ 1167 | name: "Sniglet", 1168 | file: "http://fonts.googleapis.com/css?family=Sniglet:800", 1169 | variants: { 1170 | "800": ["800", "normal"] 1171 | } 1172 | },{ 1173 | name: "Special Elite", 1174 | file: "http://fonts.googleapis.com/css?family=Special+Elite:regular", 1175 | variants: { 1176 | "Regular": ["normal", "normal"] 1177 | } 1178 | },{ 1179 | name: "Sue Ellen Francisco", 1180 | file: "http://fonts.googleapis.com/css?family=Sue+Ellen+Francisco:regular", 1181 | variants: { 1182 | "Regular": ["normal", "normal"] 1183 | } 1184 | },{ 1185 | name: "Sunshiney", 1186 | file: "http://fonts.googleapis.com/css?family=Sunshiney:regular", 1187 | variants: { 1188 | "Regular": ["normal", "normal"] 1189 | } 1190 | },{ 1191 | name: "Suwannaphum", 1192 | file: "http://fonts.googleapis.com/css?family=Suwannaphum:regular", 1193 | variants: { 1194 | "Regular": ["normal", "normal"] 1195 | } 1196 | },{ 1197 | name: "Swanky and Moo Moo", 1198 | file: "http://fonts.googleapis.com/css?family=Swanky+and+Moo+Moo:regular", 1199 | variants: { 1200 | "Regular": ["normal", "normal"] 1201 | } 1202 | },{ 1203 | name: "Syncopate", 1204 | file: "http://fonts.googleapis.com/css?family=Syncopate:regular,bold", 1205 | variants: { 1206 | "Regular": ["normal", "normal"], 1207 | "Bold": ["bold", "normal"] 1208 | } 1209 | },{ 1210 | name: "Tangerine", 1211 | file: "http://fonts.googleapis.com/css?family=Tangerine:regular,bold", 1212 | variants: { 1213 | "Regular": ["normal", "normal"], 1214 | "Bold": ["bold", "normal"] 1215 | } 1216 | },{ 1217 | name: "Taprom", 1218 | file: "http://fonts.googleapis.com/css?family=Taprom:regular", 1219 | variants: { 1220 | "Regular": ["normal", "normal"] 1221 | } 1222 | },{ 1223 | name: "Tenor Sans", 1224 | file: "http://fonts.googleapis.com/css?family=Tenor+Sans:regular", 1225 | variants: { 1226 | "Regular": ["normal", "normal"] 1227 | } 1228 | },{ 1229 | name: "Terminal Dosis Light", 1230 | file: "http://fonts.googleapis.com/css?family=Terminal+Dosis+Light:regular", 1231 | variants: { 1232 | "Regular": ["normal", "normal"] 1233 | } 1234 | },{ 1235 | name: "The Girl Next Door", 1236 | file: "http://fonts.googleapis.com/css?family=The+Girl+Next+Door:regular", 1237 | variants: { 1238 | "Regular": ["normal", "normal"] 1239 | } 1240 | },{ 1241 | name: "Tinos", 1242 | file: "http://fonts.googleapis.com/css?family=Tinos:regular,italic,bold,bolditalic", 1243 | variants: { 1244 | "Regular": ["normal", "normal"], 1245 | "Italic": ["normal", "italic"], 1246 | "Bold": ["bold", "normal"], 1247 | "Bold italic": ["bold", "italic"] 1248 | } 1249 | },{ 1250 | name: "Ubuntu", 1251 | file: "http://fonts.googleapis.com/css?family=Ubuntu:300,300italic,regular,italic,500,500italic,bold,bolditalic", 1252 | variants: { 1253 | "Light": ["300", "normal"], 1254 | "Light italic": ["300", "italic"], 1255 | "Regular": ["400", "normal"], 1256 | "Regular italic": ["400", "italic"], 1257 | "500": ["500", "normal"], 1258 | "500 italic": ["500", "italic"], 1259 | "Bold": ["700", "normal"], 1260 | "Bold italic": ["700", "italic"] 1261 | } 1262 | },{ 1263 | name: "Ultra", 1264 | file: "http://fonts.googleapis.com/css?family=Ultra:regular", 1265 | variants: { 1266 | "Regular": ["normal", "normal"] 1267 | } 1268 | },{ 1269 | name: "UnifrakturCook", 1270 | file: "http://fonts.googleapis.com/css?family=UnifrakturCook:bold", 1271 | variants: { 1272 | "Bold": ["bold", "normal"] 1273 | } 1274 | },{ 1275 | name: "UnifrakturMaguntia", 1276 | file: "http://fonts.googleapis.com/css?family=UnifrakturMaguntia:regular", 1277 | variants: { 1278 | "Regular": ["normal", "normal"] 1279 | } 1280 | },{ 1281 | name: "Unkempt", 1282 | file: "http://fonts.googleapis.com/css?family=Unkempt:regular", 1283 | variants: { 1284 | "Regular": ["normal", "normal"] 1285 | } 1286 | },{ 1287 | name: "VT323", 1288 | file: "http://fonts.googleapis.com/css?family=VT323:regular", 1289 | variants: { 1290 | "Regular": ["normal", "normal"] 1291 | } 1292 | },{ 1293 | name: "Vibur", 1294 | file: "http://fonts.googleapis.com/css?family=Vibur:regular", 1295 | variants: { 1296 | "Regular": ["normal", "normal"] 1297 | } 1298 | },{ 1299 | name: "Vollkorn", 1300 | file: "http://fonts.googleapis.com/css?family=Vollkorn:regular,italic,bold,bolditalic", 1301 | variants: { 1302 | "Regular": ["normal", "normal"], 1303 | "Italic": ["normal", "italic"], 1304 | "Bold": ["bold", "normal"], 1305 | "Bold italic": ["bold", "italic"] 1306 | } 1307 | },{ 1308 | name: "Waiting for the Sunrise", 1309 | file: "http://fonts.googleapis.com/css?family=Waiting+for+the+Sunrise:regular", 1310 | variants: { 1311 | "Regular": ["normal", "normal"] 1312 | } 1313 | },{ 1314 | name: "Wallpoet", 1315 | file: "http://fonts.googleapis.com/css?family=Wallpoet:regular", 1316 | variants: { 1317 | "Regular": ["normal", "normal"] 1318 | } 1319 | },{ 1320 | name: "Walter Turncoat", 1321 | file: "http://fonts.googleapis.com/css?family=Walter+Turncoat:regular", 1322 | variants: { 1323 | "Regular": ["normal", "normal"] 1324 | } 1325 | },{ 1326 | name: "Wire One", 1327 | file: "http://fonts.googleapis.com/css?family=Wire+One:regular", 1328 | variants: { 1329 | "Regular": ["normal", "normal"] 1330 | } 1331 | },{ 1332 | name: "Yanone Kaffeesatz", 1333 | file: "http://fonts.googleapis.com/css?family=Yanone+Kaffeesatz:200,300,400,700", 1334 | variants: { 1335 | "Extra light": ["200", "normal"], 1336 | "Light": ["300", "normal"], 1337 | "Regular": ["normal", "normal"], 1338 | "Bold": ["bold", "normal"] 1339 | } 1340 | },{ 1341 | name: "Zeyada", 1342 | file: "http://fonts.googleapis.com/css?family=Zeyada:regular", 1343 | variants: { 1344 | "Regular": ["normal", "normal"] 1345 | } 1346 | } 1347 | ]; --------------------------------------------------------------------------------