1
0
Fork 0
mirror of https://github.com/FrankerFaceZ/FrankerFaceZ.git synced 2025-06-27 12:55:55 +00:00

This is a maintenance commit with no released build.

* Added: `npm run font` command for editing the Fontello icon font. Use it to get started, then start the development server with `npm start` and changes will automatically save when you click `Export Font` from Fontello.
* Changed: The list of Fontello icons is now extracted from our Fontello config file so that it doesn't have to be manually updated.
This commit is contained in:
SirStendec 2019-09-29 15:49:29 -04:00
parent 1c0f7edab5
commit 38c87840af
23 changed files with 1502 additions and 166 deletions

1
.gitignore vendored
View file

@ -9,3 +9,4 @@ stats.json
.idea
*.iml
credentials.json
.fontello-session

View file

@ -17,7 +17,7 @@ server for development. To get everything you need:
From there, you can use npm to build FrankerFaceZ from source simply by
running `npm run build`. For development, you can instruct gulp to watch
running `npm run build`. For development, you can instruct webpack to watch
the source files for changes and re-build automatically with `npm start`
FrankerFaceZ comes with a local development server that listens on port 8000
@ -32,6 +32,15 @@ It should be noted that this project is not a browser extension that you
would load in your browser's extensions system. You still need the FrankerFaceZ
extension or user-script for your browser.
You can edit the project's icon font using the `npm run font` command. This will
create a new Fontello session, if one doesn't already exist, and open your
default web browser to Fontello so you can edit the font.
If you're running the development server with `npm start`, you'll be able to
automatically save changes to the Fontello font by clicking Fontello's Export
button. Otherwise, you can use `npm run font:save` to download the changes
from your session.
Editor Settings
===============

24
bin/update_fonts.js Normal file
View file

@ -0,0 +1,24 @@
'use strict';
const fs = require('fs');
const path = require('path');
const dir = 'styles/fontello';
for(const file of fs.readdirSync(dir)) {
if ( file.endsWith('.css') ) {
const old_path = path.join(dir, file),
new_path = `${old_path.substr(0, old_path.length - 4)}.scss`;
fs.renameSync(old_path, new_path);
}
}
const config = JSON.parse(fs.readFileSync('fontello.config.json', 'utf8'));
const icons = config.glyphs.map(x => x.css);
fs.writeFileSync('src/utilities/ffz-icons.js', `'use strict';
// This is a generated file. To update it, please run: npm run font:update
/* eslint quotes: 0 */
export default ${JSON.stringify(icons, null, '\t')};`);

6
fontello.client.json Normal file
View file

@ -0,0 +1,6 @@
{
"config": "./fontello.config.json",
"download": "https://localhost:8000/update_font",
"css": "./styles/fontello",
"font": "./res/font"
}

566
fontello.config.json Normal file
View file

