Compare commits
1 Commits
main
...
2021-01-27
| Author | SHA1 | Date |
|---|---|---|
|
|
43a8a20a6e |
|
|
@ -0,0 +1,72 @@
|
|||
<?php
|
||||
require $_SERVER['DOCUMENT_ROOT'].'/api/private/core.php';
|
||||
if(!SESSION || SESSION && !SESSION["adminLevel"]){ pageBuilder::errorCode(404); }
|
||||
|
||||
$servermemory = general::getServerMemoryUsage();
|
||||
$usersOnline = users::getUsersOnline();
|
||||
|
||||
pageBuilder::$pageConfig["title"] = SITE_CONFIG["site"]["name"]." Administration";
|
||||
pageBuilder::buildHeader();
|
||||
?>
|
||||
|
||||
<!--h1 style="position:absolute;opacity:0.5;font-size:10rem;z-index:10000000">THIS IS NOT <br> MULTAKOS SCREENSHOT LOL</h1-->
|
||||
|
||||
<h1 class="font-weight-normal"><?=SITE_CONFIG["site"]["name"]?> Administration</h1>
|
||||
<div class="row">
|
||||
<div class="col-md-7 p-0 divider-right">
|
||||
<div class="px-4 pr-4">
|
||||
<h3 class="pb-2 font-weight-normal">Choose an action</h3>
|
||||
<div class="row">
|
||||
<div class="col-sm-4">
|
||||
<!--a class="btn btn-outline-danger btn-lg w-100 px-0" href="moderate-user"><h2><i class="fal fa-gavel"></i></h2> User Moderation</a-->
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-4 py-2">
|
||||
<a class="btn btn-outline-danger btn-lg w-100 px-0" href="/admin/moderate-user"><i class="fal fa-gavel"></i> User Moderation</a>
|
||||
</div>
|
||||
<div class="col-md-4 py-2">
|
||||
<a class="btn btn-outline-primary btn-lg w-100 px-0" href="/admin/staff-logs"><i class="fal fa-book"></i> Staff Logs</a>
|
||||
</div>
|
||||
<div class="col-md-4 py-2">
|
||||
<a class="btn btn-outline-primary btn-lg w-100 px-0" href="/admin/site-banners"><i class="fal fa-bullhorn"></i> Site banners</a>
|
||||
</div>
|
||||
<?php if(SESSION["userId"] == 1){ ?>
|
||||
<div class="col-md-4 py-2">
|
||||
<a class="btn btn-outline-warning btn-lg w-100 px-0" href="/admin/give-currency"><i class="fal fa-pizza-slice"></i> Give <?=SITE_CONFIG["site"]["currencyName"]?></a>
|
||||
</div>
|
||||
<?php } ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-5 p-0">
|
||||
<div class="px-4 pr-4">
|
||||
<h3 class="pb-3 font-weight-normal">Website / Server Info and Status</h3>
|
||||
<div class="card w-100 mt-2">
|
||||
<div class="card-body text-center">
|
||||
<h3 class="font-weight-normal"><i class="fal fa-server"></i> <!--?=PHP_OS?> /--> <?=gethostname()?></h3>
|
||||
<small><?=php_uname()?></small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card w-100 mt-2">
|
||||
<div class="card-body text-center">
|
||||
<h3 class="font-weight-normal"><i class="fal fa-memory"></i> <?=general::getNiceFileSize($servermemory->total-$servermemory->free)?> / <?=general::getNiceFileSize($servermemory->total)?> In Use</h3>
|
||||
<small><?=general::getNiceFileSize(memory_get_usage(true))?> is being used by PHP</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card w-100 mt-2">
|
||||
<div class="card-body text-center">
|
||||
<h3 class="font-weight-normal"><i class="fal fa-hdd"></i> <?=general::getNiceFileSize(disk_total_space("/")-disk_free_space("/"))?> / <?=general::getNiceFileSize(disk_total_space("/"))?> Used</h3>
|
||||
<small><?=SITE_CONFIG["site"]["name"]?> is using <?=general::getNiceFileSize(general::getFolderSize("B:\\nginx\\www\\pizzaboxer.ml\\polygon"))?></small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card w-100 mt-2">
|
||||
<div class="card-body text-center">
|
||||
<h3 class="font-weight-normal"><i class="fal fa-user"></i> <?=$usersOnline?> user<?=$usersOnline>1?'s':''?> currently online</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php pageBuilder::buildFooter(); ?>
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
<?php
|
||||
require $_SERVER['DOCUMENT_ROOT'].'/api/private/core.php';
|
||||
header("content-type: application/json");
|
||||
header("referrer-policy: same-origin");
|
||||
|
||||
if($_SERVER['REQUEST_METHOD'] != 'POST'){ api::respond(405, false, "Method Not Allowed"); }
|
||||
api::requireLogin();
|
||||
|
||||
$userid = SESSION["userId"];
|
||||
$sessionkey = $_COOKIE['polygon_session'];
|
||||
|
||||
$sesscount = $pdo->prepare("SELECT COUNT(*) FROM sessions WHERE userId = :uid AND valid AND NOT sessionKey = :key");
|
||||
$sesscount->bindParam(":uid", $userid, PDO::PARAM_INT);
|
||||
$sesscount->bindParam(":key", $sessionkey, PDO::PARAM_STR);
|
||||
$sesscount->execute();
|
||||
|
||||
if(!$sesscount->fetchColumn()){ api::respond(400, false, "There are no other sessions to log out of!"); }
|
||||
|
||||
$query = $pdo->prepare("UPDATE sessions SET valid = 0 WHERE userId = :uid AND valid AND NOT sessionKey = :key");
|
||||
$query->bindParam(":uid", $userid, PDO::PARAM_INT);
|
||||
$query->bindParam(":key", $sessionkey, PDO::PARAM_STR);
|
||||
|
||||
if($query->execute()){ api::respond(200, true, "OK"); }
|
||||
else{ api::respond(500, false, "Internal Server Error"); }
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
<?php
|
||||
require $_SERVER['DOCUMENT_ROOT'].'/api/private/core.php';
|
||||
header("content-type: application/json");
|
||||
|
||||
if($_SERVER['REQUEST_METHOD'] != 'POST'){ api::respond(405, false, "Method Not Allowed"); }
|
||||
api::requireLogin();
|
||||
|
||||
$userid = SESSION["userId"];
|
||||
|
||||
$query = $pdo->prepare("
|
||||
SELECT * FROM feed
|
||||
WHERE userId = :uid
|
||||
OR userId IN (SELECT receiverId FROM friends WHERE requesterId = :uid AND status = 1)
|
||||
OR userId IN (SELECT requesterId FROM friends WHERE receiverId = :uid AND status = 1)
|
||||
ORDER BY id DESC LIMIT 15");
|
||||
$query->bindParam(":uid", $userid, PDO::PARAM_INT);
|
||||
$query->execute();
|
||||
|
||||
$feed = [];
|
||||
$news = [];
|
||||
|
||||
$news[] =
|
||||
[
|
||||
"header" => '<h4 class="font-weight-normal">lol</h4>',
|
||||
"message" => 'fucked your mom'
|
||||
];
|
||||
|
||||
while($row = $query->fetch(PDO::FETCH_OBJ))
|
||||
{
|
||||
$feed[] =
|
||||
[
|
||||
"userName" => users::getUserNameFromUid($row->userId),
|
||||
"img" => "/thumbs/avatar?id=".$row->userId."&x=100&y=100",
|
||||
"header" => '<p class="m-0"><a href="/user?ID='.$row->userId.'">'.users::getUserNameFromUid($row->userId).'</a> - <small>'.general::time_elapsed('@'.$row->timestamp).'</small></p>',
|
||||
"message" => general::filterText($row->text)
|
||||
];
|
||||
}
|
||||
|
||||
if($query->rowCount() < 15)
|
||||
{
|
||||
$feed[] =
|
||||
[
|
||||
"userName" => "Your feed is currently empty!",
|
||||
"img" => "/img/feed-starter.png",
|
||||
"header" => '<h4 class="font-weight-normal">Looks like your feed\'s empty</h4>',
|
||||
"message" => "If you haven't made any friends yet, <a href='/browse'>go make some</a>! <br> If you already have some, why don't you kick off the discussion?"
|
||||
];
|
||||
}
|
||||
die(json_encode(["status" => 200, "success" => true, "message" => "OK", "feed" => $feed, "news" => $news]));
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
<?php
|
||||
require $_SERVER['DOCUMENT_ROOT'].'/api/private/core.php';
|
||||
header("content-type: application/json");
|
||||
header("referrer-policy: same-origin");
|
||||
|
||||
if($_SERVER['REQUEST_METHOD'] != 'POST'){ api::respond(405, false, "Method Not Allowed"); }
|
||||
api::requireLogin();
|
||||
if(!isset($_POST['currentpwd'])){ api::respond(400, false, "Invalid Request"); }
|
||||
if(!isset($_POST['newpwd'])){ api::respond(400, false, "Invalid Request"); }
|
||||
if(!isset($_POST['confnewpwd'])){ api::respond(400, false, "Invalid Request"); }
|
||||
|
||||
$userid = SESSION["userId"];
|
||||
|
||||
$query = $pdo->prepare("SELECT * FROM users WHERE id = :uid");
|
||||
$query->bindParam(":uid", $userid, PDO::PARAM_INT);
|
||||
$query->execute();
|
||||
$row = $query->fetch(PDO::FETCH_OBJ);
|
||||
|
||||
if($row->lastpwdchange+1800 > time())
|
||||
{
|
||||
api::respond(400, false, "Please wait ".ceil((($row->lastpwdchange+1800)-time())/60)." minutes before attempting to change your password again");
|
||||
}
|
||||
|
||||
if(!password_verify($_POST['currentpwd'], $row->password))
|
||||
{
|
||||
api::respond(400, false, "Your current password does not match");
|
||||
}
|
||||
|
||||
if($_POST['currentpwd'] == $_POST['newpwd'])
|
||||
{
|
||||
api::respond(400, false, "Your new password cannot be the same as your current one");
|
||||
}
|
||||
|
||||
if(strlen(preg_replace('/[0-9]/', "", $_POST['newpwd'])) < 6)
|
||||
{
|
||||
api::respond(400, false, "Your new password is too weak. Make sure it contains at least six non-numeric characters");
|
||||
}
|
||||
|
||||
if(strlen(preg_replace('/[^0-9]/', "", $_POST['newpwd'])) < 2)
|
||||
{
|
||||
api::respond(400, false, "Your new password is too weak. Make sure it contains at least two numbers");
|
||||
}
|
||||
|
||||
if($_POST['newpwd'] != $_POST['confnewpwd'])
|
||||
{
|
||||
api::respond(400, false, "Confirmation password does not match");
|
||||
}
|
||||
|
||||
$pwhash = password_hash($_POST['newpwd'], PASSWORD_BCRYPT);
|
||||
|
||||
$query = $pdo->prepare("UPDATE users SET password = :pwd, lastpwdchange = UNIX_TIMESTAMP() WHERE id = :uid");
|
||||
$query->bindParam(":pwd", $pwhash, PDO::PARAM_STR);
|
||||
$query->bindParam(":uid", $userid, PDO::PARAM_INT);
|
||||
|
||||
if($query->execute()){ api::respond(200, true, "OK"); }
|
||||
else{ api::respond(500, false, "Internal Server Error"); }
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
<?php
|
||||
require $_SERVER['DOCUMENT_ROOT'].'/api/private/core.php';
|
||||
header("content-type: application/json");
|
||||
header("referrer-policy: same-origin");
|
||||
|
||||
if($_SERVER['REQUEST_METHOD'] != 'POST'){ api::respond(405, false, "Method Not Allowed"); }
|
||||
api::requireLogin();
|
||||
|
||||
if(users::updatePing() && users::updateCurrencyStipend()){ api::respond(200, true, "OK"); }
|
||||
else{ api::respond(500, false, "Internal Server Error"); }
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
<?php
|
||||
require $_SERVER['DOCUMENT_ROOT'].'/api/private/core.php';
|
||||
header("content-type: application/json");
|
||||
header("referrer-policy: same-origin");
|
||||
|
||||
if($_SERVER['REQUEST_METHOD'] != 'POST'){ api::respond(405, false, "Method Not Allowed"); }
|
||||
api::requireLogin();
|
||||
if(!isset($_POST['blurb'])){ api::respond(400, false, "Invalid Request"); }
|
||||
if(!isset($_POST['pageanimations'])){ api::respond(400, false, "Invalid Request"); }
|
||||
if(!isset($_POST['filter'])){ api::respond(400, false, "Invalid Request"); }
|
||||
|
||||
$userid = SESSION["userId"];
|
||||
$filter = $_POST['filter'] == 'false' ? false : true;
|
||||
$pageanim = $_POST['pageanimations'] == 'false' ? false : true;
|
||||
|
||||
if(!strlen($_POST['blurb'])){ api::respond(400, false, "Your blurb can't be empty!"); }
|
||||
if(strlen($_POST['blurb']) > 1000){ api::respond(400, false, "Your blurb is too large!"); }
|
||||
|
||||
$query = $pdo->prepare("UPDATE users SET blurb = :blurb, filter = :filter, pageanim = :pageanim WHERE id = :uid");
|
||||
$query->bindParam(":uid", $userid, PDO::PARAM_INT);
|
||||
$query->bindParam(":blurb", $_POST['blurb'], PDO::PARAM_STR);
|
||||
$query->bindParam(":pageanim", $pageanim, PDO::PARAM_INT);
|
||||
$query->bindParam(":filter", $filter, PDO::PARAM_INT);
|
||||
|
||||
if($query->execute()){ api::respond(200, true, "OK"); }
|
||||
else{ api::respond(500, false, "Internal Server Error"); }
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
<?php
|
||||
require $_SERVER['DOCUMENT_ROOT'].'/api/private/core.php';
|
||||
header("content-type: application/json");
|
||||
header("referrer-policy: same-origin");
|
||||
|
||||
if($_SERVER['REQUEST_METHOD'] != 'POST'){ api::respond(405, false, "Method Not Allowed"); }
|
||||
api::requireLogin();
|
||||
if(!isset($_POST['status'])){ api::respond(405, false, "Method Not Allowed"); }
|
||||
|
||||
$userId = SESSION["userId"];
|
||||
$status = trim($_POST['status']);
|
||||
|
||||
if(!$status){ api::respond(405, false, "Your status cannot be empty"); }
|
||||
if(strlen($status) > 140){ api::respond(405, false, "Your status cannot be more than 140 characters"); }
|
||||
|
||||
//ratelimit
|
||||
$query = $pdo->prepare("SELECT timestamp FROM feed WHERE userId = :uid AND timestamp+60 > UNIX_TIMESTAMP()");
|
||||
$query->bindParam(":uid", $userId, PDO::PARAM_INT);
|
||||
$query->execute();
|
||||
|
||||
if($query->rowCount()){ api::respond(400, false, "Please wait ".(($query->fetchColumn()+60)-time())." seconds before updating your status"); }
|
||||
|
||||
$query = $pdo->prepare("INSERT INTO feed (userId, timestamp, text) VALUES (:uid, UNIX_TIMESTAMP(), :status)");
|
||||
$query->bindParam(":uid", $userId, PDO::PARAM_INT);
|
||||
$query->bindParam(":status", $status, PDO::PARAM_STR);
|
||||
$query->execute();
|
||||
|
||||
$query = $pdo->prepare("UPDATE users SET status = :status WHERE id = :uid");
|
||||
$query->bindParam(":uid", $userId, PDO::PARAM_INT);
|
||||
$query->bindParam(":status", $status, PDO::PARAM_STR);
|
||||
$query->execute();
|
||||
|
||||
api::respond(200, true, "OK");
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
require $_SERVER['DOCUMENT_ROOT'].'/api/private/core.php';
|
||||
header("content-type: application/json");
|
||||
|
||||
if($_SERVER['REQUEST_METHOD'] != 'POST'){ api::respond(405, false, "Method Not Allowed"); }
|
||||
api::requireLogin();
|
||||
if(!SESSION["adminLevel"]){ api::respond(400, false, "Not an administrator"); }
|
||||
api::lastAdminAction();
|
||||
|
||||
if(!isset($_POST["text"]) || !isset($_POST["bg-color"]) || !isset($_POST["text-color"])){ api::respond(400, false, "Invalid Request"); }
|
||||
if($_POST["text-color"] != "dark" && $_POST["text-color"] != "light"){ api::respond(400, false, "Invalid Request"); }
|
||||
if(!trim($_POST["text"])){ api::respond(400, false, "You haven't set the banner text"); }
|
||||
if(strlen($_POST["text"]) > 128){ api::respond(400, false, "The banner text must be less than 128 characters"); }
|
||||
if(!trim($_POST["bg-color"])){ api::respond(400, false, "You haven't set a background color"); }
|
||||
if(!ctype_xdigit(ltrim($_POST["bg-color"], "#")) || strlen($_POST["bg-color"]) != 7){ api::respond(400, false, "That doesn't appear to be a valid hex color"); }
|
||||
if($pdo->query("SELECT COUNT(*) FROM announcements WHERE activated")->fetchColumn() > 5){ api::respond(400, false, "There's too many banners currently active!"); }
|
||||
|
||||
$userId = SESSION["userId"];
|
||||
$text = trim($_POST["text"]);
|
||||
$color = trim($_POST["bg-color"]);
|
||||
$textcolor = "text-".trim($_POST["text-color"]);
|
||||
|
||||
$query = $pdo->prepare("INSERT INTO announcements (createdBy, text, bgcolor, textcolor) VALUES (:uid, :text, :bgc, :tc)");
|
||||
$query->bindParam(":uid", $userId, PDO::PARAM_INT);
|
||||
$query->bindParam(":text", $text, PDO::PARAM_STR);
|
||||
$query->bindParam(":bgc", $color, PDO::PARAM_STR);
|
||||
$query->bindParam(":tc", $textcolor, PDO::PARAM_STR);
|
||||
$query->execute();
|
||||
|
||||
users::logStaffAction("[ Banners ] Created site banner with text: ".$text);
|
||||
api::respond(200, true, "Banner has been created");
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
<?php
|
||||
require $_SERVER['DOCUMENT_ROOT'].'/api/private/core.php';
|
||||
header("content-type: application/json");
|
||||
|
||||
if($_SERVER['REQUEST_METHOD'] != 'POST'){ api::respond(405, false, "Method Not Allowed"); }
|
||||
api::requireLogin();
|
||||
if(!SESSION["adminLevel"]){ api::respond(400, false, "Not an administrator"); }
|
||||
if(!isset($_POST['postType'])){ api::respond(400, false, "Invalid Request"); }
|
||||
if(!in_array($_POST['postType'], ["thread", "reply"])){ api::respond(400, false, "Invalid Request"); }
|
||||
if(!isset($_POST['postId'])){ api::respond(400, false, "Invalid Request"); }
|
||||
if(!is_numeric($_POST['postId'])){ api::respond(400, false, "Invalid Request"); }
|
||||
|
||||
$userid = SESSION["userId"];
|
||||
$isThread = $_POST['postType'] == "thread";
|
||||
$threadInfo = $isThread ? forum::getThreadInfo($_POST['postId']) : forum::getReplyInfo($_POST['postId']);
|
||||
|
||||
if(!$threadInfo){ api::respond(400, false, "Post does not exist"); }
|
||||
|
||||
api::lastAdminAction();
|
||||
|
||||
$query = $isThread ? $pdo->prepare("UPDATE forum_threads SET deleted = 1 WHERE id = :id") : $pdo->prepare("UPDATE forum_replies SET deleted = 1 WHERE id = :id");
|
||||
$query->bindParam(":id", $_POST['postId'], PDO::PARAM_INT);
|
||||
|
||||
if($query->execute()){ users::logStaffAction("[ Forums ] Deleted forum ".($isThread?"thread":"reply")." ID ".$_POST['postId']); api::respond(200, true, "OK"); }
|
||||
else{ api::respond(500, false, "Internal Server Error"); }
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
<?php
|
||||
require $_SERVER['DOCUMENT_ROOT'].'/api/private/core.php';
|
||||
header("content-type: application/json");
|
||||
|
||||
if($_SERVER['REQUEST_METHOD'] != 'POST'){ api::respond(405, false, "Method Not Allowed"); }
|
||||
api::requireLogin();
|
||||
if(!SESSION["adminLevel"]){ api::respond(400, false, "Not an administrator"); }
|
||||
if(SESSION["userId"] != 1){ api::respond(400, false, "Insufficient admin level"); }
|
||||
api::lastAdminAction();
|
||||
if(!isset($_POST["username"]) || !isset($_POST["amount"]) || !isset($_POST["reason"])){ api::respond(400, false, "Invalid Request"); }
|
||||
if(!trim($_POST["username"])){ api::respond(400, false, "You haven't set a username"); }
|
||||
|
||||
if(!$_POST["amount"]){ api::respond(400, false, "You haven't set the amount of ".SITE_CONFIG["site"]["currencyName"]." to give"); }
|
||||
if(!is_numeric($_POST["amount"])){ api::respond(400, false, "The amount of ".SITE_CONFIG["site"]["currencyName"]." to give must be numerical"); }
|
||||
if($_POST["amount"] > 500 || $_POST["amount"] < -500){ api::respond(400, false, "Maximum amount of ".SITE_CONFIG["site"]["currencyName"]." you can give/take is 500 at a time"); }
|
||||
|
||||
if(!trim($_POST["reason"])){ api::respond(400, false, "You must set a reason"); }
|
||||
|
||||
$amount = $_POST["amount"];
|
||||
$userInfo = users::getUserInfoFromUserName($_POST["username"]);
|
||||
if(!$userInfo){ api::respond(400, false, "That user doesn't exist"); }
|
||||
if(($userInfo->currency + $_POST["amount"]) < 0){ api::respond(400, false, "That'll make the user go bankrupt!"); }
|
||||
|
||||
$query = $pdo->prepare("UPDATE users SET currency = currency+:amount WHERE id = :uid");
|
||||
$query->bindParam(":amount", $amount, PDO::PARAM_INT);
|
||||
$query->bindParam(":uid", $userInfo->id, PDO::PARAM_INT);
|
||||
$query->execute();
|
||||
|
||||
users::logStaffAction("[ Currency ] Gave ".$_POST["amount"]." ".SITE_CONFIG["site"]["currencyName"]." to ".$userInfo->username." ( user ID ".$userInfo->id." ) ( Reason: ".$_POST["reason"]." )");
|
||||
api::respond(200, true, "Gave ".$_POST["amount"]." ".SITE_CONFIG["site"]["currencyName"]." to ".$userInfo->username);
|
||||
|
|
@ -0,0 +1,64 @@
|
|||
<?php
|
||||
require $_SERVER['DOCUMENT_ROOT'].'/api/private/core.php';
|
||||
header("content-type: application/json");
|
||||
|
||||
if($_SERVER['REQUEST_METHOD'] != 'POST'){ api::respond(405, false, "Method Not Allowed"); }
|
||||
api::requireLogin();
|
||||
if(!SESSION["adminLevel"]){ api::respond(400, false, "Not an administrator"); }
|
||||
if(!isset($_POST["username"]) || !isset($_POST["banType"]) || !isset($_POST["moderationNote"]) || !isset($_POST["until"])){ api::respond(400, false, "Invalid Request"); }
|
||||
if($_POST["banType"] < 1 || $_POST["banType"] > 4){ api::respond(400, false, "Invalid Request"); }
|
||||
if($_POST["banType"] != 4 && !trim($_POST["moderationNote"])){ api::respond(400, false, "You must supply a reason"); }
|
||||
if(!trim($_POST["username"])){ api::respond(400, false, "You haven't set the username to ban"); }
|
||||
if($_POST["banType"] == 2 && !trim($_POST["until"])){ api::respond(400, false, "Ban time not set"); }
|
||||
|
||||
$banType = $_POST["banType"];
|
||||
$staffNote = isset($_POST["staffNote"]) && trim($_POST["staffNote"]) ? trim($_POST["staffNote"]) : "";
|
||||
$userId = SESSION["userId"];
|
||||
$bannerInfo = users::getUserInfoFromUserName($_POST["username"]);
|
||||
$reason = trim($_POST["moderationNote"]);
|
||||
$bannedUntil = $_POST["banType"] == 2 ? strtotime($_POST["until"]." ".date('G:i:s')) : 0;
|
||||
|
||||
if(!$bannerInfo){ api::respond(400, false, "User does not exist"); }
|
||||
|
||||
api::lastAdminAction();
|
||||
|
||||
if($banType == 4)
|
||||
{
|
||||
if(!users::getUserModeration($bannerInfo->id)){ api::respond(400, false, "That user isn't banned!"); }
|
||||
users::undoUserModeration($bannerInfo->id, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
if($bannerInfo->id == $userId){ api::respond(400, false, "You cannot moderate yourself!"); }
|
||||
if($bannerInfo->adminlevel){ api::respond(400, false, "You cannot moderate a staff member"); }
|
||||
if(users::getUserModeration($bannerInfo->id)){ api::respond(400, false, "That user is already banned!"); }
|
||||
if($banType == 2 && $bannedUntil < strtotime('tomorrow')){ api::respond(400, false, "Ban time must be at least 1 day long"); }
|
||||
|
||||
$query = $pdo->prepare("INSERT INTO bans (userId, bannerId, timeStarted, timeEnds, reason, banType, note) VALUES (:bid, :uid, UNIX_TIMESTAMP(), :ends, :reason, :type, :note)");
|
||||
$query->bindParam(":bid", $bannerInfo->id, PDO::PARAM_INT);
|
||||
$query->bindParam(":uid", $userId, PDO::PARAM_INT);
|
||||
$query->bindParam(":ends", $bannedUntil, PDO::PARAM_INT);
|
||||
$query->bindParam(":reason", $reason, PDO::PARAM_STR);
|
||||
$query->bindParam(":type", $banType, PDO::PARAM_INT);
|
||||
$query->bindParam(":note", $staffNote, PDO::PARAM_STR);
|
||||
$query->execute();
|
||||
}
|
||||
|
||||
$text =
|
||||
[
|
||||
1 => "warned",
|
||||
2 => "banned for ".general::time_elapsed("@".($bannedUntil+1), false, false),
|
||||
3 => "permanently banned",
|
||||
4 => "unbanned"
|
||||
];
|
||||
|
||||
$staff =
|
||||
[
|
||||
1 => "Warned ".$bannerInfo->username,
|
||||
2 => "Banned ".$bannerInfo->username." for ".general::time_elapsed("@".($bannedUntil+1), false, false),
|
||||
3 => "Permanently banned ".$bannerInfo->username,
|
||||
4 => "Unbanned ".$bannerInfo->username
|
||||
];
|
||||
|
||||
users::logStaffAction("[ User Moderation ] ".$staff[$banType]." ( user ID ".$bannerInfo->id." )");
|
||||
api::respond(200, true, $bannerInfo->username." has been ".$text[$banType]);
|
||||
|
|
@ -0,0 +1,63 @@
|
|||
<?php
|
||||
require $_SERVER['DOCUMENT_ROOT'].'/api/private/core.php';
|
||||
header("content-type: application/json");
|
||||
|
||||
if($_SERVER['REQUEST_METHOD'] != 'POST'){ api::respond(405, false, "Method Not Allowed"); }
|
||||
api::requireLogin();
|
||||
if(!SESSION["adminLevel"]){ api::respond(400, false, "Not an administrator"); }
|
||||
if(!isset($_POST["banType"]) || !isset($_POST["moderationNote"]) || !isset($_POST["until"])){ api::respond(400, false, "Invalid Request"); }
|
||||
if($_POST["banType"] < 1 || $_POST["banType"] > 3){ api::respond(400, false, "Invalid Request"); }
|
||||
if(!trim($_POST["moderationNote"])){ api::respond(400, false, "You must supply a reason"); }
|
||||
if($_POST["banType"] == 2 && !trim($_POST["until"])){ api::respond(400, false, "Ban time not set"); }
|
||||
|
||||
$banType = $_POST["banType"];
|
||||
$bannedUntil = strtotime($_POST["until"]." ".date('G:i:s'));
|
||||
|
||||
if($bannedUntil < strtotime('tomorrow')){ api::respond(400, false, "Ban time must be at least 1 day long"); }
|
||||
|
||||
//markdown
|
||||
$markdown = new Parsedown();
|
||||
$markdown->setMarkupEscaped(true);
|
||||
$markdown->setBreaksEnabled(true);
|
||||
$markdown->setSafeMode(true);
|
||||
$markdown->setUrlsLinked(true);
|
||||
|
||||
$text =
|
||||
[
|
||||
"title" =>
|
||||
[
|
||||
1 => "Warning",
|
||||
2 => "Banned for ".general::time_elapsed("@".($bannedUntil+1), false, false),
|
||||
3 => "Account Deleted"
|
||||
],
|
||||
|
||||
"header" =>
|
||||
[
|
||||
1 => "This is just a heads-up to remind you to follow the rules",
|
||||
2 => "Your account has been banned for violating our rules",
|
||||
3 => "Your account has been permanently banned for violating our rules"
|
||||
],
|
||||
|
||||
"footer" =>
|
||||
[
|
||||
1 => "Please re-read the <a href='/info/rules'>rules</a> and abide by them to prevent yourself from facing a ban",
|
||||
2 => "Your ban ends at ".date('j/n/Y g:i:s A \G\M\T', $bannedUntil).", or in ".general::time_elapsed("@".($bannedUntil+1), true, false)." <br><br> Circumventing your ban on an alternate account while it is active may cause your ban time to be extended",
|
||||
3 => "Circumventing your ban by using an alternate account will lower your chance of appeal (if your ban was appealable) and potentially warrant you an IP ban"
|
||||
]
|
||||
];
|
||||
|
||||
ob_start(); ?>
|
||||
<h2 class="font-weight-normal"><?=$text["title"][$banType]?></h2>
|
||||
<p class="card-text"><?=$text["header"][$banType]?></p>
|
||||
<p class="card-text">Done at: <?=date('j/n/Y g:i:s A \G\M\T')?></p>
|
||||
<p class="card-text mb-0">Reason:</p>
|
||||
<div class="card">
|
||||
<div class="card-body p-2">
|
||||
<?=str_replace('<p>', '<p class="mb-0">', $markdown->text(trim($_POST["moderationNote"])))?>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<p class="card-text"><?=$text["footer"][$banType]?></p>
|
||||
<?php if($banType == 1) { ?>
|
||||
<a href="#" class="btn btn-primary disabled">Reactivate</a>
|
||||
<?php } api::respond(200, true, ob_get_clean());
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
<?php
|
||||
require $_SERVER['DOCUMENT_ROOT'].'/api/private/core.php';
|
||||
header("content-type: application/json");
|
||||
|
||||
if($_SERVER['REQUEST_METHOD'] != 'POST') api::respond(405, false, "Method Not Allowed");
|
||||
api::requireLogin();
|
||||
|
||||
$userid = SESSION["userId"];
|
||||
$file = $_FILES["file"] ?? false;
|
||||
|
||||
if(!isset($_POST["polygon-csrf"]) || $_POST["polygon-csrf"] != SESSION["csrfToken"])
|
||||
api::respond(400, false, "Failed to validate CSRF");
|
||||
|
||||
if(!$file) api::respond(400, false, "You must select a file");
|
||||
|
||||
die(json_encode(["status" => 200, "success" => true, "message" => "OK"]));
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
<?php
|
||||
require $_SERVER['DOCUMENT_ROOT'].'/api/private/core.php';
|
||||
header("content-type: application/json");
|
||||
|
||||
if($_SERVER['REQUEST_METHOD'] != 'POST'){ api::respond(405, false, "Method Not Allowed"); }
|
||||
api::requireLogin();
|
||||
if(!isset($_POST['userID'])){ api::respond(400, false, "Invalid Request"); }
|
||||
if(!is_numeric($_POST['userID'])){ api::respond(400, false, "Invalid Request"); }
|
||||
|
||||
$userid = SESSION["userId"];
|
||||
|
||||
if($_POST['userID'] == SESSION["userId"]){ api::respond(400, false, "You can't perform friend operations on yourself"); }
|
||||
|
||||
$query = $pdo->prepare("SELECT id, requesterId FROM friends WHERE :uid IN (requesterId, receiverId) AND :rid IN (requesterId, receiverId) AND status = 0");
|
||||
$query->bindParam(":uid", $userid, PDO::PARAM_INT);
|
||||
$query->bindParam(":rid", $_POST['userID'], PDO::PARAM_INT);
|
||||
$query->execute();
|
||||
|
||||
$result = $query->fetch(PDO::FETCH_OBJ);
|
||||
|
||||
if(!$query->rowCount()){ api::respond(400, false, "Friend request doesn't exist"); }
|
||||
if($result->requesterId == $userid){ api::respond(400, false, "Only the request receiver can accept the request"); }
|
||||
|
||||
$query = $pdo->prepare("UPDATE friends SET status = 1 WHERE id = :id");
|
||||
$query->bindParam(":id", $result->id, PDO::PARAM_INT);
|
||||
|
||||
if($query->execute()){ api::respond(200, true, "OK"); }
|
||||
else{ api::respond(500, false, "Internal Server Error"); }
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
<?php
|
||||
require $_SERVER['DOCUMENT_ROOT'].'/api/private/core.php';
|
||||
header("content-type: application/json");
|
||||
|
||||
if($_SERVER['REQUEST_METHOD'] != 'POST'){ api::respond(405, false, "Method Not Allowed"); }
|
||||
api::requireLogin();
|
||||
if(isset($_POST['page']) && !is_numeric($_POST['page'])){ api::respond(400, false, "Invalid Request - page is not numeric"); }
|
||||
|
||||
$userid = SESSION["userId"];
|
||||
|
||||
$page = isset($_POST['page']) ? $_POST['page'] : 1;
|
||||
|
||||
$query = $pdo->prepare("SELECT * FROM friends WHERE :uid = receiverId AND status = 0");
|
||||
$query->bindParam(":uid", $userid, PDO::PARAM_INT);
|
||||
$query->execute();
|
||||
|
||||
$friends = [];
|
||||
|
||||
while($row = $query->fetch(PDO::FETCH_OBJ))
|
||||
{
|
||||
$friends[] = ["userName" => users::getUserNameFromUid($row->requesterId), "userId" => $row->requesterId];
|
||||
}
|
||||
|
||||
die(json_encode(
|
||||
[
|
||||
"status" => 200,
|
||||
"success" => true,
|
||||
"message" => "OK",
|
||||
"requestCount" => $query->rowCount(),
|
||||
"requests" => $friends,
|
||||
"pages" => 1
|
||||
]));
|
||||
|
|
@ -0,0 +1,71 @@
|
|||
<?php
|
||||
require $_SERVER['DOCUMENT_ROOT'].'/api/private/core.php';
|
||||
header("content-type: application/json");
|
||||
|
||||
if($_SERVER['REQUEST_METHOD'] != 'POST'){ api::respond(405, false, "Method Not Allowed"); }
|
||||
if(!isset($_POST['userID'])){ api::respond(400, false, "Invalid Request - userID not set"); }
|
||||
if(!is_numeric($_POST['userID'])){ api::respond(400, false, "Invalid Request - userID is not numeric"); }
|
||||
if(!users::getUserInfoFromUid($_POST['userID'])){ api::respond(400, false, "User does not exist"); }
|
||||
if(isset($_POST['page']) && !is_numeric($_POST['page'])){ api::respond(400, false, "Invalid Request - page is not numeric"); }
|
||||
if(isset($_POST['limit']) && !is_numeric($_POST['limit'])){ api::respond(400, false, "Invalid Request - limit is not numeric"); }
|
||||
|
||||
$page = isset($_POST['page']) ? $_POST['page'] : 1;
|
||||
$limit = isset($_POST['limit']) ? $_POST['limit'] : 18;
|
||||
|
||||
$query = $pdo->prepare("SELECT COUNT(*) FROM friends WHERE :uid IN (requesterId, receiverId) AND status = 1");
|
||||
$query->bindParam(":uid", $_POST['userID'], PDO::PARAM_INT);
|
||||
$query->execute();
|
||||
|
||||
$pages = ceil($query->fetchColumn()/$limit);
|
||||
$offset = ($page - 1)*$limit;
|
||||
|
||||
$query = $pdo->prepare("SELECT * FROM friends WHERE :uid IN (requesterId, receiverId) AND status = 1 LIMIT :limit OFFSET :offset");
|
||||
$query->bindParam(":uid", $_POST['userID'], PDO::PARAM_INT);
|
||||
$query->bindParam(":limit", $limit, PDO::PARAM_INT);
|
||||
$query->bindParam(":offset", $offset, PDO::PARAM_INT);
|
||||
$query->execute();
|
||||
|
||||
$friends = [];
|
||||
|
||||
while($row = $query->fetch(PDO::FETCH_OBJ))
|
||||
{
|
||||
$friendId = $row->requesterId == $_POST['userID'] ? $row->receiverId : $row->requesterId;
|
||||
$friends[] = ["userName" => users::getUserNameFromUid($friendId), "userId" => $friendId];
|
||||
}
|
||||
|
||||
ob_start(); ?>
|
||||
|
||||
<nav aria-label="Friend Pagination">
|
||||
<ul class="pagination justify-content-center mb-0">
|
||||
<li class="page-item<?=$page<=1?' disabled':''?>">
|
||||
<a class="page-link" href="#" aria-label="Previous" data-control="friends-pager" data-page="<?=$page-1?>">
|
||||
<span aria-hidden="true">«</span>
|
||||
<span class="sr-only">Previous</span>
|
||||
</a>
|
||||
</li>
|
||||
<?php $paginator = 1; while($paginator <= $pages){ ?>
|
||||
<li class="page-item<?=($paginator == $page)?' active':''?>"><a class="page-link" href="#" data-control="friends-pager" data-page="<?=$paginator?>"><?=$paginator?></a></li>
|
||||
<?php $paginator++; } ?>
|
||||
<li class="page-item<?=$page>=$pages?' disabled':''?>">
|
||||
<a class="page-link" href="#" aria-label="Next" data-control="friends-pager" data-page="<?=$page+1?>">
|
||||
<span aria-hidden="true">»</span>
|
||||
<span class="sr-only">Next</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
<?php
|
||||
$pager = ob_get_clean();
|
||||
|
||||
die(json_encode(
|
||||
[
|
||||
"status" => 200,
|
||||
"success" => true,
|
||||
"message" => "OK",
|
||||
"username" => users::getUserNameFromUid($_POST['userID']),
|
||||
"friendCount" => $query->rowCount(),
|
||||
"friends" => $friends,
|
||||
"pages" => $pages,
|
||||
"pager" => $pages > 1 ? $pager : false
|
||||
]));
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
<?php
|
||||
require $_SERVER['DOCUMENT_ROOT'].'/api/private/core.php';
|
||||
header("content-type: application/json");
|
||||
|
||||
if($_SERVER['REQUEST_METHOD'] != 'POST'){ api::respond(405, false, "Method Not Allowed"); }
|
||||
if(!isset($_POST['userID'])){ api::respond(400, false, "Invalid Request"); }
|
||||
if(!is_numeric($_POST['userID'])){ api::respond(400, false, "Invalid Request"); }
|
||||
api::requireLogin();
|
||||
|
||||
$userid = SESSION["userId"];
|
||||
|
||||
if($_POST['userID'] == SESSION["userId"]){ api::respond(400, false, "You can't perform friend operations on yourself"); }
|
||||
|
||||
$query = $pdo->prepare("SELECT id FROM friends WHERE :uid IN (requesterId, receiverId) AND :rid IN (requesterId, receiverId) AND NOT status = 2");
|
||||
$query->bindParam(":uid", $userid, PDO::PARAM_INT);
|
||||
$query->bindParam(":rid", $_POST['userID'], PDO::PARAM_INT);
|
||||
$query->execute();
|
||||
|
||||
$frId = $query->fetchColumn();
|
||||
|
||||
if(!$query->rowCount()){ api::respond(400, false, "Friend connection doesn't exist"); }
|
||||
|
||||
$query = $pdo->prepare("UPDATE friends SET status = 2 WHERE id = :id");
|
||||
$query->bindParam(":id", $frId, PDO::PARAM_INT);
|
||||
|
||||
if($query->execute()){ api::respond(200, true, "OK"); }
|
||||
else{ api::respond(500, false, "Internal Server Error"); }
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
<?php
|
||||
require $_SERVER['DOCUMENT_ROOT'].'/api/private/core.php';
|
||||
header("content-type: application/json");
|
||||
|
||||
if($_SERVER['REQUEST_METHOD'] != 'POST'){ api::respond(405, false, "Method Not Allowed"); }
|
||||
if(!isset($_POST['userID'])){ api::respond(400, false, "Invalid Request"); }
|
||||
if(!is_numeric($_POST['userID'])){ api::respond(400, false, "Invalid Request"); }
|
||||
if(!users::getUserInfoFromUid($_POST['userID'])){ api::respond(400, false, "User does not exist"); }
|
||||
api::requireLogin();
|
||||
|
||||
$userid = SESSION["userId"];
|
||||
|
||||
if($_POST['userID'] == SESSION["userId"]){ api::respond(400, false, "You can't perform friend operations on yourself"); }
|
||||
|
||||
$query = $pdo->prepare("SELECT COUNT(*) FROM friends WHERE :uid IN (requesterId, receiverId) AND :rid IN (requesterId, receiverId) AND NOT status = 2");
|
||||
$query->bindParam(":uid", $userid, PDO::PARAM_INT);
|
||||
$query->bindParam(":rid", $_POST['userID'], PDO::PARAM_INT);
|
||||
$query->execute();
|
||||
|
||||
if($query->fetchColumn()){ api::respond(400, false, "Friend connection already exists"); }
|
||||
|
||||
$query = $pdo->prepare("SELECT timeSent FROM friends WHERE requesterId = :uid AND timeSent+30 > UNIX_TIMESTAMP()");
|
||||
$query->bindParam(":uid", $userid, PDO::PARAM_INT);
|
||||
$query->execute();
|
||||
|
||||
if($query->rowCount()){ api::respond(400, false, "Please wait ".(($query->fetchColumn()+30)-time())." seconds before sending another request"); }
|
||||
|
||||
$query = $pdo->prepare("INSERT INTO friends (requesterId, receiverId, timeSent) VALUES (:uid, :rid, UNIX_TIMESTAMP())");
|
||||
$query->bindParam(":uid", $userid, PDO::PARAM_INT);
|
||||
$query->bindParam(":rid", $_POST['userID'], PDO::PARAM_INT);
|
||||
|
||||
if($query->execute()){ api::respond(200, true, "OK"); }
|
||||
else{ api::respond(500, false, "Internal Server Error"); }
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
<?php
|
||||
ini_set('display_errors', 1);
|
||||
ini_set('display_startup_errors', 1);
|
||||
error_reporting(E_ALL);
|
||||
|
||||
define("SITE_CONFIG",
|
||||
[
|
||||
"database" =>
|
||||
[
|
||||
"host" => "127.0.0.1",
|
||||
"schema" => "polygon",
|
||||
"username" => "root",
|
||||
"password" => ""
|
||||
],
|
||||
|
||||
"site" =>
|
||||
[
|
||||
"name" => "doodoku deez nuts",
|
||||
"name_secondary" => "Polygon",
|
||||
"currencyName" => "mom bucks"
|
||||
],
|
||||
|
||||
"captcha" =>
|
||||
[
|
||||
"siteKey" => "undefined",
|
||||
"privateKey" => "undefined"
|
||||
]
|
||||
]);
|
||||
|
|
@ -0,0 +1,569 @@
|
|||
<?php
|
||||
require $_SERVER['DOCUMENT_ROOT'].'/api/private/config.php';
|
||||
|
||||
try
|
||||
{
|
||||
$pdo = new PDO('mysql:host='.SITE_CONFIG["database"]["host"].';dbname='.SITE_CONFIG["database"]["schema"], SITE_CONFIG["database"]["username"], SITE_CONFIG["database"]["password"]);
|
||||
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||
}
|
||||
catch(PDOException $e)
|
||||
{
|
||||
die("CRITICAL ERROR: Failed to connect to database '".SITE_CONFIG["database"]["schema"]."' at ".SITE_CONFIG["database"]["host"].": ".$e->getMessage());
|
||||
}
|
||||
|
||||
require $_SERVER['DOCUMENT_ROOT'].'/api/private/vendors/Parsedown.php';
|
||||
require $_SERVER['DOCUMENT_ROOT'].'/api/private/pagebuilder.php';
|
||||
|
||||
class api
|
||||
{
|
||||
static function respond($status, $success, $message)
|
||||
{
|
||||
die(json_encode(["status" => $status, "success" => $success, "message" => $message]));
|
||||
}
|
||||
|
||||
static function lastAdminAction()
|
||||
{
|
||||
global $pdo;
|
||||
if(!SESSION || SESSION && !SESSION["adminLevel"]){ return false; }
|
||||
$userid = SESSION["userId"];
|
||||
$query = $pdo->prepare("SELECT lastadminaction FROM users WHERE id = :uid AND lastadminaction + 5 > UNIX_TIMESTAMP()");
|
||||
$query->bindParam(":uid", $userid, PDO::PARAM_INT);
|
||||
$query->execute();
|
||||
|
||||
if($query->rowCount()){ self::respond(400, false, "Please wait ".(($query->fetchColumn()+5)-time())." seconds doing another admin action"); }
|
||||
|
||||
$query = $pdo->prepare("UPDATE users SET lastadminaction = UNIX_TIMESTAMP() WHERE id = :uid");
|
||||
$query->bindParam(":uid", $userid, PDO::PARAM_INT);
|
||||
$query->execute();
|
||||
}
|
||||
|
||||
static function requireLogin()
|
||||
{
|
||||
if(!SESSION || SESSION["2fa"] && !SESSION["2faVerified"]) self::respond(400, false, "Not logged in");
|
||||
if(!isset($_SERVER['HTTP_X_POLYGON_CSRF'])) self::respond(400, false, "CSRF token not set");
|
||||
if($_SERVER['HTTP_X_POLYGON_CSRF'] != SESSION["csrfToken"]) self::respond(400, false, "Invalid CSRF token");
|
||||
}
|
||||
}
|
||||
|
||||
class twofa
|
||||
{
|
||||
static function initialize()
|
||||
{
|
||||
require $_SERVER['DOCUMENT_ROOT'].'/api/private/vendors/2fa/FixedBitNotation.php';
|
||||
require $_SERVER['DOCUMENT_ROOT'].'/api/private/vendors/2fa/GoogleQrUrl.php';
|
||||
require $_SERVER['DOCUMENT_ROOT'].'/api/private/vendors/2fa/GoogleAuthenticatorInterface.php';
|
||||
require $_SERVER['DOCUMENT_ROOT'].'/api/private/vendors/2fa/GoogleAuthenticator.php';
|
||||
return new \Google\Authenticator\GoogleAuthenticator();
|
||||
}
|
||||
|
||||
static function toggle()
|
||||
{
|
||||
if(!SESSION) return false;
|
||||
global $pdo;
|
||||
|
||||
$uid = SESSION["userId"];
|
||||
$twofa = !SESSION["2fa"];
|
||||
|
||||
$query = $pdo->prepare("UPDATE users SET twofa = :2fa WHERE id = :uid");
|
||||
$query->bindParam(":2fa", $twofa, PDO::PARAM_INT);
|
||||
$query->bindParam(":uid", $uid, PDO::PARAM_INT);
|
||||
return $query->execute();
|
||||
}
|
||||
|
||||
static function generateRecoveryCodes()
|
||||
{
|
||||
if(!SESSION) return false;
|
||||
global $pdo;
|
||||
|
||||
$uid = SESSION["userId"];
|
||||
$codes = str_split(bin2hex(random_bytes(60)), 12);
|
||||
$json = json_encode(array_fill_keys($codes, true));
|
||||
|
||||
$query = $pdo->prepare("UPDATE users SET twofaRecoveryCodes = :json WHERE id = :uid");
|
||||
$query->bindParam(":json", $json, PDO::PARAM_STR);
|
||||
$query->bindParam(":uid", $uid, PDO::PARAM_INT);
|
||||
$query->execute();
|
||||
|
||||
return $codes;
|
||||
}
|
||||
}
|
||||
|
||||
class general
|
||||
{
|
||||
static function time_elapsed($datetime, $full = false, $ending = true) //https://stackoverflow.com/questions/1416697/converting-timestamp-to-time-ago-in-php-e-g-1-day-ago-2-days-ago
|
||||
{
|
||||
if($datetime == "@"){ return "-"; }
|
||||
$now = new DateTime;
|
||||
$ago = new DateTime($datetime);
|
||||
$diff = $now->diff($ago);
|
||||
|
||||
$diff->w = floor($diff->d / 7);
|
||||
$diff->d -= $diff->w * 7;
|
||||
|
||||
$string = array(
|
||||
'y' => 'year',
|
||||
'm' => 'month',
|
||||
'w' => 'week',
|
||||
'd' => 'day',
|
||||
'h' => 'hour',
|
||||
'i' => 'minute',
|
||||
's' => 'second',
|
||||
);
|
||||
foreach ($string as $k => &$v)
|
||||
{
|
||||
if ($diff->$k) { $v = $diff->$k . ' ' . $v . ($diff->$k > 1 ? 's' : ''); }
|
||||
else { unset($string[$k]); }
|
||||
}
|
||||
|
||||
if (!$full) $string = array_slice($string, 0, 1);
|
||||
if($ending){ return $string ? implode(', ', $string) . ' ago' : 'just now'; }
|
||||
return implode(', ', $string);
|
||||
}
|
||||
|
||||
static function getIpInfo($ip)
|
||||
{
|
||||
return json_decode(file_get_contents("http://api.ipgeolocationapi.com/geolocate/$ip"));
|
||||
}
|
||||
|
||||
static function filterText($text, $htmlspecialchars = true, $highlight = true)
|
||||
{
|
||||
if($htmlspecialchars){ $text = htmlspecialchars($text); }
|
||||
if(SESSION && !SESSION["filter"]){ return $text; }
|
||||
$filtertext = $highlight ? "<strong><em>baba booey</em></strong>" : "baba booey";
|
||||
return str_ireplace([], $filtertext, $text);
|
||||
}
|
||||
|
||||
static function getServerMemoryUsage()
|
||||
{
|
||||
$lines = explode("\n", file_get_contents('/proc/meminfo'));
|
||||
$total = (int) filter_var($lines[0], FILTER_SANITIZE_NUMBER_INT);
|
||||
$free = (int) filter_var($lines[1], FILTER_SANITIZE_NUMBER_INT);
|
||||
return (object)["total" => $total*1024, "free" => $free*1024];
|
||||
}
|
||||
|
||||
static function getNiceFileSize($bytes, $binaryPrefix = true)
|
||||
{
|
||||
if ($binaryPrefix)
|
||||
{
|
||||
$unit=array('B','KiB','MiB','GiB','TiB','PiB');
|
||||
if (!$bytes) return '0 ' . $unit[0];
|
||||
return round($bytes/pow(1024,($i=floor(log($bytes,1024)))),2) .' '. (isset($unit[$i]) ? $unit[$i] : 'B');
|
||||
}
|
||||
else
|
||||
{
|
||||
$unit=array('B','KB','MB','GB','TB','PB');
|
||||
if (!$bytes) return '0 ' . $unit[0];
|
||||
return round($bytes/pow(1000,($i=floor(log($bytes,1000)))),2) .' '. (isset($unit[$i]) ? $unit[$i] : 'B');
|
||||
}
|
||||
}
|
||||
|
||||
static function getFolderSize($path)
|
||||
{
|
||||
$io = popen('du -sb /var/www/pizzaboxer.xyz/polygon', 'r');
|
||||
$size = (int) filter_var(fgets($io, 4096), FILTER_SANITIZE_NUMBER_INT);
|
||||
pclose($io);
|
||||
return $size;
|
||||
}
|
||||
|
||||
static function replaceVars($string)
|
||||
{
|
||||
return str_replace("%site_name_secondary%", SITE_CONFIG["site"]["name_secondary"], str_replace("%site_name%", SITE_CONFIG["site"]["name"], $string) );
|
||||
}
|
||||
}
|
||||
|
||||
class users
|
||||
{
|
||||
static function getUserNameFromUid($userId)
|
||||
{
|
||||
global $pdo;
|
||||
|
||||
$query = $pdo->prepare("SELECT username FROM users WHERE id = :userid");
|
||||
$query->bindParam(":userid", $userId, PDO::PARAM_INT);
|
||||
$query->execute();
|
||||
|
||||
return $query->fetchColumn();
|
||||
}
|
||||
|
||||
static function getUidFromUserName($userName)
|
||||
{
|
||||
global $pdo;
|
||||
|
||||
$query = $pdo->prepare("SELECT id FROM users WHERE username = :username");
|
||||
$query->bindParam(":username", $userName, PDO::PARAM_STR);
|
||||
$query->execute();
|
||||
|
||||
return $query->fetchColumn();
|
||||
}
|
||||
|
||||
static function getUserInfoFromUid($userId)
|
||||
{
|
||||
global $pdo;
|
||||
|
||||
$query = $pdo->prepare("SELECT * FROM users WHERE id = :userid");
|
||||
$query->bindParam(":userid", $userId, PDO::PARAM_INT);
|
||||
$query->execute();
|
||||
|
||||
return $query->fetch(PDO::FETCH_OBJ);
|
||||
}
|
||||
|
||||
static function getUserInfoFromUserName($username)
|
||||
{
|
||||
global $pdo;
|
||||
|
||||
$query = $pdo->prepare("SELECT * FROM users WHERE username = :username");
|
||||
$query->bindParam(":username", $username, PDO::PARAM_STR);
|
||||
$query->execute();
|
||||
|
||||
return $query->fetch(PDO::FETCH_OBJ);
|
||||
}
|
||||
|
||||
static function getUserAvatar($userId, $size = 2)
|
||||
{
|
||||
// sizes:
|
||||
// size 1: 180 x 220
|
||||
// size 2: 100 x 100
|
||||
return "https://goodblox.xyz/Thumbs/Avatar.ashx?id=60&x=180&y=220";
|
||||
}
|
||||
|
||||
static function checkIfFriends($userId1, $userId2, $status = false)
|
||||
{
|
||||
global $pdo;
|
||||
|
||||
if($status === false)
|
||||
{
|
||||
$query = $pdo->prepare("SELECT * FROM friends WHERE :uid1 IN (requesterId, receiverId) AND :uid2 IN (requesterId, receiverId) AND NOT status = 2");
|
||||
}
|
||||
else
|
||||
{
|
||||
$query = $pdo->prepare("SELECT * FROM friends WHERE :uid1 IN (requesterId, receiverId) AND :uid2 IN (requesterId, receiverId) AND status = :status");
|
||||
$query->bindParam(":status", $status, PDO::PARAM_INT);
|
||||
}
|
||||
|
||||
$query->bindParam(":uid1", $userId1, PDO::PARAM_INT);
|
||||
$query->bindParam(":uid2", $userId2, PDO::PARAM_INT);
|
||||
$query->execute();
|
||||
|
||||
return $query->fetch(PDO::FETCH_OBJ);
|
||||
}
|
||||
|
||||
static function getFriendCount($userId)
|
||||
{
|
||||
global $pdo;
|
||||
|
||||
$query = $pdo->prepare("SELECT COUNT(*) FROM friends WHERE :uid IN (requesterId, receiverId) AND status = 1");
|
||||
$query->bindParam(":uid", $userId, PDO::PARAM_INT);
|
||||
$query->execute();
|
||||
|
||||
return $query->fetchColumn();
|
||||
}
|
||||
|
||||
static function getFriendRequestCount($userId)
|
||||
{
|
||||
global $pdo;
|
||||
|
||||
$query = $pdo->prepare("SELECT COUNT(*) FROM friends WHERE :uid = receiverId AND status = 0");
|
||||
$query->bindParam(":uid", $userId, PDO::PARAM_INT);
|
||||
$query->execute();
|
||||
|
||||
return $query->fetchColumn();
|
||||
}
|
||||
|
||||
static function getForumPostCount($userId)
|
||||
{
|
||||
global $pdo;
|
||||
|
||||
$query = $pdo->prepare("SELECT (SELECT COUNT(*) FROM polygon.forum_threads WHERE author = :id AND NOT deleted) + (SELECT COUNT(*) FROM polygon.forum_replies WHERE author = :id) AS totalPosts");
|
||||
$query->bindParam(":id", $userId, PDO::PARAM_INT);
|
||||
$query->execute();
|
||||
|
||||
return $query->fetchColumn();
|
||||
}
|
||||
|
||||
static function updatePing()
|
||||
{
|
||||
global $pdo;
|
||||
if(!SESSION){ return false; }
|
||||
|
||||
$userId = SESSION["userId"];
|
||||
$sessionkey = $_COOKIE['polygon_session'];
|
||||
|
||||
$query = $pdo->prepare("UPDATE users SET lastonline = UNIX_TIMESTAMP() WHERE id = :id");
|
||||
$query->bindParam(":id", $userId, PDO::PARAM_INT);
|
||||
|
||||
if(!$sessionkey){ return $query->execute(); }
|
||||
|
||||
$sessquery = $pdo->prepare("UPDATE sessions SET lastonline = UNIX_TIMESTAMP() WHERE sessionKey = :key");
|
||||
$sessquery->bindParam(":key", $sessionkey, PDO::PARAM_STR);
|
||||
|
||||
return $sessquery->execute() && $query->execute();
|
||||
}
|
||||
|
||||
static function updateCurrencyStipend()
|
||||
{
|
||||
global $pdo;
|
||||
if(!SESSION){ return false; }
|
||||
|
||||
$userId = SESSION["userId"];
|
||||
if(SESSION["nextCurrencyStipend"] > time()){ return true; } //not yet
|
||||
|
||||
$query = $pdo->prepare("UPDATE users SET currency = currency + 10, nextCurrencyStipend = UNIX_TIMESTAMP()+86400 WHERE id = :uid");
|
||||
$query->bindParam(":uid", $userId, PDO::PARAM_INT);
|
||||
return $query->execute();
|
||||
}
|
||||
|
||||
static function getOnlineStatus($userId)
|
||||
{
|
||||
global $pdo;
|
||||
|
||||
$response = ["online" => false, "text" => false];
|
||||
|
||||
$query = $pdo->prepare("SELECT lastonline FROM users WHERE id = :id");
|
||||
$query->bindParam(":id", $userId, PDO::PARAM_INT);
|
||||
$query->execute();
|
||||
|
||||
$time = $query->fetchColumn();
|
||||
|
||||
if(!$query->rowCount()){ return $response; }
|
||||
if($time+30 > time()){ $response["online"] = true; $response["text"] = "Website"; }
|
||||
else{ $response["text"] = ($time + 604800) > time() ? general::time_elapsed('@'.$time) : date('j/n/Y', $time); }
|
||||
// \a\t g:i:s A
|
||||
return $response;
|
||||
}
|
||||
|
||||
static function getUsersOnline()
|
||||
{
|
||||
global $pdo;
|
||||
|
||||
$query = $pdo->query("SELECT COUNT(*) FROM users WHERE lastonline+35 > UNIX_TIMESTAMP()");
|
||||
$query->execute();
|
||||
return $query->fetchColumn();
|
||||
}
|
||||
|
||||
static function requireLogin()
|
||||
{
|
||||
if(!SESSION){ die(header("Location: /login?ReturnUrl=".urlencode($_SERVER['REQUEST_URI']))); }
|
||||
}
|
||||
|
||||
static function requireLoggedOut()
|
||||
{
|
||||
if(SESSION){ die(header("Location: /home")); }
|
||||
}
|
||||
|
||||
static function getUserModeration($userId)
|
||||
{
|
||||
global $pdo;
|
||||
|
||||
$query = $pdo->prepare("SELECT * FROM bans WHERE userId = :id AND NOT isDismissed ORDER BY id DESC LIMIT 1");
|
||||
$query->bindParam(":id", $userId, PDO::PARAM_INT);
|
||||
$query->execute();
|
||||
|
||||
return $query->fetch(PDO::FETCH_OBJ);
|
||||
}
|
||||
|
||||
static function undoUserModeration($userId, $admin = false)
|
||||
{
|
||||
global $pdo;
|
||||
|
||||
if($admin)
|
||||
{
|
||||
$query = $pdo->prepare("UPDATE bans SET isDismissed = 1 WHERE userId = :id AND NOT isDismissed");
|
||||
}
|
||||
else
|
||||
{
|
||||
$query = $pdo->prepare("UPDATE bans SET isDismissed = 1 WHERE userId = :id AND NOT isDismissed AND NOT banType = 3 AND timeEnds < UNIX_TIMESTAMP()");
|
||||
}
|
||||
$query->bindParam(":id", $userId, PDO::PARAM_INT);
|
||||
|
||||
return $query->execute();
|
||||
}
|
||||
|
||||
static function logStaffAction($action)
|
||||
{
|
||||
if(!SESSION || SESSION && !SESSION["adminLevel"]){ return false; }
|
||||
global $pdo;
|
||||
$uid = SESSION["userId"];
|
||||
|
||||
$query = $pdo->prepare("INSERT INTO stafflogs (time, adminId, action) VALUES (UNIX_TIMESTAMP(), :uid, :action)");
|
||||
$query->bindParam(":uid", $uid, PDO::PARAM_INT);
|
||||
$query->bindParam(":action", $action, PDO::PARAM_STR);
|
||||
|
||||
return $query->execute();
|
||||
}
|
||||
}
|
||||
|
||||
class forum
|
||||
{
|
||||
static function getThreadInfo($id)
|
||||
{
|
||||
global $pdo;
|
||||
|
||||
$query = $pdo->prepare("SELECT * FROM forum_threads WHERE id = :id");
|
||||
$query->bindParam(":id", $id, PDO::PARAM_INT);
|
||||
$query->execute();
|
||||
|
||||
return $query->fetch(PDO::FETCH_OBJ);
|
||||
}
|
||||
|
||||
static function getReplyInfo($id)
|
||||
{
|
||||
global $pdo;
|
||||
|
||||
$query = $pdo->prepare("SELECT * FROM forum_replies WHERE id = :id");
|
||||
$query->bindParam(":id", $id, PDO::PARAM_INT);
|
||||
$query->execute();
|
||||
|
||||
return $query->fetch(PDO::FETCH_OBJ);
|
||||
}
|
||||
|
||||
static function getThreadReplies($id)
|
||||
{
|
||||
global $pdo;
|
||||
|
||||
$query = $pdo->prepare("SELECT COUNT(*) FROM forum_replies WHERE threadId = :id");
|
||||
$query->bindParam(":id", $id, PDO::PARAM_INT);
|
||||
$query->execute();
|
||||
$replies = $query->fetchColumn();
|
||||
return $replies ? $replies : '-';
|
||||
}
|
||||
|
||||
static function getSubforumInfo($id)
|
||||
{
|
||||
global $pdo;
|
||||
$query = $pdo->prepare("SELECT * FROM forum_subforums WHERE id = :id");
|
||||
$query->bindParam(":id", $id, PDO::PARAM_INT);
|
||||
$query->execute();
|
||||
|
||||
return $query->fetch(PDO::FETCH_OBJ);
|
||||
}
|
||||
|
||||
static function getSubforumThreadCount($id, $includeReplies = false)
|
||||
{
|
||||
global $pdo;
|
||||
$query = $pdo->prepare("SELECT COUNT(*) FROM forum_threads WHERE subforumid = :id");
|
||||
$query->bindParam(":id", $id, PDO::PARAM_INT);
|
||||
$query->execute();
|
||||
$threads = $query->fetchColumn();
|
||||
|
||||
if(!$includeReplies){ return $threads ? $threads : '-'; }
|
||||
|
||||
$query = $pdo->prepare("SELECT COUNT(*) from forum_replies WHERE threadId IN (SELECT id FROM forum_threads WHERE subforumid = :id)");
|
||||
$query->bindParam(":id", $id, PDO::PARAM_INT);
|
||||
$query->execute();
|
||||
|
||||
$total = $threads + $query->fetchColumn();
|
||||
|
||||
return $total ?? '-';
|
||||
}
|
||||
}
|
||||
|
||||
class session //most of the session code here comes from my old roblonium code; it works surprisingly well
|
||||
{
|
||||
static function createSession($userId)
|
||||
{
|
||||
global $pdo;
|
||||
|
||||
keygen:
|
||||
$sessionkey = bin2hex(random_bytes(128));
|
||||
|
||||
$query = $pdo->prepare("SELECT COUNT(*) FROM sessions WHERE sessionKey = :sesskey");
|
||||
$query->bindParam(":sesskey", $sessionkey, PDO::PARAM_STR);
|
||||
$query->execute();
|
||||
|
||||
if($query->fetchColumn()){ goto keygen; } //if a session with the same key already exists then repeat key generation process
|
||||
|
||||
$csrf = bin2hex(random_bytes(32));
|
||||
|
||||
$create = $pdo->prepare("INSERT INTO sessions (`sessionKey`, `userAgent`, `userId`, `loginIp`, `created`, `lastonline`, `csrf`) VALUES (:sesskey, :useragent, :userid, :ip, UNIX_TIMESTAMP(), UNIX_TIMESTAMP(), :csrf)");
|
||||
$create->bindParam(":sesskey", $sessionkey, PDO::PARAM_STR);
|
||||
$create->bindParam(":useragent", $_SERVER['HTTP_USER_AGENT'], PDO::PARAM_STR);
|
||||
$create->bindParam(":userid", $userId, PDO::PARAM_INT);
|
||||
$create->bindParam(":ip", $_SERVER['REMOTE_ADDR'], PDO::PARAM_STR);
|
||||
$create->bindParam(":csrf", $csrf, PDO::PARAM_STR);
|
||||
$create->execute();
|
||||
|
||||
setcookie("polygon_session", $sessionkey, time()+(157700000*3), "/"); //expires in 5 years
|
||||
}
|
||||
|
||||
static function destroySession($sesskey)
|
||||
{
|
||||
global $pdo;
|
||||
|
||||
$query = $pdo->prepare("UPDATE sessions SET valid = 0 WHERE sessionKey = :sesskey");
|
||||
$query->bindParam(":sesskey", $sesskey, PDO::PARAM_STR);
|
||||
return $query->execute();
|
||||
}
|
||||
|
||||
static function invalidateSession($sesskey)
|
||||
{
|
||||
setcookie("polygon_session", $sesskey, 1, "/");
|
||||
die(header("Refresh: 0"));
|
||||
}
|
||||
|
||||
static function getSessionData($sessionkey, $strict = true)
|
||||
{
|
||||
global $pdo;
|
||||
|
||||
$query = $pdo->prepare("SELECT * FROM sessions WHERE sessionKey = :sesskey AND valid AND lastonline+432000 > UNIX_TIMESTAMP()");
|
||||
$query->bindParam(":sesskey", $sessionkey, PDO::PARAM_STR);
|
||||
$query->execute();
|
||||
if(!$query->rowCount()) return false;
|
||||
$row = $query->fetch(PDO::FETCH_OBJ);
|
||||
|
||||
if($row->created+(157700000*3) < time()) return false;
|
||||
if($row->userId != 1 && $strict && $row->userAgent != $_SERVER['HTTP_USER_AGENT']) return false;
|
||||
//if($row->loginIp != $_SERVER['REMOTE_ADDR']){ return false; } disabled cause ppl with dyn ips would have issues
|
||||
//these last two checks in particular should help to stop potential cookie stealing attacks
|
||||
|
||||
return $row;
|
||||
}
|
||||
}
|
||||
|
||||
if(isset($_COOKIE['polygon_session']))
|
||||
{
|
||||
$session = session::getSessionData($_COOKIE['polygon_session']);
|
||||
if($session)
|
||||
{
|
||||
$userInfo = users::getUserInfoFromUid($session->userId);
|
||||
define('SESSION',
|
||||
[
|
||||
"userName" => $userInfo->username,
|
||||
"userId" => $userInfo->id,
|
||||
"2fa" => $userInfo->twofa,
|
||||
"2faVerified" => $session->twofaVerified,
|
||||
"friendRequests" => users::getFriendRequestCount($userInfo->id),
|
||||
"status" => $userInfo->status,
|
||||
"currency" => $userInfo->currency,
|
||||
"nextCurrencyStipend" => $userInfo->nextCurrencyStipend,
|
||||
"adminLevel" => $userInfo->adminlevel,
|
||||
"filter" => $userInfo->filter,
|
||||
"pageAnim" => $userInfo->pageanim,
|
||||
"sessionKey" => $session->sessionKey,
|
||||
"csrfToken" => $session->csrf,
|
||||
"userInfo" => (array)$userInfo
|
||||
]);
|
||||
|
||||
if(users::getUserModeration(SESSION["userId"]) && !isset($bypassModeration))
|
||||
{
|
||||
die(header("Location: /moderation"));
|
||||
}
|
||||
elseif(SESSION["2fa"] && !SESSION["2faVerified"] && !in_array($_SERVER['DOCUMENT_URI'], ["/directory_login/2fa.php", "/logout.php"]))
|
||||
{
|
||||
die(header("Location: /login/2fa"));
|
||||
}
|
||||
else
|
||||
{
|
||||
users::updatePing();
|
||||
users::updateCurrencyStipend();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
session::destroySession($_COOKIE['polygon_session']);
|
||||
session::invalidateSession($_COOKIE['polygon_session']);
|
||||
define('SESSION', false);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
define('SESSION', false);
|
||||
}
|
||||
|
|
@ -0,0 +1,556 @@
|
|||
<?php
|
||||
|
||||
class pageBuilder
|
||||
{
|
||||
public static string $additionalFooterStuff = "";
|
||||
|
||||
public static array $JSdependencies =
|
||||
[
|
||||
"https://code.jquery.com/jquery-3.0.0.min.js",
|
||||
"/js/toastr.js",
|
||||
"/js/bootstrap-datepicker.min.js"
|
||||
];
|
||||
|
||||
public static array $CSSdependencies =
|
||||
[
|
||||
"/css/fontawesome-pro-v5.10.1/css/all.css",
|
||||
"/css/toastr.js.css",
|
||||
"/css/bootstrap-datepicker.min.css"
|
||||
];
|
||||
|
||||
public static array $pageConfig =
|
||||
[
|
||||
"title" => "a",
|
||||
"og:site_name" => SITE_CONFIG["site"]["name"],
|
||||
"og:url" => "https://polygon.pizzaboxer.xyz",
|
||||
"og:description" => "yeah its a website about shapes and squares and triangles and stuff and ummmmm",
|
||||
"og:image" => "",
|
||||
"containerWidth" => "w-100",
|
||||
"includeNav" => true,
|
||||
"barebones" => false
|
||||
];
|
||||
|
||||
static function showStaticNotification($type, $text)
|
||||
{
|
||||
self::$additionalFooterStuff .= '<script type="text/javascript">$(function(){ toastr["'.$type.'"]("'.$text.'"); });</script>';
|
||||
}
|
||||
|
||||
static function showStaticModal($title, $body, $buttons = "[{}]", $options = "{'show':true}")
|
||||
{
|
||||
//showModal($(this).attr("data-title"), $(this).attr("data-text"), [{'class':'btn btn-outline-secondary', 'isDismissButton':true, 'text':'Close'}]);
|
||||
$body = trim(preg_replace('/\s\s+/', ' ', $body));
|
||||
$body = str_replace('"', '\"', $body);
|
||||
self::$additionalFooterStuff .= '<script type="text/javascript">$(function(){ showModal("'.$title.'", "'.$body.'", '.$buttons.', '.$options.'); });</script>';
|
||||
}
|
||||
|
||||
static function buildHeader()
|
||||
{
|
||||
global $pdo;
|
||||
$announcements = $pdo->query("SELECT * FROM announcements WHERE activated ORDER BY id DESC");
|
||||
|
||||
$markdown = new Parsedown();
|
||||
$markdown->setMarkupEscaped(true);
|
||||
$markdown->setBreaksEnabled(true);
|
||||
$markdown->setSafeMode(true);
|
||||
$markdown->setUrlsLinked(true);
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="robots" content="noindex">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="polygon-csrf" content="<?=SESSION?SESSION["csrfToken"]:'false'?>">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<link rel='shortcut icon' type='image/x-icon' href='/img/TinyBcIcon.ico' />
|
||||
<title><?=self::$pageConfig["title"]?> - <?=SITE_CONFIG["site"]["name"]?></title>
|
||||
<meta name="theme-color" content="#eb4034">
|
||||
<meta property="og:title" content="<?=self::$pageConfig["title"]?>">
|
||||
<meta property="og:site_name" content="<?=self::$pageConfig["og:site_name"]?>">
|
||||
<meta property="og:url" content="<?=self::$pageConfig["og:url"]?>">
|
||||
<meta property="og:description" content="<?=self::$pageConfig["og:description"]?>">
|
||||
<meta property="og:type" content="Website">
|
||||
<meta property="og:image" content="<?=self::$pageConfig["og:image"]?>">
|
||||
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous">
|
||||
<?php foreach(self::$CSSdependencies as $url){ ?>
|
||||
<link rel="stylesheet" href="<?=$url?>">
|
||||
<?php } ?>
|
||||
<?php foreach(self::$JSdependencies as $url){ ?>
|
||||
<script src="<?=$url?>"></script>
|
||||
<?php } ?>
|
||||
<style>
|
||||
body
|
||||
{
|
||||
display: flex;
|
||||
min-height: 100vh;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.container
|
||||
{
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.navbar-orange,
|
||||
.nav-item .dropdown-menu
|
||||
{
|
||||
background-color: #eb4034;
|
||||
}
|
||||
|
||||
/* change the brand and text color */
|
||||
.navbar-orange .navbar-brand,
|
||||
.navbar-text,
|
||||
.navbar-nav .nav-link,
|
||||
.nav-item .dropdown-menu .dropdown-item
|
||||
{
|
||||
color: rgba(255,255,255,1)!important;
|
||||
}
|
||||
|
||||
/* change the color of active or hovered links */
|
||||
.navbar-top .nav-item:hover .nav-link,
|
||||
.darken
|
||||
{
|
||||
color: rgba(255,255,255,0.75)!important;
|
||||
}
|
||||
|
||||
.nav-item .dropdown-menu .dropdown-item:hover
|
||||
{
|
||||
background-color: transparent;
|
||||
color: rgba(255,255,255,0.75)!important;
|
||||
}
|
||||
|
||||
.nav-item .dropdown-menu
|
||||
{
|
||||
min-width: 0;
|
||||
border: 1px solid #343a40;
|
||||
border-top: none;
|
||||
border-top-left-radius: 0px;
|
||||
border-top-right-radius: 0px;
|
||||
}
|
||||
|
||||
.navbar-orange .navbar-toggler
|
||||
{
|
||||
color: rgba(255,255,255,1)!important;
|
||||
}
|
||||
|
||||
@media (min-width: 768px)
|
||||
{
|
||||
.divider-right
|
||||
{
|
||||
border-right: 1px solid #ccc;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 768px)
|
||||
{
|
||||
.divider-right
|
||||
{
|
||||
border-bottom: 1px solid #ccc;
|
||||
}
|
||||
}
|
||||
|
||||
.divider-top
|
||||
{
|
||||
border-top: 1px solid #ccc;
|
||||
}
|
||||
|
||||
.divider-bottom
|
||||
{
|
||||
border-bottom: 1px solid #ccc;
|
||||
}
|
||||
|
||||
.hover:hover
|
||||
{
|
||||
/*transform: scale(1.005);*/
|
||||
box-shadow: 0 10px 20px rgba(0,0,0,.08), 0 4px 8px rgba(0,0,0,.06);
|
||||
}
|
||||
|
||||
.alert p { margin-bottom: 0; }
|
||||
</style>
|
||||
<script>var pageLoadAnimation = <?=!SESSION || SESSION && SESSION["pageAnim"]?'true':'false'?>; var loggedIn = <?=SESSION?'true':'false'?>;</script>
|
||||
</head>
|
||||
<body>
|
||||
<?php if(self::$pageConfig["includeNav"]) { ?>
|
||||
<nav class="navbar navbar-expand-lg navbar-dark navbar-orange navbar-top py-0">
|
||||
<div class="container">
|
||||
<a class="navbar-brand" href="/"><?=SITE_CONFIG["site"]["name"]?></a>
|
||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#primaryNavbar" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="primaryNavbar">
|
||||
<ul class="navbar-nav mr-auto">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/">Home</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/">Games</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/">Catalog</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/">Develop</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/forum">Forum</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/browse">People</a>
|
||||
</li>
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle" href="#" id="moreDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">More</a>
|
||||
<div class="dropdown-menu mt-0" aria-labelledby="moreDropdown">
|
||||
<!--a class="dropdown-item" href="/browse">People</a>
|
||||
<div class="dropdown-divider"></div-->
|
||||
<a class="dropdown-item" href="/discord">Discord</a>
|
||||
<a class="dropdown-item" href="https://twitter.com/boxerpizza">Twitter</a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="navbar-nav">
|
||||
<?php if(SESSION) { ?>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link mr-2" href="/user?ID=<?=SESSION["userId"]?>"><?=SESSION["userName"]?></a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="btn btn-sm btn-light py-0 px-1" style="position:absolute; margin-left:25px; <?=!SESSION["friendRequests"]?'display:none':''?>"><?=SESSION["friendRequests"]?></a>
|
||||
<a class="btn btn-sm btn-outline-light my-1 mr-2" href="/friends">
|
||||
<i class="fas fa-user-friends"></i>
|
||||
</a>
|
||||
</li>
|
||||
<div class="divider-right mr-2 my-2"></div>
|
||||
<a class="nav-link darken px-0 mr-2" data-toggle="tooltip" data-html="true" data-placement="bottom" title="<?=SESSION["currency"]?> <?=SITE_CONFIG["site"]["currencyName"]?> <br> Your next stipend is in <?=general::time_elapsed("@".SESSION["nextCurrencyStipend"], true, false)?>"><?=SESSION["currency"]?> <i class="fal fa-pizza-slice"></i></a>
|
||||
<div class="divider-right mr-2 my-2"></div>
|
||||
<li class="nav-item">
|
||||
<a class="btn btn-sm btn-light my-1 mr-2 px-3" href="/logout">Logout</a>
|
||||
</li>
|
||||
<?php } else { ?>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/register">Sign Up</a>
|
||||
</li>
|
||||
<a class="nav-link darken px-0">or</a>
|
||||
<li class="nav-item">
|
||||
<a class="btn btn-sm btn-light my-1 mx-2 px-3" href="/login">Login</a>
|
||||
</li>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<?php if(SESSION) { ?>
|
||||
<nav class="navbar navbar-expand-lg navbar-top bg-dark py-0">
|
||||
<div class="container">
|
||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#secondaryNavbar" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="secondaryNavbar">
|
||||
<ul class="navbar-nav mr-auto">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link py-1" href="/user">Profile</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link py-1" href="/">Character</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link py-1" href="/friends">Friends</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link py-1" href="/">Inventory</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link py-1" href="/">Money</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link py-1" href="/my/account">Account</a>
|
||||
</li>
|
||||
<?php if(SESSION && SESSION["adminLevel"]) { ?>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link py-1" href="/admin">Admin</a>
|
||||
</li>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<?php } while($row = $announcements->fetch(PDO::FETCH_OBJ)){ ?>
|
||||
<div class="alert py-2 mb-0 rounded-0 text-center <?=$row->textcolor?>" role="alert" style="background-color: <?=$row->bgcolor?>">
|
||||
<?=$markdown->text($row->text)?>
|
||||
</div>
|
||||
<?php } } ?>
|
||||
<noscript>
|
||||
<div class="alert py-2 mb-0 rounded-0 text-center text-light bg-danger" role="alert">
|
||||
This site relies on Javascript quite heavily, so many site features won't work without it. Consider enabling it or switching to a newer browser (please)?
|
||||
</div>
|
||||
</noscript>
|
||||
<div class="app container py-5 <?=self::$pageConfig["containerWidth"]?>"<?=!SESSION || SESSION && SESSION["pageAnim"]?' style="display:none"':''?>>
|
||||
<?php } static function buildFooter() { ?>
|
||||
</div>
|
||||
<nav class="footer navbar navbar-light navbar-orange "<?=!SESSION || SESSION && SESSION["pageAnim"]?' style="display:none"':''?>>
|
||||
<div class="container py-4 text-light">
|
||||
<div class="row" style="width:100%">
|
||||
<div class="col-sm-3 text-center pt-1" style="border-right: 1px solid #ccc;">
|
||||
<h3 class="font-weight-normal"><?=SITE_CONFIG["site"]["name"]?></h3>
|
||||
</div>
|
||||
<div class="col-sm-9 pl-4">
|
||||
<p class="font-weight-normal mb-0 pl-2">made by pizzaboxer</p>
|
||||
<p class="font-weight-normal mb-0 pl-2">copyright © <?=SITE_CONFIG["site"]["name"]?> 2020</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<div class="modal fade" id="primaryModal" tabindex="-1" role="dialog" aria-labelledby="primaryModalCenter" aria-hidden="true">
|
||||
<div class="modal-dialog modal-dialog-centered" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="col-11 modal-title text-center pl-5" id="primaryModalTitle">undefined</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body text-center text-break">
|
||||
undefined
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<div class="mx-auto">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="/js/bootstrap.bundle.min.js"></script>
|
||||
<script>
|
||||
//core.js
|
||||
$.ajaxSetup(
|
||||
{
|
||||
headers: { 'x-polygon-csrf': $('meta[name="polygon-csrf"]').attr('content') }
|
||||
});
|
||||
|
||||
$(function()
|
||||
{
|
||||
if(loggedIn){ setInterval(function(){ $.post("/api/account/updatePing"); }, 30000); }
|
||||
if(pageLoadAnimation){ $(".app").fadeIn(350); $(".footer").fadeIn(350); }
|
||||
$("[data-toggle='tooltip']").tooltip();
|
||||
});
|
||||
|
||||
function showModal(title, body, buttons, options)
|
||||
{
|
||||
if(options == undefined) options = "show";
|
||||
var modalFooter = $("#primaryModal").find(".modal-footer").find(".mx-auto");
|
||||
$("#primaryModal").find(".modal-title").text(title);
|
||||
$("#primaryModal").find(".modal-body").html(body);
|
||||
$("#primaryModal").modal(options);
|
||||
|
||||
modalFooter.empty();
|
||||
|
||||
$.each(buttons, function(i, button)
|
||||
{
|
||||
var buttonHtml = '<button type="button" class="'+button.class+' text-center mx-1"';
|
||||
if(button.isDismissButton){ buttonHtml += ' data-dismiss="modal"'; }
|
||||
if(button.onclick){ buttonHtml += ' onclick="'+button.onclick+'"'; }
|
||||
buttonHtml += '>'+button.text+'</button>';
|
||||
|
||||
modalFooter.html(modalFooter.html()+buttonHtml);
|
||||
});
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
//friends.js
|
||||
var polygon_friends =
|
||||
{
|
||||
getFriends: function(userid, page, limit)
|
||||
{
|
||||
return $.post('/api/friends/getFriends', {"userID": userid, "page": page, "limit": limit});
|
||||
},
|
||||
|
||||
getFriendRequests: function(page)
|
||||
{
|
||||
return $.post('/api/friends/getFriendRequests', {"page": page});
|
||||
},
|
||||
|
||||
friendAction: function(userid, type)
|
||||
{
|
||||
switch(type)
|
||||
{
|
||||
case "sendRequest":
|
||||
return $.post('/api/friends/sendRequest', {"userID": userid});
|
||||
break;
|
||||
|
||||
case "acceptRequest":
|
||||
return $.post('/api/friends/acceptRequest', {"userID": userid});
|
||||
break;
|
||||
|
||||
case "revokeRequest":
|
||||
return $.post('/api/friends/revokeFriend', {"userID": userid});
|
||||
break;
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
function registerFriendActionHandler()
|
||||
{
|
||||
$('a[aria-controls$="Request"]').on('click', this, function()
|
||||
{
|
||||
polygon_friends.friendAction($(this).attr("aria-userid"), $(this).attr("aria-controls")).done(function(data)
|
||||
{
|
||||
if(data.success)
|
||||
{
|
||||
if(window.location.pathname.toLowerCase() == "/user"){ location.reload(); }
|
||||
else{ refreshFriends(); refreshFriendRequests(); }
|
||||
}
|
||||
else{ toastr["error"](data.message); }
|
||||
});
|
||||
});
|
||||
|
||||
$('a[data-control$="friends-pager"]').on('click', this, function(event)
|
||||
{
|
||||
event.preventDefault();
|
||||
displayFriends($(this).attr("data-page"));
|
||||
});
|
||||
}
|
||||
|
||||
function displayFriends(page)
|
||||
{
|
||||
userId = $("#friends").attr("data-uid");
|
||||
limit = $("#friends").attr("data-limit");
|
||||
self = $("#friends").attr("data-selfpage");
|
||||
|
||||
$(".friends-tab-content").empty();
|
||||
$(".friends-pager").empty();
|
||||
$("#friends").find(".spinner-border").show();
|
||||
|
||||
polygon_friends.getFriends(userId, page, limit).done(function(data)
|
||||
{
|
||||
if(data.success)
|
||||
{
|
||||
$("#friends").find(".spinner-border").hide();
|
||||
if(data.pager){ $(".friends-pager").html($(".friends-pager").html()+data.pager); }
|
||||
|
||||
if(Object.keys(data.friends).length)
|
||||
{
|
||||
$.each(data.friends, function(i, friend)
|
||||
{
|
||||
var friendCard = $(".friend-card-template").clone().removeClass("d-none friend-card-template");
|
||||
friendCard.html(friendCard.html().replace(/\$username/g, friend.userName));
|
||||
friendCard.html(friendCard.html().replace(/\$userid/g, friend.userId));
|
||||
friendCard.appendTo(".friends-tab-content");
|
||||
});
|
||||
|
||||
registerFriendActionHandler();
|
||||
}
|
||||
else
|
||||
{
|
||||
if(self == 'true'){ $(".friends-tab-content").html('<p class="pl-4">You don\'t have any friends. <a href="/browse">Go make some!</a>'); }
|
||||
else{ $(".friends-tab-content").html('<p class="pl-4">'+data.username+' does not have any friends.</p>'); }
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
toastr["error"]("Failed to fetch friends: "+data.message);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function displayFriendRequests(page)
|
||||
{
|
||||
polygon_friends.getFriendRequests(page).done(function(data)
|
||||
{
|
||||
if(data.success)
|
||||
{
|
||||
if(Object.keys(data.requests).length)
|
||||
{
|
||||
$(".requestsIndicator").removeClass("d-none");
|
||||
$(".requestsIndicator").text(Object.keys(data.requests).length);
|
||||
$.each(data.requests, function(i, request)
|
||||
{
|
||||
var requestCard = $(".request-card-template").clone().removeClass("d-none request-card-template");
|
||||
requestCard.html(requestCard.html().replace(/\$username/g, request.userName));
|
||||
requestCard.html(requestCard.html().replace(/\$userid/g, request.userId));
|
||||
requestCard.appendTo(".requests-tab-content");
|
||||
});
|
||||
|
||||
registerFriendActionHandler();
|
||||
}
|
||||
else
|
||||
{
|
||||
$(".requestsIndicator").addClass("d-none");
|
||||
$(".requests-tab-content").html('<p class="pl-4">Looks like there aren\'t any friend requests at the moment.');
|
||||
}
|
||||
}
|
||||
else{ alert("Failed to fetch friends: "+data.message); }
|
||||
});
|
||||
}
|
||||
|
||||
$(document).ready(function(){ registerFriendActionHandler(); })
|
||||
</script>
|
||||
<?php if(SESSION && SESSION["adminLevel"]){ ?>
|
||||
<script>
|
||||
//admin.js
|
||||
$('a[data-control$="moderateForum"]').on('click', this, function()
|
||||
{
|
||||
if(confirm("Are you sure you want to delete this forum post?"))
|
||||
{
|
||||
var postType = $(this).attr("data-type");
|
||||
var postId = $(this).attr("data-id");
|
||||
$.post('/api/admin/deleteforumpost', {"postType": postType, "postId": postId}, function(data){
|
||||
if(data.success)
|
||||
{
|
||||
toastr["success"](postType+" ID "+postId+" has been successfully deleted");
|
||||
setTimeout(function(){ location.reload(); }, 1500);
|
||||
}
|
||||
else
|
||||
{
|
||||
toastr["error"](data.message);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
</script>
|
||||
<?php } ?>
|
||||
<script>
|
||||
toastr.options = {
|
||||
"closeButton": true,
|
||||
"debug": false,
|
||||
"newestOnTop": true,
|
||||
"progressBar": true,
|
||||
"positionClass": "toast-bottom-center",
|
||||
"preventDuplicates": true,
|
||||
"onclick": null,
|
||||
"showDuration": "300",
|
||||
"hideDuration": "1000",
|
||||
"timeOut": "5000",
|
||||
"extendedTimeOut": "1000",
|
||||
"showEasing": "swing",
|
||||
"hideEasing": "linear",
|
||||
"showMethod": "fadeIn",
|
||||
"hideMethod": "fadeOut"
|
||||
}
|
||||
</script>
|
||||
<?=self::$additionalFooterStuff?>
|
||||
</body>
|
||||
</html>
|
||||
<?php }
|
||||
|
||||
static function errorCode($code)
|
||||
{
|
||||
http_response_code($code);
|
||||
$text =
|
||||
[
|
||||
404 => ["name" => "Page Not Found", "text" => "the page you are looking for does not exist <br> check that there's no mistakes in the url"],
|
||||
403 => ["name" => "Forbidden", "text" => "you cannot access this page"],
|
||||
420 => ["name" => "Page Under Construction", "text" => "this page is under construction and is only accessible to admins for now <br> check back later <br> <small>*obviously not a real code lol but i had to put something</small>"]
|
||||
];
|
||||
self::buildHeader();
|
||||
?>
|
||||
<div class="card mx-auto" style="max-width:640px;">
|
||||
<div class="card-body text-center">
|
||||
<h1 class="font-weight-normal"><?=$code?> / <?=$text[$code]["name"]?></h1>
|
||||
<?=$text[$code]["text"]?> <br>
|
||||
<a class="btn btn-outline-primary mt-2 px-4" onclick="window.history.back();">‹ Back</a>
|
||||
<a class="btn btn-outline-secondary mt-2 px-4" href="/">Home</a>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
self::buildFooter();
|
||||
die();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,292 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/*
|
||||
* This file is part of the Sonata Project package.
|
||||
*
|
||||
* (c) Thomas Rabaix <thomas.rabaix@sonata-project.org>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Sonata\GoogleAuthenticator;
|
||||
|
||||
/**
|
||||
* FixedBitNotation.
|
||||
*
|
||||
* The FixedBitNotation class is for binary to text conversion. It
|
||||
* can handle many encoding schemes, formally defined or not, that
|
||||
* use a fixed number of bits to encode each character.
|
||||
*
|
||||
* @author Andre DeMarre
|
||||
*/
|
||||
final class FixedBitNotation
|
||||
{
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private $chars;
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
private $bitsPerCharacter;
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
private $radix;
|
||||
|
||||
/**
|
||||
* @var bool
|
||||
*/
|
||||
private $rightPadFinalBits;
|
||||
|
||||
/**
|
||||
* @var bool
|
||||
*/
|
||||
private $padFinalGroup;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private $padCharacter;
|
||||
|
||||
/**
|
||||
* @var string[]
|
||||
*/
|
||||
private $charmap;
|
||||
|
||||
/**
|
||||
* @param int $bitsPerCharacter Bits to use for each encoded character
|
||||
* @param string $chars Base character alphabet
|
||||
* @param bool $rightPadFinalBits How to encode last character
|
||||
* @param bool $padFinalGroup Add padding to end of encoded output
|
||||
* @param string $padCharacter Character to use for padding
|
||||
*/
|
||||
public function __construct(int $bitsPerCharacter, ?string $chars = null, bool $rightPadFinalBits = false, bool $padFinalGroup = false, string $padCharacter = '=')
|
||||
{
|
||||
// Ensure validity of $chars
|
||||
if (!\is_string($chars) || ($charLength = \strlen($chars)) < 2) {
|
||||
$chars =
|
||||
'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-,';
|
||||
$charLength = 64;
|
||||
}
|
||||
|
||||
// Ensure validity of $bitsPerCharacter
|
||||
if ($bitsPerCharacter < 1) {
|
||||
// $bitsPerCharacter must be at least 1
|
||||
$bitsPerCharacter = 1;
|
||||
$radix = 2;
|
||||
} elseif ($charLength < 1 << $bitsPerCharacter) {
|
||||
// Character length of $chars is too small for $bitsPerCharacter
|
||||
// Set $bitsPerCharacter to greatest acceptable value
|
||||
$bitsPerCharacter = 1;
|
||||
$radix = 2;
|
||||
|
||||
while ($charLength >= ($radix <<= 1) && $bitsPerCharacter < 8) {
|
||||
++$bitsPerCharacter;
|
||||
}
|
||||
|
||||
$radix >>= 1;
|
||||
} elseif ($bitsPerCharacter > 8) {
|
||||
// $bitsPerCharacter must not be greater than 8
|
||||
$bitsPerCharacter = 8;
|
||||
$radix = 256;
|
||||
} else {
|
||||
$radix = 1 << $bitsPerCharacter;
|
||||
}
|
||||
|
||||
$this->chars = $chars;
|
||||
$this->bitsPerCharacter = $bitsPerCharacter;
|
||||
$this->radix = $radix;
|
||||
$this->rightPadFinalBits = $rightPadFinalBits;
|
||||
$this->padFinalGroup = $padFinalGroup;
|
||||
$this->padCharacter = $padCharacter[0];
|
||||
}
|
||||
|
||||
/**
|
||||
* Encode a string.
|
||||
*
|
||||
* @param string $rawString Binary data to encode
|
||||
*/
|
||||
public function encode($rawString): string
|
||||
{
|
||||
// Unpack string into an array of bytes
|
||||
$bytes = unpack('C*', $rawString);
|
||||
$byteCount = \count($bytes);
|
||||
|
||||
$encodedString = '';
|
||||
$byte = array_shift($bytes);
|
||||
$bitsRead = 0;
|
||||
|
||||
$chars = $this->chars;
|
||||
$bitsPerCharacter = $this->bitsPerCharacter;
|
||||
$rightPadFinalBits = $this->rightPadFinalBits;
|
||||
$padFinalGroup = $this->padFinalGroup;
|
||||
$padCharacter = $this->padCharacter;
|
||||
|
||||
// Generate encoded output;
|
||||
// each loop produces one encoded character
|
||||
for ($c = 0; $c < $byteCount * 8 / $bitsPerCharacter; ++$c) {
|
||||
// Get the bits needed for this encoded character
|
||||
if ($bitsRead + $bitsPerCharacter > 8) {
|
||||
// Not enough bits remain in this byte for the current
|
||||
// character
|
||||
// Save the remaining bits before getting the next byte
|
||||
$oldBitCount = 8 - $bitsRead;
|
||||
$oldBits = $byte ^ ($byte >> $oldBitCount << $oldBitCount);
|
||||
$newBitCount = $bitsPerCharacter - $oldBitCount;
|
||||
|
||||
if (!$bytes) {
|
||||
// Last bits; match final character and exit loop
|
||||
if ($rightPadFinalBits) {
|
||||
$oldBits <<= $newBitCount;
|
||||
}
|
||||
$encodedString .= $chars[$oldBits];
|
||||
|
||||
if ($padFinalGroup) {
|
||||
// Array of the lowest common multiples of
|
||||
// $bitsPerCharacter and 8, divided by 8
|
||||
$lcmMap = [1 => 1, 2 => 1, 3 => 3, 4 => 1, 5 => 5, 6 => 3, 7 => 7, 8 => 1];
|
||||
$bytesPerGroup = $lcmMap[$bitsPerCharacter];
|
||||
$pads = (int) ($bytesPerGroup * 8 / $bitsPerCharacter
|
||||
- ceil((\strlen($rawString) % $bytesPerGroup)
|
||||
* 8 / $bitsPerCharacter));
|
||||
$encodedString .= str_repeat($padCharacter[0], $pads);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
// Get next byte
|
||||
$byte = array_shift($bytes);
|
||||
$bitsRead = 0;
|
||||
} else {
|
||||
$oldBitCount = 0;
|
||||
$newBitCount = $bitsPerCharacter;
|
||||
}
|
||||
|
||||
// Read only the needed bits from this byte
|
||||
$bits = $byte >> 8 - ($bitsRead + $newBitCount);
|
||||
$bits ^= $bits >> $newBitCount << $newBitCount;
|
||||
$bitsRead += $newBitCount;
|
||||
|
||||
if ($oldBitCount) {
|
||||
// Bits come from seperate bytes, add $oldBits to $bits
|
||||
$bits = ($oldBits << $newBitCount) | $bits;
|
||||
}
|
||||
|
||||
$encodedString .= $chars[$bits];
|
||||
}
|
||||
|
||||
return $encodedString;
|
||||
}
|
||||
|
||||
/**
|
||||
* Decode a string.
|
||||
*
|
||||
* @param string $encodedString Data to decode
|
||||
* @param bool $caseSensitive
|
||||
* @param bool $strict Returns null if $encodedString contains
|
||||
* an undecodable character
|
||||
*/
|
||||
public function decode($encodedString, $caseSensitive = true, $strict = false): string
|
||||
{
|
||||
if (!$encodedString || !\is_string($encodedString)) {
|
||||
// Empty string, nothing to decode
|
||||
return '';
|
||||
}
|
||||
|
||||
$chars = $this->chars;
|
||||
$bitsPerCharacter = $this->bitsPerCharacter;
|
||||
$radix = $this->radix;
|
||||
$rightPadFinalBits = $this->rightPadFinalBits;
|
||||
$padCharacter = $this->padCharacter;
|
||||
|
||||
// Get index of encoded characters
|
||||
if ($this->charmap) {
|
||||
$charmap = $this->charmap;
|
||||
} else {
|
||||
$charmap = [];
|
||||
|
||||
for ($i = 0; $i < $radix; ++$i) {
|
||||
$charmap[$chars[$i]] = $i;
|
||||
}
|
||||
|
||||
$this->charmap = $charmap;
|
||||
}
|
||||
|
||||
// The last encoded character is $encodedString[$lastNotatedIndex]
|
||||
$lastNotatedIndex = \strlen($encodedString) - 1;
|
||||
|
||||
// Remove trailing padding characters
|
||||
while ($encodedString[$lastNotatedIndex] === $padCharacter[0]) {
|
||||
$encodedString = substr($encodedString, 0, $lastNotatedIndex);
|
||||
--$lastNotatedIndex;
|
||||
}
|
||||
|
||||
$rawString = '';
|
||||
$byte = 0;
|
||||
$bitsWritten = 0;
|
||||
|
||||
// Convert each encoded character to a series of unencoded bits
|
||||
for ($c = 0; $c <= $lastNotatedIndex; ++$c) {
|
||||
if (!isset($charmap[$encodedString[$c]]) && !$caseSensitive) {
|
||||
// Encoded character was not found; try other case
|
||||
if (isset($charmap[$cUpper = strtoupper($encodedString[$c])])) {
|
||||
$charmap[$encodedString[$c]] = $charmap[$cUpper];
|
||||
} elseif (isset($charmap[$cLower = strtolower($encodedString[$c])])) {
|
||||
$charmap[$encodedString[$c]] = $charmap[$cLower];
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($charmap[$encodedString[$c]])) {
|
||||
$bitsNeeded = 8 - $bitsWritten;
|
||||
$unusedBitCount = $bitsPerCharacter - $bitsNeeded;
|
||||
|
||||
// Get the new bits ready
|
||||
if ($bitsNeeded > $bitsPerCharacter) {
|
||||
// New bits aren't enough to complete a byte; shift them
|
||||
// left into position
|
||||
$newBits = $charmap[$encodedString[$c]] << $bitsNeeded
|
||||
- $bitsPerCharacter;
|
||||
$bitsWritten += $bitsPerCharacter;
|
||||
} elseif ($c !== $lastNotatedIndex || $rightPadFinalBits) {
|
||||
// Zero or more too many bits to complete a byte;
|
||||
// shift right
|
||||
$newBits = $charmap[$encodedString[$c]] >> $unusedBitCount;
|
||||
$bitsWritten = 8; //$bitsWritten += $bitsNeeded;
|
||||
} else {
|
||||
// Final bits don't need to be shifted
|
||||
$newBits = $charmap[$encodedString[$c]];
|
||||
$bitsWritten = 8;
|
||||
}
|
||||
|
||||
$byte |= $newBits;
|
||||
|
||||
if (8 === $bitsWritten || $c === $lastNotatedIndex) {
|
||||
// Byte is ready to be written
|
||||
$rawString .= pack('C', $byte);
|
||||
|
||||
if ($c !== $lastNotatedIndex) {
|
||||
// Start the next byte
|
||||
$bitsWritten = $unusedBitCount;
|
||||
$byte = ($charmap[$encodedString[$c]]
|
||||
^ ($newBits << $unusedBitCount)) << 8 - $bitsWritten;
|
||||
}
|
||||
}
|
||||
} elseif ($strict) {
|
||||
// Unable to decode character; abort
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
return $rawString;
|
||||
}
|
||||
}
|
||||
|
||||
// NEXT_MAJOR: Remove class alias
|
||||
class_alias('Sonata\GoogleAuthenticator\FixedBitNotation', 'Google\Authenticator\FixedBitNotation', false);
|
||||
|
|
@ -0,0 +1,178 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/*
|
||||
* This file is part of the Sonata Project package.
|
||||
*
|
||||
* (c) Thomas Rabaix <thomas.rabaix@sonata-project.org>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Sonata\GoogleAuthenticator;
|
||||
|
||||
/**
|
||||
* @see https://github.com/google/google-authenticator/wiki/Key-Uri-Format
|
||||
*/
|
||||
final class GoogleAuthenticator implements GoogleAuthenticatorInterface
|
||||
{
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
private $passCodeLength;
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
private $secretLength;
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
private $pinModulo;
|
||||
|
||||
/**
|
||||
* @var \DateTimeInterface
|
||||
*/
|
||||
private $instanceTime;
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
private $codePeriod;
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
private $periodSize = 30;
|
||||
|
||||
public function __construct(int $passCodeLength = 6, int $secretLength = 10, ?\DateTimeInterface $instanceTime = null, int $codePeriod = 30)
|
||||
{
|
||||
/*
|
||||
* codePeriod is the duration in seconds that the code is valid.
|
||||
* periodSize is the length of a period to calculate periods since Unix epoch.
|
||||
* periodSize cannot be larger than the codePeriod.
|
||||
*/
|
||||
|
||||
$this->passCodeLength = $passCodeLength;
|
||||
$this->secretLength = $secretLength;
|
||||
$this->codePeriod = $codePeriod;
|
||||
$this->periodSize = $codePeriod < $this->periodSize ? $codePeriod : $this->periodSize;
|
||||
$this->pinModulo = 10 ** $passCodeLength;
|
||||
$this->instanceTime = $instanceTime ?? new \DateTimeImmutable();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $secret
|
||||
* @param string $code
|
||||
* @param int $discrepancy
|
||||
*/
|
||||
public function checkCode($secret, $code, $discrepancy = 1): bool
|
||||
{
|
||||
/**
|
||||
* Discrepancy is the factor of periodSize ($discrepancy * $periodSize) allowed on either side of the
|
||||
* given codePeriod. For example, if a code with codePeriod = 60 is generated at 10:00:00, a discrepancy
|
||||
* of 1 will allow a periodSize of 30 seconds on either side of the codePeriod resulting in a valid code
|
||||
* from 09:59:30 to 10:00:29.
|
||||
*
|
||||
* The result of each comparison is stored as a timestamp here instead of using a guard clause
|
||||
* (https://refactoring.com/catalog/replaceNestedConditionalWithGuardClauses.html). This is to implement
|
||||
* constant time comparison to make side-channel attacks harder. See
|
||||
* https://cryptocoding.net/index.php/Coding_rules#Compare_secret_strings_in_constant_time for details.
|
||||
* Each comparison uses hash_equals() instead of an operator to implement constant time equality comparison
|
||||
* for each code.
|
||||
*/
|
||||
$periods = floor($this->codePeriod / $this->periodSize);
|
||||
|
||||
$result = 0;
|
||||
for ($i = -$discrepancy; $i < $periods + $discrepancy; ++$i) {
|
||||
$dateTime = new \DateTimeImmutable('@'.($this->instanceTime->getTimestamp() - ($i * $this->periodSize)));
|
||||
$result = hash_equals($this->getCode($secret, $dateTime), $code) ? $dateTime->getTimestamp() : $result;
|
||||
}
|
||||
|
||||
return $result > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* NEXT_MAJOR: add the interface typehint to $time and remove deprecation.
|
||||
*
|
||||
* @param string $secret
|
||||
* @param float|string|int|\DateTimeInterface|null $time
|
||||
*/
|
||||
public function getCode($secret, /* \DateTimeInterface */$time = null): string
|
||||
{
|
||||
if (null === $time) {
|
||||
$time = $this->instanceTime;
|
||||
}
|
||||
|
||||
if ($time instanceof \DateTimeInterface) {
|
||||
$timeForCode = floor($time->getTimestamp() / $this->periodSize);
|
||||
} else {
|
||||
@trigger_error(
|
||||
'Passing anything other than null or a DateTimeInterface to $time is deprecated as of 2.0 '.
|
||||
'and will not be possible as of 3.0.',
|
||||
E_USER_DEPRECATED
|
||||
);
|
||||
$timeForCode = $time;
|
||||
}
|
||||
|
||||
$base32 = new FixedBitNotation(5, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567', true, true);
|
||||
$secret = $base32->decode($secret);
|
||||
|
||||
$timeForCode = str_pad(pack('N', $timeForCode), 8, \chr(0), STR_PAD_LEFT);
|
||||
|
||||
$hash = hash_hmac('sha1', $timeForCode, $secret, true);
|
||||
$offset = \ord(substr($hash, -1));
|
||||
$offset &= 0xF;
|
||||
|
||||
$truncatedHash = $this->hashToInt($hash, $offset) & 0x7FFFFFFF;
|
||||
|
||||
return str_pad((string) ($truncatedHash % $this->pinModulo), $this->passCodeLength, '0', STR_PAD_LEFT);
|
||||
}
|
||||
|
||||
/**
|
||||
* NEXT_MAJOR: Remove this method.
|
||||
*
|
||||
* @param string $user
|
||||
* @param string $hostname
|
||||
* @param string $secret
|
||||
*
|
||||
* @deprecated deprecated as of 2.1 and will be removed in 3.0. Use Sonata\GoogleAuthenticator\GoogleQrUrl::generate() instead.
|
||||
*/
|
||||
public function getUrl($user, $hostname, $secret): string
|
||||
{
|
||||
@trigger_error(sprintf(
|
||||
'Using %s() is deprecated as of 2.1 and will be removed in 3.0. '.
|
||||
'Use Sonata\GoogleAuthenticator\GoogleQrUrl::generate() instead.',
|
||||
__METHOD__
|
||||
), E_USER_DEPRECATED);
|
||||
|
||||
$issuer = \func_get_args()[3] ?? null;
|
||||
$accountName = sprintf('%s@%s', $user, $hostname);
|
||||
|
||||
// manually concat the issuer to avoid a change in URL
|
||||
$url = GoogleQrUrl::generate($accountName, $secret);
|
||||
|
||||
if ($issuer) {
|
||||
$url .= '%26issuer%3D'.$issuer;
|
||||
}
|
||||
|
||||
return $url;
|
||||
}
|
||||
|
||||
public function generateSecret(): string
|
||||
{
|
||||
return (new FixedBitNotation(5, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567', true, true))
|
||||
->encode(random_bytes($this->secretLength));
|
||||
}
|
||||
|
||||
private function hashToInt(string $bytes, int $start): int
|
||||
{
|
||||
return unpack('N', substr(substr($bytes, $start), 0, 4))[1];
|
||||
}
|
||||
}
|
||||
|
||||
// NEXT_MAJOR: Remove class alias
|
||||
class_alias('Sonata\GoogleAuthenticator\GoogleAuthenticator', 'Google\Authenticator\GoogleAuthenticator', false);
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/*
|
||||
* This file is part of the Sonata Project package.
|
||||
*
|
||||
* (c) Thomas Rabaix <thomas.rabaix@sonata-project.org>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Sonata\GoogleAuthenticator;
|
||||
|
||||
interface GoogleAuthenticatorInterface
|
||||
{
|
||||
/**
|
||||
* @param string $secret
|
||||
* @param string $code
|
||||
*/
|
||||
public function checkCode($secret, $code, $discrepancy = 1): bool;
|
||||
|
||||
/**
|
||||
* NEXT_MAJOR: add the interface typehint to $time and remove deprecation.
|
||||
*
|
||||
* @param string $secret
|
||||
* @param float|string|int|\DateTimeInterface|null $time
|
||||
*/
|
||||
public function getCode($secret, /* \DateTimeInterface */$time = null): string;
|
||||
|
||||
/**
|
||||
* NEXT_MAJOR: Remove this method.
|
||||
*
|
||||
* @param string $user
|
||||
* @param string $hostname
|
||||
* @param string $secret
|
||||
*
|
||||
* @deprecated deprecated as of 2.1 and will be removed in 3.0. Use Sonata\GoogleAuthenticator\GoogleQrUrl::generate() instead.
|
||||
*/
|
||||
public function getUrl($user, $hostname, $secret): string;
|
||||
|
||||
public function generateSecret(): string;
|
||||
}
|
||||
|
|
@ -0,0 +1,93 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/*
|
||||
* This file is part of the Sonata Project package.
|
||||
*
|
||||
* (c) Thomas Rabaix <thomas.rabaix@sonata-project.org>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Sonata\GoogleAuthenticator;
|
||||
|
||||
/**
|
||||
* Responsible for QR image url generation.
|
||||
*
|
||||
* @see http://goqr.me/api/
|
||||
* @see http://goqr.me/api/doc/
|
||||
* @see https://github.com/google/google-authenticator/wiki/Key-Uri-Format
|
||||
*
|
||||
* @author Iltar van der Berg <kjarli@gmail.com>
|
||||
*/
|
||||
final class GoogleQrUrl
|
||||
{
|
||||
/**
|
||||
* Private by design.
|
||||
*/
|
||||
private function __construct()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates a URL that is used to show a QR code.
|
||||
*
|
||||
* Account names may not contain a double colon (:). Valid account name
|
||||
* examples:
|
||||
* - "John.Doe@gmail.com"
|
||||
* - "John Doe"
|
||||
* - "John_Doe_976"
|
||||
*
|
||||
* The Issuer may not contain a double colon (:). The issuer is recommended
|
||||
* to pass along. If used, it will also be appended before the accountName.
|
||||
*
|
||||
* The previous examples with the issuer "Acme inc" would result in label:
|
||||
* - "Acme inc:John.Doe@gmail.com"
|
||||
* - "Acme inc:John Doe"
|
||||
* - "Acme inc:John_Doe_976"
|
||||
*
|
||||
* The contents of the label, issuer and secret will be encoded to generate
|
||||
* a valid URL.
|
||||
*
|
||||
* @param string $accountName The account name to show and identify
|
||||
* @param string $secret The secret is the generated secret unique to that user
|
||||
* @param string|null $issuer Where you log in to
|
||||
* @param int $size Image size in pixels, 200 will make it 200x200
|
||||
*/
|
||||
public static function generate(string $accountName, string $secret, ?string $issuer = null, int $size = 200): string
|
||||
{
|
||||
if ('' === $accountName || false !== strpos($accountName, ':')) {
|
||||
throw RuntimeException::InvalidAccountName($accountName);
|
||||
}
|
||||
|
||||
if ('' === $secret) {
|
||||
throw RuntimeException::InvalidSecret();
|
||||
}
|
||||
|
||||
$label = $accountName;
|
||||
$otpauthString = 'otpauth://totp/%s?secret=%s';
|
||||
|
||||
if (null !== $issuer) {
|
||||
if ('' === $issuer || false !== strpos($issuer, ':')) {
|
||||
throw RuntimeException::InvalidIssuer($issuer);
|
||||
}
|
||||
|
||||
// use both the issuer parameter and label prefix as recommended by Google for BC reasons
|
||||
$label = $issuer.':'.$label;
|
||||
$otpauthString .= '&issuer=%s';
|
||||
}
|
||||
|
||||
$otpauthString = rawurlencode(sprintf($otpauthString, $label, $secret, $issuer));
|
||||
|
||||
return sprintf(
|
||||
'https://api.qrserver.com/v1/create-qr-code/?size=%1$dx%1$d&data=%2$s&ecc=M',
|
||||
$size,
|
||||
$otpauthString
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// NEXT_MAJOR: Remove class alias
|
||||
class_alias('Sonata\GoogleAuthenticator\GoogleQrUrl', 'Google\Authenticator\GoogleQrUrl', false);
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/*
|
||||
* This file is part of the Sonata Project package.
|
||||
*
|
||||
* (c) Thomas Rabaix <thomas.rabaix@sonata-project.org>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Sonata\GoogleAuthenticator;
|
||||
|
||||
/**
|
||||
* Contains runtime exception templates.
|
||||
*
|
||||
* @author Iltar van der Berg <kjarli@gmail.com>
|
||||
*/
|
||||
final class RuntimeException extends \RuntimeException
|
||||
{
|
||||
public static function InvalidAccountName(string $accountName): self
|
||||
{
|
||||
return new self(sprintf(
|
||||
'The account name may not contain a double colon (:) and may not be an empty string. Given "%s".',
|
||||
$accountName
|
||||
));
|
||||
}
|
||||
|
||||
public static function InvalidIssuer(string $issuer): self
|
||||
{
|
||||
return new self(sprintf(
|
||||
'The issuer name may not contain a double colon (:) and may not be an empty string. Given "%s".',
|
||||
$issuer
|
||||
));
|
||||
}
|
||||
|
||||
public static function InvalidSecret(): self
|
||||
{
|
||||
return new self('The secret name may not be an empty string.');
|
||||
}
|
||||
}
|
||||
|
||||
// NEXT_MAJOR: Remove class alias
|
||||
class_alias('Sonata\GoogleAuthenticator\RuntimeException', 'Google\Authenticator\RuntimeException', false);
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,21 @@
|
|||
<?php
|
||||
require $_SERVER['DOCUMENT_ROOT'].'/api/private/core.php';
|
||||
header("content-type: application/json");
|
||||
|
||||
$response = ["success" => true, "message" => ""];
|
||||
|
||||
if(!isset($_GET['username'])){ die(http_response_code(400)); }
|
||||
|
||||
$query = $pdo->prepare("SELECT COUNT(*) FROM blacklistednames WHERE (exact AND lower(username) = lower(:name)) OR (NOT exact AND lower(CONCAT('%', :name, '%')) LIKE lower(CONCAT('%', username, '%')))");
|
||||
$query->bindParam(":name", $_GET['username'], PDO::PARAM_STR);
|
||||
$query->execute();
|
||||
|
||||
if($query->fetchColumn()){ $response["success"] = false; $response["message"] = "That username is unavailable. Sorry!"; }
|
||||
|
||||
$query = $pdo->prepare("SELECT COUNT(*) FROM users WHERE lower(username) = lower(:name)");
|
||||
$query->bindParam(":name", $_GET['username'], PDO::PARAM_STR);
|
||||
$query->execute();
|
||||
|
||||
if($query->fetchColumn()){ $response["success"] = false; $response["message"] = "Someone already has that username! Try choosing a different one."; }
|
||||
|
||||
die(json_encode($response));
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
<?php
|
||||
require $_SERVER['DOCUMENT_ROOT'].'/api/private/core.php';
|
||||
header("content-type: application/json");
|
||||
|
||||
if(!isset($_GET['userID'])){ api::respond(400, false, "Invalid Request - userID not set"); }
|
||||
if(!is_numeric($_GET['userID'])){ api::respond(400, false, "Invalid Request - userID is not numeric"); }
|
||||
if(!isset($_GET['type'])){ api::respond(400, false, "Invalid Request - badge type not set"); }
|
||||
if(!in_array($_GET['type'], ["user-badges", "polygon-badges"])){ api::respond(400, false, "Invalid Request - invalid badge type"); }
|
||||
|
||||
$selfProfile = isset($_GET['selfProfile']) && $_GET['selfProfile'] == "true" ? true : false;
|
||||
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
|
||||
|
||||
$userinfo = users::getUserInfoFromUid($_GET['userID']);
|
||||
if(!$userinfo){ api::respond(400, false, "User does not exist"); }
|
||||
|
||||
$badges = [];
|
||||
|
||||
if($_GET['type'] == "polygon-badges")
|
||||
{
|
||||
if($userinfo->adminlevel)
|
||||
{
|
||||
$badges[] = ["badgeName" => "Administrator", "badgeId" => 1];
|
||||
}
|
||||
|
||||
if($userinfo->adminlevel == 2)
|
||||
{
|
||||
//$badges[] = ["badgeName" => "Administrator", "badgeId" => 2];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
if($badges == [])
|
||||
{
|
||||
$responsemsg = $selfProfile ? "You haven't earned any" : $userinfo->username." hasn't earned any";
|
||||
$responsemsg .= $_GET['type'] == "user-badges" ? " player-made badges" : " Polygon badges";
|
||||
}
|
||||
else
|
||||
{
|
||||
$responsemsg = $badges;
|
||||
}
|
||||
|
||||
api::respond(200, true, $responsemsg);
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
<?php
|
||||
require $_SERVER['DOCUMENT_ROOT'].'/api/private/core.php';
|
||||
header("content-type: application/json");
|
||||
|
||||
if(!isset($_GET['userID'])){ api::respond(400, false, "Invalid Request - userID not set"); }
|
||||
if(!is_numeric($_GET['userID'])){ api::respond(400, false, "Invalid Request - userID is not numeric"); }
|
||||
|
||||
$username = users::getUserNameFromUid($_GET['userID']);
|
||||
|
||||
if($username){ api::respond(200, true, $username); }
|
||||
else{ api::respond(400, false, "User does not exist"); }
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
<?php
|
||||
require $_SERVER['DOCUMENT_ROOT'].'/api/private/core.php';
|
||||
|
||||
$username = isset($_POST['search']) ? "%".$_POST['search']."%" : "%";
|
||||
|
||||
$query = $pdo->prepare("SELECT * FROM users WHERE username LIKE :username AND NOT (SELECT COUNT(*) FROM bans WHERE userId = users.id AND NOT isDismissed) ORDER BY lastonline DESC");
|
||||
$query->bindParam(":username", $username, PDO::PARAM_STR);
|
||||
$query->execute();
|
||||
|
||||
pageBuilder::buildHeader();
|
||||
?>
|
||||
<form method="post">
|
||||
<div class="form-group row">
|
||||
<label for="search" class="col-sm-2 col-form-label">Search: </label>
|
||||
<div class="col-sm-8">
|
||||
<input type="text" class="form-control" name="search" id="search" value="<?=$_POST['search'] ?? ''?>">
|
||||
</div>
|
||||
<button class="btn btn-light">Search Users</button>
|
||||
</div>
|
||||
<?php if($query->rowCount()) { ?>
|
||||
<table class="table table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" style="width:5%">Avatar</th>
|
||||
<th scope="col" style="width:20%">Name</th>
|
||||
<th scope="col" style="width:55%">Blurb</th>
|
||||
<th scope="col" style="width:20%">Location / Last Seen</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="">
|
||||
<?php while($row = $query->fetch(PDO::FETCH_OBJ)) { $onlineStatus = users::getOnlineStatus($row->id); ?>
|
||||
<tr>
|
||||
<td><img src="/thumbs/avatar?id=<?=$row->id?>&x=100&y=100" title="<?=$row->username?>" alt="<?=$row->username?>" width="63" height="63"></td>
|
||||
<td><a href="/user?ID=<?=$row->id?>"><?=$row->username?></a></td>
|
||||
<td><?=htmlspecialchars($row->blurb)?></td>
|
||||
<td><?=($onlineStatus["online"]?'Online':'Offline').': '.$onlineStatus["text"]?></td>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
</tbody>
|
||||
</table>
|
||||
<?php } else { ?>
|
||||
<p class="text-center">Could not find any results <a class="btn btn-light" href="/browse">Reset search</a></p>
|
||||
<?php } ?>
|
||||
</form>
|
||||
<?php pageBuilder::buildFooter(); ?>
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,13 @@
|
|||
/*!
|
||||
* Font Awesome Free 5.0.13 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||
*/
|
||||
@font-face {
|
||||
font-family: 'Font Awesome 5 Brands';
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
src: url("../webfonts/fa-brands-400.eot");
|
||||
src: url("../webfonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.woff") format("woff"), url("../webfonts/fa-brands-400.ttf") format("truetype"), url("../webfonts/fa-brands-400.svg#fontawesome") format("svg"); }
|
||||
|
||||
.fab {
|
||||
font-family: 'Font Awesome 5 Brands'; }
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
/*!
|
||||
* Font Awesome Free 5.0.13 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||
*/
|
||||
@font-face{font-family:Font Awesome\ 5 Brands;font-style:normal;font-weight:400;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:Font Awesome\ 5 Brands}
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
/*!
|
||||
* Font Awesome Free 5.0.13 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||
*/
|
||||
@font-face {
|
||||
font-family: 'Font Awesome 5 Free';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: url("../webfonts/fa-regular-400.eot");
|
||||
src: url("../webfonts/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.woff") format("woff"), url("../webfonts/fa-regular-400.ttf") format("truetype"), url("../webfonts/fa-regular-400.svg#fontawesome") format("svg"); }
|
||||
|
||||
.far {
|
||||
font-family: 'Font Awesome 5 Free';
|
||||
font-weight: 400; }
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
/*!
|
||||
* Font Awesome Free 5.0.13 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||
*/
|
||||
@font-face{font-family:Font Awesome\ 5 Free;font-style:normal;font-weight:400;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-family:Font Awesome\ 5 Free;font-weight:400}
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
/*!
|
||||
* Font Awesome Free 5.0.13 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||
*/
|
||||
@font-face {
|
||||
font-family: 'Font Awesome 5 Free';
|
||||
font-style: normal;
|
||||
font-weight: 900;
|
||||
src: url("../webfonts/fa-solid-900.eot");
|
||||
src: url("../webfonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.woff") format("woff"), url("../webfonts/fa-solid-900.ttf") format("truetype"), url("../webfonts/fa-solid-900.svg#fontawesome") format("svg"); }
|
||||
|
||||
.fa,
|
||||
.fas {
|
||||
font-family: 'Font Awesome 5 Free';
|
||||
font-weight: 900; }
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
/*!
|
||||
* Font Awesome Free 5.0.13 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||
*/
|
||||
@font-face{font-family:Font Awesome\ 5 Free;font-style:normal;font-weight:900;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:Font Awesome\ 5 Free;font-weight:900}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,19 @@
|
|||
// Animated Icons
|
||||
// --------------------------
|
||||
|
||||
.@{fa-css-prefix}-spin {
|
||||
animation: fa-spin 2s infinite linear;
|
||||
}
|
||||
|
||||
.@{fa-css-prefix}-pulse {
|
||||
animation: fa-spin 1s infinite steps(8);
|
||||
}
|
||||
|
||||
@keyframes fa-spin {
|
||||
0% {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
100% {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
// Bordered & Pulled
|
||||
// -------------------------
|
||||
|
||||
.@{fa-css-prefix}-border {
|
||||
border-radius: .1em;
|
||||
border: solid .08em @fa-border-color;
|
||||
padding: .2em .25em .15em;
|
||||
}
|
||||
|
||||
.@{fa-css-prefix}-pull-left { float: left; }
|
||||
.@{fa-css-prefix}-pull-right { float: right; }
|
||||
|
||||
.@{fa-css-prefix}, .fas, .far, .fal, .fab {
|
||||
&.@{fa-css-prefix}-pull-left { margin-right: .3em; }
|
||||
&.@{fa-css-prefix}-pull-right { margin-left: .3em; }
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
// Base Class Definition
|
||||
// -------------------------
|
||||
|
||||
.@{fa-css-prefix}, .fas, .far, .fal, .fab {
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
display: inline-block;
|
||||
font-style: normal;
|
||||
font-variant: normal;
|
||||
text-rendering: auto;
|
||||
line-height: 1;
|
||||
}
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
// Fixed Width Icons
|
||||
// -------------------------
|
||||
.@{fa-css-prefix}-fw {
|
||||
text-align: center;
|
||||
width: (20em / 16);
|
||||
}
|
||||
|
|
@ -0,0 +1,992 @@
|
|||
/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
|
||||
readers do not read off random characters that represent icons */
|
||||
|
||||
.@{fa-css-prefix}-500px:before { content: @fa-var-500px; }
|
||||
.@{fa-css-prefix}-accessible-icon:before { content: @fa-var-accessible-icon; }
|
||||
.@{fa-css-prefix}-accusoft:before { content: @fa-var-accusoft; }
|
||||
.@{fa-css-prefix}-address-book:before { content: @fa-var-address-book; }
|
||||
.@{fa-css-prefix}-address-card:before { content: @fa-var-address-card; }
|
||||
.@{fa-css-prefix}-adjust:before { content: @fa-var-adjust; }
|
||||
.@{fa-css-prefix}-adn:before { content: @fa-var-adn; }
|
||||
.@{fa-css-prefix}-adversal:before { content: @fa-var-adversal; }
|
||||
.@{fa-css-prefix}-affiliatetheme:before { content: @fa-var-affiliatetheme; }
|
||||
.@{fa-css-prefix}-algolia:before { content: @fa-var-algolia; }
|
||||
.@{fa-css-prefix}-align-center:before { content: @fa-var-align-center; }
|
||||
.@{fa-css-prefix}-align-justify:before { content: @fa-var-align-justify; }
|
||||
.@{fa-css-prefix}-align-left:before { content: @fa-var-align-left; }
|
||||
.@{fa-css-prefix}-align-right:before { content: @fa-var-align-right; }
|
||||
.@{fa-css-prefix}-allergies:before { content: @fa-var-allergies; }
|
||||
.@{fa-css-prefix}-amazon:before { content: @fa-var-amazon; }
|
||||
.@{fa-css-prefix}-amazon-pay:before { content: @fa-var-amazon-pay; }
|
||||
.@{fa-css-prefix}-ambulance:before { content: @fa-var-ambulance; }
|
||||
.@{fa-css-prefix}-american-sign-language-interpreting:before { content: @fa-var-american-sign-language-interpreting; }
|
||||
.@{fa-css-prefix}-amilia:before { content: @fa-var-amilia; }
|
||||
.@{fa-css-prefix}-anchor:before { content: @fa-var-anchor; }
|
||||
.@{fa-css-prefix}-android:before { content: @fa-var-android; }
|
||||
.@{fa-css-prefix}-angellist:before { content: @fa-var-angellist; }
|
||||
.@{fa-css-prefix}-angle-double-down:before { content: @fa-var-angle-double-down; }
|
||||
.@{fa-css-prefix}-angle-double-left:before { content: @fa-var-angle-double-left; }
|
||||
.@{fa-css-prefix}-angle-double-right:before { content: @fa-var-angle-double-right; }
|
||||
.@{fa-css-prefix}-angle-double-up:before { content: @fa-var-angle-double-up; }
|
||||
.@{fa-css-prefix}-angle-down:before { content: @fa-var-angle-down; }
|
||||
.@{fa-css-prefix}-angle-left:before { content: @fa-var-angle-left; }
|
||||
.@{fa-css-prefix}-angle-right:before { content: @fa-var-angle-right; }
|
||||
.@{fa-css-prefix}-angle-up:before { content: @fa-var-angle-up; }
|
||||
.@{fa-css-prefix}-angrycreative:before { content: @fa-var-angrycreative; }
|
||||
.@{fa-css-prefix}-angular:before { content: @fa-var-angular; }
|
||||
.@{fa-css-prefix}-app-store:before { content: @fa-var-app-store; }
|
||||
.@{fa-css-prefix}-app-store-ios:before { content: @fa-var-app-store-ios; }
|
||||
.@{fa-css-prefix}-apper:before { content: @fa-var-apper; }
|
||||
.@{fa-css-prefix}-apple:before { content: @fa-var-apple; }
|
||||
.@{fa-css-prefix}-apple-pay:before { content: @fa-var-apple-pay; }
|
||||
.@{fa-css-prefix}-archive:before { content: @fa-var-archive; }
|
||||
.@{fa-css-prefix}-arrow-alt-circle-down:before { content: @fa-var-arrow-alt-circle-down; }
|
||||
.@{fa-css-prefix}-arrow-alt-circle-left:before { content: @fa-var-arrow-alt-circle-left; }
|
||||
.@{fa-css-prefix}-arrow-alt-circle-right:before { content: @fa-var-arrow-alt-circle-right; }
|
||||
.@{fa-css-prefix}-arrow-alt-circle-up:before { content: @fa-var-arrow-alt-circle-up; }
|
||||
.@{fa-css-prefix}-arrow-circle-down:before { content: @fa-var-arrow-circle-down; }
|
||||
.@{fa-css-prefix}-arrow-circle-left:before { content: @fa-var-arrow-circle-left; }
|
||||
.@{fa-css-prefix}-arrow-circle-right:before { content: @fa-var-arrow-circle-right; }
|
||||
.@{fa-css-prefix}-arrow-circle-up:before { content: @fa-var-arrow-circle-up; }
|
||||
.@{fa-css-prefix}-arrow-down:before { content: @fa-var-arrow-down; }
|
||||
.@{fa-css-prefix}-arrow-left:before { content: @fa-var-arrow-left; }
|
||||
.@{fa-css-prefix}-arrow-right:before { content: @fa-var-arrow-right; }
|
||||
.@{fa-css-prefix}-arrow-up:before { content: @fa-var-arrow-up; }
|
||||
.@{fa-css-prefix}-arrows-alt:before { content: @fa-var-arrows-alt; }
|
||||
.@{fa-css-prefix}-arrows-alt-h:before { content: @fa-var-arrows-alt-h; }
|
||||
.@{fa-css-prefix}-arrows-alt-v:before { content: @fa-var-arrows-alt-v; }
|
||||
.@{fa-css-prefix}-assistive-listening-systems:before { content: @fa-var-assistive-listening-systems; }
|
||||
.@{fa-css-prefix}-asterisk:before { content: @fa-var-asterisk; }
|
||||
.@{fa-css-prefix}-asymmetrik:before { content: @fa-var-asymmetrik; }
|
||||
.@{fa-css-prefix}-at:before { content: @fa-var-at; }
|
||||
.@{fa-css-prefix}-audible:before { content: @fa-var-audible; }
|
||||
.@{fa-css-prefix}-audio-description:before { content: @fa-var-audio-description; }
|
||||
.@{fa-css-prefix}-autoprefixer:before { content: @fa-var-autoprefixer; }
|
||||
.@{fa-css-prefix}-avianex:before { content: @fa-var-avianex; }
|
||||
.@{fa-css-prefix}-aviato:before { content: @fa-var-aviato; }
|
||||
.@{fa-css-prefix}-aws:before { content: @fa-var-aws; }
|
||||
.@{fa-css-prefix}-backward:before { content: @fa-var-backward; }
|
||||
.@{fa-css-prefix}-balance-scale:before { content: @fa-var-balance-scale; }
|
||||
.@{fa-css-prefix}-ban:before { content: @fa-var-ban; }
|
||||
.@{fa-css-prefix}-band-aid:before { content: @fa-var-band-aid; }
|
||||
.@{fa-css-prefix}-bandcamp:before { content: @fa-var-bandcamp; }
|
||||
.@{fa-css-prefix}-barcode:before { content: @fa-var-barcode; }
|
||||
.@{fa-css-prefix}-bars:before { content: @fa-var-bars; }
|
||||
.@{fa-css-prefix}-baseball-ball:before { content: @fa-var-baseball-ball; }
|
||||
.@{fa-css-prefix}-basketball-ball:before { content: @fa-var-basketball-ball; }
|
||||
.@{fa-css-prefix}-bath:before { content: @fa-var-bath; }
|
||||
.@{fa-css-prefix}-battery-empty:before { content: @fa-var-battery-empty; }
|
||||
.@{fa-css-prefix}-battery-full:before { content: @fa-var-battery-full; }
|
||||
.@{fa-css-prefix}-battery-half:before { content: @fa-var-battery-half; }
|
||||
.@{fa-css-prefix}-battery-quarter:before { content: @fa-var-battery-quarter; }
|
||||
.@{fa-css-prefix}-battery-three-quarters:before { content: @fa-var-battery-three-quarters; }
|
||||
.@{fa-css-prefix}-bed:before { content: @fa-var-bed; }
|
||||
.@{fa-css-prefix}-beer:before { content: @fa-var-beer; }
|
||||
.@{fa-css-prefix}-behance:before { content: @fa-var-behance; }
|
||||
.@{fa-css-prefix}-behance-square:before { content: @fa-var-behance-square; }
|
||||
.@{fa-css-prefix}-bell:before { content: @fa-var-bell; }
|
||||
.@{fa-css-prefix}-bell-slash:before { content: @fa-var-bell-slash; }
|
||||
.@{fa-css-prefix}-bicycle:before { content: @fa-var-bicycle; }
|
||||
.@{fa-css-prefix}-bimobject:before { content: @fa-var-bimobject; }
|
||||
.@{fa-css-prefix}-binoculars:before { content: @fa-var-binoculars; }
|
||||
.@{fa-css-prefix}-birthday-cake:before { content: @fa-var-birthday-cake; }
|
||||
.@{fa-css-prefix}-bitbucket:before { content: @fa-var-bitbucket; }
|
||||
.@{fa-css-prefix}-bitcoin:before { content: @fa-var-bitcoin; }
|
||||
.@{fa-css-prefix}-bity:before { content: @fa-var-bity; }
|
||||
.@{fa-css-prefix}-black-tie:before { content: @fa-var-black-tie; }
|
||||
.@{fa-css-prefix}-blackberry:before { content: @fa-var-blackberry; }
|
||||
.@{fa-css-prefix}-blender:before { content: @fa-var-blender; }
|
||||
.@{fa-css-prefix}-blind:before { content: @fa-var-blind; }
|
||||
.@{fa-css-prefix}-blogger:before { content: @fa-var-blogger; }
|
||||
.@{fa-css-prefix}-blogger-b:before { content: @fa-var-blogger-b; }
|
||||
.@{fa-css-prefix}-bluetooth:before { content: @fa-var-bluetooth; }
|
||||
.@{fa-css-prefix}-bluetooth-b:before { content: @fa-var-bluetooth-b; }
|
||||
.@{fa-css-prefix}-bold:before { content: @fa-var-bold; }
|
||||
.@{fa-css-prefix}-bolt:before { content: @fa-var-bolt; }
|
||||
.@{fa-css-prefix}-bomb:before { content: @fa-var-bomb; }
|
||||
.@{fa-css-prefix}-book:before { content: @fa-var-book; }
|
||||
.@{fa-css-prefix}-book-open:before { content: @fa-var-book-open; }
|
||||
.@{fa-css-prefix}-bookmark:before { content: @fa-var-bookmark; }
|
||||
.@{fa-css-prefix}-bowling-ball:before { content: @fa-var-bowling-ball; }
|
||||
.@{fa-css-prefix}-box:before { content: @fa-var-box; }
|
||||
.@{fa-css-prefix}-box-open:before { content: @fa-var-box-open; }
|
||||
.@{fa-css-prefix}-boxes:before { content: @fa-var-boxes; }
|
||||
.@{fa-css-prefix}-braille:before { content: @fa-var-braille; }
|
||||
.@{fa-css-prefix}-briefcase:before { content: @fa-var-briefcase; }
|
||||
.@{fa-css-prefix}-briefcase-medical:before { content: @fa-var-briefcase-medical; }
|
||||
.@{fa-css-prefix}-broadcast-tower:before { content: @fa-var-broadcast-tower; }
|
||||
.@{fa-css-prefix}-broom:before { content: @fa-var-broom; }
|
||||
.@{fa-css-prefix}-btc:before { content: @fa-var-btc; }
|
||||
.@{fa-css-prefix}-bug:before { content: @fa-var-bug; }
|
||||
.@{fa-css-prefix}-building:before { content: @fa-var-building; }
|
||||
.@{fa-css-prefix}-bullhorn:before { content: @fa-var-bullhorn; }
|
||||
.@{fa-css-prefix}-bullseye:before { content: @fa-var-bullseye; }
|
||||
.@{fa-css-prefix}-burn:before { content: @fa-var-burn; }
|
||||
.@{fa-css-prefix}-buromobelexperte:before { content: @fa-var-buromobelexperte; }
|
||||
.@{fa-css-prefix}-bus:before { content: @fa-var-bus; }
|
||||
.@{fa-css-prefix}-buysellads:before { content: @fa-var-buysellads; }
|
||||
.@{fa-css-prefix}-calculator:before { content: @fa-var-calculator; }
|
||||
.@{fa-css-prefix}-calendar:before { content: @fa-var-calendar; }
|
||||
.@{fa-css-prefix}-calendar-alt:before { content: @fa-var-calendar-alt; }
|
||||
.@{fa-css-prefix}-calendar-check:before { content: @fa-var-calendar-check; }
|
||||
.@{fa-css-prefix}-calendar-minus:before { content: @fa-var-calendar-minus; }
|
||||
.@{fa-css-prefix}-calendar-plus:before { content: @fa-var-calendar-plus; }
|
||||
.@{fa-css-prefix}-calendar-times:before { content: @fa-var-calendar-times; }
|
||||
.@{fa-css-prefix}-camera:before { content: @fa-var-camera; }
|
||||
.@{fa-css-prefix}-camera-retro:before { content: @fa-var-camera-retro; }
|
||||
.@{fa-css-prefix}-capsules:before { content: @fa-var-capsules; }
|
||||
.@{fa-css-prefix}-car:before { content: @fa-var-car; }
|
||||
.@{fa-css-prefix}-caret-down:before { content: @fa-var-caret-down; }
|
||||
.@{fa-css-prefix}-caret-left:before { content: @fa-var-caret-left; }
|
||||
.@{fa-css-prefix}-caret-right:before { content: @fa-var-caret-right; }
|
||||
.@{fa-css-prefix}-caret-square-down:before { content: @fa-var-caret-square-down; }
|
||||
.@{fa-css-prefix}-caret-square-left:before { content: @fa-var-caret-square-left; }
|
||||
.@{fa-css-prefix}-caret-square-right:before { content: @fa-var-caret-square-right; }
|
||||
.@{fa-css-prefix}-caret-square-up:before { content: @fa-var-caret-square-up; }
|
||||
.@{fa-css-prefix}-caret-up:before { content: @fa-var-caret-up; }
|
||||
.@{fa-css-prefix}-cart-arrow-down:before { content: @fa-var-cart-arrow-down; }
|
||||
.@{fa-css-prefix}-cart-plus:before { content: @fa-var-cart-plus; }
|
||||
.@{fa-css-prefix}-cc-amazon-pay:before { content: @fa-var-cc-amazon-pay; }
|
||||
.@{fa-css-prefix}-cc-amex:before { content: @fa-var-cc-amex; }
|
||||
.@{fa-css-prefix}-cc-apple-pay:before { content: @fa-var-cc-apple-pay; }
|
||||
.@{fa-css-prefix}-cc-diners-club:before { content: @fa-var-cc-diners-club; }
|
||||
.@{fa-css-prefix}-cc-discover:before { content: @fa-var-cc-discover; }
|
||||
.@{fa-css-prefix}-cc-jcb:before { content: @fa-var-cc-jcb; }
|
||||
.@{fa-css-prefix}-cc-mastercard:before { content: @fa-var-cc-mastercard; }
|
||||
.@{fa-css-prefix}-cc-paypal:before { content: @fa-var-cc-paypal; }
|
||||
.@{fa-css-prefix}-cc-stripe:before { content: @fa-var-cc-stripe; }
|
||||
.@{fa-css-prefix}-cc-visa:before { content: @fa-var-cc-visa; }
|
||||
.@{fa-css-prefix}-centercode:before { content: @fa-var-centercode; }
|
||||
.@{fa-css-prefix}-certificate:before { content: @fa-var-certificate; }
|
||||
.@{fa-css-prefix}-chalkboard:before { content: @fa-var-chalkboard; }
|
||||
.@{fa-css-prefix}-chalkboard-teacher:before { content: @fa-var-chalkboard-teacher; }
|
||||
.@{fa-css-prefix}-chart-area:before { content: @fa-var-chart-area; }
|
||||
.@{fa-css-prefix}-chart-bar:before { content: @fa-var-chart-bar; }
|
||||
.@{fa-css-prefix}-chart-line:before { content: @fa-var-chart-line; }
|
||||
.@{fa-css-prefix}-chart-pie:before { content: @fa-var-chart-pie; }
|
||||
.@{fa-css-prefix}-check:before { content: @fa-var-check; }
|
||||
.@{fa-css-prefix}-check-circle:before { content: @fa-var-check-circle; }
|
||||
.@{fa-css-prefix}-check-square:before { content: @fa-var-check-square; }
|
||||
.@{fa-css-prefix}-chess:before { content: @fa-var-chess; }
|
||||
.@{fa-css-prefix}-chess-bishop:before { content: @fa-var-chess-bishop; }
|
||||
.@{fa-css-prefix}-chess-board:before { content: @fa-var-chess-board; }
|
||||
.@{fa-css-prefix}-chess-king:before { content: @fa-var-chess-king; }
|
||||
.@{fa-css-prefix}-chess-knight:before { content: @fa-var-chess-knight; }
|
||||
.@{fa-css-prefix}-chess-pawn:before { content: @fa-var-chess-pawn; }
|
||||
.@{fa-css-prefix}-chess-queen:before { content: @fa-var-chess-queen; }
|
||||
.@{fa-css-prefix}-chess-rook:before { content: @fa-var-chess-rook; }
|
||||
.@{fa-css-prefix}-chevron-circle-down:before { content: @fa-var-chevron-circle-down; }
|
||||
.@{fa-css-prefix}-chevron-circle-left:before { content: @fa-var-chevron-circle-left; }
|
||||
.@{fa-css-prefix}-chevron-circle-right:before { content: @fa-var-chevron-circle-right; }
|
||||
.@{fa-css-prefix}-chevron-circle-up:before { content: @fa-var-chevron-circle-up; }
|
||||
.@{fa-css-prefix}-chevron-down:before { content: @fa-var-chevron-down; }
|
||||
.@{fa-css-prefix}-chevron-left:before { content: @fa-var-chevron-left; }
|
||||
.@{fa-css-prefix}-chevron-right:before { content: @fa-var-chevron-right; }
|
||||
.@{fa-css-prefix}-chevron-up:before { content: @fa-var-chevron-up; }
|
||||
.@{fa-css-prefix}-child:before { content: @fa-var-child; }
|
||||
.@{fa-css-prefix}-chrome:before { content: @fa-var-chrome; }
|
||||
.@{fa-css-prefix}-church:before { content: @fa-var-church; }
|
||||
.@{fa-css-prefix}-circle:before { content: @fa-var-circle; }
|
||||
.@{fa-css-prefix}-circle-notch:before { content: @fa-var-circle-notch; }
|
||||
.@{fa-css-prefix}-clipboard:before { content: @fa-var-clipboard; }
|
||||
.@{fa-css-prefix}-clipboard-check:before { content: @fa-var-clipboard-check; }
|
||||
.@{fa-css-prefix}-clipboard-list:before { content: @fa-var-clipboard-list; }
|
||||
.@{fa-css-prefix}-clock:before { content: @fa-var-clock; }
|
||||
.@{fa-css-prefix}-clone:before { content: @fa-var-clone; }
|
||||
.@{fa-css-prefix}-closed-captioning:before { content: @fa-var-closed-captioning; }
|
||||
.@{fa-css-prefix}-cloud:before { content: @fa-var-cloud; }
|
||||
.@{fa-css-prefix}-cloud-download-alt:before { content: @fa-var-cloud-download-alt; }
|
||||
.@{fa-css-prefix}-cloud-upload-alt:before { content: @fa-var-cloud-upload-alt; }
|
||||
.@{fa-css-prefix}-cloudscale:before { content: @fa-var-cloudscale; }
|
||||
.@{fa-css-prefix}-cloudsmith:before { content: @fa-var-cloudsmith; }
|
||||
.@{fa-css-prefix}-cloudversify:before { content: @fa-var-cloudversify; }
|
||||
.@{fa-css-prefix}-code:before { content: @fa-var-code; }
|
||||
.@{fa-css-prefix}-code-branch:before { content: @fa-var-code-branch; }
|
||||
.@{fa-css-prefix}-codepen:before { content: @fa-var-codepen; }
|
||||
.@{fa-css-prefix}-codiepie:before { content: @fa-var-codiepie; }
|
||||
.@{fa-css-prefix}-coffee:before { content: @fa-var-coffee; }
|
||||
.@{fa-css-prefix}-cog:before { content: @fa-var-cog; }
|
||||
.@{fa-css-prefix}-cogs:before { content: @fa-var-cogs; }
|
||||
.@{fa-css-prefix}-coins:before { content: @fa-var-coins; }
|
||||
.@{fa-css-prefix}-columns:before { content: @fa-var-columns; }
|
||||
.@{fa-css-prefix}-comment:before { content: @fa-var-comment; }
|
||||
.@{fa-css-prefix}-comment-alt:before { content: @fa-var-comment-alt; }
|
||||
.@{fa-css-prefix}-comment-dots:before { content: @fa-var-comment-dots; }
|
||||
.@{fa-css-prefix}-comment-slash:before { content: @fa-var-comment-slash; }
|
||||
.@{fa-css-prefix}-comments:before { content: @fa-var-comments; }
|
||||
.@{fa-css-prefix}-compact-disc:before { content: @fa-var-compact-disc; }
|
||||
.@{fa-css-prefix}-compass:before { content: @fa-var-compass; }
|
||||
.@{fa-css-prefix}-compress:before { content: @fa-var-compress; }
|
||||
.@{fa-css-prefix}-connectdevelop:before { content: @fa-var-connectdevelop; }
|
||||
.@{fa-css-prefix}-contao:before { content: @fa-var-contao; }
|
||||
.@{fa-css-prefix}-copy:before { content: @fa-var-copy; }
|
||||
.@{fa-css-prefix}-copyright:before { content: @fa-var-copyright; }
|
||||
.@{fa-css-prefix}-couch:before { content: @fa-var-couch; }
|
||||
.@{fa-css-prefix}-cpanel:before { content: @fa-var-cpanel; }
|
||||
.@{fa-css-prefix}-creative-commons:before { content: @fa-var-creative-commons; }
|
||||
.@{fa-css-prefix}-creative-commons-by:before { content: @fa-var-creative-commons-by; }
|
||||
.@{fa-css-prefix}-creative-commons-nc:before { content: @fa-var-creative-commons-nc; }
|
||||
.@{fa-css-prefix}-creative-commons-nc-eu:before { content: @fa-var-creative-commons-nc-eu; }
|
||||
.@{fa-css-prefix}-creative-commons-nc-jp:before { content: @fa-var-creative-commons-nc-jp; }
|
||||
.@{fa-css-prefix}-creative-commons-nd:before { content: @fa-var-creative-commons-nd; }
|
||||
.@{fa-css-prefix}-creative-commons-pd:before { content: @fa-var-creative-commons-pd; }
|
||||
.@{fa-css-prefix}-creative-commons-pd-alt:before { content: @fa-var-creative-commons-pd-alt; }
|
||||
.@{fa-css-prefix}-creative-commons-remix:before { content: @fa-var-creative-commons-remix; }
|
||||
.@{fa-css-prefix}-creative-commons-sa:before { content: @fa-var-creative-commons-sa; }
|
||||
.@{fa-css-prefix}-creative-commons-sampling:before { content: @fa-var-creative-commons-sampling; }
|
||||
.@{fa-css-prefix}-creative-commons-sampling-plus:before { content: @fa-var-creative-commons-sampling-plus; }
|
||||
.@{fa-css-prefix}-creative-commons-share:before { content: @fa-var-creative-commons-share; }
|
||||
.@{fa-css-prefix}-credit-card:before { content: @fa-var-credit-card; }
|
||||
.@{fa-css-prefix}-crop:before { content: @fa-var-crop; }
|
||||
.@{fa-css-prefix}-crosshairs:before { content: @fa-var-crosshairs; }
|
||||
.@{fa-css-prefix}-crow:before { content: @fa-var-crow; }
|
||||
.@{fa-css-prefix}-crown:before { content: @fa-var-crown; }
|
||||
.@{fa-css-prefix}-css3:before { content: @fa-var-css3; }
|
||||
.@{fa-css-prefix}-css3-alt:before { content: @fa-var-css3-alt; }
|
||||
.@{fa-css-prefix}-cube:before { content: @fa-var-cube; }
|
||||
.@{fa-css-prefix}-cubes:before { content: @fa-var-cubes; }
|
||||
.@{fa-css-prefix}-cut:before { content: @fa-var-cut; }
|
||||
.@{fa-css-prefix}-cuttlefish:before { content: @fa-var-cuttlefish; }
|
||||
.@{fa-css-prefix}-d-and-d:before { content: @fa-var-d-and-d; }
|
||||
.@{fa-css-prefix}-dashcube:before { content: @fa-var-dashcube; }
|
||||
.@{fa-css-prefix}-database:before { content: @fa-var-database; }
|
||||
.@{fa-css-prefix}-deaf:before { content: @fa-var-deaf; }
|
||||
.@{fa-css-prefix}-delicious:before { content: @fa-var-delicious; }
|
||||
.@{fa-css-prefix}-deploydog:before { content: @fa-var-deploydog; }
|
||||
.@{fa-css-prefix}-deskpro:before { content: @fa-var-deskpro; }
|
||||
.@{fa-css-prefix}-desktop:before { content: @fa-var-desktop; }
|
||||
.@{fa-css-prefix}-deviantart:before { content: @fa-var-deviantart; }
|
||||
.@{fa-css-prefix}-diagnoses:before { content: @fa-var-diagnoses; }
|
||||
.@{fa-css-prefix}-dice:before { content: @fa-var-dice; }
|
||||
.@{fa-css-prefix}-dice-five:before { content: @fa-var-dice-five; }
|
||||
.@{fa-css-prefix}-dice-four:before { content: @fa-var-dice-four; }
|
||||
.@{fa-css-prefix}-dice-one:before { content: @fa-var-dice-one; }
|
||||
.@{fa-css-prefix}-dice-six:before { content: @fa-var-dice-six; }
|
||||
.@{fa-css-prefix}-dice-three:before { content: @fa-var-dice-three; }
|
||||
.@{fa-css-prefix}-dice-two:before { content: @fa-var-dice-two; }
|
||||
.@{fa-css-prefix}-digg:before { content: @fa-var-digg; }
|
||||
.@{fa-css-prefix}-digital-ocean:before { content: @fa-var-digital-ocean; }
|
||||
.@{fa-css-prefix}-discord:before { content: @fa-var-discord; }
|
||||
.@{fa-css-prefix}-discourse:before { content: @fa-var-discourse; }
|
||||
.@{fa-css-prefix}-divide:before { content: @fa-var-divide; }
|
||||
.@{fa-css-prefix}-dna:before { content: @fa-var-dna; }
|
||||
.@{fa-css-prefix}-dochub:before { content: @fa-var-dochub; }
|
||||
.@{fa-css-prefix}-docker:before { content: @fa-var-docker; }
|
||||
.@{fa-css-prefix}-dollar-sign:before { content: @fa-var-dollar-sign; }
|
||||
.@{fa-css-prefix}-dolly:before { content: @fa-var-dolly; }
|
||||
.@{fa-css-prefix}-dolly-flatbed:before { content: @fa-var-dolly-flatbed; }
|
||||
.@{fa-css-prefix}-donate:before { content: @fa-var-donate; }
|
||||
.@{fa-css-prefix}-door-closed:before { content: @fa-var-door-closed; }
|
||||
.@{fa-css-prefix}-door-open:before { content: @fa-var-door-open; }
|
||||
.@{fa-css-prefix}-dot-circle:before { content: @fa-var-dot-circle; }
|
||||
.@{fa-css-prefix}-dove:before { content: @fa-var-dove; }
|
||||
.@{fa-css-prefix}-download:before { content: @fa-var-download; }
|
||||
.@{fa-css-prefix}-draft2digital:before { content: @fa-var-draft2digital; }
|
||||
.@{fa-css-prefix}-dribbble:before { content: @fa-var-dribbble; }
|
||||
.@{fa-css-prefix}-dribbble-square:before { content: @fa-var-dribbble-square; }
|
||||
.@{fa-css-prefix}-dropbox:before { content: @fa-var-dropbox; }
|
||||
.@{fa-css-prefix}-drupal:before { content: @fa-var-drupal; }
|
||||
.@{fa-css-prefix}-dumbbell:before { content: @fa-var-dumbbell; }
|
||||
.@{fa-css-prefix}-dyalog:before { content: @fa-var-dyalog; }
|
||||
.@{fa-css-prefix}-earlybirds:before { content: @fa-var-earlybirds; }
|
||||
.@{fa-css-prefix}-ebay:before { content: @fa-var-ebay; }
|
||||
.@{fa-css-prefix}-edge:before { content: @fa-var-edge; }
|
||||
.@{fa-css-prefix}-edit:before { content: @fa-var-edit; }
|
||||
.@{fa-css-prefix}-eject:before { content: @fa-var-eject; }
|
||||
.@{fa-css-prefix}-elementor:before { content: @fa-var-elementor; }
|
||||
.@{fa-css-prefix}-ellipsis-h:before { content: @fa-var-ellipsis-h; }
|
||||
.@{fa-css-prefix}-ellipsis-v:before { content: @fa-var-ellipsis-v; }
|
||||
.@{fa-css-prefix}-ember:before { content: @fa-var-ember; }
|
||||
.@{fa-css-prefix}-empire:before { content: @fa-var-empire; }
|
||||
.@{fa-css-prefix}-envelope:before { content: @fa-var-envelope; }
|
||||
.@{fa-css-prefix}-envelope-open:before { content: @fa-var-envelope-open; }
|
||||
.@{fa-css-prefix}-envelope-square:before { content: @fa-var-envelope-square; }
|
||||
.@{fa-css-prefix}-envira:before { content: @fa-var-envira; }
|
||||
.@{fa-css-prefix}-equals:before { content: @fa-var-equals; }
|
||||
.@{fa-css-prefix}-eraser:before { content: @fa-var-eraser; }
|
||||
.@{fa-css-prefix}-erlang:before { content: @fa-var-erlang; }
|
||||
.@{fa-css-prefix}-ethereum:before { content: @fa-var-ethereum; }
|
||||
.@{fa-css-prefix}-etsy:before { content: @fa-var-etsy; }
|
||||
.@{fa-css-prefix}-euro-sign:before { content: @fa-var-euro-sign; }
|
||||
.@{fa-css-prefix}-exchange-alt:before { content: @fa-var-exchange-alt; }
|
||||
.@{fa-css-prefix}-exclamation:before { content: @fa-var-exclamation; }
|
||||
.@{fa-css-prefix}-exclamation-circle:before { content: @fa-var-exclamation-circle; }
|
||||
.@{fa-css-prefix}-exclamation-triangle:before { content: @fa-var-exclamation-triangle; }
|
||||
.@{fa-css-prefix}-expand:before { content: @fa-var-expand; }
|
||||
.@{fa-css-prefix}-expand-arrows-alt:before { content: @fa-var-expand-arrows-alt; }
|
||||
.@{fa-css-prefix}-expeditedssl:before { content: @fa-var-expeditedssl; }
|
||||
.@{fa-css-prefix}-external-link-alt:before { content: @fa-var-external-link-alt; }
|
||||
.@{fa-css-prefix}-external-link-square-alt:before { content: @fa-var-external-link-square-alt; }
|
||||
.@{fa-css-prefix}-eye:before { content: @fa-var-eye; }
|
||||
.@{fa-css-prefix}-eye-dropper:before { content: @fa-var-eye-dropper; }
|
||||
.@{fa-css-prefix}-eye-slash:before { content: @fa-var-eye-slash; }
|
||||
.@{fa-css-prefix}-facebook:before { content: @fa-var-facebook; }
|
||||
.@{fa-css-prefix}-facebook-f:before { content: @fa-var-facebook-f; }
|
||||
.@{fa-css-prefix}-facebook-messenger:before { content: @fa-var-facebook-messenger; }
|
||||
.@{fa-css-prefix}-facebook-square:before { content: @fa-var-facebook-square; }
|
||||
.@{fa-css-prefix}-fast-backward:before { content: @fa-var-fast-backward; }
|
||||
.@{fa-css-prefix}-fast-forward:before { content: @fa-var-fast-forward; }
|
||||
.@{fa-css-prefix}-fax:before { content: @fa-var-fax; }
|
||||
.@{fa-css-prefix}-feather:before { content: @fa-var-feather; }
|
||||
.@{fa-css-prefix}-female:before { content: @fa-var-female; }
|
||||
.@{fa-css-prefix}-fighter-jet:before { content: @fa-var-fighter-jet; }
|
||||
.@{fa-css-prefix}-file:before { content: @fa-var-file; }
|
||||
.@{fa-css-prefix}-file-alt:before { content: @fa-var-file-alt; }
|
||||
.@{fa-css-prefix}-file-archive:before { content: @fa-var-file-archive; }
|
||||
.@{fa-css-prefix}-file-audio:before { content: @fa-var-file-audio; }
|
||||
.@{fa-css-prefix}-file-code:before { content: @fa-var-file-code; }
|
||||
.@{fa-css-prefix}-file-excel:before { content: @fa-var-file-excel; }
|
||||
.@{fa-css-prefix}-file-image:before { content: @fa-var-file-image; }
|
||||
.@{fa-css-prefix}-file-medical:before { content: @fa-var-file-medical; }
|
||||
.@{fa-css-prefix}-file-medical-alt:before { content: @fa-var-file-medical-alt; }
|
||||
.@{fa-css-prefix}-file-pdf:before { content: @fa-var-file-pdf; }
|
||||
.@{fa-css-prefix}-file-powerpoint:before { content: @fa-var-file-powerpoint; }
|
||||
.@{fa-css-prefix}-file-video:before { content: @fa-var-file-video; }
|
||||
.@{fa-css-prefix}-file-word:before { content: @fa-var-file-word; }
|
||||
.@{fa-css-prefix}-film:before { content: @fa-var-film; }
|
||||
.@{fa-css-prefix}-filter:before { content: @fa-var-filter; }
|
||||
.@{fa-css-prefix}-fire:before { content: @fa-var-fire; }
|
||||
.@{fa-css-prefix}-fire-extinguisher:before { content: @fa-var-fire-extinguisher; }
|
||||
.@{fa-css-prefix}-firefox:before { content: @fa-var-firefox; }
|
||||
.@{fa-css-prefix}-first-aid:before { content: @fa-var-first-aid; }
|
||||
.@{fa-css-prefix}-first-order:before { content: @fa-var-first-order; }
|
||||
.@{fa-css-prefix}-first-order-alt:before { content: @fa-var-first-order-alt; }
|
||||
.@{fa-css-prefix}-firstdraft:before { content: @fa-var-firstdraft; }
|
||||
.@{fa-css-prefix}-flag:before { content: @fa-var-flag; }
|
||||
.@{fa-css-prefix}-flag-checkered:before { content: @fa-var-flag-checkered; }
|
||||
.@{fa-css-prefix}-flask:before { content: @fa-var-flask; }
|
||||
.@{fa-css-prefix}-flickr:before { content: @fa-var-flickr; }
|
||||
.@{fa-css-prefix}-flipboard:before { content: @fa-var-flipboard; }
|
||||
.@{fa-css-prefix}-fly:before { content: @fa-var-fly; }
|
||||
.@{fa-css-prefix}-folder:before { content: @fa-var-folder; }
|
||||
.@{fa-css-prefix}-folder-open:before { content: @fa-var-folder-open; }
|
||||
.@{fa-css-prefix}-font:before { content: @fa-var-font; }
|
||||
.@{fa-css-prefix}-font-awesome:before { content: @fa-var-font-awesome; }
|
||||
.@{fa-css-prefix}-font-awesome-alt:before { content: @fa-var-font-awesome-alt; }
|
||||
.@{fa-css-prefix}-font-awesome-flag:before { content: @fa-var-font-awesome-flag; }
|
||||
.@{fa-css-prefix}-font-awesome-logo-full:before { content: @fa-var-font-awesome-logo-full; }
|
||||
.@{fa-css-prefix}-fonticons:before { content: @fa-var-fonticons; }
|
||||
.@{fa-css-prefix}-fonticons-fi:before { content: @fa-var-fonticons-fi; }
|
||||
.@{fa-css-prefix}-football-ball:before { content: @fa-var-football-ball; }
|
||||
.@{fa-css-prefix}-fort-awesome:before { content: @fa-var-fort-awesome; }
|
||||
.@{fa-css-prefix}-fort-awesome-alt:before { content: @fa-var-fort-awesome-alt; }
|
||||
.@{fa-css-prefix}-forumbee:before { content: @fa-var-forumbee; }
|
||||
.@{fa-css-prefix}-forward:before { content: @fa-var-forward; }
|
||||
.@{fa-css-prefix}-foursquare:before { content: @fa-var-foursquare; }
|
||||
.@{fa-css-prefix}-free-code-camp:before { content: @fa-var-free-code-camp; }
|
||||
.@{fa-css-prefix}-freebsd:before { content: @fa-var-freebsd; }
|
||||
.@{fa-css-prefix}-frog:before { content: @fa-var-frog; }
|
||||
.@{fa-css-prefix}-frown:before { content: @fa-var-frown; }
|
||||
.@{fa-css-prefix}-fulcrum:before { content: @fa-var-fulcrum; }
|
||||
.@{fa-css-prefix}-futbol:before { content: @fa-var-futbol; }
|
||||
.@{fa-css-prefix}-galactic-republic:before { content: @fa-var-galactic-republic; }
|
||||
.@{fa-css-prefix}-galactic-senate:before { content: @fa-var-galactic-senate; }
|
||||
.@{fa-css-prefix}-gamepad:before { content: @fa-var-gamepad; }
|
||||
.@{fa-css-prefix}-gas-pump:before { content: @fa-var-gas-pump; }
|
||||
.@{fa-css-prefix}-gavel:before { content: @fa-var-gavel; }
|
||||
.@{fa-css-prefix}-gem:before { content: @fa-var-gem; }
|
||||
.@{fa-css-prefix}-genderless:before { content: @fa-var-genderless; }
|
||||
.@{fa-css-prefix}-get-pocket:before { content: @fa-var-get-pocket; }
|
||||
.@{fa-css-prefix}-gg:before { content: @fa-var-gg; }
|
||||
.@{fa-css-prefix}-gg-circle:before { content: @fa-var-gg-circle; }
|
||||
.@{fa-css-prefix}-gift:before { content: @fa-var-gift; }
|
||||
.@{fa-css-prefix}-git:before { content: @fa-var-git; }
|
||||
.@{fa-css-prefix}-git-square:before { content: @fa-var-git-square; }
|
||||
.@{fa-css-prefix}-github:before { content: @fa-var-github; }
|
||||
.@{fa-css-prefix}-github-alt:before { content: @fa-var-github-alt; }
|
||||
.@{fa-css-prefix}-github-square:before { content: @fa-var-github-square; }
|
||||
.@{fa-css-prefix}-gitkraken:before { content: @fa-var-gitkraken; }
|
||||
.@{fa-css-prefix}-gitlab:before { content: @fa-var-gitlab; }
|
||||
.@{fa-css-prefix}-gitter:before { content: @fa-var-gitter; }
|
||||
.@{fa-css-prefix}-glass-martini:before { content: @fa-var-glass-martini; }
|
||||
.@{fa-css-prefix}-glasses:before { content: @fa-var-glasses; }
|
||||
.@{fa-css-prefix}-glide:before { content: @fa-var-glide; }
|
||||
.@{fa-css-prefix}-glide-g:before { content: @fa-var-glide-g; }
|
||||
.@{fa-css-prefix}-globe:before { content: @fa-var-globe; }
|
||||
.@{fa-css-prefix}-gofore:before { content: @fa-var-gofore; }
|
||||
.@{fa-css-prefix}-golf-ball:before { content: @fa-var-golf-ball; }
|
||||
.@{fa-css-prefix}-goodreads:before { content: @fa-var-goodreads; }
|
||||
.@{fa-css-prefix}-goodreads-g:before { content: @fa-var-goodreads-g; }
|
||||
.@{fa-css-prefix}-google:before { content: @fa-var-google; }
|
||||
.@{fa-css-prefix}-google-drive:before { content: @fa-var-google-drive; }
|
||||
.@{fa-css-prefix}-google-play:before { content: @fa-var-google-play; }
|
||||
.@{fa-css-prefix}-google-plus:before { content: @fa-var-google-plus; }
|
||||
.@{fa-css-prefix}-google-plus-g:before { content: @fa-var-google-plus-g; }
|
||||
.@{fa-css-prefix}-google-plus-square:before { content: @fa-var-google-plus-square; }
|
||||
.@{fa-css-prefix}-google-wallet:before { content: @fa-var-google-wallet; }
|
||||
.@{fa-css-prefix}-graduation-cap:before { content: @fa-var-graduation-cap; }
|
||||
.@{fa-css-prefix}-gratipay:before { content: @fa-var-gratipay; }
|
||||
.@{fa-css-prefix}-grav:before { content: @fa-var-grav; }
|
||||
.@{fa-css-prefix}-greater-than:before { content: @fa-var-greater-than; }
|
||||
.@{fa-css-prefix}-greater-than-equal:before { content: @fa-var-greater-than-equal; }
|
||||
.@{fa-css-prefix}-gripfire:before { content: @fa-var-gripfire; }
|
||||
.@{fa-css-prefix}-grunt:before { content: @fa-var-grunt; }
|
||||
.@{fa-css-prefix}-gulp:before { content: @fa-var-gulp; }
|
||||
.@{fa-css-prefix}-h-square:before { content: @fa-var-h-square; }
|
||||
.@{fa-css-prefix}-hacker-news:before { content: @fa-var-hacker-news; }
|
||||
.@{fa-css-prefix}-hacker-news-square:before { content: @fa-var-hacker-news-square; }
|
||||
.@{fa-css-prefix}-hand-holding:before { content: @fa-var-hand-holding; }
|
||||
.@{fa-css-prefix}-hand-holding-heart:before { content: @fa-var-hand-holding-heart; }
|
||||
.@{fa-css-prefix}-hand-holding-usd:before { content: @fa-var-hand-holding-usd; }
|
||||
.@{fa-css-prefix}-hand-lizard:before { content: @fa-var-hand-lizard; }
|
||||
.@{fa-css-prefix}-hand-paper:before { content: @fa-var-hand-paper; }
|
||||
.@{fa-css-prefix}-hand-peace:before { content: @fa-var-hand-peace; }
|
||||
.@{fa-css-prefix}-hand-point-down:before { content: @fa-var-hand-point-down; }
|
||||
.@{fa-css-prefix}-hand-point-left:before { content: @fa-var-hand-point-left; }
|
||||
.@{fa-css-prefix}-hand-point-right:before { content: @fa-var-hand-point-right; }
|
||||
.@{fa-css-prefix}-hand-point-up:before { content: @fa-var-hand-point-up; }
|
||||
.@{fa-css-prefix}-hand-pointer:before { content: @fa-var-hand-pointer; }
|
||||
.@{fa-css-prefix}-hand-rock:before { content: @fa-var-hand-rock; }
|
||||
.@{fa-css-prefix}-hand-scissors:before { content: @fa-var-hand-scissors; }
|
||||
.@{fa-css-prefix}-hand-spock:before { content: @fa-var-hand-spock; }
|
||||
.@{fa-css-prefix}-hands:before { content: @fa-var-hands; }
|
||||
.@{fa-css-prefix}-hands-helping:before { content: @fa-var-hands-helping; }
|
||||
.@{fa-css-prefix}-handshake:before { content: @fa-var-handshake; }
|
||||
.@{fa-css-prefix}-hashtag:before { content: @fa-var-hashtag; }
|
||||
.@{fa-css-prefix}-hdd:before { content: @fa-var-hdd; }
|
||||
.@{fa-css-prefix}-heading:before { content: @fa-var-heading; }
|
||||
.@{fa-css-prefix}-headphones:before { content: @fa-var-headphones; }
|
||||
.@{fa-css-prefix}-heart:before { content: @fa-var-heart; }
|
||||
.@{fa-css-prefix}-heartbeat:before { content: @fa-var-heartbeat; }
|
||||
.@{fa-css-prefix}-helicopter:before { content: @fa-var-helicopter; }
|
||||
.@{fa-css-prefix}-hips:before { content: @fa-var-hips; }
|
||||
.@{fa-css-prefix}-hire-a-helper:before { content: @fa-var-hire-a-helper; }
|
||||
.@{fa-css-prefix}-history:before { content: @fa-var-history; }
|
||||
.@{fa-css-prefix}-hockey-puck:before { content: @fa-var-hockey-puck; }
|
||||
.@{fa-css-prefix}-home:before { content: @fa-var-home; }
|
||||
.@{fa-css-prefix}-hooli:before { content: @fa-var-hooli; }
|
||||
.@{fa-css-prefix}-hospital:before { content: @fa-var-hospital; }
|
||||
.@{fa-css-prefix}-hospital-alt:before { content: @fa-var-hospital-alt; }
|
||||
.@{fa-css-prefix}-hospital-symbol:before { content: @fa-var-hospital-symbol; }
|
||||
.@{fa-css-prefix}-hotjar:before { content: @fa-var-hotjar; }
|
||||
.@{fa-css-prefix}-hourglass:before { content: @fa-var-hourglass; }
|
||||
.@{fa-css-prefix}-hourglass-end:before { content: @fa-var-hourglass-end; }
|
||||
.@{fa-css-prefix}-hourglass-half:before { content: @fa-var-hourglass-half; }
|
||||
.@{fa-css-prefix}-hourglass-start:before { content: @fa-var-hourglass-start; }
|
||||
.@{fa-css-prefix}-houzz:before { content: @fa-var-houzz; }
|
||||
.@{fa-css-prefix}-html5:before { content: @fa-var-html5; }
|
||||
.@{fa-css-prefix}-hubspot:before { content: @fa-var-hubspot; }
|
||||
.@{fa-css-prefix}-i-cursor:before { content: @fa-var-i-cursor; }
|
||||
.@{fa-css-prefix}-id-badge:before { content: @fa-var-id-badge; }
|
||||
.@{fa-css-prefix}-id-card:before { content: @fa-var-id-card; }
|
||||
.@{fa-css-prefix}-id-card-alt:before { content: @fa-var-id-card-alt; }
|
||||
.@{fa-css-prefix}-image:before { content: @fa-var-image; }
|
||||
.@{fa-css-prefix}-images:before { content: @fa-var-images; }
|
||||
.@{fa-css-prefix}-imdb:before { content: @fa-var-imdb; }
|
||||
.@{fa-css-prefix}-inbox:before { content: @fa-var-inbox; }
|
||||
.@{fa-css-prefix}-indent:before { content: @fa-var-indent; }
|
||||
.@{fa-css-prefix}-industry:before { content: @fa-var-industry; }
|
||||
.@{fa-css-prefix}-infinity:before { content: @fa-var-infinity; }
|
||||
.@{fa-css-prefix}-info:before { content: @fa-var-info; }
|
||||
.@{fa-css-prefix}-info-circle:before { content: @fa-var-info-circle; }
|
||||
.@{fa-css-prefix}-instagram:before { content: @fa-var-instagram; }
|
||||
.@{fa-css-prefix}-internet-explorer:before { content: @fa-var-internet-explorer; }
|
||||
.@{fa-css-prefix}-ioxhost:before { content: @fa-var-ioxhost; }
|
||||
.@{fa-css-prefix}-italic:before { content: @fa-var-italic; }
|
||||
.@{fa-css-prefix}-itunes:before { content: @fa-var-itunes; }
|
||||
.@{fa-css-prefix}-itunes-note:before { content: @fa-var-itunes-note; }
|
||||
.@{fa-css-prefix}-java:before { content: @fa-var-java; }
|
||||
.@{fa-css-prefix}-jedi-order:before { content: @fa-var-jedi-order; }
|
||||
.@{fa-css-prefix}-jenkins:before { content: @fa-var-jenkins; }
|
||||
.@{fa-css-prefix}-joget:before { content: @fa-var-joget; }
|
||||
.@{fa-css-prefix}-joomla:before { content: @fa-var-joomla; }
|
||||
.@{fa-css-prefix}-js:before { content: @fa-var-js; }
|
||||
.@{fa-css-prefix}-js-square:before { content: @fa-var-js-square; }
|
||||
.@{fa-css-prefix}-jsfiddle:before { content: @fa-var-jsfiddle; }
|
||||
.@{fa-css-prefix}-key:before { content: @fa-var-key; }
|
||||
.@{fa-css-prefix}-keybase:before { content: @fa-var-keybase; }
|
||||
.@{fa-css-prefix}-keyboard:before { content: @fa-var-keyboard; }
|
||||
.@{fa-css-prefix}-keycdn:before { content: @fa-var-keycdn; }
|
||||
.@{fa-css-prefix}-kickstarter:before { content: @fa-var-kickstarter; }
|
||||
.@{fa-css-prefix}-kickstarter-k:before { content: @fa-var-kickstarter-k; }
|
||||
.@{fa-css-prefix}-kiwi-bird:before { content: @fa-var-kiwi-bird; }
|
||||
.@{fa-css-prefix}-korvue:before { content: @fa-var-korvue; }
|
||||
.@{fa-css-prefix}-language:before { content: @fa-var-language; }
|
||||
.@{fa-css-prefix}-laptop:before { content: @fa-var-laptop; }
|
||||
.@{fa-css-prefix}-laravel:before { content: @fa-var-laravel; }
|
||||
.@{fa-css-prefix}-lastfm:before { content: @fa-var-lastfm; }
|
||||
.@{fa-css-prefix}-lastfm-square:before { content: @fa-var-lastfm-square; }
|
||||
.@{fa-css-prefix}-leaf:before { content: @fa-var-leaf; }
|
||||
.@{fa-css-prefix}-leanpub:before { content: @fa-var-leanpub; }
|
||||
.@{fa-css-prefix}-lemon:before { content: @fa-var-lemon; }
|
||||
.@{fa-css-prefix}-less:before { content: @fa-var-less; }
|
||||
.@{fa-css-prefix}-less-than:before { content: @fa-var-less-than; }
|
||||
.@{fa-css-prefix}-less-than-equal:before { content: @fa-var-less-than-equal; }
|
||||
.@{fa-css-prefix}-level-down-alt:before { content: @fa-var-level-down-alt; }
|
||||
.@{fa-css-prefix}-level-up-alt:before { content: @fa-var-level-up-alt; }
|
||||
.@{fa-css-prefix}-life-ring:before { content: @fa-var-life-ring; }
|
||||
.@{fa-css-prefix}-lightbulb:before { content: @fa-var-lightbulb; }
|
||||
.@{fa-css-prefix}-line:before { content: @fa-var-line; }
|
||||
.@{fa-css-prefix}-link:before { content: @fa-var-link; }
|
||||
.@{fa-css-prefix}-linkedin:before { content: @fa-var-linkedin; }
|
||||
.@{fa-css-prefix}-linkedin-in:before { content: @fa-var-linkedin-in; }
|
||||
.@{fa-css-prefix}-linode:before { content: @fa-var-linode; }
|
||||
.@{fa-css-prefix}-linux:before { content: @fa-var-linux; }
|
||||
.@{fa-css-prefix}-lira-sign:before { content: @fa-var-lira-sign; }
|
||||
.@{fa-css-prefix}-list:before { content: @fa-var-list; }
|
||||
.@{fa-css-prefix}-list-alt:before { content: @fa-var-list-alt; }
|
||||
.@{fa-css-prefix}-list-ol:before { content: @fa-var-list-ol; }
|
||||
.@{fa-css-prefix}-list-ul:before { content: @fa-var-list-ul; }
|
||||
.@{fa-css-prefix}-location-arrow:before { content: @fa-var-location-arrow; }
|
||||
.@{fa-css-prefix}-lock:before { content: @fa-var-lock; }
|
||||
.@{fa-css-prefix}-lock-open:before { content: @fa-var-lock-open; }
|
||||
.@{fa-css-prefix}-long-arrow-alt-down:before { content: @fa-var-long-arrow-alt-down; }
|
||||
.@{fa-css-prefix}-long-arrow-alt-left:before { content: @fa-var-long-arrow-alt-left; }
|
||||
.@{fa-css-prefix}-long-arrow-alt-right:before { content: @fa-var-long-arrow-alt-right; }
|
||||
.@{fa-css-prefix}-long-arrow-alt-up:before { content: @fa-var-long-arrow-alt-up; }
|
||||
.@{fa-css-prefix}-low-vision:before { content: @fa-var-low-vision; }
|
||||
.@{fa-css-prefix}-lyft:before { content: @fa-var-lyft; }
|
||||
.@{fa-css-prefix}-magento:before { content: @fa-var-magento; }
|
||||
.@{fa-css-prefix}-magic:before { content: @fa-var-magic; }
|
||||
.@{fa-css-prefix}-magnet:before { content: @fa-var-magnet; }
|
||||
.@{fa-css-prefix}-male:before { content: @fa-var-male; }
|
||||
.@{fa-css-prefix}-mandalorian:before { content: @fa-var-mandalorian; }
|
||||
.@{fa-css-prefix}-map:before { content: @fa-var-map; }
|
||||
.@{fa-css-prefix}-map-marker:before { content: @fa-var-map-marker; }
|
||||
.@{fa-css-prefix}-map-marker-alt:before { content: @fa-var-map-marker-alt; }
|
||||
.@{fa-css-prefix}-map-pin:before { content: @fa-var-map-pin; }
|
||||
.@{fa-css-prefix}-map-signs:before { content: @fa-var-map-signs; }
|
||||
.@{fa-css-prefix}-mars:before { content: @fa-var-mars; }
|
||||
.@{fa-css-prefix}-mars-double:before { content: @fa-var-mars-double; }
|
||||
.@{fa-css-prefix}-mars-stroke:before { content: @fa-var-mars-stroke; }
|
||||
.@{fa-css-prefix}-mars-stroke-h:before { content: @fa-var-mars-stroke-h; }
|
||||
.@{fa-css-prefix}-mars-stroke-v:before { content: @fa-var-mars-stroke-v; }
|
||||
.@{fa-css-prefix}-mastodon:before { content: @fa-var-mastodon; }
|
||||
.@{fa-css-prefix}-maxcdn:before { content: @fa-var-maxcdn; }
|
||||
.@{fa-css-prefix}-medapps:before { content: @fa-var-medapps; }
|
||||
.@{fa-css-prefix}-medium:before { content: @fa-var-medium; }
|
||||
.@{fa-css-prefix}-medium-m:before { content: @fa-var-medium-m; }
|
||||
.@{fa-css-prefix}-medkit:before { content: @fa-var-medkit; }
|
||||
.@{fa-css-prefix}-medrt:before { content: @fa-var-medrt; }
|
||||
.@{fa-css-prefix}-meetup:before { content: @fa-var-meetup; }
|
||||
.@{fa-css-prefix}-meh:before { content: @fa-var-meh; }
|
||||
.@{fa-css-prefix}-memory:before { content: @fa-var-memory; }
|
||||
.@{fa-css-prefix}-mercury:before { content: @fa-var-mercury; }
|
||||
.@{fa-css-prefix}-microchip:before { content: @fa-var-microchip; }
|
||||
.@{fa-css-prefix}-microphone:before { content: @fa-var-microphone; }
|
||||
.@{fa-css-prefix}-microphone-alt:before { content: @fa-var-microphone-alt; }
|
||||
.@{fa-css-prefix}-microphone-alt-slash:before { content: @fa-var-microphone-alt-slash; }
|
||||
.@{fa-css-prefix}-microphone-slash:before { content: @fa-var-microphone-slash; }
|
||||
.@{fa-css-prefix}-microsoft:before { content: @fa-var-microsoft; }
|
||||
.@{fa-css-prefix}-minus:before { content: @fa-var-minus; }
|
||||
.@{fa-css-prefix}-minus-circle:before { content: @fa-var-minus-circle; }
|
||||
.@{fa-css-prefix}-minus-square:before { content: @fa-var-minus-square; }
|
||||
.@{fa-css-prefix}-mix:before { content: @fa-var-mix; }
|
||||
.@{fa-css-prefix}-mixcloud:before { content: @fa-var-mixcloud; }
|
||||
.@{fa-css-prefix}-mizuni:before { content: @fa-var-mizuni; }
|
||||
.@{fa-css-prefix}-mobile:before { content: @fa-var-mobile; }
|
||||
.@{fa-css-prefix}-mobile-alt:before { content: @fa-var-mobile-alt; }
|
||||
.@{fa-css-prefix}-modx:before { content: @fa-var-modx; }
|
||||
.@{fa-css-prefix}-monero:before { content: @fa-var-monero; }
|
||||
.@{fa-css-prefix}-money-bill:before { content: @fa-var-money-bill; }
|
||||
.@{fa-css-prefix}-money-bill-alt:before { content: @fa-var-money-bill-alt; }
|
||||
.@{fa-css-prefix}-money-bill-wave:before { content: @fa-var-money-bill-wave; }
|
||||
.@{fa-css-prefix}-money-bill-wave-alt:before { content: @fa-var-money-bill-wave-alt; }
|
||||
.@{fa-css-prefix}-money-check:before { content: @fa-var-money-check; }
|
||||
.@{fa-css-prefix}-money-check-alt:before { content: @fa-var-money-check-alt; }
|
||||
.@{fa-css-prefix}-moon:before { content: @fa-var-moon; }
|
||||
.@{fa-css-prefix}-motorcycle:before { content: @fa-var-motorcycle; }
|
||||
.@{fa-css-prefix}-mouse-pointer:before { content: @fa-var-mouse-pointer; }
|
||||
.@{fa-css-prefix}-music:before { content: @fa-var-music; }
|
||||
.@{fa-css-prefix}-napster:before { content: @fa-var-napster; }
|
||||
.@{fa-css-prefix}-neuter:before { content: @fa-var-neuter; }
|
||||
.@{fa-css-prefix}-newspaper:before { content: @fa-var-newspaper; }
|
||||
.@{fa-css-prefix}-nintendo-switch:before { content: @fa-var-nintendo-switch; }
|
||||
.@{fa-css-prefix}-node:before { content: @fa-var-node; }
|
||||
.@{fa-css-prefix}-node-js:before { content: @fa-var-node-js; }
|
||||
.@{fa-css-prefix}-not-equal:before { content: @fa-var-not-equal; }
|
||||
.@{fa-css-prefix}-notes-medical:before { content: @fa-var-notes-medical; }
|
||||
.@{fa-css-prefix}-npm:before { content: @fa-var-npm; }
|
||||
.@{fa-css-prefix}-ns8:before { content: @fa-var-ns8; }
|
||||
.@{fa-css-prefix}-nutritionix:before { content: @fa-var-nutritionix; }
|
||||
.@{fa-css-prefix}-object-group:before { content: @fa-var-object-group; }
|
||||
.@{fa-css-prefix}-object-ungroup:before { content: @fa-var-object-ungroup; }
|
||||
.@{fa-css-prefix}-odnoklassniki:before { content: @fa-var-odnoklassniki; }
|
||||
.@{fa-css-prefix}-odnoklassniki-square:before { content: @fa-var-odnoklassniki-square; }
|
||||
.@{fa-css-prefix}-old-republic:before { content: @fa-var-old-republic; }
|
||||
.@{fa-css-prefix}-opencart:before { content: @fa-var-opencart; }
|
||||
.@{fa-css-prefix}-openid:before { content: @fa-var-openid; }
|
||||
.@{fa-css-prefix}-opera:before { content: @fa-var-opera; }
|
||||
.@{fa-css-prefix}-optin-monster:before { content: @fa-var-optin-monster; }
|
||||
.@{fa-css-prefix}-osi:before { content: @fa-var-osi; }
|
||||
.@{fa-css-prefix}-outdent:before { content: @fa-var-outdent; }
|
||||
.@{fa-css-prefix}-page4:before { content: @fa-var-page4; }
|
||||
.@{fa-css-prefix}-pagelines:before { content: @fa-var-pagelines; }
|
||||
.@{fa-css-prefix}-paint-brush:before { content: @fa-var-paint-brush; }
|
||||
.@{fa-css-prefix}-palette:before { content: @fa-var-palette; }
|
||||
.@{fa-css-prefix}-palfed:before { content: @fa-var-palfed; }
|
||||
.@{fa-css-prefix}-pallet:before { content: @fa-var-pallet; }
|
||||
.@{fa-css-prefix}-paper-plane:before { content: @fa-var-paper-plane; }
|
||||
.@{fa-css-prefix}-paperclip:before { content: @fa-var-paperclip; }
|
||||
.@{fa-css-prefix}-parachute-box:before { content: @fa-var-parachute-box; }
|
||||
.@{fa-css-prefix}-paragraph:before { content: @fa-var-paragraph; }
|
||||
.@{fa-css-prefix}-parking:before { content: @fa-var-parking; }
|
||||
.@{fa-css-prefix}-paste:before { content: @fa-var-paste; }
|
||||
.@{fa-css-prefix}-patreon:before { content: @fa-var-patreon; }
|
||||
.@{fa-css-prefix}-pause:before { content: @fa-var-pause; }
|
||||
.@{fa-css-prefix}-pause-circle:before { content: @fa-var-pause-circle; }
|
||||
.@{fa-css-prefix}-paw:before { content: @fa-var-paw; }
|
||||
.@{fa-css-prefix}-paypal:before { content: @fa-var-paypal; }
|
||||
.@{fa-css-prefix}-pen-square:before { content: @fa-var-pen-square; }
|
||||
.@{fa-css-prefix}-pencil-alt:before { content: @fa-var-pencil-alt; }
|
||||
.@{fa-css-prefix}-people-carry:before { content: @fa-var-people-carry; }
|
||||
.@{fa-css-prefix}-percent:before { content: @fa-var-percent; }
|
||||
.@{fa-css-prefix}-percentage:before { content: @fa-var-percentage; }
|
||||
.@{fa-css-prefix}-periscope:before { content: @fa-var-periscope; }
|
||||
.@{fa-css-prefix}-phabricator:before { content: @fa-var-phabricator; }
|
||||
.@{fa-css-prefix}-phoenix-framework:before { content: @fa-var-phoenix-framework; }
|
||||
.@{fa-css-prefix}-phoenix-squadron:before { content: @fa-var-phoenix-squadron; }
|
||||
.@{fa-css-prefix}-phone:before { content: @fa-var-phone; }
|
||||
.@{fa-css-prefix}-phone-slash:before { content: @fa-var-phone-slash; }
|
||||
.@{fa-css-prefix}-phone-square:before { content: @fa-var-phone-square; }
|
||||
.@{fa-css-prefix}-phone-volume:before { content: @fa-var-phone-volume; }
|
||||
.@{fa-css-prefix}-php:before { content: @fa-var-php; }
|
||||
.@{fa-css-prefix}-pied-piper:before { content: @fa-var-pied-piper; }
|
||||
.@{fa-css-prefix}-pied-piper-alt:before { content: @fa-var-pied-piper-alt; }
|
||||
.@{fa-css-prefix}-pied-piper-hat:before { content: @fa-var-pied-piper-hat; }
|
||||
.@{fa-css-prefix}-pied-piper-pp:before { content: @fa-var-pied-piper-pp; }
|
||||
.@{fa-css-prefix}-piggy-bank:before { content: @fa-var-piggy-bank; }
|
||||
.@{fa-css-prefix}-pills:before { content: @fa-var-pills; }
|
||||
.@{fa-css-prefix}-pinterest:before { content: @fa-var-pinterest; }
|
||||
.@{fa-css-prefix}-pinterest-p:before { content: @fa-var-pinterest-p; }
|
||||
.@{fa-css-prefix}-pinterest-square:before { content: @fa-var-pinterest-square; }
|
||||
.@{fa-css-prefix}-plane:before { content: @fa-var-plane; }
|
||||
.@{fa-css-prefix}-play:before { content: @fa-var-play; }
|
||||
.@{fa-css-prefix}-play-circle:before { content: @fa-var-play-circle; }
|
||||
.@{fa-css-prefix}-playstation:before { content: @fa-var-playstation; }
|
||||
.@{fa-css-prefix}-plug:before { content: @fa-var-plug; }
|
||||
.@{fa-css-prefix}-plus:before { content: @fa-var-plus; }
|
||||
.@{fa-css-prefix}-plus-circle:before { content: @fa-var-plus-circle; }
|
||||
.@{fa-css-prefix}-plus-square:before { content: @fa-var-plus-square; }
|
||||
.@{fa-css-prefix}-podcast:before { content: @fa-var-podcast; }
|
||||
.@{fa-css-prefix}-poo:before { content: @fa-var-poo; }
|
||||
.@{fa-css-prefix}-portrait:before { content: @fa-var-portrait; }
|
||||
.@{fa-css-prefix}-pound-sign:before { content: @fa-var-pound-sign; }
|
||||
.@{fa-css-prefix}-power-off:before { content: @fa-var-power-off; }
|
||||
.@{fa-css-prefix}-prescription-bottle:before { content: @fa-var-prescription-bottle; }
|
||||
.@{fa-css-prefix}-prescription-bottle-alt:before { content: @fa-var-prescription-bottle-alt; }
|
||||
.@{fa-css-prefix}-print:before { content: @fa-var-print; }
|
||||
.@{fa-css-prefix}-procedures:before { content: @fa-var-procedures; }
|
||||
.@{fa-css-prefix}-product-hunt:before { content: @fa-var-product-hunt; }
|
||||
.@{fa-css-prefix}-project-diagram:before { content: @fa-var-project-diagram; }
|
||||
.@{fa-css-prefix}-pushed:before { content: @fa-var-pushed; }
|
||||
.@{fa-css-prefix}-puzzle-piece:before { content: @fa-var-puzzle-piece; }
|
||||
.@{fa-css-prefix}-python:before { content: @fa-var-python; }
|
||||
.@{fa-css-prefix}-qq:before { content: @fa-var-qq; }
|
||||
.@{fa-css-prefix}-qrcode:before { content: @fa-var-qrcode; }
|
||||
.@{fa-css-prefix}-question:before { content: @fa-var-question; }
|
||||
.@{fa-css-prefix}-question-circle:before { content: @fa-var-question-circle; }
|
||||
.@{fa-css-prefix}-quidditch:before { content: @fa-var-quidditch; }
|
||||
.@{fa-css-prefix}-quinscape:before { content: @fa-var-quinscape; }
|
||||
.@{fa-css-prefix}-quora:before { content: @fa-var-quora; }
|
||||
.@{fa-css-prefix}-quote-left:before { content: @fa-var-quote-left; }
|
||||
.@{fa-css-prefix}-quote-right:before { content: @fa-var-quote-right; }
|
||||
.@{fa-css-prefix}-r-project:before { content: @fa-var-r-project; }
|
||||
.@{fa-css-prefix}-random:before { content: @fa-var-random; }
|
||||
.@{fa-css-prefix}-ravelry:before { content: @fa-var-ravelry; }
|
||||
.@{fa-css-prefix}-react:before { content: @fa-var-react; }
|
||||
.@{fa-css-prefix}-readme:before { content: @fa-var-readme; }
|
||||
.@{fa-css-prefix}-rebel:before { content: @fa-var-rebel; }
|
||||
.@{fa-css-prefix}-receipt:before { content: @fa-var-receipt; }
|
||||
.@{fa-css-prefix}-recycle:before { content: @fa-var-recycle; }
|
||||
.@{fa-css-prefix}-red-river:before { content: @fa-var-red-river; }
|
||||
.@{fa-css-prefix}-reddit:before { content: @fa-var-reddit; }
|
||||
.@{fa-css-prefix}-reddit-alien:before { content: @fa-var-reddit-alien; }
|
||||
.@{fa-css-prefix}-reddit-square:before { content: @fa-var-reddit-square; }
|
||||
.@{fa-css-prefix}-redo:before { content: @fa-var-redo; }
|
||||
.@{fa-css-prefix}-redo-alt:before { content: @fa-var-redo-alt; }
|
||||
.@{fa-css-prefix}-registered:before { content: @fa-var-registered; }
|
||||
.@{fa-css-prefix}-rendact:before { content: @fa-var-rendact; }
|
||||
.@{fa-css-prefix}-renren:before { content: @fa-var-renren; }
|
||||
.@{fa-css-prefix}-reply:before { content: @fa-var-reply; }
|
||||
.@{fa-css-prefix}-reply-all:before { content: @fa-var-reply-all; }
|
||||
.@{fa-css-prefix}-replyd:before { content: @fa-var-replyd; }
|
||||
.@{fa-css-prefix}-researchgate:before { content: @fa-var-researchgate; }
|
||||
.@{fa-css-prefix}-resolving:before { content: @fa-var-resolving; }
|
||||
.@{fa-css-prefix}-retweet:before { content: @fa-var-retweet; }
|
||||
.@{fa-css-prefix}-ribbon:before { content: @fa-var-ribbon; }
|
||||
.@{fa-css-prefix}-road:before { content: @fa-var-road; }
|
||||
.@{fa-css-prefix}-robot:before { content: @fa-var-robot; }
|
||||
.@{fa-css-prefix}-rocket:before { content: @fa-var-rocket; }
|
||||
.@{fa-css-prefix}-rocketchat:before { content: @fa-var-rocketchat; }
|
||||
.@{fa-css-prefix}-rockrms:before { content: @fa-var-rockrms; }
|
||||
.@{fa-css-prefix}-rss:before { content: @fa-var-rss; }
|
||||
.@{fa-css-prefix}-rss-square:before { content: @fa-var-rss-square; }
|
||||
.@{fa-css-prefix}-ruble-sign:before { content: @fa-var-ruble-sign; }
|
||||
.@{fa-css-prefix}-ruler:before { content: @fa-var-ruler; }
|
||||
.@{fa-css-prefix}-ruler-combined:before { content: @fa-var-ruler-combined; }
|
||||
.@{fa-css-prefix}-ruler-horizontal:before { content: @fa-var-ruler-horizontal; }
|
||||
.@{fa-css-prefix}-ruler-vertical:before { content: @fa-var-ruler-vertical; }
|
||||
.@{fa-css-prefix}-rupee-sign:before { content: @fa-var-rupee-sign; }
|
||||
.@{fa-css-prefix}-safari:before { content: @fa-var-safari; }
|
||||
.@{fa-css-prefix}-sass:before { content: @fa-var-sass; }
|
||||
.@{fa-css-prefix}-save:before { content: @fa-var-save; }
|
||||
.@{fa-css-prefix}-schlix:before { content: @fa-var-schlix; }
|
||||
.@{fa-css-prefix}-school:before { content: @fa-var-school; }
|
||||
.@{fa-css-prefix}-screwdriver:before { content: @fa-var-screwdriver; }
|
||||
.@{fa-css-prefix}-scribd:before { content: @fa-var-scribd; }
|
||||
.@{fa-css-prefix}-search:before { content: @fa-var-search; }
|
||||
.@{fa-css-prefix}-search-minus:before { content: @fa-var-search-minus; }
|
||||
.@{fa-css-prefix}-search-plus:before { content: @fa-var-search-plus; }
|
||||
.@{fa-css-prefix}-searchengin:before { content: @fa-var-searchengin; }
|
||||
.@{fa-css-prefix}-seedling:before { content: @fa-var-seedling; }
|
||||
.@{fa-css-prefix}-sellcast:before { content: @fa-var-sellcast; }
|
||||
.@{fa-css-prefix}-sellsy:before { content: @fa-var-sellsy; }
|
||||
.@{fa-css-prefix}-server:before { content: @fa-var-server; }
|
||||
.@{fa-css-prefix}-servicestack:before { content: @fa-var-servicestack; }
|
||||
.@{fa-css-prefix}-share:before { content: @fa-var-share; }
|
||||
.@{fa-css-prefix}-share-alt:before { content: @fa-var-share-alt; }
|
||||
.@{fa-css-prefix}-share-alt-square:before { content: @fa-var-share-alt-square; }
|
||||
.@{fa-css-prefix}-share-square:before { content: @fa-var-share-square; }
|
||||
.@{fa-css-prefix}-shekel-sign:before { content: @fa-var-shekel-sign; }
|
||||
.@{fa-css-prefix}-shield-alt:before { content: @fa-var-shield-alt; }
|
||||
.@{fa-css-prefix}-ship:before { content: @fa-var-ship; }
|
||||
.@{fa-css-prefix}-shipping-fast:before { content: @fa-var-shipping-fast; }
|
||||
.@{fa-css-prefix}-shirtsinbulk:before { content: @fa-var-shirtsinbulk; }
|
||||
.@{fa-css-prefix}-shoe-prints:before { content: @fa-var-shoe-prints; }
|
||||
.@{fa-css-prefix}-shopping-bag:before { content: @fa-var-shopping-bag; }
|
||||
.@{fa-css-prefix}-shopping-basket:before { content: @fa-var-shopping-basket; }
|
||||
.@{fa-css-prefix}-shopping-cart:before { content: @fa-var-shopping-cart; }
|
||||
.@{fa-css-prefix}-shower:before { content: @fa-var-shower; }
|
||||
.@{fa-css-prefix}-sign:before { content: @fa-var-sign; }
|
||||
.@{fa-css-prefix}-sign-in-alt:before { content: @fa-var-sign-in-alt; }
|
||||
.@{fa-css-prefix}-sign-language:before { content: @fa-var-sign-language; }
|
||||
.@{fa-css-prefix}-sign-out-alt:before { content: @fa-var-sign-out-alt; }
|
||||
.@{fa-css-prefix}-signal:before { content: @fa-var-signal; }
|
||||
.@{fa-css-prefix}-simplybuilt:before { content: @fa-var-simplybuilt; }
|
||||
.@{fa-css-prefix}-sistrix:before { content: @fa-var-sistrix; }
|
||||
.@{fa-css-prefix}-sitemap:before { content: @fa-var-sitemap; }
|
||||
.@{fa-css-prefix}-sith:before { content: @fa-var-sith; }
|
||||
.@{fa-css-prefix}-skull:before { content: @fa-var-skull; }
|
||||
.@{fa-css-prefix}-skyatlas:before { content: @fa-var-skyatlas; }
|
||||
.@{fa-css-prefix}-skype:before { content: @fa-var-skype; }
|
||||
.@{fa-css-prefix}-slack:before { content: @fa-var-slack; }
|
||||
.@{fa-css-prefix}-slack-hash:before { content: @fa-var-slack-hash; }
|
||||
.@{fa-css-prefix}-sliders-h:before { content: @fa-var-sliders-h; }
|
||||
.@{fa-css-prefix}-slideshare:before { content: @fa-var-slideshare; }
|
||||
.@{fa-css-prefix}-smile:before { content: @fa-var-smile; }
|
||||
.@{fa-css-prefix}-smoking:before { content: @fa-var-smoking; }
|
||||
.@{fa-css-prefix}-smoking-ban:before { content: @fa-var-smoking-ban; }
|
||||
.@{fa-css-prefix}-snapchat:before { content: @fa-var-snapchat; }
|
||||
.@{fa-css-prefix}-snapchat-ghost:before { content: @fa-var-snapchat-ghost; }
|
||||
.@{fa-css-prefix}-snapchat-square:before { content: @fa-var-snapchat-square; }
|
||||
.@{fa-css-prefix}-snowflake:before { content: @fa-var-snowflake; }
|
||||
.@{fa-css-prefix}-sort:before { content: @fa-var-sort; }
|
||||
.@{fa-css-prefix}-sort-alpha-down:before { content: @fa-var-sort-alpha-down; }
|
||||
.@{fa-css-prefix}-sort-alpha-up:before { content: @fa-var-sort-alpha-up; }
|
||||
.@{fa-css-prefix}-sort-amount-down:before { content: @fa-var-sort-amount-down; }
|
||||
.@{fa-css-prefix}-sort-amount-up:before { content: @fa-var-sort-amount-up; }
|
||||
.@{fa-css-prefix}-sort-down:before { content: @fa-var-sort-down; }
|
||||
.@{fa-css-prefix}-sort-numeric-down:before { content: @fa-var-sort-numeric-down; }
|
||||
.@{fa-css-prefix}-sort-numeric-up:before { content: @fa-var-sort-numeric-up; }
|
||||
.@{fa-css-prefix}-sort-up:before { content: @fa-var-sort-up; }
|
||||
.@{fa-css-prefix}-soundcloud:before { content: @fa-var-soundcloud; }
|
||||
.@{fa-css-prefix}-space-shuttle:before { content: @fa-var-space-shuttle; }
|
||||
.@{fa-css-prefix}-speakap:before { content: @fa-var-speakap; }
|
||||
.@{fa-css-prefix}-spinner:before { content: @fa-var-spinner; }
|
||||
.@{fa-css-prefix}-spotify:before { content: @fa-var-spotify; }
|
||||
.@{fa-css-prefix}-square:before { content: @fa-var-square; }
|
||||
.@{fa-css-prefix}-square-full:before { content: @fa-var-square-full; }
|
||||
.@{fa-css-prefix}-stack-exchange:before { content: @fa-var-stack-exchange; }
|
||||
.@{fa-css-prefix}-stack-overflow:before { content: @fa-var-stack-overflow; }
|
||||
.@{fa-css-prefix}-star:before { content: @fa-var-star; }
|
||||
.@{fa-css-prefix}-star-half:before { content: @fa-var-star-half; }
|
||||
.@{fa-css-prefix}-staylinked:before { content: @fa-var-staylinked; }
|
||||
.@{fa-css-prefix}-steam:before { content: @fa-var-steam; }
|
||||
.@{fa-css-prefix}-steam-square:before { content: @fa-var-steam-square; }
|
||||
.@{fa-css-prefix}-steam-symbol:before { content: @fa-var-steam-symbol; }
|
||||
.@{fa-css-prefix}-step-backward:before { content: @fa-var-step-backward; }
|
||||
.@{fa-css-prefix}-step-forward:before { content: @fa-var-step-forward; }
|
||||
.@{fa-css-prefix}-stethoscope:before { content: @fa-var-stethoscope; }
|
||||
.@{fa-css-prefix}-sticker-mule:before { content: @fa-var-sticker-mule; }
|
||||
.@{fa-css-prefix}-sticky-note:before { content: @fa-var-sticky-note; }
|
||||
.@{fa-css-prefix}-stop:before { content: @fa-var-stop; }
|
||||
.@{fa-css-prefix}-stop-circle:before { content: @fa-var-stop-circle; }
|
||||
.@{fa-css-prefix}-stopwatch:before { content: @fa-var-stopwatch; }
|
||||
.@{fa-css-prefix}-store:before { content: @fa-var-store; }
|
||||
.@{fa-css-prefix}-store-alt:before { content: @fa-var-store-alt; }
|
||||
.@{fa-css-prefix}-strava:before { content: @fa-var-strava; }
|
||||
.@{fa-css-prefix}-stream:before { content: @fa-var-stream; }
|
||||
.@{fa-css-prefix}-street-view:before { content: @fa-var-street-view; }
|
||||
.@{fa-css-prefix}-strikethrough:before { content: @fa-var-strikethrough; }
|
||||
.@{fa-css-prefix}-stripe:before { content: @fa-var-stripe; }
|
||||
.@{fa-css-prefix}-stripe-s:before { content: @fa-var-stripe-s; }
|
||||
.@{fa-css-prefix}-stroopwafel:before { content: @fa-var-stroopwafel; }
|
||||
.@{fa-css-prefix}-studiovinari:before { content: @fa-var-studiovinari; }
|
||||
.@{fa-css-prefix}-stumbleupon:before { content: @fa-var-stumbleupon; }
|
||||
.@{fa-css-prefix}-stumbleupon-circle:before { content: @fa-var-stumbleupon-circle; }
|
||||
.@{fa-css-prefix}-subscript:before { content: @fa-var-subscript; }
|
||||
.@{fa-css-prefix}-subway:before { content: @fa-var-subway; }
|
||||
.@{fa-css-prefix}-suitcase:before { content: @fa-var-suitcase; }
|
||||
.@{fa-css-prefix}-sun:before { content: @fa-var-sun; }
|
||||
.@{fa-css-prefix}-superpowers:before { content: @fa-var-superpowers; }
|
||||
.@{fa-css-prefix}-superscript:before { content: @fa-var-superscript; }
|
||||
.@{fa-css-prefix}-supple:before { content: @fa-var-supple; }
|
||||
.@{fa-css-prefix}-sync:before { content: @fa-var-sync; }
|
||||
.@{fa-css-prefix}-sync-alt:before { content: @fa-var-sync-alt; }
|
||||
.@{fa-css-prefix}-syringe:before { content: @fa-var-syringe; }
|
||||
.@{fa-css-prefix}-table:before { content: @fa-var-table; }
|
||||
.@{fa-css-prefix}-table-tennis:before { content: @fa-var-table-tennis; }
|
||||
.@{fa-css-prefix}-tablet:before { content: @fa-var-tablet; }
|
||||
.@{fa-css-prefix}-tablet-alt:before { content: @fa-var-tablet-alt; }
|
||||
.@{fa-css-prefix}-tablets:before { content: @fa-var-tablets; }
|
||||
.@{fa-css-prefix}-tachometer-alt:before { content: @fa-var-tachometer-alt; }
|
||||
.@{fa-css-prefix}-tag:before { content: @fa-var-tag; }
|
||||
.@{fa-css-prefix}-tags:before { content: @fa-var-tags; }
|
||||
.@{fa-css-prefix}-tape:before { content: @fa-var-tape; }
|
||||
.@{fa-css-prefix}-tasks:before { content: @fa-var-tasks; }
|
||||
.@{fa-css-prefix}-taxi:before { content: @fa-var-taxi; }
|
||||
.@{fa-css-prefix}-teamspeak:before { content: @fa-var-teamspeak; }
|
||||
.@{fa-css-prefix}-telegram:before { content: @fa-var-telegram; }
|
||||
.@{fa-css-prefix}-telegram-plane:before { content: @fa-var-telegram-plane; }
|
||||
.@{fa-css-prefix}-tencent-weibo:before { content: @fa-var-tencent-weibo; }
|
||||
.@{fa-css-prefix}-terminal:before { content: @fa-var-terminal; }
|
||||
.@{fa-css-prefix}-text-height:before { content: @fa-var-text-height; }
|
||||
.@{fa-css-prefix}-text-width:before { content: @fa-var-text-width; }
|
||||
.@{fa-css-prefix}-th:before { content: @fa-var-th; }
|
||||
.@{fa-css-prefix}-th-large:before { content: @fa-var-th-large; }
|
||||
.@{fa-css-prefix}-th-list:before { content: @fa-var-th-list; }
|
||||
.@{fa-css-prefix}-themeisle:before { content: @fa-var-themeisle; }
|
||||
.@{fa-css-prefix}-thermometer:before { content: @fa-var-thermometer; }
|
||||
.@{fa-css-prefix}-thermometer-empty:before { content: @fa-var-thermometer-empty; }
|
||||
.@{fa-css-prefix}-thermometer-full:before { content: @fa-var-thermometer-full; }
|
||||
.@{fa-css-prefix}-thermometer-half:before { content: @fa-var-thermometer-half; }
|
||||
.@{fa-css-prefix}-thermometer-quarter:before { content: @fa-var-thermometer-quarter; }
|
||||
.@{fa-css-prefix}-thermometer-three-quarters:before { content: @fa-var-thermometer-three-quarters; }
|
||||
.@{fa-css-prefix}-thumbs-down:before { content: @fa-var-thumbs-down; }
|
||||
.@{fa-css-prefix}-thumbs-up:before { content: @fa-var-thumbs-up; }
|
||||
.@{fa-css-prefix}-thumbtack:before { content: @fa-var-thumbtack; }
|
||||
.@{fa-css-prefix}-ticket-alt:before { content: @fa-var-ticket-alt; }
|
||||
.@{fa-css-prefix}-times:before { content: @fa-var-times; }
|
||||
.@{fa-css-prefix}-times-circle:before { content: @fa-var-times-circle; }
|
||||
.@{fa-css-prefix}-tint:before { content: @fa-var-tint; }
|
||||
.@{fa-css-prefix}-toggle-off:before { content: @fa-var-toggle-off; }
|
||||
.@{fa-css-prefix}-toggle-on:before { content: @fa-var-toggle-on; }
|
||||
.@{fa-css-prefix}-toolbox:before { content: @fa-var-toolbox; }
|
||||
.@{fa-css-prefix}-trade-federation:before { content: @fa-var-trade-federation; }
|
||||
.@{fa-css-prefix}-trademark:before { content: @fa-var-trademark; }
|
||||
.@{fa-css-prefix}-train:before { content: @fa-var-train; }
|
||||
.@{fa-css-prefix}-transgender:before { content: @fa-var-transgender; }
|
||||
.@{fa-css-prefix}-transgender-alt:before { content: @fa-var-transgender-alt; }
|
||||
.@{fa-css-prefix}-trash:before { content: @fa-var-trash; }
|
||||
.@{fa-css-prefix}-trash-alt:before { content: @fa-var-trash-alt; }
|
||||
.@{fa-css-prefix}-tree:before { content: @fa-var-tree; }
|
||||
.@{fa-css-prefix}-trello:before { content: @fa-var-trello; }
|
||||
.@{fa-css-prefix}-tripadvisor:before { content: @fa-var-tripadvisor; }
|
||||
.@{fa-css-prefix}-trophy:before { content: @fa-var-trophy; }
|
||||
.@{fa-css-prefix}-truck:before { content: @fa-var-truck; }
|
||||
.@{fa-css-prefix}-truck-loading:before { content: @fa-var-truck-loading; }
|
||||
.@{fa-css-prefix}-truck-moving:before { content: @fa-var-truck-moving; }
|
||||
.@{fa-css-prefix}-tshirt:before { content: @fa-var-tshirt; }
|
||||
.@{fa-css-prefix}-tty:before { content: @fa-var-tty; }
|
||||
.@{fa-css-prefix}-tumblr:before { content: @fa-var-tumblr; }
|
||||
.@{fa-css-prefix}-tumblr-square:before { content: @fa-var-tumblr-square; }
|
||||
.@{fa-css-prefix}-tv:before { content: @fa-var-tv; }
|
||||
.@{fa-css-prefix}-twitch:before { content: @fa-var-twitch; }
|
||||
.@{fa-css-prefix}-twitter:before { content: @fa-var-twitter; }
|
||||
.@{fa-css-prefix}-twitter-square:before { content: @fa-var-twitter-square; }
|
||||
.@{fa-css-prefix}-typo3:before { content: @fa-var-typo3; }
|
||||
.@{fa-css-prefix}-uber:before { content: @fa-var-uber; }
|
||||
.@{fa-css-prefix}-uikit:before { content: @fa-var-uikit; }
|
||||
.@{fa-css-prefix}-umbrella:before { content: @fa-var-umbrella; }
|
||||
.@{fa-css-prefix}-underline:before { content: @fa-var-underline; }
|
||||
.@{fa-css-prefix}-undo:before { content: @fa-var-undo; }
|
||||
.@{fa-css-prefix}-undo-alt:before { content: @fa-var-undo-alt; }
|
||||
.@{fa-css-prefix}-uniregistry:before { content: @fa-var-uniregistry; }
|
||||
.@{fa-css-prefix}-universal-access:before { content: @fa-var-universal-access; }
|
||||
.@{fa-css-prefix}-university:before { content: @fa-var-university; }
|
||||
.@{fa-css-prefix}-unlink:before { content: @fa-var-unlink; }
|
||||
.@{fa-css-prefix}-unlock:before { content: @fa-var-unlock; }
|
||||
.@{fa-css-prefix}-unlock-alt:before { content: @fa-var-unlock-alt; }
|
||||
.@{fa-css-prefix}-untappd:before { content: @fa-var-untappd; }
|
||||
.@{fa-css-prefix}-upload:before { content: @fa-var-upload; }
|
||||
.@{fa-css-prefix}-usb:before { content: @fa-var-usb; }
|
||||
.@{fa-css-prefix}-user:before { content: @fa-var-user; }
|
||||
.@{fa-css-prefix}-user-alt:before { content: @fa-var-user-alt; }
|
||||
.@{fa-css-prefix}-user-alt-slash:before { content: @fa-var-user-alt-slash; }
|
||||
.@{fa-css-prefix}-user-astronaut:before { content: @fa-var-user-astronaut; }
|
||||
.@{fa-css-prefix}-user-check:before { content: @fa-var-user-check; }
|
||||
.@{fa-css-prefix}-user-circle:before { content: @fa-var-user-circle; }
|
||||
.@{fa-css-prefix}-user-clock:before { content: @fa-var-user-clock; }
|
||||
.@{fa-css-prefix}-user-cog:before { content: @fa-var-user-cog; }
|
||||
.@{fa-css-prefix}-user-edit:before { content: @fa-var-user-edit; }
|
||||
.@{fa-css-prefix}-user-friends:before { content: @fa-var-user-friends; }
|
||||
.@{fa-css-prefix}-user-graduate:before { content: @fa-var-user-graduate; }
|
||||
.@{fa-css-prefix}-user-lock:before { content: @fa-var-user-lock; }
|
||||
.@{fa-css-prefix}-user-md:before { content: @fa-var-user-md; }
|
||||
.@{fa-css-prefix}-user-minus:before { content: @fa-var-user-minus; }
|
||||
.@{fa-css-prefix}-user-ninja:before { content: @fa-var-user-ninja; }
|
||||
.@{fa-css-prefix}-user-plus:before { content: @fa-var-user-plus; }
|
||||
.@{fa-css-prefix}-user-secret:before { content: @fa-var-user-secret; }
|
||||
.@{fa-css-prefix}-user-shield:before { content: @fa-var-user-shield; }
|
||||
.@{fa-css-prefix}-user-slash:before { content: @fa-var-user-slash; }
|
||||
.@{fa-css-prefix}-user-tag:before { content: @fa-var-user-tag; }
|
||||
.@{fa-css-prefix}-user-tie:before { content: @fa-var-user-tie; }
|
||||
.@{fa-css-prefix}-user-times:before { content: @fa-var-user-times; }
|
||||
.@{fa-css-prefix}-users:before { content: @fa-var-users; }
|
||||
.@{fa-css-prefix}-users-cog:before { content: @fa-var-users-cog; }
|
||||
.@{fa-css-prefix}-ussunnah:before { content: @fa-var-ussunnah; }
|
||||
.@{fa-css-prefix}-utensil-spoon:before { content: @fa-var-utensil-spoon; }
|
||||
.@{fa-css-prefix}-utensils:before { content: @fa-var-utensils; }
|
||||
.@{fa-css-prefix}-vaadin:before { content: @fa-var-vaadin; }
|
||||
.@{fa-css-prefix}-venus:before { content: @fa-var-venus; }
|
||||
.@{fa-css-prefix}-venus-double:before { content: @fa-var-venus-double; }
|
||||
.@{fa-css-prefix}-venus-mars:before { content: @fa-var-venus-mars; }
|
||||
.@{fa-css-prefix}-viacoin:before { content: @fa-var-viacoin; }
|
||||
.@{fa-css-prefix}-viadeo:before { content: @fa-var-viadeo; }
|
||||
.@{fa-css-prefix}-viadeo-square:before { content: @fa-var-viadeo-square; }
|
||||
.@{fa-css-prefix}-vial:before { content: @fa-var-vial; }
|
||||
.@{fa-css-prefix}-vials:before { content: @fa-var-vials; }
|
||||
.@{fa-css-prefix}-viber:before { content: @fa-var-viber; }
|
||||
.@{fa-css-prefix}-video:before { content: @fa-var-video; }
|
||||
.@{fa-css-prefix}-video-slash:before { content: @fa-var-video-slash; }
|
||||
.@{fa-css-prefix}-vimeo:before { content: @fa-var-vimeo; }
|
||||
.@{fa-css-prefix}-vimeo-square:before { content: @fa-var-vimeo-square; }
|
||||
.@{fa-css-prefix}-vimeo-v:before { content: @fa-var-vimeo-v; }
|
||||
.@{fa-css-prefix}-vine:before { content: @fa-var-vine; }
|
||||
.@{fa-css-prefix}-vk:before { content: @fa-var-vk; }
|
||||
.@{fa-css-prefix}-vnv:before { content: @fa-var-vnv; }
|
||||
.@{fa-css-prefix}-volleyball-ball:before { content: @fa-var-volleyball-ball; }
|
||||
.@{fa-css-prefix}-volume-down:before { content: @fa-var-volume-down; }
|
||||
.@{fa-css-prefix}-volume-off:before { content: @fa-var-volume-off; }
|
||||
.@{fa-css-prefix}-volume-up:before { content: @fa-var-volume-up; }
|
||||
.@{fa-css-prefix}-vuejs:before { content: @fa-var-vuejs; }
|
||||
.@{fa-css-prefix}-walking:before { content: @fa-var-walking; }
|
||||
.@{fa-css-prefix}-wallet:before { content: @fa-var-wallet; }
|
||||
.@{fa-css-prefix}-warehouse:before { content: @fa-var-warehouse; }
|
||||
.@{fa-css-prefix}-weibo:before { content: @fa-var-weibo; }
|
||||
.@{fa-css-prefix}-weight:before { content: @fa-var-weight; }
|
||||
.@{fa-css-prefix}-weixin:before { content: @fa-var-weixin; }
|
||||
.@{fa-css-prefix}-whatsapp:before { content: @fa-var-whatsapp; }
|
||||
.@{fa-css-prefix}-whatsapp-square:before { content: @fa-var-whatsapp-square; }
|
||||
.@{fa-css-prefix}-wheelchair:before { content: @fa-var-wheelchair; }
|
||||
.@{fa-css-prefix}-whmcs:before { content: @fa-var-whmcs; }
|
||||
.@{fa-css-prefix}-wifi:before { content: @fa-var-wifi; }
|
||||
.@{fa-css-prefix}-wikipedia-w:before { content: @fa-var-wikipedia-w; }
|
||||
.@{fa-css-prefix}-window-close:before { content: @fa-var-window-close; }
|
||||
.@{fa-css-prefix}-window-maximize:before { content: @fa-var-window-maximize; }
|
||||
.@{fa-css-prefix}-window-minimize:before { content: @fa-var-window-minimize; }
|
||||
.@{fa-css-prefix}-window-restore:before { content: @fa-var-window-restore; }
|
||||
.@{fa-css-prefix}-windows:before { content: @fa-var-windows; }
|
||||
.@{fa-css-prefix}-wine-glass:before { content: @fa-var-wine-glass; }
|
||||
.@{fa-css-prefix}-wolf-pack-battalion:before { content: @fa-var-wolf-pack-battalion; }
|
||||
.@{fa-css-prefix}-won-sign:before { content: @fa-var-won-sign; }
|
||||
.@{fa-css-prefix}-wordpress:before { content: @fa-var-wordpress; }
|
||||
.@{fa-css-prefix}-wordpress-simple:before { content: @fa-var-wordpress-simple; }
|
||||
.@{fa-css-prefix}-wpbeginner:before { content: @fa-var-wpbeginner; }
|
||||
.@{fa-css-prefix}-wpexplorer:before { content: @fa-var-wpexplorer; }
|
||||
.@{fa-css-prefix}-wpforms:before { content: @fa-var-wpforms; }
|
||||
.@{fa-css-prefix}-wrench:before { content: @fa-var-wrench; }
|
||||
.@{fa-css-prefix}-x-ray:before { content: @fa-var-x-ray; }
|
||||
.@{fa-css-prefix}-xbox:before { content: @fa-var-xbox; }
|
||||
.@{fa-css-prefix}-xing:before { content: @fa-var-xing; }
|
||||
.@{fa-css-prefix}-xing-square:before { content: @fa-var-xing-square; }
|
||||
.@{fa-css-prefix}-y-combinator:before { content: @fa-var-y-combinator; }
|
||||
.@{fa-css-prefix}-yahoo:before { content: @fa-var-yahoo; }
|
||||
.@{fa-css-prefix}-yandex:before { content: @fa-var-yandex; }
|
||||
.@{fa-css-prefix}-yandex-international:before { content: @fa-var-yandex-international; }
|
||||
.@{fa-css-prefix}-yelp:before { content: @fa-var-yelp; }
|
||||
.@{fa-css-prefix}-yen-sign:before { content: @fa-var-yen-sign; }
|
||||
.@{fa-css-prefix}-yoast:before { content: @fa-var-yoast; }
|
||||
.@{fa-css-prefix}-youtube:before { content: @fa-var-youtube; }
|
||||
.@{fa-css-prefix}-youtube-square:before { content: @fa-var-youtube-square; }
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
// Icon Sizes
|
||||
// -------------------------
|
||||
|
||||
.larger(@factor) when (@factor > 0) {
|
||||
.larger((@factor - 1));
|
||||
|
||||
.@{fa-css-prefix}-@{factor}x {
|
||||
font-size: (@factor * 1em);
|
||||
}
|
||||
}
|
||||
|
||||
/* makes the font 33% larger relative to the icon container */
|
||||
.@{fa-css-prefix}-lg {
|
||||
font-size: (4em / 3);
|
||||
line-height: (3em / 4);
|
||||
vertical-align: -.0667em;
|
||||
}
|
||||
|
||||
.@{fa-css-prefix}-xs {
|
||||
font-size: .75em;
|
||||
}
|
||||
|
||||
.@{fa-css-prefix}-sm {
|
||||
font-size: .875em;
|
||||
}
|
||||
|
||||
.larger(10);
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
// List Icons
|
||||
// -------------------------
|
||||
|
||||
.@{fa-css-prefix}-ul {
|
||||
list-style-type: none;
|
||||
margin-left: @fa-li-width * 5/4;
|
||||
padding-left: 0;
|
||||
|
||||
> li { position: relative; }
|
||||
}
|
||||
|
||||
.@{fa-css-prefix}-li {
|
||||
left: -@fa-li-width;
|
||||
position: absolute;
|
||||
text-align: center;
|
||||
width: @fa-li-width;
|
||||
line-height: inherit;
|
||||
}
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
// Mixins
|
||||
// --------------------------
|
||||
|
||||
.fa-icon() {
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
display: inline-block;
|
||||
font-style: normal;
|
||||
font-variant: normal;
|
||||
font-weight: normal;
|
||||
line-height: 1;
|
||||
vertical-align: -.125em;
|
||||
}
|
||||
|
||||
.fa-icon-rotate(@degrees, @rotation) {
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation})";
|
||||
transform: rotate(@degrees);
|
||||
}
|
||||
|
||||
.fa-icon-flip(@horiz, @vert, @rotation) {
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation}, mirror=1)";
|
||||
transform: scale(@horiz, @vert);
|
||||
}
|
||||
|
||||
|
||||
// Only display content to screen readers. A la Bootstrap 4.
|
||||
//
|
||||
// See: http://a11yproject.com/posts/how-to-hide-content/
|
||||
|
||||
.sr-only() {
|
||||
border: 0;
|
||||
clip: rect(0,0,0,0);
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
overflow: hidden;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
}
|
||||
|
||||
// Use in conjunction with .sr-only to only display content when it's focused.
|
||||
//
|
||||
// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
|
||||
//
|
||||
// Credit: HTML5 Boilerplate
|
||||
|
||||
.sr-only-focusable() {
|
||||
&:active,
|
||||
&:focus {
|
||||
clip: auto;
|
||||
height: auto;
|
||||
margin: 0;
|
||||
overflow: visible;
|
||||
position: static;
|
||||
width: auto;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
// Rotated & Flipped Icons
|
||||
// -------------------------
|
||||
|
||||
.@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); }
|
||||
.@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); }
|
||||
.@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); }
|
||||
|
||||
.@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); }
|
||||
.@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); }
|
||||
.@{fa-css-prefix}-flip-horizontal.@{fa-css-prefix}-flip-vertical { .fa-icon-flip(-1, -1, 2); }
|
||||
|
||||
// Hook for IE8-9
|
||||
// -------------------------
|
||||
|
||||
:root {
|
||||
.@{fa-css-prefix}-rotate-90,
|
||||
.@{fa-css-prefix}-rotate-180,
|
||||
.@{fa-css-prefix}-rotate-270,
|
||||
.@{fa-css-prefix}-flip-horizontal,
|
||||
.@{fa-css-prefix}-flip-vertical {
|
||||
filter: none;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
// Screen Readers
|
||||
// -------------------------
|
||||
|
||||
.sr-only { .sr-only(); }
|
||||
.sr-only-focusable { .sr-only-focusable(); }
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
// Stacked Icons
|
||||
// -------------------------
|
||||
|
||||
.@{fa-css-prefix}-stack {
|
||||
display: inline-block;
|
||||
height: 2em;
|
||||
line-height: 2em;
|
||||
position: relative;
|
||||
vertical-align: middle;
|
||||
width: 2em;
|
||||
}
|
||||
|
||||
.@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x {
|
||||
left: 0;
|
||||
position: absolute;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.@{fa-css-prefix}-stack-1x { line-height: inherit; }
|
||||
.@{fa-css-prefix}-stack-2x { font-size: 2em; }
|
||||
.@{fa-css-prefix}-inverse { color: @fa-inverse; }
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,21 @@
|
|||
/*!
|
||||
* Font Awesome Free 5.0.13 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||
*/
|
||||
@import "_variables.less";
|
||||
|
||||
@font-face {
|
||||
font-family: 'Font Awesome 5 Brands';
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
src: url('@{fa-font-path}/fa-brands-400.eot');
|
||||
src: url('@{fa-font-path}/fa-brands-400.eot?#iefix') format('embedded-opentype'),
|
||||
url('@{fa-font-path}/fa-brands-400.woff2') format('woff2'),
|
||||
url('@{fa-font-path}/fa-brands-400.woff') format('woff'),
|
||||
url('@{fa-font-path}/fa-brands-400.ttf') format('truetype'),
|
||||
url('@{fa-font-path}/fa-brands-400.svg#fontawesome') format('svg');
|
||||
}
|
||||
|
||||
.fab {
|
||||
font-family: 'Font Awesome 5 Brands';
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
/*!
|
||||
* Font Awesome Free 5.0.13 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||
*/
|
||||
@import "_variables.less";
|
||||
|
||||
@font-face {
|
||||
font-family: 'Font Awesome 5 Free';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: url('@{fa-font-path}/fa-regular-400.eot');
|
||||
src: url('@{fa-font-path}/fa-regular-400.eot?#iefix') format('embedded-opentype'),
|
||||
url('@{fa-font-path}/fa-regular-400.woff2') format('woff2'),
|
||||
url('@{fa-font-path}/fa-regular-400.woff') format('woff'),
|
||||
url('@{fa-font-path}/fa-regular-400.ttf') format('truetype'),
|
||||
url('@{fa-font-path}/fa-regular-400.svg#fontawesome') format('svg');
|
||||
}
|
||||
|
||||
.far {
|
||||
font-family: 'Font Awesome 5 Free';
|
||||
font-weight: 400;
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
/*!
|
||||
* Font Awesome Free 5.0.13 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||
*/
|
||||
@import "_variables.less";
|
||||
|
||||
@font-face {
|
||||
font-family: 'Font Awesome 5 Free';
|
||||
font-style: normal;
|
||||
font-weight: 900;
|
||||
src: url('@{fa-font-path}/fa-solid-900.eot');
|
||||
src: url('@{fa-font-path}/fa-solid-900.eot?#iefix') format('embedded-opentype'),
|
||||
url('@{fa-font-path}/fa-solid-900.woff2') format('woff2'),
|
||||
url('@{fa-font-path}/fa-solid-900.woff') format('woff'),
|
||||
url('@{fa-font-path}/fa-solid-900.ttf') format('truetype'),
|
||||
url('@{fa-font-path}/fa-solid-900.svg#fontawesome') format('svg');
|
||||
}
|
||||
|
||||
.fa,
|
||||
.fas {
|
||||
font-family: 'Font Awesome 5 Free';
|
||||
font-weight: 900;
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
/*!
|
||||
* Font Awesome Free 5.0.13 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||
*/
|
||||
@import "_variables.less";
|
||||
@import "_mixins.less";
|
||||
@import "_core.less";
|
||||
@import "_larger.less";
|
||||
@import "_fixed-width.less";
|
||||
@import "_list.less";
|
||||
@import "_bordered-pulled.less";
|
||||
@import "_animated.less";
|
||||
@import "_rotated-flipped.less";
|
||||
@import "_stacked.less";
|
||||
@import "_icons.less";
|
||||
@import "_screen-reader.less";
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
// Animated Icons
|
||||
// --------------------------
|
||||
|
||||
.#{$fa-css-prefix}-spin {
|
||||
animation: fa-spin 2s infinite linear;
|
||||
}
|
||||
|
||||
.#{$fa-css-prefix}-pulse {
|
||||
animation: fa-spin 1s infinite steps(8);
|
||||
}
|
||||
|
||||
@keyframes fa-spin {
|
||||
0% {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
// Bordered & Pulled
|
||||
// -------------------------
|
||||
|
||||
.#{$fa-css-prefix}-border {
|
||||
border: solid .08em $fa-border-color;
|
||||
border-radius: .1em;
|
||||
padding: .2em .25em .15em;
|
||||
}
|
||||
|
||||
.#{$fa-css-prefix}-pull-left { float: left; }
|
||||
.#{$fa-css-prefix}-pull-right { float: right; }
|
||||
|
||||
.#{$fa-css-prefix},
|
||||
.fas,
|
||||
.far,
|
||||
.fal,
|
||||
.fab {
|
||||
&.#{$fa-css-prefix}-pull-left { margin-right: .3em; }
|
||||
&.#{$fa-css-prefix}-pull-right { margin-left: .3em; }
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
// Base Class Definition
|
||||
// -------------------------
|
||||
|
||||
.#{$fa-css-prefix},
|
||||
.fas,
|
||||
.far,
|
||||
.fal,
|
||||
.fab {
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
display: inline-block;
|
||||
font-style: normal;
|
||||
font-variant: normal;
|
||||
text-rendering: auto;
|
||||
line-height: 1;
|
||||
}
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
// Fixed Width Icons
|
||||
// -------------------------
|
||||
.#{$fa-css-prefix}-fw {
|
||||
text-align: center;
|
||||
width: (20em / 16);
|
||||
}
|
||||
|
|
@ -0,0 +1,946 @@
|
|||
/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
|
||||
readers do not read off random characters that represent icons */
|
||||
|
||||
.#{$fa-css-prefix}-500px:before { content: fa-content($fa-var-500px); }
|
||||
.#{$fa-css-prefix}-accessible-icon:before { content: fa-content($fa-var-accessible-icon); }
|
||||
.#{$fa-css-prefix}-accusoft:before { content: fa-content($fa-var-accusoft); }
|
||||
.#{$fa-css-prefix}-address-book:before { content: fa-content($fa-var-address-book); }
|
||||
.#{$fa-css-prefix}-address-card:before { content: fa-content($fa-var-address-card); }
|
||||
.#{$fa-css-prefix}-adjust:before { content: fa-content($fa-var-adjust); }
|
||||
.#{$fa-css-prefix}-adn:before { content: fa-content($fa-var-adn); }
|
||||
.#{$fa-css-prefix}-adversal:before { content: fa-content($fa-var-adversal); }
|
||||
.#{$fa-css-prefix}-affiliatetheme:before { content: fa-content($fa-var-affiliatetheme); }
|
||||
.#{$fa-css-prefix}-alarm-clock:before { content: fa-content($fa-var-alarm-clock); }
|
||||
.#{$fa-css-prefix}-algolia:before { content: fa-content($fa-var-algolia); }
|
||||
.#{$fa-css-prefix}-align-center:before { content: fa-content($fa-var-align-center); }
|
||||
.#{$fa-css-prefix}-align-justify:before { content: fa-content($fa-var-align-justify); }
|
||||
.#{$fa-css-prefix}-align-left:before { content: fa-content($fa-var-align-left); }
|
||||
.#{$fa-css-prefix}-align-right:before { content: fa-content($fa-var-align-right); }
|
||||
.#{$fa-css-prefix}-amazon:before { content: fa-content($fa-var-amazon); }
|
||||
.#{$fa-css-prefix}-amazon-pay:before { content: fa-content($fa-var-amazon-pay); }
|
||||
.#{$fa-css-prefix}-ambulance:before { content: fa-content($fa-var-ambulance); }
|
||||
.#{$fa-css-prefix}-american-sign-language-interpreting:before { content: fa-content($fa-var-american-sign-language-interpreting); }
|
||||
.#{$fa-css-prefix}-amilia:before { content: fa-content($fa-var-amilia); }
|
||||
.#{$fa-css-prefix}-anchor:before { content: fa-content($fa-var-anchor); }
|
||||
.#{$fa-css-prefix}-android:before { content: fa-content($fa-var-android); }
|
||||
.#{$fa-css-prefix}-angellist:before { content: fa-content($fa-var-angellist); }
|
||||
.#{$fa-css-prefix}-angle-double-down:before { content: fa-content($fa-var-angle-double-down); }
|
||||
.#{$fa-css-prefix}-angle-double-left:before { content: fa-content($fa-var-angle-double-left); }
|
||||
.#{$fa-css-prefix}-angle-double-right:before { content: fa-content($fa-var-angle-double-right); }
|
||||
.#{$fa-css-prefix}-angle-double-up:before { content: fa-content($fa-var-angle-double-up); }
|
||||
.#{$fa-css-prefix}-angle-down:before { content: fa-content($fa-var-angle-down); }
|
||||
.#{$fa-css-prefix}-angle-left:before { content: fa-content($fa-var-angle-left); }
|
||||
.#{$fa-css-prefix}-angle-right:before { content: fa-content($fa-var-angle-right); }
|
||||
.#{$fa-css-prefix}-angle-up:before { content: fa-content($fa-var-angle-up); }
|
||||
.#{$fa-css-prefix}-angrycreative:before { content: fa-content($fa-var-angrycreative); }
|
||||
.#{$fa-css-prefix}-angular:before { content: fa-content($fa-var-angular); }
|
||||
.#{$fa-css-prefix}-app-store:before { content: fa-content($fa-var-app-store); }
|
||||
.#{$fa-css-prefix}-app-store-ios:before { content: fa-content($fa-var-app-store-ios); }
|
||||
.#{$fa-css-prefix}-apper:before { content: fa-content($fa-var-apper); }
|
||||
.#{$fa-css-prefix}-apple:before { content: fa-content($fa-var-apple); }
|
||||
.#{$fa-css-prefix}-apple-pay:before { content: fa-content($fa-var-apple-pay); }
|
||||
.#{$fa-css-prefix}-archive:before { content: fa-content($fa-var-archive); }
|
||||
.#{$fa-css-prefix}-arrow-alt-circle-down:before { content: fa-content($fa-var-arrow-alt-circle-down); }
|
||||
.#{$fa-css-prefix}-arrow-alt-circle-left:before { content: fa-content($fa-var-arrow-alt-circle-left); }
|
||||
.#{$fa-css-prefix}-arrow-alt-circle-right:before { content: fa-content($fa-var-arrow-alt-circle-right); }
|
||||
.#{$fa-css-prefix}-arrow-alt-circle-up:before { content: fa-content($fa-var-arrow-alt-circle-up); }
|
||||
.#{$fa-css-prefix}-arrow-alt-down:before { content: fa-content($fa-var-arrow-alt-down); }
|
||||
.#{$fa-css-prefix}-arrow-alt-from-bottom:before { content: fa-content($fa-var-arrow-alt-from-bottom); }
|
||||
.#{$fa-css-prefix}-arrow-alt-from-left:before { content: fa-content($fa-var-arrow-alt-from-left); }
|
||||
.#{$fa-css-prefix}-arrow-alt-from-right:before { content: fa-content($fa-var-arrow-alt-from-right); }
|
||||
.#{$fa-css-prefix}-arrow-alt-from-top:before { content: fa-content($fa-var-arrow-alt-from-top); }
|
||||
.#{$fa-css-prefix}-arrow-alt-left:before { content: fa-content($fa-var-arrow-alt-left); }
|
||||
.#{$fa-css-prefix}-arrow-alt-right:before { content: fa-content($fa-var-arrow-alt-right); }
|
||||
.#{$fa-css-prefix}-arrow-alt-square-down:before { content: fa-content($fa-var-arrow-alt-square-down); }
|
||||
.#{$fa-css-prefix}-arrow-alt-square-left:before { content: fa-content($fa-var-arrow-alt-square-left); }
|
||||
.#{$fa-css-prefix}-arrow-alt-square-right:before { content: fa-content($fa-var-arrow-alt-square-right); }
|
||||
.#{$fa-css-prefix}-arrow-alt-square-up:before { content: fa-content($fa-var-arrow-alt-square-up); }
|
||||
.#{$fa-css-prefix}-arrow-alt-to-bottom:before { content: fa-content($fa-var-arrow-alt-to-bottom); }
|
||||
.#{$fa-css-prefix}-arrow-alt-to-left:before { content: fa-content($fa-var-arrow-alt-to-left); }
|
||||
.#{$fa-css-prefix}-arrow-alt-to-right:before { content: fa-content($fa-var-arrow-alt-to-right); }
|
||||
.#{$fa-css-prefix}-arrow-alt-to-top:before { content: fa-content($fa-var-arrow-alt-to-top); }
|
||||
.#{$fa-css-prefix}-arrow-alt-up:before { content: fa-content($fa-var-arrow-alt-up); }
|
||||
.#{$fa-css-prefix}-arrow-circle-down:before { content: fa-content($fa-var-arrow-circle-down); }
|
||||
.#{$fa-css-prefix}-arrow-circle-left:before { content: fa-content($fa-var-arrow-circle-left); }
|
||||
.#{$fa-css-prefix}-arrow-circle-right:before { content: fa-content($fa-var-arrow-circle-right); }
|
||||
.#{$fa-css-prefix}-arrow-circle-up:before { content: fa-content($fa-var-arrow-circle-up); }
|
||||
.#{$fa-css-prefix}-arrow-down:before { content: fa-content($fa-var-arrow-down); }
|
||||
.#{$fa-css-prefix}-arrow-from-bottom:before { content: fa-content($fa-var-arrow-from-bottom); }
|
||||
.#{$fa-css-prefix}-arrow-from-left:before { content: fa-content($fa-var-arrow-from-left); }
|
||||
.#{$fa-css-prefix}-arrow-from-right:before { content: fa-content($fa-var-arrow-from-right); }
|
||||
.#{$fa-css-prefix}-arrow-from-top:before { content: fa-content($fa-var-arrow-from-top); }
|
||||
.#{$fa-css-prefix}-arrow-left:before { content: fa-content($fa-var-arrow-left); }
|
||||
.#{$fa-css-prefix}-arrow-right:before { content: fa-content($fa-var-arrow-right); }
|
||||
.#{$fa-css-prefix}-arrow-square-down:before { content: fa-content($fa-var-arrow-square-down); }
|
||||
.#{$fa-css-prefix}-arrow-square-left:before { content: fa-content($fa-var-arrow-square-left); }
|
||||
.#{$fa-css-prefix}-arrow-square-right:before { content: fa-content($fa-var-arrow-square-right); }
|
||||
.#{$fa-css-prefix}-arrow-square-up:before { content: fa-content($fa-var-arrow-square-up); }
|
||||
.#{$fa-css-prefix}-arrow-to-bottom:before { content: fa-content($fa-var-arrow-to-bottom); }
|
||||
.#{$fa-css-prefix}-arrow-to-left:before { content: fa-content($fa-var-arrow-to-left); }
|
||||
.#{$fa-css-prefix}-arrow-to-right:before { content: fa-content($fa-var-arrow-to-right); }
|
||||
.#{$fa-css-prefix}-arrow-to-top:before { content: fa-content($fa-var-arrow-to-top); }
|
||||
.#{$fa-css-prefix}-arrow-up:before { content: fa-content($fa-var-arrow-up); }
|
||||
.#{$fa-css-prefix}-arrows:before { content: fa-content($fa-var-arrows); }
|
||||
.#{$fa-css-prefix}-arrows-alt:before { content: fa-content($fa-var-arrows-alt); }
|
||||
.#{$fa-css-prefix}-arrows-alt-h:before { content: fa-content($fa-var-arrows-alt-h); }
|
||||
.#{$fa-css-prefix}-arrows-alt-v:before { content: fa-content($fa-var-arrows-alt-v); }
|
||||
.#{$fa-css-prefix}-arrows-h:before { content: fa-content($fa-var-arrows-h); }
|
||||
.#{$fa-css-prefix}-arrows-v:before { content: fa-content($fa-var-arrows-v); }
|
||||
.#{$fa-css-prefix}-assistive-listening-systems:before { content: fa-content($fa-var-assistive-listening-systems); }
|
||||
.#{$fa-css-prefix}-asterisk:before { content: fa-content($fa-var-asterisk); }
|
||||
.#{$fa-css-prefix}-asymmetrik:before { content: fa-content($fa-var-asymmetrik); }
|
||||
.#{$fa-css-prefix}-at:before { content: fa-content($fa-var-at); }
|
||||
.#{$fa-css-prefix}-audible:before { content: fa-content($fa-var-audible); }
|
||||
.#{$fa-css-prefix}-audio-description:before { content: fa-content($fa-var-audio-description); }
|
||||
.#{$fa-css-prefix}-autoprefixer:before { content: fa-content($fa-var-autoprefixer); }
|
||||
.#{$fa-css-prefix}-avianex:before { content: fa-content($fa-var-avianex); }
|
||||
.#{$fa-css-prefix}-aviato:before { content: fa-content($fa-var-aviato); }
|
||||
.#{$fa-css-prefix}-aws:before { content: fa-content($fa-var-aws); }
|
||||
.#{$fa-css-prefix}-backward:before { content: fa-content($fa-var-backward); }
|
||||
.#{$fa-css-prefix}-badge:before { content: fa-content($fa-var-badge); }
|
||||
.#{$fa-css-prefix}-badge-check:before { content: fa-content($fa-var-badge-check); }
|
||||
.#{$fa-css-prefix}-balance-scale:before { content: fa-content($fa-var-balance-scale); }
|
||||
.#{$fa-css-prefix}-ban:before { content: fa-content($fa-var-ban); }
|
||||
.#{$fa-css-prefix}-bandcamp:before { content: fa-content($fa-var-bandcamp); }
|
||||
.#{$fa-css-prefix}-barcode:before { content: fa-content($fa-var-barcode); }
|
||||
.#{$fa-css-prefix}-bars:before { content: fa-content($fa-var-bars); }
|
||||
.#{$fa-css-prefix}-bath:before { content: fa-content($fa-var-bath); }
|
||||
.#{$fa-css-prefix}-battery-bolt:before { content: fa-content($fa-var-battery-bolt); }
|
||||
.#{$fa-css-prefix}-battery-empty:before { content: fa-content($fa-var-battery-empty); }
|
||||
.#{$fa-css-prefix}-battery-full:before { content: fa-content($fa-var-battery-full); }
|
||||
.#{$fa-css-prefix}-battery-half:before { content: fa-content($fa-var-battery-half); }
|
||||
.#{$fa-css-prefix}-battery-quarter:before { content: fa-content($fa-var-battery-quarter); }
|
||||
.#{$fa-css-prefix}-battery-slash:before { content: fa-content($fa-var-battery-slash); }
|
||||
.#{$fa-css-prefix}-battery-three-quarters:before { content: fa-content($fa-var-battery-three-quarters); }
|
||||
.#{$fa-css-prefix}-bed:before { content: fa-content($fa-var-bed); }
|
||||
.#{$fa-css-prefix}-beer:before { content: fa-content($fa-var-beer); }
|
||||
.#{$fa-css-prefix}-behance:before { content: fa-content($fa-var-behance); }
|
||||
.#{$fa-css-prefix}-behance-square:before { content: fa-content($fa-var-behance-square); }
|
||||
.#{$fa-css-prefix}-bell:before { content: fa-content($fa-var-bell); }
|
||||
.#{$fa-css-prefix}-bell-slash:before { content: fa-content($fa-var-bell-slash); }
|
||||
.#{$fa-css-prefix}-bicycle:before { content: fa-content($fa-var-bicycle); }
|
||||
.#{$fa-css-prefix}-bimobject:before { content: fa-content($fa-var-bimobject); }
|
||||
.#{$fa-css-prefix}-binoculars:before { content: fa-content($fa-var-binoculars); }
|
||||
.#{$fa-css-prefix}-birthday-cake:before { content: fa-content($fa-var-birthday-cake); }
|
||||
.#{$fa-css-prefix}-bitbucket:before { content: fa-content($fa-var-bitbucket); }
|
||||
.#{$fa-css-prefix}-bitcoin:before { content: fa-content($fa-var-bitcoin); }
|
||||
.#{$fa-css-prefix}-bity:before { content: fa-content($fa-var-bity); }
|
||||
.#{$fa-css-prefix}-black-tie:before { content: fa-content($fa-var-black-tie); }
|
||||
.#{$fa-css-prefix}-blackberry:before { content: fa-content($fa-var-blackberry); }
|
||||
.#{$fa-css-prefix}-blind:before { content: fa-content($fa-var-blind); }
|
||||
.#{$fa-css-prefix}-blogger:before { content: fa-content($fa-var-blogger); }
|
||||
.#{$fa-css-prefix}-blogger-b:before { content: fa-content($fa-var-blogger-b); }
|
||||
.#{$fa-css-prefix}-bluetooth:before { content: fa-content($fa-var-bluetooth); }
|
||||
.#{$fa-css-prefix}-bluetooth-b:before { content: fa-content($fa-var-bluetooth-b); }
|
||||
.#{$fa-css-prefix}-bold:before { content: fa-content($fa-var-bold); }
|
||||
.#{$fa-css-prefix}-bolt:before { content: fa-content($fa-var-bolt); }
|
||||
.#{$fa-css-prefix}-bomb:before { content: fa-content($fa-var-bomb); }
|
||||
.#{$fa-css-prefix}-book:before { content: fa-content($fa-var-book); }
|
||||
.#{$fa-css-prefix}-bookmark:before { content: fa-content($fa-var-bookmark); }
|
||||
.#{$fa-css-prefix}-braille:before { content: fa-content($fa-var-braille); }
|
||||
.#{$fa-css-prefix}-briefcase:before { content: fa-content($fa-var-briefcase); }
|
||||
.#{$fa-css-prefix}-browser:before { content: fa-content($fa-var-browser); }
|
||||
.#{$fa-css-prefix}-btc:before { content: fa-content($fa-var-btc); }
|
||||
.#{$fa-css-prefix}-bug:before { content: fa-content($fa-var-bug); }
|
||||
.#{$fa-css-prefix}-building:before { content: fa-content($fa-var-building); }
|
||||
.#{$fa-css-prefix}-bullhorn:before { content: fa-content($fa-var-bullhorn); }
|
||||
.#{$fa-css-prefix}-bullseye:before { content: fa-content($fa-var-bullseye); }
|
||||
.#{$fa-css-prefix}-buromobelexperte:before { content: fa-content($fa-var-buromobelexperte); }
|
||||
.#{$fa-css-prefix}-bus:before { content: fa-content($fa-var-bus); }
|
||||
.#{$fa-css-prefix}-buysellads:before { content: fa-content($fa-var-buysellads); }
|
||||
.#{$fa-css-prefix}-calculator:before { content: fa-content($fa-var-calculator); }
|
||||
.#{$fa-css-prefix}-calendar:before { content: fa-content($fa-var-calendar); }
|
||||
.#{$fa-css-prefix}-calendar-alt:before { content: fa-content($fa-var-calendar-alt); }
|
||||
.#{$fa-css-prefix}-calendar-check:before { content: fa-content($fa-var-calendar-check); }
|
||||
.#{$fa-css-prefix}-calendar-edit:before { content: fa-content($fa-var-calendar-edit); }
|
||||
.#{$fa-css-prefix}-calendar-exclamation:before { content: fa-content($fa-var-calendar-exclamation); }
|
||||
.#{$fa-css-prefix}-calendar-minus:before { content: fa-content($fa-var-calendar-minus); }
|
||||
.#{$fa-css-prefix}-calendar-plus:before { content: fa-content($fa-var-calendar-plus); }
|
||||
.#{$fa-css-prefix}-calendar-times:before { content: fa-content($fa-var-calendar-times); }
|
||||
.#{$fa-css-prefix}-camera:before { content: fa-content($fa-var-camera); }
|
||||
.#{$fa-css-prefix}-camera-alt:before { content: fa-content($fa-var-camera-alt); }
|
||||
.#{$fa-css-prefix}-camera-retro:before { content: fa-content($fa-var-camera-retro); }
|
||||
.#{$fa-css-prefix}-car:before { content: fa-content($fa-var-car); }
|
||||
.#{$fa-css-prefix}-caret-circle-down:before { content: fa-content($fa-var-caret-circle-down); }
|
||||
.#{$fa-css-prefix}-caret-circle-left:before { content: fa-content($fa-var-caret-circle-left); }
|
||||
.#{$fa-css-prefix}-caret-circle-right:before { content: fa-content($fa-var-caret-circle-right); }
|
||||
.#{$fa-css-prefix}-caret-circle-up:before { content: fa-content($fa-var-caret-circle-up); }
|
||||
.#{$fa-css-prefix}-caret-down:before { content: fa-content($fa-var-caret-down); }
|
||||
.#{$fa-css-prefix}-caret-left:before { content: fa-content($fa-var-caret-left); }
|
||||
.#{$fa-css-prefix}-caret-right:before { content: fa-content($fa-var-caret-right); }
|
||||
.#{$fa-css-prefix}-caret-square-down:before { content: fa-content($fa-var-caret-square-down); }
|
||||
.#{$fa-css-prefix}-caret-square-left:before { content: fa-content($fa-var-caret-square-left); }
|
||||
.#{$fa-css-prefix}-caret-square-right:before { content: fa-content($fa-var-caret-square-right); }
|
||||
.#{$fa-css-prefix}-caret-square-up:before { content: fa-content($fa-var-caret-square-up); }
|
||||
.#{$fa-css-prefix}-caret-up:before { content: fa-content($fa-var-caret-up); }
|
||||
.#{$fa-css-prefix}-cart-arrow-down:before { content: fa-content($fa-var-cart-arrow-down); }
|
||||
.#{$fa-css-prefix}-cart-plus:before { content: fa-content($fa-var-cart-plus); }
|
||||
.#{$fa-css-prefix}-cc-amazon-pay:before { content: fa-content($fa-var-cc-amazon-pay); }
|
||||
.#{$fa-css-prefix}-cc-amex:before { content: fa-content($fa-var-cc-amex); }
|
||||
.#{$fa-css-prefix}-cc-apple-pay:before { content: fa-content($fa-var-cc-apple-pay); }
|
||||
.#{$fa-css-prefix}-cc-diners-club:before { content: fa-content($fa-var-cc-diners-club); }
|
||||
.#{$fa-css-prefix}-cc-discover:before { content: fa-content($fa-var-cc-discover); }
|
||||
.#{$fa-css-prefix}-cc-jcb:before { content: fa-content($fa-var-cc-jcb); }
|
||||
.#{$fa-css-prefix}-cc-mastercard:before { content: fa-content($fa-var-cc-mastercard); }
|
||||
.#{$fa-css-prefix}-cc-paypal:before { content: fa-content($fa-var-cc-paypal); }
|
||||
.#{$fa-css-prefix}-cc-stripe:before { content: fa-content($fa-var-cc-stripe); }
|
||||
.#{$fa-css-prefix}-cc-visa:before { content: fa-content($fa-var-cc-visa); }
|
||||
.#{$fa-css-prefix}-centercode:before { content: fa-content($fa-var-centercode); }
|
||||
.#{$fa-css-prefix}-certificate:before { content: fa-content($fa-var-certificate); }
|
||||
.#{$fa-css-prefix}-chart-area:before { content: fa-content($fa-var-chart-area); }
|
||||
.#{$fa-css-prefix}-chart-bar:before { content: fa-content($fa-var-chart-bar); }
|
||||
.#{$fa-css-prefix}-chart-line:before { content: fa-content($fa-var-chart-line); }
|
||||
.#{$fa-css-prefix}-chart-pie:before { content: fa-content($fa-var-chart-pie); }
|
||||
.#{$fa-css-prefix}-check:before { content: fa-content($fa-var-check); }
|
||||
.#{$fa-css-prefix}-check-circle:before { content: fa-content($fa-var-check-circle); }
|
||||
.#{$fa-css-prefix}-check-square:before { content: fa-content($fa-var-check-square); }
|
||||
.#{$fa-css-prefix}-chevron-circle-down:before { content: fa-content($fa-var-chevron-circle-down); }
|
||||
.#{$fa-css-prefix}-chevron-circle-left:before { content: fa-content($fa-var-chevron-circle-left); }
|
||||
.#{$fa-css-prefix}-chevron-circle-right:before { content: fa-content($fa-var-chevron-circle-right); }
|
||||
.#{$fa-css-prefix}-chevron-circle-up:before { content: fa-content($fa-var-chevron-circle-up); }
|
||||
.#{$fa-css-prefix}-chevron-double-down:before { content: fa-content($fa-var-chevron-double-down); }
|
||||
.#{$fa-css-prefix}-chevron-double-left:before { content: fa-content($fa-var-chevron-double-left); }
|
||||
.#{$fa-css-prefix}-chevron-double-right:before { content: fa-content($fa-var-chevron-double-right); }
|
||||
.#{$fa-css-prefix}-chevron-double-up:before { content: fa-content($fa-var-chevron-double-up); }
|
||||
.#{$fa-css-prefix}-chevron-down:before { content: fa-content($fa-var-chevron-down); }
|
||||
.#{$fa-css-prefix}-chevron-left:before { content: fa-content($fa-var-chevron-left); }
|
||||
.#{$fa-css-prefix}-chevron-right:before { content: fa-content($fa-var-chevron-right); }
|
||||
.#{$fa-css-prefix}-chevron-square-down:before { content: fa-content($fa-var-chevron-square-down); }
|
||||
.#{$fa-css-prefix}-chevron-square-left:before { content: fa-content($fa-var-chevron-square-left); }
|
||||
.#{$fa-css-prefix}-chevron-square-right:before { content: fa-content($fa-var-chevron-square-right); }
|
||||
.#{$fa-css-prefix}-chevron-square-up:before { content: fa-content($fa-var-chevron-square-up); }
|
||||
.#{$fa-css-prefix}-chevron-up:before { content: fa-content($fa-var-chevron-up); }
|
||||
.#{$fa-css-prefix}-child:before { content: fa-content($fa-var-child); }
|
||||
.#{$fa-css-prefix}-chrome:before { content: fa-content($fa-var-chrome); }
|
||||
.#{$fa-css-prefix}-circle:before { content: fa-content($fa-var-circle); }
|
||||
.#{$fa-css-prefix}-circle-notch:before { content: fa-content($fa-var-circle-notch); }
|
||||
.#{$fa-css-prefix}-clipboard:before { content: fa-content($fa-var-clipboard); }
|
||||
.#{$fa-css-prefix}-clock:before { content: fa-content($fa-var-clock); }
|
||||
.#{$fa-css-prefix}-clone:before { content: fa-content($fa-var-clone); }
|
||||
.#{$fa-css-prefix}-closed-captioning:before { content: fa-content($fa-var-closed-captioning); }
|
||||
.#{$fa-css-prefix}-cloud:before { content: fa-content($fa-var-cloud); }
|
||||
.#{$fa-css-prefix}-cloud-download:before { content: fa-content($fa-var-cloud-download); }
|
||||
.#{$fa-css-prefix}-cloud-download-alt:before { content: fa-content($fa-var-cloud-download-alt); }
|
||||
.#{$fa-css-prefix}-cloud-upload:before { content: fa-content($fa-var-cloud-upload); }
|
||||
.#{$fa-css-prefix}-cloud-upload-alt:before { content: fa-content($fa-var-cloud-upload-alt); }
|
||||
.#{$fa-css-prefix}-cloudscale:before { content: fa-content($fa-var-cloudscale); }
|
||||
.#{$fa-css-prefix}-cloudsmith:before { content: fa-content($fa-var-cloudsmith); }
|
||||
.#{$fa-css-prefix}-cloudversify:before { content: fa-content($fa-var-cloudversify); }
|
||||
.#{$fa-css-prefix}-club:before { content: fa-content($fa-var-club); }
|
||||
.#{$fa-css-prefix}-code:before { content: fa-content($fa-var-code); }
|
||||
.#{$fa-css-prefix}-code-branch:before { content: fa-content($fa-var-code-branch); }
|
||||
.#{$fa-css-prefix}-code-commit:before { content: fa-content($fa-var-code-commit); }
|
||||
.#{$fa-css-prefix}-code-merge:before { content: fa-content($fa-var-code-merge); }
|
||||
.#{$fa-css-prefix}-codepen:before { content: fa-content($fa-var-codepen); }
|
||||
.#{$fa-css-prefix}-codiepie:before { content: fa-content($fa-var-codiepie); }
|
||||
.#{$fa-css-prefix}-coffee:before { content: fa-content($fa-var-coffee); }
|
||||
.#{$fa-css-prefix}-cog:before { content: fa-content($fa-var-cog); }
|
||||
.#{$fa-css-prefix}-cogs:before { content: fa-content($fa-var-cogs); }
|
||||
.#{$fa-css-prefix}-columns:before { content: fa-content($fa-var-columns); }
|
||||
.#{$fa-css-prefix}-comment:before { content: fa-content($fa-var-comment); }
|
||||
.#{$fa-css-prefix}-comment-alt:before { content: fa-content($fa-var-comment-alt); }
|
||||
.#{$fa-css-prefix}-comments:before { content: fa-content($fa-var-comments); }
|
||||
.#{$fa-css-prefix}-compass:before { content: fa-content($fa-var-compass); }
|
||||
.#{$fa-css-prefix}-compress:before { content: fa-content($fa-var-compress); }
|
||||
.#{$fa-css-prefix}-compress-alt:before { content: fa-content($fa-var-compress-alt); }
|
||||
.#{$fa-css-prefix}-compress-wide:before { content: fa-content($fa-var-compress-wide); }
|
||||
.#{$fa-css-prefix}-connectdevelop:before { content: fa-content($fa-var-connectdevelop); }
|
||||
.#{$fa-css-prefix}-contao:before { content: fa-content($fa-var-contao); }
|
||||
.#{$fa-css-prefix}-copy:before { content: fa-content($fa-var-copy); }
|
||||
.#{$fa-css-prefix}-copyright:before { content: fa-content($fa-var-copyright); }
|
||||
.#{$fa-css-prefix}-cpanel:before { content: fa-content($fa-var-cpanel); }
|
||||
.#{$fa-css-prefix}-creative-commons:before { content: fa-content($fa-var-creative-commons); }
|
||||
.#{$fa-css-prefix}-credit-card:before { content: fa-content($fa-var-credit-card); }
|
||||
.#{$fa-css-prefix}-credit-card-blank:before { content: fa-content($fa-var-credit-card-blank); }
|
||||
.#{$fa-css-prefix}-credit-card-front:before { content: fa-content($fa-var-credit-card-front); }
|
||||
.#{$fa-css-prefix}-crop:before { content: fa-content($fa-var-crop); }
|
||||
.#{$fa-css-prefix}-crosshairs:before { content: fa-content($fa-var-crosshairs); }
|
||||
.#{$fa-css-prefix}-css3:before { content: fa-content($fa-var-css3); }
|
||||
.#{$fa-css-prefix}-css3-alt:before { content: fa-content($fa-var-css3-alt); }
|
||||
.#{$fa-css-prefix}-cube:before { content: fa-content($fa-var-cube); }
|
||||
.#{$fa-css-prefix}-cubes:before { content: fa-content($fa-var-cubes); }
|
||||
.#{$fa-css-prefix}-cut:before { content: fa-content($fa-var-cut); }
|
||||
.#{$fa-css-prefix}-cuttlefish:before { content: fa-content($fa-var-cuttlefish); }
|
||||
.#{$fa-css-prefix}-d-and-d:before { content: fa-content($fa-var-d-and-d); }
|
||||
.#{$fa-css-prefix}-dashcube:before { content: fa-content($fa-var-dashcube); }
|
||||
.#{$fa-css-prefix}-database:before { content: fa-content($fa-var-database); }
|
||||
.#{$fa-css-prefix}-deaf:before { content: fa-content($fa-var-deaf); }
|
||||
.#{$fa-css-prefix}-delicious:before { content: fa-content($fa-var-delicious); }
|
||||
.#{$fa-css-prefix}-deploydog:before { content: fa-content($fa-var-deploydog); }
|
||||
.#{$fa-css-prefix}-deskpro:before { content: fa-content($fa-var-deskpro); }
|
||||
.#{$fa-css-prefix}-desktop:before { content: fa-content($fa-var-desktop); }
|
||||
.#{$fa-css-prefix}-desktop-alt:before { content: fa-content($fa-var-desktop-alt); }
|
||||
.#{$fa-css-prefix}-deviantart:before { content: fa-content($fa-var-deviantart); }
|
||||
.#{$fa-css-prefix}-diamond:before { content: fa-content($fa-var-diamond); }
|
||||
.#{$fa-css-prefix}-digg:before { content: fa-content($fa-var-digg); }
|
||||
.#{$fa-css-prefix}-digital-ocean:before { content: fa-content($fa-var-digital-ocean); }
|
||||
.#{$fa-css-prefix}-discord:before { content: fa-content($fa-var-discord); }
|
||||
.#{$fa-css-prefix}-discourse:before { content: fa-content($fa-var-discourse); }
|
||||
.#{$fa-css-prefix}-dochub:before { content: fa-content($fa-var-dochub); }
|
||||
.#{$fa-css-prefix}-docker:before { content: fa-content($fa-var-docker); }
|
||||
.#{$fa-css-prefix}-dollar-sign:before { content: fa-content($fa-var-dollar-sign); }
|
||||
.#{$fa-css-prefix}-dot-circle:before { content: fa-content($fa-var-dot-circle); }
|
||||
.#{$fa-css-prefix}-download:before { content: fa-content($fa-var-download); }
|
||||
.#{$fa-css-prefix}-draft2digital:before { content: fa-content($fa-var-draft2digital); }
|
||||
.#{$fa-css-prefix}-dribbble:before { content: fa-content($fa-var-dribbble); }
|
||||
.#{$fa-css-prefix}-dribbble-square:before { content: fa-content($fa-var-dribbble-square); }
|
||||
.#{$fa-css-prefix}-dropbox:before { content: fa-content($fa-var-dropbox); }
|
||||
.#{$fa-css-prefix}-drupal:before { content: fa-content($fa-var-drupal); }
|
||||
.#{$fa-css-prefix}-dyalog:before { content: fa-content($fa-var-dyalog); }
|
||||
.#{$fa-css-prefix}-earlybirds:before { content: fa-content($fa-var-earlybirds); }
|
||||
.#{$fa-css-prefix}-edge:before { content: fa-content($fa-var-edge); }
|
||||
.#{$fa-css-prefix}-edit:before { content: fa-content($fa-var-edit); }
|
||||
.#{$fa-css-prefix}-eject:before { content: fa-content($fa-var-eject); }
|
||||
.#{$fa-css-prefix}-ellipsis-h:before { content: fa-content($fa-var-ellipsis-h); }
|
||||
.#{$fa-css-prefix}-ellipsis-h-alt:before { content: fa-content($fa-var-ellipsis-h-alt); }
|
||||
.#{$fa-css-prefix}-ellipsis-v:before { content: fa-content($fa-var-ellipsis-v); }
|
||||
.#{$fa-css-prefix}-ellipsis-v-alt:before { content: fa-content($fa-var-ellipsis-v-alt); }
|
||||
.#{$fa-css-prefix}-ember:before { content: fa-content($fa-var-ember); }
|
||||
.#{$fa-css-prefix}-empire:before { content: fa-content($fa-var-empire); }
|
||||
.#{$fa-css-prefix}-envelope:before { content: fa-content($fa-var-envelope); }
|
||||
.#{$fa-css-prefix}-envelope-open:before { content: fa-content($fa-var-envelope-open); }
|
||||
.#{$fa-css-prefix}-envelope-square:before { content: fa-content($fa-var-envelope-square); }
|
||||
.#{$fa-css-prefix}-envira:before { content: fa-content($fa-var-envira); }
|
||||
.#{$fa-css-prefix}-eraser:before { content: fa-content($fa-var-eraser); }
|
||||
.#{$fa-css-prefix}-erlang:before { content: fa-content($fa-var-erlang); }
|
||||
.#{$fa-css-prefix}-ethereum:before { content: fa-content($fa-var-ethereum); }
|
||||
.#{$fa-css-prefix}-etsy:before { content: fa-content($fa-var-etsy); }
|
||||
.#{$fa-css-prefix}-euro-sign:before { content: fa-content($fa-var-euro-sign); }
|
||||
.#{$fa-css-prefix}-exchange:before { content: fa-content($fa-var-exchange); }
|
||||
.#{$fa-css-prefix}-exchange-alt:before { content: fa-content($fa-var-exchange-alt); }
|
||||
.#{$fa-css-prefix}-exclamation:before { content: fa-content($fa-var-exclamation); }
|
||||
.#{$fa-css-prefix}-exclamation-circle:before { content: fa-content($fa-var-exclamation-circle); }
|
||||
.#{$fa-css-prefix}-exclamation-square:before { content: fa-content($fa-var-exclamation-square); }
|
||||
.#{$fa-css-prefix}-exclamation-triangle:before { content: fa-content($fa-var-exclamation-triangle); }
|
||||
.#{$fa-css-prefix}-expand:before { content: fa-content($fa-var-expand); }
|
||||
.#{$fa-css-prefix}-expand-alt:before { content: fa-content($fa-var-expand-alt); }
|
||||
.#{$fa-css-prefix}-expand-arrows:before { content: fa-content($fa-var-expand-arrows); }
|
||||
.#{$fa-css-prefix}-expand-arrows-alt:before { content: fa-content($fa-var-expand-arrows-alt); }
|
||||
.#{$fa-css-prefix}-expand-wide:before { content: fa-content($fa-var-expand-wide); }
|
||||
.#{$fa-css-prefix}-expeditedssl:before { content: fa-content($fa-var-expeditedssl); }
|
||||
.#{$fa-css-prefix}-external-link:before { content: fa-content($fa-var-external-link); }
|
||||
.#{$fa-css-prefix}-external-link-alt:before { content: fa-content($fa-var-external-link-alt); }
|
||||
.#{$fa-css-prefix}-external-link-square:before { content: fa-content($fa-var-external-link-square); }
|
||||
.#{$fa-css-prefix}-external-link-square-alt:before { content: fa-content($fa-var-external-link-square-alt); }
|
||||
.#{$fa-css-prefix}-eye:before { content: fa-content($fa-var-eye); }
|
||||
.#{$fa-css-prefix}-eye-dropper:before { content: fa-content($fa-var-eye-dropper); }
|
||||
.#{$fa-css-prefix}-eye-slash:before { content: fa-content($fa-var-eye-slash); }
|
||||
.#{$fa-css-prefix}-facebook:before { content: fa-content($fa-var-facebook); }
|
||||
.#{$fa-css-prefix}-facebook-f:before { content: fa-content($fa-var-facebook-f); }
|
||||
.#{$fa-css-prefix}-facebook-messenger:before { content: fa-content($fa-var-facebook-messenger); }
|
||||
.#{$fa-css-prefix}-facebook-square:before { content: fa-content($fa-var-facebook-square); }
|
||||
.#{$fa-css-prefix}-fast-backward:before { content: fa-content($fa-var-fast-backward); }
|
||||
.#{$fa-css-prefix}-fast-forward:before { content: fa-content($fa-var-fast-forward); }
|
||||
.#{$fa-css-prefix}-fax:before { content: fa-content($fa-var-fax); }
|
||||
.#{$fa-css-prefix}-female:before { content: fa-content($fa-var-female); }
|
||||
.#{$fa-css-prefix}-fighter-jet:before { content: fa-content($fa-var-fighter-jet); }
|
||||
.#{$fa-css-prefix}-file:before { content: fa-content($fa-var-file); }
|
||||
.#{$fa-css-prefix}-file-alt:before { content: fa-content($fa-var-file-alt); }
|
||||
.#{$fa-css-prefix}-file-archive:before { content: fa-content($fa-var-file-archive); }
|
||||
.#{$fa-css-prefix}-file-audio:before { content: fa-content($fa-var-file-audio); }
|
||||
.#{$fa-css-prefix}-file-check:before { content: fa-content($fa-var-file-check); }
|
||||
.#{$fa-css-prefix}-file-code:before { content: fa-content($fa-var-file-code); }
|
||||
.#{$fa-css-prefix}-file-edit:before { content: fa-content($fa-var-file-edit); }
|
||||
.#{$fa-css-prefix}-file-excel:before { content: fa-content($fa-var-file-excel); }
|
||||
.#{$fa-css-prefix}-file-exclamation:before { content: fa-content($fa-var-file-exclamation); }
|
||||
.#{$fa-css-prefix}-file-image:before { content: fa-content($fa-var-file-image); }
|
||||
.#{$fa-css-prefix}-file-minus:before { content: fa-content($fa-var-file-minus); }
|
||||
.#{$fa-css-prefix}-file-pdf:before { content: fa-content($fa-var-file-pdf); }
|
||||
.#{$fa-css-prefix}-file-plus:before { content: fa-content($fa-var-file-plus); }
|
||||
.#{$fa-css-prefix}-file-powerpoint:before { content: fa-content($fa-var-file-powerpoint); }
|
||||
.#{$fa-css-prefix}-file-times:before { content: fa-content($fa-var-file-times); }
|
||||
.#{$fa-css-prefix}-file-video:before { content: fa-content($fa-var-file-video); }
|
||||
.#{$fa-css-prefix}-file-word:before { content: fa-content($fa-var-file-word); }
|
||||
.#{$fa-css-prefix}-film:before { content: fa-content($fa-var-film); }
|
||||
.#{$fa-css-prefix}-film-alt:before { content: fa-content($fa-var-film-alt); }
|
||||
.#{$fa-css-prefix}-filter:before { content: fa-content($fa-var-filter); }
|
||||
.#{$fa-css-prefix}-fire:before { content: fa-content($fa-var-fire); }
|
||||
.#{$fa-css-prefix}-fire-extinguisher:before { content: fa-content($fa-var-fire-extinguisher); }
|
||||
.#{$fa-css-prefix}-firefox:before { content: fa-content($fa-var-firefox); }
|
||||
.#{$fa-css-prefix}-first-order:before { content: fa-content($fa-var-first-order); }
|
||||
.#{$fa-css-prefix}-firstdraft:before { content: fa-content($fa-var-firstdraft); }
|
||||
.#{$fa-css-prefix}-flag:before { content: fa-content($fa-var-flag); }
|
||||
.#{$fa-css-prefix}-flag-checkered:before { content: fa-content($fa-var-flag-checkered); }
|
||||
.#{$fa-css-prefix}-flask:before { content: fa-content($fa-var-flask); }
|
||||
.#{$fa-css-prefix}-flickr:before { content: fa-content($fa-var-flickr); }
|
||||
.#{$fa-css-prefix}-fly:before { content: fa-content($fa-var-fly); }
|
||||
.#{$fa-css-prefix}-folder:before { content: fa-content($fa-var-folder); }
|
||||
.#{$fa-css-prefix}-folder-open:before { content: fa-content($fa-var-folder-open); }
|
||||
.#{$fa-css-prefix}-font:before { content: fa-content($fa-var-font); }
|
||||
.#{$fa-css-prefix}-font-awesome:before { content: fa-content($fa-var-font-awesome); }
|
||||
.#{$fa-css-prefix}-font-awesome-alt:before { content: fa-content($fa-var-font-awesome-alt); }
|
||||
.#{$fa-css-prefix}-font-awesome-flag:before { content: fa-content($fa-var-font-awesome-flag); }
|
||||
.#{$fa-css-prefix}-fonticons:before { content: fa-content($fa-var-fonticons); }
|
||||
.#{$fa-css-prefix}-fonticons-fi:before { content: fa-content($fa-var-fonticons-fi); }
|
||||
.#{$fa-css-prefix}-fort-awesome:before { content: fa-content($fa-var-fort-awesome); }
|
||||
.#{$fa-css-prefix}-fort-awesome-alt:before { content: fa-content($fa-var-fort-awesome-alt); }
|
||||
.#{$fa-css-prefix}-forumbee:before { content: fa-content($fa-var-forumbee); }
|
||||
.#{$fa-css-prefix}-forward:before { content: fa-content($fa-var-forward); }
|
||||
.#{$fa-css-prefix}-foursquare:before { content: fa-content($fa-var-foursquare); }
|
||||
.#{$fa-css-prefix}-free-code-camp:before { content: fa-content($fa-var-free-code-camp); }
|
||||
.#{$fa-css-prefix}-freebsd:before { content: fa-content($fa-var-freebsd); }
|
||||
.#{$fa-css-prefix}-frown:before { content: fa-content($fa-var-frown); }
|
||||
.#{$fa-css-prefix}-futbol:before { content: fa-content($fa-var-futbol); }
|
||||
.#{$fa-css-prefix}-gamepad:before { content: fa-content($fa-var-gamepad); }
|
||||
.#{$fa-css-prefix}-gavel:before { content: fa-content($fa-var-gavel); }
|
||||
.#{$fa-css-prefix}-gem:before { content: fa-content($fa-var-gem); }
|
||||
.#{$fa-css-prefix}-genderless:before { content: fa-content($fa-var-genderless); }
|
||||
.#{$fa-css-prefix}-get-pocket:before { content: fa-content($fa-var-get-pocket); }
|
||||
.#{$fa-css-prefix}-gg:before { content: fa-content($fa-var-gg); }
|
||||
.#{$fa-css-prefix}-gg-circle:before { content: fa-content($fa-var-gg-circle); }
|
||||
.#{$fa-css-prefix}-gift:before { content: fa-content($fa-var-gift); }
|
||||
.#{$fa-css-prefix}-git:before { content: fa-content($fa-var-git); }
|
||||
.#{$fa-css-prefix}-git-square:before { content: fa-content($fa-var-git-square); }
|
||||
.#{$fa-css-prefix}-github:before { content: fa-content($fa-var-github); }
|
||||
.#{$fa-css-prefix}-github-alt:before { content: fa-content($fa-var-github-alt); }
|
||||
.#{$fa-css-prefix}-github-square:before { content: fa-content($fa-var-github-square); }
|
||||
.#{$fa-css-prefix}-gitkraken:before { content: fa-content($fa-var-gitkraken); }
|
||||
.#{$fa-css-prefix}-gitlab:before { content: fa-content($fa-var-gitlab); }
|
||||
.#{$fa-css-prefix}-gitter:before { content: fa-content($fa-var-gitter); }
|
||||
.#{$fa-css-prefix}-glass-martini:before { content: fa-content($fa-var-glass-martini); }
|
||||
.#{$fa-css-prefix}-glide:before { content: fa-content($fa-var-glide); }
|
||||
.#{$fa-css-prefix}-glide-g:before { content: fa-content($fa-var-glide-g); }
|
||||
.#{$fa-css-prefix}-globe:before { content: fa-content($fa-var-globe); }
|
||||
.#{$fa-css-prefix}-gofore:before { content: fa-content($fa-var-gofore); }
|
||||
.#{$fa-css-prefix}-goodreads:before { content: fa-content($fa-var-goodreads); }
|
||||
.#{$fa-css-prefix}-goodreads-g:before { content: fa-content($fa-var-goodreads-g); }
|
||||
.#{$fa-css-prefix}-google:before { content: fa-content($fa-var-google); }
|
||||
.#{$fa-css-prefix}-google-drive:before { content: fa-content($fa-var-google-drive); }
|
||||
.#{$fa-css-prefix}-google-play:before { content: fa-content($fa-var-google-play); }
|
||||
.#{$fa-css-prefix}-google-plus:before { content: fa-content($fa-var-google-plus); }
|
||||
.#{$fa-css-prefix}-google-plus-g:before { content: fa-content($fa-var-google-plus-g); }
|
||||
.#{$fa-css-prefix}-google-plus-square:before { content: fa-content($fa-var-google-plus-square); }
|
||||
.#{$fa-css-prefix}-google-wallet:before { content: fa-content($fa-var-google-wallet); }
|
||||
.#{$fa-css-prefix}-graduation-cap:before { content: fa-content($fa-var-graduation-cap); }
|
||||
.#{$fa-css-prefix}-gratipay:before { content: fa-content($fa-var-gratipay); }
|
||||
.#{$fa-css-prefix}-grav:before { content: fa-content($fa-var-grav); }
|
||||
.#{$fa-css-prefix}-gripfire:before { content: fa-content($fa-var-gripfire); }
|
||||
.#{$fa-css-prefix}-grunt:before { content: fa-content($fa-var-grunt); }
|
||||
.#{$fa-css-prefix}-gulp:before { content: fa-content($fa-var-gulp); }
|
||||
.#{$fa-css-prefix}-h-square:before { content: fa-content($fa-var-h-square); }
|
||||
.#{$fa-css-prefix}-h1:before { content: fa-content($fa-var-h1); }
|
||||
.#{$fa-css-prefix}-h2:before { content: fa-content($fa-var-h2); }
|
||||
.#{$fa-css-prefix}-h3:before { content: fa-content($fa-var-h3); }
|
||||
.#{$fa-css-prefix}-hacker-news:before { content: fa-content($fa-var-hacker-news); }
|
||||
.#{$fa-css-prefix}-hacker-news-square:before { content: fa-content($fa-var-hacker-news-square); }
|
||||
.#{$fa-css-prefix}-hand-lizard:before { content: fa-content($fa-var-hand-lizard); }
|
||||
.#{$fa-css-prefix}-hand-paper:before { content: fa-content($fa-var-hand-paper); }
|
||||
.#{$fa-css-prefix}-hand-peace:before { content: fa-content($fa-var-hand-peace); }
|
||||
.#{$fa-css-prefix}-hand-point-down:before { content: fa-content($fa-var-hand-point-down); }
|
||||
.#{$fa-css-prefix}-hand-point-left:before { content: fa-content($fa-var-hand-point-left); }
|
||||
.#{$fa-css-prefix}-hand-point-right:before { content: fa-content($fa-var-hand-point-right); }
|
||||
.#{$fa-css-prefix}-hand-point-up:before { content: fa-content($fa-var-hand-point-up); }
|
||||
.#{$fa-css-prefix}-hand-pointer:before { content: fa-content($fa-var-hand-pointer); }
|
||||
.#{$fa-css-prefix}-hand-rock:before { content: fa-content($fa-var-hand-rock); }
|
||||
.#{$fa-css-prefix}-hand-scissors:before { content: fa-content($fa-var-hand-scissors); }
|
||||
.#{$fa-css-prefix}-hand-spock:before { content: fa-content($fa-var-hand-spock); }
|
||||
.#{$fa-css-prefix}-handshake:before { content: fa-content($fa-var-handshake); }
|
||||
.#{$fa-css-prefix}-hashtag:before { content: fa-content($fa-var-hashtag); }
|
||||
.#{$fa-css-prefix}-hdd:before { content: fa-content($fa-var-hdd); }
|
||||
.#{$fa-css-prefix}-heading:before { content: fa-content($fa-var-heading); }
|
||||
.#{$fa-css-prefix}-headphones:before { content: fa-content($fa-var-headphones); }
|
||||
.#{$fa-css-prefix}-heart:before { content: fa-content($fa-var-heart); }
|
||||
.#{$fa-css-prefix}-heartbeat:before { content: fa-content($fa-var-heartbeat); }
|
||||
.#{$fa-css-prefix}-hexagon:before { content: fa-content($fa-var-hexagon); }
|
||||
.#{$fa-css-prefix}-hire-a-helper:before { content: fa-content($fa-var-hire-a-helper); }
|
||||
.#{$fa-css-prefix}-history:before { content: fa-content($fa-var-history); }
|
||||
.#{$fa-css-prefix}-home:before { content: fa-content($fa-var-home); }
|
||||
.#{$fa-css-prefix}-hooli:before { content: fa-content($fa-var-hooli); }
|
||||
.#{$fa-css-prefix}-hospital:before { content: fa-content($fa-var-hospital); }
|
||||
.#{$fa-css-prefix}-hotjar:before { content: fa-content($fa-var-hotjar); }
|
||||
.#{$fa-css-prefix}-hourglass:before { content: fa-content($fa-var-hourglass); }
|
||||
.#{$fa-css-prefix}-hourglass-end:before { content: fa-content($fa-var-hourglass-end); }
|
||||
.#{$fa-css-prefix}-hourglass-half:before { content: fa-content($fa-var-hourglass-half); }
|
||||
.#{$fa-css-prefix}-hourglass-start:before { content: fa-content($fa-var-hourglass-start); }
|
||||
.#{$fa-css-prefix}-houzz:before { content: fa-content($fa-var-houzz); }
|
||||
.#{$fa-css-prefix}-html5:before { content: fa-content($fa-var-html5); }
|
||||
.#{$fa-css-prefix}-hubspot:before { content: fa-content($fa-var-hubspot); }
|
||||
.#{$fa-css-prefix}-i-cursor:before { content: fa-content($fa-var-i-cursor); }
|
||||
.#{$fa-css-prefix}-id-badge:before { content: fa-content($fa-var-id-badge); }
|
||||
.#{$fa-css-prefix}-id-card:before { content: fa-content($fa-var-id-card); }
|
||||
.#{$fa-css-prefix}-image:before { content: fa-content($fa-var-image); }
|
||||
.#{$fa-css-prefix}-images:before { content: fa-content($fa-var-images); }
|
||||
.#{$fa-css-prefix}-imdb:before { content: fa-content($fa-var-imdb); }
|
||||
.#{$fa-css-prefix}-inbox:before { content: fa-content($fa-var-inbox); }
|
||||
.#{$fa-css-prefix}-inbox-in:before { content: fa-content($fa-var-inbox-in); }
|
||||
.#{$fa-css-prefix}-inbox-out:before { content: fa-content($fa-var-inbox-out); }
|
||||
.#{$fa-css-prefix}-indent:before { content: fa-content($fa-var-indent); }
|
||||
.#{$fa-css-prefix}-industry:before { content: fa-content($fa-var-industry); }
|
||||
.#{$fa-css-prefix}-industry-alt:before { content: fa-content($fa-var-industry-alt); }
|
||||
.#{$fa-css-prefix}-info:before { content: fa-content($fa-var-info); }
|
||||
.#{$fa-css-prefix}-info-circle:before { content: fa-content($fa-var-info-circle); }
|
||||
.#{$fa-css-prefix}-info-square:before { content: fa-content($fa-var-info-square); }
|
||||
.#{$fa-css-prefix}-instagram:before { content: fa-content($fa-var-instagram); }
|
||||
.#{$fa-css-prefix}-internet-explorer:before { content: fa-content($fa-var-internet-explorer); }
|
||||
.#{$fa-css-prefix}-ioxhost:before { content: fa-content($fa-var-ioxhost); }
|
||||
.#{$fa-css-prefix}-italic:before { content: fa-content($fa-var-italic); }
|
||||
.#{$fa-css-prefix}-itunes:before { content: fa-content($fa-var-itunes); }
|
||||
.#{$fa-css-prefix}-itunes-note:before { content: fa-content($fa-var-itunes-note); }
|
||||
.#{$fa-css-prefix}-jack-o-lantern:before { content: fa-content($fa-var-jack-o-lantern); }
|
||||
.#{$fa-css-prefix}-jenkins:before { content: fa-content($fa-var-jenkins); }
|
||||
.#{$fa-css-prefix}-joget:before { content: fa-content($fa-var-joget); }
|
||||
.#{$fa-css-prefix}-joomla:before { content: fa-content($fa-var-joomla); }
|
||||
.#{$fa-css-prefix}-js:before { content: fa-content($fa-var-js); }
|
||||
.#{$fa-css-prefix}-js-square:before { content: fa-content($fa-var-js-square); }
|
||||
.#{$fa-css-prefix}-jsfiddle:before { content: fa-content($fa-var-jsfiddle); }
|
||||
.#{$fa-css-prefix}-key:before { content: fa-content($fa-var-key); }
|
||||
.#{$fa-css-prefix}-keyboard:before { content: fa-content($fa-var-keyboard); }
|
||||
.#{$fa-css-prefix}-keycdn:before { content: fa-content($fa-var-keycdn); }
|
||||
.#{$fa-css-prefix}-kickstarter:before { content: fa-content($fa-var-kickstarter); }
|
||||
.#{$fa-css-prefix}-kickstarter-k:before { content: fa-content($fa-var-kickstarter-k); }
|
||||
.#{$fa-css-prefix}-korvue:before { content: fa-content($fa-var-korvue); }
|
||||
.#{$fa-css-prefix}-language:before { content: fa-content($fa-var-language); }
|
||||
.#{$fa-css-prefix}-laptop:before { content: fa-content($fa-var-laptop); }
|
||||
.#{$fa-css-prefix}-laravel:before { content: fa-content($fa-var-laravel); }
|
||||
.#{$fa-css-prefix}-lastfm:before { content: fa-content($fa-var-lastfm); }
|
||||
.#{$fa-css-prefix}-lastfm-square:before { content: fa-content($fa-var-lastfm-square); }
|
||||
.#{$fa-css-prefix}-leaf:before { content: fa-content($fa-var-leaf); }
|
||||
.#{$fa-css-prefix}-leanpub:before { content: fa-content($fa-var-leanpub); }
|
||||
.#{$fa-css-prefix}-lemon:before { content: fa-content($fa-var-lemon); }
|
||||
.#{$fa-css-prefix}-less:before { content: fa-content($fa-var-less); }
|
||||
.#{$fa-css-prefix}-level-down:before { content: fa-content($fa-var-level-down); }
|
||||
.#{$fa-css-prefix}-level-down-alt:before { content: fa-content($fa-var-level-down-alt); }
|
||||
.#{$fa-css-prefix}-level-up:before { content: fa-content($fa-var-level-up); }
|
||||
.#{$fa-css-prefix}-level-up-alt:before { content: fa-content($fa-var-level-up-alt); }
|
||||
.#{$fa-css-prefix}-life-ring:before { content: fa-content($fa-var-life-ring); }
|
||||
.#{$fa-css-prefix}-lightbulb:before { content: fa-content($fa-var-lightbulb); }
|
||||
.#{$fa-css-prefix}-line:before { content: fa-content($fa-var-line); }
|
||||
.#{$fa-css-prefix}-link:before { content: fa-content($fa-var-link); }
|
||||
.#{$fa-css-prefix}-linkedin:before { content: fa-content($fa-var-linkedin); }
|
||||
.#{$fa-css-prefix}-linkedin-in:before { content: fa-content($fa-var-linkedin-in); }
|
||||
.#{$fa-css-prefix}-linode:before { content: fa-content($fa-var-linode); }
|
||||
.#{$fa-css-prefix}-linux:before { content: fa-content($fa-var-linux); }
|
||||
.#{$fa-css-prefix}-lira-sign:before { content: fa-content($fa-var-lira-sign); }
|
||||
.#{$fa-css-prefix}-list:before { content: fa-content($fa-var-list); }
|
||||
.#{$fa-css-prefix}-list-alt:before { content: fa-content($fa-var-list-alt); }
|
||||
.#{$fa-css-prefix}-list-ol:before { content: fa-content($fa-var-list-ol); }
|
||||
.#{$fa-css-prefix}-list-ul:before { content: fa-content($fa-var-list-ul); }
|
||||
.#{$fa-css-prefix}-location-arrow:before { content: fa-content($fa-var-location-arrow); }
|
||||
.#{$fa-css-prefix}-lock:before { content: fa-content($fa-var-lock); }
|
||||
.#{$fa-css-prefix}-lock-alt:before { content: fa-content($fa-var-lock-alt); }
|
||||
.#{$fa-css-prefix}-lock-open:before { content: fa-content($fa-var-lock-open); }
|
||||
.#{$fa-css-prefix}-lock-open-alt:before { content: fa-content($fa-var-lock-open-alt); }
|
||||
.#{$fa-css-prefix}-long-arrow-alt-down:before { content: fa-content($fa-var-long-arrow-alt-down); }
|
||||
.#{$fa-css-prefix}-long-arrow-alt-left:before { content: fa-content($fa-var-long-arrow-alt-left); }
|
||||
.#{$fa-css-prefix}-long-arrow-alt-right:before { content: fa-content($fa-var-long-arrow-alt-right); }
|
||||
.#{$fa-css-prefix}-long-arrow-alt-up:before { content: fa-content($fa-var-long-arrow-alt-up); }
|
||||
.#{$fa-css-prefix}-long-arrow-down:before { content: fa-content($fa-var-long-arrow-down); }
|
||||
.#{$fa-css-prefix}-long-arrow-left:before { content: fa-content($fa-var-long-arrow-left); }
|
||||
.#{$fa-css-prefix}-long-arrow-right:before { content: fa-content($fa-var-long-arrow-right); }
|
||||
.#{$fa-css-prefix}-long-arrow-up:before { content: fa-content($fa-var-long-arrow-up); }
|
||||
.#{$fa-css-prefix}-low-vision:before { content: fa-content($fa-var-low-vision); }
|
||||
.#{$fa-css-prefix}-lyft:before { content: fa-content($fa-var-lyft); }
|
||||
.#{$fa-css-prefix}-magento:before { content: fa-content($fa-var-magento); }
|
||||
.#{$fa-css-prefix}-magic:before { content: fa-content($fa-var-magic); }
|
||||
.#{$fa-css-prefix}-magnet:before { content: fa-content($fa-var-magnet); }
|
||||
.#{$fa-css-prefix}-male:before { content: fa-content($fa-var-male); }
|
||||
.#{$fa-css-prefix}-map:before { content: fa-content($fa-var-map); }
|
||||
.#{$fa-css-prefix}-map-marker:before { content: fa-content($fa-var-map-marker); }
|
||||
.#{$fa-css-prefix}-map-marker-alt:before { content: fa-content($fa-var-map-marker-alt); }
|
||||
.#{$fa-css-prefix}-map-pin:before { content: fa-content($fa-var-map-pin); }
|
||||
.#{$fa-css-prefix}-map-signs:before { content: fa-content($fa-var-map-signs); }
|
||||
.#{$fa-css-prefix}-mars:before { content: fa-content($fa-var-mars); }
|
||||
.#{$fa-css-prefix}-mars-double:before { content: fa-content($fa-var-mars-double); }
|
||||
.#{$fa-css-prefix}-mars-stroke:before { content: fa-content($fa-var-mars-stroke); }
|
||||
.#{$fa-css-prefix}-mars-stroke-h:before { content: fa-content($fa-var-mars-stroke-h); }
|
||||
.#{$fa-css-prefix}-mars-stroke-v:before { content: fa-content($fa-var-mars-stroke-v); }
|
||||
.#{$fa-css-prefix}-maxcdn:before { content: fa-content($fa-var-maxcdn); }
|
||||
.#{$fa-css-prefix}-medapps:before { content: fa-content($fa-var-medapps); }
|
||||
.#{$fa-css-prefix}-medium:before { content: fa-content($fa-var-medium); }
|
||||
.#{$fa-css-prefix}-medium-m:before { content: fa-content($fa-var-medium-m); }
|
||||
.#{$fa-css-prefix}-medkit:before { content: fa-content($fa-var-medkit); }
|
||||
.#{$fa-css-prefix}-medrt:before { content: fa-content($fa-var-medrt); }
|
||||
.#{$fa-css-prefix}-meetup:before { content: fa-content($fa-var-meetup); }
|
||||
.#{$fa-css-prefix}-meh:before { content: fa-content($fa-var-meh); }
|
||||
.#{$fa-css-prefix}-mercury:before { content: fa-content($fa-var-mercury); }
|
||||
.#{$fa-css-prefix}-microchip:before { content: fa-content($fa-var-microchip); }
|
||||
.#{$fa-css-prefix}-microphone:before { content: fa-content($fa-var-microphone); }
|
||||
.#{$fa-css-prefix}-microphone-alt:before { content: fa-content($fa-var-microphone-alt); }
|
||||
.#{$fa-css-prefix}-microphone-slash:before { content: fa-content($fa-var-microphone-slash); }
|
||||
.#{$fa-css-prefix}-microsoft:before { content: fa-content($fa-var-microsoft); }
|
||||
.#{$fa-css-prefix}-minus:before { content: fa-content($fa-var-minus); }
|
||||
.#{$fa-css-prefix}-minus-circle:before { content: fa-content($fa-var-minus-circle); }
|
||||
.#{$fa-css-prefix}-minus-hexagon:before { content: fa-content($fa-var-minus-hexagon); }
|
||||
.#{$fa-css-prefix}-minus-octagon:before { content: fa-content($fa-var-minus-octagon); }
|
||||
.#{$fa-css-prefix}-minus-square:before { content: fa-content($fa-var-minus-square); }
|
||||
.#{$fa-css-prefix}-mix:before { content: fa-content($fa-var-mix); }
|
||||
.#{$fa-css-prefix}-mixcloud:before { content: fa-content($fa-var-mixcloud); }
|
||||
.#{$fa-css-prefix}-mizuni:before { content: fa-content($fa-var-mizuni); }
|
||||
.#{$fa-css-prefix}-mobile:before { content: fa-content($fa-var-mobile); }
|
||||
.#{$fa-css-prefix}-mobile-alt:before { content: fa-content($fa-var-mobile-alt); }
|
||||
.#{$fa-css-prefix}-mobile-android:before { content: fa-content($fa-var-mobile-android); }
|
||||
.#{$fa-css-prefix}-mobile-android-alt:before { content: fa-content($fa-var-mobile-android-alt); }
|
||||
.#{$fa-css-prefix}-modx:before { content: fa-content($fa-var-modx); }
|
||||
.#{$fa-css-prefix}-monero:before { content: fa-content($fa-var-monero); }
|
||||
.#{$fa-css-prefix}-money-bill:before { content: fa-content($fa-var-money-bill); }
|
||||
.#{$fa-css-prefix}-money-bill-alt:before { content: fa-content($fa-var-money-bill-alt); }
|
||||
.#{$fa-css-prefix}-moon:before { content: fa-content($fa-var-moon); }
|
||||
.#{$fa-css-prefix}-motorcycle:before { content: fa-content($fa-var-motorcycle); }
|
||||
.#{$fa-css-prefix}-mouse-pointer:before { content: fa-content($fa-var-mouse-pointer); }
|
||||
.#{$fa-css-prefix}-music:before { content: fa-content($fa-var-music); }
|
||||
.#{$fa-css-prefix}-napster:before { content: fa-content($fa-var-napster); }
|
||||
.#{$fa-css-prefix}-neuter:before { content: fa-content($fa-var-neuter); }
|
||||
.#{$fa-css-prefix}-newspaper:before { content: fa-content($fa-var-newspaper); }
|
||||
.#{$fa-css-prefix}-nintendo-switch:before { content: fa-content($fa-var-nintendo-switch); }
|
||||
.#{$fa-css-prefix}-node:before { content: fa-content($fa-var-node); }
|
||||
.#{$fa-css-prefix}-node-js:before { content: fa-content($fa-var-node-js); }
|
||||
.#{$fa-css-prefix}-npm:before { content: fa-content($fa-var-npm); }
|
||||
.#{$fa-css-prefix}-ns8:before { content: fa-content($fa-var-ns8); }
|
||||
.#{$fa-css-prefix}-nutritionix:before { content: fa-content($fa-var-nutritionix); }
|
||||
.#{$fa-css-prefix}-object-group:before { content: fa-content($fa-var-object-group); }
|
||||
.#{$fa-css-prefix}-object-ungroup:before { content: fa-content($fa-var-object-ungroup); }
|
||||
.#{$fa-css-prefix}-octagon:before { content: fa-content($fa-var-octagon); }
|
||||
.#{$fa-css-prefix}-odnoklassniki:before { content: fa-content($fa-var-odnoklassniki); }
|
||||
.#{$fa-css-prefix}-odnoklassniki-square:before { content: fa-content($fa-var-odnoklassniki-square); }
|
||||
.#{$fa-css-prefix}-opencart:before { content: fa-content($fa-var-opencart); }
|
||||
.#{$fa-css-prefix}-openid:before { content: fa-content($fa-var-openid); }
|
||||
.#{$fa-css-prefix}-opera:before { content: fa-content($fa-var-opera); }
|
||||
.#{$fa-css-prefix}-optin-monster:before { content: fa-content($fa-var-optin-monster); }
|
||||
.#{$fa-css-prefix}-osi:before { content: fa-content($fa-var-osi); }
|
||||
.#{$fa-css-prefix}-outdent:before { content: fa-content($fa-var-outdent); }
|
||||
.#{$fa-css-prefix}-page4:before { content: fa-content($fa-var-page4); }
|
||||
.#{$fa-css-prefix}-pagelines:before { content: fa-content($fa-var-pagelines); }
|
||||
.#{$fa-css-prefix}-paint-brush:before { content: fa-content($fa-var-paint-brush); }
|
||||
.#{$fa-css-prefix}-palfed:before { content: fa-content($fa-var-palfed); }
|
||||
.#{$fa-css-prefix}-paper-plane:before { content: fa-content($fa-var-paper-plane); }
|
||||
.#{$fa-css-prefix}-paperclip:before { content: fa-content($fa-var-paperclip); }
|
||||
.#{$fa-css-prefix}-paragraph:before { content: fa-content($fa-var-paragraph); }
|
||||
.#{$fa-css-prefix}-paste:before { content: fa-content($fa-var-paste); }
|
||||
.#{$fa-css-prefix}-patreon:before { content: fa-content($fa-var-patreon); }
|
||||
.#{$fa-css-prefix}-pause:before { content: fa-content($fa-var-pause); }
|
||||
.#{$fa-css-prefix}-pause-circle:before { content: fa-content($fa-var-pause-circle); }
|
||||
.#{$fa-css-prefix}-paw:before { content: fa-content($fa-var-paw); }
|
||||
.#{$fa-css-prefix}-paypal:before { content: fa-content($fa-var-paypal); }
|
||||
.#{$fa-css-prefix}-pen:before { content: fa-content($fa-var-pen); }
|
||||
.#{$fa-css-prefix}-pen-alt:before { content: fa-content($fa-var-pen-alt); }
|
||||
.#{$fa-css-prefix}-pen-square:before { content: fa-content($fa-var-pen-square); }
|
||||
.#{$fa-css-prefix}-pencil:before { content: fa-content($fa-var-pencil); }
|
||||
.#{$fa-css-prefix}-pencil-alt:before { content: fa-content($fa-var-pencil-alt); }
|
||||
.#{$fa-css-prefix}-percent:before { content: fa-content($fa-var-percent); }
|
||||
.#{$fa-css-prefix}-periscope:before { content: fa-content($fa-var-periscope); }
|
||||
.#{$fa-css-prefix}-phabricator:before { content: fa-content($fa-var-phabricator); }
|
||||
.#{$fa-css-prefix}-phoenix-framework:before { content: fa-content($fa-var-phoenix-framework); }
|
||||
.#{$fa-css-prefix}-phone:before { content: fa-content($fa-var-phone); }
|
||||
.#{$fa-css-prefix}-phone-slash:before { content: fa-content($fa-var-phone-slash); }
|
||||
.#{$fa-css-prefix}-phone-square:before { content: fa-content($fa-var-phone-square); }
|
||||
.#{$fa-css-prefix}-phone-volume:before { content: fa-content($fa-var-phone-volume); }
|
||||
.#{$fa-css-prefix}-pied-piper:before { content: fa-content($fa-var-pied-piper); }
|
||||
.#{$fa-css-prefix}-pied-piper-alt:before { content: fa-content($fa-var-pied-piper-alt); }
|
||||
.#{$fa-css-prefix}-pied-piper-pp:before { content: fa-content($fa-var-pied-piper-pp); }
|
||||
.#{$fa-css-prefix}-pinterest:before { content: fa-content($fa-var-pinterest); }
|
||||
.#{$fa-css-prefix}-pinterest-p:before { content: fa-content($fa-var-pinterest-p); }
|
||||
.#{$fa-css-prefix}-pinterest-square:before { content: fa-content($fa-var-pinterest-square); }
|
||||
.#{$fa-css-prefix}-plane:before { content: fa-content($fa-var-plane); }
|
||||
.#{$fa-css-prefix}-plane-alt:before { content: fa-content($fa-var-plane-alt); }
|
||||
.#{$fa-css-prefix}-play:before { content: fa-content($fa-var-play); }
|
||||
.#{$fa-css-prefix}-play-circle:before { content: fa-content($fa-var-play-circle); }
|
||||
.#{$fa-css-prefix}-playstation:before { content: fa-content($fa-var-playstation); }
|
||||
.#{$fa-css-prefix}-plug:before { content: fa-content($fa-var-plug); }
|
||||
.#{$fa-css-prefix}-plus:before { content: fa-content($fa-var-plus); }
|
||||
.#{$fa-css-prefix}-plus-circle:before { content: fa-content($fa-var-plus-circle); }
|
||||
.#{$fa-css-prefix}-plus-hexagon:before { content: fa-content($fa-var-plus-hexagon); }
|
||||
.#{$fa-css-prefix}-plus-octagon:before { content: fa-content($fa-var-plus-octagon); }
|
||||
.#{$fa-css-prefix}-plus-square:before { content: fa-content($fa-var-plus-square); }
|
||||
.#{$fa-css-prefix}-podcast:before { content: fa-content($fa-var-podcast); }
|
||||
.#{$fa-css-prefix}-poo:before { content: fa-content($fa-var-poo); }
|
||||
.#{$fa-css-prefix}-portrait:before { content: fa-content($fa-var-portrait); }
|
||||
.#{$fa-css-prefix}-pound-sign:before { content: fa-content($fa-var-pound-sign); }
|
||||
.#{$fa-css-prefix}-power-off:before { content: fa-content($fa-var-power-off); }
|
||||
.#{$fa-css-prefix}-print:before { content: fa-content($fa-var-print); }
|
||||
.#{$fa-css-prefix}-product-hunt:before { content: fa-content($fa-var-product-hunt); }
|
||||
.#{$fa-css-prefix}-pushed:before { content: fa-content($fa-var-pushed); }
|
||||
.#{$fa-css-prefix}-puzzle-piece:before { content: fa-content($fa-var-puzzle-piece); }
|
||||
.#{$fa-css-prefix}-python:before { content: fa-content($fa-var-python); }
|
||||
.#{$fa-css-prefix}-qq:before { content: fa-content($fa-var-qq); }
|
||||
.#{$fa-css-prefix}-qrcode:before { content: fa-content($fa-var-qrcode); }
|
||||
.#{$fa-css-prefix}-question:before { content: fa-content($fa-var-question); }
|
||||
.#{$fa-css-prefix}-question-circle:before { content: fa-content($fa-var-question-circle); }
|
||||
.#{$fa-css-prefix}-question-square:before { content: fa-content($fa-var-question-square); }
|
||||
.#{$fa-css-prefix}-quora:before { content: fa-content($fa-var-quora); }
|
||||
.#{$fa-css-prefix}-quote-left:before { content: fa-content($fa-var-quote-left); }
|
||||
.#{$fa-css-prefix}-quote-right:before { content: fa-content($fa-var-quote-right); }
|
||||
.#{$fa-css-prefix}-random:before { content: fa-content($fa-var-random); }
|
||||
.#{$fa-css-prefix}-ravelry:before { content: fa-content($fa-var-ravelry); }
|
||||
.#{$fa-css-prefix}-react:before { content: fa-content($fa-var-react); }
|
||||
.#{$fa-css-prefix}-rebel:before { content: fa-content($fa-var-rebel); }
|
||||
.#{$fa-css-prefix}-rectangle-landscape:before { content: fa-content($fa-var-rectangle-landscape); }
|
||||
.#{$fa-css-prefix}-rectangle-portrait:before { content: fa-content($fa-var-rectangle-portrait); }
|
||||
.#{$fa-css-prefix}-rectangle-wide:before { content: fa-content($fa-var-rectangle-wide); }
|
||||
.#{$fa-css-prefix}-recycle:before { content: fa-content($fa-var-recycle); }
|
||||
.#{$fa-css-prefix}-red-river:before { content: fa-content($fa-var-red-river); }
|
||||
.#{$fa-css-prefix}-reddit:before { content: fa-content($fa-var-reddit); }
|
||||
.#{$fa-css-prefix}-reddit-alien:before { content: fa-content($fa-var-reddit-alien); }
|
||||
.#{$fa-css-prefix}-reddit-square:before { content: fa-content($fa-var-reddit-square); }
|
||||
.#{$fa-css-prefix}-redo:before { content: fa-content($fa-var-redo); }
|
||||
.#{$fa-css-prefix}-redo-alt:before { content: fa-content($fa-var-redo-alt); }
|
||||
.#{$fa-css-prefix}-registered:before { content: fa-content($fa-var-registered); }
|
||||
.#{$fa-css-prefix}-rendact:before { content: fa-content($fa-var-rendact); }
|
||||
.#{$fa-css-prefix}-renren:before { content: fa-content($fa-var-renren); }
|
||||
.#{$fa-css-prefix}-repeat:before { content: fa-content($fa-var-repeat); }
|
||||
.#{$fa-css-prefix}-repeat-1:before { content: fa-content($fa-var-repeat-1); }
|
||||
.#{$fa-css-prefix}-repeat-1-alt:before { content: fa-content($fa-var-repeat-1-alt); }
|
||||
.#{$fa-css-prefix}-repeat-alt:before { content: fa-content($fa-var-repeat-alt); }
|
||||
.#{$fa-css-prefix}-reply:before { content: fa-content($fa-var-reply); }
|
||||
.#{$fa-css-prefix}-reply-all:before { content: fa-content($fa-var-reply-all); }
|
||||
.#{$fa-css-prefix}-replyd:before { content: fa-content($fa-var-replyd); }
|
||||
.#{$fa-css-prefix}-resolving:before { content: fa-content($fa-var-resolving); }
|
||||
.#{$fa-css-prefix}-retweet:before { content: fa-content($fa-var-retweet); }
|
||||
.#{$fa-css-prefix}-retweet-alt:before { content: fa-content($fa-var-retweet-alt); }
|
||||
.#{$fa-css-prefix}-road:before { content: fa-content($fa-var-road); }
|
||||
.#{$fa-css-prefix}-rocket:before { content: fa-content($fa-var-rocket); }
|
||||
.#{$fa-css-prefix}-rocketchat:before { content: fa-content($fa-var-rocketchat); }
|
||||
.#{$fa-css-prefix}-rockrms:before { content: fa-content($fa-var-rockrms); }
|
||||
.#{$fa-css-prefix}-rss:before { content: fa-content($fa-var-rss); }
|
||||
.#{$fa-css-prefix}-rss-square:before { content: fa-content($fa-var-rss-square); }
|
||||
.#{$fa-css-prefix}-ruble-sign:before { content: fa-content($fa-var-ruble-sign); }
|
||||
.#{$fa-css-prefix}-rupee-sign:before { content: fa-content($fa-var-rupee-sign); }
|
||||
.#{$fa-css-prefix}-safari:before { content: fa-content($fa-var-safari); }
|
||||
.#{$fa-css-prefix}-sass:before { content: fa-content($fa-var-sass); }
|
||||
.#{$fa-css-prefix}-save:before { content: fa-content($fa-var-save); }
|
||||
.#{$fa-css-prefix}-schlix:before { content: fa-content($fa-var-schlix); }
|
||||
.#{$fa-css-prefix}-scribd:before { content: fa-content($fa-var-scribd); }
|
||||
.#{$fa-css-prefix}-scrubber:before { content: fa-content($fa-var-scrubber); }
|
||||
.#{$fa-css-prefix}-search:before { content: fa-content($fa-var-search); }
|
||||
.#{$fa-css-prefix}-search-minus:before { content: fa-content($fa-var-search-minus); }
|
||||
.#{$fa-css-prefix}-search-plus:before { content: fa-content($fa-var-search-plus); }
|
||||
.#{$fa-css-prefix}-searchengin:before { content: fa-content($fa-var-searchengin); }
|
||||
.#{$fa-css-prefix}-sellcast:before { content: fa-content($fa-var-sellcast); }
|
||||
.#{$fa-css-prefix}-sellsy:before { content: fa-content($fa-var-sellsy); }
|
||||
.#{$fa-css-prefix}-server:before { content: fa-content($fa-var-server); }
|
||||
.#{$fa-css-prefix}-servicestack:before { content: fa-content($fa-var-servicestack); }
|
||||
.#{$fa-css-prefix}-share:before { content: fa-content($fa-var-share); }
|
||||
.#{$fa-css-prefix}-share-all:before { content: fa-content($fa-var-share-all); }
|
||||
.#{$fa-css-prefix}-share-alt:before { content: fa-content($fa-var-share-alt); }
|
||||
.#{$fa-css-prefix}-share-alt-square:before { content: fa-content($fa-var-share-alt-square); }
|
||||
.#{$fa-css-prefix}-share-square:before { content: fa-content($fa-var-share-square); }
|
||||
.#{$fa-css-prefix}-shekel-sign:before { content: fa-content($fa-var-shekel-sign); }
|
||||
.#{$fa-css-prefix}-shield:before { content: fa-content($fa-var-shield); }
|
||||
.#{$fa-css-prefix}-shield-alt:before { content: fa-content($fa-var-shield-alt); }
|
||||
.#{$fa-css-prefix}-shield-check:before { content: fa-content($fa-var-shield-check); }
|
||||
.#{$fa-css-prefix}-ship:before { content: fa-content($fa-var-ship); }
|
||||
.#{$fa-css-prefix}-shirtsinbulk:before { content: fa-content($fa-var-shirtsinbulk); }
|
||||
.#{$fa-css-prefix}-shopping-bag:before { content: fa-content($fa-var-shopping-bag); }
|
||||
.#{$fa-css-prefix}-shopping-basket:before { content: fa-content($fa-var-shopping-basket); }
|
||||
.#{$fa-css-prefix}-shopping-cart:before { content: fa-content($fa-var-shopping-cart); }
|
||||
.#{$fa-css-prefix}-shower:before { content: fa-content($fa-var-shower); }
|
||||
.#{$fa-css-prefix}-sign-in:before { content: fa-content($fa-var-sign-in); }
|
||||
.#{$fa-css-prefix}-sign-in-alt:before { content: fa-content($fa-var-sign-in-alt); }
|
||||
.#{$fa-css-prefix}-sign-language:before { content: fa-content($fa-var-sign-language); }
|
||||
.#{$fa-css-prefix}-sign-out:before { content: fa-content($fa-var-sign-out); }
|
||||
.#{$fa-css-prefix}-sign-out-alt:before { content: fa-content($fa-var-sign-out-alt); }
|
||||
.#{$fa-css-prefix}-signal:before { content: fa-content($fa-var-signal); }
|
||||
.#{$fa-css-prefix}-simplybuilt:before { content: fa-content($fa-var-simplybuilt); }
|
||||
.#{$fa-css-prefix}-sistrix:before { content: fa-content($fa-var-sistrix); }
|
||||
.#{$fa-css-prefix}-sitemap:before { content: fa-content($fa-var-sitemap); }
|
||||
.#{$fa-css-prefix}-skyatlas:before { content: fa-content($fa-var-skyatlas); }
|
||||
.#{$fa-css-prefix}-skype:before { content: fa-content($fa-var-skype); }
|
||||
.#{$fa-css-prefix}-slack:before { content: fa-content($fa-var-slack); }
|
||||
.#{$fa-css-prefix}-slack-hash:before { content: fa-content($fa-var-slack-hash); }
|
||||
.#{$fa-css-prefix}-sliders-h:before { content: fa-content($fa-var-sliders-h); }
|
||||
.#{$fa-css-prefix}-sliders-h-square:before { content: fa-content($fa-var-sliders-h-square); }
|
||||
.#{$fa-css-prefix}-sliders-v:before { content: fa-content($fa-var-sliders-v); }
|
||||
.#{$fa-css-prefix}-sliders-v-square:before { content: fa-content($fa-var-sliders-v-square); }
|
||||
.#{$fa-css-prefix}-slideshare:before { content: fa-content($fa-var-slideshare); }
|
||||
.#{$fa-css-prefix}-smile:before { content: fa-content($fa-var-smile); }
|
||||
.#{$fa-css-prefix}-snapchat:before { content: fa-content($fa-var-snapchat); }
|
||||
.#{$fa-css-prefix}-snapchat-ghost:before { content: fa-content($fa-var-snapchat-ghost); }
|
||||
.#{$fa-css-prefix}-snapchat-square:before { content: fa-content($fa-var-snapchat-square); }
|
||||
.#{$fa-css-prefix}-snowflake:before { content: fa-content($fa-var-snowflake); }
|
||||
.#{$fa-css-prefix}-sort:before { content: fa-content($fa-var-sort); }
|
||||
.#{$fa-css-prefix}-sort-alpha-down:before { content: fa-content($fa-var-sort-alpha-down); }
|
||||
.#{$fa-css-prefix}-sort-alpha-up:before { content: fa-content($fa-var-sort-alpha-up); }
|
||||
.#{$fa-css-prefix}-sort-amount-down:before { content: fa-content($fa-var-sort-amount-down); }
|
||||
.#{$fa-css-prefix}-sort-amount-up:before { content: fa-content($fa-var-sort-amount-up); }
|
||||
.#{$fa-css-prefix}-sort-down:before { content: fa-content($fa-var-sort-down); }
|
||||
.#{$fa-css-prefix}-sort-numeric-down:before { content: fa-content($fa-var-sort-numeric-down); }
|
||||
.#{$fa-css-prefix}-sort-numeric-up:before { content: fa-content($fa-var-sort-numeric-up); }
|
||||
.#{$fa-css-prefix}-sort-up:before { content: fa-content($fa-var-sort-up); }
|
||||
.#{$fa-css-prefix}-soundcloud:before { content: fa-content($fa-var-soundcloud); }
|
||||
.#{$fa-css-prefix}-space-shuttle:before { content: fa-content($fa-var-space-shuttle); }
|
||||
.#{$fa-css-prefix}-spade:before { content: fa-content($fa-var-spade); }
|
||||
.#{$fa-css-prefix}-speakap:before { content: fa-content($fa-var-speakap); }
|
||||
.#{$fa-css-prefix}-spinner:before { content: fa-content($fa-var-spinner); }
|
||||
.#{$fa-css-prefix}-spinner-third:before { content: fa-content($fa-var-spinner-third); }
|
||||
.#{$fa-css-prefix}-spotify:before { content: fa-content($fa-var-spotify); }
|
||||
.#{$fa-css-prefix}-square:before { content: fa-content($fa-var-square); }
|
||||
.#{$fa-css-prefix}-stack-exchange:before { content: fa-content($fa-var-stack-exchange); }
|
||||
.#{$fa-css-prefix}-stack-overflow:before { content: fa-content($fa-var-stack-overflow); }
|
||||
.#{$fa-css-prefix}-star:before { content: fa-content($fa-var-star); }
|
||||
.#{$fa-css-prefix}-star-exclamation:before { content: fa-content($fa-var-star-exclamation); }
|
||||
.#{$fa-css-prefix}-star-half:before { content: fa-content($fa-var-star-half); }
|
||||
.#{$fa-css-prefix}-staylinked:before { content: fa-content($fa-var-staylinked); }
|
||||
.#{$fa-css-prefix}-steam:before { content: fa-content($fa-var-steam); }
|
||||
.#{$fa-css-prefix}-steam-square:before { content: fa-content($fa-var-steam-square); }
|
||||
.#{$fa-css-prefix}-steam-symbol:before { content: fa-content($fa-var-steam-symbol); }
|
||||
.#{$fa-css-prefix}-step-backward:before { content: fa-content($fa-var-step-backward); }
|
||||
.#{$fa-css-prefix}-step-forward:before { content: fa-content($fa-var-step-forward); }
|
||||
.#{$fa-css-prefix}-stethoscope:before { content: fa-content($fa-var-stethoscope); }
|
||||
.#{$fa-css-prefix}-sticker-mule:before { content: fa-content($fa-var-sticker-mule); }
|
||||
.#{$fa-css-prefix}-sticky-note:before { content: fa-content($fa-var-sticky-note); }
|
||||
.#{$fa-css-prefix}-stop:before { content: fa-content($fa-var-stop); }
|
||||
.#{$fa-css-prefix}-stop-circle:before { content: fa-content($fa-var-stop-circle); }
|
||||
.#{$fa-css-prefix}-stopwatch:before { content: fa-content($fa-var-stopwatch); }
|
||||
.#{$fa-css-prefix}-strava:before { content: fa-content($fa-var-strava); }
|
||||
.#{$fa-css-prefix}-street-view:before { content: fa-content($fa-var-street-view); }
|
||||
.#{$fa-css-prefix}-strikethrough:before { content: fa-content($fa-var-strikethrough); }
|
||||
.#{$fa-css-prefix}-stripe:before { content: fa-content($fa-var-stripe); }
|
||||
.#{$fa-css-prefix}-stripe-s:before { content: fa-content($fa-var-stripe-s); }
|
||||
.#{$fa-css-prefix}-studiovinari:before { content: fa-content($fa-var-studiovinari); }
|
||||
.#{$fa-css-prefix}-stumbleupon:before { content: fa-content($fa-var-stumbleupon); }
|
||||
.#{$fa-css-prefix}-stumbleupon-circle:before { content: fa-content($fa-var-stumbleupon-circle); }
|
||||
.#{$fa-css-prefix}-subscript:before { content: fa-content($fa-var-subscript); }
|
||||
.#{$fa-css-prefix}-subway:before { content: fa-content($fa-var-subway); }
|
||||
.#{$fa-css-prefix}-suitcase:before { content: fa-content($fa-var-suitcase); }
|
||||
.#{$fa-css-prefix}-sun:before { content: fa-content($fa-var-sun); }
|
||||
.#{$fa-css-prefix}-superpowers:before { content: fa-content($fa-var-superpowers); }
|
||||
.#{$fa-css-prefix}-superscript:before { content: fa-content($fa-var-superscript); }
|
||||
.#{$fa-css-prefix}-supple:before { content: fa-content($fa-var-supple); }
|
||||
.#{$fa-css-prefix}-sync:before { content: fa-content($fa-var-sync); }
|
||||
.#{$fa-css-prefix}-sync-alt:before { content: fa-content($fa-var-sync-alt); }
|
||||
.#{$fa-css-prefix}-table:before { content: fa-content($fa-var-table); }
|
||||
.#{$fa-css-prefix}-tablet:before { content: fa-content($fa-var-tablet); }
|
||||
.#{$fa-css-prefix}-tablet-alt:before { content: fa-content($fa-var-tablet-alt); }
|
||||
.#{$fa-css-prefix}-tablet-android:before { content: fa-content($fa-var-tablet-android); }
|
||||
.#{$fa-css-prefix}-tablet-android-alt:before { content: fa-content($fa-var-tablet-android-alt); }
|
||||
.#{$fa-css-prefix}-tachometer:before { content: fa-content($fa-var-tachometer); }
|
||||
.#{$fa-css-prefix}-tachometer-alt:before { content: fa-content($fa-var-tachometer-alt); }
|
||||
.#{$fa-css-prefix}-tag:before { content: fa-content($fa-var-tag); }
|
||||
.#{$fa-css-prefix}-tags:before { content: fa-content($fa-var-tags); }
|
||||
.#{$fa-css-prefix}-tasks:before { content: fa-content($fa-var-tasks); }
|
||||
.#{$fa-css-prefix}-taxi:before { content: fa-content($fa-var-taxi); }
|
||||
.#{$fa-css-prefix}-telegram:before { content: fa-content($fa-var-telegram); }
|
||||
.#{$fa-css-prefix}-telegram-plane:before { content: fa-content($fa-var-telegram-plane); }
|
||||
.#{$fa-css-prefix}-tencent-weibo:before { content: fa-content($fa-var-tencent-weibo); }
|
||||
.#{$fa-css-prefix}-terminal:before { content: fa-content($fa-var-terminal); }
|
||||
.#{$fa-css-prefix}-text-height:before { content: fa-content($fa-var-text-height); }
|
||||
.#{$fa-css-prefix}-text-width:before { content: fa-content($fa-var-text-width); }
|
||||
.#{$fa-css-prefix}-th:before { content: fa-content($fa-var-th); }
|
||||
.#{$fa-css-prefix}-th-large:before { content: fa-content($fa-var-th-large); }
|
||||
.#{$fa-css-prefix}-th-list:before { content: fa-content($fa-var-th-list); }
|
||||
.#{$fa-css-prefix}-themeisle:before { content: fa-content($fa-var-themeisle); }
|
||||
.#{$fa-css-prefix}-thermometer-empty:before { content: fa-content($fa-var-thermometer-empty); }
|
||||
.#{$fa-css-prefix}-thermometer-full:before { content: fa-content($fa-var-thermometer-full); }
|
||||
.#{$fa-css-prefix}-thermometer-half:before { content: fa-content($fa-var-thermometer-half); }
|
||||
.#{$fa-css-prefix}-thermometer-quarter:before { content: fa-content($fa-var-thermometer-quarter); }
|
||||
.#{$fa-css-prefix}-thermometer-three-quarters:before { content: fa-content($fa-var-thermometer-three-quarters); }
|
||||
.#{$fa-css-prefix}-thumbs-down:before { content: fa-content($fa-var-thumbs-down); }
|
||||
.#{$fa-css-prefix}-thumbs-up:before { content: fa-content($fa-var-thumbs-up); }
|
||||
.#{$fa-css-prefix}-thumbtack:before { content: fa-content($fa-var-thumbtack); }
|
||||
.#{$fa-css-prefix}-ticket:before { content: fa-content($fa-var-ticket); }
|
||||
.#{$fa-css-prefix}-ticket-alt:before { content: fa-content($fa-var-ticket-alt); }
|
||||
.#{$fa-css-prefix}-times:before { content: fa-content($fa-var-times); }
|
||||
.#{$fa-css-prefix}-times-circle:before { content: fa-content($fa-var-times-circle); }
|
||||
.#{$fa-css-prefix}-times-hexagon:before { content: fa-content($fa-var-times-hexagon); }
|
||||
.#{$fa-css-prefix}-times-octagon:before { content: fa-content($fa-var-times-octagon); }
|
||||
.#{$fa-css-prefix}-times-square:before { content: fa-content($fa-var-times-square); }
|
||||
.#{$fa-css-prefix}-tint:before { content: fa-content($fa-var-tint); }
|
||||
.#{$fa-css-prefix}-toggle-off:before { content: fa-content($fa-var-toggle-off); }
|
||||
.#{$fa-css-prefix}-toggle-on:before { content: fa-content($fa-var-toggle-on); }
|
||||
.#{$fa-css-prefix}-trademark:before { content: fa-content($fa-var-trademark); }
|
||||
.#{$fa-css-prefix}-train:before { content: fa-content($fa-var-train); }
|
||||
.#{$fa-css-prefix}-transgender:before { content: fa-content($fa-var-transgender); }
|
||||
.#{$fa-css-prefix}-transgender-alt:before { content: fa-content($fa-var-transgender-alt); }
|
||||
.#{$fa-css-prefix}-trash:before { content: fa-content($fa-var-trash); }
|
||||
.#{$fa-css-prefix}-trash-alt:before { content: fa-content($fa-var-trash-alt); }
|
||||
.#{$fa-css-prefix}-tree:before { content: fa-content($fa-var-tree); }
|
||||
.#{$fa-css-prefix}-tree-alt:before { content: fa-content($fa-var-tree-alt); }
|
||||
.#{$fa-css-prefix}-trello:before { content: fa-content($fa-var-trello); }
|
||||
.#{$fa-css-prefix}-triangle:before { content: fa-content($fa-var-triangle); }
|
||||
.#{$fa-css-prefix}-tripadvisor:before { content: fa-content($fa-var-tripadvisor); }
|
||||
.#{$fa-css-prefix}-trophy:before { content: fa-content($fa-var-trophy); }
|
||||
.#{$fa-css-prefix}-trophy-alt:before { content: fa-content($fa-var-trophy-alt); }
|
||||
.#{$fa-css-prefix}-truck:before { content: fa-content($fa-var-truck); }
|
||||
.#{$fa-css-prefix}-tty:before { content: fa-content($fa-var-tty); }
|
||||
.#{$fa-css-prefix}-tumblr:before { content: fa-content($fa-var-tumblr); }
|
||||
.#{$fa-css-prefix}-tumblr-square:before { content: fa-content($fa-var-tumblr-square); }
|
||||
.#{$fa-css-prefix}-tv:before { content: fa-content($fa-var-tv); }
|
||||
.#{$fa-css-prefix}-tv-retro:before { content: fa-content($fa-var-tv-retro); }
|
||||
.#{$fa-css-prefix}-twitch:before { content: fa-content($fa-var-twitch); }
|
||||
.#{$fa-css-prefix}-twitter:before { content: fa-content($fa-var-twitter); }
|
||||
.#{$fa-css-prefix}-twitter-square:before { content: fa-content($fa-var-twitter-square); }
|
||||
.#{$fa-css-prefix}-typo3:before { content: fa-content($fa-var-typo3); }
|
||||
.#{$fa-css-prefix}-uber:before { content: fa-content($fa-var-uber); }
|
||||
.#{$fa-css-prefix}-uikit:before { content: fa-content($fa-var-uikit); }
|
||||
.#{$fa-css-prefix}-umbrella:before { content: fa-content($fa-var-umbrella); }
|
||||
.#{$fa-css-prefix}-underline:before { content: fa-content($fa-var-underline); }
|
||||
.#{$fa-css-prefix}-undo:before { content: fa-content($fa-var-undo); }
|
||||
.#{$fa-css-prefix}-undo-alt:before { content: fa-content($fa-var-undo-alt); }
|
||||
.#{$fa-css-prefix}-uniregistry:before { content: fa-content($fa-var-uniregistry); }
|
||||
.#{$fa-css-prefix}-universal-access:before { content: fa-content($fa-var-universal-access); }
|
||||
.#{$fa-css-prefix}-university:before { content: fa-content($fa-var-university); }
|
||||
.#{$fa-css-prefix}-unlink:before { content: fa-content($fa-var-unlink); }
|
||||
.#{$fa-css-prefix}-unlock:before { content: fa-content($fa-var-unlock); }
|
||||
.#{$fa-css-prefix}-unlock-alt:before { content: fa-content($fa-var-unlock-alt); }
|
||||
.#{$fa-css-prefix}-untappd:before { content: fa-content($fa-var-untappd); }
|
||||
.#{$fa-css-prefix}-upload:before { content: fa-content($fa-var-upload); }
|
||||
.#{$fa-css-prefix}-usb:before { content: fa-content($fa-var-usb); }
|
||||
.#{$fa-css-prefix}-usd-circle:before { content: fa-content($fa-var-usd-circle); }
|
||||
.#{$fa-css-prefix}-usd-square:before { content: fa-content($fa-var-usd-square); }
|
||||
.#{$fa-css-prefix}-user:before { content: fa-content($fa-var-user); }
|
||||
.#{$fa-css-prefix}-user-alt:before { content: fa-content($fa-var-user-alt); }
|
||||
.#{$fa-css-prefix}-user-circle:before { content: fa-content($fa-var-user-circle); }
|
||||
.#{$fa-css-prefix}-user-md:before { content: fa-content($fa-var-user-md); }
|
||||
.#{$fa-css-prefix}-user-plus:before { content: fa-content($fa-var-user-plus); }
|
||||
.#{$fa-css-prefix}-user-secret:before { content: fa-content($fa-var-user-secret); }
|
||||
.#{$fa-css-prefix}-user-times:before { content: fa-content($fa-var-user-times); }
|
||||
.#{$fa-css-prefix}-users:before { content: fa-content($fa-var-users); }
|
||||
.#{$fa-css-prefix}-ussunnah:before { content: fa-content($fa-var-ussunnah); }
|
||||
.#{$fa-css-prefix}-utensil-fork:before { content: fa-content($fa-var-utensil-fork); }
|
||||
.#{$fa-css-prefix}-utensil-knife:before { content: fa-content($fa-var-utensil-knife); }
|
||||
.#{$fa-css-prefix}-utensil-spoon:before { content: fa-content($fa-var-utensil-spoon); }
|
||||
.#{$fa-css-prefix}-utensils:before { content: fa-content($fa-var-utensils); }
|
||||
.#{$fa-css-prefix}-utensils-alt:before { content: fa-content($fa-var-utensils-alt); }
|
||||
.#{$fa-css-prefix}-vaadin:before { content: fa-content($fa-var-vaadin); }
|
||||
.#{$fa-css-prefix}-venus:before { content: fa-content($fa-var-venus); }
|
||||
.#{$fa-css-prefix}-venus-double:before { content: fa-content($fa-var-venus-double); }
|
||||
.#{$fa-css-prefix}-venus-mars:before { content: fa-content($fa-var-venus-mars); }
|
||||
.#{$fa-css-prefix}-viacoin:before { content: fa-content($fa-var-viacoin); }
|
||||
.#{$fa-css-prefix}-viadeo:before { content: fa-content($fa-var-viadeo); }
|
||||
.#{$fa-css-prefix}-viadeo-square:before { content: fa-content($fa-var-viadeo-square); }
|
||||
.#{$fa-css-prefix}-viber:before { content: fa-content($fa-var-viber); }
|
||||
.#{$fa-css-prefix}-video:before { content: fa-content($fa-var-video); }
|
||||
.#{$fa-css-prefix}-vimeo:before { content: fa-content($fa-var-vimeo); }
|
||||
.#{$fa-css-prefix}-vimeo-square:before { content: fa-content($fa-var-vimeo-square); }
|
||||
.#{$fa-css-prefix}-vimeo-v:before { content: fa-content($fa-var-vimeo-v); }
|
||||
.#{$fa-css-prefix}-vine:before { content: fa-content($fa-var-vine); }
|
||||
.#{$fa-css-prefix}-vk:before { content: fa-content($fa-var-vk); }
|
||||
.#{$fa-css-prefix}-vnv:before { content: fa-content($fa-var-vnv); }
|
||||
.#{$fa-css-prefix}-volume-down:before { content: fa-content($fa-var-volume-down); }
|
||||
.#{$fa-css-prefix}-volume-mute:before { content: fa-content($fa-var-volume-mute); }
|
||||
.#{$fa-css-prefix}-volume-off:before { content: fa-content($fa-var-volume-off); }
|
||||
.#{$fa-css-prefix}-volume-up:before { content: fa-content($fa-var-volume-up); }
|
||||
.#{$fa-css-prefix}-vuejs:before { content: fa-content($fa-var-vuejs); }
|
||||
.#{$fa-css-prefix}-watch:before { content: fa-content($fa-var-watch); }
|
||||
.#{$fa-css-prefix}-weibo:before { content: fa-content($fa-var-weibo); }
|
||||
.#{$fa-css-prefix}-weixin:before { content: fa-content($fa-var-weixin); }
|
||||
.#{$fa-css-prefix}-whatsapp:before { content: fa-content($fa-var-whatsapp); }
|
||||
.#{$fa-css-prefix}-whatsapp-square:before { content: fa-content($fa-var-whatsapp-square); }
|
||||
.#{$fa-css-prefix}-wheelchair:before { content: fa-content($fa-var-wheelchair); }
|
||||
.#{$fa-css-prefix}-whmcs:before { content: fa-content($fa-var-whmcs); }
|
||||
.#{$fa-css-prefix}-wifi:before { content: fa-content($fa-var-wifi); }
|
||||
.#{$fa-css-prefix}-wikipedia-w:before { content: fa-content($fa-var-wikipedia-w); }
|
||||
.#{$fa-css-prefix}-window:before { content: fa-content($fa-var-window); }
|
||||
.#{$fa-css-prefix}-window-alt:before { content: fa-content($fa-var-window-alt); }
|
||||
.#{$fa-css-prefix}-window-close:before { content: fa-content($fa-var-window-close); }
|
||||
.#{$fa-css-prefix}-window-maximize:before { content: fa-content($fa-var-window-maximize); }
|
||||
.#{$fa-css-prefix}-window-minimize:before { content: fa-content($fa-var-window-minimize); }
|
||||
.#{$fa-css-prefix}-window-restore:before { content: fa-content($fa-var-window-restore); }
|
||||
.#{$fa-css-prefix}-windows:before { content: fa-content($fa-var-windows); }
|
||||
.#{$fa-css-prefix}-won-sign:before { content: fa-content($fa-var-won-sign); }
|
||||
.#{$fa-css-prefix}-wordpress:before { content: fa-content($fa-var-wordpress); }
|
||||
.#{$fa-css-prefix}-wordpress-simple:before { content: fa-content($fa-var-wordpress-simple); }
|
||||
.#{$fa-css-prefix}-wpbeginner:before { content: fa-content($fa-var-wpbeginner); }
|
||||
.#{$fa-css-prefix}-wpexplorer:before { content: fa-content($fa-var-wpexplorer); }
|
||||
.#{$fa-css-prefix}-wpforms:before { content: fa-content($fa-var-wpforms); }
|
||||
.#{$fa-css-prefix}-wrench:before { content: fa-content($fa-var-wrench); }
|
||||
.#{$fa-css-prefix}-xbox:before { content: fa-content($fa-var-xbox); }
|
||||
.#{$fa-css-prefix}-xing:before { content: fa-content($fa-var-xing); }
|
||||
.#{$fa-css-prefix}-xing-square:before { content: fa-content($fa-var-xing-square); }
|
||||
.#{$fa-css-prefix}-y-combinator:before { content: fa-content($fa-var-y-combinator); }
|
||||
.#{$fa-css-prefix}-yahoo:before { content: fa-content($fa-var-yahoo); }
|
||||
.#{$fa-css-prefix}-yandex:before { content: fa-content($fa-var-yandex); }
|
||||
.#{$fa-css-prefix}-yandex-international:before { content: fa-content($fa-var-yandex-international); }
|
||||
.#{$fa-css-prefix}-yelp:before { content: fa-content($fa-var-yelp); }
|
||||
.#{$fa-css-prefix}-yen-sign:before { content: fa-content($fa-var-yen-sign); }
|
||||
.#{$fa-css-prefix}-yoast:before { content: fa-content($fa-var-yoast); }
|
||||
.#{$fa-css-prefix}-youtube:before { content: fa-content($fa-var-youtube); }
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
// Icon Sizes
|
||||
// -------------------------
|
||||
|
||||
// makes the font 33% larger relative to the icon container
|
||||
.#{$fa-css-prefix}-lg {
|
||||
font-size: (4em / 3);
|
||||
line-height: (3em / 4);
|
||||
vertical-align: -.0667em;
|
||||
}
|
||||
|
||||
.#{$fa-css-prefix}-xs {
|
||||
font-size: .75em;
|
||||
}
|
||||
|
||||
.#{$fa-css-prefix}-sm {
|
||||
font-size: .875em;
|
||||
}
|
||||
|
||||
@for $i from 1 through 10 {
|
||||
.#{$fa-css-prefix}-#{$i}x {
|
||||
font-size: $i * 1em;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
// List Icons
|
||||
// -------------------------
|
||||
|
||||
.#{$fa-css-prefix}-ul {
|
||||
list-style-type: none;
|
||||
margin-left: $fa-li-width * 5/4;
|
||||
padding-left: 0;
|
||||
|
||||
> li { position: relative; }
|
||||
}
|
||||
|
||||
.#{$fa-css-prefix}-li {
|
||||
left: -$fa-li-width;
|
||||
position: absolute;
|
||||
text-align: center;
|
||||
width: $fa-li-width;
|
||||
line-height: inherit;
|
||||
}
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
// Mixins
|
||||
// --------------------------
|
||||
|
||||
@mixin fa-icon {
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
display: inline-block;
|
||||
font-style: normal;
|
||||
font-variant: normal;
|
||||
font-weight: normal;
|
||||
line-height: 1;
|
||||
vertical-align: -15%;
|
||||
}
|
||||
|
||||
@mixin fa-icon-rotate($degrees, $rotation) {
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})";
|
||||
transform: rotate($degrees);
|
||||
}
|
||||
|
||||
@mixin fa-icon-flip($horiz, $vert, $rotation) {
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)";
|
||||
transform: scale($horiz, $vert);
|
||||
}
|
||||
|
||||
|
||||
// Only display content to screen readers. A la Bootstrap 4.
|
||||
//
|
||||
// See: http://a11yproject.com/posts/how-to-hide-content/
|
||||
|
||||
@mixin sr-only {
|
||||
border: 0;
|
||||
clip: rect(0, 0, 0, 0);
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
overflow: hidden;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
}
|
||||
|
||||
// Use in conjunction with .sr-only to only display content when it's focused.
|
||||
//
|
||||
// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
|
||||
//
|
||||
// Credit: HTML5 Boilerplate
|
||||
|
||||
@mixin sr-only-focusable {
|
||||
&:active,
|
||||
&:focus {
|
||||
clip: auto;
|
||||
height: auto;
|
||||
margin: 0;
|
||||
overflow: visible;
|
||||
position: static;
|
||||
width: auto;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
// Rotated & Flipped Icons
|
||||
// -------------------------
|
||||
|
||||
.#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); }
|
||||
.#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); }
|
||||
.#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); }
|
||||
|
||||
.#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); }
|
||||
.#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); }
|
||||
.#{$fa-css-prefix}-flip-horizontal.#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(-1, -1, 2); }
|
||||
|
||||
// Hook for IE8-9
|
||||
// -------------------------
|
||||
|
||||
:root {
|
||||
.#{$fa-css-prefix}-rotate-90,
|
||||
.#{$fa-css-prefix}-rotate-180,
|
||||
.#{$fa-css-prefix}-rotate-270,
|
||||
.#{$fa-css-prefix}-flip-horizontal,
|
||||
.#{$fa-css-prefix}-flip-vertical {
|
||||
filter: none;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
// Screen Readers
|
||||
// -------------------------
|
||||
|
||||
.sr-only { @include sr-only; }
|
||||
.sr-only-focusable { @include sr-only-focusable; }
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
// Stacked Icons
|
||||
// -------------------------
|
||||
|
||||
.#{$fa-css-prefix}-stack {
|
||||
display: inline-block;
|
||||
height: 2em;
|
||||
line-height: 2em;
|
||||
position: relative;
|
||||
vertical-align: middle;
|
||||
width: 2em;
|
||||
}
|
||||
|
||||
.#{$fa-css-prefix}-stack-1x,
|
||||
.#{$fa-css-prefix}-stack-2x {
|
||||
left: 0;
|
||||
position: absolute;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.#{$fa-css-prefix}-stack-1x {
|
||||
line-height: inherit;
|
||||
}
|
||||
|
||||
.#{$fa-css-prefix}-stack-2x {
|
||||
font-size: 2em;
|
||||
}
|
||||
|
||||
.#{$fa-css-prefix}-inverse {
|
||||
color: $fa-inverse;
|
||||
}
|
||||
|
|
@ -0,0 +1,959 @@
|
|||
// Variables
|
||||
// --------------------------
|
||||
|
||||
$fa-font-path: "/webfonts" !default;
|
||||
$fa-font-size-base: 16px !default;
|
||||
$fa-css-prefix: fa !default;
|
||||
$fa-version: "5.0.2" !default;
|
||||
$fa-border-color: #eee !default;
|
||||
$fa-inverse: #fff !default;
|
||||
$fa-li-width: 2em !default;
|
||||
|
||||
// Convenience function used to set content property
|
||||
@function fa-content($fa-var) {
|
||||
@return unquote("\"#{ $fa-var }\"");
|
||||
}
|
||||
|
||||
$fa-var-500px: \f26e;
|
||||
$fa-var-accessible-icon: \f368;
|
||||
$fa-var-accusoft: \f369;
|
||||
$fa-var-address-book: \f2b9;
|
||||
$fa-var-address-card: \f2bb;
|
||||
$fa-var-adjust: \f042;
|
||||
$fa-var-adn: \f170;
|
||||
$fa-var-adversal: \f36a;
|
||||
$fa-var-affiliatetheme: \f36b;
|
||||
$fa-var-alarm-clock: \f34e;
|
||||
$fa-var-algolia: \f36c;
|
||||
$fa-var-align-center: \f037;
|
||||
$fa-var-align-justify: \f039;
|
||||
$fa-var-align-left: \f036;
|
||||
$fa-var-align-right: \f038;
|
||||
$fa-var-amazon: \f270;
|
||||
$fa-var-amazon-pay: \f42c;
|
||||
$fa-var-ambulance: \f0f9;
|
||||
$fa-var-american-sign-language-interpreting: \f2a3;
|
||||
$fa-var-amilia: \f36d;
|
||||
$fa-var-anchor: \f13d;
|
||||
$fa-var-android: \f17b;
|
||||
$fa-var-angellist: \f209;
|
||||
$fa-var-angle-double-down: \f103;
|
||||
$fa-var-angle-double-left: \f100;
|
||||
$fa-var-angle-double-right: \f101;
|
||||
$fa-var-angle-double-up: \f102;
|
||||
$fa-var-angle-down: \f107;
|
||||
$fa-var-angle-left: \f104;
|
||||
$fa-var-angle-right: \f105;
|
||||
$fa-var-angle-up: \f106;
|
||||
$fa-var-angrycreative: \f36e;
|
||||
$fa-var-angular: \f420;
|
||||
$fa-var-app-store: \f36f;
|
||||
$fa-var-app-store-ios: \f370;
|
||||
$fa-var-apper: \f371;
|
||||
$fa-var-apple: \f179;
|
||||
$fa-var-apple-pay: \f415;
|
||||
$fa-var-archive: \f187;
|
||||
$fa-var-arrow-alt-circle-down: \f358;
|
||||
$fa-var-arrow-alt-circle-left: \f359;
|
||||
$fa-var-arrow-alt-circle-right: \f35a;
|
||||
$fa-var-arrow-alt-circle-up: \f35b;
|
||||
$fa-var-arrow-alt-down: \f354;
|
||||
$fa-var-arrow-alt-from-bottom: \f346;
|
||||
$fa-var-arrow-alt-from-left: \f347;
|
||||
$fa-var-arrow-alt-from-right: \f348;
|
||||
$fa-var-arrow-alt-from-top: \f349;
|
||||
$fa-var-arrow-alt-left: \f355;
|
||||
$fa-var-arrow-alt-right: \f356;
|
||||
$fa-var-arrow-alt-square-down: \f350;
|
||||
$fa-var-arrow-alt-square-left: \f351;
|
||||
$fa-var-arrow-alt-square-right: \f352;
|
||||
$fa-var-arrow-alt-square-up: \f353;
|
||||
$fa-var-arrow-alt-to-bottom: \f34a;
|
||||
$fa-var-arrow-alt-to-left: \f34b;
|
||||
$fa-var-arrow-alt-to-right: \f34c;
|
||||
$fa-var-arrow-alt-to-top: \f34d;
|
||||
$fa-var-arrow-alt-up: \f357;
|
||||
$fa-var-arrow-circle-down: \f0ab;
|
||||
$fa-var-arrow-circle-left: \f0a8;
|
||||
$fa-var-arrow-circle-right: \f0a9;
|
||||
$fa-var-arrow-circle-up: \f0aa;
|
||||
$fa-var-arrow-down: \f063;
|
||||
$fa-var-arrow-from-bottom: \f342;
|
||||
$fa-var-arrow-from-left: \f343;
|
||||
$fa-var-arrow-from-right: \f344;
|
||||
$fa-var-arrow-from-top: \f345;
|
||||
$fa-var-arrow-left: \f060;
|
||||
$fa-var-arrow-right: \f061;
|
||||
$fa-var-arrow-square-down: \f339;
|
||||
$fa-var-arrow-square-left: \f33a;
|
||||
$fa-var-arrow-square-right: \f33b;
|
||||
$fa-var-arrow-square-up: \f33c;
|
||||
$fa-var-arrow-to-bottom: \f33d;
|
||||
$fa-var-arrow-to-left: \f33e;
|
||||
$fa-var-arrow-to-right: \f340;
|
||||
$fa-var-arrow-to-top: \f341;
|
||||
$fa-var-arrow-up: \f062;
|
||||
$fa-var-arrows: \f047;
|
||||
$fa-var-arrows-alt: \f0b2;
|
||||
$fa-var-arrows-alt-h: \f337;
|
||||
$fa-var-arrows-alt-v: \f338;
|
||||
$fa-var-arrows-h: \f07e;
|
||||
$fa-var-arrows-v: \f07d;
|
||||
$fa-var-assistive-listening-systems: \f2a2;
|
||||
$fa-var-asterisk: \f069;
|
||||
$fa-var-asymmetrik: \f372;
|
||||
$fa-var-at: \f1fa;
|
||||
$fa-var-audible: \f373;
|
||||
$fa-var-audio-description: \f29e;
|
||||
$fa-var-autoprefixer: \f41c;
|
||||
$fa-var-avianex: \f374;
|
||||
$fa-var-aviato: \f421;
|
||||
$fa-var-aws: \f375;
|
||||
$fa-var-backward: \f04a;
|
||||
$fa-var-badge: \f335;
|
||||
$fa-var-badge-check: \f336;
|
||||
$fa-var-balance-scale: \f24e;
|
||||
$fa-var-ban: \f05e;
|
||||
$fa-var-bandcamp: \f2d5;
|
||||
$fa-var-barcode: \f02a;
|
||||
$fa-var-bars: \f0c9;
|
||||
$fa-var-bath: \f2cd;
|
||||
$fa-var-battery-bolt: \f376;
|
||||
$fa-var-battery-empty: \f244;
|
||||
$fa-var-battery-full: \f240;
|
||||
$fa-var-battery-half: \f242;
|
||||
$fa-var-battery-quarter: \f243;
|
||||
$fa-var-battery-slash: \f377;
|
||||
$fa-var-battery-three-quarters: \f241;
|
||||
$fa-var-bed: \f236;
|
||||
$fa-var-beer: \f0fc;
|
||||
$fa-var-behance: \f1b4;
|
||||
$fa-var-behance-square: \f1b5;
|
||||
$fa-var-bell: \f0f3;
|
||||
$fa-var-bell-slash: \f1f6;
|
||||
$fa-var-bicycle: \f206;
|
||||
$fa-var-bimobject: \f378;
|
||||
$fa-var-binoculars: \f1e5;
|
||||
$fa-var-birthday-cake: \f1fd;
|
||||
$fa-var-bitbucket: \f171;
|
||||
$fa-var-bitcoin: \f379;
|
||||
$fa-var-bity: \f37a;
|
||||
$fa-var-black-tie: \f27e;
|
||||
$fa-var-blackberry: \f37b;
|
||||
$fa-var-blind: \f29d;
|
||||
$fa-var-blogger: \f37c;
|
||||
$fa-var-blogger-b: \f37d;
|
||||
$fa-var-bluetooth: \f293;
|
||||
$fa-var-bluetooth-b: \f294;
|
||||
$fa-var-bold: \f032;
|
||||
$fa-var-bolt: \f0e7;
|
||||
$fa-var-bomb: \f1e2;
|
||||
$fa-var-book: \f02d;
|
||||
$fa-var-bookmark: \f02e;
|
||||
$fa-var-braille: \f2a1;
|
||||
$fa-var-briefcase: \f0b1;
|
||||
$fa-var-browser: \f37e;
|
||||
$fa-var-btc: \f15a;
|
||||
$fa-var-bug: \f188;
|
||||
$fa-var-building: \f1ad;
|
||||
$fa-var-bullhorn: \f0a1;
|
||||
$fa-var-bullseye: \f140;
|
||||
$fa-var-buromobelexperte: \f37f;
|
||||
$fa-var-bus: \f207;
|
||||
$fa-var-buysellads: \f20d;
|
||||
$fa-var-calculator: \f1ec;
|
||||
$fa-var-calendar: \f133;
|
||||
$fa-var-calendar-alt: \f073;
|
||||
$fa-var-calendar-check: \f274;
|
||||
$fa-var-calendar-edit: \f333;
|
||||
$fa-var-calendar-exclamation: \f334;
|
||||
$fa-var-calendar-minus: \f272;
|
||||
$fa-var-calendar-plus: \f271;
|
||||
$fa-var-calendar-times: \f273;
|
||||
$fa-var-camera: \f030;
|
||||
$fa-var-camera-alt: \f332;
|
||||
$fa-var-camera-retro: \f083;
|
||||
$fa-var-car: \f1b9;
|
||||
$fa-var-caret-circle-down: \f32d;
|
||||
$fa-var-caret-circle-left: \f32e;
|
||||
$fa-var-caret-circle-right: \f330;
|
||||
$fa-var-caret-circle-up: \f331;
|
||||
$fa-var-caret-down: \f0d7;
|
||||
$fa-var-caret-left: \f0d9;
|
||||
$fa-var-caret-right: \f0da;
|
||||
$fa-var-caret-square-down: \f150;
|
||||
$fa-var-caret-square-left: \f191;
|
||||
$fa-var-caret-square-right: \f152;
|
||||
$fa-var-caret-square-up: \f151;
|
||||
$fa-var-caret-up: \f0d8;
|
||||
$fa-var-cart-arrow-down: \f218;
|
||||
$fa-var-cart-plus: \f217;
|
||||
$fa-var-cc-amazon-pay: \f42d;
|
||||
$fa-var-cc-amex: \f1f3;
|
||||
$fa-var-cc-apple-pay: \f416;
|
||||
$fa-var-cc-diners-club: \f24c;
|
||||
$fa-var-cc-discover: \f1f2;
|
||||
$fa-var-cc-jcb: \f24b;
|
||||
$fa-var-cc-mastercard: \f1f1;
|
||||
$fa-var-cc-paypal: \f1f4;
|
||||
$fa-var-cc-stripe: \f1f5;
|
||||
$fa-var-cc-visa: \f1f0;
|
||||
$fa-var-centercode: \f380;
|
||||
$fa-var-certificate: \f0a3;
|
||||
$fa-var-chart-area: \f1fe;
|
||||
$fa-var-chart-bar: \f080;
|
||||
$fa-var-chart-line: \f201;
|
||||
$fa-var-chart-pie: \f200;
|
||||
$fa-var-check: \f00c;
|
||||
$fa-var-check-circle: \f058;
|
||||
$fa-var-check-square: \f14a;
|
||||
$fa-var-chevron-circle-down: \f13a;
|
||||
$fa-var-chevron-circle-left: \f137;
|
||||
$fa-var-chevron-circle-right: \f138;
|
||||
$fa-var-chevron-circle-up: \f139;
|
||||
$fa-var-chevron-double-down: \f322;
|
||||
$fa-var-chevron-double-left: \f323;
|
||||
$fa-var-chevron-double-right: \f324;
|
||||
$fa-var-chevron-double-up: \f325;
|
||||
$fa-var-chevron-down: \f078;
|
||||
$fa-var-chevron-left: \f053;
|
||||
$fa-var-chevron-right: \f054;
|
||||
$fa-var-chevron-square-down: \f329;
|
||||
$fa-var-chevron-square-left: \f32a;
|
||||
$fa-var-chevron-square-right: \f32b;
|
||||
$fa-var-chevron-square-up: \f32c;
|
||||
$fa-var-chevron-up: \f077;
|
||||
$fa-var-child: \f1ae;
|
||||
$fa-var-chrome: \f268;
|
||||
$fa-var-circle: \f111;
|
||||
$fa-var-circle-notch: \f1ce;
|
||||
$fa-var-clipboard: \f328;
|
||||
$fa-var-clock: \f017;
|
||||
$fa-var-clone: \f24d;
|
||||
$fa-var-closed-captioning: \f20a;
|
||||
$fa-var-cloud: \f0c2;
|
||||
$fa-var-cloud-download: \f0ed;
|
||||
$fa-var-cloud-download-alt: \f381;
|
||||
$fa-var-cloud-upload: \f0ee;
|
||||
$fa-var-cloud-upload-alt: \f382;
|
||||
$fa-var-cloudscale: \f383;
|
||||
$fa-var-cloudsmith: \f384;
|
||||
$fa-var-cloudversify: \f385;
|
||||
$fa-var-club: \f327;
|
||||
$fa-var-code: \f121;
|
||||
$fa-var-code-branch: \f126;
|
||||
$fa-var-code-commit: \f386;
|
||||
$fa-var-code-merge: \f387;
|
||||
$fa-var-codepen: \f1cb;
|
||||
$fa-var-codiepie: \f284;
|
||||
$fa-var-coffee: \f0f4;
|
||||
$fa-var-cog: \f013;
|
||||
$fa-var-cogs: \f085;
|
||||
$fa-var-columns: \f0db;
|
||||
$fa-var-comment: \f075;
|
||||
$fa-var-comment-alt: \f27a;
|
||||
$fa-var-comments: \f086;
|
||||
$fa-var-compass: \f14e;
|
||||
$fa-var-compress: \f066;
|
||||
$fa-var-compress-alt: \f422;
|
||||
$fa-var-compress-wide: \f326;
|
||||
$fa-var-connectdevelop: \f20e;
|
||||
$fa-var-contao: \f26d;
|
||||
$fa-var-copy: \f0c5;
|
||||
$fa-var-copyright: \f1f9;
|
||||
$fa-var-cpanel: \f388;
|
||||
$fa-var-creative-commons: \f25e;
|
||||
$fa-var-credit-card: \f09d;
|
||||
$fa-var-credit-card-blank: \f389;
|
||||
$fa-var-credit-card-front: \f38a;
|
||||
$fa-var-crop: \f125;
|
||||
$fa-var-crosshairs: \f05b;
|
||||
$fa-var-css3: \f13c;
|
||||
$fa-var-css3-alt: \f38b;
|
||||
$fa-var-cube: \f1b2;
|
||||
$fa-var-cubes: \f1b3;
|
||||
$fa-var-cut: \f0c4;
|
||||
$fa-var-cuttlefish: \f38c;
|
||||
$fa-var-d-and-d: \f38d;
|
||||
$fa-var-dashcube: \f210;
|
||||
$fa-var-database: \f1c0;
|
||||
$fa-var-deaf: \f2a4;
|
||||
$fa-var-delicious: \f1a5;
|
||||
$fa-var-deploydog: \f38e;
|
||||
$fa-var-deskpro: \f38f;
|
||||
$fa-var-desktop: \f108;
|
||||
$fa-var-desktop-alt: \f390;
|
||||
$fa-var-deviantart: \f1bd;
|
||||
$fa-var-diamond: \f219;
|
||||
$fa-var-digg: \f1a6;
|
||||
$fa-var-digital-ocean: \f391;
|
||||
$fa-var-discord: \f392;
|
||||
$fa-var-discourse: \f393;
|
||||
$fa-var-dochub: \f394;
|
||||
$fa-var-docker: \f395;
|
||||
$fa-var-dollar-sign: \f155;
|
||||
$fa-var-dot-circle: \f192;
|
||||
$fa-var-download: \f019;
|
||||
$fa-var-draft2digital: \f396;
|
||||
$fa-var-dribbble: \f17d;
|
||||
$fa-var-dribbble-square: \f397;
|
||||
$fa-var-dropbox: \f16b;
|
||||
$fa-var-drupal: \f1a9;
|
||||
$fa-var-dyalog: \f399;
|
||||
$fa-var-earlybirds: \f39a;
|
||||
$fa-var-edge: \f282;
|
||||
$fa-var-edit: \f044;
|
||||
$fa-var-eject: \f052;
|
||||
$fa-var-ellipsis-h: \f141;
|
||||
$fa-var-ellipsis-h-alt: \f39b;
|
||||
$fa-var-ellipsis-v: \f142;
|
||||
$fa-var-ellipsis-v-alt: \f39c;
|
||||
$fa-var-ember: \f423;
|
||||
$fa-var-empire: \f1d1;
|
||||
$fa-var-envelope: \f0e0;
|
||||
$fa-var-envelope-open: \f2b6;
|
||||
$fa-var-envelope-square: \f199;
|
||||
$fa-var-envira: \f299;
|
||||
$fa-var-eraser: \f12d;
|
||||
$fa-var-erlang: \f39d;
|
||||
$fa-var-ethereum: \f42e;
|
||||
$fa-var-etsy: \f2d7;
|
||||
$fa-var-euro-sign: \f153;
|
||||
$fa-var-exchange: \f0ec;
|
||||
$fa-var-exchange-alt: \f362;
|
||||
$fa-var-exclamation: \f12a;
|
||||
$fa-var-exclamation-circle: \f06a;
|
||||
$fa-var-exclamation-square: \f321;
|
||||
$fa-var-exclamation-triangle: \f071;
|
||||
$fa-var-expand: \f065;
|
||||
$fa-var-expand-alt: \f424;
|
||||
$fa-var-expand-arrows: \f31d;
|
||||
$fa-var-expand-arrows-alt: \f31e;
|
||||
$fa-var-expand-wide: \f320;
|
||||
$fa-var-expeditedssl: \f23e;
|
||||
$fa-var-external-link: \f08e;
|
||||
$fa-var-external-link-alt: \f35d;
|
||||
$fa-var-external-link-square: \f14c;
|
||||
$fa-var-external-link-square-alt: \f360;
|
||||
$fa-var-eye: \f06e;
|
||||
$fa-var-eye-dropper: \f1fb;
|
||||
$fa-var-eye-slash: \f070;
|
||||
$fa-var-facebook: \f09a;
|
||||
$fa-var-facebook-f: \f39e;
|
||||
$fa-var-facebook-messenger: \f39f;
|
||||
$fa-var-facebook-square: \f082;
|
||||
$fa-var-fast-backward: \f049;
|
||||
$fa-var-fast-forward: \f050;
|
||||
$fa-var-fax: \f1ac;
|
||||
$fa-var-female: \f182;
|
||||
$fa-var-fighter-jet: \f0fb;
|
||||
$fa-var-file: \f15b;
|
||||
$fa-var-file-alt: \f15c;
|
||||
$fa-var-file-archive: \f1c6;
|
||||
$fa-var-file-audio: \f1c7;
|
||||
$fa-var-file-check: \f316;
|
||||
$fa-var-file-code: \f1c9;
|
||||
$fa-var-file-edit: \f31c;
|
||||
$fa-var-file-excel: \f1c3;
|
||||
$fa-var-file-exclamation: \f31a;
|
||||
$fa-var-file-image: \f1c5;
|
||||
$fa-var-file-minus: \f318;
|
||||
$fa-var-file-pdf: \f1c1;
|
||||
$fa-var-file-plus: \f319;
|
||||
$fa-var-file-powerpoint: \f1c4;
|
||||
$fa-var-file-times: \f317;
|
||||
$fa-var-file-video: \f1c8;
|
||||
$fa-var-file-word: \f1c2;
|
||||
$fa-var-film: \f008;
|
||||
$fa-var-film-alt: \f3a0;
|
||||
$fa-var-filter: \f0b0;
|
||||
$fa-var-fire: \f06d;
|
||||
$fa-var-fire-extinguisher: \f134;
|
||||
$fa-var-firefox: \f269;
|
||||
$fa-var-first-order: \f2b0;
|
||||
$fa-var-firstdraft: \f3a1;
|
||||
$fa-var-flag: \f024;
|
||||
$fa-var-flag-checkered: \f11e;
|
||||
$fa-var-flask: \f0c3;
|
||||
$fa-var-flickr: \f16e;
|
||||
$fa-var-fly: \f417;
|
||||
$fa-var-folder: \f07b;
|
||||
$fa-var-folder-open: \f07c;
|
||||
$fa-var-font: \f031;
|
||||
$fa-var-font-awesome: \f2b4;
|
||||
$fa-var-font-awesome-alt: \f35c;
|
||||
$fa-var-font-awesome-flag: \f425;
|
||||
$fa-var-fonticons: \f280;
|
||||
$fa-var-fonticons-fi: \f3a2;
|
||||
$fa-var-fort-awesome: \f286;
|
||||
$fa-var-fort-awesome-alt: \f3a3;
|
||||
$fa-var-forumbee: \f211;
|
||||
$fa-var-forward: \f04e;
|
||||
$fa-var-foursquare: \f180;
|
||||
$fa-var-free-code-camp: \f2c5;
|
||||
$fa-var-freebsd: \f3a4;
|
||||
$fa-var-frown: \f119;
|
||||
$fa-var-futbol: \f1e3;
|
||||
$fa-var-gamepad: \f11b;
|
||||
$fa-var-gavel: \f0e3;
|
||||
$fa-var-gem: \f3a5;
|
||||
$fa-var-genderless: \f22d;
|
||||
$fa-var-get-pocket: \f265;
|
||||
$fa-var-gg: \f260;
|
||||
$fa-var-gg-circle: \f261;
|
||||
$fa-var-gift: \f06b;
|
||||
$fa-var-git: \f1d3;
|
||||
$fa-var-git-square: \f1d2;
|
||||
$fa-var-github: \f09b;
|
||||
$fa-var-github-alt: \f113;
|
||||
$fa-var-github-square: \f092;
|
||||
$fa-var-gitkraken: \f3a6;
|
||||
$fa-var-gitlab: \f296;
|
||||
$fa-var-gitter: \f426;
|
||||
$fa-var-glass-martini: \f000;
|
||||
$fa-var-glide: \f2a5;
|
||||
$fa-var-glide-g: \f2a6;
|
||||
$fa-var-globe: \f0ac;
|
||||
$fa-var-gofore: \f3a7;
|
||||
$fa-var-goodreads: \f3a8;
|
||||
$fa-var-goodreads-g: \f3a9;
|
||||
$fa-var-google: \f1a0;
|
||||
$fa-var-google-drive: \f3aa;
|
||||
$fa-var-google-play: \f3ab;
|
||||
$fa-var-google-plus: \f2b3;
|
||||
$fa-var-google-plus-g: \f0d5;
|
||||
$fa-var-google-plus-square: \f0d4;
|
||||
$fa-var-google-wallet: \f1ee;
|
||||
$fa-var-graduation-cap: \f19d;
|
||||
$fa-var-gratipay: \f184;
|
||||
$fa-var-grav: \f2d6;
|
||||
$fa-var-gripfire: \f3ac;
|
||||
$fa-var-grunt: \f3ad;
|
||||
$fa-var-gulp: \f3ae;
|
||||
$fa-var-h-square: \f0fd;
|
||||
$fa-var-h1: \f313;
|
||||
$fa-var-h2: \f314;
|
||||
$fa-var-h3: \f315;
|
||||
$fa-var-hacker-news: \f1d4;
|
||||
$fa-var-hacker-news-square: \f3af;
|
||||
$fa-var-hand-lizard: \f258;
|
||||
$fa-var-hand-paper: \f256;
|
||||
$fa-var-hand-peace: \f25b;
|
||||
$fa-var-hand-point-down: \f0a7;
|
||||
$fa-var-hand-point-left: \f0a5;
|
||||
$fa-var-hand-point-right: \f0a4;
|
||||
$fa-var-hand-point-up: \f0a6;
|
||||
$fa-var-hand-pointer: \f25a;
|
||||
$fa-var-hand-rock: \f255;
|
||||
$fa-var-hand-scissors: \f257;
|
||||
$fa-var-hand-spock: \f259;
|
||||
$fa-var-handshake: \f2b5;
|
||||
$fa-var-hashtag: \f292;
|
||||
$fa-var-hdd: \f0a0;
|
||||
$fa-var-heading: \f1dc;
|
||||
$fa-var-headphones: \f025;
|
||||
$fa-var-heart: \f004;
|
||||
$fa-var-heartbeat: \f21e;
|
||||
$fa-var-hexagon: \f312;
|
||||
$fa-var-hire-a-helper: \f3b0;
|
||||
$fa-var-history: \f1da;
|
||||
$fa-var-home: \f015;
|
||||
$fa-var-hooli: \f427;
|
||||
$fa-var-hospital: \f0f8;
|
||||
$fa-var-hotjar: \f3b1;
|
||||
$fa-var-hourglass: \f254;
|
||||
$fa-var-hourglass-end: \f253;
|
||||
$fa-var-hourglass-half: \f252;
|
||||
$fa-var-hourglass-start: \f251;
|
||||
$fa-var-houzz: \f27c;
|
||||
$fa-var-html5: \f13b;
|
||||
$fa-var-hubspot: \f3b2;
|
||||
$fa-var-i-cursor: \f246;
|
||||
$fa-var-id-badge: \f2c1;
|
||||
$fa-var-id-card: \f2c2;
|
||||
$fa-var-image: \f03e;
|
||||
$fa-var-images: \f302;
|
||||
$fa-var-imdb: \f2d8;
|
||||
$fa-var-inbox: \f01c;
|
||||
$fa-var-inbox-in: \f310;
|
||||
$fa-var-inbox-out: \f311;
|
||||
$fa-var-indent: \f03c;
|
||||
$fa-var-industry: \f275;
|
||||
$fa-var-industry-alt: \f3b3;
|
||||
$fa-var-info: \f129;
|
||||
$fa-var-info-circle: \f05a;
|
||||
$fa-var-info-square: \f30f;
|
||||
$fa-var-instagram: \f16d;
|
||||
$fa-var-internet-explorer: \f26b;
|
||||
$fa-var-ioxhost: \f208;
|
||||
$fa-var-italic: \f033;
|
||||
$fa-var-itunes: \f3b4;
|
||||
$fa-var-itunes-note: \f3b5;
|
||||
$fa-var-jack-o-lantern: \f30e;
|
||||
$fa-var-jenkins: \f3b6;
|
||||
$fa-var-joget: \f3b7;
|
||||
$fa-var-joomla: \f1aa;
|
||||
$fa-var-js: \f3b8;
|
||||
$fa-var-js-square: \f3b9;
|
||||
$fa-var-jsfiddle: \f1cc;
|
||||
$fa-var-key: \f084;
|
||||
$fa-var-keyboard: \f11c;
|
||||
$fa-var-keycdn: \f3ba;
|
||||
$fa-var-kickstarter: \f3bb;
|
||||
$fa-var-kickstarter-k: \f3bc;
|
||||
$fa-var-korvue: \f42f;
|
||||
$fa-var-language: \f1ab;
|
||||
$fa-var-laptop: \f109;
|
||||
$fa-var-laravel: \f3bd;
|
||||
$fa-var-lastfm: \f202;
|
||||
$fa-var-lastfm-square: \f203;
|
||||
$fa-var-leaf: \f06c;
|
||||
$fa-var-leanpub: \f212;
|
||||
$fa-var-lemon: \f094;
|
||||
$fa-var-less: \f41d;
|
||||
$fa-var-level-down: \f149;
|
||||
$fa-var-level-down-alt: \f3be;
|
||||
$fa-var-level-up: \f148;
|
||||
$fa-var-level-up-alt: \f3bf;
|
||||
$fa-var-life-ring: \f1cd;
|
||||
$fa-var-lightbulb: \f0eb;
|
||||
$fa-var-line: \f3c0;
|
||||
$fa-var-link: \f0c1;
|
||||
$fa-var-linkedin: \f08c;
|
||||
$fa-var-linkedin-in: \f0e1;
|
||||
$fa-var-linode: \f2b8;
|
||||
$fa-var-linux: \f17c;
|
||||
$fa-var-lira-sign: \f195;
|
||||
$fa-var-list: \f03a;
|
||||
$fa-var-list-alt: \f022;
|
||||
$fa-var-list-ol: \f0cb;
|
||||
$fa-var-list-ul: \f0ca;
|
||||
$fa-var-location-arrow: \f124;
|
||||
$fa-var-lock: \f023;
|
||||
$fa-var-lock-alt: \f30d;
|
||||
$fa-var-lock-open: \f3c1;
|
||||
$fa-var-lock-open-alt: \f3c2;
|
||||
$fa-var-long-arrow-alt-down: \f309;
|
||||
$fa-var-long-arrow-alt-left: \f30a;
|
||||
$fa-var-long-arrow-alt-right: \f30b;
|
||||
$fa-var-long-arrow-alt-up: \f30c;
|
||||
$fa-var-long-arrow-down: \f175;
|
||||
$fa-var-long-arrow-left: \f177;
|
||||
$fa-var-long-arrow-right: \f178;
|
||||
$fa-var-long-arrow-up: \f176;
|
||||
$fa-var-low-vision: \f2a8;
|
||||
$fa-var-lyft: \f3c3;
|
||||
$fa-var-magento: \f3c4;
|
||||
$fa-var-magic: \f0d0;
|
||||
$fa-var-magnet: \f076;
|
||||
$fa-var-male: \f183;
|
||||
$fa-var-map: \f279;
|
||||
$fa-var-map-marker: \f041;
|
||||
$fa-var-map-marker-alt: \f3c5;
|
||||
$fa-var-map-pin: \f276;
|
||||
$fa-var-map-signs: \f277;
|
||||
$fa-var-mars: \f222;
|
||||
$fa-var-mars-double: \f227;
|
||||
$fa-var-mars-stroke: \f229;
|
||||
$fa-var-mars-stroke-h: \f22b;
|
||||
$fa-var-mars-stroke-v: \f22a;
|
||||
$fa-var-maxcdn: \f136;
|
||||
$fa-var-medapps: \f3c6;
|
||||
$fa-var-medium: \f23a;
|
||||
$fa-var-medium-m: \f3c7;
|
||||
$fa-var-medkit: \f0fa;
|
||||
$fa-var-medrt: \f3c8;
|
||||
$fa-var-meetup: \f2e0;
|
||||
$fa-var-meh: \f11a;
|
||||
$fa-var-mercury: \f223;
|
||||
$fa-var-microchip: \f2db;
|
||||
$fa-var-microphone: \f130;
|
||||
$fa-var-microphone-alt: \f3c9;
|
||||
$fa-var-microphone-slash: \f131;
|
||||
$fa-var-microsoft: \f3ca;
|
||||
$fa-var-minus: \f068;
|
||||
$fa-var-minus-circle: \f056;
|
||||
$fa-var-minus-hexagon: \f307;
|
||||
$fa-var-minus-octagon: \f308;
|
||||
$fa-var-minus-square: \f146;
|
||||
$fa-var-mix: \f3cb;
|
||||
$fa-var-mixcloud: \f289;
|
||||
$fa-var-mizuni: \f3cc;
|
||||
$fa-var-mobile: \f10b;
|
||||
$fa-var-mobile-alt: \f3cd;
|
||||
$fa-var-mobile-android: \f3ce;
|
||||
$fa-var-mobile-android-alt: \f3cf;
|
||||
$fa-var-modx: \f285;
|
||||
$fa-var-monero: \f3d0;
|
||||
$fa-var-money-bill: \f0d6;
|
||||
$fa-var-money-bill-alt: \f3d1;
|
||||
$fa-var-moon: \f186;
|
||||
$fa-var-motorcycle: \f21c;
|
||||
$fa-var-mouse-pointer: \f245;
|
||||
$fa-var-music: \f001;
|
||||
$fa-var-napster: \f3d2;
|
||||
$fa-var-neuter: \f22c;
|
||||
$fa-var-newspaper: \f1ea;
|
||||
$fa-var-nintendo-switch: \f418;
|
||||
$fa-var-node: \f419;
|
||||
$fa-var-node-js: \f3d3;
|
||||
$fa-var-npm: \f3d4;
|
||||
$fa-var-ns8: \f3d5;
|
||||
$fa-var-nutritionix: \f3d6;
|
||||
$fa-var-object-group: \f247;
|
||||
$fa-var-object-ungroup: \f248;
|
||||
$fa-var-octagon: \f306;
|
||||
$fa-var-odnoklassniki: \f263;
|
||||
$fa-var-odnoklassniki-square: \f264;
|
||||
$fa-var-opencart: \f23d;
|
||||
$fa-var-openid: \f19b;
|
||||
$fa-var-opera: \f26a;
|
||||
$fa-var-optin-monster: \f23c;
|
||||
$fa-var-osi: \f41a;
|
||||
$fa-var-outdent: \f03b;
|
||||
$fa-var-page4: \f3d7;
|
||||
$fa-var-pagelines: \f18c;
|
||||
$fa-var-paint-brush: \f1fc;
|
||||
$fa-var-palfed: \f3d8;
|
||||
$fa-var-paper-plane: \f1d8;
|
||||
$fa-var-paperclip: \f0c6;
|
||||
$fa-var-paragraph: \f1dd;
|
||||
$fa-var-paste: \f0ea;
|
||||
$fa-var-patreon: \f3d9;
|
||||
$fa-var-pause: \f04c;
|
||||
$fa-var-pause-circle: \f28b;
|
||||
$fa-var-paw: \f1b0;
|
||||
$fa-var-paypal: \f1ed;
|
||||
$fa-var-pen: \f304;
|
||||
$fa-var-pen-alt: \f305;
|
||||
$fa-var-pen-square: \f14b;
|
||||
$fa-var-pencil: \f040;
|
||||
$fa-var-pencil-alt: \f303;
|
||||
$fa-var-percent: \f295;
|
||||
$fa-var-periscope: \f3da;
|
||||
$fa-var-phabricator: \f3db;
|
||||
$fa-var-phoenix-framework: \f3dc;
|
||||
$fa-var-phone: \f095;
|
||||
$fa-var-phone-slash: \f3dd;
|
||||
$fa-var-phone-square: \f098;
|
||||
$fa-var-phone-volume: \f2a0;
|
||||
$fa-var-pied-piper: \f2ae;
|
||||
$fa-var-pied-piper-alt: \f1a8;
|
||||
$fa-var-pied-piper-pp: \f1a7;
|
||||
$fa-var-pinterest: \f0d2;
|
||||
$fa-var-pinterest-p: \f231;
|
||||
$fa-var-pinterest-square: \f0d3;
|
||||
$fa-var-plane: \f072;
|
||||
$fa-var-plane-alt: \f3de;
|
||||
$fa-var-play: \f04b;
|
||||
$fa-var-play-circle: \f144;
|
||||
$fa-var-playstation: \f3df;
|
||||
$fa-var-plug: \f1e6;
|
||||
$fa-var-plus: \f067;
|
||||
$fa-var-plus-circle: \f055;
|
||||
$fa-var-plus-hexagon: \f300;
|
||||
$fa-var-plus-octagon: \f301;
|
||||
$fa-var-plus-square: \f0fe;
|
||||
$fa-var-podcast: \f2ce;
|
||||
$fa-var-poo: \f2fe;
|
||||
$fa-var-portrait: \f3e0;
|
||||
$fa-var-pound-sign: \f154;
|
||||
$fa-var-power-off: \f011;
|
||||
$fa-var-print: \f02f;
|
||||
$fa-var-product-hunt: \f288;
|
||||
$fa-var-pushed: \f3e1;
|
||||
$fa-var-puzzle-piece: \f12e;
|
||||
$fa-var-python: \f3e2;
|
||||
$fa-var-qq: \f1d6;
|
||||
$fa-var-qrcode: \f029;
|
||||
$fa-var-question: \f128;
|
||||
$fa-var-question-circle: \f059;
|
||||
$fa-var-question-square: \f2fd;
|
||||
$fa-var-quora: \f2c4;
|
||||
$fa-var-quote-left: \f10d;
|
||||
$fa-var-quote-right: \f10e;
|
||||
$fa-var-random: \f074;
|
||||
$fa-var-ravelry: \f2d9;
|
||||
$fa-var-react: \f41b;
|
||||
$fa-var-rebel: \f1d0;
|
||||
$fa-var-rectangle-landscape: \f2fa;
|
||||
$fa-var-rectangle-portrait: \f2fb;
|
||||
$fa-var-rectangle-wide: \f2fc;
|
||||
$fa-var-recycle: \f1b8;
|
||||
$fa-var-red-river: \f3e3;
|
||||
$fa-var-reddit: \f1a1;
|
||||
$fa-var-reddit-alien: \f281;
|
||||
$fa-var-reddit-square: \f1a2;
|
||||
$fa-var-redo: \f01e;
|
||||
$fa-var-redo-alt: \f2f9;
|
||||
$fa-var-registered: \f25d;
|
||||
$fa-var-rendact: \f3e4;
|
||||
$fa-var-renren: \f18b;
|
||||
$fa-var-repeat: \f363;
|
||||
$fa-var-repeat-1: \f365;
|
||||
$fa-var-repeat-1-alt: \f366;
|
||||
$fa-var-repeat-alt: \f364;
|
||||
$fa-var-reply: \f3e5;
|
||||
$fa-var-reply-all: \f122;
|
||||
$fa-var-replyd: \f3e6;
|
||||
$fa-var-resolving: \f3e7;
|
||||
$fa-var-retweet: \f079;
|
||||
$fa-var-retweet-alt: \f361;
|
||||
$fa-var-road: \f018;
|
||||
$fa-var-rocket: \f135;
|
||||
$fa-var-rocketchat: \f3e8;
|
||||
$fa-var-rockrms: \f3e9;
|
||||
$fa-var-rss: \f09e;
|
||||
$fa-var-rss-square: \f143;
|
||||
$fa-var-ruble-sign: \f158;
|
||||
$fa-var-rupee-sign: \f156;
|
||||
$fa-var-safari: \f267;
|
||||
$fa-var-sass: \f41e;
|
||||
$fa-var-save: \f0c7;
|
||||
$fa-var-schlix: \f3ea;
|
||||
$fa-var-scribd: \f28a;
|
||||
$fa-var-scrubber: \f2f8;
|
||||
$fa-var-search: \f002;
|
||||
$fa-var-search-minus: \f010;
|
||||
$fa-var-search-plus: \f00e;
|
||||
$fa-var-searchengin: \f3eb;
|
||||
$fa-var-sellcast: \f2da;
|
||||
$fa-var-sellsy: \f213;
|
||||
$fa-var-server: \f233;
|
||||
$fa-var-servicestack: \f3ec;
|
||||
$fa-var-share: \f064;
|
||||
$fa-var-share-all: \f367;
|
||||
$fa-var-share-alt: \f1e0;
|
||||
$fa-var-share-alt-square: \f1e1;
|
||||
$fa-var-share-square: \f14d;
|
||||
$fa-var-shekel-sign: \f20b;
|
||||
$fa-var-shield: \f132;
|
||||
$fa-var-shield-alt: \f3ed;
|
||||
$fa-var-shield-check: \f2f7;
|
||||
$fa-var-ship: \f21a;
|
||||
$fa-var-shirtsinbulk: \f214;
|
||||
$fa-var-shopping-bag: \f290;
|
||||
$fa-var-shopping-basket: \f291;
|
||||
$fa-var-shopping-cart: \f07a;
|
||||
$fa-var-shower: \f2cc;
|
||||
$fa-var-sign-in: \f090;
|
||||
$fa-var-sign-in-alt: \f2f6;
|
||||
$fa-var-sign-language: \f2a7;
|
||||
$fa-var-sign-out: \f08b;
|
||||
$fa-var-sign-out-alt: \f2f5;
|
||||
$fa-var-signal: \f012;
|
||||
$fa-var-simplybuilt: \f215;
|
||||
$fa-var-sistrix: \f3ee;
|
||||
$fa-var-sitemap: \f0e8;
|
||||
$fa-var-skyatlas: \f216;
|
||||
$fa-var-skype: \f17e;
|
||||
$fa-var-slack: \f198;
|
||||
$fa-var-slack-hash: \f3ef;
|
||||
$fa-var-sliders-h: \f1de;
|
||||
$fa-var-sliders-h-square: \f3f0;
|
||||
$fa-var-sliders-v: \f3f1;
|
||||
$fa-var-sliders-v-square: \f3f2;
|
||||
$fa-var-slideshare: \f1e7;
|
||||
$fa-var-smile: \f118;
|
||||
$fa-var-snapchat: \f2ab;
|
||||
$fa-var-snapchat-ghost: \f2ac;
|
||||
$fa-var-snapchat-square: \f2ad;
|
||||
$fa-var-snowflake: \f2dc;
|
||||
$fa-var-sort: \f0dc;
|
||||
$fa-var-sort-alpha-down: \f15d;
|
||||
$fa-var-sort-alpha-up: \f15e;
|
||||
$fa-var-sort-amount-down: \f160;
|
||||
$fa-var-sort-amount-up: \f161;
|
||||
$fa-var-sort-down: \f0dd;
|
||||
$fa-var-sort-numeric-down: \f162;
|
||||
$fa-var-sort-numeric-up: \f163;
|
||||
$fa-var-sort-up: \f0de;
|
||||
$fa-var-soundcloud: \f1be;
|
||||
$fa-var-space-shuttle: \f197;
|
||||
$fa-var-spade: \f2f4;
|
||||
$fa-var-speakap: \f3f3;
|
||||
$fa-var-spinner: \f110;
|
||||
$fa-var-spinner-third: \f3f4;
|
||||
$fa-var-spotify: \f1bc;
|
||||
$fa-var-square: \f0c8;
|
||||
$fa-var-stack-exchange: \f18d;
|
||||
$fa-var-stack-overflow: \f16c;
|
||||
$fa-var-star: \f005;
|
||||
$fa-var-star-exclamation: \f2f3;
|
||||
$fa-var-star-half: \f089;
|
||||
$fa-var-staylinked: \f3f5;
|
||||
$fa-var-steam: \f1b6;
|
||||
$fa-var-steam-square: \f1b7;
|
||||
$fa-var-steam-symbol: \f3f6;
|
||||
$fa-var-step-backward: \f048;
|
||||
$fa-var-step-forward: \f051;
|
||||
$fa-var-stethoscope: \f0f1;
|
||||
$fa-var-sticker-mule: \f3f7;
|
||||
$fa-var-sticky-note: \f249;
|
||||
$fa-var-stop: \f04d;
|
||||
$fa-var-stop-circle: \f28d;
|
||||
$fa-var-stopwatch: \f2f2;
|
||||
$fa-var-strava: \f428;
|
||||
$fa-var-street-view: \f21d;
|
||||
$fa-var-strikethrough: \f0cc;
|
||||
$fa-var-stripe: \f429;
|
||||
$fa-var-stripe-s: \f42a;
|
||||
$fa-var-studiovinari: \f3f8;
|
||||
$fa-var-stumbleupon: \f1a4;
|
||||
$fa-var-stumbleupon-circle: \f1a3;
|
||||
$fa-var-subscript: \f12c;
|
||||
$fa-var-subway: \f239;
|
||||
$fa-var-suitcase: \f0f2;
|
||||
$fa-var-sun: \f185;
|
||||
$fa-var-superpowers: \f2dd;
|
||||
$fa-var-superscript: \f12b;
|
||||
$fa-var-supple: \f3f9;
|
||||
$fa-var-sync: \f021;
|
||||
$fa-var-sync-alt: \f2f1;
|
||||
$fa-var-table: \f0ce;
|
||||
$fa-var-tablet: \f10a;
|
||||
$fa-var-tablet-alt: \f3fa;
|
||||
$fa-var-tablet-android: \f3fb;
|
||||
$fa-var-tablet-android-alt: \f3fc;
|
||||
$fa-var-tachometer: \f0e4;
|
||||
$fa-var-tachometer-alt: \f3fd;
|
||||
$fa-var-tag: \f02b;
|
||||
$fa-var-tags: \f02c;
|
||||
$fa-var-tasks: \f0ae;
|
||||
$fa-var-taxi: \f1ba;
|
||||
$fa-var-telegram: \f2c6;
|
||||
$fa-var-telegram-plane: \f3fe;
|
||||
$fa-var-tencent-weibo: \f1d5;
|
||||
$fa-var-terminal: \f120;
|
||||
$fa-var-text-height: \f034;
|
||||
$fa-var-text-width: \f035;
|
||||
$fa-var-th: \f00a;
|
||||
$fa-var-th-large: \f009;
|
||||
$fa-var-th-list: \f00b;
|
||||
$fa-var-themeisle: \f2b2;
|
||||
$fa-var-thermometer-empty: \f2cb;
|
||||
$fa-var-thermometer-full: \f2c7;
|
||||
$fa-var-thermometer-half: \f2c9;
|
||||
$fa-var-thermometer-quarter: \f2ca;
|
||||
$fa-var-thermometer-three-quarters: \f2c8;
|
||||
$fa-var-thumbs-down: \f165;
|
||||
$fa-var-thumbs-up: \f164;
|
||||
$fa-var-thumbtack: \f08d;
|
||||
$fa-var-ticket: \f145;
|
||||
$fa-var-ticket-alt: \f3ff;
|
||||
$fa-var-times: \f00d;
|
||||
$fa-var-times-circle: \f057;
|
||||
$fa-var-times-hexagon: \f2ee;
|
||||
$fa-var-times-octagon: \f2f0;
|
||||
$fa-var-times-square: \f2d3;
|
||||
$fa-var-tint: \f043;
|
||||
$fa-var-toggle-off: \f204;
|
||||
$fa-var-toggle-on: \f205;
|
||||
$fa-var-trademark: \f25c;
|
||||
$fa-var-train: \f238;
|
||||
$fa-var-transgender: \f224;
|
||||
$fa-var-transgender-alt: \f225;
|
||||
$fa-var-trash: \f1f8;
|
||||
$fa-var-trash-alt: \f2ed;
|
||||
$fa-var-tree: \f1bb;
|
||||
$fa-var-tree-alt: \f400;
|
||||
$fa-var-trello: \f181;
|
||||
$fa-var-triangle: \f2ec;
|
||||
$fa-var-tripadvisor: \f262;
|
||||
$fa-var-trophy: \f091;
|
||||
$fa-var-trophy-alt: \f2eb;
|
||||
$fa-var-truck: \f0d1;
|
||||
$fa-var-tty: \f1e4;
|
||||
$fa-var-tumblr: \f173;
|
||||
$fa-var-tumblr-square: \f174;
|
||||
$fa-var-tv: \f26c;
|
||||
$fa-var-tv-retro: \f401;
|
||||
$fa-var-twitch: \f1e8;
|
||||
$fa-var-twitter: \f099;
|
||||
$fa-var-twitter-square: \f081;
|
||||
$fa-var-typo3: \f42b;
|
||||
$fa-var-uber: \f402;
|
||||
$fa-var-uikit: \f403;
|
||||
$fa-var-umbrella: \f0e9;
|
||||
$fa-var-underline: \f0cd;
|
||||
$fa-var-undo: \f0e2;
|
||||
$fa-var-undo-alt: \f2ea;
|
||||
$fa-var-uniregistry: \f404;
|
||||
$fa-var-universal-access: \f29a;
|
||||
$fa-var-university: \f19c;
|
||||
$fa-var-unlink: \f127;
|
||||
$fa-var-unlock: \f09c;
|
||||
$fa-var-unlock-alt: \f13e;
|
||||
$fa-var-untappd: \f405;
|
||||
$fa-var-upload: \f093;
|
||||
$fa-var-usb: \f287;
|
||||
$fa-var-usd-circle: \f2e8;
|
||||
$fa-var-usd-square: \f2e9;
|
||||
$fa-var-user: \f007;
|
||||
$fa-var-user-alt: \f406;
|
||||
$fa-var-user-circle: \f2bd;
|
||||
$fa-var-user-md: \f0f0;
|
||||
$fa-var-user-plus: \f234;
|
||||
$fa-var-user-secret: \f21b;
|
||||
$fa-var-user-times: \f235;
|
||||
$fa-var-users: \f0c0;
|
||||
$fa-var-ussunnah: \f407;
|
||||
$fa-var-utensil-fork: \f2e3;
|
||||
$fa-var-utensil-knife: \f2e4;
|
||||
$fa-var-utensil-spoon: \f2e5;
|
||||
$fa-var-utensils: \f2e7;
|
||||
$fa-var-utensils-alt: \f2e6;
|
||||
$fa-var-vaadin: \f408;
|
||||
$fa-var-venus: \f221;
|
||||
$fa-var-venus-double: \f226;
|
||||
$fa-var-venus-mars: \f228;
|
||||
$fa-var-viacoin: \f237;
|
||||
$fa-var-viadeo: \f2a9;
|
||||
$fa-var-viadeo-square: \f2aa;
|
||||
$fa-var-viber: \f409;
|
||||
$fa-var-video: \f03d;
|
||||
$fa-var-vimeo: \f40a;
|
||||
$fa-var-vimeo-square: \f194;
|
||||
$fa-var-vimeo-v: \f27d;
|
||||
$fa-var-vine: \f1ca;
|
||||
$fa-var-vk: \f189;
|
||||
$fa-var-vnv: \f40b;
|
||||
$fa-var-volume-down: \f027;
|
||||
$fa-var-volume-mute: \f2e2;
|
||||
$fa-var-volume-off: \f026;
|
||||
$fa-var-volume-up: \f028;
|
||||
$fa-var-vuejs: \f41f;
|
||||
$fa-var-watch: \f2e1;
|
||||
$fa-var-weibo: \f18a;
|
||||
$fa-var-weixin: \f1d7;
|
||||
$fa-var-whatsapp: \f232;
|
||||
$fa-var-whatsapp-square: \f40c;
|
||||
$fa-var-wheelchair: \f193;
|
||||
$fa-var-whmcs: \f40d;
|
||||
$fa-var-wifi: \f1eb;
|
||||
$fa-var-wikipedia-w: \f266;
|
||||
$fa-var-window: \f40e;
|
||||
$fa-var-window-alt: \f40f;
|
||||
$fa-var-window-close: \f410;
|
||||
$fa-var-window-maximize: \f2d0;
|
||||
$fa-var-window-minimize: \f2d1;
|
||||
$fa-var-window-restore: \f2d2;
|
||||
$fa-var-windows: \f17a;
|
||||
$fa-var-won-sign: \f159;
|
||||
$fa-var-wordpress: \f19a;
|
||||
$fa-var-wordpress-simple: \f411;
|
||||
$fa-var-wpbeginner: \f297;
|
||||
$fa-var-wpexplorer: \f2de;
|
||||
$fa-var-wpforms: \f298;
|
||||
$fa-var-wrench: \f0ad;
|
||||
$fa-var-xbox: \f412;
|
||||
$fa-var-xing: \f168;
|
||||
$fa-var-xing-square: \f169;
|
||||
$fa-var-y-combinator: \f23b;
|
||||
$fa-var-yahoo: \f19e;
|
||||
$fa-var-yandex: \f413;
|
||||
$fa-var-yandex-international: \f414;
|
||||
$fa-var-yelp: \f1e9;
|
||||
$fa-var-yen-sign: \f157;
|
||||
$fa-var-yoast: \f2b1;
|
||||
$fa-var-youtube: \f167;
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
/*!
|
||||
* Font Awesome Pro 5.0.2 by @fontawesome - http://fontawesome.com
|
||||
* License - http://fontawesome.com/license (Commercial License)
|
||||
*/
|
||||
@import 'variables';
|
||||
|
||||
@font-face {
|
||||
font-family: 'Font Awesome 5 Brands';
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
src: url('#{$fa-font-path}/fa-brands-400.eot');
|
||||
src: url('#{$fa-font-path}/fa-brands-400.eot?#iefix') format('embedded-opentype'),
|
||||
url('#{$fa-font-path}/fa-brands-400.woff2') format('woff2'),
|
||||
url('#{$fa-font-path}/fa-brands-400.woff') format('woff'),
|
||||
url('#{$fa-font-path}/fa-brands-400.ttf') format('truetype'),
|
||||
url('#{$fa-font-path}/fa-brands-400.svg#fontawesome') format('svg');
|
||||
}
|
||||
|
||||
.fab {
|
||||
font-family: 'Font Awesome 5 Brands';
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
/*!
|
||||
* Font Awesome Pro 5.0.2 by @fontawesome - http://fontawesome.com
|
||||
* License - http://fontawesome.com/license (Commercial License)
|
||||
*/
|
||||
@import 'variables';
|
||||
|
||||
@font-face {
|
||||
font-family: 'Font Awesome 5 Pro';
|
||||
font-style: normal;
|
||||
font-weight: 300;
|
||||
src: url('#{$fa-font-path}/fa-light-300.eot');
|
||||
src: url('#{$fa-font-path}/fa-light-300.eot?#iefix') format('embedded-opentype'),
|
||||
url('#{$fa-font-path}/fa-light-300.woff2') format('woff2'),
|
||||
url('#{$fa-font-path}/fa-light-300.woff') format('woff'),
|
||||
url('#{$fa-font-path}/fa-light-300.ttf') format('truetype'),
|
||||
url('#{$fa-font-path}/fa-light-300.svg#fontawesome') format('svg');
|
||||
}
|
||||
|
||||
.fal {
|
||||
font-family: 'Font Awesome 5 Pro';
|
||||
font-weight: 300;
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
/*!
|
||||
* Font Awesome Pro 5.0.2 by @fontawesome - http://fontawesome.com
|
||||
* License - http://fontawesome.com/license (Commercial License)
|
||||
*/
|
||||
@import 'variables';
|
||||
|
||||
@font-face {
|
||||
font-family: 'Font Awesome 5 Pro';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: url('#{$fa-font-path}/fa-regular-400.eot');
|
||||
src: url('#{$fa-font-path}/fa-regular-400.eot?#iefix') format('embedded-opentype'),
|
||||
url('#{$fa-font-path}/fa-regular-400.woff2') format('woff2'),
|
||||
url('#{$fa-font-path}/fa-regular-400.woff') format('woff'),
|
||||
url('#{$fa-font-path}/fa-regular-400.ttf') format('truetype'),
|
||||
url('#{$fa-font-path}/fa-regular-400.svg#fontawesome') format('svg');
|
||||
}
|
||||
|
||||
.far {
|
||||
font-family: 'Font Awesome 5 Pro';
|
||||
font-weight: 400;
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
/*!
|
||||
* Font Awesome Pro 5.0.2 by @fontawesome - http://fontawesome.com
|
||||
* License - http://fontawesome.com/license (Commercial License)
|
||||
*/
|
||||
@import 'variables';
|
||||
|
||||
@font-face {
|
||||
font-family: 'Font Awesome 5 Pro';
|
||||
font-style: normal;
|
||||
font-weight: 900;
|
||||
src: url('#{$fa-font-path}/fa-solid-900.eot');
|
||||
src: url('#{$fa-font-path}/fa-solid-900.eot?#iefix') format('embedded-opentype'),
|
||||
url('#{$fa-font-path}/fa-solid-900.woff2') format('woff2'),
|
||||
url('#{$fa-font-path}/fa-solid-900.woff') format('woff'),
|
||||
url('#{$fa-font-path}/fa-solid-900.ttf') format('truetype'),
|
||||
url('#{$fa-font-path}/fa-solid-900.svg#fontawesome') format('svg');
|
||||
}
|
||||
|
||||
.fa,
|
||||
.fas {
|
||||
font-family: 'Font Awesome 5 Pro';
|
||||
font-weight: 900;
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
/*!
|
||||
* Font Awesome Free 5.0.13 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||
*/
|
||||
@import 'variables';
|
||||
@import 'mixins';
|
||||
@import 'core';
|
||||
@import 'larger';
|
||||
@import 'fixed-width';
|
||||
@import 'list';
|
||||
@import 'bordered-pulled';
|
||||
@import 'animated';
|
||||
@import 'rotated-flipped';
|
||||
@import 'stacked';
|
||||
@import 'icons';
|
||||
@import 'screen-reader';
|
||||
Binary file not shown.
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 493 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue