This commit is contained in:
parent
a08f1206c2
commit
c467d9fd67
80 changed files with 2653 additions and 3993 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -10,3 +10,5 @@
|
|||
/result*
|
||||
|
||||
/static/fonts/patched/PragmataPro-Mono-Liga-Regular-Nerd-Font-Complete.woff2
|
||||
node_modules
|
||||
_site
|
||||
|
|
8
.prettierrc.json5
Normal file
8
.prettierrc.json5
Normal file
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
tabWidth: 2,
|
||||
semi: true,
|
||||
useTabs: false,
|
||||
singleQuote: false,
|
||||
trailingComma: "es5",
|
||||
printWidth: 80,
|
||||
}
|
5
Justfile
5
Justfile
|
@ -1,5 +0,0 @@
|
|||
serve:
|
||||
hugo serve --bind 0.0.0.0 --buildDrafts
|
||||
|
||||
linkcheck:
|
||||
wget --spider -r -nd -nv -H -l 1 http://localhost:1313
|
14
README.md
14
README.md
|
@ -1,14 +0,0 @@
|
|||
# Blog
|
||||
|
||||
![Build status](https://ci.mzhang.io/api/badges/michael/blog/status.svg)
|
||||
|
||||
Powers [mzhang.io][1]. Public replies at [~mzhang/public-inbox][2].
|
||||
|
||||
Standard hugo site.
|
||||
|
||||
Code License: GPL3
|
||||
|
||||
Content License: CC BY-SA 4.0
|
||||
|
||||
[1]: https://mzhang.io
|
||||
[2]: https://lists.sr.ht/~mzhang/public-inbox
|
|
@ -1,6 +0,0 @@
|
|||
---
|
||||
title: "{{ replace .Name "-" " " | title }}"
|
||||
date: {{ .Date }}
|
||||
draft: true
|
||||
---
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
/* Aspects. */
|
||||
.Agda .Comment { color: #608b4e }
|
||||
.Agda .Background {}
|
||||
.Agda .Markup { color: #000000 }
|
||||
.Agda .Keyword { color: #569cd6 }
|
||||
.Agda .String { color: #ce9178 }
|
||||
.Agda .Number { color: #b5cea8 }
|
||||
.Agda .Symbol { color: #cccccc }
|
||||
.Agda .PrimitiveType { color: #00cdcd }
|
||||
.Agda .Pragma { color: #cccccc }
|
||||
.Agda .Operator {}
|
||||
|
||||
/* NameKinds. */
|
||||
.Agda .Bound { color: black }
|
||||
.Agda .Generalizable { color: black }
|
||||
.Agda .InductiveConstructor { color: #cccccc }
|
||||
.Agda .CoinductiveConstructor { color: #cccccc }
|
||||
.Agda .Datatype { color: #00cdcd }
|
||||
.Agda .Field { color: #cccccc }
|
||||
.Agda .Function { color: #cccccc }
|
||||
.Agda .Module { color: #cccccc }
|
||||
.Agda .Postulate { color: #00cdcd }
|
||||
.Agda .Primitive { color: #b5cea8 }
|
||||
.Agda .Record { color: #00cdcd }
|
||||
|
||||
/* OtherAspects. */
|
||||
.Agda .DottedPattern {}
|
||||
.Agda .UnsolvedMeta { color: black; background: yellow }
|
||||
.Agda .UnsolvedConstraint { color: black; background: yellow }
|
||||
.Agda .TerminationProblem { color: black; background: #FFA07A }
|
||||
.Agda .IncompletePattern { color: black; background: #F5DEB3 }
|
||||
.Agda .Error { color: red; text-decoration: underline }
|
||||
.Agda .TypeChecks { color: black; background: #ADD8E6 }
|
||||
|
||||
/* Standard attributes. */
|
||||
.Agda a { text-decoration: none }
|
||||
.Agda a[href]:hover { background-color: darken(#B4EEB4, 60%) }
|
|
@ -1,584 +0,0 @@
|
|||
@import "footer";
|
||||
|
||||
$breakpoint: 720px;
|
||||
|
||||
html {
|
||||
min-height: 100vh;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
::selection,
|
||||
::-moz-selection {
|
||||
background-color: $heading-color;
|
||||
color: $background-color;
|
||||
}
|
||||
|
||||
body {
|
||||
max-width: 1024px;
|
||||
margin: auto;
|
||||
width: 100%;
|
||||
height: 1px;
|
||||
min-height: 100vh;
|
||||
font-family: $sansfont;
|
||||
font-weight: normal;
|
||||
letter-spacing: -0.025rem;
|
||||
|
||||
background-color: $background-color;
|
||||
color: $text-color;
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
color: $heading-color;
|
||||
}
|
||||
|
||||
header {
|
||||
margin: auto 12px;
|
||||
|
||||
#header {
|
||||
border-bottom: 2px solid $link-color;
|
||||
box-sizing: border-box;
|
||||
padding: 20px;
|
||||
margin-bottom: 12px;
|
||||
|
||||
#title {
|
||||
font-size: 2.5em;
|
||||
color: $heading-color;
|
||||
|
||||
&:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
footer {
|
||||
margin: auto 12px;
|
||||
|
||||
margin-top: 24px;
|
||||
margin-bottom: 40px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.flex-wrapper {
|
||||
display: flex;
|
||||
align-items: stretch;
|
||||
}
|
||||
|
||||
.side-nav .side-nav-content {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
gap: 20px;
|
||||
|
||||
.me {
|
||||
display: flex;
|
||||
justify-content: space-evenly;
|
||||
flex-direction: column;
|
||||
|
||||
.links {
|
||||
text-align: center;
|
||||
font-size: 1.5rem;
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: $text-color;
|
||||
|
||||
&:hover {
|
||||
color: $link-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: $breakpoint) {
|
||||
.flex-wrapper {
|
||||
flex-direction: column;
|
||||
.container {
|
||||
padding: 5px 20px;
|
||||
}
|
||||
}
|
||||
|
||||
.side-nav {
|
||||
.side-nav-content {
|
||||
width: 100%;
|
||||
padding: 18px 0;
|
||||
border-bottom: 1px solid $shadow-color;
|
||||
box-shadow: 0 10px 20px -10px $shadow-color;
|
||||
|
||||
.home-link {
|
||||
display: flex;
|
||||
justify-content: space-evenly;
|
||||
}
|
||||
h1.title {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
.portrait {
|
||||
max-height: 80px;
|
||||
}
|
||||
|
||||
.bio {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-width: $breakpoint) {
|
||||
.flex-wrapper {
|
||||
flex-direction: row;
|
||||
.container {
|
||||
padding: 32px 40px 5px 40px;
|
||||
}
|
||||
}
|
||||
|
||||
.side-nav {
|
||||
position: sticky;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
top: 0;
|
||||
// Capital Min to avoid invoking SCSS min
|
||||
width: 30%;
|
||||
min-width: 300px;
|
||||
|
||||
.side-nav-content {
|
||||
padding-top: 32px;
|
||||
padding-right: 32px;
|
||||
padding-left: 32px;
|
||||
border-right: 1px solid $shadow-color;
|
||||
box-shadow: 10px 0 20px -10px $shadow-color;
|
||||
flex-direction: column;
|
||||
|
||||
.portrait {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
h1.title {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.links {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.side-nav {
|
||||
.side-nav-content {
|
||||
.home-link {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.portrait {
|
||||
border-radius: 100%;
|
||||
}
|
||||
|
||||
.bio {
|
||||
font-size: 0.85rem;
|
||||
|
||||
ul {
|
||||
padding-left: 12px;
|
||||
list-style-type: "\25B8\00A0";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
small {
|
||||
color: $small-text-color;
|
||||
}
|
||||
|
||||
a {
|
||||
color: $link-color;
|
||||
text-decoration: none;
|
||||
|
||||
&:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
|
||||
.permalink-container {
|
||||
position: relative;
|
||||
vertical-align: top;
|
||||
|
||||
.permalink {
|
||||
color: $link-color;
|
||||
font-size: 0.65em;
|
||||
position: absolute;
|
||||
left: -25px;
|
||||
}
|
||||
}
|
||||
|
||||
blockquote {
|
||||
margin-inline: 14px 14px;
|
||||
color: $small-text-color;
|
||||
border-left: 4px solid $small-text-color;
|
||||
padding-left: 12px;
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
|
||||
.postlisting-row td {
|
||||
padding-bottom: 10px;
|
||||
line-height: 1;
|
||||
|
||||
.title {
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
&.info {
|
||||
color: $smaller-text-color;
|
||||
font-size: 0.75em;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.summary {
|
||||
padding-top: 4px;
|
||||
font-size: 0.64em;
|
||||
color: $smaller-text-color;
|
||||
|
||||
p {
|
||||
display: inline;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#content {
|
||||
font-size: 1.05em;
|
||||
line-height: 1.5em;
|
||||
|
||||
img {
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
code,
|
||||
pre > code {
|
||||
font-size: 0.95rem;
|
||||
letter-spacing: -0.035rem;
|
||||
}
|
||||
|
||||
code {
|
||||
// font-size: 1.2em;
|
||||
font-family: $monofont;
|
||||
box-sizing: border-box;
|
||||
padding: 1px 5px;
|
||||
background-color: $faded-background-color;
|
||||
// color: $code-color;
|
||||
}
|
||||
|
||||
a code {
|
||||
color: $link-color;
|
||||
}
|
||||
|
||||
pre > code {
|
||||
color: $text-color;
|
||||
display: block;
|
||||
padding: 5px;
|
||||
overflow-x: auto;
|
||||
font-family: $monofont;
|
||||
line-height: 1.15rem;
|
||||
}
|
||||
|
||||
details {
|
||||
font-size: 0.95rem;
|
||||
|
||||
summary {
|
||||
cursor: pointer;
|
||||
position: sticky;
|
||||
top: 0;
|
||||
background-color: $background-color;
|
||||
}
|
||||
}
|
||||
|
||||
table.table {
|
||||
border: 1px solid $faded;
|
||||
border-collapse: collapse;
|
||||
|
||||
thead {
|
||||
background-color: $smaller-text-color;
|
||||
color: $background-color;
|
||||
}
|
||||
|
||||
tbody td,
|
||||
thead th {
|
||||
border: 1px solid $faded;
|
||||
padding: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
.toc {
|
||||
background-color: lighten($background-color, 10%);
|
||||
padding: 20px;
|
||||
|
||||
ul {
|
||||
margin-block: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.post-title {
|
||||
font-size: 2rem;
|
||||
font-weight: 500;
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
|
||||
.tags {
|
||||
display: flex;
|
||||
gap: 0.75rem;
|
||||
margin-bottom: 6px;
|
||||
|
||||
.tag {
|
||||
font-size: 0.75rem;
|
||||
background-color: $tag-color;
|
||||
padding: 2px 7px;
|
||||
|
||||
&.draft {
|
||||
background-color: orange;
|
||||
color: black;
|
||||
}
|
||||
|
||||
.text {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Tabbing
|
||||
.language-switcher-choice {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.tabbed {
|
||||
border: 1px solid #eee;
|
||||
|
||||
ul.tabs {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
list-style: none;
|
||||
padding-inline-start: 0;
|
||||
border-bottom: 1px solid lightgray;
|
||||
|
||||
.tab {
|
||||
display: inline-block;
|
||||
list-style: none;
|
||||
|
||||
label {
|
||||
display: inline-block;
|
||||
padding: 4px 8px;
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.contents {
|
||||
.tab-content {
|
||||
padding: 0 12px;
|
||||
|
||||
&:not(:last-child) {
|
||||
border-bottom: 1px solid gray;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@for $i from 1 through 5 {
|
||||
$colors: [green, red, blue, yellow, purple];
|
||||
|
||||
.language-switcher-choice:nth-of-type(#{$i}):checked {
|
||||
outline: 2px solid nth($colors, $i);
|
||||
}
|
||||
|
||||
body:has(.language-switcher-choice:nth-of-type(#{$i}):checked) .tabbed {
|
||||
.tabs .tab:nth-child(#{$i}) {
|
||||
border-bottom: 3px solid gray;
|
||||
}
|
||||
|
||||
.tabs .tab:not(:nth-child(#{$i})) {
|
||||
border-bottom: 3px solid transparent;
|
||||
}
|
||||
|
||||
.contents .tab-content:nth-child(#{$i}) {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.contents .tab-content:not(:nth-child(#{$i})) {
|
||||
// text-shadow: 2px 2px nth($colors, $i);
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Post container
|
||||
|
||||
.post-container {
|
||||
display: flex;
|
||||
|
||||
flex-direction: column;
|
||||
.toc-drawer {
|
||||
display: block;
|
||||
summary {
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
.toc-list {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/*
|
||||
@media screen and (max-width: 520px) {
|
||||
flex-direction: column;
|
||||
.toc-drawer { display: block; }
|
||||
.toc-list { display: none; }
|
||||
}
|
||||
|
||||
@media screen and (min-width: 520px) {
|
||||
flex-direction: row;
|
||||
align-items: flex-start;
|
||||
gap: 12px;
|
||||
|
||||
.toc-drawer { display: none; }
|
||||
.toc-list {
|
||||
top: 0;
|
||||
display: block;
|
||||
position: sticky;
|
||||
min-width: 160px;
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
.post-content {
|
||||
ul:not(.tabs) {
|
||||
padding-left: 1.5rem;
|
||||
}
|
||||
|
||||
min-width: 1px;
|
||||
|
||||
details {
|
||||
border: 1px solid $hr-color;
|
||||
// padding: 10px 30px;
|
||||
font-size: 0.9rem;
|
||||
padding: 0 30px;
|
||||
line-height: 1.5;
|
||||
|
||||
p:nth-of-type(1) {
|
||||
padding-top: 0;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
summary {
|
||||
padding: 10px 0;
|
||||
transition: margin 150ms ease-out;
|
||||
}
|
||||
|
||||
&[open] summary {
|
||||
border-bottom: 1px solid $hr-color;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
}
|
||||
|
||||
hr {
|
||||
border-width: 1px 0 0 0;
|
||||
border-color: $hr-color;
|
||||
margin: 32px auto;
|
||||
width: 20%;
|
||||
}
|
||||
|
||||
.highlight {
|
||||
.lntd:first-child {
|
||||
// border-right: 1px solid lightgray;
|
||||
padding-right: 2px;
|
||||
}
|
||||
.lntd:last-child {
|
||||
padding-left: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
.highlight,
|
||||
details {
|
||||
margin-top: 16px;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
}
|
||||
|
||||
&.logseq-post {
|
||||
.post-content {
|
||||
> ul {
|
||||
list-style-type: none;
|
||||
padding: 0;
|
||||
|
||||
> li {
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.toc-draw #TableOfContents,
|
||||
.toc-list #TableOfContents {
|
||||
ul {
|
||||
list-style-type: "\25B8\00A0";
|
||||
padding-left: 1rem;
|
||||
|
||||
li {
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
li ul {
|
||||
margin-top: 0.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
|
||||
thead {
|
||||
background-color: black;
|
||||
}
|
||||
|
||||
td,
|
||||
th {
|
||||
padding: 5px 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.division .post-content,
|
||||
.post-content {
|
||||
.heading {
|
||||
font-weight: 500;
|
||||
|
||||
a {
|
||||
color: $heading-color;
|
||||
}
|
||||
}
|
||||
|
||||
> p {
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
> p > img {
|
||||
display: block;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
.footnotes {
|
||||
font-size: 0.9em;
|
||||
line-height: 1.2;
|
||||
}
|
||||
}
|
||||
|
||||
hr.endline {
|
||||
margin-top: 30px;
|
||||
border-width: 1px 0 0 0;
|
||||
border-color: $hr-color;
|
||||
}
|
|
@ -1,26 +0,0 @@
|
|||
@font-face {
|
||||
font-family: 'PragmataPro Mono Liga';
|
||||
src: url("/fonts/patched/PragmataPro-Mono-Liga-Regular-Nerd-Font-Complete.woff2") format("woff2"),
|
||||
url("https://mzhang.io/fonts/patched/PragmataPro-Mono-Liga-Regular-Nerd-Font-Complete.woff2") format("woff2");
|
||||
// src: url("/fonts/PragmataPro_Mono_R_liga_0829.woff2") format("woff2"),
|
||||
// url(https://mzhang.io/fonts/PragmataPro_Mono_R_liga_0829.woff2) format("woff2");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Inter";
|
||||
font-weight: 300;
|
||||
src: url(/fonts/Inter-Light.ttf) format("truetype");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Inter";
|
||||
font-weight: 400;
|
||||
src: url(/fonts/Inter-Regular.ttf) format("truetype");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Inter";
|
||||
font-weight: 700;
|
||||
src: url(/fonts/Inter-Bold.ttf) format("truetype");
|
||||
}
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
footer {
|
||||
font-size: 0.85rem;
|
||||
}
|
|
@ -1,123 +0,0 @@
|
|||
// SIMPLE GRID - SASS/SCSS
|
||||
|
||||
html,
|
||||
body {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
left: 0;
|
||||
top: 0;
|
||||
font-size: 100%;
|
||||
}
|
||||
|
||||
// utility
|
||||
|
||||
.left {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.right {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.center {
|
||||
text-align: center;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
.justify {
|
||||
text-align: justify;
|
||||
}
|
||||
|
||||
.hidden-sm {
|
||||
display: none;
|
||||
}
|
||||
|
||||
// grid
|
||||
|
||||
$width: 96%;
|
||||
$gutter: 4%;
|
||||
$breakpoint-small: 33.75em; // 540px
|
||||
$breakpoint-med: 45em; // 720px
|
||||
$breakpoint-large: 60em; // 960px
|
||||
|
||||
.container {
|
||||
width: 90%;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
|
||||
@media only screen and (min-width: $breakpoint-small) {
|
||||
width: 80%;
|
||||
}
|
||||
|
||||
@media only screen and (min-width: $breakpoint-large) {
|
||||
width: 75%;
|
||||
max-width: 60rem;
|
||||
}
|
||||
}
|
||||
|
||||
.row {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.row [class^="col"] {
|
||||
float: left;
|
||||
margin: 0.5rem 2%;
|
||||
min-height: 0.125rem;
|
||||
}
|
||||
|
||||
.row::after {
|
||||
content: "";
|
||||
display: table;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.col-1,
|
||||
.col-2,
|
||||
.col-3,
|
||||
.col-4,
|
||||
.col-5,
|
||||
.col-6,
|
||||
.col-7,
|
||||
.col-8,
|
||||
.col-9,
|
||||
.col-10,
|
||||
.col-11,
|
||||
.col-12 {
|
||||
width: $width;
|
||||
}
|
||||
|
||||
.col-1-sm { width:($width / 12) - ($gutter * 11 / 12); }
|
||||
.col-2-sm { width: ($width / 6) - ($gutter * 10 / 12); }
|
||||
.col-3-sm { width: ($width / 4) - ($gutter * 9 / 12); }
|
||||
.col-4-sm { width: ($width / 3) - ($gutter * 8 / 12); }
|
||||
.col-5-sm { width: ($width / (12 / 5)) - ($gutter * 7 / 12); }
|
||||
.col-6-sm { width: ($width / 2) - ($gutter * 6 / 12); }
|
||||
.col-7-sm { width: ($width / (12 / 7)) - ($gutter * 5 / 12); }
|
||||
.col-8-sm { width: ($width / (12 / 8)) - ($gutter * 4 / 12); }
|
||||
.col-9-sm { width: ($width / (12 / 9)) - ($gutter * 3 / 12); }
|
||||
.col-10-sm { width: ($width / (12 / 10)) - ($gutter * 2 / 12); }
|
||||
.col-11-sm { width: ($width / (12 / 11)) - ($gutter * 1 / 12); }
|
||||
.col-12-sm { width: $width; }
|
||||
|
||||
@media only screen and (min-width: $breakpoint-med) {
|
||||
.col-1 { width:($width / 12) - ($gutter * 11 / 12); }
|
||||
.col-2 { width: ($width / 6) - ($gutter * 10 / 12); }
|
||||
.col-3 { width: ($width / 4) - ($gutter * 9 / 12); }
|
||||
.col-4 { width: ($width / 3) - ($gutter * 8 / 12); }
|
||||
.col-5 { width: ($width / (12 / 5)) - ($gutter * 7 / 12); }
|
||||
.col-6 { width: ($width / 2) - ($gutter * 6 / 12); }
|
||||
.col-7 { width: ($width / (12 / 7)) - ($gutter * 5 / 12); }
|
||||
.col-8 { width: ($width / (12 / 8)) - ($gutter * 4 / 12); }
|
||||
.col-9 { width: ($width / (12 / 9)) - ($gutter * 3 / 12); }
|
||||
.col-10 { width: ($width / (12 / 10)) - ($gutter * 2 / 12); }
|
||||
.col-11 { width: ($width / (12 / 11)) - ($gutter * 1 / 12); }
|
||||
.col-12 { width: $width; }
|
||||
|
||||
.hidden-sm {
|
||||
display: block;
|
||||
}
|
||||
}
|
|
@ -1,137 +0,0 @@
|
|||
.obfuscate {
|
||||
user-select: none;
|
||||
display: inline-flex;
|
||||
flex-direction: row-reverse;
|
||||
}
|
||||
|
||||
.sym-at-sign::before {
|
||||
content: "@";
|
||||
}
|
||||
|
||||
.sym-dot::before {
|
||||
content: ".";
|
||||
}
|
||||
|
||||
#homepageContainer {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
padding: 12px;
|
||||
box-sizing: border-box;
|
||||
overflow-y: auto;
|
||||
|
||||
#homepage {
|
||||
width: 100%;
|
||||
|
||||
h1#title {
|
||||
font-weight: normal;
|
||||
font-size: 4em;
|
||||
margin: 0;
|
||||
margin-top: 40px;
|
||||
}
|
||||
|
||||
div#about {
|
||||
line-height: 1.5em;
|
||||
|
||||
p {
|
||||
width: 60%;
|
||||
min-width: Min(100%, 520px);
|
||||
}
|
||||
|
||||
a code {
|
||||
color: $code-color;
|
||||
|
||||
&:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style-type: "\25B8\00A0";
|
||||
padding-left: 1.5em;
|
||||
|
||||
li {
|
||||
padding-left: .5em;
|
||||
|
||||
p {
|
||||
margin: 0.1rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-weight: normal;
|
||||
margin-bottom: 6px;
|
||||
color: $text-color;
|
||||
}
|
||||
|
||||
h2#blog-posts-title {
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: $text-color;
|
||||
}
|
||||
}
|
||||
|
||||
#blog-posts {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-content: stretch;
|
||||
|
||||
@media screen and (max-width: 520px) {
|
||||
flex-wrap: wrap;
|
||||
gap: 6px;
|
||||
}
|
||||
@media screen and (min-width: 520px) {
|
||||
flex-wrap: no-wrap;
|
||||
gap: 20px;
|
||||
}
|
||||
|
||||
list-style-type: none;
|
||||
padding: 0;
|
||||
|
||||
> li {
|
||||
display: block;
|
||||
width: 100%;
|
||||
padding: 8px;
|
||||
background-color: $faded-background-color;
|
||||
text-decoration: none;
|
||||
|
||||
flex-grow: 1;
|
||||
flex-basis: 100%;
|
||||
}
|
||||
|
||||
.blog-post-link {
|
||||
text-decoration: none;
|
||||
|
||||
.blog-post {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
flex-direction: column;
|
||||
align-content: stretch;
|
||||
justify-content: space-between;
|
||||
|
||||
color: $text-color;
|
||||
text-decoration: none;
|
||||
|
||||
.title {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.details {
|
||||
text-align: right;
|
||||
color: $smaller-text-color;
|
||||
}
|
||||
}
|
||||
|
||||
&:hover .title {
|
||||
text-decoration: underline;
|
||||
text-decoration-style: dotted;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,177 +0,0 @@
|
|||
.highlight .chroma {
|
||||
margin: 0;
|
||||
|
||||
.lntable td.lntd:last-child {
|
||||
background-color: $faded-background-color;
|
||||
padding-right: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: light) {
|
||||
/* Other */ .highlight .x { }
|
||||
/* Error */ .highlight .err { color: #a61717; background-color: #e3d2d2 }
|
||||
/* LineTableTD */ .highlight .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
|
||||
/* LineTable */ .highlight .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; width: auto; overflow: auto; display: block; }
|
||||
/* LineHighlight */ .highlight .hl { display: block; width: 100%;background-color: #ffffcc }
|
||||
/* LineNumbersTable */ .highlight .lnt { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
|
||||
/* LineNumbers */ .highlight .ln { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
|
||||
/* Keyword */ .highlight .k { color: #000000; font-weight: bold }
|
||||
/* KeywordConstant */ .highlight .kc { color: #000000; font-weight: bold }
|
||||
/* KeywordDeclaration */ .highlight .kd { color: #000000; font-weight: bold }
|
||||
/* KeywordNamespace */ .highlight .kn { color: #000000; font-weight: bold }
|
||||
/* KeywordPseudo */ .highlight .kp { color: #000000; font-weight: bold }
|
||||
/* KeywordReserved */ .highlight .kr { color: #000000; font-weight: bold }
|
||||
/* KeywordType */ .highlight .kt { color: #445588; font-weight: bold }
|
||||
/* Name */ .highlight .n { }
|
||||
/* NameAttribute */ .highlight .na { color: #008080 }
|
||||
/* NameBuiltin */ .highlight .nb { color: #0086b3 }
|
||||
/* NameBuiltinPseudo */ .highlight .bp { color: #999999 }
|
||||
/* NameClass */ .highlight .nc { color: #445588; font-weight: bold }
|
||||
/* NameConstant */ .highlight .no { color: #008080 }
|
||||
/* NameDecorator */ .highlight .nd { color: #3c5d5d; font-weight: bold }
|
||||
/* NameEntity */ .highlight .ni { color: #800080 }
|
||||
/* NameException */ .highlight .ne { color: #990000; font-weight: bold }
|
||||
/* NameFunction */ .highlight .nf { color: #990000; font-weight: bold }
|
||||
/* NameFunctionMagic */ .highlight .fm { }
|
||||
/* NameLabel */ .highlight .nl { color: #990000; font-weight: bold }
|
||||
/* NameNamespace */ .highlight .nn { color: #555555 }
|
||||
/* NameOther */ .highlight .nx { }
|
||||
/* NameProperty */ .highlight .py { }
|
||||
/* NameTag */ .highlight .nt { color: #000080 }
|
||||
/* NameVariable */ .highlight .nv { color: #008080 }
|
||||
/* NameVariableClass */ .highlight .vc { color: #008080 }
|
||||
/* NameVariableGlobal */ .highlight .vg { color: #008080 }
|
||||
/* NameVariableInstance */ .highlight .vi { color: #008080 }
|
||||
/* NameVariableMagic */ .highlight .vm { }
|
||||
/* Literal */ .highlight .l { }
|
||||
/* LiteralDate */ .highlight .ld { }
|
||||
/* LiteralString */ .highlight .s { color: #dd1144 }
|
||||
/* LiteralStringAffix */ .highlight .sa { color: #dd1144 }
|
||||
/* LiteralStringBacktick */ .highlight .sb { color: #dd1144 }
|
||||
/* LiteralStringChar */ .highlight .sc { color: #dd1144 }
|
||||
/* LiteralStringDelimiter */ .highlight .dl { color: #dd1144 }
|
||||
/* LiteralStringDoc */ .highlight .sd { color: #dd1144 }
|
||||
/* LiteralStringDouble */ .highlight .s2 { color: #dd1144 }
|
||||
/* LiteralStringEscape */ .highlight .se { color: #dd1144 }
|
||||
/* LiteralStringHeredoc */ .highlight .sh { color: #dd1144 }
|
||||
/* LiteralStringInterpol */ .highlight .si { color: #dd1144 }
|
||||
/* LiteralStringOther */ .highlight .sx { color: #dd1144 }
|
||||
/* LiteralStringRegex */ .highlight .sr { color: #009926 }
|
||||
/* LiteralStringSingle */ .highlight .s1 { color: #dd1144 }
|
||||
/* LiteralStringSymbol */ .highlight .ss { color: #990073 }
|
||||
/* LiteralNumber */ .highlight .m { color: #009999 }
|
||||
/* LiteralNumberBin */ .highlight .mb { color: #009999 }
|
||||
/* LiteralNumberFloat */ .highlight .mf { color: #009999 }
|
||||
/* LiteralNumberHex */ .highlight .mh { color: #009999 }
|
||||
/* LiteralNumberInteger */ .highlight .mi { color: #009999 }
|
||||
/* LiteralNumberIntegerLong */ .highlight .il { color: #009999 }
|
||||
/* LiteralNumberOct */ .highlight .mo { color: #009999 }
|
||||
/* Operator */ .highlight .o { color: #000000; font-weight: bold }
|
||||
/* OperatorWord */ .highlight .ow { color: #000000; font-weight: bold }
|
||||
/* Punctuation */ .highlight .p { }
|
||||
/* Comment */ .highlight .c { color: #999988; font-style: italic }
|
||||
/* CommentHashbang */ .highlight .ch { color: #999988; font-style: italic }
|
||||
/* CommentMultiline */ .highlight .cm { color: #999988; font-style: italic }
|
||||
/* CommentSingle */ .highlight .c1 { color: #999988; font-style: italic }
|
||||
/* CommentSpecial */ .highlight .cs { color: #999999; font-weight: bold; font-style: italic }
|
||||
/* CommentPreproc */ .highlight .cp { color: #999999; font-weight: bold; font-style: italic }
|
||||
/* CommentPreprocFile */ .highlight .cpf { color: #999999; font-weight: bold; font-style: italic }
|
||||
/* Generic */ .highlight .g { }
|
||||
/* GenericDeleted */ .highlight .gd { color: #000000; background-color: #ffdddd }
|
||||
/* GenericEmph */ .highlight .ge { color: #000000; font-style: italic }
|
||||
/* GenericError */ .highlight .gr { color: #aa0000 }
|
||||
/* GenericHeading */ .highlight .gh { color: #999999 }
|
||||
/* GenericInserted */ .highlight .gi { color: #000000; background-color: #ddffdd }
|
||||
/* GenericOutput */ .highlight .go { color: #888888 }
|
||||
/* GenericPrompt */ .highlight .gp { color: #555555 }
|
||||
/* GenericStrong */ .highlight .gs { font-weight: bold }
|
||||
/* GenericSubheading */ .highlight .gu { color: #aaaaaa }
|
||||
/* GenericTraceback */ .highlight .gt { color: #aa0000 }
|
||||
/* GenericUnderline */ .highlight .gl { text-decoration: underline }
|
||||
/* TextWhitespace */ .highlight .w { color: #bbbbbb }
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
/* Background */ .highlight { color: #e5e5e5; }
|
||||
/* Other */ .highlight .x { }
|
||||
/* Error */ .highlight .err { color: #ff0000 }
|
||||
/* LineTableTD */ .highlight .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
|
||||
/* LineTable */ .highlight .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; width: auto; overflow: auto; display: block; }
|
||||
/* LineHighlight */ .highlight .hl { display: block; width: 100%;background-color: #ffffcc }
|
||||
/* LineNumbersTable */ .highlight .lnt { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #727272 }
|
||||
/* LineNumbers */ .highlight .ln { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #727272 }
|
||||
/* Keyword */ .highlight .k { color: #ffffff; font-weight: bold }
|
||||
/* KeywordConstant */ .highlight .kc { color: #ffffff; font-weight: bold }
|
||||
/* KeywordDeclaration */ .highlight .kd { color: #ffffff; font-weight: bold }
|
||||
/* KeywordNamespace */ .highlight .kn { color: #ffffff; font-weight: bold }
|
||||
/* KeywordPseudo */ .highlight .kp { color: #ffffff; font-weight: bold }
|
||||
/* KeywordReserved */ .highlight .kr { color: #ffffff; font-weight: bold }
|
||||
/* KeywordType */ .highlight .kt { color: #ffffff; font-weight: bold }
|
||||
/* Name */ .highlight .n { }
|
||||
/* NameAttribute */ .highlight .na { color: #007f7f }
|
||||
/* NameBuiltin */ .highlight .nb { color: #ffffff; font-weight: bold }
|
||||
/* NameBuiltinPseudo */ .highlight .bp { }
|
||||
/* NameClass */ .highlight .nc { }
|
||||
/* NameConstant */ .highlight .no { }
|
||||
/* NameDecorator */ .highlight .nd { }
|
||||
/* NameEntity */ .highlight .ni { }
|
||||
/* NameException */ .highlight .ne { }
|
||||
/* NameFunction */ .highlight .nf { }
|
||||
/* NameFunctionMagic */ .highlight .fm { }
|
||||
/* NameLabel */ .highlight .nl { }
|
||||
/* NameNamespace */ .highlight .nn { }
|
||||
/* NameOther */ .highlight .nx { }
|
||||
/* NameProperty */ .highlight .py { }
|
||||
/* NameTag */ .highlight .nt { font-weight: bold }
|
||||
/* NameVariable */ .highlight .nv { }
|
||||
/* NameVariableClass */ .highlight .vc { }
|
||||
/* NameVariableGlobal */ .highlight .vg { }
|
||||
/* NameVariableInstance */ .highlight .vi { }
|
||||
/* NameVariableMagic */ .highlight .vm { }
|
||||
/* Literal */ .highlight .l { }
|
||||
/* LiteralDate */ .highlight .ld { color: #ffff00; font-weight: bold }
|
||||
/* LiteralString */ .highlight .s { color: #00ffff; font-weight: bold }
|
||||
/* LiteralStringAffix */ .highlight .sa { color: #00ffff; font-weight: bold }
|
||||
/* LiteralStringBacktick */ .highlight .sb { color: #00ffff; font-weight: bold }
|
||||
/* LiteralStringChar */ .highlight .sc { color: #00ffff; font-weight: bold }
|
||||
/* LiteralStringDelimiter */ .highlight .dl { color: #00ffff; font-weight: bold }
|
||||
/* LiteralStringDoc */ .highlight .sd { color: #00ffff; font-weight: bold }
|
||||
/* LiteralStringDouble */ .highlight .s2 { color: #00ffff; font-weight: bold }
|
||||
/* LiteralStringEscape */ .highlight .se { color: #00ffff; font-weight: bold }
|
||||
/* LiteralStringHeredoc */ .highlight .sh { color: #00ffff; font-weight: bold }
|
||||
/* LiteralStringInterpol */ .highlight .si { color: #00ffff; font-weight: bold }
|
||||
/* LiteralStringOther */ .highlight .sx { color: #00ffff; font-weight: bold }
|
||||
/* LiteralStringRegex */ .highlight .sr { color: #00ffff; font-weight: bold }
|
||||
/* LiteralStringSingle */ .highlight .s1 { color: #00ffff; font-weight: bold }
|
||||
/* LiteralStringSymbol */ .highlight .ss { color: #00ffff; font-weight: bold }
|
||||
/* LiteralNumber */ .highlight .m { color: #ffff00; font-weight: bold }
|
||||
/* LiteralNumberBin */ .highlight .mb { color: #ffff00; font-weight: bold }
|
||||
/* LiteralNumberFloat */ .highlight .mf { color: #ffff00; font-weight: bold }
|
||||
/* LiteralNumberHex */ .highlight .mh { color: #ffff00; font-weight: bold }
|
||||
/* LiteralNumberInteger */ .highlight .mi { color: #ffff00; font-weight: bold }
|
||||
/* LiteralNumberIntegerLong */ .highlight .il { color: #ffff00; font-weight: bold }
|
||||
/* LiteralNumberOct */ .highlight .mo { color: #ffff00; font-weight: bold }
|
||||
/* Operator */ .highlight .o { }
|
||||
/* OperatorWord */ .highlight .ow { }
|
||||
/* Punctuation */ .highlight .p { }
|
||||
/* Comment */ .highlight .c { color: #007f7f }
|
||||
/* CommentHashbang */ .highlight .ch { color: #007f7f }
|
||||
/* CommentMultiline */ .highlight .cm { color: #007f7f }
|
||||
/* CommentSingle */ .highlight .c1 { color: #007f7f }
|
||||
/* CommentSpecial */ .highlight .cs { color: #007f7f }
|
||||
/* CommentPreproc */ .highlight .cp { color: #00ff00; font-weight: bold }
|
||||
/* CommentPreprocFile */ .highlight .cpf { color: #00ff00; font-weight: bold }
|
||||
/* Generic */ .highlight .g { }
|
||||
/* GenericDeleted */ .highlight .gd { }
|
||||
/* GenericEmph */ .highlight .ge { }
|
||||
/* GenericError */ .highlight .gr { }
|
||||
/* GenericHeading */ .highlight .gh { font-weight: bold }
|
||||
/* GenericInserted */ .highlight .gi { }
|
||||
/* GenericOutput */ .highlight .go { }
|
||||
/* GenericPrompt */ .highlight .gp { }
|
||||
/* GenericStrong */ .highlight .gs { font-weight: bold }
|
||||
/* GenericSubheading */ .highlight .gu { font-weight: bold }
|
||||
/* GenericTraceback */ .highlight .gt { }
|
||||
/* GenericUnderline */ .highlight .gl { text-decoration: underline }
|
||||
/* TextWhitespace */ .highlight .w { }
|
||||
}
|
|
@ -1,34 +0,0 @@
|
|||
// Spinning Icons
|
||||
// --------------------------
|
||||
|
||||
.#{$fa-css-prefix}-spin {
|
||||
-webkit-animation: #{$fa-css-prefix}-spin 2s infinite linear;
|
||||
animation: #{$fa-css-prefix}-spin 2s infinite linear;
|
||||
}
|
||||
|
||||
.#{$fa-css-prefix}-pulse {
|
||||
-webkit-animation: #{$fa-css-prefix}-spin 1s infinite steps(8);
|
||||
animation: #{$fa-css-prefix}-spin 1s infinite steps(8);
|
||||
}
|
||||
|
||||
@-webkit-keyframes #{$fa-css-prefix}-spin {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: rotate(359deg);
|
||||
transform: rotate(359deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes #{$fa-css-prefix}-spin {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: rotate(359deg);
|
||||
transform: rotate(359deg);
|
||||
}
|
||||
}
|
|
@ -1,25 +0,0 @@
|
|||
// Bordered & Pulled
|
||||
// -------------------------
|
||||
|
||||
.#{$fa-css-prefix}-border {
|
||||
padding: .2em .25em .15em;
|
||||
border: solid .08em $fa-border-color;
|
||||
border-radius: .1em;
|
||||
}
|
||||
|
||||
.#{$fa-css-prefix}-pull-left { float: left; }
|
||||
.#{$fa-css-prefix}-pull-right { float: right; }
|
||||
|
||||
.#{$fa-css-prefix} {
|
||||
&.#{$fa-css-prefix}-pull-left { margin-right: .3em; }
|
||||
&.#{$fa-css-prefix}-pull-right { margin-left: .3em; }
|
||||
}
|
||||
|
||||
/* Deprecated as of 4.4.0 */
|
||||
.pull-right { float: right; }
|
||||
.pull-left { float: left; }
|
||||
|
||||
.#{$fa-css-prefix} {
|
||||
&.pull-left { margin-right: .3em; }
|
||||
&.pull-right { margin-left: .3em; }
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
// Base Class Definition
|
||||
// -------------------------
|
||||
|
||||
.#{$fa-css-prefix} {
|
||||
display: inline-block;
|
||||
font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} #{$fa-font-family}; // shortening font declaration
|
||||
font-size: inherit; // can't have font-size inherit on line above, so need to override
|
||||
text-rendering: auto; // optimizelegibility throws things off #1094
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
// Fixed Width Icons
|
||||
// -------------------------
|
||||
.#{$fa-css-prefix}-fw {
|
||||
width: (18em / 14);
|
||||
text-align: center;
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
// Functions
|
||||
// --------------------------
|
||||
|
||||
// Helper function which adds quotes to preserve unicode values in CSS output.
|
||||
//
|
||||
// See: https://github.com/sass/sass/issues/1395
|
||||
// See: https://stackoverflow.com/questions/30421570/sass-unicode-escape-is-not-preserved-in-css-file
|
||||
|
||||
@function fa-content($fa-var) {
|
||||
@return unquote("\"#{$fa-var}\"");
|
||||
}
|
|
@ -1,934 +0,0 @@
|
|||
/* 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}-glass:before { content: fa-content($fa-var-glass); }
|
||||
.#{$fa-css-prefix}-music:before { content: fa-content($fa-var-music); }
|
||||
.#{$fa-css-prefix}-search:before { content: fa-content($fa-var-search); }
|
||||
.#{$fa-css-prefix}-envelope-o:before { content: fa-content($fa-var-envelope-o); }
|
||||
.#{$fa-css-prefix}-heart:before { content: fa-content($fa-var-heart); }
|
||||
.#{$fa-css-prefix}-star:before { content: fa-content($fa-var-star); }
|
||||
.#{$fa-css-prefix}-star-o:before { content: fa-content($fa-var-star-o); }
|
||||
.#{$fa-css-prefix}-user:before { content: fa-content($fa-var-user); }
|
||||
.#{$fa-css-prefix}-film:before { content: fa-content($fa-var-film); }
|
||||
.#{$fa-css-prefix}-th-large:before { content: fa-content($fa-var-th-large); }
|
||||
.#{$fa-css-prefix}-th:before { content: fa-content($fa-var-th); }
|
||||
.#{$fa-css-prefix}-th-list:before { content: fa-content($fa-var-th-list); }
|
||||
.#{$fa-css-prefix}-check:before { content: fa-content($fa-var-check); }
|
||||
.#{$fa-css-prefix}-remove:before,
|
||||
.#{$fa-css-prefix}-close:before,
|
||||
.#{$fa-css-prefix}-times:before { content: fa-content($fa-var-times); }
|
||||
.#{$fa-css-prefix}-search-plus:before { content: fa-content($fa-var-search-plus); }
|
||||
.#{$fa-css-prefix}-search-minus:before { content: fa-content($fa-var-search-minus); }
|
||||
.#{$fa-css-prefix}-power-off:before { content: fa-content($fa-var-power-off); }
|
||||
.#{$fa-css-prefix}-signal:before { content: fa-content($fa-var-signal); }
|
||||
.#{$fa-css-prefix}-gear:before,
|
||||
.#{$fa-css-prefix}-cog:before { content: fa-content($fa-var-cog); }
|
||||
.#{$fa-css-prefix}-trash-o:before { content: fa-content($fa-var-trash-o); }
|
||||
.#{$fa-css-prefix}-home:before { content: fa-content($fa-var-home); }
|
||||
.#{$fa-css-prefix}-file-o:before { content: fa-content($fa-var-file-o); }
|
||||
.#{$fa-css-prefix}-clock-o:before { content: fa-content($fa-var-clock-o); }
|
||||
.#{$fa-css-prefix}-road:before { content: fa-content($fa-var-road); }
|
||||
.#{$fa-css-prefix}-download:before { content: fa-content($fa-var-download); }
|
||||
.#{$fa-css-prefix}-arrow-circle-o-down:before { content: fa-content($fa-var-arrow-circle-o-down); }
|
||||
.#{$fa-css-prefix}-arrow-circle-o-up:before { content: fa-content($fa-var-arrow-circle-o-up); }
|
||||
.#{$fa-css-prefix}-inbox:before { content: fa-content($fa-var-inbox); }
|
||||
.#{$fa-css-prefix}-play-circle-o:before { content: fa-content($fa-var-play-circle-o); }
|
||||
.#{$fa-css-prefix}-rotate-right:before,
|
||||
.#{$fa-css-prefix}-repeat:before { content: fa-content($fa-var-repeat); }
|
||||
.#{$fa-css-prefix}-sync:before,
|
||||
.#{$fa-css-prefix}-refresh:before { content: fa-content($fa-var-refresh); }
|
||||
.#{$fa-css-prefix}-list-alt:before { content: fa-content($fa-var-list-alt); }
|
||||
.#{$fa-css-prefix}-lock:before { content: fa-content($fa-var-lock); }
|
||||
.#{$fa-css-prefix}-flag:before { content: fa-content($fa-var-flag); }
|
||||
.#{$fa-css-prefix}-headphones:before { content: fa-content($fa-var-headphones); }
|
||||
.#{$fa-css-prefix}-volume-off:before { content: fa-content($fa-var-volume-off); }
|
||||
.#{$fa-css-prefix}-volume-down:before { content: fa-content($fa-var-volume-down); }
|
||||
.#{$fa-css-prefix}-volume-up:before { content: fa-content($fa-var-volume-up); }
|
||||
.#{$fa-css-prefix}-qrcode:before { content: fa-content($fa-var-qrcode); }
|
||||
.#{$fa-css-prefix}-barcode:before { content: fa-content($fa-var-barcode); }
|
||||
.#{$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}-book:before { content: fa-content($fa-var-book); }
|
||||
.#{$fa-css-prefix}-bookmark:before { content: fa-content($fa-var-bookmark); }
|
||||
.#{$fa-css-prefix}-print:before { content: fa-content($fa-var-print); }
|
||||
.#{$fa-css-prefix}-camera:before { content: fa-content($fa-var-camera); }
|
||||
.#{$fa-css-prefix}-font:before { content: fa-content($fa-var-font); }
|
||||
.#{$fa-css-prefix}-bold:before { content: fa-content($fa-var-bold); }
|
||||
.#{$fa-css-prefix}-italic:before { content: fa-content($fa-var-italic); }
|
||||
.#{$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}-align-left:before { content: fa-content($fa-var-align-left); }
|
||||
.#{$fa-css-prefix}-align-center:before { content: fa-content($fa-var-align-center); }
|
||||
.#{$fa-css-prefix}-align-right:before { content: fa-content($fa-var-align-right); }
|
||||
.#{$fa-css-prefix}-align-justify:before { content: fa-content($fa-var-align-justify); }
|
||||
.#{$fa-css-prefix}-list:before { content: fa-content($fa-var-list); }
|
||||
.#{$fa-css-prefix}-dedent:before,
|
||||
.#{$fa-css-prefix}-outdent:before { content: fa-content($fa-var-outdent); }
|
||||
.#{$fa-css-prefix}-indent:before { content: fa-content($fa-var-indent); }
|
||||
.#{$fa-css-prefix}-video:before,
|
||||
.#{$fa-css-prefix}-video-camera:before { content: fa-content($fa-var-video-camera); }
|
||||
.#{$fa-css-prefix}-photo:before,
|
||||
.#{$fa-css-prefix}-image:before,
|
||||
.#{$fa-css-prefix}-picture-o:before { content: fa-content($fa-var-picture-o); }
|
||||
.#{$fa-css-prefix}-pencil:before { content: fa-content($fa-var-pencil); }
|
||||
.#{$fa-css-prefix}-map-marker:before { content: fa-content($fa-var-map-marker); }
|
||||
.#{$fa-css-prefix}-adjust:before { content: fa-content($fa-var-adjust); }
|
||||
.#{$fa-css-prefix}-tint:before { content: fa-content($fa-var-tint); }
|
||||
.#{$fa-css-prefix}-edit:before,
|
||||
.#{$fa-css-prefix}-pencil-square-o:before { content: fa-content($fa-var-pencil-square-o); }
|
||||
.#{$fa-css-prefix}-share-square-o:before { content: fa-content($fa-var-share-square-o); }
|
||||
.#{$fa-css-prefix}-check-square-o:before { content: fa-content($fa-var-check-square-o); }
|
||||
.#{$fa-css-prefix}-arrows:before { content: fa-content($fa-var-arrows); }
|
||||
.#{$fa-css-prefix}-step-backward:before { content: fa-content($fa-var-step-backward); }
|
||||
.#{$fa-css-prefix}-fast-backward:before { content: fa-content($fa-var-fast-backward); }
|
||||
.#{$fa-css-prefix}-backward:before { content: fa-content($fa-var-backward); }
|
||||
.#{$fa-css-prefix}-play:before { content: fa-content($fa-var-play); }
|
||||
.#{$fa-css-prefix}-pause:before { content: fa-content($fa-var-pause); }
|
||||
.#{$fa-css-prefix}-stop:before { content: fa-content($fa-var-stop); }
|
||||
.#{$fa-css-prefix}-forward:before { content: fa-content($fa-var-forward); }
|
||||
.#{$fa-css-prefix}-fast-forward:before { content: fa-content($fa-var-fast-forward); }
|
||||
.#{$fa-css-prefix}-step-forward:before { content: fa-content($fa-var-step-forward); }
|
||||
.#{$fa-css-prefix}-eject:before { content: fa-content($fa-var-eject); }
|
||||
.#{$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}-plus-circle:before { content: fa-content($fa-var-plus-circle); }
|
||||
.#{$fa-css-prefix}-minus-circle:before { content: fa-content($fa-var-minus-circle); }
|
||||
.#{$fa-css-prefix}-times-circle:before { content: fa-content($fa-var-times-circle); }
|
||||
.#{$fa-css-prefix}-check-circle:before { content: fa-content($fa-var-check-circle); }
|
||||
.#{$fa-css-prefix}-question-circle:before { content: fa-content($fa-var-question-circle); }
|
||||
.#{$fa-css-prefix}-info-circle:before { content: fa-content($fa-var-info-circle); }
|
||||
.#{$fa-css-prefix}-crosshairs:before { content: fa-content($fa-var-crosshairs); }
|
||||
.#{$fa-css-prefix}-times-circle-o:before { content: fa-content($fa-var-times-circle-o); }
|
||||
.#{$fa-css-prefix}-check-circle-o:before { content: fa-content($fa-var-check-circle-o); }
|
||||
.#{$fa-css-prefix}-ban:before { content: fa-content($fa-var-ban); }
|
||||
.#{$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-up:before { content: fa-content($fa-var-arrow-up); }
|
||||
.#{$fa-css-prefix}-arrow-down:before { content: fa-content($fa-var-arrow-down); }
|
||||
.#{$fa-css-prefix}-mail-forward:before,
|
||||
.#{$fa-css-prefix}-share:before { content: fa-content($fa-var-share); }
|
||||
.#{$fa-css-prefix}-expand:before { content: fa-content($fa-var-expand); }
|
||||
.#{$fa-css-prefix}-compress:before { content: fa-content($fa-var-compress); }
|
||||
.#{$fa-css-prefix}-plus:before { content: fa-content($fa-var-plus); }
|
||||
.#{$fa-css-prefix}-minus:before { content: fa-content($fa-var-minus); }
|
||||
.#{$fa-css-prefix}-asterisk:before { content: fa-content($fa-var-asterisk); }
|
||||
.#{$fa-css-prefix}-exclamation-circle:before { content: fa-content($fa-var-exclamation-circle); }
|
||||
.#{$fa-css-prefix}-gift:before { content: fa-content($fa-var-gift); }
|
||||
.#{$fa-css-prefix}-leaf:before { content: fa-content($fa-var-leaf); }
|
||||
.#{$fa-css-prefix}-fire:before { content: fa-content($fa-var-fire); }
|
||||
.#{$fa-css-prefix}-eye:before { content: fa-content($fa-var-eye); }
|
||||
.#{$fa-css-prefix}-eye-slash:before { content: fa-content($fa-var-eye-slash); }
|
||||
.#{$fa-css-prefix}-warning:before,
|
||||
.#{$fa-css-prefix}-exclamation-triangle:before { content: fa-content($fa-var-exclamation-triangle); }
|
||||
.#{$fa-css-prefix}-plane:before { content: fa-content($fa-var-plane); }
|
||||
.#{$fa-css-prefix}-calendar:before { content: fa-content($fa-var-calendar); }
|
||||
.#{$fa-css-prefix}-random:before { content: fa-content($fa-var-random); }
|
||||
.#{$fa-css-prefix}-comment:before { content: fa-content($fa-var-comment); }
|
||||
.#{$fa-css-prefix}-magnet:before { content: fa-content($fa-var-magnet); }
|
||||
.#{$fa-css-prefix}-chevron-up:before { content: fa-content($fa-var-chevron-up); }
|
||||
.#{$fa-css-prefix}-chevron-down:before { content: fa-content($fa-var-chevron-down); }
|
||||
.#{$fa-css-prefix}-retweet:before { content: fa-content($fa-var-retweet); }
|
||||
.#{$fa-css-prefix}-shopping-cart:before { content: fa-content($fa-var-shopping-cart); }
|
||||
.#{$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}-arrows-v:before { content: fa-content($fa-var-arrows-v); }
|
||||
.#{$fa-css-prefix}-arrows-h:before { content: fa-content($fa-var-arrows-h); }
|
||||
.#{$fa-css-prefix}-bar-chart-o:before,
|
||||
.#{$fa-css-prefix}-bar-chart:before { content: fa-content($fa-var-bar-chart); }
|
||||
.#{$fa-css-prefix}-twitter-square:before { content: fa-content($fa-var-twitter-square); }
|
||||
.#{$fa-css-prefix}-facebook-square:before { content: fa-content($fa-var-facebook-square); }
|
||||
.#{$fa-css-prefix}-camera-retro:before { content: fa-content($fa-var-camera-retro); }
|
||||
.#{$fa-css-prefix}-key:before { content: fa-content($fa-var-key); }
|
||||
.#{$fa-css-prefix}-gears:before,
|
||||
.#{$fa-css-prefix}-cogs:before { content: fa-content($fa-var-cogs); }
|
||||
.#{$fa-css-prefix}-comments:before { content: fa-content($fa-var-comments); }
|
||||
.#{$fa-css-prefix}-thumbs-o-up:before { content: fa-content($fa-var-thumbs-o-up); }
|
||||
.#{$fa-css-prefix}-thumbs-o-down:before { content: fa-content($fa-var-thumbs-o-down); }
|
||||
.#{$fa-css-prefix}-star-half:before { content: fa-content($fa-var-star-half); }
|
||||
.#{$fa-css-prefix}-heart-o:before { content: fa-content($fa-var-heart-o); }
|
||||
.#{$fa-css-prefix}-sign-out:before { content: fa-content($fa-var-sign-out); }
|
||||
.#{$fa-css-prefix}-linkedin-square:before { content: fa-content($fa-var-linkedin-square); }
|
||||
.#{$fa-css-prefix}-thumb-tack:before { content: fa-content($fa-var-thumb-tack); }
|
||||
.#{$fa-css-prefix}-external-link:before { content: fa-content($fa-var-external-link); }
|
||||
.#{$fa-css-prefix}-sign-in:before { content: fa-content($fa-var-sign-in); }
|
||||
.#{$fa-css-prefix}-trophy:before { content: fa-content($fa-var-trophy); }
|
||||
.#{$fa-css-prefix}-github-square:before { content: fa-content($fa-var-github-square); }
|
||||
.#{$fa-css-prefix}-upload:before { content: fa-content($fa-var-upload); }
|
||||
.#{$fa-css-prefix}-lemon-o:before { content: fa-content($fa-var-lemon-o); }
|
||||
.#{$fa-css-prefix}-phone:before { content: fa-content($fa-var-phone); }
|
||||
.#{$fa-css-prefix}-square-o:before { content: fa-content($fa-var-square-o); }
|
||||
.#{$fa-css-prefix}-bookmark-o:before { content: fa-content($fa-var-bookmark-o); }
|
||||
.#{$fa-css-prefix}-phone-square:before { content: fa-content($fa-var-phone-square); }
|
||||
.#{$fa-css-prefix}-twitter:before { content: fa-content($fa-var-twitter); }
|
||||
.#{$fa-css-prefix}-facebook-f:before,
|
||||
.#{$fa-css-prefix}-facebook:before { content: fa-content($fa-var-facebook); }
|
||||
.#{$fa-css-prefix}-github:before { content: fa-content($fa-var-github); }
|
||||
.#{$fa-css-prefix}-unlock:before { content: fa-content($fa-var-unlock); }
|
||||
.#{$fa-css-prefix}-credit-card:before { content: fa-content($fa-var-credit-card); }
|
||||
.#{$fa-css-prefix}-feed:before,
|
||||
.#{$fa-css-prefix}-rss:before { content: fa-content($fa-var-rss); }
|
||||
.#{$fa-css-prefix}-hdd-o:before { content: fa-content($fa-var-hdd-o); }
|
||||
.#{$fa-css-prefix}-bullhorn:before { content: fa-content($fa-var-bullhorn); }
|
||||
.#{$fa-css-prefix}-bell-o:before { content: fa-content($fa-var-bell-o); }
|
||||
.#{$fa-css-prefix}-certificate:before { content: fa-content($fa-var-certificate); }
|
||||
.#{$fa-css-prefix}-hand-o-right:before { content: fa-content($fa-var-hand-o-right); }
|
||||
.#{$fa-css-prefix}-hand-o-left:before { content: fa-content($fa-var-hand-o-left); }
|
||||
.#{$fa-css-prefix}-hand-o-up:before { content: fa-content($fa-var-hand-o-up); }
|
||||
.#{$fa-css-prefix}-hand-o-down:before { content: fa-content($fa-var-hand-o-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-circle-down:before { content: fa-content($fa-var-arrow-circle-down); }
|
||||
.#{$fa-css-prefix}-globe:before { content: fa-content($fa-var-globe); }
|
||||
.#{$fa-css-prefix}-globe-e:before { content: fa-content($fa-var-globe-e); }
|
||||
.#{$fa-css-prefix}-globe-w:before { content: fa-content($fa-var-globe-w); }
|
||||
.#{$fa-css-prefix}-wrench:before { content: fa-content($fa-var-wrench); }
|
||||
.#{$fa-css-prefix}-tasks:before { content: fa-content($fa-var-tasks); }
|
||||
.#{$fa-css-prefix}-filter:before { content: fa-content($fa-var-filter); }
|
||||
.#{$fa-css-prefix}-briefcase:before { content: fa-content($fa-var-briefcase); }
|
||||
.#{$fa-css-prefix}-arrows-alt:before { content: fa-content($fa-var-arrows-alt); }
|
||||
.#{$fa-css-prefix}-community:before,
|
||||
.#{$fa-css-prefix}-group:before,
|
||||
.#{$fa-css-prefix}-users:before { content: fa-content($fa-var-users); }
|
||||
.#{$fa-css-prefix}-chain:before,
|
||||
.#{$fa-css-prefix}-link:before { content: fa-content($fa-var-link); }
|
||||
.#{$fa-css-prefix}-cloud:before { content: fa-content($fa-var-cloud); }
|
||||
.#{$fa-css-prefix}-flask:before { content: fa-content($fa-var-flask); }
|
||||
.#{$fa-css-prefix}-cut:before,
|
||||
.#{$fa-css-prefix}-scissors:before { content: fa-content($fa-var-scissors); }
|
||||
.#{$fa-css-prefix}-copy:before,
|
||||
.#{$fa-css-prefix}-files-o:before { content: fa-content($fa-var-files-o); }
|
||||
.#{$fa-css-prefix}-paperclip:before { content: fa-content($fa-var-paperclip); }
|
||||
.#{$fa-css-prefix}-save:before,
|
||||
.#{$fa-css-prefix}-floppy-o:before { content: fa-content($fa-var-floppy-o); }
|
||||
.#{$fa-css-prefix}-square:before { content: fa-content($fa-var-square); }
|
||||
.#{$fa-css-prefix}-navicon:before,
|
||||
.#{$fa-css-prefix}-reorder:before,
|
||||
.#{$fa-css-prefix}-bars:before { content: fa-content($fa-var-bars); }
|
||||
.#{$fa-css-prefix}-list-ul:before { content: fa-content($fa-var-list-ul); }
|
||||
.#{$fa-css-prefix}-list-ol:before { content: fa-content($fa-var-list-ol); }
|
||||
.#{$fa-css-prefix}-strikethrough:before { content: fa-content($fa-var-strikethrough); }
|
||||
.#{$fa-css-prefix}-underline:before { content: fa-content($fa-var-underline); }
|
||||
.#{$fa-css-prefix}-table:before { content: fa-content($fa-var-table); }
|
||||
.#{$fa-css-prefix}-magic:before { content: fa-content($fa-var-magic); }
|
||||
.#{$fa-css-prefix}-truck:before { content: fa-content($fa-var-truck); }
|
||||
.#{$fa-css-prefix}-pinterest:before { content: fa-content($fa-var-pinterest); }
|
||||
.#{$fa-css-prefix}-pinterest-square:before { content: fa-content($fa-var-pinterest-square); }
|
||||
.#{$fa-css-prefix}-google-plus-square:before { content: fa-content($fa-var-google-plus-square); }
|
||||
.#{$fa-css-prefix}-google-plus-g:before,
|
||||
.#{$fa-css-prefix}-google-plus:before { content: fa-content($fa-var-google-plus); }
|
||||
.#{$fa-css-prefix}-money:before { content: fa-content($fa-var-money); }
|
||||
.#{$fa-css-prefix}-caret-down:before { content: fa-content($fa-var-caret-down); }
|
||||
.#{$fa-css-prefix}-caret-up:before { content: fa-content($fa-var-caret-up); }
|
||||
.#{$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}-columns:before { content: fa-content($fa-var-columns); }
|
||||
.#{$fa-css-prefix}-unsorted:before,
|
||||
.#{$fa-css-prefix}-sort:before { content: fa-content($fa-var-sort); }
|
||||
.#{$fa-css-prefix}-sort-down:before,
|
||||
.#{$fa-css-prefix}-sort-desc:before { content: fa-content($fa-var-sort-desc); }
|
||||
.#{$fa-css-prefix}-sort-up:before,
|
||||
.#{$fa-css-prefix}-sort-asc:before { content: fa-content($fa-var-sort-asc); }
|
||||
.#{$fa-css-prefix}-envelope:before { content: fa-content($fa-var-envelope); }
|
||||
.#{$fa-css-prefix}-linkedin:before { content: fa-content($fa-var-linkedin); }
|
||||
.#{$fa-css-prefix}-rotate-left:before,
|
||||
.#{$fa-css-prefix}-undo:before { content: fa-content($fa-var-undo); }
|
||||
.#{$fa-css-prefix}-legal:before,
|
||||
.#{$fa-css-prefix}-gavel:before { content: fa-content($fa-var-gavel); }
|
||||
.#{$fa-css-prefix}-dashboard:before,
|
||||
.#{$fa-css-prefix}-tachometer:before { content: fa-content($fa-var-tachometer); }
|
||||
.#{$fa-css-prefix}-comment-o:before { content: fa-content($fa-var-comment-o); }
|
||||
.#{$fa-css-prefix}-comments-o:before { content: fa-content($fa-var-comments-o); }
|
||||
.#{$fa-css-prefix}-flash:before,
|
||||
.#{$fa-css-prefix}-bolt:before { content: fa-content($fa-var-bolt); }
|
||||
.#{$fa-css-prefix}-sitemap:before { content: fa-content($fa-var-sitemap); }
|
||||
.#{$fa-css-prefix}-umbrella:before { content: fa-content($fa-var-umbrella); }
|
||||
.#{$fa-css-prefix}-paste:before,
|
||||
.#{$fa-css-prefix}-clipboard:before { content: fa-content($fa-var-clipboard); }
|
||||
.#{$fa-css-prefix}-lightbulb-o:before { content: fa-content($fa-var-lightbulb-o); }
|
||||
.#{$fa-css-prefix}-exchange:before { content: fa-content($fa-var-exchange); }
|
||||
.#{$fa-css-prefix}-cloud-download:before { content: fa-content($fa-var-cloud-download); }
|
||||
.#{$fa-css-prefix}-cloud-upload:before { content: fa-content($fa-var-cloud-upload); }
|
||||
.#{$fa-css-prefix}-user-md:before { content: fa-content($fa-var-user-md); }
|
||||
.#{$fa-css-prefix}-stethoscope:before { content: fa-content($fa-var-stethoscope); }
|
||||
.#{$fa-css-prefix}-suitcase:before { content: fa-content($fa-var-suitcase); }
|
||||
.#{$fa-css-prefix}-bell:before { content: fa-content($fa-var-bell); }
|
||||
.#{$fa-css-prefix}-coffee:before { content: fa-content($fa-var-coffee); }
|
||||
.#{$fa-css-prefix}-utensils:before,
|
||||
.#{$fa-css-prefix}-cutlery:before { content: fa-content($fa-var-cutlery); }
|
||||
.#{$fa-css-prefix}-file-text-o:before { content: fa-content($fa-var-file-text-o); }
|
||||
.#{$fa-css-prefix}-building-o:before { content: fa-content($fa-var-building-o); }
|
||||
.#{$fa-css-prefix}-hospital-o:before { content: fa-content($fa-var-hospital-o); }
|
||||
.#{$fa-css-prefix}-ambulance:before { content: fa-content($fa-var-ambulance); }
|
||||
.#{$fa-css-prefix}-medkit:before { content: fa-content($fa-var-medkit); }
|
||||
.#{$fa-css-prefix}-fighter-jet:before { content: fa-content($fa-var-fighter-jet); }
|
||||
.#{$fa-css-prefix}-beer:before { content: fa-content($fa-var-beer); }
|
||||
.#{$fa-css-prefix}-h-square:before { content: fa-content($fa-var-h-square); }
|
||||
.#{$fa-css-prefix}-plus-square:before { content: fa-content($fa-var-plus-square); }
|
||||
.#{$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-double-down:before { content: fa-content($fa-var-angle-double-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}-angle-down:before { content: fa-content($fa-var-angle-down); }
|
||||
.#{$fa-css-prefix}-desktop:before { content: fa-content($fa-var-desktop); }
|
||||
.#{$fa-css-prefix}-laptop:before { content: fa-content($fa-var-laptop); }
|
||||
.#{$fa-css-prefix}-tablet:before { content: fa-content($fa-var-tablet); }
|
||||
.#{$fa-css-prefix}-mobile-phone:before,
|
||||
.#{$fa-css-prefix}-mobile:before { content: fa-content($fa-var-mobile); }
|
||||
.#{$fa-css-prefix}-circle-o:before { content: fa-content($fa-var-circle-o); }
|
||||
.#{$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}-spinner:before { content: fa-content($fa-var-spinner); }
|
||||
.#{$fa-css-prefix}-circle:before { content: fa-content($fa-var-circle); }
|
||||
.#{$fa-css-prefix}-mail-reply:before,
|
||||
.#{$fa-css-prefix}-reply:before { content: fa-content($fa-var-reply); }
|
||||
.#{$fa-css-prefix}-github-alt:before { content: fa-content($fa-var-github-alt); }
|
||||
.#{$fa-css-prefix}-folder-o:before { content: fa-content($fa-var-folder-o); }
|
||||
.#{$fa-css-prefix}-folder-open-o:before { content: fa-content($fa-var-folder-open-o); }
|
||||
.#{$fa-css-prefix}-smile-o:before { content: fa-content($fa-var-smile-o); }
|
||||
.#{$fa-css-prefix}-frown-o:before { content: fa-content($fa-var-frown-o); }
|
||||
.#{$fa-css-prefix}-meh-o:before { content: fa-content($fa-var-meh-o); }
|
||||
.#{$fa-css-prefix}-gamepad:before { content: fa-content($fa-var-gamepad); }
|
||||
.#{$fa-css-prefix}-keyboard-o:before { content: fa-content($fa-var-keyboard-o); }
|
||||
.#{$fa-css-prefix}-flag-o:before { content: fa-content($fa-var-flag-o); }
|
||||
.#{$fa-css-prefix}-flag-checkered:before { content: fa-content($fa-var-flag-checkered); }
|
||||
.#{$fa-css-prefix}-terminal:before { content: fa-content($fa-var-terminal); }
|
||||
.#{$fa-css-prefix}-code:before { content: fa-content($fa-var-code); }
|
||||
.#{$fa-css-prefix}-mail-reply-all:before,
|
||||
.#{$fa-css-prefix}-reply-all:before { content: fa-content($fa-var-reply-all); }
|
||||
.#{$fa-css-prefix}-star-half-empty:before,
|
||||
.#{$fa-css-prefix}-star-half-full:before,
|
||||
.#{$fa-css-prefix}-star-half-o:before { content: fa-content($fa-var-star-half-o); }
|
||||
.#{$fa-css-prefix}-location-arrow:before { content: fa-content($fa-var-location-arrow); }
|
||||
.#{$fa-css-prefix}-crop:before { content: fa-content($fa-var-crop); }
|
||||
.#{$fa-css-prefix}-code-fork:before { content: fa-content($fa-var-code-fork); }
|
||||
.#{$fa-css-prefix}-unlink:before,
|
||||
.#{$fa-css-prefix}-chain-broken:before { content: fa-content($fa-var-chain-broken); }
|
||||
.#{$fa-css-prefix}-question:before { content: fa-content($fa-var-question); }
|
||||
.#{$fa-css-prefix}-info:before { content: fa-content($fa-var-info); }
|
||||
.#{$fa-css-prefix}-exclamation:before { content: fa-content($fa-var-exclamation); }
|
||||
.#{$fa-css-prefix}-superscript:before { content: fa-content($fa-var-superscript); }
|
||||
.#{$fa-css-prefix}-subscript:before { content: fa-content($fa-var-subscript); }
|
||||
.#{$fa-css-prefix}-eraser:before { content: fa-content($fa-var-eraser); }
|
||||
.#{$fa-css-prefix}-puzzle-piece:before { content: fa-content($fa-var-puzzle-piece); }
|
||||
.#{$fa-css-prefix}-microphone:before { content: fa-content($fa-var-microphone); }
|
||||
.#{$fa-css-prefix}-microphone-slash:before { content: fa-content($fa-var-microphone-slash); }
|
||||
.#{$fa-css-prefix}-shield:before { content: fa-content($fa-var-shield); }
|
||||
.#{$fa-css-prefix}-calendar-o:before { content: fa-content($fa-var-calendar-o); }
|
||||
.#{$fa-css-prefix}-fire-extinguisher:before { content: fa-content($fa-var-fire-extinguisher); }
|
||||
.#{$fa-css-prefix}-rocket:before { content: fa-content($fa-var-rocket); }
|
||||
.#{$fa-css-prefix}-maxcdn:before { content: fa-content($fa-var-maxcdn); }
|
||||
.#{$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-circle-down:before { content: fa-content($fa-var-chevron-circle-down); }
|
||||
.#{$fa-css-prefix}-html5:before { content: fa-content($fa-var-html5); }
|
||||
.#{$fa-css-prefix}-css3:before { content: fa-content($fa-var-css3); }
|
||||
.#{$fa-css-prefix}-anchor:before { content: fa-content($fa-var-anchor); }
|
||||
.#{$fa-css-prefix}-unlock-alt:before { content: fa-content($fa-var-unlock-alt); }
|
||||
.#{$fa-css-prefix}-bullseye:before { content: fa-content($fa-var-bullseye); }
|
||||
.#{$fa-css-prefix}-ellipsis-h:before { content: fa-content($fa-var-ellipsis-h); }
|
||||
.#{$fa-css-prefix}-ellipsis-v:before { content: fa-content($fa-var-ellipsis-v); }
|
||||
.#{$fa-css-prefix}-rss-square:before { content: fa-content($fa-var-rss-square); }
|
||||
.#{$fa-css-prefix}-play-circle:before { content: fa-content($fa-var-play-circle); }
|
||||
.#{$fa-css-prefix}-ticket:before { content: fa-content($fa-var-ticket); }
|
||||
.#{$fa-css-prefix}-minus-square:before { content: fa-content($fa-var-minus-square); }
|
||||
.#{$fa-css-prefix}-minus-square-o:before { content: fa-content($fa-var-minus-square-o); }
|
||||
.#{$fa-css-prefix}-level-up:before { content: fa-content($fa-var-level-up); }
|
||||
.#{$fa-css-prefix}-level-down:before { content: fa-content($fa-var-level-down); }
|
||||
.#{$fa-css-prefix}-check-square:before { content: fa-content($fa-var-check-square); }
|
||||
.#{$fa-css-prefix}-pencil-square:before { content: fa-content($fa-var-pencil-square); }
|
||||
.#{$fa-css-prefix}-external-link-square:before { content: fa-content($fa-var-external-link-square); }
|
||||
.#{$fa-css-prefix}-share-square:before { content: fa-content($fa-var-share-square); }
|
||||
.#{$fa-css-prefix}-compass:before { content: fa-content($fa-var-compass); }
|
||||
.#{$fa-css-prefix}-toggle-down:before,
|
||||
.#{$fa-css-prefix}-caret-square-o-down:before { content: fa-content($fa-var-caret-square-o-down); }
|
||||
.#{$fa-css-prefix}-toggle-up:before,
|
||||
.#{$fa-css-prefix}-caret-square-o-up:before { content: fa-content($fa-var-caret-square-o-up); }
|
||||
.#{$fa-css-prefix}-toggle-right:before,
|
||||
.#{$fa-css-prefix}-caret-square-o-right:before { content: fa-content($fa-var-caret-square-o-right); }
|
||||
.#{$fa-css-prefix}-euro:before,
|
||||
.#{$fa-css-prefix}-eur:before { content: fa-content($fa-var-eur); }
|
||||
.#{$fa-css-prefix}-pound:before,
|
||||
.#{$fa-css-prefix}-gbp:before { content: fa-content($fa-var-gbp); }
|
||||
.#{$fa-css-prefix}-dollar:before,
|
||||
.#{$fa-css-prefix}-usd:before { content: fa-content($fa-var-usd); }
|
||||
.#{$fa-css-prefix}-rupee:before,
|
||||
.#{$fa-css-prefix}-inr:before { content: fa-content($fa-var-inr); }
|
||||
.#{$fa-css-prefix}-cny:before,
|
||||
.#{$fa-css-prefix}-rmb:before,
|
||||
.#{$fa-css-prefix}-yen:before,
|
||||
.#{$fa-css-prefix}-jpy:before { content: fa-content($fa-var-jpy); }
|
||||
.#{$fa-css-prefix}-ruble:before,
|
||||
.#{$fa-css-prefix}-rouble:before,
|
||||
.#{$fa-css-prefix}-rub:before { content: fa-content($fa-var-rub); }
|
||||
.#{$fa-css-prefix}-won:before,
|
||||
.#{$fa-css-prefix}-krw:before { content: fa-content($fa-var-krw); }
|
||||
.#{$fa-css-prefix}-bitcoin:before,
|
||||
.#{$fa-css-prefix}-btc:before { content: fa-content($fa-var-btc); }
|
||||
.#{$fa-css-prefix}-file:before { content: fa-content($fa-var-file); }
|
||||
.#{$fa-css-prefix}-file-text:before { content: fa-content($fa-var-file-text); }
|
||||
.#{$fa-css-prefix}-sort-alpha-down:before,
|
||||
.#{$fa-css-prefix}-sort-alpha-asc:before { content: fa-content($fa-var-sort-alpha-asc); }
|
||||
.#{$fa-css-prefix}-sort-alpha-up:before,
|
||||
.#{$fa-css-prefix}-sort-alpha-desc:before { content: fa-content($fa-var-sort-alpha-desc); }
|
||||
.#{$fa-css-prefix}-sort-amount-down:before,
|
||||
.#{$fa-css-prefix}-sort-amount-asc:before { content: fa-content($fa-var-sort-amount-asc); }
|
||||
.#{$fa-css-prefix}-sort-amount-up:before,
|
||||
.#{$fa-css-prefix}-sort-amount-desc:before { content: fa-content($fa-var-sort-amount-desc); }
|
||||
.#{$fa-css-prefix}-sort-numeric-down:before,
|
||||
.#{$fa-css-prefix}-sort-numeric-asc:before { content: fa-content($fa-var-sort-numeric-asc); }
|
||||
.#{$fa-css-prefix}-sort-numeric-up:before,
|
||||
.#{$fa-css-prefix}-sort-numeric-desc:before { content: fa-content($fa-var-sort-numeric-desc); }
|
||||
.#{$fa-css-prefix}-thumbs-up:before { content: fa-content($fa-var-thumbs-up); }
|
||||
.#{$fa-css-prefix}-thumbs-down:before { content: fa-content($fa-var-thumbs-down); }
|
||||
.#{$fa-css-prefix}-youtube-square:before { content: fa-content($fa-var-youtube-square); }
|
||||
.#{$fa-css-prefix}-youtube:before { content: fa-content($fa-var-youtube); }
|
||||
.#{$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}-youtube-play:before { content: fa-content($fa-var-youtube-play); }
|
||||
.#{$fa-css-prefix}-dropbox:before { content: fa-content($fa-var-dropbox); }
|
||||
.#{$fa-css-prefix}-stack-overflow:before { content: fa-content($fa-var-stack-overflow); }
|
||||
.#{$fa-css-prefix}-instagram:before { content: fa-content($fa-var-instagram); }
|
||||
.#{$fa-css-prefix}-flickr:before { content: fa-content($fa-var-flickr); }
|
||||
.#{$fa-css-prefix}-adn:before { content: fa-content($fa-var-adn); }
|
||||
.#{$fa-css-prefix}-bitbucket:before { content: fa-content($fa-var-bitbucket); }
|
||||
.#{$fa-css-prefix}-bitbucket-square:before { content: fa-content($fa-var-bitbucket-square); }
|
||||
.#{$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}-long-arrow-down:before { content: fa-content($fa-var-long-arrow-down); }
|
||||
.#{$fa-css-prefix}-long-arrow-up:before { content: fa-content($fa-var-long-arrow-up); }
|
||||
.#{$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}-apple:before { content: fa-content($fa-var-apple); }
|
||||
.#{$fa-css-prefix}-windows:before { content: fa-content($fa-var-windows); }
|
||||
.#{$fa-css-prefix}-android:before { content: fa-content($fa-var-android); }
|
||||
.#{$fa-css-prefix}-linux:before { content: fa-content($fa-var-linux); }
|
||||
.#{$fa-css-prefix}-dribbble:before { content: fa-content($fa-var-dribbble); }
|
||||
.#{$fa-css-prefix}-skype:before { content: fa-content($fa-var-skype); }
|
||||
.#{$fa-css-prefix}-foursquare:before { content: fa-content($fa-var-foursquare); }
|
||||
.#{$fa-css-prefix}-trello:before { content: fa-content($fa-var-trello); }
|
||||
.#{$fa-css-prefix}-female:before { content: fa-content($fa-var-female); }
|
||||
.#{$fa-css-prefix}-male:before { content: fa-content($fa-var-male); }
|
||||
.#{$fa-css-prefix}-gittip:before,
|
||||
.#{$fa-css-prefix}-gratipay:before { content: fa-content($fa-var-gratipay); }
|
||||
.#{$fa-css-prefix}-sun-o:before { content: fa-content($fa-var-sun-o); }
|
||||
.#{$fa-css-prefix}-moon-o:before { content: fa-content($fa-var-moon-o); }
|
||||
.#{$fa-css-prefix}-archive:before { content: fa-content($fa-var-archive); }
|
||||
.#{$fa-css-prefix}-bug:before { content: fa-content($fa-var-bug); }
|
||||
.#{$fa-css-prefix}-vk:before { content: fa-content($fa-var-vk); }
|
||||
.#{$fa-css-prefix}-weibo:before { content: fa-content($fa-var-weibo); }
|
||||
.#{$fa-css-prefix}-renren:before { content: fa-content($fa-var-renren); }
|
||||
.#{$fa-css-prefix}-pagelines:before { content: fa-content($fa-var-pagelines); }
|
||||
.#{$fa-css-prefix}-stack-exchange:before { content: fa-content($fa-var-stack-exchange); }
|
||||
.#{$fa-css-prefix}-arrow-circle-o-right:before { content: fa-content($fa-var-arrow-circle-o-right); }
|
||||
.#{$fa-css-prefix}-arrow-circle-o-left:before { content: fa-content($fa-var-arrow-circle-o-left); }
|
||||
.#{$fa-css-prefix}-toggle-left:before,
|
||||
.#{$fa-css-prefix}-caret-square-o-left:before { content: fa-content($fa-var-caret-square-o-left); }
|
||||
.#{$fa-css-prefix}-dot-circle-o:before { content: fa-content($fa-var-dot-circle-o); }
|
||||
.#{$fa-css-prefix}-wheelchair:before { content: fa-content($fa-var-wheelchair); }
|
||||
.#{$fa-css-prefix}-vimeo-square:before { content: fa-content($fa-var-vimeo-square); }
|
||||
.#{$fa-css-prefix}-turkish-lira:before,
|
||||
.#{$fa-css-prefix}-try:before { content: fa-content($fa-var-try); }
|
||||
.#{$fa-css-prefix}-plus-square-o:before { content: fa-content($fa-var-plus-square-o); }
|
||||
.#{$fa-css-prefix}-space-shuttle:before { content: fa-content($fa-var-space-shuttle); }
|
||||
.#{$fa-css-prefix}-slack:before { content: fa-content($fa-var-slack); }
|
||||
.#{$fa-css-prefix}-envelope-square:before { content: fa-content($fa-var-envelope-square); }
|
||||
.#{$fa-css-prefix}-wordpress:before { content: fa-content($fa-var-wordpress); }
|
||||
.#{$fa-css-prefix}-openid:before { content: fa-content($fa-var-openid); }
|
||||
.#{$fa-css-prefix}-institution:before,
|
||||
.#{$fa-css-prefix}-bank:before,
|
||||
.#{$fa-css-prefix}-university:before { content: fa-content($fa-var-university); }
|
||||
.#{$fa-css-prefix}-mortar-board:before,
|
||||
.#{$fa-css-prefix}-graduation-cap:before { content: fa-content($fa-var-graduation-cap); }
|
||||
.#{$fa-css-prefix}-yahoo:before { content: fa-content($fa-var-yahoo); }
|
||||
.#{$fa-css-prefix}-google:before { content: fa-content($fa-var-google); }
|
||||
.#{$fa-css-prefix}-reddit:before { content: fa-content($fa-var-reddit); }
|
||||
.#{$fa-css-prefix}-reddit-square:before { content: fa-content($fa-var-reddit-square); }
|
||||
.#{$fa-css-prefix}-stumbleupon-circle:before { content: fa-content($fa-var-stumbleupon-circle); }
|
||||
.#{$fa-css-prefix}-stumbleupon:before { content: fa-content($fa-var-stumbleupon); }
|
||||
.#{$fa-css-prefix}-delicious:before { content: fa-content($fa-var-delicious); }
|
||||
.#{$fa-css-prefix}-digg:before { content: fa-content($fa-var-digg); }
|
||||
.#{$fa-css-prefix}-drupal:before { content: fa-content($fa-var-drupal); }
|
||||
.#{$fa-css-prefix}-joomla:before { content: fa-content($fa-var-joomla); }
|
||||
.#{$fa-css-prefix}-language:before { content: fa-content($fa-var-language); }
|
||||
.#{$fa-css-prefix}-fax:before { content: fa-content($fa-var-fax); }
|
||||
.#{$fa-css-prefix}-building:before { content: fa-content($fa-var-building); }
|
||||
.#{$fa-css-prefix}-child:before { content: fa-content($fa-var-child); }
|
||||
.#{$fa-css-prefix}-paw:before { content: fa-content($fa-var-paw); }
|
||||
.#{$fa-css-prefix}-utensil-spoon:before,
|
||||
.#{$fa-css-prefix}-spoon:before { content: fa-content($fa-var-spoon); }
|
||||
.#{$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}-behance:before { content: fa-content($fa-var-behance); }
|
||||
.#{$fa-css-prefix}-behance-square:before { content: fa-content($fa-var-behance-square); }
|
||||
.#{$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}-recycle:before { content: fa-content($fa-var-recycle); }
|
||||
.#{$fa-css-prefix}-automobile:before,
|
||||
.#{$fa-css-prefix}-car:before { content: fa-content($fa-var-car); }
|
||||
.#{$fa-css-prefix}-cab:before,
|
||||
.#{$fa-css-prefix}-taxi:before { content: fa-content($fa-var-taxi); }
|
||||
.#{$fa-css-prefix}-tree:before { content: fa-content($fa-var-tree); }
|
||||
.#{$fa-css-prefix}-spotify:before { content: fa-content($fa-var-spotify); }
|
||||
.#{$fa-css-prefix}-deviantart:before { content: fa-content($fa-var-deviantart); }
|
||||
.#{$fa-css-prefix}-soundcloud:before { content: fa-content($fa-var-soundcloud); }
|
||||
.#{$fa-css-prefix}-database:before { content: fa-content($fa-var-database); }
|
||||
.#{$fa-css-prefix}-file-pdf-o:before { content: fa-content($fa-var-file-pdf-o); }
|
||||
.#{$fa-css-prefix}-file-word-o:before { content: fa-content($fa-var-file-word-o); }
|
||||
.#{$fa-css-prefix}-file-excel-o:before { content: fa-content($fa-var-file-excel-o); }
|
||||
.#{$fa-css-prefix}-file-powerpoint-o:before { content: fa-content($fa-var-file-powerpoint-o); }
|
||||
.#{$fa-css-prefix}-file-photo-o:before,
|
||||
.#{$fa-css-prefix}-file-picture-o:before,
|
||||
.#{$fa-css-prefix}-file-image-o:before { content: fa-content($fa-var-file-image-o); }
|
||||
.#{$fa-css-prefix}-file-zip-o:before,
|
||||
.#{$fa-css-prefix}-file-archive-o:before { content: fa-content($fa-var-file-archive-o); }
|
||||
.#{$fa-css-prefix}-file-sound-o:before,
|
||||
.#{$fa-css-prefix}-file-audio-o:before { content: fa-content($fa-var-file-audio-o); }
|
||||
.#{$fa-css-prefix}-file-movie-o:before,
|
||||
.#{$fa-css-prefix}-file-video-o:before { content: fa-content($fa-var-file-video-o); }
|
||||
.#{$fa-css-prefix}-file-code-o:before { content: fa-content($fa-var-file-code-o); }
|
||||
.#{$fa-css-prefix}-vine:before { content: fa-content($fa-var-vine); }
|
||||
.#{$fa-css-prefix}-codepen:before { content: fa-content($fa-var-codepen); }
|
||||
.#{$fa-css-prefix}-jsfiddle:before { content: fa-content($fa-var-jsfiddle); }
|
||||
.#{$fa-css-prefix}-life-bouy:before,
|
||||
.#{$fa-css-prefix}-life-buoy:before,
|
||||
.#{$fa-css-prefix}-life-saver:before,
|
||||
.#{$fa-css-prefix}-support:before,
|
||||
.#{$fa-css-prefix}-life-ring:before { content: fa-content($fa-var-life-ring); }
|
||||
.#{$fa-css-prefix}-circle-o-notch:before { content: fa-content($fa-var-circle-o-notch); }
|
||||
.#{$fa-css-prefix}-ra:before,
|
||||
.#{$fa-css-prefix}-resistance:before,
|
||||
.#{$fa-css-prefix}-rebel:before { content: fa-content($fa-var-rebel); }
|
||||
.#{$fa-css-prefix}-ge:before,
|
||||
.#{$fa-css-prefix}-empire:before { content: fa-content($fa-var-empire); }
|
||||
.#{$fa-css-prefix}-git-square:before { content: fa-content($fa-var-git-square); }
|
||||
.#{$fa-css-prefix}-git:before { content: fa-content($fa-var-git); }
|
||||
.#{$fa-css-prefix}-y-combinator-square:before,
|
||||
.#{$fa-css-prefix}-yc-square:before,
|
||||
.#{$fa-css-prefix}-hacker-news:before { content: fa-content($fa-var-hacker-news); }
|
||||
.#{$fa-css-prefix}-tencent-weibo:before { content: fa-content($fa-var-tencent-weibo); }
|
||||
.#{$fa-css-prefix}-qq:before { content: fa-content($fa-var-qq); }
|
||||
.#{$fa-css-prefix}-wechat:before,
|
||||
.#{$fa-css-prefix}-weixin:before { content: fa-content($fa-var-weixin); }
|
||||
.#{$fa-css-prefix}-send:before,
|
||||
.#{$fa-css-prefix}-paper-plane:before { content: fa-content($fa-var-paper-plane); }
|
||||
.#{$fa-css-prefix}-send-o:before,
|
||||
.#{$fa-css-prefix}-paper-plane-o:before { content: fa-content($fa-var-paper-plane-o); }
|
||||
.#{$fa-css-prefix}-history:before { content: fa-content($fa-var-history); }
|
||||
.#{$fa-css-prefix}-circle-thin:before { content: fa-content($fa-var-circle-thin); }
|
||||
.#{$fa-css-prefix}-heading:before,
|
||||
.#{$fa-css-prefix}-header:before { content: fa-content($fa-var-header); }
|
||||
.#{$fa-css-prefix}-paragraph:before { content: fa-content($fa-var-paragraph); }
|
||||
.#{$fa-css-prefix}-sliders:before { content: fa-content($fa-var-sliders); }
|
||||
.#{$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}-bomb:before { content: fa-content($fa-var-bomb); }
|
||||
.#{$fa-css-prefix}-soccer-ball-o:before,
|
||||
.#{$fa-css-prefix}-futbol-o:before { content: fa-content($fa-var-futbol-o); }
|
||||
.#{$fa-css-prefix}-tty:before { content: fa-content($fa-var-tty); }
|
||||
.#{$fa-css-prefix}-binoculars:before { content: fa-content($fa-var-binoculars); }
|
||||
.#{$fa-css-prefix}-plug:before { content: fa-content($fa-var-plug); }
|
||||
.#{$fa-css-prefix}-slideshare:before { content: fa-content($fa-var-slideshare); }
|
||||
.#{$fa-css-prefix}-twitch:before { content: fa-content($fa-var-twitch); }
|
||||
.#{$fa-css-prefix}-yelp:before { content: fa-content($fa-var-yelp); }
|
||||
.#{$fa-css-prefix}-newspaper-o:before { content: fa-content($fa-var-newspaper-o); }
|
||||
.#{$fa-css-prefix}-wifi:before { content: fa-content($fa-var-wifi); }
|
||||
.#{$fa-css-prefix}-calculator:before { content: fa-content($fa-var-calculator); }
|
||||
.#{$fa-css-prefix}-paypal:before { content: fa-content($fa-var-paypal); }
|
||||
.#{$fa-css-prefix}-google-wallet:before { content: fa-content($fa-var-google-wallet); }
|
||||
.#{$fa-css-prefix}-cc-visa:before { content: fa-content($fa-var-cc-visa); }
|
||||
.#{$fa-css-prefix}-cc-mastercard:before { content: fa-content($fa-var-cc-mastercard); }
|
||||
.#{$fa-css-prefix}-cc-discover:before { content: fa-content($fa-var-cc-discover); }
|
||||
.#{$fa-css-prefix}-cc-amex:before { content: fa-content($fa-var-cc-amex); }
|
||||
.#{$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}-bell-slash:before { content: fa-content($fa-var-bell-slash); }
|
||||
.#{$fa-css-prefix}-bell-slash-o:before { content: fa-content($fa-var-bell-slash-o); }
|
||||
.#{$fa-css-prefix}-trash:before { content: fa-content($fa-var-trash); }
|
||||
.#{$fa-css-prefix}-copyright:before { content: fa-content($fa-var-copyright); }
|
||||
.#{$fa-css-prefix}-at:before { content: fa-content($fa-var-at); }
|
||||
.#{$fa-css-prefix}-eyedropper:before { content: fa-content($fa-var-eyedropper); }
|
||||
.#{$fa-css-prefix}-paint-brush:before { content: fa-content($fa-var-paint-brush); }
|
||||
.#{$fa-css-prefix}-birthday-cake:before { content: fa-content($fa-var-birthday-cake); }
|
||||
.#{$fa-css-prefix}-area-chart:before { content: fa-content($fa-var-area-chart); }
|
||||
.#{$fa-css-prefix}-pie-chart:before { content: fa-content($fa-var-pie-chart); }
|
||||
.#{$fa-css-prefix}-line-chart:before { content: fa-content($fa-var-line-chart); }
|
||||
.#{$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}-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}-bicycle:before { content: fa-content($fa-var-bicycle); }
|
||||
.#{$fa-css-prefix}-bus:before { content: fa-content($fa-var-bus); }
|
||||
.#{$fa-css-prefix}-ioxhost:before { content: fa-content($fa-var-ioxhost); }
|
||||
.#{$fa-css-prefix}-angellist:before { content: fa-content($fa-var-angellist); }
|
||||
.#{$fa-css-prefix}-closed-captioning:before,
|
||||
.#{$fa-css-prefix}-cc:before { content: fa-content($fa-var-cc); }
|
||||
.#{$fa-css-prefix}-shekel:before,
|
||||
.#{$fa-css-prefix}-sheqel:before,
|
||||
.#{$fa-css-prefix}-ils:before { content: fa-content($fa-var-ils); }
|
||||
.#{$fa-css-prefix}-meanpath:before { content: fa-content($fa-var-meanpath); }
|
||||
.#{$fa-css-prefix}-buysellads:before { content: fa-content($fa-var-buysellads); }
|
||||
.#{$fa-css-prefix}-connectdevelop:before { content: fa-content($fa-var-connectdevelop); }
|
||||
.#{$fa-css-prefix}-dashcube:before { content: fa-content($fa-var-dashcube); }
|
||||
.#{$fa-css-prefix}-forumbee:before { content: fa-content($fa-var-forumbee); }
|
||||
.#{$fa-css-prefix}-leanpub:before { content: fa-content($fa-var-leanpub); }
|
||||
.#{$fa-css-prefix}-sellsy:before { content: fa-content($fa-var-sellsy); }
|
||||
.#{$fa-css-prefix}-shirtsinbulk:before { content: fa-content($fa-var-shirtsinbulk); }
|
||||
.#{$fa-css-prefix}-simplybuilt:before { content: fa-content($fa-var-simplybuilt); }
|
||||
.#{$fa-css-prefix}-skyatlas:before { content: fa-content($fa-var-skyatlas); }
|
||||
.#{$fa-css-prefix}-cart-plus:before { content: fa-content($fa-var-cart-plus); }
|
||||
.#{$fa-css-prefix}-cart-arrow-down:before { content: fa-content($fa-var-cart-arrow-down); }
|
||||
.#{$fa-css-prefix}-gem:before,
|
||||
.#{$fa-css-prefix}-diamond:before { content: fa-content($fa-var-diamond); }
|
||||
.#{$fa-css-prefix}-ship:before { content: fa-content($fa-var-ship); }
|
||||
.#{$fa-css-prefix}-user-secret:before { content: fa-content($fa-var-user-secret); }
|
||||
.#{$fa-css-prefix}-motorcycle:before { content: fa-content($fa-var-motorcycle); }
|
||||
.#{$fa-css-prefix}-street-view:before { content: fa-content($fa-var-street-view); }
|
||||
.#{$fa-css-prefix}-heartbeat:before { content: fa-content($fa-var-heartbeat); }
|
||||
.#{$fa-css-prefix}-venus:before { content: fa-content($fa-var-venus); }
|
||||
.#{$fa-css-prefix}-mars:before { content: fa-content($fa-var-mars); }
|
||||
.#{$fa-css-prefix}-mercury:before { content: fa-content($fa-var-mercury); }
|
||||
.#{$fa-css-prefix}-intersex:before,
|
||||
.#{$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}-venus-double:before { content: fa-content($fa-var-venus-double); }
|
||||
.#{$fa-css-prefix}-mars-double:before { content: fa-content($fa-var-mars-double); }
|
||||
.#{$fa-css-prefix}-venus-mars:before { content: fa-content($fa-var-venus-mars); }
|
||||
.#{$fa-css-prefix}-mars-stroke:before { content: fa-content($fa-var-mars-stroke); }
|
||||
.#{$fa-css-prefix}-mars-stroke-v:before { content: fa-content($fa-var-mars-stroke-v); }
|
||||
.#{$fa-css-prefix}-mars-stroke-h:before { content: fa-content($fa-var-mars-stroke-h); }
|
||||
.#{$fa-css-prefix}-neuter:before { content: fa-content($fa-var-neuter); }
|
||||
.#{$fa-css-prefix}-genderless:before { content: fa-content($fa-var-genderless); }
|
||||
.#{$fa-css-prefix}-facebook-official:before { content: fa-content($fa-var-facebook-official); }
|
||||
.#{$fa-css-prefix}-pinterest-p:before { content: fa-content($fa-var-pinterest-p); }
|
||||
.#{$fa-css-prefix}-whatsapp:before { content: fa-content($fa-var-whatsapp); }
|
||||
.#{$fa-css-prefix}-server:before { content: fa-content($fa-var-server); }
|
||||
.#{$fa-css-prefix}-user-plus:before { content: fa-content($fa-var-user-plus); }
|
||||
.#{$fa-css-prefix}-user-times:before { content: fa-content($fa-var-user-times); }
|
||||
.#{$fa-css-prefix}-hotel:before,
|
||||
.#{$fa-css-prefix}-bed:before { content: fa-content($fa-var-bed); }
|
||||
.#{$fa-css-prefix}-viacoin:before { content: fa-content($fa-var-viacoin); }
|
||||
.#{$fa-css-prefix}-train:before { content: fa-content($fa-var-train); }
|
||||
.#{$fa-css-prefix}-subway:before { content: fa-content($fa-var-subway); }
|
||||
.#{$fa-css-prefix}-medium:before { content: fa-content($fa-var-medium); }
|
||||
.#{$fa-css-prefix}-medium-square:before { content: fa-content($fa-var-medium-square); }
|
||||
.#{$fa-css-prefix}-yc:before,
|
||||
.#{$fa-css-prefix}-y-combinator:before { content: fa-content($fa-var-y-combinator); }
|
||||
.#{$fa-css-prefix}-optin-monster:before { content: fa-content($fa-var-optin-monster); }
|
||||
.#{$fa-css-prefix}-opencart:before { content: fa-content($fa-var-opencart); }
|
||||
.#{$fa-css-prefix}-expeditedssl:before { content: fa-content($fa-var-expeditedssl); }
|
||||
.#{$fa-css-prefix}-battery-4:before,
|
||||
.#{$fa-css-prefix}-battery:before,
|
||||
.#{$fa-css-prefix}-battery-full:before { content: fa-content($fa-var-battery-full); }
|
||||
.#{$fa-css-prefix}-battery-3:before,
|
||||
.#{$fa-css-prefix}-battery-three-quarters:before { content: fa-content($fa-var-battery-three-quarters); }
|
||||
.#{$fa-css-prefix}-battery-2:before,
|
||||
.#{$fa-css-prefix}-battery-half:before { content: fa-content($fa-var-battery-half); }
|
||||
.#{$fa-css-prefix}-battery-1:before,
|
||||
.#{$fa-css-prefix}-battery-quarter:before { content: fa-content($fa-var-battery-quarter); }
|
||||
.#{$fa-css-prefix}-battery-0:before,
|
||||
.#{$fa-css-prefix}-battery-empty:before { content: fa-content($fa-var-battery-empty); }
|
||||
.#{$fa-css-prefix}-mouse-pointer:before { content: fa-content($fa-var-mouse-pointer); }
|
||||
.#{$fa-css-prefix}-i-cursor:before { content: fa-content($fa-var-i-cursor); }
|
||||
.#{$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}-sticky-note:before { content: fa-content($fa-var-sticky-note); }
|
||||
.#{$fa-css-prefix}-sticky-note-o:before { content: fa-content($fa-var-sticky-note-o); }
|
||||
.#{$fa-css-prefix}-cc-jcb:before { content: fa-content($fa-var-cc-jcb); }
|
||||
.#{$fa-css-prefix}-cc-diners-club:before { content: fa-content($fa-var-cc-diners-club); }
|
||||
.#{$fa-css-prefix}-clone:before { content: fa-content($fa-var-clone); }
|
||||
.#{$fa-css-prefix}-balance-scale:before { content: fa-content($fa-var-balance-scale); }
|
||||
.#{$fa-css-prefix}-hourglass-o:before { content: fa-content($fa-var-hourglass-o); }
|
||||
.#{$fa-css-prefix}-hourglass-1:before,
|
||||
.#{$fa-css-prefix}-hourglass-start:before { content: fa-content($fa-var-hourglass-start); }
|
||||
.#{$fa-css-prefix}-hourglass-2:before,
|
||||
.#{$fa-css-prefix}-hourglass-half:before { content: fa-content($fa-var-hourglass-half); }
|
||||
.#{$fa-css-prefix}-hourglass-3:before,
|
||||
.#{$fa-css-prefix}-hourglass-end:before { content: fa-content($fa-var-hourglass-end); }
|
||||
.#{$fa-css-prefix}-hourglass:before { content: fa-content($fa-var-hourglass); }
|
||||
.#{$fa-css-prefix}-hand-grab-o:before,
|
||||
.#{$fa-css-prefix}-hand-rock-o:before { content: fa-content($fa-var-hand-rock-o); }
|
||||
.#{$fa-css-prefix}-hand-stop-o:before,
|
||||
.#{$fa-css-prefix}-hand-paper-o:before { content: fa-content($fa-var-hand-paper-o); }
|
||||
.#{$fa-css-prefix}-hand-scissors-o:before { content: fa-content($fa-var-hand-scissors-o); }
|
||||
.#{$fa-css-prefix}-hand-lizard-o:before { content: fa-content($fa-var-hand-lizard-o); }
|
||||
.#{$fa-css-prefix}-hand-spock-o:before { content: fa-content($fa-var-hand-spock-o); }
|
||||
.#{$fa-css-prefix}-hand-pointer-o:before { content: fa-content($fa-var-hand-pointer-o); }
|
||||
.#{$fa-css-prefix}-hand-peace-o:before { content: fa-content($fa-var-hand-peace-o); }
|
||||
.#{$fa-css-prefix}-trademark:before { content: fa-content($fa-var-trademark); }
|
||||
.#{$fa-css-prefix}-registered:before { content: fa-content($fa-var-registered); }
|
||||
.#{$fa-css-prefix}-creative-commons:before { content: fa-content($fa-var-creative-commons); }
|
||||
.#{$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}-tripadvisor:before { content: fa-content($fa-var-tripadvisor); }
|
||||
.#{$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}-get-pocket:before { content: fa-content($fa-var-get-pocket); }
|
||||
.#{$fa-css-prefix}-wikipedia-w:before { content: fa-content($fa-var-wikipedia-w); }
|
||||
.#{$fa-css-prefix}-safari:before { content: fa-content($fa-var-safari); }
|
||||
.#{$fa-css-prefix}-chrome:before { content: fa-content($fa-var-chrome); }
|
||||
.#{$fa-css-prefix}-firefox:before { content: fa-content($fa-var-firefox); }
|
||||
.#{$fa-css-prefix}-opera:before { content: fa-content($fa-var-opera); }
|
||||
.#{$fa-css-prefix}-internet-explorer:before { content: fa-content($fa-var-internet-explorer); }
|
||||
.#{$fa-css-prefix}-tv:before,
|
||||
.#{$fa-css-prefix}-television:before { content: fa-content($fa-var-television); }
|
||||
.#{$fa-css-prefix}-contao:before { content: fa-content($fa-var-contao); }
|
||||
.#{$fa-css-prefix}-500px:before { content: fa-content($fa-var-500px); }
|
||||
.#{$fa-css-prefix}-amazon:before { content: fa-content($fa-var-amazon); }
|
||||
.#{$fa-css-prefix}-calendar-plus-o:before { content: fa-content($fa-var-calendar-plus-o); }
|
||||
.#{$fa-css-prefix}-calendar-minus-o:before { content: fa-content($fa-var-calendar-minus-o); }
|
||||
.#{$fa-css-prefix}-calendar-times-o:before { content: fa-content($fa-var-calendar-times-o); }
|
||||
.#{$fa-css-prefix}-calendar-check-o:before { content: fa-content($fa-var-calendar-check-o); }
|
||||
.#{$fa-css-prefix}-industry:before { content: fa-content($fa-var-industry); }
|
||||
.#{$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}-map-o:before { content: fa-content($fa-var-map-o); }
|
||||
.#{$fa-css-prefix}-map:before { content: fa-content($fa-var-map); }
|
||||
.#{$fa-css-prefix}-commenting:before { content: fa-content($fa-var-commenting); }
|
||||
.#{$fa-css-prefix}-commenting-o:before { content: fa-content($fa-var-commenting-o); }
|
||||
.#{$fa-css-prefix}-houzz:before { content: fa-content($fa-var-houzz); }
|
||||
.#{$fa-css-prefix}-vimeo-v:before,
|
||||
.#{$fa-css-prefix}-vimeo:before { content: fa-content($fa-var-vimeo); }
|
||||
.#{$fa-css-prefix}-black-tie:before { content: fa-content($fa-var-black-tie); }
|
||||
.#{$fa-css-prefix}-fonticons:before { content: fa-content($fa-var-fonticons); }
|
||||
.#{$fa-css-prefix}-reddit-alien:before { content: fa-content($fa-var-reddit-alien); }
|
||||
.#{$fa-css-prefix}-edge:before { content: fa-content($fa-var-edge); }
|
||||
.#{$fa-css-prefix}-credit-card-alt:before { content: fa-content($fa-var-credit-card-alt); }
|
||||
.#{$fa-css-prefix}-codiepie:before { content: fa-content($fa-var-codiepie); }
|
||||
.#{$fa-css-prefix}-modx:before { content: fa-content($fa-var-modx); }
|
||||
.#{$fa-css-prefix}-fort-awesome:before { content: fa-content($fa-var-fort-awesome); }
|
||||
.#{$fa-css-prefix}-usb:before { content: fa-content($fa-var-usb); }
|
||||
.#{$fa-css-prefix}-product-hunt:before { content: fa-content($fa-var-product-hunt); }
|
||||
.#{$fa-css-prefix}-mixcloud:before { content: fa-content($fa-var-mixcloud); }
|
||||
.#{$fa-css-prefix}-scribd:before { content: fa-content($fa-var-scribd); }
|
||||
.#{$fa-css-prefix}-pause-circle:before { content: fa-content($fa-var-pause-circle); }
|
||||
.#{$fa-css-prefix}-pause-circle-o:before { content: fa-content($fa-var-pause-circle-o); }
|
||||
.#{$fa-css-prefix}-stop-circle:before { content: fa-content($fa-var-stop-circle); }
|
||||
.#{$fa-css-prefix}-stop-circle-o:before { content: fa-content($fa-var-stop-circle-o); }
|
||||
.#{$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}-hashtag:before { content: fa-content($fa-var-hashtag); }
|
||||
.#{$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}-percent:before { content: fa-content($fa-var-percent); }
|
||||
.#{$fa-css-prefix}-gitlab:before { content: fa-content($fa-var-gitlab); }
|
||||
.#{$fa-css-prefix}-wpbeginner:before { content: fa-content($fa-var-wpbeginner); }
|
||||
.#{$fa-css-prefix}-wpforms:before { content: fa-content($fa-var-wpforms); }
|
||||
.#{$fa-css-prefix}-envira:before { content: fa-content($fa-var-envira); }
|
||||
.#{$fa-css-prefix}-universal-access:before { content: fa-content($fa-var-universal-access); }
|
||||
.#{$fa-css-prefix}-wheelchair-alt:before { content: fa-content($fa-var-wheelchair-alt); }
|
||||
.#{$fa-css-prefix}-question-circle-o:before { content: fa-content($fa-var-question-circle-o); }
|
||||
.#{$fa-css-prefix}-blind:before { content: fa-content($fa-var-blind); }
|
||||
.#{$fa-css-prefix}-audio-description:before { content: fa-content($fa-var-audio-description); }
|
||||
.#{$fa-css-prefix}-phone-volume:before,
|
||||
.#{$fa-css-prefix}-volume-control-phone:before { content: fa-content($fa-var-volume-control-phone); }
|
||||
.#{$fa-css-prefix}-braille:before { content: fa-content($fa-var-braille); }
|
||||
.#{$fa-css-prefix}-assistive-listening-systems:before { content: fa-content($fa-var-assistive-listening-systems); }
|
||||
.#{$fa-css-prefix}-asl-interpreting:before,
|
||||
.#{$fa-css-prefix}-american-sign-language-interpreting:before { content: fa-content($fa-var-american-sign-language-interpreting); }
|
||||
.#{$fa-css-prefix}-deafness:before,
|
||||
.#{$fa-css-prefix}-hard-of-hearing:before,
|
||||
.#{$fa-css-prefix}-deaf:before { content: fa-content($fa-var-deaf); }
|
||||
.#{$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}-signing:before,
|
||||
.#{$fa-css-prefix}-sign-language:before { content: fa-content($fa-var-sign-language); }
|
||||
.#{$fa-css-prefix}-low-vision:before { content: fa-content($fa-var-low-vision); }
|
||||
.#{$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}-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}-first-order:before { content: fa-content($fa-var-first-order); }
|
||||
.#{$fa-css-prefix}-yoast:before { content: fa-content($fa-var-yoast); }
|
||||
.#{$fa-css-prefix}-themeisle:before { content: fa-content($fa-var-themeisle); }
|
||||
.#{$fa-css-prefix}-google-plus-circle:before,
|
||||
.#{$fa-css-prefix}-google-plus-official:before { content: fa-content($fa-var-google-plus-official); }
|
||||
.#{$fa-css-prefix}-fa:before,
|
||||
.#{$fa-css-prefix}-font-awesome:before { content: fa-content($fa-var-font-awesome); }
|
||||
.#{$fa-css-prefix}-handshake-o:before { content: fa-content($fa-var-handshake-o); }
|
||||
.#{$fa-css-prefix}-envelope-open:before { content: fa-content($fa-var-envelope-open); }
|
||||
.#{$fa-css-prefix}-envelope-open-o:before { content: fa-content($fa-var-envelope-open-o); }
|
||||
.#{$fa-css-prefix}-linode:before { content: fa-content($fa-var-linode); }
|
||||
.#{$fa-css-prefix}-address-book:before { content: fa-content($fa-var-address-book); }
|
||||
.#{$fa-css-prefix}-address-book-o:before { content: fa-content($fa-var-address-book-o); }
|
||||
.#{$fa-css-prefix}-vcard:before,
|
||||
.#{$fa-css-prefix}-address-card:before { content: fa-content($fa-var-address-card); }
|
||||
.#{$fa-css-prefix}-vcard-o:before,
|
||||
.#{$fa-css-prefix}-address-card-o:before { content: fa-content($fa-var-address-card-o); }
|
||||
.#{$fa-css-prefix}-user-circle:before { content: fa-content($fa-var-user-circle); }
|
||||
.#{$fa-css-prefix}-user-circle-o:before { content: fa-content($fa-var-user-circle-o); }
|
||||
.#{$fa-css-prefix}-user-o:before { content: fa-content($fa-var-user-o); }
|
||||
.#{$fa-css-prefix}-id-badge:before { content: fa-content($fa-var-id-badge); }
|
||||
.#{$fa-css-prefix}-drivers-license:before,
|
||||
.#{$fa-css-prefix}-id-card:before { content: fa-content($fa-var-id-card); }
|
||||
.#{$fa-css-prefix}-drivers-license-o:before,
|
||||
.#{$fa-css-prefix}-id-card-o:before { content: fa-content($fa-var-id-card-o); }
|
||||
.#{$fa-css-prefix}-quora:before { content: fa-content($fa-var-quora); }
|
||||
.#{$fa-css-prefix}-free-code-camp:before { content: fa-content($fa-var-free-code-camp); }
|
||||
.#{$fa-css-prefix}-telegram:before { content: fa-content($fa-var-telegram); }
|
||||
.#{$fa-css-prefix}-thermometer-4:before,
|
||||
.#{$fa-css-prefix}-thermometer:before,
|
||||
.#{$fa-css-prefix}-thermometer-full:before { content: fa-content($fa-var-thermometer-full); }
|
||||
.#{$fa-css-prefix}-thermometer-3:before,
|
||||
.#{$fa-css-prefix}-thermometer-three-quarters:before { content: fa-content($fa-var-thermometer-three-quarters); }
|
||||
.#{$fa-css-prefix}-thermometer-2:before,
|
||||
.#{$fa-css-prefix}-thermometer-half:before { content: fa-content($fa-var-thermometer-half); }
|
||||
.#{$fa-css-prefix}-thermometer-1:before,
|
||||
.#{$fa-css-prefix}-thermometer-quarter:before { content: fa-content($fa-var-thermometer-quarter); }
|
||||
.#{$fa-css-prefix}-thermometer-0:before,
|
||||
.#{$fa-css-prefix}-thermometer-empty:before { content: fa-content($fa-var-thermometer-empty); }
|
||||
.#{$fa-css-prefix}-shower:before { content: fa-content($fa-var-shower); }
|
||||
.#{$fa-css-prefix}-bathtub:before,
|
||||
.#{$fa-css-prefix}-s15:before,
|
||||
.#{$fa-css-prefix}-bath:before { content: fa-content($fa-var-bath); }
|
||||
.#{$fa-css-prefix}-podcast:before { content: fa-content($fa-var-podcast); }
|
||||
.#{$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}-times-rectangle:before,
|
||||
.#{$fa-css-prefix}-window-close:before { content: fa-content($fa-var-window-close); }
|
||||
.#{$fa-css-prefix}-times-rectangle-o:before,
|
||||
.#{$fa-css-prefix}-window-close-o:before { content: fa-content($fa-var-window-close-o); }
|
||||
.#{$fa-css-prefix}-bandcamp:before { content: fa-content($fa-var-bandcamp); }
|
||||
.#{$fa-css-prefix}-grav:before { content: fa-content($fa-var-grav); }
|
||||
.#{$fa-css-prefix}-etsy:before { content: fa-content($fa-var-etsy); }
|
||||
.#{$fa-css-prefix}-imdb:before { content: fa-content($fa-var-imdb); }
|
||||
.#{$fa-css-prefix}-ravelry:before { content: fa-content($fa-var-ravelry); }
|
||||
.#{$fa-css-prefix}-eercast:before { content: fa-content($fa-var-eercast); }
|
||||
.#{$fa-css-prefix}-microchip:before { content: fa-content($fa-var-microchip); }
|
||||
.#{$fa-css-prefix}-snowflake-o:before { content: fa-content($fa-var-snowflake-o); }
|
||||
.#{$fa-css-prefix}-superpowers:before { content: fa-content($fa-var-superpowers); }
|
||||
.#{$fa-css-prefix}-wpexplorer:before { content: fa-content($fa-var-wpexplorer); }
|
||||
.#{$fa-css-prefix}-meetup:before { content: fa-content($fa-var-meetup); }
|
||||
.#{$fa-css-prefix}-mastodon:before { content: fa-content($fa-var-mastodon); }
|
||||
.#{$fa-css-prefix}-mastodon-alt:before { content: fa-content($fa-var-mastodon-alt); }
|
||||
.#{$fa-css-prefix}-fork-circle:before,
|
||||
.#{$fa-css-prefix}-fork-awesome:before { content: fa-content($fa-var-fork-awesome); }
|
||||
.#{$fa-css-prefix}-peertube:before { content: fa-content($fa-var-peertube); }
|
||||
.#{$fa-css-prefix}-diaspora:before { content: fa-content($fa-var-diaspora); }
|
||||
.#{$fa-css-prefix}-friendica:before { content: fa-content($fa-var-friendica); }
|
||||
.#{$fa-css-prefix}-gnu-social:before { content: fa-content($fa-var-gnu-social); }
|
||||
.#{$fa-css-prefix}-liberapay-square:before { content: fa-content($fa-var-liberapay-square); }
|
||||
.#{$fa-css-prefix}-liberapay:before { content: fa-content($fa-var-liberapay); }
|
||||
.#{$fa-css-prefix}-ssb:before,
|
||||
.#{$fa-css-prefix}-scuttlebutt:before { content: fa-content($fa-var-scuttlebutt); }
|
||||
.#{$fa-css-prefix}-hubzilla:before { content: fa-content($fa-var-hubzilla); }
|
||||
.#{$fa-css-prefix}-social-home:before { content: fa-content($fa-var-social-home); }
|
||||
.#{$fa-css-prefix}-artstation:before { content: fa-content($fa-var-artstation); }
|
||||
.#{$fa-css-prefix}-discord:before { content: fa-content($fa-var-discord); }
|
||||
.#{$fa-css-prefix}-discord-alt:before { content: fa-content($fa-var-discord-alt); }
|
||||
.#{$fa-css-prefix}-patreon:before { content: fa-content($fa-var-patreon); }
|
||||
.#{$fa-css-prefix}-snowdrift:before { content: fa-content($fa-var-snowdrift); }
|
||||
.#{$fa-css-prefix}-activitypub:before { content: fa-content($fa-var-activitypub); }
|
||||
.#{$fa-css-prefix}-ethereum:before { content: fa-content($fa-var-ethereum); }
|
||||
.#{$fa-css-prefix}-keybase:before { content: fa-content($fa-var-keybase); }
|
||||
.#{$fa-css-prefix}-shaarli:before { content: fa-content($fa-var-shaarli); }
|
||||
.#{$fa-css-prefix}-shaarli-o:before { content: fa-content($fa-var-shaarli-o); }
|
||||
.#{$fa-css-prefix}-cut-key:before,
|
||||
.#{$fa-css-prefix}-key-modern:before { content: fa-content($fa-var-key-modern); }
|
||||
.#{$fa-css-prefix}-xmpp:before { content: fa-content($fa-var-xmpp); }
|
||||
.#{$fa-css-prefix}-archive-org:before { content: fa-content($fa-var-archive-org); }
|
||||
.#{$fa-css-prefix}-freedombox:before { content: fa-content($fa-var-freedombox); }
|
||||
.#{$fa-css-prefix}-facebook-messenger:before { content: fa-content($fa-var-facebook-messenger); }
|
||||
.#{$fa-css-prefix}-debian:before { content: fa-content($fa-var-debian); }
|
||||
.#{$fa-css-prefix}-mastodon-square:before { content: fa-content($fa-var-mastodon-square); }
|
||||
.#{$fa-css-prefix}-tipeee:before { content: fa-content($fa-var-tipeee); }
|
||||
.#{$fa-css-prefix}-react:before { content: fa-content($fa-var-react); }
|
||||
.#{$fa-css-prefix}-dogmazic:before { content: fa-content($fa-var-dogmazic); }
|
||||
.#{$fa-css-prefix}-zotero:before { content: fa-content($fa-var-zotero); }
|
||||
.#{$fa-css-prefix}-nodejs:before { content: fa-content($fa-var-nodejs); }
|
||||
.#{$fa-css-prefix}-nextcloud:before { content: fa-content($fa-var-nextcloud); }
|
||||
.#{$fa-css-prefix}-nextcloud-square:before { content: fa-content($fa-var-nextcloud-square); }
|
||||
.#{$fa-css-prefix}-hackaday:before { content: fa-content($fa-var-hackaday); }
|
||||
.#{$fa-css-prefix}-laravel:before { content: fa-content($fa-var-laravel); }
|
||||
.#{$fa-css-prefix}-signalapp:before { content: fa-content($fa-var-signalapp); }
|
||||
.#{$fa-css-prefix}-gnupg:before { content: fa-content($fa-var-gnupg); }
|
||||
.#{$fa-css-prefix}-php:before { content: fa-content($fa-var-php); }
|
||||
.#{$fa-css-prefix}-ffmpeg:before { content: fa-content($fa-var-ffmpeg); }
|
||||
.#{$fa-css-prefix}-joplin:before { content: fa-content($fa-var-joplin); }
|
||||
.#{$fa-css-prefix}-syncthing:before { content: fa-content($fa-var-syncthing); }
|
||||
.#{$fa-css-prefix}-inkscape:before { content: fa-content($fa-var-inkscape); }
|
||||
.#{$fa-css-prefix}-matrix-org:before { content: fa-content($fa-var-matrix-org); }
|
||||
.#{$fa-css-prefix}-pixelfed:before { content: fa-content($fa-var-pixelfed); }
|
||||
.#{$fa-css-prefix}-bootstrap:before { content: fa-content($fa-var-bootstrap); }
|
||||
.#{$fa-css-prefix}-dev-to:before { content: fa-content($fa-var-dev-to); }
|
||||
.#{$fa-css-prefix}-hashnode:before { content: fa-content($fa-var-hashnode); }
|
||||
.#{$fa-css-prefix}-jirafeau:before { content: fa-content($fa-var-jirafeau); }
|
||||
.#{$fa-css-prefix}-emby:before { content: fa-content($fa-var-emby); }
|
||||
.#{$fa-css-prefix}-wikidata:before { content: fa-content($fa-var-wikidata); }
|
||||
.#{$fa-css-prefix}-gimp:before { content: fa-content($fa-var-gimp); }
|
||||
.#{$fa-css-prefix}-c:before { content: fa-content($fa-var-c); }
|
||||
.#{$fa-css-prefix}-digitalocean:before { content: fa-content($fa-var-digitalocean); }
|
||||
.#{$fa-css-prefix}-att:before { content: fa-content($fa-var-att); }
|
||||
.#{$fa-css-prefix}-gitea:before { content: fa-content($fa-var-gitea); }
|
||||
.#{$fa-css-prefix}-file-epub:before { content: fa-content($fa-var-file-epub); }
|
||||
.#{$fa-css-prefix}-python:before { content: fa-content($fa-var-python); }
|
||||
.#{$fa-css-prefix}-archlinux:before { content: fa-content($fa-var-archlinux); }
|
||||
.#{$fa-css-prefix}-pleroma:before { content: fa-content($fa-var-pleroma); }
|
||||
.#{$fa-css-prefix}-unsplash:before { content: fa-content($fa-var-unsplash); }
|
||||
.#{$fa-css-prefix}-hackster:before { content: fa-content($fa-var-hackster); }
|
||||
.#{$fa-css-prefix}-spell-check:before { content: fa-content($fa-var-spell-check); }
|
||||
.#{$fa-css-prefix}-moon:before { content: fa-content($fa-var-moon); }
|
||||
.#{$fa-css-prefix}-sun:before { content: fa-content($fa-var-sun); }
|
||||
.#{$fa-css-prefix}-f-droid:before { content: fa-content($fa-var-f-droid); }
|
||||
.#{$fa-css-prefix}-biometric:before { content: fa-content($fa-var-biometric); }
|
||||
.#{$fa-css-prefix}-wire:before { content: fa-content($fa-var-wire); }
|
||||
.#{$fa-css-prefix}-tor-onion:before { content: fa-content($fa-var-tor-onion); }
|
||||
.#{$fa-css-prefix}-volume-mute:before { content: fa-content($fa-var-volume-mute); }
|
||||
.#{$fa-css-prefix}-bell-ringing:before { content: fa-content($fa-var-bell-ringing); }
|
||||
.#{$fa-css-prefix}-bell-ringing-o:before { content: fa-content($fa-var-bell-ringing-o); }
|
||||
.#{$fa-css-prefix}-hal:before { content: fa-content($fa-var-hal); }
|
||||
.#{$fa-css-prefix}-jupyter:before { content: fa-content($fa-var-jupyter); }
|
||||
.#{$fa-css-prefix}-julia:before { content: fa-content($fa-var-julia); }
|
||||
.#{$fa-css-prefix}-classicpress:before { content: fa-content($fa-var-classicpress); }
|
||||
.#{$fa-css-prefix}-classicpress-circle:before { content: fa-content($fa-var-classicpress-circle); }
|
||||
.#{$fa-css-prefix}-open-collective:before { content: fa-content($fa-var-open-collective); }
|
||||
.#{$fa-css-prefix}-orcid:before { content: fa-content($fa-var-orcid); }
|
||||
.#{$fa-css-prefix}-researchgate:before { content: fa-content($fa-var-researchgate); }
|
||||
.#{$fa-css-prefix}-funkwhale:before { content: fa-content($fa-var-funkwhale); }
|
||||
.#{$fa-css-prefix}-askfm:before { content: fa-content($fa-var-askfm); }
|
||||
.#{$fa-css-prefix}-blockstack:before { content: fa-content($fa-var-blockstack); }
|
||||
.#{$fa-css-prefix}-boardgamegeek:before { content: fa-content($fa-var-boardgamegeek); }
|
||||
.#{$fa-css-prefix}-bunny:before { content: fa-content($fa-var-bunny); }
|
||||
.#{$fa-css-prefix}-buymeacoffee:before { content: fa-content($fa-var-buymeacoffee); }
|
||||
.#{$fa-css-prefix}-cc-by:before { content: fa-content($fa-var-cc-by); }
|
||||
.#{$fa-css-prefix}-creative-commons-alt:before,
|
||||
.#{$fa-css-prefix}-cc-cc:before { content: fa-content($fa-var-cc-cc); }
|
||||
.#{$fa-css-prefix}-cc-nc-eu:before { content: fa-content($fa-var-cc-nc-eu); }
|
||||
.#{$fa-css-prefix}-cc-nc-jp:before { content: fa-content($fa-var-cc-nc-jp); }
|
||||
.#{$fa-css-prefix}-cc-nc:before { content: fa-content($fa-var-cc-nc); }
|
||||
.#{$fa-css-prefix}-cc-nd:before { content: fa-content($fa-var-cc-nd); }
|
||||
.#{$fa-css-prefix}-cc-pd:before { content: fa-content($fa-var-cc-pd); }
|
||||
.#{$fa-css-prefix}-cc-remix:before { content: fa-content($fa-var-cc-remix); }
|
||||
.#{$fa-css-prefix}-cc-sa:before { content: fa-content($fa-var-cc-sa); }
|
||||
.#{$fa-css-prefix}-cc-share:before { content: fa-content($fa-var-cc-share); }
|
||||
.#{$fa-css-prefix}-cc-zero:before { content: fa-content($fa-var-cc-zero); }
|
||||
.#{$fa-css-prefix}-conway-hacker:before,
|
||||
.#{$fa-css-prefix}-conway-glider:before { content: fa-content($fa-var-conway-glider); }
|
||||
.#{$fa-css-prefix}-csharp:before { content: fa-content($fa-var-csharp); }
|
||||
.#{$fa-css-prefix}-email-bulk:before { content: fa-content($fa-var-email-bulk); }
|
||||
.#{$fa-css-prefix}-email-bulk-o:before { content: fa-content($fa-var-email-bulk-o); }
|
||||
.#{$fa-css-prefix}-gnu:before { content: fa-content($fa-var-gnu); }
|
||||
.#{$fa-css-prefix}-google-play:before { content: fa-content($fa-var-google-play); }
|
||||
.#{$fa-css-prefix}-heroku:before { content: fa-content($fa-var-heroku); }
|
||||
.#{$fa-css-prefix}-hassio:before,
|
||||
.#{$fa-css-prefix}-home-assistant:before { content: fa-content($fa-var-home-assistant); }
|
||||
.#{$fa-css-prefix}-java:before { content: fa-content($fa-var-java); }
|
||||
.#{$fa-css-prefix}-mariadb:before { content: fa-content($fa-var-mariadb); }
|
||||
.#{$fa-css-prefix}-markdown:before { content: fa-content($fa-var-markdown); }
|
||||
.#{$fa-css-prefix}-mysql:before { content: fa-content($fa-var-mysql); }
|
||||
.#{$fa-css-prefix}-nordcast:before { content: fa-content($fa-var-nordcast); }
|
||||
.#{$fa-css-prefix}-plume:before { content: fa-content($fa-var-plume); }
|
||||
.#{$fa-css-prefix}-postgresql:before { content: fa-content($fa-var-postgresql); }
|
||||
.#{$fa-css-prefix}-sass-alt:before { content: fa-content($fa-var-sass-alt); }
|
||||
.#{$fa-css-prefix}-sass:before { content: fa-content($fa-var-sass); }
|
||||
.#{$fa-css-prefix}-skate:before { content: fa-content($fa-var-skate); }
|
||||
.#{$fa-css-prefix}-sketchfab:before { content: fa-content($fa-var-sketchfab); }
|
||||
.#{$fa-css-prefix}-tex:before { content: fa-content($fa-var-tex); }
|
||||
.#{$fa-css-prefix}-textpattern:before { content: fa-content($fa-var-textpattern); }
|
||||
.#{$fa-css-prefix}-unity:before { content: fa-content($fa-var-unity); }
|
|
@ -1,13 +0,0 @@
|
|||
// 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: -15%;
|
||||
}
|
||||
.#{$fa-css-prefix}-2x { font-size: 2em; }
|
||||
.#{$fa-css-prefix}-3x { font-size: 3em; }
|
||||
.#{$fa-css-prefix}-4x { font-size: 4em; }
|
||||
.#{$fa-css-prefix}-5x { font-size: 5em; }
|
|
@ -1,19 +0,0 @@
|
|||
// List Icons
|
||||
// -------------------------
|
||||
|
||||
.#{$fa-css-prefix}-ul {
|
||||
padding-left: 0;
|
||||
margin-left: $fa-li-width;
|
||||
list-style-type: none;
|
||||
> li { position: relative; }
|
||||
}
|
||||
.#{$fa-css-prefix}-li {
|
||||
position: absolute;
|
||||
left: -$fa-li-width;
|
||||
width: $fa-li-width;
|
||||
top: (2em / 14);
|
||||
text-align: center;
|
||||
&.#{$fa-css-prefix}-lg {
|
||||
left: -$fa-li-width + (4em / 14);
|
||||
}
|
||||
}
|
|
@ -1,60 +0,0 @@
|
|||
// Mixins
|
||||
// --------------------------
|
||||
|
||||
@mixin fa-icon() {
|
||||
display: inline-block;
|
||||
font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} #{$fa-font-family}; // shortening font declaration
|
||||
font-size: inherit; // can't have font-size inherit on line above, so need to override
|
||||
text-rendering: auto; // optimizelegibility throws things off #1094
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
|
||||
}
|
||||
|
||||
@mixin fa-icon-rotate($degrees, $rotation) {
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})";
|
||||
-webkit-transform: rotate($degrees);
|
||||
-ms-transform: rotate($degrees);
|
||||
transform: rotate($degrees);
|
||||
}
|
||||
|
||||
@mixin fa-icon-flip($horiz, $vert, $rotation) {
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)";
|
||||
-webkit-transform: scale($horiz, $vert);
|
||||
-ms-transform: scale($horiz, $vert);
|
||||
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 {
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
padding: 0;
|
||||
margin: -1px;
|
||||
overflow: hidden;
|
||||
clip: rect(0,0,0,0);
|
||||
border: 0;
|
||||
}
|
||||
|
||||
// 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 {
|
||||
position: static;
|
||||
width: auto;
|
||||
height: auto;
|
||||
margin: 0;
|
||||
overflow: visible;
|
||||
clip: auto;
|
||||
}
|
||||
}
|
|
@ -1,16 +0,0 @@
|
|||
/* FONT PATH
|
||||
* -------------------------- */
|
||||
|
||||
@font-face {
|
||||
font-family: '#{$fa-font-family}';
|
||||
src: url('#{$fa-font-path}/forkawesome-webfont.eot?v=#{$fa-version}');
|
||||
src: url('#{$fa-font-path}/forkawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'),
|
||||
url('#{$fa-font-path}/forkawesome-webfont.woff2?v=#{$fa-version}') format('woff2'),
|
||||
url('#{$fa-font-path}/forkawesome-webfont.woff?v=#{$fa-version}') format('woff'),
|
||||
url('#{$fa-font-path}/forkawesome-webfont.ttf?v=#{$fa-version}') format('truetype'),
|
||||
url('#{$fa-font-path}/forkawesome-webfont.svg?v=#{$fa-version}#forkawesomeregular') format('svg');
|
||||
// src: url('#{$fa-font-path}/ForkAwesome.otf') format('opentype'); // used when developing fonts
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
font-display: block;
|
||||
}
|
|
@ -1,20 +0,0 @@
|
|||
// 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); }
|
||||
|
||||
// Hook for IE8-9
|
||||
// -------------------------
|
||||
|
||||
:root .#{$fa-css-prefix}-rotate-90,
|
||||
:root .#{$fa-css-prefix}-rotate-180,
|
||||
:root .#{$fa-css-prefix}-rotate-270,
|
||||
:root .#{$fa-css-prefix}-flip-horizontal,
|
||||
:root .#{$fa-css-prefix}-flip-vertical {
|
||||
filter: none;
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
// Screen Readers
|
||||
// -------------------------
|
||||
|
||||
.sr-only { @include sr-only(); }
|
||||
.sr-only-focusable { @include sr-only-focusable(); }
|
|
@ -1,20 +0,0 @@
|
|||
// Stacked Icons
|
||||
// -------------------------
|
||||
|
||||
.#{$fa-css-prefix}-stack {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
width: 2em;
|
||||
height: 2em;
|
||||
line-height: 2em;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
}
|
||||
.#{$fa-css-prefix}-stack-1x { line-height: inherit; }
|
||||
.#{$fa-css-prefix}-stack-2x { font-size: 2em; }
|
||||
.#{$fa-css-prefix}-inverse { color: $fa-inverse; }
|
|
@ -1,945 +0,0 @@
|
|||
// Variables
|
||||
// --------------------------
|
||||
|
||||
$fa-font-path: "../fonts" !default;
|
||||
$fa-font-size-base: 14px !default;
|
||||
$fa-line-height-base: 1 !default;
|
||||
$fa-css-prefix: "fa" !default;
|
||||
$fa-font-family: "ForkAwesome" !default;
|
||||
$fa-version: "1.2.0" !default;
|
||||
$fa-border-color: #eee !default;
|
||||
$fa-inverse: #fff !default;
|
||||
$fa-li-width: (30em / 14) !default;
|
||||
|
||||
$fa-var-500px: \f26e;
|
||||
$fa-var-activitypub: \f2f2;
|
||||
$fa-var-address-book: \f2b9;
|
||||
$fa-var-address-book-o: \f2ba;
|
||||
$fa-var-address-card: \f2bb;
|
||||
$fa-var-address-card-o: \f2bc;
|
||||
$fa-var-adjust: \f042;
|
||||
$fa-var-adn: \f170;
|
||||
$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-ambulance: \f0f9;
|
||||
$fa-var-american-sign-language-interpreting: \f2a3;
|
||||
$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-apple: \f179;
|
||||
$fa-var-archive: \f187;
|
||||
$fa-var-archive-org: \f2fc;
|
||||
$fa-var-archlinux: \f323;
|
||||
$fa-var-area-chart: \f1fe;
|
||||
$fa-var-arrow-circle-down: \f0ab;
|
||||
$fa-var-arrow-circle-left: \f0a8;
|
||||
$fa-var-arrow-circle-o-down: \f01a;
|
||||
$fa-var-arrow-circle-o-left: \f190;
|
||||
$fa-var-arrow-circle-o-right: \f18e;
|
||||
$fa-var-arrow-circle-o-up: \f01b;
|
||||
$fa-var-arrow-circle-right: \f0a9;
|
||||
$fa-var-arrow-circle-up: \f0aa;
|
||||
$fa-var-arrow-down: \f063;
|
||||
$fa-var-arrow-left: \f060;
|
||||
$fa-var-arrow-right: \f061;
|
||||
$fa-var-arrow-up: \f062;
|
||||
$fa-var-arrows: \f047;
|
||||
$fa-var-arrows-alt: \f0b2;
|
||||
$fa-var-arrows-h: \f07e;
|
||||
$fa-var-arrows-v: \f07d;
|
||||
$fa-var-artstation: \f2ed;
|
||||
$fa-var-askfm: \f33a;
|
||||
$fa-var-asl-interpreting: \f2a3;
|
||||
$fa-var-assistive-listening-systems: \f2a2;
|
||||
$fa-var-asterisk: \f069;
|
||||
$fa-var-at: \f1fa;
|
||||
$fa-var-att: \f31e;
|
||||
$fa-var-audio-description: \f29e;
|
||||
$fa-var-automobile: \f1b9;
|
||||
$fa-var-backward: \f04a;
|
||||
$fa-var-balance-scale: \f24e;
|
||||
$fa-var-ban: \f05e;
|
||||
$fa-var-bandcamp: \f2d5;
|
||||
$fa-var-bank: \f19c;
|
||||
$fa-var-bar-chart: \f080;
|
||||
$fa-var-bar-chart-o: \f080;
|
||||
$fa-var-barcode: \f02a;
|
||||
$fa-var-bars: \f0c9;
|
||||
$fa-var-bath: \f2cd;
|
||||
$fa-var-bathtub: \f2cd;
|
||||
$fa-var-battery: \f240;
|
||||
$fa-var-battery-0: \f244;
|
||||
$fa-var-battery-1: \f243;
|
||||
$fa-var-battery-2: \f242;
|
||||
$fa-var-battery-3: \f241;
|
||||
$fa-var-battery-4: \f240;
|
||||
$fa-var-battery-empty: \f244;
|
||||
$fa-var-battery-full: \f240;
|
||||
$fa-var-battery-half: \f242;
|
||||
$fa-var-battery-quarter: \f243;
|
||||
$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: \f0a2;
|
||||
$fa-var-bell-o: \f0f3;
|
||||
$fa-var-bell-ringing: \f32d;
|
||||
$fa-var-bell-ringing-o: \f330;
|
||||
$fa-var-bell-slash: \f1f6;
|
||||
$fa-var-bell-slash-o: \f1f7;
|
||||
$fa-var-bicycle: \f206;
|
||||
$fa-var-binoculars: \f1e5;
|
||||
$fa-var-biometric: \f32b;
|
||||
$fa-var-birthday-cake: \f1fd;
|
||||
$fa-var-bitbucket: \f171;
|
||||
$fa-var-bitbucket-square: \f172;
|
||||
$fa-var-bitcoin: \f15a;
|
||||
$fa-var-black-tie: \f27e;
|
||||
$fa-var-blind: \f29d;
|
||||
$fa-var-blockstack: \f33b;
|
||||
$fa-var-bluetooth: \f293;
|
||||
$fa-var-bluetooth-b: \f294;
|
||||
$fa-var-boardgamegeek: \f33c;
|
||||
$fa-var-bold: \f032;
|
||||
$fa-var-bolt: \f0e7;
|
||||
$fa-var-bomb: \f1e2;
|
||||
$fa-var-book: \f02d;
|
||||
$fa-var-bookmark: \f02e;
|
||||
$fa-var-bookmark-o: \f097;
|
||||
$fa-var-bootstrap: \f315;
|
||||
$fa-var-braille: \f2a1;
|
||||
$fa-var-briefcase: \f0b1;
|
||||
$fa-var-btc: \f15a;
|
||||
$fa-var-bug: \f188;
|
||||
$fa-var-building: \f1ad;
|
||||
$fa-var-building-o: \f0f7;
|
||||
$fa-var-bullhorn: \f0a1;
|
||||
$fa-var-bullseye: \f140;
|
||||
$fa-var-bunny: \f35f;
|
||||
$fa-var-bus: \f207;
|
||||
$fa-var-buymeacoffee: \f33d;
|
||||
$fa-var-buysellads: \f20d;
|
||||
$fa-var-c: \f31c;
|
||||
$fa-var-cab: \f1ba;
|
||||
$fa-var-calculator: \f1ec;
|
||||
$fa-var-calendar: \f073;
|
||||
$fa-var-calendar-check-o: \f274;
|
||||
$fa-var-calendar-minus-o: \f272;
|
||||
$fa-var-calendar-o: \f133;
|
||||
$fa-var-calendar-plus-o: \f271;
|
||||
$fa-var-calendar-times-o: \f273;
|
||||
$fa-var-camera: \f030;
|
||||
$fa-var-camera-retro: \f083;
|
||||
$fa-var-car: \f1b9;
|
||||
$fa-var-caret-down: \f0d7;
|
||||
$fa-var-caret-left: \f0d9;
|
||||
$fa-var-caret-right: \f0da;
|
||||
$fa-var-caret-square-o-down: \f150;
|
||||
$fa-var-caret-square-o-left: \f191;
|
||||
$fa-var-caret-square-o-right: \f152;
|
||||
$fa-var-caret-square-o-up: \f151;
|
||||
$fa-var-caret-up: \f0d8;
|
||||
$fa-var-cart-arrow-down: \f218;
|
||||
$fa-var-cart-plus: \f217;
|
||||
$fa-var-cc: \f20a;
|
||||
$fa-var-cc-amex: \f1f3;
|
||||
$fa-var-cc-by: \f33e;
|
||||
$fa-var-cc-cc: \f33f;
|
||||
$fa-var-cc-diners-club: \f24c;
|
||||
$fa-var-cc-discover: \f1f2;
|
||||
$fa-var-cc-jcb: \f24b;
|
||||
$fa-var-cc-mastercard: \f1f1;
|
||||
$fa-var-cc-nc: \f340;
|
||||
$fa-var-cc-nc-eu: \f341;
|
||||
$fa-var-cc-nc-jp: \f342;
|
||||
$fa-var-cc-nd: \f343;
|
||||
$fa-var-cc-paypal: \f1f4;
|
||||
$fa-var-cc-pd: \f344;
|
||||
$fa-var-cc-remix: \f345;
|
||||
$fa-var-cc-sa: \f346;
|
||||
$fa-var-cc-share: \f347;
|
||||
$fa-var-cc-stripe: \f1f5;
|
||||
$fa-var-cc-visa: \f1f0;
|
||||
$fa-var-cc-zero: \f348;
|
||||
$fa-var-certificate: \f0a3;
|
||||
$fa-var-chain: \f0c1;
|
||||
$fa-var-chain-broken: \f127;
|
||||
$fa-var-check: \f00c;
|
||||
$fa-var-check-circle: \f058;
|
||||
$fa-var-check-circle-o: \f05d;
|
||||
$fa-var-check-square: \f14a;
|
||||
$fa-var-check-square-o: \f046;
|
||||
$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-down: \f078;
|
||||
$fa-var-chevron-left: \f053;
|
||||
$fa-var-chevron-right: \f054;
|
||||
$fa-var-chevron-up: \f077;
|
||||
$fa-var-child: \f1ae;
|
||||
$fa-var-chrome: \f268;
|
||||
$fa-var-circle: \f111;
|
||||
$fa-var-circle-o: \f10c;
|
||||
$fa-var-circle-o-notch: \f1ce;
|
||||
$fa-var-circle-thin: \f1db;
|
||||
$fa-var-classicpress: \f331;
|
||||
$fa-var-classicpress-circle: \f332;
|
||||
$fa-var-clipboard: \f0ea;
|
||||
$fa-var-clock-o: \f017;
|
||||
$fa-var-clone: \f24d;
|
||||
$fa-var-close: \f00d;
|
||||
$fa-var-closed-captioning: \f20a;
|
||||
$fa-var-cloud: \f0c2;
|
||||
$fa-var-cloud-download: \f0ed;
|
||||
$fa-var-cloud-upload: \f0ee;
|
||||
$fa-var-cny: \f157;
|
||||
$fa-var-code: \f121;
|
||||
$fa-var-code-fork: \f126;
|
||||
$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-o: \f0e5;
|
||||
$fa-var-commenting: \f27a;
|
||||
$fa-var-commenting-o: \f27b;
|
||||
$fa-var-comments: \f086;
|
||||
$fa-var-comments-o: \f0e6;
|
||||
$fa-var-community: \f0c0;
|
||||
$fa-var-compass: \f14e;
|
||||
$fa-var-compress: \f066;
|
||||
$fa-var-connectdevelop: \f20e;
|
||||
$fa-var-contao: \f26d;
|
||||
$fa-var-conway-glider: \f349;
|
||||
$fa-var-conway-hacker: \f349;
|
||||
$fa-var-copy: \f0c5;
|
||||
$fa-var-copyright: \f1f9;
|
||||
$fa-var-creative-commons: \f25e;
|
||||
$fa-var-creative-commons-alt: \f33f;
|
||||
$fa-var-credit-card: \f09d;
|
||||
$fa-var-credit-card-alt: \f283;
|
||||
$fa-var-crop: \f125;
|
||||
$fa-var-crosshairs: \f05b;
|
||||
$fa-var-csharp: \f34a;
|
||||
$fa-var-css3: \f13c;
|
||||
$fa-var-cube: \f1b2;
|
||||
$fa-var-cubes: \f1b3;
|
||||
$fa-var-cut: \f0c4;
|
||||
$fa-var-cut-key: \f2f7;
|
||||
$fa-var-cutlery: \f0f5;
|
||||
$fa-var-dashboard: \f0e4;
|
||||
$fa-var-dashcube: \f210;
|
||||
$fa-var-database: \f1c0;
|
||||
$fa-var-deaf: \f2a4;
|
||||
$fa-var-deafness: \f2a4;
|
||||
$fa-var-debian: \f2ff;
|
||||
$fa-var-dedent: \f03b;
|
||||
$fa-var-delicious: \f1a5;
|
||||
$fa-var-desktop: \f108;
|
||||
$fa-var-dev-to: \f316;
|
||||
$fa-var-deviantart: \f1bd;
|
||||
$fa-var-diamond: \f219;
|
||||
$fa-var-diaspora: \f2e5;
|
||||
$fa-var-digg: \f1a6;
|
||||
$fa-var-digitalocean: \f31d;
|
||||
$fa-var-discord: \f2ee;
|
||||
$fa-var-discord-alt: \f2ef;
|
||||
$fa-var-dogmazic: \f303;
|
||||
$fa-var-dollar: \f155;
|
||||
$fa-var-dot-circle-o: \f192;
|
||||
$fa-var-download: \f019;
|
||||
$fa-var-dribbble: \f17d;
|
||||
$fa-var-drivers-license: \f2c2;
|
||||
$fa-var-drivers-license-o: \f2c3;
|
||||
$fa-var-dropbox: \f16b;
|
||||
$fa-var-drupal: \f1a9;
|
||||
$fa-var-edge: \f282;
|
||||
$fa-var-edit: \f044;
|
||||
$fa-var-eercast: \f2da;
|
||||
$fa-var-eject: \f052;
|
||||
$fa-var-ellipsis-h: \f141;
|
||||
$fa-var-ellipsis-v: \f142;
|
||||
$fa-var-email-bulk: \f34b;
|
||||
$fa-var-email-bulk-o: \f34c;
|
||||
$fa-var-emby: \f319;
|
||||
$fa-var-empire: \f1d1;
|
||||
$fa-var-envelope: \f0e0;
|
||||
$fa-var-envelope-o: \f003;
|
||||
$fa-var-envelope-open: \f2b6;
|
||||
$fa-var-envelope-open-o: \f2b7;
|
||||
$fa-var-envelope-square: \f199;
|
||||
$fa-var-envira: \f299;
|
||||
$fa-var-eraser: \f12d;
|
||||
$fa-var-ethereum: \f2f3;
|
||||
$fa-var-etsy: \f2d7;
|
||||
$fa-var-eur: \f153;
|
||||
$fa-var-euro: \f153;
|
||||
$fa-var-exchange: \f0ec;
|
||||
$fa-var-exclamation: \f12a;
|
||||
$fa-var-exclamation-circle: \f06a;
|
||||
$fa-var-exclamation-triangle: \f071;
|
||||
$fa-var-expand: \f065;
|
||||
$fa-var-expeditedssl: \f23e;
|
||||
$fa-var-external-link: \f08e;
|
||||
$fa-var-external-link-square: \f14c;
|
||||
$fa-var-eye: \f06e;
|
||||
$fa-var-eye-slash: \f070;
|
||||
$fa-var-eyedropper: \f1fb;
|
||||
$fa-var-f-droid: \f32a;
|
||||
$fa-var-fa: \f2b4;
|
||||
$fa-var-facebook: \f09a;
|
||||
$fa-var-facebook-f: \f09a;
|
||||
$fa-var-facebook-messenger: \f2fe;
|
||||
$fa-var-facebook-official: \f230;
|
||||
$fa-var-facebook-square: \f082;
|
||||
$fa-var-fast-backward: \f049;
|
||||
$fa-var-fast-forward: \f050;
|
||||
$fa-var-fax: \f1ac;
|
||||
$fa-var-feed: \f09e;
|
||||
$fa-var-female: \f182;
|
||||
$fa-var-ffmpeg: \f30f;
|
||||
$fa-var-fighter-jet: \f0fb;
|
||||
$fa-var-file: \f15b;
|
||||
$fa-var-file-archive-o: \f1c6;
|
||||
$fa-var-file-audio-o: \f1c7;
|
||||
$fa-var-file-code-o: \f1c9;
|
||||
$fa-var-file-epub: \f321;
|
||||
$fa-var-file-excel-o: \f1c3;
|
||||
$fa-var-file-image-o: \f1c5;
|
||||
$fa-var-file-movie-o: \f1c8;
|
||||
$fa-var-file-o: \f016;
|
||||
$fa-var-file-pdf-o: \f1c1;
|
||||
$fa-var-file-photo-o: \f1c5;
|
||||
$fa-var-file-picture-o: \f1c5;
|
||||
$fa-var-file-powerpoint-o: \f1c4;
|
||||
$fa-var-file-sound-o: \f1c7;
|
||||
$fa-var-file-text: \f15c;
|
||||
$fa-var-file-text-o: \f0f6;
|
||||
$fa-var-file-video-o: \f1c8;
|
||||
$fa-var-file-word-o: \f1c2;
|
||||
$fa-var-file-zip-o: \f1c6;
|
||||
$fa-var-files-o: \f0c5;
|
||||
$fa-var-film: \f008;
|
||||
$fa-var-filter: \f0b0;
|
||||
$fa-var-fire: \f06d;
|
||||
$fa-var-fire-extinguisher: \f134;
|
||||
$fa-var-firefox: \f269;
|
||||
$fa-var-first-order: \f2b0;
|
||||
$fa-var-flag: \f024;
|
||||
$fa-var-flag-checkered: \f11e;
|
||||
$fa-var-flag-o: \f11d;
|
||||
$fa-var-flash: \f0e7;
|
||||
$fa-var-flask: \f0c3;
|
||||
$fa-var-flickr: \f16e;
|
||||
$fa-var-floppy-o: \f0c7;
|
||||
$fa-var-folder: \f07b;
|
||||
$fa-var-folder-o: \f114;
|
||||
$fa-var-folder-open: \f07c;
|
||||
$fa-var-folder-open-o: \f115;
|
||||
$fa-var-font: \f031;
|
||||
$fa-var-font-awesome: \f2b4;
|
||||
$fa-var-fonticons: \f280;
|
||||
$fa-var-fork-awesome: \f2e3;
|
||||
$fa-var-fork-circle: \f2e3;
|
||||
$fa-var-fort-awesome: \f286;
|
||||
$fa-var-forumbee: \f211;
|
||||
$fa-var-forward: \f04e;
|
||||
$fa-var-foursquare: \f180;
|
||||
$fa-var-free-code-camp: \f2c5;
|
||||
$fa-var-freedombox: \f2fd;
|
||||
$fa-var-friendica: \f2e6;
|
||||
$fa-var-frown-o: \f119;
|
||||
$fa-var-funkwhale: \f339;
|
||||
$fa-var-futbol-o: \f1e3;
|
||||
$fa-var-gamepad: \f11b;
|
||||
$fa-var-gavel: \f0e3;
|
||||
$fa-var-gbp: \f154;
|
||||
$fa-var-ge: \f1d1;
|
||||
$fa-var-gear: \f013;
|
||||
$fa-var-gears: \f085;
|
||||
$fa-var-gem: \f219;
|
||||
$fa-var-genderless: \f22d;
|
||||
$fa-var-get-pocket: \f265;
|
||||
$fa-var-gg: \f260;
|
||||
$fa-var-gg-circle: \f261;
|
||||
$fa-var-gift: \f06b;
|
||||
$fa-var-gimp: \f31b;
|
||||
$fa-var-git: \f1d3;
|
||||
$fa-var-git-square: \f1d2;
|
||||
$fa-var-gitea: \f31f;
|
||||
$fa-var-github: \f09b;
|
||||
$fa-var-github-alt: \f113;
|
||||
$fa-var-github-square: \f092;
|
||||
$fa-var-gitlab: \f296;
|
||||
$fa-var-gittip: \f184;
|
||||
$fa-var-glass: \f000;
|
||||
$fa-var-glide: \f2a5;
|
||||
$fa-var-glide-g: \f2a6;
|
||||
$fa-var-globe: \f0ac;
|
||||
$fa-var-globe-e: \f304;
|
||||
$fa-var-globe-w: \f305;
|
||||
$fa-var-gnu: \f34d;
|
||||
$fa-var-gnu-social: \f2e7;
|
||||
$fa-var-gnupg: \f30d;
|
||||
$fa-var-google: \f1a0;
|
||||
$fa-var-google-play: \f34e;
|
||||
$fa-var-google-plus: \f0d5;
|
||||
$fa-var-google-plus-circle: \f2b3;
|
||||
$fa-var-google-plus-g: \f0d5;
|
||||
$fa-var-google-plus-official: \f2b3;
|
||||
$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-group: \f0c0;
|
||||
$fa-var-h-square: \f0fd;
|
||||
$fa-var-hackaday: \f30a;
|
||||
$fa-var-hacker-news: \f1d4;
|
||||
$fa-var-hackster: \f326;
|
||||
$fa-var-hal: \f333;
|
||||
$fa-var-hand-grab-o: \f255;
|
||||
$fa-var-hand-lizard-o: \f258;
|
||||
$fa-var-hand-o-down: \f0a7;
|
||||
$fa-var-hand-o-left: \f0a5;
|
||||
$fa-var-hand-o-right: \f0a4;
|
||||
$fa-var-hand-o-up: \f0a6;
|
||||
$fa-var-hand-paper-o: \f256;
|
||||
$fa-var-hand-peace-o: \f25b;
|
||||
$fa-var-hand-pointer-o: \f25a;
|
||||
$fa-var-hand-rock-o: \f255;
|
||||
$fa-var-hand-scissors-o: \f257;
|
||||
$fa-var-hand-spock-o: \f259;
|
||||
$fa-var-hand-stop-o: \f256;
|
||||
$fa-var-handshake-o: \f2b5;
|
||||
$fa-var-hard-of-hearing: \f2a4;
|
||||
$fa-var-hashnode: \f317;
|
||||
$fa-var-hashtag: \f292;
|
||||
$fa-var-hassio: \f350;
|
||||
$fa-var-hdd-o: \f0a0;
|
||||
$fa-var-header: \f1dc;
|
||||
$fa-var-heading: \f1dc;
|
||||
$fa-var-headphones: \f025;
|
||||
$fa-var-heart: \f004;
|
||||
$fa-var-heart-o: \f08a;
|
||||
$fa-var-heartbeat: \f21e;
|
||||
$fa-var-heroku: \f34f;
|
||||
$fa-var-history: \f1da;
|
||||
$fa-var-home: \f015;
|
||||
$fa-var-home-assistant: \f350;
|
||||
$fa-var-hospital-o: \f0f8;
|
||||
$fa-var-hotel: \f236;
|
||||
$fa-var-hourglass: \f254;
|
||||
$fa-var-hourglass-1: \f251;
|
||||
$fa-var-hourglass-2: \f252;
|
||||
$fa-var-hourglass-3: \f253;
|
||||
$fa-var-hourglass-end: \f253;
|
||||
$fa-var-hourglass-half: \f252;
|
||||
$fa-var-hourglass-o: \f250;
|
||||
$fa-var-hourglass-start: \f251;
|
||||
$fa-var-houzz: \f27c;
|
||||
$fa-var-html5: \f13b;
|
||||
$fa-var-hubzilla: \f2eb;
|
||||
$fa-var-i-cursor: \f246;
|
||||
$fa-var-id-badge: \f2c1;
|
||||
$fa-var-id-card: \f2c2;
|
||||
$fa-var-id-card-o: \f2c3;
|
||||
$fa-var-ils: \f20b;
|
||||
$fa-var-image: \f03e;
|
||||
$fa-var-imdb: \f2d8;
|
||||
$fa-var-inbox: \f01c;
|
||||
$fa-var-indent: \f03c;
|
||||
$fa-var-industry: \f275;
|
||||
$fa-var-info: \f129;
|
||||
$fa-var-info-circle: \f05a;
|
||||
$fa-var-inkscape: \f312;
|
||||
$fa-var-inr: \f156;
|
||||
$fa-var-instagram: \f16d;
|
||||
$fa-var-institution: \f19c;
|
||||
$fa-var-internet-explorer: \f26b;
|
||||
$fa-var-intersex: \f224;
|
||||
$fa-var-ioxhost: \f208;
|
||||
$fa-var-italic: \f033;
|
||||
$fa-var-java: \f351;
|
||||
$fa-var-jirafeau: \f318;
|
||||
$fa-var-joomla: \f1aa;
|
||||
$fa-var-joplin: \f310;
|
||||
$fa-var-jpy: \f157;
|
||||
$fa-var-jsfiddle: \f1cc;
|
||||
$fa-var-julia: \f334;
|
||||
$fa-var-jupyter: \f335;
|
||||
$fa-var-key: \f084;
|
||||
$fa-var-key-modern: \f2f7;
|
||||
$fa-var-keybase: \f2f4;
|
||||
$fa-var-keyboard-o: \f11c;
|
||||
$fa-var-krw: \f159;
|
||||
$fa-var-language: \f1ab;
|
||||
$fa-var-laptop: \f109;
|
||||
$fa-var-laravel: \f30b;
|
||||
$fa-var-lastfm: \f202;
|
||||
$fa-var-lastfm-square: \f203;
|
||||
$fa-var-leaf: \f06c;
|
||||
$fa-var-leanpub: \f212;
|
||||
$fa-var-legal: \f0e3;
|
||||
$fa-var-lemon-o: \f094;
|
||||
$fa-var-level-down: \f149;
|
||||
$fa-var-level-up: \f148;
|
||||
$fa-var-liberapay: \f2e9;
|
||||
$fa-var-liberapay-square: \f2e8;
|
||||
$fa-var-life-bouy: \f1cd;
|
||||
$fa-var-life-buoy: \f1cd;
|
||||
$fa-var-life-ring: \f1cd;
|
||||
$fa-var-life-saver: \f1cd;
|
||||
$fa-var-lightbulb-o: \f0eb;
|
||||
$fa-var-line-chart: \f201;
|
||||
$fa-var-link: \f0c1;
|
||||
$fa-var-linkedin: \f0e1;
|
||||
$fa-var-linkedin-square: \f08c;
|
||||
$fa-var-linode: \f2b8;
|
||||
$fa-var-linux: \f17c;
|
||||
$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-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-magic: \f0d0;
|
||||
$fa-var-magnet: \f076;
|
||||
$fa-var-mail-forward: \f064;
|
||||
$fa-var-mail-reply: \f112;
|
||||
$fa-var-mail-reply-all: \f122;
|
||||
$fa-var-male: \f183;
|
||||
$fa-var-map: \f279;
|
||||
$fa-var-map-marker: \f041;
|
||||
$fa-var-map-o: \f278;
|
||||
$fa-var-map-pin: \f276;
|
||||
$fa-var-map-signs: \f277;
|
||||
$fa-var-mariadb: \f352;
|
||||
$fa-var-markdown: \f353;
|
||||
$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-mastodon: \f2e1;
|
||||
$fa-var-mastodon-alt: \f2e2;
|
||||
$fa-var-mastodon-square: \f300;
|
||||
$fa-var-matrix-org: \f313;
|
||||
$fa-var-maxcdn: \f136;
|
||||
$fa-var-meanpath: \f20c;
|
||||
$fa-var-medium: \f23a;
|
||||
$fa-var-medium-square: \f2f8;
|
||||
$fa-var-medkit: \f0fa;
|
||||
$fa-var-meetup: \f2e0;
|
||||
$fa-var-meh-o: \f11a;
|
||||
$fa-var-mercury: \f223;
|
||||
$fa-var-microchip: \f2db;
|
||||
$fa-var-microphone: \f130;
|
||||
$fa-var-microphone-slash: \f131;
|
||||
$fa-var-minus: \f068;
|
||||
$fa-var-minus-circle: \f056;
|
||||
$fa-var-minus-square: \f146;
|
||||
$fa-var-minus-square-o: \f147;
|
||||
$fa-var-mixcloud: \f289;
|
||||
$fa-var-mobile: \f10b;
|
||||
$fa-var-mobile-phone: \f10b;
|
||||
$fa-var-modx: \f285;
|
||||
$fa-var-money: \f0d6;
|
||||
$fa-var-moon: \f328;
|
||||
$fa-var-moon-o: \f186;
|
||||
$fa-var-mortar-board: \f19d;
|
||||
$fa-var-motorcycle: \f21c;
|
||||
$fa-var-mouse-pointer: \f245;
|
||||
$fa-var-music: \f001;
|
||||
$fa-var-mysql: \f354;
|
||||
$fa-var-navicon: \f0c9;
|
||||
$fa-var-neuter: \f22c;
|
||||
$fa-var-newspaper-o: \f1ea;
|
||||
$fa-var-nextcloud: \f306;
|
||||
$fa-var-nextcloud-square: \f307;
|
||||
$fa-var-nodejs: \f308;
|
||||
$fa-var-nordcast: \f355;
|
||||
$fa-var-object-group: \f247;
|
||||
$fa-var-object-ungroup: \f248;
|
||||
$fa-var-odnoklassniki: \f263;
|
||||
$fa-var-odnoklassniki-square: \f264;
|
||||
$fa-var-open-collective: \f336;
|
||||
$fa-var-opencart: \f23d;
|
||||
$fa-var-openid: \f19b;
|
||||
$fa-var-opera: \f26a;
|
||||
$fa-var-optin-monster: \f23c;
|
||||
$fa-var-orcid: \f337;
|
||||
$fa-var-outdent: \f03b;
|
||||
$fa-var-pagelines: \f18c;
|
||||
$fa-var-paint-brush: \f1fc;
|
||||
$fa-var-paper-plane: \f1d8;
|
||||
$fa-var-paper-plane-o: \f1d9;
|
||||
$fa-var-paperclip: \f0c6;
|
||||
$fa-var-paragraph: \f1dd;
|
||||
$fa-var-paste: \f0ea;
|
||||
$fa-var-patreon: \f2f0;
|
||||
$fa-var-pause: \f04c;
|
||||
$fa-var-pause-circle: \f28b;
|
||||
$fa-var-pause-circle-o: \f28c;
|
||||
$fa-var-paw: \f1b0;
|
||||
$fa-var-paypal: \f1ed;
|
||||
$fa-var-peertube: \f2e4;
|
||||
$fa-var-pencil: \f040;
|
||||
$fa-var-pencil-square: \f14b;
|
||||
$fa-var-pencil-square-o: \f044;
|
||||
$fa-var-percent: \f295;
|
||||
$fa-var-phone: \f095;
|
||||
$fa-var-phone-square: \f098;
|
||||
$fa-var-phone-volume: \f2a0;
|
||||
$fa-var-photo: \f03e;
|
||||
$fa-var-php: \f30e;
|
||||
$fa-var-picture-o: \f03e;
|
||||
$fa-var-pie-chart: \f200;
|
||||
$fa-var-pinterest: \f0d2;
|
||||
$fa-var-pinterest-p: \f231;
|
||||
$fa-var-pinterest-square: \f0d3;
|
||||
$fa-var-pixelfed: \f314;
|
||||
$fa-var-plane: \f072;
|
||||
$fa-var-play: \f04b;
|
||||
$fa-var-play-circle: \f144;
|
||||
$fa-var-play-circle-o: \f01d;
|
||||
$fa-var-pleroma: \f324;
|
||||
$fa-var-plug: \f1e6;
|
||||
$fa-var-plume: \f356;
|
||||
$fa-var-plus: \f067;
|
||||
$fa-var-plus-circle: \f055;
|
||||
$fa-var-plus-square: \f0fe;
|
||||
$fa-var-plus-square-o: \f196;
|
||||
$fa-var-podcast: \f2ce;
|
||||
$fa-var-postgresql: \f357;
|
||||
$fa-var-pound: \f154;
|
||||
$fa-var-power-off: \f011;
|
||||
$fa-var-print: \f02f;
|
||||
$fa-var-product-hunt: \f288;
|
||||
$fa-var-puzzle-piece: \f12e;
|
||||
$fa-var-python: \f322;
|
||||
$fa-var-qq: \f1d6;
|
||||
$fa-var-qrcode: \f029;
|
||||
$fa-var-question: \f128;
|
||||
$fa-var-question-circle: \f059;
|
||||
$fa-var-question-circle-o: \f29c;
|
||||
$fa-var-quora: \f2c4;
|
||||
$fa-var-quote-left: \f10d;
|
||||
$fa-var-quote-right: \f10e;
|
||||
$fa-var-ra: \f1d0;
|
||||
$fa-var-random: \f074;
|
||||
$fa-var-ravelry: \f2d9;
|
||||
$fa-var-react: \f302;
|
||||
$fa-var-rebel: \f1d0;
|
||||
$fa-var-recycle: \f1b8;
|
||||
$fa-var-reddit: \f1a1;
|
||||
$fa-var-reddit-alien: \f281;
|
||||
$fa-var-reddit-square: \f1a2;
|
||||
$fa-var-refresh: \f021;
|
||||
$fa-var-registered: \f25d;
|
||||
$fa-var-remove: \f00d;
|
||||
$fa-var-renren: \f18b;
|
||||
$fa-var-reorder: \f0c9;
|
||||
$fa-var-repeat: \f01e;
|
||||
$fa-var-reply: \f112;
|
||||
$fa-var-reply-all: \f122;
|
||||
$fa-var-researchgate: \f338;
|
||||
$fa-var-resistance: \f1d0;
|
||||
$fa-var-retweet: \f079;
|
||||
$fa-var-rmb: \f157;
|
||||
$fa-var-road: \f018;
|
||||
$fa-var-rocket: \f135;
|
||||
$fa-var-rotate-left: \f0e2;
|
||||
$fa-var-rotate-right: \f01e;
|
||||
$fa-var-rouble: \f158;
|
||||
$fa-var-rss: \f09e;
|
||||
$fa-var-rss-square: \f143;
|
||||
$fa-var-rub: \f158;
|
||||
$fa-var-ruble: \f158;
|
||||
$fa-var-rupee: \f156;
|
||||
$fa-var-s15: \f2cd;
|
||||
$fa-var-safari: \f267;
|
||||
$fa-var-sass: \f358;
|
||||
$fa-var-sass-alt: \f359;
|
||||
$fa-var-save: \f0c7;
|
||||
$fa-var-scissors: \f0c4;
|
||||
$fa-var-scribd: \f28a;
|
||||
$fa-var-scuttlebutt: \f2ea;
|
||||
$fa-var-search: \f002;
|
||||
$fa-var-search-minus: \f010;
|
||||
$fa-var-search-plus: \f00e;
|
||||
$fa-var-sellsy: \f213;
|
||||
$fa-var-send: \f1d8;
|
||||
$fa-var-send-o: \f1d9;
|
||||
$fa-var-server: \f233;
|
||||
$fa-var-shaarli: \f2f5;
|
||||
$fa-var-shaarli-o: \f2f6;
|
||||
$fa-var-share: \f064;
|
||||
$fa-var-share-alt: \f1e0;
|
||||
$fa-var-share-alt-square: \f1e1;
|
||||
$fa-var-share-square: \f14d;
|
||||
$fa-var-share-square-o: \f045;
|
||||
$fa-var-shekel: \f20b;
|
||||
$fa-var-sheqel: \f20b;
|
||||
$fa-var-shield: \f132;
|
||||
$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-language: \f2a7;
|
||||
$fa-var-sign-out: \f08b;
|
||||
$fa-var-signal: \f012;
|
||||
$fa-var-signalapp: \f30c;
|
||||
$fa-var-signing: \f2a7;
|
||||
$fa-var-simplybuilt: \f215;
|
||||
$fa-var-sitemap: \f0e8;
|
||||
$fa-var-skate: \f35a;
|
||||
$fa-var-sketchfab: \f35b;
|
||||
$fa-var-skyatlas: \f216;
|
||||
$fa-var-skype: \f17e;
|
||||
$fa-var-slack: \f198;
|
||||
$fa-var-sliders: \f1de;
|
||||
$fa-var-slideshare: \f1e7;
|
||||
$fa-var-smile-o: \f118;
|
||||
$fa-var-snapchat: \f2ab;
|
||||
$fa-var-snapchat-ghost: \f2ac;
|
||||
$fa-var-snapchat-square: \f2ad;
|
||||
$fa-var-snowdrift: \f2f1;
|
||||
$fa-var-snowflake-o: \f2dc;
|
||||
$fa-var-soccer-ball-o: \f1e3;
|
||||
$fa-var-social-home: \f2ec;
|
||||
$fa-var-sort: \f0dc;
|
||||
$fa-var-sort-alpha-asc: \f15d;
|
||||
$fa-var-sort-alpha-desc: \f15e;
|
||||
$fa-var-sort-alpha-down: \f15d;
|
||||
$fa-var-sort-alpha-up: \f15e;
|
||||
$fa-var-sort-amount-asc: \f160;
|
||||
$fa-var-sort-amount-desc: \f161;
|
||||
$fa-var-sort-amount-down: \f160;
|
||||
$fa-var-sort-amount-up: \f161;
|
||||
$fa-var-sort-asc: \f0de;
|
||||
$fa-var-sort-desc: \f0dd;
|
||||
$fa-var-sort-down: \f0dd;
|
||||
$fa-var-sort-numeric-asc: \f162;
|
||||
$fa-var-sort-numeric-desc: \f163;
|
||||
$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-spell-check: \f327;
|
||||
$fa-var-spinner: \f110;
|
||||
$fa-var-spoon: \f1b1;
|
||||
$fa-var-spotify: \f1bc;
|
||||
$fa-var-square: \f0c8;
|
||||
$fa-var-square-o: \f096;
|
||||
$fa-var-ssb: \f2ea;
|
||||
$fa-var-stack-exchange: \f18d;
|
||||
$fa-var-stack-overflow: \f16c;
|
||||
$fa-var-star: \f005;
|
||||
$fa-var-star-half: \f089;
|
||||
$fa-var-star-half-empty: \f123;
|
||||
$fa-var-star-half-full: \f123;
|
||||
$fa-var-star-half-o: \f123;
|
||||
$fa-var-star-o: \f006;
|
||||
$fa-var-steam: \f1b6;
|
||||
$fa-var-steam-square: \f1b7;
|
||||
$fa-var-step-backward: \f048;
|
||||
$fa-var-step-forward: \f051;
|
||||
$fa-var-stethoscope: \f0f1;
|
||||
$fa-var-sticky-note: \f249;
|
||||
$fa-var-sticky-note-o: \f24a;
|
||||
$fa-var-stop: \f04d;
|
||||
$fa-var-stop-circle: \f28d;
|
||||
$fa-var-stop-circle-o: \f28e;
|
||||
$fa-var-street-view: \f21d;
|
||||
$fa-var-strikethrough: \f0cc;
|
||||
$fa-var-stumbleupon: \f1a4;
|
||||
$fa-var-stumbleupon-circle: \f1a3;
|
||||
$fa-var-subscript: \f12c;
|
||||
$fa-var-subway: \f239;
|
||||
$fa-var-suitcase: \f0f2;
|
||||
$fa-var-sun: \f329;
|
||||
$fa-var-sun-o: \f185;
|
||||
$fa-var-superpowers: \f2dd;
|
||||
$fa-var-superscript: \f12b;
|
||||
$fa-var-support: \f1cd;
|
||||
$fa-var-sync: \f021;
|
||||
$fa-var-syncthing: \f311;
|
||||
$fa-var-table: \f0ce;
|
||||
$fa-var-tablet: \f10a;
|
||||
$fa-var-tachometer: \f0e4;
|
||||
$fa-var-tag: \f02b;
|
||||
$fa-var-tags: \f02c;
|
||||
$fa-var-tasks: \f0ae;
|
||||
$fa-var-taxi: \f1ba;
|
||||
$fa-var-telegram: \f2c6;
|
||||
$fa-var-television: \f26c;
|
||||
$fa-var-tencent-weibo: \f1d5;
|
||||
$fa-var-terminal: \f120;
|
||||
$fa-var-tex: \f35c;
|
||||
$fa-var-text-height: \f034;
|
||||
$fa-var-text-width: \f035;
|
||||
$fa-var-textpattern: \f35d;
|
||||
$fa-var-th: \f00a;
|
||||
$fa-var-th-large: \f009;
|
||||
$fa-var-th-list: \f00b;
|
||||
$fa-var-themeisle: \f2b2;
|
||||
$fa-var-thermometer: \f2c7;
|
||||
$fa-var-thermometer-0: \f2cb;
|
||||
$fa-var-thermometer-1: \f2ca;
|
||||
$fa-var-thermometer-2: \f2c9;
|
||||
$fa-var-thermometer-3: \f2c8;
|
||||
$fa-var-thermometer-4: \f2c7;
|
||||
$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-thumb-tack: \f08d;
|
||||
$fa-var-thumbs-down: \f165;
|
||||
$fa-var-thumbs-o-down: \f088;
|
||||
$fa-var-thumbs-o-up: \f087;
|
||||
$fa-var-thumbs-up: \f164;
|
||||
$fa-var-ticket: \f145;
|
||||
$fa-var-times: \f00d;
|
||||
$fa-var-times-circle: \f057;
|
||||
$fa-var-times-circle-o: \f05c;
|
||||
$fa-var-times-rectangle: \f2d3;
|
||||
$fa-var-times-rectangle-o: \f2d4;
|
||||
$fa-var-tint: \f043;
|
||||
$fa-var-tipeee: \f301;
|
||||
$fa-var-toggle-down: \f150;
|
||||
$fa-var-toggle-left: \f191;
|
||||
$fa-var-toggle-off: \f204;
|
||||
$fa-var-toggle-on: \f205;
|
||||
$fa-var-toggle-right: \f152;
|
||||
$fa-var-toggle-up: \f151;
|
||||
$fa-var-tor-onion: \f32e;
|
||||
$fa-var-trademark: \f25c;
|
||||
$fa-var-train: \f238;
|
||||
$fa-var-transgender: \f224;
|
||||
$fa-var-transgender-alt: \f225;
|
||||
$fa-var-trash: \f1f8;
|
||||
$fa-var-trash-o: \f014;
|
||||
$fa-var-tree: \f1bb;
|
||||
$fa-var-trello: \f181;
|
||||
$fa-var-tripadvisor: \f262;
|
||||
$fa-var-trophy: \f091;
|
||||
$fa-var-truck: \f0d1;
|
||||
$fa-var-try: \f195;
|
||||
$fa-var-tty: \f1e4;
|
||||
$fa-var-tumblr: \f173;
|
||||
$fa-var-tumblr-square: \f174;
|
||||
$fa-var-turkish-lira: \f195;
|
||||
$fa-var-tv: \f26c;
|
||||
$fa-var-twitch: \f1e8;
|
||||
$fa-var-twitter: \f099;
|
||||
$fa-var-twitter-square: \f081;
|
||||
$fa-var-umbrella: \f0e9;
|
||||
$fa-var-underline: \f0cd;
|
||||
$fa-var-undo: \f0e2;
|
||||
$fa-var-unity: \f35e;
|
||||
$fa-var-universal-access: \f29a;
|
||||
$fa-var-university: \f19c;
|
||||
$fa-var-unlink: \f127;
|
||||
$fa-var-unlock: \f09c;
|
||||
$fa-var-unlock-alt: \f13e;
|
||||
$fa-var-unsorted: \f0dc;
|
||||
$fa-var-unsplash: \f325;
|
||||
$fa-var-upload: \f093;
|
||||
$fa-var-usb: \f287;
|
||||
$fa-var-usd: \f155;
|
||||
$fa-var-user: \f007;
|
||||
$fa-var-user-circle: \f2bd;
|
||||
$fa-var-user-circle-o: \f2be;
|
||||
$fa-var-user-md: \f0f0;
|
||||
$fa-var-user-o: \f2c0;
|
||||
$fa-var-user-plus: \f234;
|
||||
$fa-var-user-secret: \f21b;
|
||||
$fa-var-user-times: \f235;
|
||||
$fa-var-users: \f0c0;
|
||||
$fa-var-utensil-spoon: \f1b1;
|
||||
$fa-var-utensils: \f0f5;
|
||||
$fa-var-vcard: \f2bb;
|
||||
$fa-var-vcard-o: \f2bc;
|
||||
$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-video: \f03d;
|
||||
$fa-var-video-camera: \f03d;
|
||||
$fa-var-vimeo: \f27d;
|
||||
$fa-var-vimeo-square: \f194;
|
||||
$fa-var-vimeo-v: \f27d;
|
||||
$fa-var-vine: \f1ca;
|
||||
$fa-var-vk: \f189;
|
||||
$fa-var-volume-control-phone: \f2a0;
|
||||
$fa-var-volume-down: \f027;
|
||||
$fa-var-volume-mute: \f32f;
|
||||
$fa-var-volume-off: \f026;
|
||||
$fa-var-volume-up: \f028;
|
||||
$fa-var-warning: \f071;
|
||||
$fa-var-wechat: \f1d7;
|
||||
$fa-var-weibo: \f18a;
|
||||
$fa-var-weixin: \f1d7;
|
||||
$fa-var-whatsapp: \f232;
|
||||
$fa-var-wheelchair: \f193;
|
||||
$fa-var-wheelchair-alt: \f29b;
|
||||
$fa-var-wifi: \f1eb;
|
||||
$fa-var-wikidata: \f31a;
|
||||
$fa-var-wikipedia-w: \f266;
|
||||
$fa-var-window-close: \f2d3;
|
||||
$fa-var-window-close-o: \f2d4;
|
||||
$fa-var-window-maximize: \f2d0;
|
||||
$fa-var-window-minimize: \f2d1;
|
||||
$fa-var-window-restore: \f2d2;
|
||||
$fa-var-windows: \f17a;
|
||||
$fa-var-wire: \f32c;
|
||||
$fa-var-won: \f159;
|
||||
$fa-var-wordpress: \f19a;
|
||||
$fa-var-wpbeginner: \f297;
|
||||
$fa-var-wpexplorer: \f2de;
|
||||
$fa-var-wpforms: \f298;
|
||||
$fa-var-wrench: \f0ad;
|
||||
$fa-var-xing: \f168;
|
||||
$fa-var-xing-square: \f169;
|
||||
$fa-var-xmpp: \f2f9;
|
||||
$fa-var-y-combinator: \f23b;
|
||||
$fa-var-y-combinator-square: \f1d4;
|
||||
$fa-var-yahoo: \f19e;
|
||||
$fa-var-yc: \f23b;
|
||||
$fa-var-yc-square: \f1d4;
|
||||
$fa-var-yelp: \f1e9;
|
||||
$fa-var-yen: \f157;
|
||||
$fa-var-yoast: \f2b1;
|
||||
$fa-var-youtube: \f167;
|
||||
$fa-var-youtube-play: \f16a;
|
||||
$fa-var-youtube-square: \f166;
|
||||
$fa-var-zotero: \f309;
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
/*!
|
||||
Fork Awesome 1.2.0
|
||||
License - https://forkaweso.me/Fork-Awesome/license
|
||||
|
||||
Copyright 2018 Dave Gandy & Fork Awesome
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
@import "variables";
|
||||
@import "mixins";
|
||||
@import "functions";
|
||||
@import "path";
|
||||
@import "core";
|
||||
@import "larger";
|
||||
@import "fixed-width";
|
||||
@import "list";
|
||||
@import "bordered-pulled";
|
||||
@import "animated";
|
||||
@import "rotated-flipped";
|
||||
@import "stacked";
|
||||
@import "icons";
|
||||
@import "screen-reader";
|
|
@ -1,46 +0,0 @@
|
|||
$fa-font-path: "/fork-awesome";
|
||||
@import "./fork-awesome/fork-awesome.scss";
|
||||
|
||||
@import "grid";
|
||||
@import "agda";
|
||||
@import "mixins";
|
||||
@import "fonts";
|
||||
|
||||
$sansfont: "Inter", "Helvetica", "Arial", "Liberation Sans", sans-serif;
|
||||
$monofont: "PragmataPro Mono Liga", "Roboto Mono", "Roboto Mono for Powerline", "Inconsolata", "Consolas", monospace;
|
||||
|
||||
// colors
|
||||
|
||||
@media (prefers-color-scheme: light) {
|
||||
$background-color: white;
|
||||
$faded-background-color: darken($background-color, 10%);
|
||||
$shadow-color: darken($background-color, 10%);
|
||||
$heading-color: darken(royalblue, 10%);
|
||||
$text-color: #15202B;
|
||||
$small-text-color: #6e707f;
|
||||
$smaller-text-color: lighten($text-color, 30%);
|
||||
$faded: lightgray;
|
||||
$hr-color: lightgray;
|
||||
$link-color: royalblue;
|
||||
$code-color: firebrick;
|
||||
$tag-color: lighten($link-color, 35%);
|
||||
@import "syntax";
|
||||
@import "content";
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
$background-color: #202030;
|
||||
$faded-background-color: lighten($background-color, 10%);
|
||||
$shadow-color: lighten($background-color, 10%);
|
||||
$heading-color: lighten(lightskyblue, 20%);
|
||||
$text-color: #CDCDCD;
|
||||
$small-text-color: darken($text-color, 8%);
|
||||
$smaller-text-color: darken($text-color, 12%);
|
||||
$faded: #666;
|
||||
$hr-color: gray;
|
||||
$link-color: lightskyblue;
|
||||
$code-color: lighten(firebrick, 25%);
|
||||
$tag-color: darken($link-color, 55%);
|
||||
@import "syntax";
|
||||
@import "content";
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
name: blog
|
||||
depend: standard-library cubical
|
||||
include: content/posts
|
33
config.toml
33
config.toml
|
@ -1,33 +0,0 @@
|
|||
baseURL = "http://example.org/"
|
||||
languageCode = "en-us"
|
||||
title = "Michael's Blog"
|
||||
enableGitInfo = true
|
||||
|
||||
ignoreFiles = ["logseq"]
|
||||
enableEmoji = true
|
||||
|
||||
[taxonomies]
|
||||
tag = "tags"
|
||||
language = "languages"
|
||||
|
||||
[markup.tableOfContents]
|
||||
endLevel = 4
|
||||
ordered = false
|
||||
startLevel = 2
|
||||
|
||||
[markup.goldmark.renderer]
|
||||
unsafe = true
|
||||
|
||||
[markup.highlight]
|
||||
anchorLineNos = true
|
||||
codeFences = true
|
||||
guessSyntax = false
|
||||
hl_Lines = ''
|
||||
lineAnchors = ''
|
||||
lineNoStart = 1
|
||||
lineNos = true
|
||||
lineNumbersInTable = true
|
||||
noClasses = false
|
||||
style = 'monokai'
|
||||
tabWidth = 4
|
||||
|
4
content/index.md
Normal file
4
content/index.md
Normal file
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
---
|
||||
|
||||
Blog
|
3
content/main.scss
Normal file
3
content/main.scss
Normal file
|
@ -0,0 +1,3 @@
|
|||
body {
|
||||
background-color: gray;
|
||||
}
|
|
@ -13,13 +13,13 @@ Well, the answer's pretty obvious, right? So you can surf it. But what does that
|
|||
|
||||
If you wanted to do anything more complicated or that required more interaction, like sending an email, you'd probably pop open a dedicated client to do it. Things like Microsoft Outlook, Mozilla Thunderbird serve as great email clients. For chat, you could use an IRC client. Hell, even the browser was a client, just for viewing webpages. If you didn't have a client for a service that you wanted to use, you'd download a client, enter in the details of the server you want to connect to, and then you would be off.
|
||||
|
||||
Things aren't that way anymore. For some reason, the web browser has become the all-in-one client for every service. Instead of simply acting as a HTTP client, your browser is now also capable of running full-blown 3D games, chat rooms, real-time word processors, and [full x86 emulators, apparently](http://copy.sh/v86/). What the hell happened?
|
||||
Things aren't that way anymore. For some reason, the web browser has become the all-in-one client for every service. Instead of acting as a HTTP client, your browser is now also capable of running full-blown 3D games, chat rooms, real-time word processors, and [full x86 emulators, apparently](http://copy.sh/v86/). What the hell happened?
|
||||
|
||||
## Spoiler alert: Javascript happened
|
||||
|
||||
JavaScript happened. That little _scripting_ language invented to, you know, make some hover animation on your page or have dropdowns on your menu bar. Thanks to the introduction of JavaScript (and jQuery especially), developers stopped viewing webpages as Word documents that you can share, and more like canvases. Hover animations are cute and dropdowns are useful. Sure. But when this _scripting_ language starts turning into a _systems_ language (for lack of a better term), you have a problem. When's the last time you used Perl to write an operating system?
|
||||
|
||||
Look at the things we do today with JavaScript. We have _full blown frameworks_ that we _compile_ into bundles of _executable code_ in people's browsers. We're basically talking about the equivalent of downloading a binary and executing it on your computer every time you open a _webpage_. Except for a few minor differences. Firstly, it's not really a binary, it's a huge blob of script, which means it must be executed inside some virtual interpreter. For each tab that you're running. Secondly, now you're downloading random scripts from any website that you open, and then [trusting it](https://superlogout.com/) and [running it][1]. You wouldn't hesitate to click a link, but you'd definitely think twice before installing something from an unknown source into your computer, right?
|
||||
Look at the things we do today with JavaScript. We have _full blown frameworks_ that we _compile_ into bundles of _executable code_ in people's browsers. We're talking about the equivalent of downloading a binary and executing it on your computer every time you open a _webpage_. Except for a few minor differences. Firstly, it's not really a binary, it's a huge blob of script, which means it must be executed inside some virtual interpreter. For each tab that you're running. Secondly, now you're downloading random scripts from any website that you open, and then [trusting it](https://superlogout.com/) and [running it][1]. You wouldn't hesitate to click a link, but you'd definitely think twice before installing something from an unknown source into your computer, right?
|
||||
|
||||
On top of that, look at these huge frameworks that almost every company is hiring developers for: React, Angular, Vue. These frameworks help JavaScript developers develop "web apps", meaning your JavaScript is now responsible for things the browser should actually be doing for you: two-way data binding, template rendering, and more. Except now, you're downloading a script and running it inside of a virtual interpreter. And because of technologies like Webpack that bundles all your separate code files together (read: static linking), our browsers can't even use the same framework code from site to site.
|
||||
|
||||
|
|
|
@ -18,11 +18,11 @@ cryptosystem works, since there's already a great number of resources on that.
|
|||
|
||||
## Factoring large integers
|
||||
|
||||
Obviously this is a pretty bruteforce-ish way to crack the cryptosystem, and
|
||||
probably won't work in time for you to see the result, but can still be
|
||||
considered an attack vector. This trick works by just factoring the modulus,
|
||||
$N$. With $N$, finding the private exponent $d$ from the public exponent $e$ is
|
||||
a piece of cake.
|
||||
This is a pretty bruteforce-ish way to crack the cryptosystem, and probably
|
||||
won't work in time for you to see the result, but can still be considered an
|
||||
attack vector. This trick works by just factoring the modulus, $N$. With $N$,
|
||||
finding the private exponent $d$ from the public exponent $e$ is a piece of
|
||||
cake.
|
||||
|
||||
Let's choose some small numbers to demonstrate this one (you can follow along in
|
||||
a Python REPL if you want):
|
||||
|
@ -33,7 +33,7 @@ a Python REPL if you want):
|
|||
>>> c = 875978376
|
||||
```
|
||||
|
||||
$N$ is clearly factorable in this case, and we can use resources like
|
||||
$N$ is more easily factorable in this case, and we can use resources like
|
||||
[msieve][7] or [factordb][2] to find smaller primes in this case. Since we know
|
||||
now that $N = 20717 \times 42557$, we can find the totient of $N$:
|
||||
|
||||
|
@ -70,8 +70,8 @@ pairs would be issued to different users and they would share public keys with
|
|||
each other and keep private keys to themselves.
|
||||
|
||||
The problem here is if you have a key pair, and you got someone else's public
|
||||
key, you could easily derive the private key by just factoring the modulus.
|
||||
Let's see how this works with a real example now.
|
||||
key, you could easily derive the private key by factoring the modulus. Let's see
|
||||
how this works with a real example now.
|
||||
|
||||
Since this is a big problem if you were to really use this cryptosystem, I'll be
|
||||
using actual keys from an actual crypto library instead of the small numbers
|
||||
|
@ -128,9 +128,9 @@ It turns out that $k$ is extremely close to $\frac{ed}{N}$:
|
|||
|
||||
$$ \frac{ed}{N} = \frac{1 + k\phi(N)}{N} = \frac{1}{N} + \frac{k\phi(N)}{N} $$
|
||||
|
||||
$\frac{1}{N}$ is basically 0, and $\phi(N)$ is very close to $N$, so it
|
||||
shouldn't change the value of $k$ by very much. We now use $\frac{ed}{N}$ to
|
||||
estimate $k$:
|
||||
At this scale, we can treat $\frac{1}{N}$ as if it was 0, and $\phi(N)$ is very
|
||||
close to $N$, so it shouldn't change the value of $k$ by very much. We now use
|
||||
$\frac{ed}{N}$ to estimate $k$:
|
||||
|
||||
$$ \phi(N) = \frac{ed - 1}{\frac{ed}{N}} $$
|
||||
|
||||
|
@ -184,10 +184,10 @@ you to sign this with your private key." Let's generate Bob's private key:
|
|||
>>> M = b"I (Bob) owes Marvin $100,000 USD"
|
||||
```
|
||||
|
||||
Obviously, Bob, an intellectual, will refuse to sign the message. However,
|
||||
suppose Marvin now transforms his message into a more innocent looking one. He
|
||||
does this by turning $M$ into $M' = r^eM \mod N$ where r is an integer that's
|
||||
coprime to $N$:
|
||||
Bob, begin an intellectual, will refuse to sign the message. So now suppose
|
||||
Marvin now transforms his message into a more innocent looking one. He does this
|
||||
by turning $M$ into $M' = r^eM \mod N$ where r is an integer that's coprime to
|
||||
$N$:
|
||||
|
||||
```py
|
||||
>>> from random import randint
|
||||
|
|
|
@ -7,7 +7,7 @@ languages = ["rust"]
|
|||
|
||||
Procedural macros (proc macros for short) in Rust are incredible because they allow arbitrary pre-compile source transformation, which leads to endless possibilities (and hazards!). But if we take careful advantage of this feature, we can use it to make clean abstractions for messy boilerplate, especially in the case of web forms. <!--more-->
|
||||
|
||||
In fact, proc macros are incredibly pervasive around Rust's ecosystem. For example, using the [`serde`][1] serialization/deserialization crate, you can simply write:
|
||||
In fact, proc macros are incredibly pervasive around Rust's ecosystem. For example, using the [`serde`][1] serialization/deserialization crate, you can write:
|
||||
|
||||
```rs
|
||||
#[derive(Serialize)]
|
||||
|
|
|
@ -6,9 +6,9 @@ tags = ["email", "computers", "things-that-are-bad", "privacy"]
|
|||
|
||||
You probably get emails every day, and spend a lot of time reading them. And
|
||||
whenever someone performs an action or does something in vast quantities, you
|
||||
_bet_ the data giants have figured out a way to capitalize on it. For many
|
||||
years consumer privacy has basically gone unnoticed, and invasive tracking has
|
||||
grown [viral][1]. <!--more-->
|
||||
_bet_ the data giants have figured out a way to capitalize on it. For many years
|
||||
consumer privacy has gone unnoticed, and invasive tracking has grown [viral][1].
|
||||
<!--more-->
|
||||
|
||||
Arguably, if you are someone who runs a business off of writing periodic
|
||||
newsletters that are distributed via email, you might want some statistics on
|
||||
|
@ -49,18 +49,18 @@ making a request to that server, giving up information about the time, place,
|
|||
client, OS, and all sorts of other information that greedy data collection
|
||||
companies are waiting to snatch up.
|
||||
|
||||
Of course, regular users notice nothing: these links are usually hidden behind
|
||||
buttons, text, or even the original URL itself. Once they click it, the website
|
||||
silently logs all the data it receives about the user, and then redirects the
|
||||
user to the original destination.
|
||||
Regular users notice nothing: these links are usually hidden behind buttons,
|
||||
text, or even the original URL itself. Once they click it, the website silently
|
||||
logs all the data it receives about the user, and then redirects the user to the
|
||||
original destination.
|
||||
|
||||
The senders usually aren't at fault either. Sending email is tricky, with all
|
||||
the infrastructure set up to block out spam, so the majority of people who send
|
||||
bulk mail (newsletters, websites that need to confirm your email, etc.) all go
|
||||
through companies that handle this for them. Of course, being the middlemen who
|
||||
actually get the mail out the door, they're free to replace the links with
|
||||
whatever they want, and many of these companies advertise it as a feature to
|
||||
get more "insight" into how your emails are doing.
|
||||
through companies that handle this for them. Being the middlemen who actually
|
||||
get the mail out the door, they're free to replace the links with whatever they
|
||||
want, and many of these companies advertise it as a feature to get more
|
||||
"insight" into how your emails are doing.
|
||||
|
||||
Even worse, the original senders aren't the only ones getting the info, either.
|
||||
These middlemen could hold on to the data and there's no saying they can't use
|
||||
|
|
|
@ -28,7 +28,7 @@ With that out of the way, let's jump in!
|
|||
|
||||
## URL Parsing
|
||||
|
||||
This part is basically just a chore. URLs are defined in [RFC 3986][1], but we'll cheat a bit and just get the important parts we want for sending a request. First, I'll write out a regex for actually matching the parts we want:
|
||||
This part is just a chore. URLs are defined in [RFC 3986][1], but we'll cheat a bit and just get the important parts we want for sending a request. First, I'll write out a regex for actually matching the parts we want:
|
||||
|
||||
```py
|
||||
import re
|
||||
|
@ -96,7 +96,7 @@ def wrap_handshake(htype, hdata):
|
|||
|
||||
### Client Hello
|
||||
|
||||
TLS starts with the client sending a `ClientHello` message (defined in section 4.1.2 of the RFC), which basically starts the handshake off with some basic details about what the client can do. Now's probably a good time to decide on some basics, like which ciphers we'll be using to communicate.
|
||||
TLS starts with the client sending a `ClientHello` message (defined in section 4.1.2 of the RFC), which starts the handshake off with some basic details about what the client can do. Now's probably a good time to decide on some basics, like which ciphers we'll be using to communicate.
|
||||
|
||||
#### Cipher Suite
|
||||
|
||||
|
@ -299,7 +299,7 @@ Piece of cake.
|
|||
Let's walk through each of the ciphers and algorithms we're going to need one more time:
|
||||
|
||||
- `ecdsa_secp256r1_sha256`
|
||||
+ ECDSA is the elliptical-curve signature algorithm; basically it can sign some information using the elliptical-curve private key, and anyone can verify using the corresponding public key that the person who owns the key has created that signature.
|
||||
+ ECDSA is the elliptical-curve signature algorithm; it can sign some information using the elliptical-curve private key, and anyone can verify using the corresponding public key that the person who owns the key has created that signature.
|
||||
+ secp256r1 just gives the name of a set of established parameters for a curve.
|
||||
+ SHA256 is a hashing algorithm, which creates a unique fingerprint of a piece of information that can't be reversed back to the original. Python's `hashlib` library provides this function for us, so we don't have to implement it ourselves.
|
||||
|
||||
|
|
|
@ -79,9 +79,8 @@ expect, and many industries have laws like [HIPAA][hipaa] and [FERPA][ferpa] to
|
|||
make sure the people handling your data don't leak it.
|
||||
|
||||
But we don't have to just _trust_ them on that, because we already _know_ how
|
||||
to protect data from middlemen who are simply taking a message and sending it
|
||||
somewhere else unchanged, like the ISPs from our networks. We just need _more_
|
||||
encryption!
|
||||
to protect data from middlemen who are taking a message and sending it somewhere
|
||||
else unchanged, like the ISPs from our networks. We just need _more_ encryption!
|
||||
|
||||
**End-to-end encryption** is just encrypting the data in a way that the only
|
||||
parties allowed to read the data are the people it was intended for. Password
|
||||
|
|
|
@ -114,7 +114,7 @@ expand infinitely. That makes sense given its purpose: to find a _fixed point_
|
|||
of whatever function you pass in.
|
||||
|
||||
> As an example, the fixed-point of the function f(x) = sqrt(x) is 1. That's
|
||||
> because f(1) = 1. The Y combinator attempts to find the fixed point by simply
|
||||
> because f(1) = 1. The Y combinator attempts to find the fixed point by
|
||||
> applying the function multiple times. In the untyped lambda calculus, this can
|
||||
> be used to implement simple (but possibly unbounded) recursion.
|
||||
|
||||
|
|
|
@ -111,9 +111,9 @@ $$\begin{aligned}
|
|||
k_1k_2 &= ip \times iq - \frac{1}{pq} - \frac{k_1}{p} - \frac{k_2}{q}
|
||||
\end{aligned}$$
|
||||
|
||||
$\frac{1}{pq}$ is basically $0$, and since $k_1$ and $k_2$ are both smaller than
|
||||
$p$ or $q$, then we'll approximate this using $k_1k_2 = ip \times iq - 1$. Now
|
||||
that $k_1k_2$ has become a constant, we can create the coefficients we need:
|
||||
We can treat $\frac{1}{pq}$ as $0$, and since $k_1$ and $k_2$ are both smaller
|
||||
than $p$ or $q$, then we'll approximate this using $k_1k_2 = ip \times iq - 1$.
|
||||
Now that $k_1k_2$ has become a constant, we can create the coefficients we need:
|
||||
|
||||
$$\begin{aligned}
|
||||
\alpha + \beta &= pq \times ip \times iq - 1 - k_1k_2pq \\\
|
||||
|
@ -186,7 +186,7 @@ print(long_to_bytes(m2))
|
|||
# ... The last part of the flag is: 8ut_num83r_sy5t3m_15_3v3n_m0r3_1nt3r35t1n6} ...
|
||||
```
|
||||
|
||||
This trick won't work with $c_1$ however:
|
||||
This trick won't work with $c_1$ though:
|
||||
|
||||
```py
|
||||
d1 = pow(e1, -1, phi)
|
||||
|
|
|
@ -21,9 +21,9 @@ specific purposes:
|
|||
- **Dependency.** The linked topic needs some percentage of mastery in order
|
||||
to best experience the current topic.
|
||||
|
||||
- **Spill.** Not really sure what a good term for this would be, but basically
|
||||
mastery of the current topic would result in some percentage of "spilled"
|
||||
mastery gain for the linked topic.
|
||||
- **Spill.** Not really sure what a good term for this would be, but mastery of
|
||||
the current topic would result in some percentage of "spilled" mastery gain
|
||||
for the linked topic.
|
||||
|
||||
The dependency aspect allows people to work backwards, starting from what they
|
||||
don't know and being able to query what the required context is. They can build
|
||||
|
@ -51,8 +51,8 @@ The vision would be something like this:
|
|||
|
||||
2. Then, the student goes off and learns some related material. After a length
|
||||
of time has passed, they are quizzed on the first topic again. By this time,
|
||||
their mastery score should fall a bit simply on the basis of "forgetfulness
|
||||
over time".
|
||||
their mastery score should fall a bit on the basis of "forgetfulness over
|
||||
time".
|
||||
|
||||
3. At the end of the semester, if they have reached required thresholds of
|
||||
mastery in each required topic, they will pass the class.
|
||||
|
|
|
@ -47,8 +47,8 @@ foreach ($allowed_extensions as $extension) {
|
|||
|
||||
The flaw here is that the file extension is only checked for existence, not that
|
||||
it actually occurs at the end of the file. As a result, the web server will
|
||||
guess the kind of data in the file based on the final extension. We can simply
|
||||
upload a file named `hello.jpg.php` and it will pass this.
|
||||
guess the kind of data in the file based on the final extension. We can upload a
|
||||
file named `hello.jpg.php` and it will pass this.
|
||||
|
||||
The Dockerfile in the handout helpfully tells us the location of the flag, so
|
||||
here is the file I uploaded:
|
||||
|
@ -115,8 +115,8 @@ to figure it out.
|
|||
> anyone who may want it. https://military-grade-encryption-web.chal.uiuc.tf/
|
||||
|
||||
I'm not really sure what the clever way to solve this was, but all the numbers
|
||||
were small enough to be brute forced, so that's what I did. Simply reverse the
|
||||
process used and look for a string beginning with `uiuctf{`.
|
||||
were small enough to be brute forced, so that's what I did: reverse the process
|
||||
used and look for a string beginning with `uiuctf{`.
|
||||
|
||||
[solve script](https://git.sr.ht/~mzhang/uiuctf-2022/tree/master/item/crypto/military-grade-encryption/solve.py)
|
||||
|
||||
|
@ -129,7 +129,7 @@ challenge of RSA. This time, rather than starting with a modulus and trying to
|
|||
discover the private exponent, we are given the private exponent, and trying to
|
||||
find the modulus.
|
||||
|
||||
As a reminder, once we find $N$, we can simply evaluate $c^d \mod N$ to
|
||||
As a reminder, once we find $N$, we can evaluate $c^d \mod N$ to
|
||||
determine the final message.
|
||||
|
||||
First, we know that the relationship between $e$ and $d$ is that $ed \equiv 1
|
||||
|
@ -146,8 +146,8 @@ of 8.
|
|||
[external factoring service]: https://www.alpertron.com.ar/ECM.HTM
|
||||
|
||||
Trusty old combinatorics tells us ${16 \choose 8} = 12870$, which is easily
|
||||
iterable within a matter of seconds. After picking 8 primes, we simply run
|
||||
through the same process as `gen_prime` in order to generate our $p$ and $q$:
|
||||
iterable within a matter of seconds. After picking 8 primes, we run through the
|
||||
same process as `gen_prime` in order to generate our $p$ and $q$:
|
||||
|
||||
```python
|
||||
for perm in tqdm(perms):
|
||||
|
@ -197,8 +197,8 @@ This means that even with the absence of one of the required points, we can
|
|||
still reasonably recover the curve with the added information that all
|
||||
coefficients are less than $500,000$.
|
||||
|
||||
I simply threw all of the constraints we are given into the z3 solver, and
|
||||
within milliseconds the answer was given. After that it was just a matter of
|
||||
hooking it up to the challenge server and waiting for the flag.
|
||||
I threw all of the constraints we are given into the z3 solver, and within
|
||||
milliseconds the answer was given. After that it was just a matter of hooking it
|
||||
up to the challenge server and waiting for the flag.
|
||||
|
||||
[solve script](https://git.sr.ht/~mzhang/uiuctf-2022/tree/master/item/crypto/wringing-rings/solve.py)
|
||||
|
|
|
@ -42,9 +42,9 @@ representation using this data structure:
|
|||
|
||||
Why is this representation useful? Well, if you remember **proof by induction**
|
||||
from maybe high school geometry, you'll recall that we can prove things about
|
||||
all natural numbers by simply proving that it's true for the _base case_ 0, and
|
||||
then proving that it's true for any _inductive case_ $n$, given that the
|
||||
previous case $n - 1$ is true.
|
||||
all natural numbers by proving that it's true for the _base case_ 0, and then
|
||||
proving that it's true for any _inductive case_ $n$, given that the previous
|
||||
case $n - 1$ is true.
|
||||
|
||||
This kind of definition of natural numbers makes this induction structure much
|
||||
more clear. For example, look at the definition of a tree:
|
||||
|
@ -56,11 +56,11 @@ data Tree (A : Set) : Set where
|
|||
right : Tree A → Tree A
|
||||
```
|
||||
|
||||
We can do induction on trees by simply proving it's true for (1) the base case,
|
||||
(2) the left case, and (3) the right case. In fact, all inductive data
|
||||
structures have this kind of induction principle. So say you wanted to prove
|
||||
that $1 + 2 + 3 + \cdots + n = \frac{n\cdot(n+1)}{2}$ for all $n \in
|
||||
\mathbb{N}$, then you could say:
|
||||
We can do induction on trees by proving it's true for (1) the base case, (2) the
|
||||
left case, and (3) the right case. In fact, all inductive data structures have
|
||||
this kind of induction principle. So say you wanted to prove that $1 + 2 + 3 +
|
||||
\cdots + n = \frac{n\cdot(n+1)}{2}$ for all $n \in \mathbb{N}$, then you could
|
||||
say:
|
||||
|
||||
<details>
|
||||
<summary>(click here for boring requisites)</summary>
|
||||
|
|
|
@ -10,7 +10,7 @@ logseq = true
|
|||
- There's several projects out there that are already trying out other extremes. I'll cover two big types here:
|
||||
- **Federation.** This style of application development is inspired by email. The idea is that you develop a common _protocol_ for apps living on different servers to talk to each other, so you can have people choose their own servers rather than trusting everything to megacorps like Google or Facebook. One notable example of this in the microblogging realm is Mastodon / ActivityPub.
|
||||
- **Peer-to-peer.** This style of application development is rarer, but can be seen commonly in things like torrents. The idea is that _each_ client holds all application info, and interacts with everything else as if they were all clients. One notable example of this in the microblogging realm is Scuttlebutt.
|
||||
- I'll go into more detail about these two styles later, but they both come with their advantages and drawbacks. However, I don't think any of the solutions that exist are sustainable for longer periods of time.
|
||||
- I'll go into more detail about these two styles later, but they both come with their advantages and drawbacks. I don't think any of the solutions that exist are sustainable for longer periods of time.
|
||||
- ## Feature Evaluation
|
||||
- One thing I've been doing recently when I think about software applications and system design is break things down into their **features**. This makes it a lot easier to compare applications or services to each other than a vague statement like "I've had a good/bad experience with this". So let's come up with some features of a good microblogging platform:
|
||||
- Application design
|
||||
|
@ -28,7 +28,7 @@ logseq = true
|
|||
- **Malleability:** How easy is it to introduce / roll out new versions and features? This may be important for updating cryptographic algorithms.
|
||||
- **Version drift:** Is it possible to support users who are on different version of the service?
|
||||
- Some features are certainly more important than others, and may have different importance to different people. But it gives me a base line to evaluate services, and lets me decide which features I consider to be critical.
|
||||
- These are obviously not the only features, but I like to list them in this form because while some
|
||||
- These are not the only features, but I like to list them in this form because while some
|
||||
alternative apps may tout certain features, it's useless if it falls short on something more important.
|
||||
- ### Evaluation
|
||||
- Now that we know what we're looking for, let's evaluate some existing services.
|
||||
|
@ -37,14 +37,14 @@ logseq = true
|
|||
- **Connectability:** It's easy to find other users based on their user ID, which looks like an email so it's easy to share.
|
||||
- Doesn't satisfy:
|
||||
- **Freedom:** While certain instances may be specialized (i.e hobby-focused), it's certainly not great when you are locked out of communicating with someone on another instance because the admins of your respective instances have beef with each other.
|
||||
- **Availability:** For some reason or another, I've seen Mastodon admins give up on their instances. Running an instance is very costly in terms of money and time, so it's not surprising that if an instance owner decides it's simply no longer worth it, the users are simply hosed. While there are some options for migration like redirection, it's useless if the original server doesn't stay online.
|
||||
- **Availability:** For some reason or another, I've seen Mastodon admins give up on their instances. Running an instance is very costly in terms of money and time, so it's not surprising that if an instance owner decides it's no longer worth it, the users are pretty much hosed. While there are some options for migration like redirection, it's useless if the original server doesn't stay online.
|
||||
- **Scuttlebutt**
|
||||
- Satisfies:
|
||||
- **Freedom:** This is the maximally free solution: your client is solely responsible for receiving and filtering all messages.
|
||||
- Doesn't satisfy:
|
||||
- **Connectability:** Connecting with someone must take place over an existing channel (i.e either meeting in meatspace or sharing a pub). If I don't have my Scuttlebutt client with me, then it's not possible to get updates.
|
||||
- **Universality:** Since user identity is heavily tied to a single client, having multiple clients for a single user is not a well-supported workflow.
|
||||
- The Matrix people have also developed [Cerulean], a playground for testing the idea of _relative reputation_, where instead of doing moderation of all users you can assign a web-of-trust-style reputation to people you follow. However, this may lead to further filter-bubbling, the implications of which I'm honestly not sure how to tackle.
|
||||
- The Matrix people have also developed [Cerulean], a playground for testing the idea of _relative reputation_, where instead of doing moderation of all users you can assign a web-of-trust-style reputation to people you follow. On the other hand, this may lead to further filter-bubbling, the implications of which I'm honestly not sure how to tackle.
|
||||
|
||||
[Cerulean]: https://matrix.org/blog/2020/12/18/introducing-cerulean#whats-with-the-decentralised-reputation-button
|
||||
- ## Decentralized Identity
|
||||
|
@ -54,10 +54,10 @@ logseq = true
|
|||
- A user identity model based on an asymmetric-key model. Users generate their own key locally and provide it to instances.
|
||||
- Users should then have _client_ keys, which are independent of the user keys. These are signed by the user key to indicate that they belong to the same user.
|
||||
- When a user wants to switch servers, they can begin requesting a checkout of their data from the server. The data can be signed by the server as well to provide an indicator that the client isn't trying to forge old history.
|
||||
- One problem is if a server wants to deny a user from switching servers; they may try to keep the data hostage. One solution is just to scrape all publicly obtainable data, the other is to hope that this is socially discouraged by just having users avoid servers that engage in user-hostile actions.
|
||||
- Users may also opt to replicate their identity entirely between two servers. This just means that this synchronization process is just happening incrementally or periodically rather than just at switch-time.
|
||||
- One problem is if a server wants to deny a user from switching servers; they may try to keep the data hostage. One solution is to scrape all publicly obtainable data, the other is to hope that this is socially discouraged by having users avoid servers that engage in user-hostile actions.
|
||||
- Users may also opt to replicate their identity entirely between two servers. This means that this synchronization process is just happening incrementally or periodically rather than just at switch-time.
|
||||
- This still has a number of open problems:
|
||||
- **Key revocation.** Obviously, anything involving cryptographic keys requires a revocation protocol in the event that the keys are compromised. I'm not too sure of a good way of doing this that doesn't involve an infinitely growing append-only list of revocations on all of the people who have
|
||||
- **Key revocation.** Anything involving cryptographic keys requires a revocation protocol in the event that the keys are compromised. I'm not too sure of a good way of doing this that doesn't involve an infinitely growing append-only list of revocations on all of the people who have
|
||||
- When I have some free time, I may take a crack at a proof-of-concept implementation of a system like this.
|
||||
- ### Further applications
|
||||
- Since this scheme only really targets the identity layer with (theoretically) asymptotically constant change required for other parts of the software, this should be able to be extended to things other than just microblogging. I'm not sure about the level of success this may have for things like sharing large data files such as video (maybe mix in something like IPFS?), but there is certainly room for exploration.
|
||||
|
|
|
@ -12,7 +12,6 @@ language_switcher_languages = ["ocaml", "python"]
|
|||
There's a feature common to many functional languages, the ability to have
|
||||
algebraic data types. It might look something like this:
|
||||
|
||||
{{< language-switcher >}}
|
||||
```ocaml
|
||||
type bool =
|
||||
| True
|
||||
|
@ -27,14 +26,6 @@ that has two _constructors_, or ways to create this type. The constructors are
|
|||
2. Any time I use the value `False`, it's understood to have type `bool`.
|
||||
3. In addition, there are _no_ other ways to create values of `bool` other than combining `True` and `False` constructors.
|
||||
|
||||
---
|
||||
|
||||
```python
|
||||
from typing import Literal
|
||||
MyBool = Literal[True] | Literal[False]
|
||||
```
|
||||
{{</ language-switcher >}}
|
||||
|
||||
> **Note:** I'm using an experimental language switcher. It's implemented in
|
||||
> pure CSS using a feature called the [`:has` pseudo-class][has]. As of writing,
|
||||
> all major browsers _except_ Firefox has it implemented and enabled by default.
|
||||
|
@ -58,21 +49,12 @@ unknown value of type `Boolean`, you know it can only take one of two values.
|
|||
There's actually nothing special about boolean itself. I could just as easily
|
||||
define a new type, like this:
|
||||
|
||||
{{< language-switcher >}}
|
||||
```ocaml
|
||||
type WeirdType =
|
||||
| Foo
|
||||
| Bar
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
```python
|
||||
from typing import Literal
|
||||
WeirdType = Literal['foo'] | Literal['bar']
|
||||
```
|
||||
{{</ language-switcher >}}
|
||||
|
||||
Because this type can only have two values, it's _semantically_ equivalent to
|
||||
the `Boolean` type. I could use it anywhere I would typically use `Boolean`.
|
||||
|
||||
|
@ -91,20 +73,11 @@ You can make any _finite_ type like this: just create an algebraic data type
|
|||
with unit constructors, and the result is a type with a finite cardinality. If I
|
||||
wanted to make a unit type for example:
|
||||
|
||||
{{< language-switcher >}}
|
||||
```ocaml
|
||||
type unit =
|
||||
| Unit
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
```python
|
||||
from typing import Literal
|
||||
Unit = Literal[None]
|
||||
```
|
||||
{{</ language-switcher >}}
|
||||
|
||||
There's only one way to ever construct something of this type, so the
|
||||
cardinality of this type would be 1.
|
||||
|
||||
|
@ -118,7 +91,6 @@ called structural matching in some languages).
|
|||
Let's see an example. Suppose I have a type with three values, defined like
|
||||
this:
|
||||
|
||||
{{< language-switcher >}}
|
||||
```ocaml
|
||||
type direction =
|
||||
| Left
|
||||
|
@ -126,19 +98,10 @@ type direction =
|
|||
| Right
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
```python
|
||||
from typing import Literal
|
||||
Direction = Literal['left'] | Literal['middle'] | Literal['right']
|
||||
```
|
||||
{{</ language-switcher >}}
|
||||
|
||||
If I was given a value with a type of direction, but I wanted to do different
|
||||
things depending on exactly which direction it was, I could use _pattern
|
||||
matching_ like this:
|
||||
|
||||
{{< language-switcher >}}
|
||||
```ocaml
|
||||
let do_something_with (d : direction) =
|
||||
match d with
|
||||
|
@ -147,24 +110,6 @@ let do_something_with (d : direction) =
|
|||
| Right -> do_this_if_right
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
```python
|
||||
def do_something_with(d : Direction) -> str:
|
||||
match inp:
|
||||
case 'left': return do_this_if_left
|
||||
case 'middle': return do_this_if_middle
|
||||
case 'right': return do_this_if_right
|
||||
case _: assert_never(inp)
|
||||
```
|
||||
|
||||
**Note:** the `assert_never` is a static check for exhaustiveness. If we missed
|
||||
a single one of the cases, a static type checker like [pyright] could catch it
|
||||
and tell us which of the remaining cases there are.
|
||||
|
||||
[pyright]: https://github.com/microsoft/pyright
|
||||
{{</ language-switcher >}}
|
||||
|
||||
This gives me a way to discriminate between the different variants of
|
||||
`direction`.
|
||||
|
||||
|
@ -194,13 +139,11 @@ contain themselves as a type).
|
|||
|
||||
You can see an example of this here:
|
||||
|
||||
{{< language-switcher >}}
|
||||
```ocaml
|
||||
type nat =
|
||||
| Suc of nat
|
||||
| Zero
|
||||
```
|
||||
{{</ language-switcher >}}
|
||||
|
||||
These are the natural numbers, which are defined inductively. Each number is
|
||||
just represented by a data type that wraps 0 that number of times. So 3 would be
|
||||
|
|
|
@ -50,8 +50,8 @@ kind of existing configuration, I have _no_ dependencies, and if I want to even
|
|||
build it, I would have to write a flake myself. That's fine and all, but
|
||||
typically the `flake.nix` file lives in the root directory of the project, and
|
||||
it's good practice in the Nix world to commit the flake file along with its
|
||||
corresponding lock file. However, the upstream project may not appreciate it if
|
||||
I shove new config files in their root directory.
|
||||
corresponding lock file. The upstream project may not appreciate me shoving new
|
||||
config files in their root directory.
|
||||
|
||||
```
|
||||
project
|
||||
|
|
|
@ -306,9 +306,9 @@ parties of logical thought that are involved here. Let's meet them:
|
|||
sort. Another notable difference is that intuitionistic does not consider the
|
||||
Law of Excluded Middle to be true.
|
||||
|
||||
However, intuitionistic logic is preferred in a lot of mechanized theorem
|
||||
provers, because it's easier computationally to talk about "having a witness".
|
||||
Let's actually look more closely at what it means to have a "witness".
|
||||
Between the two, intuitionistic logic is preferred in a lot of mechanized
|
||||
theorem provers, because it's easier computationally to talk about "having a
|
||||
witness". Let's actually look more closely at what it means to have a "witness".
|
||||
|
||||
If you didn't read the section earlier about using private constructors to
|
||||
restrict type construction, I'm going to revisit the idea a bit here. Consider
|
||||
|
@ -335,8 +335,8 @@ namespace HashMap {
|
|||
```
|
||||
|
||||
The idea behind this is kind of like having a witness. Whenever you insert
|
||||
something into the map, you get back a ticket that basically proves that it was
|
||||
the one that inserted it for you in the first place.
|
||||
something into the map, you get back a ticket that proves that it was the one
|
||||
that inserted it for you in the first place.
|
||||
|
||||
Since we used a namespace to hide access to the `Ticket` class, the only way you
|
||||
could have constructed a ticket is by inserting into the map. The ticket then
|
||||
|
@ -368,8 +368,8 @@ function returnUnit(): null {
|
|||
```
|
||||
|
||||
There's nothing else that fits in this type. (I realize `void` and `undefined`
|
||||
also exist and are basically single-valued types, but they have other weird
|
||||
behavior that makes me not want to lump them in here)
|
||||
also exist and are single-valued types, but they have other weird behavior that
|
||||
makes me not want to lump them in here)
|
||||
|
||||
Let's just also jump into two-valued types, which in math we just call
|
||||
$\mathbf{2}$. This type has a more common analog in programming, it's the
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
+++
|
||||
title = "Proving true ≢ false"
|
||||
slug = "proving-true-from-false"
|
||||
date = 2023-04-21
|
||||
tags = ["type-theory", "agda"]
|
||||
math = true
|
||||
+++
|
||||
---
|
||||
title: "Proving true ≢ false"
|
||||
slug: "proving-true-from-false"
|
||||
date: 2023-04-21
|
||||
tags: ["type-theory", "agda"]
|
||||
math: true
|
||||
---
|
||||
|
||||
<details>
|
||||
<summary>Imports</summary>
|
||||
|
@ -60,9 +60,8 @@ left side so it becomes judgmentally equal to the right:
|
|||
- suc (suc (suc zero))
|
||||
- 3
|
||||
|
||||
However, in cubical Agda, naively using `refl` with the inverse statement
|
||||
doesn't work. I've commented it out so the code on this page can continue to
|
||||
compile.
|
||||
In cubical Agda, naively using `refl` with the inverse statement doesn't work.
|
||||
I've commented it out so the code on this page can continue to compile.
|
||||
|
||||
```
|
||||
-- true≢false = refl
|
||||
|
|
3
content/posts/posts.json
Normal file
3
content/posts/posts.json
Normal file
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"layout": "post"
|
||||
}
|
|
@ -1,29 +0,0 @@
|
|||
- name: Forgejo
|
||||
url: https://git.mzhang.io
|
||||
icon: fa fa-gitea
|
||||
description: Check out my public open source projects on Forgejo
|
||||
|
||||
- name: Matrix
|
||||
url: https://matrix.to/#/@michael:chat.mzhang.io
|
||||
icon: fa fa-matrix-org
|
||||
description: Come chat with me on Matrix
|
||||
|
||||
- name: GitHub
|
||||
url: https://github.com/iptq
|
||||
icon: fa fa-github
|
||||
description: See a history of my old projects on GitHub
|
||||
|
||||
- name: Mastodon
|
||||
url: https://fosstodon.org/@mzhang
|
||||
icon: fa fa-mastodon-square
|
||||
description: Follow my ramblings on Mastodon
|
||||
|
||||
- name: Keybase
|
||||
url: https://keybase.io/michaelz
|
||||
icon: fa fa-keybase
|
||||
description: Verify my other identities on Keybase
|
||||
|
||||
- name: LinkedIn
|
||||
url: https://linkedin.com/in/mzhang0
|
||||
icon: fa fa-linkedin
|
||||
description: Connect with me on LinkedIn
|
|
@ -1,80 +0,0 @@
|
|||
- category: Research Projects
|
||||
desc: Projects that have a large research component compared to software development.
|
||||
projects:
|
||||
- name: Ag Test
|
||||
link: https://git.mzhang.io/proglangs/agtest
|
||||
desc: A small toy attribute grammar.
|
||||
status: incomplete
|
||||
langs: ["python"]
|
||||
|
||||
- name: Coq-SSH
|
||||
link: https://git.mzhang.io/experiment/coq-ssh
|
||||
desc: Attempt at formally verifying SSH protocol through Coq.
|
||||
status: incomplete
|
||||
langs: ["coq", "ocaml"]
|
||||
|
||||
- name: Enterprise
|
||||
link: https://git.mzhang.io/michael/enterprise
|
||||
desc: Statically-compiled interactive programs like Svelte.
|
||||
status: prototype
|
||||
langs: ["rust"]
|
||||
|
||||
- category: Learning Projects
|
||||
desc: Software development projects used to gain more experience with a particular set of existing technologies.
|
||||
projects:
|
||||
- name: rsld
|
||||
link: https://git.mzhang.io/michael/rsld
|
||||
desc: A parallel rust linker.
|
||||
status: incomplete
|
||||
langs: ["rust"]
|
||||
|
||||
- name: asciinema
|
||||
link: https://git.mzhang.io/michael/asciinema
|
||||
desc: Reimplementation of the terminal recorder asciinema.
|
||||
status: mvp
|
||||
langs: ["rust"]
|
||||
|
||||
- category: Utility Projects
|
||||
desc: Software that I developed to solve a very specific problem or to make something useful for myself.
|
||||
projects:
|
||||
- name: Panorama
|
||||
link: https://git.mzhang.io/michael/panorama
|
||||
desc: Mail client.
|
||||
status: incomplete
|
||||
langs: ["rust"]
|
||||
|
||||
- name: Leanshot
|
||||
link: https://git.mzhang.io/michael/leanshot
|
||||
desc: Linux screen capture tool.
|
||||
status: works
|
||||
langs: ["rust"]
|
||||
|
||||
- name: Garbage
|
||||
link: https://git.sr.ht/~mzhang/garbage
|
||||
desc: CLI interface to the FreeDesktop Trash Can API.
|
||||
status: works
|
||||
langs: ["rust"]
|
||||
|
||||
- name: Markout
|
||||
link: https://git.mzhang.io/michael/markout
|
||||
desc: Extracts code blocks for a particular language out of Markdown.
|
||||
status: works
|
||||
langs: ["rust"]
|
||||
|
||||
- category: Miscellaneous
|
||||
desc: Projects that I did for fun or don't really fit in one of the categories above.
|
||||
projects:
|
||||
- name: Cryptopals
|
||||
link: https://git.mzhang.io/michael/cryptopals
|
||||
desc: My solutions to the cryptopals solution, for learning Common Lisp
|
||||
status: incomplete
|
||||
langs: ["common-lisp"]
|
||||
|
||||
- category: Old Projects
|
||||
desc: Software I wrote in the past and won't be updating.
|
||||
projects:
|
||||
- name: EasyCTF IV Platform
|
||||
link: https://git.mzhang.io/easyctf/easyctf-iv-platform
|
||||
desc: CTF platform for EasyCTF.
|
||||
status: graveyarded
|
||||
langs: ["python"]
|
26
eleventy.config.js
Normal file
26
eleventy.config.js
Normal file
|
@ -0,0 +1,26 @@
|
|||
const util = require("util");
|
||||
|
||||
const inclusiveLangPlugin = require("@11ty/eleventy-plugin-inclusive-language");
|
||||
const directoryOutputPlugin = require("@11ty/eleventy-plugin-directory-output");
|
||||
const eleventySass = require("eleventy-sass");
|
||||
|
||||
module.exports = (config) => {
|
||||
config.setQuietMode(true);
|
||||
config.addPlugin(directoryOutputPlugin);
|
||||
config.addPlugin(eleventySass);
|
||||
config.addPlugin(inclusiveLangPlugin, {
|
||||
words:
|
||||
"simply,obviously,basically,of course,clearly,everyone knows,however",
|
||||
});
|
||||
|
||||
config.addFilter("debug", (content) => `<pre>${util.inspect(content)}</pre>`);
|
||||
|
||||
return {
|
||||
dir: {
|
||||
input: "content",
|
||||
includes: "../includes",
|
||||
layouts: "../layouts",
|
||||
output: "_site",
|
||||
},
|
||||
};
|
||||
};
|
30
flake.lock
30
flake.lock
|
@ -1,12 +1,15 @@
|
|||
{
|
||||
"nodes": {
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1659877975,
|
||||
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
|
||||
"lastModified": 1681202837,
|
||||
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
|
||||
"rev": "cfacdce06f30d2b68473a46042957675eebb3401",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -16,11 +19,11 @@
|
|||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1663593585,
|
||||
"narHash": "sha256-DG6TLLimio1MdBKRTB/dkdUKneJQ+LnNfFT02oIElmE=",
|
||||
"lastModified": 1663551060,
|
||||
"narHash": "sha256-e2SR4cVx9p7aW/XnVsGsWZBplApA9ZJUjc0fejJhnYo=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "60a27bacb71a009c9479394081aec7b2fc90952a",
|
||||
"rev": "8a5b9ee7b7a2b38267c9481f5c629c015108ab0d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -33,6 +36,21 @@
|
|||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": "nixpkgs"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
<h{{ .Level }} id="{{ .Anchor | safeURL }}" class="heading">
|
||||
<a href="#{{ .Anchor | safeURL }}">{{ .Text | safeHTML }}</a>
|
||||
</h{{ .Level }}>
|
|
@ -1,51 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>
|
||||
{{ block "title" . }}{{ end }}
|
||||
Michael Zhang
|
||||
</title>
|
||||
|
||||
{{ block "headExtra" . }}{{ end }}
|
||||
{{ partial "head" . }}
|
||||
|
||||
{{ if .IsHome }}
|
||||
<link rel="me" href="https://fosstodon.org/@mzhang" />
|
||||
<link rel="alternate" type="application/rss+xml" title="RSS Feed" href="/index.xml" />
|
||||
{{ end }}
|
||||
|
||||
{{ $style := resources.Get "sass/main.scss" | resources.ToCSS }}
|
||||
<link rel="stylesheet" href="{{ $style.RelPermalink }}" crossorigin="anonymous" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
{{ block "body" . }}
|
||||
<div class="flex-wrapper">
|
||||
{{ partial "left-nav" . }}
|
||||
|
||||
<div class="sep"></div>
|
||||
|
||||
<div class="container">
|
||||
{{ block "content" . }}{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
<p>
|
||||
Blog code licensed under <a
|
||||
href="https://www.gnu.org/licenses/gpl-3.0.txt"
|
||||
target="_blank">[GPL-3.0]</a>.
|
||||
Post contents licensed under <a
|
||||
href="https://creativecommons.org/licenses/by-sa/4.0/legalcode.txt">[CC
|
||||
BY-SA 4.0]</a>.
|
||||
<br />
|
||||
Written by Michael Zhang.
|
||||
<a href="https://git.mzhang.io/michael/blog" class="colorlink"
|
||||
target="_blank">[Source]</a>.
|
||||
</p>
|
||||
</footer>
|
||||
{{ end }}
|
||||
</body>
|
||||
</html>
|
38
layouts/base.html
Normal file
38
layouts/base.html
Normal file
|
@ -0,0 +1,38 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Michael Zhang</title>
|
||||
|
||||
<link rel="stylesheet" href="/main.css" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="flex-wrapper">
|
||||
<div class="sep"></div>
|
||||
|
||||
<div class="container"></div>
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
<p>
|
||||
Blog code licensed under
|
||||
<a href="https://www.gnu.org/licenses/gpl-3.0.txt" target="_blank"
|
||||
>[GPL-3.0]</a
|
||||
>. Post contents licensed under
|
||||
<a href="https://creativecommons.org/licenses/by-sa/4.0/legalcode.txt"
|
||||
>[CC BY-SA 4.0]</a
|
||||
>.
|
||||
<br />
|
||||
Written by Michael Zhang.
|
||||
<a
|
||||
href="https://git.mzhang.io/michael/blog"
|
||||
class="colorlink"
|
||||
target="_blank"
|
||||
>[Source]</a
|
||||
>.
|
||||
</p>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
|
@ -1,8 +0,0 @@
|
|||
{{- define "content" -}}
|
||||
|
||||
{{ .Content }}
|
||||
|
||||
{{ partial "draft-list" . }}
|
||||
|
||||
{{- end -}}
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
{{- define "content" -}}
|
||||
|
||||
{{ .Content }}
|
||||
|
||||
<table style="width: 100%;">
|
||||
{{- range .Pages -}}
|
||||
<tr class="postlisting-row">
|
||||
<td>
|
||||
<a href="{{ .Permalink }}" class="brand-colorlink">{{ .Title }}</a>
|
||||
</td>
|
||||
<td style="text-align: right;">
|
||||
{{ partial "rel-date" .Date }}
|
||||
</td>
|
||||
</tr>
|
||||
{{- end -}}
|
||||
</table>
|
||||
|
||||
{{- end -}}
|
|
@ -1,5 +0,0 @@
|
|||
{{- define "content" -}}
|
||||
|
||||
{{ .Content }}
|
||||
|
||||
{{- end -}}
|
|
@ -1,9 +0,0 @@
|
|||
{{- define "content" -}}
|
||||
|
||||
<h2>Blog</h2>
|
||||
|
||||
{{ with .GetPage "/posts" }}
|
||||
{{ partial "post-list" . }}
|
||||
{{ end }}
|
||||
|
||||
{{- end -}}
|
|
@ -1,24 +0,0 @@
|
|||
{{ $posts := .Site.GetPage "/posts" }}
|
||||
|
||||
<table style="width: 100%;">
|
||||
{{- range $posts.Pages -}}
|
||||
{{ if .Draft }}
|
||||
<tr class="postlisting-row">
|
||||
<td>
|
||||
<span class="title">
|
||||
<a href="{{ .RelPermalink }}" class="brand-colorlink">{{ .Title }}</a>
|
||||
</span>
|
||||
<br />
|
||||
<small>
|
||||
{{ .ReadingTime }} min read -
|
||||
|
||||
{{ .Date.Format "Mon Jan 02, 2006" }}
|
||||
</small>
|
||||
|
||||
<br />
|
||||
</td>
|
||||
</tr>
|
||||
{{ end }}
|
||||
{{- end -}}
|
||||
</table>
|
||||
|
|
@ -1 +0,0 @@
|
|||
{{ if .Params.math }}{{ partial "katex.html" . }}{{ end }}
|
|
@ -1,21 +0,0 @@
|
|||
<link rel="stylesheet" href="/katex/katex.min.css">
|
||||
<script defer src="/katex/katex.min.js"></script>
|
||||
<script defer src="/katex/contrib/auto-render.min.js" onload="renderMathInElement(document.body);"></script>
|
||||
|
||||
<script>
|
||||
document.addEventListener("DOMContentLoaded", function() {
|
||||
renderMathInElement(document.body, {
|
||||
// customised options
|
||||
// • auto-render specific keys, e.g.:
|
||||
delimiters: [
|
||||
{left: '$$', right: '$$', display: true},
|
||||
{left: '$', right: '$', display: false},
|
||||
{left: '\\(', right: '\\)', display: false},
|
||||
{left: '\\[', right: '\\]', display: true}
|
||||
],
|
||||
// • rendering keys, e.g.:
|
||||
throwOnError : false
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
<nav class="side-nav">
|
||||
<div class="side-nav-content">
|
||||
<a href="/" class="portrait">
|
||||
<img class="portrait" src="/self.png" />
|
||||
</a>
|
||||
<div class="me">
|
||||
<h1 class="title">Michael Zhang</h1>
|
||||
<div class="links">
|
||||
{{ range .Site.Data.links }}
|
||||
<a href="{{ .url }}" title="{{ .description }}">
|
||||
<i class="{{ .icon }}" aria-hidden="true"></i>
|
||||
</a>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bio">
|
||||
{{ os.ReadFile "layouts/partials/left-nav.md" | .RenderString }}
|
||||
|
||||
<a href="/about">More »</a>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
|
@ -1,8 +0,0 @@
|
|||
I'm a masters student at the University of Minnesota advised by [Favonia]. I
|
||||
previously worked as a Software Developer at [AWS] and [SIFT]. My
|
||||
computing-related interests lie in programming language design and formal
|
||||
verification, systems security, cryptography, and distributed systems.
|
||||
|
||||
[aws]: https://aws.amazon.com/
|
||||
[sift]: https://www.sift.net/
|
||||
[favonia]: https://favonia.org/
|
|
@ -1,16 +0,0 @@
|
|||
<table style="width: 100%;">
|
||||
{{- range .Pages -}}
|
||||
{{ if not .Draft }}
|
||||
<tr class="postlisting-row">
|
||||
<td class="info">
|
||||
{{ .Date.Format "2006 Jan 02" }}
|
||||
</td>
|
||||
<td>
|
||||
<span class="title">
|
||||
<a href="{{ .RelPermalink }}" class="brand-colorlink">{{ .Title }}</a>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
{{ end }}
|
||||
{{- end -}}
|
||||
</table>
|
5
layouts/post.html
Normal file
5
layouts/post.html
Normal file
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
layout: base
|
||||
---
|
||||
|
||||
<h1>{{ title }}</h1>
|
|
@ -1,7 +0,0 @@
|
|||
{{- define "content" -}}
|
||||
|
||||
{{ .Content }}
|
||||
|
||||
{{ partial "post-list" . }}
|
||||
|
||||
{{- end -}}
|
|
@ -1,82 +0,0 @@
|
|||
{{- define "title" }}
|
||||
{{ .Title }} -
|
||||
{{- end -}}
|
||||
|
||||
{{- define "headExtra" -}}
|
||||
<meta name="description" content="{{ .Summary }}" />
|
||||
<meta property="og:title" content="{{ .Site.Title }}: {{ .Title }}" />
|
||||
<meta property="og:url" content="{{ .Permalink }}" />
|
||||
<meta property="og:description" content="{{ .Summary }}" />
|
||||
<meta property="og:type" content="article" />
|
||||
<meta property="article:published_time" content="{{ .Date.Format "2006-01-02T15:04:05Z07:00" }}" />
|
||||
{{- end -}}
|
||||
|
||||
{{- define "content" -}}
|
||||
|
||||
<h1 class="post-title">{{ .Title }}</h1>
|
||||
|
||||
<span class="tags">
|
||||
{{ if .Draft }}
|
||||
<a href="/drafts" class="tag draft">
|
||||
<i class="fa fa-warning" aria-hidden="true"></i>
|
||||
<span class="text">draft</span>
|
||||
</a>
|
||||
{{ end }}
|
||||
|
||||
{{ range .Params.tags }}
|
||||
<a href="/tags/{{ . }}" class="tag">
|
||||
<i class="fa fa-tag" aria-hidden="true"></i>
|
||||
<span class="text">{{ . }}</span>
|
||||
</a>
|
||||
{{ end }}
|
||||
</span>
|
||||
|
||||
<small style="display: block; margin-bottom: 20px;">
|
||||
Posted
|
||||
on {{ .Date.Format "Mon Jan 02, 2006" }}
|
||||
- {{ .ReadingTime }} min read
|
||||
</small>
|
||||
|
||||
{{ if .Params.language_switcher_languages }}
|
||||
<div class="language_switcher_choices">
|
||||
{{ range $index, $lang := .Page.Params.language_switcher_languages }}
|
||||
<input
|
||||
type="radio"
|
||||
name="language-switcher"
|
||||
class="language-switcher-choice"
|
||||
id="language-switcher-{{ $lang }}"
|
||||
value="{{ $lang }}"
|
||||
{{ if (eq $index 0) }}
|
||||
checked
|
||||
{{ end }}
|
||||
>
|
||||
{{ end }}
|
||||
</div>
|
||||
{{ end }}
|
||||
|
||||
<div class="post-container
|
||||
{{ if .Params.logseq }}logseq-post{{ end }}
|
||||
">
|
||||
{{ if .Params.toc }}
|
||||
<div class="toc-drawer">
|
||||
<details>
|
||||
<summary>Table of Contents</summary>
|
||||
{{ .TableOfContents }}
|
||||
</details>
|
||||
</div>
|
||||
<!-- <div class="toc-list"> {{ .TableOfContents }} </div> -->
|
||||
{{ end }}
|
||||
<div id="content" class="post-content">{{ .Content }}</div>
|
||||
</div>
|
||||
|
||||
<hr class="endline" />
|
||||
|
||||
<small>
|
||||
Thanks for reading!
|
||||
|
||||
Have comments? Discuss this post by sending an email to my
|
||||
<a href="https://lists.sr.ht/~mzhang/public-inbox">public inbox</a> using this
|
||||
<a href="mailto:~mzhang/public-inbox@lists.sr.ht?subject=Re: {{ .Title }}">email link</a>.
|
||||
</small>
|
||||
|
||||
{{- end -}}
|
|
@ -1,33 +0,0 @@
|
|||
{{- define "content" -}}
|
||||
|
||||
{{ .Content }}
|
||||
|
||||
{{ range .Site.Data.projects }}
|
||||
<h2>{{ .category }}</h2>
|
||||
|
||||
<p>{{ .desc }}</p>
|
||||
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Description</th>
|
||||
<th>Lang</th>
|
||||
<th>Status</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
{{ range .projects }}
|
||||
<tr>
|
||||
<td><a href="{{ .link }}" target="_blank">{{ .name }}</a></td>
|
||||
<td>{{ .desc }}</td>
|
||||
<td>{{ delimit .langs ", " }}</td>
|
||||
<td>{{ .status }}</td>
|
||||
</tr>
|
||||
{{ end }}
|
||||
</tbody>
|
||||
</table>
|
||||
{{ end }}
|
||||
|
||||
{{- end -}}
|
|
@ -1 +0,0 @@
|
|||
https://git.mzhang.io/michael/blog/src/branch/master/content/{{ .Page.File.Path }}
|
|
@ -1,28 +0,0 @@
|
|||
{{ $_hugo_config := `{ "version": 1 }` }}
|
||||
|
||||
{{ $parts := split .Inner "---" }}
|
||||
{{ $page := .Page }}
|
||||
|
||||
<div class="tabbed">
|
||||
|
||||
<ul class="tabs">
|
||||
{{ range $index, $snippet := $parts }}
|
||||
{{ $lang := index $page.Params.language_switcher_languages $index }}
|
||||
<li class="tab">
|
||||
<label for="language-switcher-{{ $lang }}">{{ $lang }}</label>
|
||||
</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
|
||||
|
||||
<div class="contents">
|
||||
{{ range $index, $snippet := $parts }}
|
||||
<div class="tab-content">
|
||||
{{ $snippet | markdownify }}
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
{{/* Thank you https://codepen.io/MPDoctor/pen/mpJdYe */}}
|
|
@ -1 +0,0 @@
|
|||
{{ os.ReadFile "/layouts/partials/left-nav.md" | markdownify }}
|
|
@ -1,21 +0,0 @@
|
|||
{{/* This is fucked */}}
|
||||
|
||||
{{- $sliceOriginal := split .Inner "" -}}
|
||||
{{- $len := len $sliceOriginal -}}
|
||||
{{- $sliceReversed := slice -}}
|
||||
{{- range seq $len -}}
|
||||
{{- $sliceReversed = $sliceReversed | append (index $sliceOriginal (sub $len .)) }}
|
||||
{{- end -}}
|
||||
|
||||
<span class="obfuscate">
|
||||
{{- range $sliceReversed -}}
|
||||
{{- if (eq . "@") -}}
|
||||
<span class="sym-at-sign"></span>
|
||||
{{- else if (eq . ".") -}}
|
||||
<span class="sym-dot"></span>
|
||||
{{- else -}}
|
||||
<span>{{ . }}</span>
|
||||
{{- end -}}
|
||||
‍
|
||||
{{- end -}}
|
||||
</span>
|
|
@ -1,22 +0,0 @@
|
|||
{{- define "content" -}}
|
||||
|
||||
<h1>{{ .Name }}</h1>
|
||||
|
||||
<ul>
|
||||
{{- range $name, $value := sort .Data.Pages "Title" -}}
|
||||
{{ if not .Draft }}
|
||||
<li style="margin-bottom: 15px;">
|
||||
<a href="{{ $value.RelPermalink }}">{{ $value.Title }}</a>
|
||||
<br />
|
||||
<small>
|
||||
{{- range $index, $page := $value.Pages -}}
|
||||
{{ if $index }},{{ end }}
|
||||
<a href="{{ $page.RelPermalink }}">{{ $page.Title }}</a>
|
||||
{{- end -}}
|
||||
</small>
|
||||
</li>
|
||||
{{ end }}
|
||||
{{- end -}}
|
||||
</ul>
|
||||
|
||||
{{- end -}}
|
2440
package-lock.json
generated
Normal file
2440
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load diff
10
package.json
Normal file
10
package.json
Normal file
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"devDependencies": {
|
||||
"@11ty/eleventy": "^2.0.1",
|
||||
"@11ty/eleventy-plugin-directory-output": "^1.0.1",
|
||||
"@11ty/eleventy-plugin-inclusive-language": "^1.0.3",
|
||||
"eleventy-sass": "^2.2.1",
|
||||
"sass": "^1.62.1",
|
||||
"typescript": "^5.0.4"
|
||||
}
|
||||
}
|
|
@ -1,4 +0,0 @@
|
|||
#!/bin/bash
|
||||
DEFAULT="http://localhost:1313"
|
||||
TARGET=${1:-$DEFAULT}
|
||||
wget --spider -r -nd -nv -H -l 1 $TARGET
|
1
todo.txt
1
todo.txt
|
@ -1 +0,0 @@
|
|||
- Investigate why GitInfo (AbbreviatedHash) doesn't work in taxonomy list
|
Loading…
Reference in a new issue