@ -0,0 +1,566 @@
{
"name": "ffz-fontello",
"css_prefix_text": "ffz-i-",
"css_use_suffix": false,
"hinting": true,
"units_per_em": 1000,
"ascent": 850,
"glyphs": [
{
"uid": "04f022b8bd044d4ccfffd3887ff72088",
"css": "window-minimize",
"code": 62161,
"src": "fontawesome"
},
{
"uid": "07f0832c07f3d9713fffb06c8bffa027",
"css": "window-maximize",
"code": 62160,
"src": "fontawesome"
},
{
"uid": "5211af474d3a9848f67f945e2ccaf143",
"css": "cancel",
"code": 59392,
"src": "fontawesome"
},
{
"uid": "1b294e4ad5be28af1bd6bbc2053c110c",
"css": "zreknarf",
"code": 59393,
"src": "custom_icons",
"selected": true,
"svg": {
"path": "M620.3 8.9C641.2 8.5 663 4.6 682.9 13.1 701.4 22.4 718.8 34.5 739.3 39 750 57.5 770.7 67 781.3 85.5 799.8 114.6 817.7 145.3 823.8 179.7 832.1 228.5 860.1 270.6 888.9 309.7 906.5 349.4 899 394.3 907.3 435.9 918.8 462.2 928.3 489.2 942 514.5 947.9 524.7 964.5 517.7 966.5 507.7 972.6 471.3 954.2 436.2 956.4 399.8 958.3 381.2 951.7 361.5 957.6 343.5 971.7 324.3 981.1 302.2 995.9 283.6 1014.2 255.6 1048.8 240.9 1081.7 244.5 1093.3 259.3 1108.1 271.2 1120.6 285.1 1135.4 307.1 1154.1 326.2 1171 346.5 1180.7 359.8 1186.7 375.4 1194 390.2 1208.4 415.3 1214.5 444 1228 469.6 1239.1 500.6 1256.5 530.7 1255.5 564.5 1258.9 574.5 1259.5 585 1260.6 595.4 1265.7 615.6 1275.1 639.2 1263.8 659.1 1251.5 685.9 1227.7 705.1 1204.6 722.3 1173.5 746.2 1145 773.8 1110.4 792.8 1089.5 806.4 1068.1 819.3 1045.2 829.1 1026.8 837.2 1014.1 854.5 994.7 860.4 982.9 869.1 974.3 883.5 958.9 886.1 935.5 893 912.9 867 889.7 879.7 874.4 889.1 857.9 896.2 841.5 903.3 797.9 932.1 748.6 951.9 697.6 962.9 654.8 961.8 612.1 966.1 569.2 965.3 551.2 955.7 529.8 959.7 511.6 950.8 479.9 943 455.6 919.9 426.4 906.6 411.7 899.5 398.1 890.4 384.8 881 371.6 871.4 363.4 856.2 349 848 329.4 847.4 315.5 865.5 296.5 868.1 284.7 869.5 272.7 869.7 260.8 869.7 242.9 851 231.6 824.9 206.5 814.5 180.8 795.6 152.3 780.3 130.4 756.8 117.5 743.7 103.6 731.8 88.2 721.9 63.9 701 47.5 673.1 29.6 646.9 13.8 624.3 2.9 597 6.1 569 9.4 527.9 9.2 486.1 19.1 445.8 39.9 392.2 76.3 346.7 111.7 301.9 130.7 274.7 162.5 249.6 197.8 258.9 214.5 267.2 227.3 282.3 234.5 299.4 240.6 313.2 252.4 324.7 254.3 340.2 259.3 370.2 262.5 401 258.1 431.3 249.4 462.7 242.8 495.6 246.2 528.3 246.3 543.2 261.1 555.7 275.8 551.7 291.5 548.2 296.3 530.8 303.1 518.5 311.7 497.6 324.6 479.2 337.4 460.9 355.9 433.8 363.5 401.5 376.6 371.8 387.2 348.4 385.3 322.4 389.7 297.6 393.7 258.4 386.5 218.5 393.3 179.5 400.1 160.1 402.5 139 412.8 121 428.2 102.3 447.5 87 463.3 68.4 472.1 57.5 484.9 51.4 496.9 44.8 537.3 30.9 576.7 10.2 620.3 8.9Z",
"width": 1277
},
"search": [
"zreknarf"
]
},
{
"uid": "9dd9e835aebe1060ba7190ad2b2ed951",
"css": "search",
"code": 59394,
"src": "fontawesome"
},
{
"uid": "7394501fc0b17cb7bda99538f92e26d6",
"css": "window-close",
"code": 62163,
"src": "fontawesome"
},
{
"uid": "d0e62145dbf40f30e47b3819b8b43a8f",
"css": "window-restore",
"code": 62162,
"src": "fontawesome"
},
{
"uid": "598a5f2bcf3521d1615de8e1881ccd17",
"css": "clock",
"code": 59395,
"src": "fontawesome"
},
{
"uid": "474656633f79ea2f1dad59ff63f6bf07",
"css": "star",
"code": 59396,
"src": "fontawesome"
},
{
"uid": "d17030afaecc1e1c22349b99f3c4992a",
"css": "star-empty",
"code": 59397,
"src": "fontawesome"
},
{
"uid": "e70df9acbabaebfbbf9c1dbc3e52ab13",
"css": "twitch",
"code": 61928,
"src": "fontawesome"
},
{
"uid": "627abcdb627cb1789e009c08e2678ef9",
"css": "twitter",
"code": 61593,
"src": "fontawesome"
},
{
"uid": "2d6150442079cbda7df64522dc24f482",
"css": "down-dir",
"code": 59398,
"src": "fontawesome"
},
{
"uid": "fb1c799ffe5bf8fb7f8bcb647c8fe9e6",
"css": "right-dir",
"code": 59399,
"src": "fontawesome"
},
{
"uid": "ecb97add13804c190456025e43ec003b",
"css": "keyboard",
"code": 61724,
"src": "fontawesome"
},
{
"uid": "c76b7947c957c9b78b11741173c8349b",
"css": "attention",
"code": 59400,
"src": "fontawesome"
},
{
"uid": "12f4ece88e46abd864e40b35e05b11cd",
"css": "ok",
"code": 59401,
"src": "fontawesome"
},
{
"uid": "e99461abfef3923546da8d745372c995",
"css": "cog",
"code": 59402,
"src": "fontawesome"
},
{
"uid": "44e04715aecbca7f266a17d5a7863c68",
"css": "plus",
"code": 59403,
"src": "fontawesome"
},
{
"uid": "750058837a91edae64b03d60fc7e81a7",
"css": "ellipsis-vert",
"code": 61762,
"src": "fontawesome"
},
{
"uid": "bbfb51903f40597f0b70fd75bc7b5cac",
"css": "trash",
"code": 61944,
"src": "fontawesome"
},
{
"uid": "c95735c17a10af81448c7fed98a04546",
"css": "folder-open",
"code": 59404,
"src": "fontawesome"
},
{
"uid": "9a76bc135eac17d2c8b8ad4a5774fc87",
"css": "download",
"code": 59405,
"src": "fontawesome"
},
{
"uid": "eeec3208c90b7b48e804919d0d2d4a41",
"css": "upload",
"code": 59406,
"src": "fontawesome"
},
{
"uid": "f5999a012fc3752386635ec02a858447",
"css": "download-cloud",
"code": 61677,
"src": "fontawesome"
},
{
"uid": "de2fc7a5c986ab8c622f63455d7cf814",
"css": "upload-cloud",
"code": 61678,
"src": "fontawesome"
},
{
"uid": "f4445feb55521283572ee88bc304f928",
"css": "floppy",
"code": 59407,
"src": "fontawesome"
},
{
"uid": "0bda4bc779d4c32623dec2e43bd67ee8",
"css": "gauge",
"code": 61668,
"src": "fontawesome"
},
{
"uid": "9b7a1c4122860a6066c6fda9df404495",
"css": "crown",
"code": 59408,
"src": "custom_icons",
"selected": true,
"svg": {
"path": "M785 290L500 5 215 290 0 75 0 645 1000 645 1000 75Z",
"width": 1000
},
"search": [
"crown"
]
},
{
"uid": "5fa5198b360abc57ba0cd05d68086715",
"css": "verified",
"code": 59409,
"src": "custom_icons",
"selected": true,
"svg": {
"path": "M164.8 164.8L562.5 0 960.3 164.8 1125 562.5 960.3 960.3 562.5 1125 164.8 960.3 0 562.5 164.8 164.8ZM461.3 819.4L842.3 418.1 751.7 332 456.3 643.3 355.5 548.3 269.9 639.4 461.4 819.4Z",
"width": 1000
},
"search": [
"verified"
]
},
{
"uid": "d73eceadda1f594cec0536087539afbf",
"css": "heart",
"code": 59410,
"src": "fontawesome"
},
{
"uid": "f3dc2d6d8fe9cf9ebff84dc260888cdf",
"css": "heart-empty",
"code": 59411,
"src": "fontawesome"
},
{
"uid": "3db5347bd219f3bce6025780f5d9ef45",
"css": "tag",
"code": 59412,
"src": "fontawesome"
},
{
"uid": "a3f89e106175a5c5c4e9738870b12e55",
"css": "tags",
"code": 59413,
"src": "fontawesome"
},
{
"uid": "09feb4465d9bd1364f4e301c9ddbaa92",
"css": "retweet",
"code": 59414,
"src": "fontawesome"
},
{
"uid": "acf41aa4018e58d49525665469e35665",
"css": "thumbs-up",
"code": 59415,
"src": "fontawesome"
},
{
"uid": "7533e68038fc6d520ede7a7ffa0a2f64",
"css": "thumbs-down",
"code": 59416,
"src": "fontawesome"
},
{
"uid": "cd21cbfb28ad4d903cede582157f65dc",
"css": "bell",
"code": 59417,
"src": "fontawesome"
},
{
"uid": "8a074400a056c59d389f2d0517281bd5",
"css": "bell-off",
"code": 61943,
"src": "fontawesome"
},
{
"uid": "d35a1d35efeb784d1dc9ac18b9b6c2b6",
"css": "pencil",
"code": 59418,
"src": "fontawesome"
},
{
"uid": "e82cedfa1d5f15b00c5a81c9bd731ea2",
"css": "info",
"code": 59419,
"src": "fontawesome"
},
{
"uid": "17ebadd1e3f274ff0205601eef7b9cc4",
"css": "help",
"code": 59420,
"src": "fontawesome"
},
{
"uid": "531bc468eecbb8867d822f1c11f1e039",
"css": "calendar",
"code": 59421,
"src": "fontawesome"
},
{
"uid": "ead4c82d04d7758db0f076584893a8c1",
"css": "calendar-empty",
"code": 61747,
"src": "fontawesome"
},
{
"uid": "9dc654095085167524602c9acc0c5570",
"css": "left-dir",
"code": 59422,
"src": "fontawesome"
},
{
"uid": "4d42044cbab8aa1146f577cb6272a3d8",
"css": "inventory",
"code": 59423,
"src": "custom_icons",
"selected": true,
"svg": {
"path": "M444.4 444.4H611.1L611.1 683.3 722.2 644.4V444.4H833.3 888.9V611.1L866.7 666.7 444.4 833.3H388.9V388.9L444.4 444.4ZM388.9 388.9V833.3H333.3L22.2 666.7 0 611.1V444.4H55.6V611.1L277.8 722.2 333.3 666.7V444.4L388.9 388.9ZM833.3 333.3H722.2L722.2 188.9 611.1 155.6V333.3H444.4L388.9 388.9V55.6H444.4L866.7 166.7 888.9 222.2V333.3H833.3ZM0 333.3L0 222.2 22.2 166.7 333.3 55.6H388.9V388.9L333.3 333.3V116.7L55.6 216.7V333.3H0ZM83.3 183.3L16.7 105.6 27.8 61.1 211.1 0 238.9 5.6 322.2 94.4 83.3 183.3ZM88.9 100L111.1 133.3 238.9 88.9 211.1 55.6 88.9 100Z",
"width": 1000
},
"search": [
"inventory_logo"
]
},
{
"uid": "c1f1975c885aa9f3dad7810c53b82074",
"css": "lock",
"code": 59424,
"src": "fontawesome"
},
{
"uid": "657ab647f6248a6b57a5b893beaf35a9",
"css": "lock-open",
"code": 59425,
"src": "fontawesome"
},
{
"uid": "a73c5deb486c8d66249811642e5d719a",
"css": "arrows-cw",
"code": 59426,
"src": "fontawesome"
},
{
"uid": "ea239dd8b0a0de2db4e1651fd68a97d1",
"css": "ignore",
"code": 59427,
"src": "custom_icons",
"selected": true,
"svg": {
"path": "M812.5 708.8V1000L579.9 806.1C553.9 809.9 527.4 812.5 500 812.5 258.4 812.5 62.5 658.6 62.5 468.8 62.5 278.9 258.4 125 500 125S937.5 278.9 937.5 468.8C937.5 562.3 889.6 646.9 812.5 708.8ZM687.5 437.5H312.5V500H687.5V437.5Z",
"width": 1000
},
"search": [
"ignore"
]
},
{
"uid": "98d9c83c1ee7c2c25af784b518c522c5",
"css": "block",
"code": 59428,
"src": "fontawesome"
},
{
"uid": "p57wgnf4glngbchbucdi029iptu8oxb8",
"css": "pin",
"code": 59429,
"src": "typicons"
},
{
"uid": "6373242453e92e8ce419b8391463867a",
"css": "pin-outline",
"code": 59430,
"src": "typicons"
},
{
"uid": "28f308aa0a07a67433f54c089c400d82",
"css": "gift",
"code": 59431,
"src": "fontawesome"
},
{
"uid": "e15f0d620a7897e2035c18c80142f6d9",
"css": "link-ext",
"code": 61582,
"src": "fontawesome"
},
{
"uid": "88e6faa0f633ee23667f815689e82af3",
"css": "eyedropper",
"code": 61947,
"src": "fontawesome"
},
{
"uid": "c5fd349cbd3d23e4ade333789c29c729",
"css": "eye",
"code": 59433,
"src": "fontawesome"
},
{
"uid": "7fd683b2c518ceb9e5fa6757f2276faa",
"css": "eye-off",
"code": 59434,
"src": "fontawesome"
},
{
"uid": "d6ac2bfbbe55d82aafaa353f66f94412",
"css": "discord",
"code": 59432,
"src": "custom_icons",
"selected": true,
"svg": {
"path": "M435 432.9C411.3 432.9 392.5 453.8 392.5 479.2S411.7 525.4 435 525.4C458.8 525.4 477.5 504.6 477.5 479.2 477.9 453.8 458.8 432.9 435 432.9ZM587.1 432.9C563.3 432.9 544.6 453.8 544.6 479.2S563.8 525.4 587.1 525.4C610.8 525.4 629.6 504.6 629.6 479.2S610.8 432.9 587.1 432.9ZM789.6 83.3H231.3C184.2 83.3 145.8 121.7 145.8 169.2V732.5C145.8 780 184.2 818.3 231.3 818.3H703.8L681.7 741.3 735 790.8 785.4 837.5 875 916.7V169.2C875 121.7 836.7 83.3 789.6 83.3ZM628.8 627.5S613.8 609.6 601.3 593.8C655.8 578.3 676.7 544.2 676.7 544.2 659.6 555.4 643.3 563.3 628.8 568.8 607.9 577.5 587.9 583.3 568.3 586.7 528.3 594.2 491.7 592.1 460.4 586.3 436.7 581.7 416.3 575 399.2 568.3 389.6 564.6 379.2 560 368.8 554.2 367.5 553.3 366.3 552.9 365 552.1 364.2 551.7 363.8 551.3 363.3 550.8 355.8 546.7 351.7 543.8 351.7 543.8S371.7 577.1 424.6 592.9C412.1 608.8 396.7 627.5 396.7 627.5 304.6 624.6 269.6 564.2 269.6 564.2 269.6 430 329.6 321.3 329.6 321.3 389.6 276.3 446.7 277.5 446.7 277.5L450.8 282.5C375.8 304.2 341.3 337.1 341.3 337.1S350.4 332.1 365.8 325C410.4 305.4 445.8 300 460.4 298.8 462.9 298.3 465 297.9 467.5 297.9 492.9 294.6 521.7 293.8 551.7 297.1 591.3 301.7 633.8 313.3 677.1 337.1 677.1 337.1 644.2 305.8 573.3 284.2L579.2 277.5S636.3 276.3 696.3 321.3C696.3 321.3 756.3 430 756.3 564.2 756.3 564.2 720.8 624.6 628.8 627.5Z",
"width": 1021
},
"search": [
"discord"
]
},
{
"uid": "881c3e2491c8027a5f192509ee97627e",
"css": "views",
"code": 59435,
"src": "custom_icons",
"selected": true,
"svg": {
"path": "M687.5 812.5H312.5L62.5 562.5V500 437.5L312.5 187.5H687.5L937.5 437.5V500 562.5L687.5 812.5ZM500 312.5C396.5 312.5 312.5 396.4 312.5 500 312.5 603.5 396.5 687.5 500 687.5 603.6 687.5 687.5 603.5 687.5 500 687.5 396.4 603.6 312.5 500 312.5ZM500 562.5C465.4 562.5 437.5 534.5 437.5 500S465.4 437.5 500 437.5 562.5 465.5 562.5 500 534.6 562.5 500 562.5Z",
"width": 1000
},
"search": [
"views"
]
},
{
"uid": "939c45a003c91448640d96d8e366e0f5",
"css": "conversations",
"code": 59436,
"src": "custom_icons",
"selected": true,
"svg": {
"path": "M155 294.5A76.9 76.9 0 0 1 230.8 230.8H1307.7A76.9 76.9 0 0 1 1383.5 294.5L1384.6 293.5V923.1A76.9 76.9 0 0 1 1307.7 1000H515.9L219.5 1296.4A38.5 38.5 0 0 1 153.8 1269.2V293.5L155 294.5Z",
"width": 1000
},
"search": [
"conversations"
]
},
{
"uid": "f9c8ea86275ca16128235c6452b67b8e",
"css": "user-secret",
"code": 61979,
"src": "fontawesome"
},
{
"uid": "0f6a2573a7b6df911ed199bb63717e27",
"css": "github",
"code": 61595,
"src": "fontawesome"
},
{
"uid": "a823417914833e03de5d756eb1563187",
"css": "channels",
"code": 59437,
"src": "custom_icons",
"selected": true,
"svg": {
"path": "M450 250H550A50 50 0 0 1 600 300V400A50 50 0 0 1 550 450H450A50 50 0 0 1 400 400V300A50 50 0 0 1 450 250M750 250H850A50 50 0 0 1 900 300V400A50 50 0 0 1 850 450H750A50 50 0 0 1 700 400V300A50 50 0 0 1 750 250M750 550H850A50 50 0 0 1 900 600V700A50 50 0 0 1 850 750H750A50 50 0 0 1 700 700V600A50 50 0 0 1 750 550M450 550H550A50 50 0 0 1 600 600V700A50 50 0 0 1 550 750H450A50 50 0 0 1 400 700V600A50 50 0 0 1 450 550M150 550H250A50 50 0 0 1 300 600V700A50 50 0 0 1 250 750H150A50 50 0 0 1 100 700V600A50 50 0 0 1 150 550M150 250H250A50 50 0 0 1 300 300V400A50 50 0 0 1 250 450H150A50 50 0 0 1 100 400V300A50 50 0 0 1 150 250",
"width": 1000
},
"search": [
"channels"
]
},
{
"uid": "8276f8f6c1a9e58a5b6eb934a1d49d3e",
"css": "camera",
"code": 59438,
"src": "custom_icons",
"selected": true,
"svg": {
"path": "M560.3 250C581.9 250 599.3 267 600 288.1V711.9A39.6 39.6 0 0 1 560.3 750H140.1A39.8 39.8 0 0 1 100.1 710.5V289.5C100.1 267.7 117.9 250 140.1 250H560.3ZM882.9 305.5C893.6 312 900 323.3 900 335.6V664.5A35.3 35.3 0 0 1 882.9 694.5 37.3 37.3 0 0 1 847.7 696.5L700 641.7V357.7L847.6 303.4A37.4 37.4 0 0 1 882.9 305.4Z",
"width": 1000
},
"search": [
"camera"
]
},
{
"uid": "d862a10e1448589215be19702f98f2c1",
"css": "smile",
"code": 61720,
"src": "fontawesome"
},
{
"uid": "bc71f4c6e53394d5ba46b063040014f1",
"css": "cw",
"code": 59439,
"src": "fontawesome"
},
{
"uid": "80cd1022bd9ea151d554bec1fa05f2de",
"css": "up-dir",
"code": 59440,
"src": "fontawesome"
},
{
"uid": "95376bf082bfec6ce06ea1cda7bd7ead",
"css": "up-big",
"code": 59441,
"src": "fontawesome"
},
{
"uid": "ce06b5805120d0c2f8d60cd3f1a4fdb5",
"css": "play",
"code": 59442,
"src": "fontawesome"
},
{
"uid": "4fc9b8c122d1b5ca3df42a104a655e8b",
"css": "language",
"code": 61867,
"src": "fontawesome"
},
{
"uid": "65b3ce930627cabfb6ac81ac60ec5ae4",
"css": "sort-up",
"code": 61662,
"src": "fontawesome"
},
{
"uid": "94103e1b3f1e8cf514178ec5912b4469",
"css": "sort-down",
"code": 61661,
"src": "fontawesome"
},
{
"uid": "0cd2582b8c93719d066ee0affd02ac78",
"css": "sort-alt-up",
"code": 61792,
"src": "fontawesome"
},
{
"uid": "27b13eff5eb0ca15e01a6e65ffe6eeec",
"css": "sort-alt-down",
"code": 61793,
"src": "fontawesome"
},
{
"uid": "8b80d36d4ef43889db10bc1f0dc9a862",
"css": "user",
"code": 59443,
"src": "fontawesome"
},
{
"uid": "e0f6f5c837f46bc0cf7a448604452b3b",
"css": "clip",
"code": 59444,
"src": "custom_icons",
"selected": true,
"svg": {
"path": "M900 242L886 143A50.1 50.1 0 0 0 829.4 100.4L705.7 118 801 255.9 900 242ZM648.5 277L553.3 139 404.7 160 499.9 298 648.5 277ZM362 319L266.8 181 143.1 198.5A50 50 0 0 0 100.5 255L114.5 354 362 319ZM900 450V854.1C900 881.7 877.7 900 850 900H150C122.4 900 100 881.7 100 854.1V450H350L250 600H400L500 450H650L550 600H700L800 450H900Z",
"width": 1000
},
"search": [
"clip"
]
},
{
"uid": "47a1f80457068fbeab69fdb83d7d0817",
"css": "youtube-play",
"code": 61802,
"src": "fontawesome"
}
]
}

152
package-lock.json generated
View file

@ -1,6 +1,6 @@
{
"name": "frankerfacez",
"version": "4.7.1",
"version": "4.12.3",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@ -436,6 +436,39 @@
"to-fast-properties": "^2.0.0"
}
},
"@ffz/fontello-cli": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@ffz/fontello-cli/-/fontello-cli-1.0.3.tgz",
"integrity": "sha512-xdXNiaT5+wgnYWCrX5thonncE5bN9fFk+z5rGxr6AwCNXQQKzg2D24MngDY3DTT5LHRwLid3CQJ2GHJ5g9n0FQ==",
"dev": true,
"requires": {
"colors": "^1.4.0",
"commander": "^3.0.2",
"form-data": "^2.5.1",
"node-fetch": "^2.6.0",
"open": "^6.4.0",
"unzipper": "^0.10.5"
},
"dependencies": {
"commander": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz",
"integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==",
"dev": true
},
"form-data": {
"version": "2.5.1",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz",
"integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==",
"dev": true,
"requires": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.6",
"mime-types": "^2.1.12"
}
}
}
},
"@ffz/icu-msgparser": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@ffz/icu-msgparser/-/icu-msgparser-1.0.1.tgz",
@ -1190,12 +1223,28 @@
"tweetnacl": "^0.14.3"
}
},
"big-integer": {
"version": "1.6.45",
"resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.45.tgz",
"integrity": "sha512-nmb9E7oEtVJ7SmSCH/DeJobXyuRmaofkpoQSimMFu3HKJ5MADtM825SPLhDuWhZ6TElLAQtgJbQmBZuHIRlZoA==",
"dev": true
},
"big.js": {
"version": "5.2.2",
"resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
"integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
"dev": true
},
"binary": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz",
"integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=",
"dev": true,
"requires": {
"buffers": "~0.1.1",
"chainsaw": "~0.1.0"
}
},
"binary-extensions": {
"version": "1.13.1",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
@ -1402,12 +1451,24 @@
"integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==",
"dev": true
},
"buffer-indexof-polyfill": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.1.tgz",
"integrity": "sha1-qfuAbOgUXVQoUQznLyeLs2OmOL8=",
"dev": true
},
"buffer-xor": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
"integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=",
"dev": true
},
"buffers": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz",
"integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=",
"dev": true
},
"builtin-status-codes": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
@ -1495,6 +1556,15 @@
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
"dev": true
},
"chainsaw": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz",
"integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=",
"dev": true,
"requires": {
"traverse": ">=0.3.0 <0.4"
}
},
"chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
@ -1664,6 +1734,12 @@
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
"dev": true
},
"colors": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
"integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
"dev": true
},
"combined-stream": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
@ -2264,6 +2340,15 @@
"integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==",
"dev": true
},
"duplexer2": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
"integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=",
"dev": true,
"requires": {
"readable-stream": "^2.0.2"
}
},
"duplexify": {
"version": "3.7.1",
"resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
@ -2560,9 +2645,9 @@
}
},
"eslint-utils": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.0.tgz",
"integrity": "sha512-7ehnzPaP5IIEh1r1tkjuIrxqhNkzUJa9z3R92tLJdZIVdWaczEhr3EbhGtsMrVxi1KeR8qA7Off6SWc5WNQqyQ==",
"version": "1.4.2",
"resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.2.tgz",
"integrity": "sha512-eAZS2sEUMlIeCjBeubdj45dmBHQwPHWyBcT1VSYB7o9x9WRRqKxyUoiXlRjyAwzN7YEzHJlYg0NmzDRWx6GP4Q==",
"dev": true,
"requires": {
"eslint-visitor-keys": "^1.0.0"
@ -4837,6 +4922,12 @@
"uc.micro": "^1.0.1"
}
},
"listenercount": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz",
"integrity": "sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc=",
"dev": true
},
"load-json-file": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
@ -5351,6 +5442,12 @@
"integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
"dev": true
},
"node-fetch": {
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
"integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==",
"dev": true
},
"node-forge": {
"version": "0.7.5",
"resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.5.tgz",
@ -5740,6 +5837,15 @@
}
}
},
"open": {
"version": "6.4.0",
"resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz",
"integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==",
"dev": true,
"requires": {
"is-wsl": "^1.1.0"
}
},
"opn": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz",
@ -7921,6 +8027,12 @@
}
}
},
"traverse": {
"version": "0.3.9",
"resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz",
"integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=",
"dev": true
},
"trim-newlines": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
@ -8087,6 +8199,38 @@
}
}
},
"unzipper": {
"version": "0.10.5",
"resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.5.tgz",
"integrity": "sha512-i5ufkXNjWZYxU/0nKKf6LkvW8kn9YzRvfwuPWjXP+JTFce/8bqeR0gEfbiN2IDdJa6ZU6/2IzFRLK0z1v0uptw==",
"dev": true,
"requires": {
"big-integer": "^1.6.17",
"binary": "~0.3.0",
"bluebird": "~3.4.1",
"buffer-indexof-polyfill": "~1.0.0",
"duplexer2": "~0.1.4",
"fstream": "^1.0.12",
"graceful-fs": "^4.2.2",
"listenercount": "~1.0.1",
"readable-stream": "~2.3.6",
"setimmediate": "~1.0.4"
},
"dependencies": {
"bluebird": {
"version": "3.4.7",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz",
"integrity": "sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM=",
"dev": true
},
"graceful-fs": {
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
"integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==",
"dev": true
}
}
},
"upath": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz",

View file

@ -17,7 +17,11 @@
"build:clips:dev": "npm run clean && webpack --config webpack.clips.dev.js",
"build:stats": "cross-env NODE_ENV=production webpack --config webpack.web.prod.js --json > stats.json",
"build:prod": "cross-env NODE_ENV=production webpack --config webpack.web.prod.js",
"build:dev": "npm run clean && webpack --config webpack.web.dev.js"
"build:dev": "npm run clean && webpack --config webpack.web.dev.js",
"font": "npm run font:edit",
"font:edit": "fontello-cli --cli-config fontello.client.json edit",
"font:save": "fontello-cli --cli-config fontello.client.json save && npm run font:update",
"font:update": "node bin/update_fonts"
},
"devDependencies": {
"@babel/core": "^7.5.5",
@ -26,6 +30,7 @@
"@babel/plugin-proposal-optional-chaining": "^7.2.0",
"@babel/plugin-syntax-dynamic-import": "^7.2.0",
"@babel/plugin-transform-react-jsx": "^7.3.0",
"@ffz/fontello-cli": "^1.0.3",
"babel-eslint": "^10.0.2",
"babel-loader": "^8.0.6",
"clean-webpack-plugin": "^3.0.0",

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -75,88 +75,9 @@
let id = 0;
import {escape_regex, deep_copy, debounce} from 'utilities/object';
import {load, ICONS as FA_ICONS, ALIASES as FA_ALIASES} from 'utilities/font-awesome';
import { maybeLoad } from '../utilities/font-awesome';
import {load, maybeLoad, ICONS as FA_ICONS, ALIASES as FA_ALIASES} from 'utilities/font-awesome';
const FFZ_ICONS = [
'cancel',
'zreknarf',
'search',
'clock',
'star',
'star-empty',
'down-dir',
'right-dir',
'attention',
'ok',
'cog',
'plus',
'folder-open',
'download',
'upload',
'floppy',
'crown',
'verified',
'heart',
'heart-empty',
'tag',
'tags',
'retweet',
'thumbs-up',
'thumbs-down',
'bell',
'pencil',
'info',
'help',
'calendar',
'left-dir',
'inventory',
'lock',
'lock-open',
'arrows-cw',
'ignore',
'block',
'pin',
'pin-outline',
'gift',
'discord',
'eye',
'eye-off',
'views',
'conversations',
'channels',
'camera',
'cw',
'up-dir',
'up-big',
'play',
'user',
'clip',
'link-ext',
'twitter',
'github',
'sort-down',
'sort-up',
'gauge',
'download-cloud',
'upload-cloud',
'smile',
'keyboard',
'calendar-empty',
'ellipsis-vert',
'sort-alt-up',
'sort-alt-down',
'language',
'twitch',
'bell-off',
'trash',
'eyedropper',
'user-secret',
'window-maximize',
'window-minimize',
'window-restore',
'window-close'
];
import FFZ_ICONS from 'utilities/ffz-icons';
const FFZ_ALIASES = {
'block': ['ban', 'block'],

View file

@ -0,0 +1,84 @@
'use strict';
// This is a generated file. To update it, please run: npm run font:update
/* eslint quotes: 0 */
export default [
"window-minimize",
"window-maximize",
"cancel",
"zreknarf",
"search",
"window-close",
"window-restore",
"clock",
"star",
"star-empty",
"twitch",
"twitter",
"down-dir",
"right-dir",
"keyboard",
"attention",
"ok",
"cog",
"plus",
"ellipsis-vert",
"trash",
"folder-open",
"download",
"upload",
"download-cloud",
"upload-cloud",
"floppy",
"gauge",
"crown",
"verified",
"heart",
"heart-empty",
"tag",
"tags",
"retweet",
"thumbs-up",
"thumbs-down",
"bell",
"bell-off",
"pencil",
"info",
"help",
"calendar",
"calendar-empty",
"left-dir",
"inventory",
"lock",
"lock-open",
"arrows-cw",
"ignore",
"block",
"pin",
"pin-outline",
"gift",
"link-ext",
"eyedropper",
"eye",
"eye-off",
"discord",
"views",
"conversations",
"user-secret",
"github",
"channels",
"camera",
"smile",
"cw",
"up-dir",
"up-big",
"play",
"language",
"sort-up",
"sort-down",
"sort-alt-up",
"sort-alt-down",
"user",
"clip",
"youtube-play"
];

View file

@ -0,0 +1,85 @@
/*
Animation example, for spinners
*/
.animate-spin {
-moz-animation: spin 2s infinite linear;
-o-animation: spin 2s infinite linear;
-webkit-animation: spin 2s infinite linear;
animation: spin 2s infinite linear;
display: inline-block;
}
@-moz-keyframes spin {
0% {
-moz-transform: rotate(0deg);
-o-transform: rotate(0deg);
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-moz-transform: rotate(359deg);
-o-transform: rotate(359deg);
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
@-webkit-keyframes spin {
0% {
-moz-transform: rotate(0deg);
-o-transform: rotate(0deg);
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-moz-transform: rotate(359deg);
-o-transform: rotate(359deg);
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
@-o-keyframes spin {
0% {
-moz-transform: rotate(0deg);
-o-transform: rotate(0deg);
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-moz-transform: rotate(359deg);
-o-transform: rotate(359deg);
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
@-ms-keyframes spin {
0% {
-moz-transform: rotate(0deg);
-o-transform: rotate(0deg);
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-moz-transform: rotate(359deg);
-o-transform: rotate(359deg);
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
@keyframes spin {
0% {
-moz-transform: rotate(0deg);
-o-transform: rotate(0deg);
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-moz-transform: rotate(359deg);
-o-transform: rotate(359deg);
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}

View file

@ -0,0 +1,79 @@
.ffz-i-cancel:before { content: '\e800'; } /* '' */
.ffz-i-zreknarf:before { content: '\e801'; } /* '' */
.ffz-i-search:before { content: '\e802'; } /* '' */
.ffz-i-clock:before { content: '\e803'; } /* '' */
.ffz-i-star:before { content: '\e804'; } /* '' */
.ffz-i-star-empty:before { content: '\e805'; } /* '' */
.ffz-i-down-dir:before { content: '\e806'; } /* '' */
.ffz-i-right-dir:before { content: '\e807'; } /* '' */
.ffz-i-attention:before { content: '\e808'; } /* '' */
.ffz-i-ok:before { content: '\e809'; } /* '' */
.ffz-i-cog:before { content: '\e80a'; } /* '' */
.ffz-i-plus:before { content: '\e80b'; } /* '' */
.ffz-i-folder-open:before { content: '\e80c'; } /* '' */
.ffz-i-download:before { content: '\e80d'; } /* '' */
.ffz-i-upload:before { content: '\e80e'; } /* '' */
.ffz-i-floppy:before { content: '\e80f'; } /* '' */
.ffz-i-crown:before { content: '\e810'; } /* '' */
.ffz-i-verified:before { content: '\e811'; } /* '' */
.ffz-i-heart:before { content: '\e812'; } /* '' */
.ffz-i-heart-empty:before { content: '\e813'; } /* '' */
.ffz-i-tag:before { content: '\e814'; } /* '' */
.ffz-i-tags:before { content: '\e815'; } /* '' */
.ffz-i-retweet:before { content: '\e816'; } /* '' */
.ffz-i-thumbs-up:before { content: '\e817'; } /* '' */
.ffz-i-thumbs-down:before { content: '\e818'; } /* '' */
.ffz-i-bell:before { content: '\e819'; } /* '' */
.ffz-i-pencil:before { content: '\e81a'; } /* '' */
.ffz-i-info:before { content: '\e81b'; } /* '' */
.ffz-i-help:before { content: '\e81c'; } /* '' */
.ffz-i-calendar:before { content: '\e81d'; } /* '' */
.ffz-i-left-dir:before { content: '\e81e'; } /* '' */
.ffz-i-inventory:before { content: '\e81f'; } /* '' */
.ffz-i-lock:before { content: '\e820'; } /* '' */
.ffz-i-lock-open:before { content: '\e821'; } /* '' */
.ffz-i-arrows-cw:before { content: '\e822'; } /* '' */
.ffz-i-ignore:before { content: '\e823'; } /* '' */
.ffz-i-block:before { content: '\e824'; } /* '' */
.ffz-i-pin:before { content: '\e825'; } /* '' */
.ffz-i-pin-outline:before { content: '\e826'; } /* '' */
.ffz-i-gift:before { content: '\e827'; } /* '' */
.ffz-i-discord:before { content: '\e828'; } /* '' */
.ffz-i-eye:before { content: '\e829'; } /* '' */
.ffz-i-eye-off:before { content: '\e82a'; } /* '' */
.ffz-i-views:before { content: '\e82b'; } /* '' */
.ffz-i-conversations:before { content: '\e82c'; } /* '' */
.ffz-i-channels:before { content: '\e82d'; } /* '' */
.ffz-i-camera:before { content: '\e82e'; } /* '' */
.ffz-i-cw:before { content: '\e82f'; } /* '' */
.ffz-i-up-dir:before { content: '\e830'; } /* '' */
.ffz-i-up-big:before { content: '\e831'; } /* '' */
.ffz-i-play:before { content: '\e832'; } /* '' */
.ffz-i-user:before { content: '\e833'; } /* '' */
.ffz-i-clip:before { content: '\e834'; } /* '' */
.ffz-i-link-ext:before { content: '\f08e'; } /* '' */
.ffz-i-twitter:before { content: '\f099'; } /* '' */
.ffz-i-github:before { content: '\f09b'; } /* '' */
.ffz-i-sort-down:before { content: '\f0dd'; } /* '' */
.ffz-i-sort-up:before { content: '\f0de'; } /* '' */
.ffz-i-gauge:before { content: '\f0e4'; } /* '' */
.ffz-i-download-cloud:before { content: '\f0ed'; } /* '' */
.ffz-i-upload-cloud:before { content: '\f0ee'; } /* '' */
.ffz-i-smile:before { content: '\f118'; } /* '' */
.ffz-i-keyboard:before { content: '\f11c'; } /* '' */
.ffz-i-calendar-empty:before { content: '\f133'; } /* '' */
.ffz-i-ellipsis-vert:before { content: '\f142'; } /* '' */
.ffz-i-sort-alt-up:before { content: '\f160'; } /* '' */
.ffz-i-sort-alt-down:before { content: '\f161'; } /* '' */
.ffz-i-youtube-play:before { content: '\f16a'; } /* '' */
.ffz-i-language:before { content: '\f1ab'; } /* '' */
.ffz-i-twitch:before { content: '\f1e8'; } /* '' */
.ffz-i-bell-off:before { content: '\f1f7'; } /* '' */
.ffz-i-trash:before { content: '\f1f8'; } /* '' */
.ffz-i-eyedropper:before { content: '\f1fb'; } /* '' */
.ffz-i-user-secret:before { content: '\f21b'; } /* '' */
.ffz-i-window-maximize:before { content: '\f2d0'; } /* '' */
.ffz-i-window-minimize:before { content: '\f2d1'; } /* '' */
.ffz-i-window-restore:before { content: '\f2d2'; } /* '' */
.ffz-i-window-close:before { content: '\f2d3'; } /* '' */

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,79 @@
.ffz-i-cancel { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe800;&nbsp;'); }
.ffz-i-zreknarf { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe801;&nbsp;'); }
.ffz-i-search { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe802;&nbsp;'); }
.ffz-i-clock { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe803;&nbsp;'); }
.ffz-i-star { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe804;&nbsp;'); }
.ffz-i-star-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe805;&nbsp;'); }
.ffz-i-down-dir { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe806;&nbsp;'); }
.ffz-i-right-dir { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe807;&nbsp;'); }
.ffz-i-attention { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe808;&nbsp;'); }
.ffz-i-ok { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe809;&nbsp;'); }
.ffz-i-cog { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80a;&nbsp;'); }
.ffz-i-plus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80b;&nbsp;'); }
.ffz-i-folder-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80c;&nbsp;'); }
.ffz-i-download { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80d;&nbsp;'); }
.ffz-i-upload { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80e;&nbsp;'); }
.ffz-i-floppy { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80f;&nbsp;'); }
.ffz-i-crown { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe810;&nbsp;'); }
.ffz-i-verified { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe811;&nbsp;'); }
.ffz-i-heart { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe812;&nbsp;'); }
.ffz-i-heart-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe813;&nbsp;'); }
.ffz-i-tag { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe814;&nbsp;'); }
.ffz-i-tags { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe815;&nbsp;'); }
.ffz-i-retweet { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe816;&nbsp;'); }
.ffz-i-thumbs-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe817;&nbsp;'); }
.ffz-i-thumbs-down { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe818;&nbsp;'); }
.ffz-i-bell { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe819;&nbsp;'); }
.ffz-i-pencil { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81a;&nbsp;'); }
.ffz-i-info { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81b;&nbsp;'); }
.ffz-i-help { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81c;&nbsp;'); }
.ffz-i-calendar { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81d;&nbsp;'); }
.ffz-i-left-dir { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81e;&nbsp;'); }
.ffz-i-inventory { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81f;&nbsp;'); }
.ffz-i-lock { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe820;&nbsp;'); }
.ffz-i-lock-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe821;&nbsp;'); }
.ffz-i-arrows-cw { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe822;&nbsp;'); }
.ffz-i-ignore { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe823;&nbsp;'); }
.ffz-i-block { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe824;&nbsp;'); }
.ffz-i-pin { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe825;&nbsp;'); }
.ffz-i-pin-outline { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe826;&nbsp;'); }
.ffz-i-gift { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe827;&nbsp;'); }
.ffz-i-discord { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe828;&nbsp;'); }
.ffz-i-eye { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe829;&nbsp;'); }
.ffz-i-eye-off { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82a;&nbsp;'); }
.ffz-i-views { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82b;&nbsp;'); }
.ffz-i-conversations { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82c;&nbsp;'); }
.ffz-i-channels { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82d;&nbsp;'); }
.ffz-i-camera { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82e;&nbsp;'); }
.ffz-i-cw { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82f;&nbsp;'); }
.ffz-i-up-dir { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe830;&nbsp;'); }
.ffz-i-up-big { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe831;&nbsp;'); }
.ffz-i-play { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe832;&nbsp;'); }
.ffz-i-user { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe833;&nbsp;'); }
.ffz-i-clip { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe834;&nbsp;'); }
.ffz-i-link-ext { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf08e;&nbsp;'); }
.ffz-i-twitter { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf099;&nbsp;'); }
.ffz-i-github { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf09b;&nbsp;'); }
.ffz-i-sort-down { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0dd;&nbsp;'); }
.ffz-i-sort-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0de;&nbsp;'); }
.ffz-i-gauge { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0e4;&nbsp;'); }
.ffz-i-download-cloud { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0ed;&nbsp;'); }
.ffz-i-upload-cloud { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0ee;&nbsp;'); }
.ffz-i-smile { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf118;&nbsp;'); }
.ffz-i-keyboard { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf11c;&nbsp;'); }
.ffz-i-calendar-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf133;&nbsp;'); }
.ffz-i-ellipsis-vert { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf142;&nbsp;'); }
.ffz-i-sort-alt-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf160;&nbsp;'); }
.ffz-i-sort-alt-down { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf161;&nbsp;'); }
.ffz-i-youtube-play { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf16a;&nbsp;'); }
.ffz-i-language { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf1ab;&nbsp;'); }
.ffz-i-twitch { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf1e8;&nbsp;'); }
.ffz-i-bell-off { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf1f7;&nbsp;'); }
.ffz-i-trash { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf1f8;&nbsp;'); }
.ffz-i-eyedropper { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf1fb;&nbsp;'); }
.ffz-i-user-secret { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf21b;&nbsp;'); }
.ffz-i-window-maximize { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf2d0;&nbsp;'); }
.ffz-i-window-minimize { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf2d1;&nbsp;'); }
.ffz-i-window-restore { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf2d2;&nbsp;'); }
.ffz-i-window-close { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf2d3;&nbsp;'); }

View file

@ -0,0 +1,90 @@
[class^="ffz-i-"], [class*=" ffz-i-"] {
font-family: 'ffz-fontello';
font-style: normal;
font-weight: normal;
/* fix buttons height */
line-height: 1em;
/* you can be more comfortable with increased icons size */
/* font-size: 120%; */
}
.ffz-i-cancel { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe800;&nbsp;'); }
.ffz-i-zreknarf { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe801;&nbsp;'); }
.ffz-i-search { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe802;&nbsp;'); }
.ffz-i-clock { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe803;&nbsp;'); }
.ffz-i-star { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe804;&nbsp;'); }
.ffz-i-star-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe805;&nbsp;'); }
.ffz-i-down-dir { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe806;&nbsp;'); }
.ffz-i-right-dir { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe807;&nbsp;'); }
.ffz-i-attention { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe808;&nbsp;'); }
.ffz-i-ok { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe809;&nbsp;'); }
.ffz-i-cog { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80a;&nbsp;'); }
.ffz-i-plus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80b;&nbsp;'); }
.ffz-i-folder-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80c;&nbsp;'); }
.ffz-i-download { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80d;&nbsp;'); }
.ffz-i-upload { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80e;&nbsp;'); }
.ffz-i-floppy { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80f;&nbsp;'); }
.ffz-i-crown { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe810;&nbsp;'); }
.ffz-i-verified { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe811;&nbsp;'); }
.ffz-i-heart { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe812;&nbsp;'); }
.ffz-i-heart-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe813;&nbsp;'); }
.ffz-i-tag { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe814;&nbsp;'); }
.ffz-i-tags { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe815;&nbsp;'); }
.ffz-i-retweet { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe816;&nbsp;'); }
.ffz-i-thumbs-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe817;&nbsp;'); }
.ffz-i-thumbs-down { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe818;&nbsp;'); }
.ffz-i-bell { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe819;&nbsp;'); }
.ffz-i-pencil { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81a;&nbsp;'); }
.ffz-i-info { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81b;&nbsp;'); }
.ffz-i-help { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81c;&nbsp;'); }
.ffz-i-calendar { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81d;&nbsp;'); }
.ffz-i-left-dir { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81e;&nbsp;'); }
.ffz-i-inventory { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe81f;&nbsp;'); }
.ffz-i-lock { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe820;&nbsp;'); }
.ffz-i-lock-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe821;&nbsp;'); }
.ffz-i-arrows-cw { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe822;&nbsp;'); }
.ffz-i-ignore { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe823;&nbsp;'); }
.ffz-i-block { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe824;&nbsp;'); }
.ffz-i-pin { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe825;&nbsp;'); }
.ffz-i-pin-outline { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe826;&nbsp;'); }
.ffz-i-gift { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe827;&nbsp;'); }
.ffz-i-discord { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe828;&nbsp;'); }
.ffz-i-eye { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe829;&nbsp;'); }
.ffz-i-eye-off { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82a;&nbsp;'); }
.ffz-i-views { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82b;&nbsp;'); }
.ffz-i-conversations { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82c;&nbsp;'); }
.ffz-i-channels { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82d;&nbsp;'); }
.ffz-i-camera { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82e;&nbsp;'); }
.ffz-i-cw { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82f;&nbsp;'); }
.ffz-i-up-dir { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe830;&nbsp;'); }
.ffz-i-up-big { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe831;&nbsp;'); }
.ffz-i-play { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe832;&nbsp;'); }
.ffz-i-user { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe833;&nbsp;'); }
.ffz-i-clip { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe834;&nbsp;'); }
.ffz-i-link-ext { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf08e;&nbsp;'); }
.ffz-i-twitter { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf099;&nbsp;'); }
.ffz-i-github { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf09b;&nbsp;'); }
.ffz-i-sort-down { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0dd;&nbsp;'); }
.ffz-i-sort-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0de;&nbsp;'); }
.ffz-i-gauge { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0e4;&nbsp;'); }
.ffz-i-download-cloud { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0ed;&nbsp;'); }
.ffz-i-upload-cloud { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0ee;&nbsp;'); }
.ffz-i-smile { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf118;&nbsp;'); }
.ffz-i-keyboard { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf11c;&nbsp;'); }
.ffz-i-calendar-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf133;&nbsp;'); }
.ffz-i-ellipsis-vert { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf142;&nbsp;'); }
.ffz-i-sort-alt-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf160;&nbsp;'); }
.ffz-i-sort-alt-down { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf161;&nbsp;'); }
.ffz-i-youtube-play { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf16a;&nbsp;'); }
.ffz-i-language { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf1ab;&nbsp;'); }
.ffz-i-twitch { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf1e8;&nbsp;'); }
.ffz-i-bell-off { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf1f7;&nbsp;'); }
.ffz-i-trash { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf1f8;&nbsp;'); }
.ffz-i-eyedropper { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf1fb;&nbsp;'); }
.ffz-i-user-secret { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf21b;&nbsp;'); }
.ffz-i-window-maximize { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf2d0;&nbsp;'); }
.ffz-i-window-minimize { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf2d1;&nbsp;'); }
.ffz-i-window-restore { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf2d2;&nbsp;'); }
.ffz-i-window-close { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf2d3;&nbsp;'); }

View file

@ -0,0 +1,135 @@
@font-face {
font-family: 'ffz-fontello';
src: url('../font/ffz-fontello.eot?84652283');
src: url('../font/ffz-fontello.eot?84652283#iefix') format('embedded-opentype'),
url('../font/ffz-fontello.woff2?84652283') format('woff2'),
url('../font/ffz-fontello.woff?84652283') format('woff'),
url('../font/ffz-fontello.ttf?84652283') format('truetype'),
url('../font/ffz-fontello.svg?84652283#ffz-fontello') format('svg');
font-weight: normal;
font-style: normal;
}
/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */
/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */
/*
@media screen and (-webkit-min-device-pixel-ratio:0) {
@font-face {
font-family: 'ffz-fontello';
src: url('../font/ffz-fontello.svg?84652283#ffz-fontello') format('svg');
}
}
*/
[class^="ffz-i-"]:before, [class*=" ffz-i-"]:before {
font-family: "ffz-fontello";
font-style: normal;
font-weight: normal;
speak: none;
display: inline-block;
text-decoration: inherit;
width: 1em;
margin-right: .2em;
text-align: center;
/* opacity: .8; */
/* For safety - reset parent styles, that can break glyph codes*/
font-variant: normal;
text-transform: none;
/* fix buttons height, for twitter bootstrap */
line-height: 1em;
/* Animation center compensation - margins should be symmetric */
/* remove if not needed */
margin-left: .2em;
/* you can be more comfortable with increased icons size */
/* font-size: 120%; */
/* Font smoothing. That was taken from TWBS */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
/* Uncomment for 3D effect */
/* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
}
.ffz-i-cancel:before { content: '\e800'; } /* '' */
.ffz-i-zreknarf:before { content: '\e801'; } /* '' */
.ffz-i-search:before { content: '\e802'; } /* '' */
.ffz-i-clock:before { content: '\e803'; } /* '' */
.ffz-i-star:before { content: '\e804'; } /* '' */
.ffz-i-star-empty:before { content: '\e805'; } /* '' */
.ffz-i-down-dir:before { content: '\e806'; } /* '' */
.ffz-i-right-dir:before { content: '\e807'; } /* '' */
.ffz-i-attention:before { content: '\e808'; } /* '' */
.ffz-i-ok:before { content: '\e809'; } /* '' */
.ffz-i-cog:before { content: '\e80a'; } /* '' */
.ffz-i-plus:before { content: '\e80b'; } /* '' */
.ffz-i-folder-open:before { content: '\e80c'; } /* '' */
.ffz-i-download:before { content: '\e80d'; } /* '' */
.ffz-i-upload:before { content: '\e80e'; } /* '' */
.ffz-i-floppy:before { content: '\e80f'; } /* '' */
.ffz-i-crown:before { content: '\e810'; } /* '' */
.ffz-i-verified:before { content: '\e811'; } /* '' */
.ffz-i-heart:before { content: '\e812'; } /* '' */
.ffz-i-heart-empty:before { content: '\e813'; } /* '' */
.ffz-i-tag:before { content: '\e814'; } /* '' */
.ffz-i-tags:before { content: '\e815'; } /* '' */
.ffz-i-retweet:before { content: '\e816'; } /* '' */
.ffz-i-thumbs-up:before { content: '\e817'; } /* '' */
.ffz-i-thumbs-down:before { content: '\e818'; } /* '' */
.ffz-i-bell:before { content: '\e819'; } /* '' */
.ffz-i-pencil:before { content: '\e81a'; } /* '' */
.ffz-i-info:before { content: '\e81b'; } /* '' */
.ffz-i-help:before { content: '\e81c'; } /* '' */
.ffz-i-calendar:before { content: '\e81d'; } /* '' */
.ffz-i-left-dir:before { content: '\e81e'; } /* '' */
.ffz-i-inventory:before { content: '\e81f'; } /* '' */
.ffz-i-lock:before { content: '\e820'; } /* '' */
.ffz-i-lock-open:before { content: '\e821'; } /* '' */
.ffz-i-arrows-cw:before { content: '\e822'; } /* '' */
.ffz-i-ignore:before { content: '\e823'; } /* '' */
.ffz-i-block:before { content: '\e824'; } /* '' */
.ffz-i-pin:before { content: '\e825'; } /* '' */
.ffz-i-pin-outline:before { content: '\e826'; } /* '' */
.ffz-i-gift:before { content: '\e827'; } /* '' */
.ffz-i-discord:before { content: '\e828'; } /* '' */
.ffz-i-eye:before { content: '\e829'; } /* '' */
.ffz-i-eye-off:before { content: '\e82a'; } /* '' */
.ffz-i-views:before { content: '\e82b'; } /* '' */
.ffz-i-conversations:before { content: '\e82c'; } /* '' */
.ffz-i-channels:before { content: '\e82d'; } /* '' */
.ffz-i-camera:before { content: '\e82e'; } /* '' */
.ffz-i-cw:before { content: '\e82f'; } /* '' */
.ffz-i-up-dir:before { content: '\e830'; } /* '' */
.ffz-i-up-big:before { content: '\e831'; } /* '' */
.ffz-i-play:before { content: '\e832'; } /* '' */
.ffz-i-user:before { content: '\e833'; } /* '' */
.ffz-i-clip:before { content: '\e834'; } /* '' */
.ffz-i-link-ext:before { content: '\f08e'; } /* '' */
.ffz-i-twitter:before { content: '\f099'; } /* '' */
.ffz-i-github:before { content: '\f09b'; } /* '' */
.ffz-i-sort-down:before { content: '\f0dd'; } /* '' */
.ffz-i-sort-up:before { content: '\f0de'; } /* '' */
.ffz-i-gauge:before { content: '\f0e4'; } /* '' */
.ffz-i-download-cloud:before { content: '\f0ed'; } /* '' */
.ffz-i-upload-cloud:before { content: '\f0ee'; } /* '' */
.ffz-i-smile:before { content: '\f118'; } /* '' */
.ffz-i-keyboard:before { content: '\f11c'; } /* '' */
.ffz-i-calendar-empty:before { content: '\f133'; } /* '' */
.ffz-i-ellipsis-vert:before { content: '\f142'; } /* '' */
.ffz-i-sort-alt-up:before { content: '\f160'; } /* '' */
.ffz-i-sort-alt-down:before { content: '\f161'; } /* '' */
.ffz-i-youtube-play:before { content: '\f16a'; } /* '' */
.ffz-i-language:before { content: '\f1ab'; } /* '' */
.ffz-i-twitch:before { content: '\f1e8'; } /* '' */
.ffz-i-bell-off:before { content: '\f1f7'; } /* '' */
.ffz-i-trash:before { content: '\f1f8'; } /* '' */
.ffz-i-eyedropper:before { content: '\f1fb'; } /* '' */
.ffz-i-user-secret:before { content: '\f21b'; } /* '' */
.ffz-i-window-maximize:before { content: '\f2d0'; } /* '' */
.ffz-i-window-minimize:before { content: '\f2d1'; } /* '' */
.ffz-i-window-restore:before { content: '\f2d2'; } /* '' */
.ffz-i-window-close:before { content: '\f2d3'; } /* '' */

View file

@ -74,84 +74,7 @@
}
}
.ffz-i-cancel:before { content: '\e800'; } /* '' */
.ffz-i-zreknarf:before { content: '\e801'; } /* '' */
.ffz-i-search:before { content: '\e802'; } /* '' */
.ffz-i-clock:before { content: '\e803'; } /* '' */
.ffz-i-star:before { content: '\e804'; } /* '' */
.ffz-i-star-empty:before { content: '\e805'; } /* '' */
.ffz-i-down-dir:before { content: '\e806'; } /* '' */
.ffz-i-right-dir:before { content: '\e807'; } /* '' */
.ffz-i-attention:before { content: '\e808'; } /* '' */
.ffz-i-ok:before { content: '\e809'; } /* '' */
.ffz-i-cog:before { content: '\e80a'; } /* '' */
.ffz-i-plus:before { content: '\e80b'; } /* '' */
.ffz-i-folder-open:before { content: '\e80c'; } /* '' */
.ffz-i-download:before { content: '\e80d'; } /* '' */
.ffz-i-upload:before { content: '\e80e'; } /* '' */
.ffz-i-floppy:before { content: '\e80f'; } /* '' */
.ffz-i-crown:before { content: '\e810'; } /* '' */
.ffz-i-verified:before { content: '\e811'; } /* '' */
.ffz-i-heart:before { content: '\e812'; } /* '' */
.ffz-i-heart-empty:before { content: '\e813'; } /* '' */
.ffz-i-tag:before { content: '\e814'; } /* '' */
.ffz-i-tags:before { content: '\e815'; } /* '' */
.ffz-i-retweet:before { content: '\e816'; } /* '' */
.ffz-i-thumbs-up:before { content: '\e817'; } /* '' */
.ffz-i-thumbs-down:before { content: '\e818'; } /* '' */
.ffz-i-bell:before { content: '\e819'; } /* '' */
.ffz-i-pencil:before { content: '\e81a'; } /* '' */
.ffz-i-info:before { content: '\e81b'; } /* '' */
.ffz-i-help:before { content: '\e81c'; } /* '' */
.ffz-i-calendar:before { content: '\e81d'; } /* '' */
.ffz-i-left-dir:before { content: '\e81e'; } /* '' */
.ffz-i-inventory:before { content: '\e81f'; } /* '' */
.ffz-i-lock:before { content: '\e820'; } /* '' */
.ffz-i-lock-open:before { content: '\e821'; } /* '' */
.ffz-i-arrows-cw:before { content: '\e822'; } /* '' */
.ffz-i-ignore:before { content: '\e823'; } /* '' */
.ffz-i-block:before { content: '\e824'; } /* '' */
.ffz-i-pin:before { content: '\e825'; } /* '' */
.ffz-i-pin-outline:before { content: '\e826'; } /* '' */
.ffz-i-gift:before { content: '\e827'; } /* '' */
.ffz-i-discord:before { content: '\e828'; } /* '' */
.ffz-i-eye:before { content: '\e829'; } /* '' */
.ffz-i-eye-off:before { content: '\e82a'; } /* '' */
.ffz-i-views:before { content: '\e82b'; } /* '' */
.ffz-i-conversations:before { content: '\e82c'; } /* '' */
.ffz-i-channels:before { content: '\e82d'; } /* '' */
.ffz-i-camera:before { content: '\e82e'; } /* '' */
.ffz-i-cw:before { content: '\e82f'; } /* '' */
.ffz-i-up-dir:before { content: '\e830'; } /* '' */
.ffz-i-up-big:before { content: '\e831'; } /* '' */
.ffz-i-play:before { content: '\e832'; } /* '' */
.ffz-i-user:before { content: '\e833'; } /* '' */
.ffz-i-clip:before { content: '\e834'; } /* '' */
.ffz-i-link-ext:before { content: '\f08e'; } /* '' */
.ffz-i-twitter:before { content: '\f099'; } /* '' */
.ffz-i-github:before { content: '\f09b'; } /* '' */
.ffz-i-sort-down:before { content: '\f0dd'; } /* '' */
.ffz-i-sort-up:before { content: '\f0de'; } /* '' */
.ffz-i-gauge:before { content: '\f0e4'; } /* '' */
.ffz-i-download-cloud:before { content: '\f0ed'; } /* '' */
.ffz-i-upload-cloud:before { content: '\f0ee'; } /* '' */
.ffz-i-smile:before { content: '\f118'; } /* '' */
.ffz-i-keyboard:before { content: '\f11c'; } /* '' */
.ffz-i-calendar-empty:before { content: '\f133'; } /* '' */
.ffz-i-ellipsis-vert:before { content: '\f142'; } /* '' */
.ffz-i-sort-alt-up:before { content: '\f160'; } /* '' */
.ffz-i-sort-alt-down:before { content: '\f161'; } /* '' */
.ffz-i-youtube-play:before { content: '\f16a'; } /* '' */
.ffz-i-language:before { content: '\f1ab'; } /* '' */
.ffz-i-twitch:before { content: '\f1e8'; } /* '' */
.ffz-i-bell-off:before { content: '\f1f7'; } /* '' */
.ffz-i-trash:before { content: '\f1f8'; } /* '' */
.ffz-i-eyedropper:before { content: '\f1fb'; } /* '' */
.ffz-i-user-secret:before { content: '\f21b'; } /* '' */
.ffz-i-window-maximize:before { content: '\f2d0'; } /* '' */
.ffz-i-window-minimize:before { content: '\f2d1'; } /* '' */
.ffz-i-window-restore:before { content: '\f2d2'; } /* '' */
.ffz-i-window-close:before { content: '\f2d3'; } /* '' */
@import "./fontello/ffz-fontello-codes.scss";
.ffz-i-pd-1:before { margin-right: 1rem }
.ffz-i-pd-2:before { margin-right: 2rem }

View file

@ -52,6 +52,23 @@ module.exports = merge(common, {
next();
});
app.get('/update_font', (req, res) => {
const proc = exec('npm run font:save');
proc.stdout.on('data', data => {
console.log('FONT>>', data);
});
proc.stderr.on('data', data => {
console.error('FONT>>', data);
});
proc.on('close', code => {
console.log('FONT>> Exited with code', code);
res.redirect(req.headers.referer);
});
});
app.get('/script/script.js', (req, res, next) => {
req.url = req.url.replace(/^\/script/, '/script/clips');
next();

View file

@ -3,6 +3,8 @@ const path = require('path');
const merge = require('webpack-merge');
const common = require('./webpack.web.common.js');
const {exec} = require('child_process');
const CopyPlugin = require('copy-webpack-plugin');
const webpack = require('webpack');
@ -52,6 +54,23 @@ module.exports = merge(common, {
next();
});
app.get('/update_font', (req, res) => {
const proc = exec('npm run font:save');
proc.stdout.on('data', data => {
console.log('FONT>>', data);
});
proc.stderr.on('data', data => {
console.error('FONT>>', data);
});
proc.on('close', code => {
console.log('FONT>> Exited with code', code);
res.redirect(req.headers.referer);
});
});
app.get('/dev_server', (req, res) => {
res.json({
path: process.cwd(),

View file

@ -49,6 +49,23 @@ module.exports = merge(prod, {
next();
});
app.get('/update_font', (req, res) => {
const proc = exec('npm run font:save');
proc.stdout.on('data', data => {
console.log('FONT>>', data);
});
proc.stderr.on('data', data => {
console.error('FONT>>', data);
});
proc.on('close', code => {
console.log('FONT>> Exited with code', code);
res.redirect(req.headers.referer);
});
});
app.get('/dev_server', (req, res) => {
res.json({
path: process.cwd(),