aboutsummaryrefslogtreecommitdiff
path: root/lume/src/static/css
diff options
context:
space:
mode:
authorXe Iaso <me@christine.website>2023-09-30 10:36:37 -0400
committerGitHub <noreply@github.com>2023-09-30 10:36:37 -0400
commitac6a3df0d18cc73524c0096d954a57d24cad5669 (patch)
tree81474177d730440657f490ae29892d62392251ea /lume/src/static/css
parentcbdea8ba3fca9a663778af71f8df5965aeb6c090 (diff)
downloadxesite-ac6a3df0d18cc73524c0096d954a57d24cad5669.tar.xz
xesite-ac6a3df0d18cc73524c0096d954a57d24cad5669.zip
Xesite V4 (#723)
* scripts/ditherify: fix quoting Signed-off-by: Xe Iaso <me@xeiaso.net> * clean up some old files Signed-off-by: Xe Iaso <me@xeiaso.net> * import site into lume Signed-off-by: Xe Iaso <me@xeiaso.net> * initial go code Signed-off-by: Xe Iaso <me@xeiaso.net> * move vods index to top level Signed-off-by: Xe Iaso <me@xeiaso.net> * remove the ads Signed-off-by: Xe Iaso <me@xeiaso.net> * internal/lume: metrics Signed-off-by: Xe Iaso <me@xeiaso.net> * delete old code Signed-off-by: Xe Iaso <me@xeiaso.net> * load config into memory Signed-off-by: Xe Iaso <me@xeiaso.net> * autogenerate data from dhall config Signed-off-by: Xe Iaso <me@xeiaso.net> * various cleanups, import clackset logic Signed-off-by: Xe Iaso <me@xeiaso.net> * Update signalboost.dhall (#722) Added myself, and also fixed someone’s typo * Add Connor Edwards to signal boost (#721) * add cache headers Signed-off-by: Xe Iaso <me@xeiaso.net> * move command to xesite folder Signed-off-by: Xe Iaso <me@xeiaso.net> * xesite: listen for GitHub webhook push events Signed-off-by: Xe Iaso <me@xeiaso.net> * xesite: 5 minute timeout for rebuilding the site Signed-off-by: Xe Iaso <me@xeiaso.net> * xesite: add rebuild metrics Signed-off-by: Xe Iaso <me@xeiaso.net> * xesite: update default variables Signed-off-by: Xe Iaso <me@xeiaso.net> * don't commit binaries oops lol Signed-off-by: Xe Iaso <me@xeiaso.net> * lume: make search have a light background Signed-off-by: Xe Iaso <me@xeiaso.net> * add a notfound page Signed-off-by: Xe Iaso <me@xeiaso.net> * fetch info from patreon API Signed-off-by: Xe Iaso <me@xeiaso.net> * create contact page Signed-off-by: Xe Iaso <me@xeiaso.net> * Toot embedding Signed-off-by: Xe Iaso <me@xeiaso.net> * attempt a docker image Signed-off-by: Xe Iaso <me@xeiaso.net> * lume: fix deno lock Signed-off-by: Xe Iaso <me@xeiaso.net> * add gokrazy post Signed-off-by: Xe Iaso <me@xeiaso.net> * cmd/xesite: go up before trying to connect to the saas proxy Signed-off-by: Xe Iaso <me@xeiaso.net> * blog: add Sine post/demo Signed-off-by: Xe Iaso <me@xeiaso.net> --------- Signed-off-by: Xe Iaso <me@xeiaso.net> Co-authored-by: bri <284789+b-@users.noreply.github.com> Co-authored-by: Connor Edwards <38229097+cedws@users.noreply.github.com>
Diffstat (limited to 'lume/src/static/css')
-rw-r--r--lume/src/static/css/artemis.css125
-rw-r--r--lume/src/static/css/gruvbox-dark.css255
-rw-r--r--lume/src/static/css/hack.css767
-rw-r--r--lume/src/static/css/iosevka/.gitignore2
-rw-r--r--lume/src/static/css/no-fun-allowed.user.css10
-rw-r--r--lume/src/static/css/shim.css177
-rw-r--r--lume/src/static/css/snow.css31
7 files changed, 1367 insertions, 0 deletions
diff --git a/lume/src/static/css/artemis.css b/lume/src/static/css/artemis.css
new file mode 100644
index 0000000..515f5bd
--- /dev/null
+++ b/lume/src/static/css/artemis.css
@@ -0,0 +1,125 @@
+.artemis {
+ font-family: sans-serif;
+ line-height: 1.6;
+ font-size: 18px;
+ color: #fbf5ef;
+ background-color: #272744;
+ margin: 1em auto;
+ max-width: 750px;
+ padding: 0 0.55em
+}
+
+.artemis h1,h2,h3 {
+ line-height: 1.2
+}
+
+.artemis h1 {
+ margin-top: 1em;
+ margin-bottom: 0.34em
+}
+
+.artemis h2 {
+ margin-top: 1.25em;
+ margin-bottom: 0.41em
+}
+
+.artemis h3 {
+ margin-top: 1.5em;
+ margin-bottom: 0.5em
+}
+
+.artemis hr {
+ color: #494d7e;
+ background-color: #494d7e;
+ border: none;
+ height: 2px
+}
+
+.artemis a {
+ color: #f2d3ab
+}
+
+.artemis a:visited {
+ color: #f2d3ab
+}
+
+.artemis time {
+ font-weight: bold
+}
+
+.artemis table {
+ width: 100%;
+ outline: none;
+ border-spacing: 0px
+}
+
+.artemis th,td {
+ padding-left: 0.7em;
+ padding-right: 0.7em;
+ padding-top: 0.4em;
+ padding-bottom: 0.4em
+}
+
+.artemis table,th,td {
+ border: 1px solid #494d7e
+}
+
+.artemis code {
+ font-family: monospace
+}
+
+.artemis :not(pre) code {
+ background-color: #494d7e;
+ padding-left: 0.1em;
+ padding-right: 0.1em;
+ border-radius: 2px
+}
+
+.artemis img {
+ border: 0.1em solid #494d7e
+}
+
+.artemis video {
+ border: 0.1em solid #494d7e
+}
+
+.artemis img.right {
+ float: right;
+ margin-left: 1em
+}
+
+.artemis img.left {
+ float: left;
+ margin-right: 0.5em
+}
+
+.artemis img.full {
+ width: 100%;
+ height: auto
+}
+
+.artemis img.half {
+ width: 50%;
+ height: auto
+}
+
+.artemis img.emoji {
+ width: auto;
+ height: 0.75em;
+ border: none
+}
+
+.artemis pre {
+ font-family: monospace;
+ line-height: 1.45;
+ overflow-x: auto;
+ background-color: #494d7e;
+ padding: 0.2em;
+ border-radius: 2px
+}
+
+.artemis pre code {
+ font-size: 0.8em;
+ padding: 0.2em;
+ display: block
+}
diff --git a/lume/src/static/css/gruvbox-dark.css b/lume/src/static/css/gruvbox-dark.css
new file mode 100644
index 0000000..a902e5d
--- /dev/null
+++ b/lume/src/static/css/gruvbox-dark.css
@@ -0,0 +1,255 @@
+.gruvbox-dark {
+ background-color: #1d2021;
+ color: #f9f5d7
+}
+
+.gruvbox-dark h1,
+.gruvbox-dark h2,
+.gruvbox-dark h3,
+.gruvbox-dark h4,
+.gruvbox-dark h5,
+.gruvbox-dark h6 {
+ color: #CDCD23
+}
+
+.gruvbox-dark h1 a,
+.gruvbox-dark h2 a,
+.gruvbox-dark h3 a,
+.gruvbox-dark h4 a,
+.gruvbox-dark h5 a,
+.gruvbox-dark h6 a {
+ color: #d79921;
+ border-bottom-color: #d79921
+}
+
+.gruvbox-dark h1 a:hover,
+.gruvbox-dark h2 a:hover,
+.gruvbox-dark h3 a:hover,
+.gruvbox-dark h4 a:hover,
+.gruvbox-dark h5 a:hover,
+.gruvbox-dark h6 a:hover {
+ background-color: #d79921;
+ color: #fbf1c7
+}
+
+.gruvbox-dark pre {
+ background-color: #1d2021;
+ border: none
+}
+
+.gruvbox-dark pre code {
+ color: #689d6a
+}
+
+.gruvbox-dark .progress-bar-filled:after,
+.gruvbox-dark .progress-bar-filled:before,
+.gruvbox-dark strong {
+ color: #98971a
+}
+
+.gruvbox-dark .progress-bar-filled {
+ background-color: #98971a
+}
+
+.gruvbox-dark table {
+ color: #fdf4c1
+}
+
+.gruvbox-dark table td,
+.gruvbox-dark table th {
+ border-color: #b0bec5
+}
+
+.gruvbox-dark table tbody td:first-child {
+ font-weight: bold;
+}
+
+.gruvbox-dark .form-control,
+.gruvbox-dark .form-group label {
+ color: #fdf4c1;
+ border-color: #98971a
+}
+
+.gruvbox-dark .form-group.form-textarea label:after {
+ background-color: #282828
+}
+
+.gruvbox-dark .form-control:focus {
+ border-color: #bdae93;
+ color: #bdae93
+}
+
+.gruvbox-dark textarea.form-control {
+ color: #fdf4c1
+}
+
+.gruvbox-dark .card {
+ border-color: #98971a
+}
+
+.gruvbox-dark .card .card-header {
+ background-color: transparent;
+ color: #fdf4c1;
+ border-bottom: 1px solid #98971a
+}
+
+.gruvbox-dark .btn.btn-ghost.btn-default {
+ border-color: #607d8b;
+ color: #607d8b
+}
+
+.gruvbox-dark .btn.btn-ghost.btn-default:focus,
+.gruvbox-dark .btn.btn-ghost.btn-default:hover {
+ z-index: 1;
+ border-color: #ebdbb2;
+ color: #ebdbb2
+}
+
+.gruvbox-dark .btn.btn-ghost.btn-primary:focus,
+.gruvbox-dark .btn.btn-ghost.btn-primary:hover {
+ border-color: #689d6a;
+ color: #689d6a
+}
+
+.gruvbox-dark .btn.btn-ghost.btn-success:focus,
+.gruvbox-dark .btn.btn-ghost.btn-success:hover {
+ border-color: #98971a;
+ color: #98971a
+}
+
+.gruvbox-dark .btn.btn-ghost.btn-info:focus,
+.gruvbox-dark .btn.btn-ghost.btn-info:hover {
+ border-color: #458588;
+ color: #458588
+}
+
+.gruvbox-dark .btn.btn-ghost.btn-error:focus,
+.gruvbox-dark .btn.btn-ghost.btn-error:hover {
+ border-color: #cc241d;
+ color: #cc241d
+}
+
+.gruvbox-dark .btn.btn-ghost.btn-warning:focus,
+.gruvbox-dark .btn.btn-ghost.btn-warning:hover {
+ border-color: #d79931;
+ color: #d79931
+}
+
+.gruvbox-dark .avatarholder,
+.gruvbox-dark .placeholder {
+ background-color: transparent;
+ border-color: #3c3836
+}
+
+.gruvbox-dark .menu .menu-item {
+ color: #fdf4c1;
+ border-color: #98971a
+}
+
+.gruvbox-dark .menu .menu-item.active,
+.gruvbox-dark .menu .menu-item:hover {
+ color: #fdf4c1;
+ border-color: #fdf4c1
+}
+
+.gruvbox-dark a:visited {
+ color: #C1B7A9;
+ border-color: #a89984;
+}
+
+.gruvbox-dark a:visited:hover {
+ color: #fdf4c1;
+ background-color: #282828;
+}
+
+@media (prefers-color-scheme: light) {
+ .gruvbox-dark {
+ background-color: #f9f5d7;
+ color: #1d2021;
+ }
+ .gruvbox-dark h1,
+ .gruvbox-dark h2,
+ .gruvbox-dark h3,
+ .gruvbox-dark h4,
+ .gruvbox-dark h5,
+ .gruvbox-dark h6 {
+ color: #4F4F0D
+ }
+ .gruvbox-dark h1 a:hover,
+ .gruvbox-dark h2 a:hover,
+ .gruvbox-dark h3 a:hover,
+ .gruvbox-dark h4 a:hover,
+ .gruvbox-dark h5 a:hover,
+ .gruvbox-dark h6 a:hover {
+ background-color: #d79921;
+ color: #282828;
+ }
+ .gruvbox-dark pre {
+ background-color: #f9f5d7;
+ padding: 0;
+ border: none;
+ }
+ .gruvbox-dark a {
+ color: #B80050;
+ border-color: #B80050;
+ }
+ .gruvbox-dark a:hover {
+ color: #f9f5d7;
+ background-color: #9E0045;
+ border-color: #9E0045;
+ }
+ .gruvbox-dark a:visited {
+ color: #53493C;
+ border-color: #53493C;
+ }
+ .gruvbox-dark a:visited:hover {
+ color: #fdf4c1;
+ background-color: #282828;
+ }
+ .gruvbox-dark table {
+ color: #1d2021;
+ }
+ .gruvbox-dark .form-control,
+ .gruvbox-dark .form-group label {
+ color: #1d2021;
+ border-color: #98971a
+ }
+ .gruvbox-dark .form-group.form-textarea label:after {
+ background-color: #3c3836;
+ }
+ .gruvbox-dark .form-control:focus {
+ border-color: #665c54;
+ color: #665c54;
+ }
+ .gruvbox-dark textarea.form-control {
+ color: #282828;
+ }
+ .gruvbox-dark .card .card-header {
+ background-color: transparent;
+ color: #282828;
+ border-bottom: 1px solid #98971a
+ }
+ .gruvbox-dark .btn.btn-ghost.btn-default:focus,
+ .gruvbox-dark .btn.btn-ghost.btn-default:hover {
+ z-index: 1;
+ border-color: #3c3836;
+ color: #3c3836;
+ }
+ .gruvbox-dark .menu .menu-item {
+ color: #282828;
+ border-color: #98971a
+ }
+ .gruvbox-dark .menu .menu-item.active,
+ .gruvbox-dark .menu .menu-item:hover {
+ color: #282828;
+ border-color: #282828;
+ }
+ .gruvbox-dark a:visited {
+ color: #4D4442;
+ border-color: #4D4442;
+ }
+ .gruvbox-dark a:visited:hover {
+ color: #3c3836;
+ background-color: #bdae93;
+ }
+}
diff --git a/lume/src/static/css/hack.css b/lume/src/static/css/hack.css
new file mode 100644
index 0000000..c3573e2
--- /dev/null
+++ b/lume/src/static/css/hack.css
@@ -0,0 +1,767 @@
+@font-face {
+ font-family: "Iosevka Etoile Iaso";
+ font-weight: 100 900;
+ src: local("Iosevka Etoile Iaso")
+ , url("iosevka/iosevka-etoile-regular.woff2") format("woff2")
+ , url("iosevka/iosevka-etoile-italic.woff2") format("woff2");
+}
+
+@font-face {
+ font-family: "Iosevka Aile Iaso";
+ font-weight: 100 900;
+ src: local("Iosevka Aile Iaso")
+ , url("iosevka/iosevka-aile-regular.woff2") format("woff2")
+ , url("iosevka/iosevka-aile-italic.woff2") format("woff2");
+}
+
+@font-face {
+ font-family: "Iosevka Curly Iaso";
+ font-weight: 100 900;
+ src: local("Iosevka Curly Iaso")
+ , url("iosevka/iosevka-curly-regular.woff2") format("woff2");
+}
+
+html {
+ font-size: 16px;
+ -webkit-text-size-adjust: none;
+ text-size-adjust: none;
+}
+body {
+ font-size: 1rem;
+ line-height: 1.75rem;
+ margin: 0;
+ font-family: "Iosevka Aile Iaso", Menlo, monospace;
+ font-weight: 500;
+ word-wrap: break-word;
+}
+::selection {
+ background: #d3869b;
+}
+fieldset {
+ border: none;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ background-color: #fff;
+ border: 1px solid #ccc;
+ overflow: auto;
+}
+code[class*="language-"],
+pre[class*="language-"],
+pre code {
+ font-weight: 100;
+ text-shadow: none;
+ margin: 1.75rem 0;
+ font-size: 1.5rem;
+ font-family: "Iosevka Curly Iaso", Menlo, monospace;
+}
+code {
+ font-family: "Iosevka Curly Iaso", Menlo, monospace;
+}
+iframe {
+ max-width: 100%;
+}
+a {
+ cursor: pointer;
+ color: #FFA8CE;
+ text-decoration: none;
+ border-bottom: 1px solid;
+ border-color: #FFA8CE;
+}
+a:hover {
+ background-color: #B3004D;
+ color: #fff;
+}
+.grid {
+ display: -ms-flexbox;
+ display: flex;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
+}
+.grid.\-top {
+ -ms-flex-align: start;
+ align-items: flex-start;
+}
+.grid.\-middle {
+ -ms-flex-align: center;
+ align-items: center;
+}
+.grid.\-bottom {
+ -ms-flex-align: end;
+ align-items: flex-end;
+}
+.grid.\-stretch {
+ -ms-flex-align: stretch;
+ align-items: stretch;
+}
+.grid.\-baseline {
+ -ms-flex-align: baseline;
+ align-items: baseline;
+}
+.grid.\-left {
+ -ms-flex-pack: start;
+ justify-content: flex-start;
+}
+.grid.\-center {
+ -ms-flex-pack: center;
+ justify-content: center;
+}
+.grid.\-right {
+ -ms-flex-pack: end;
+ justify-content: flex-end;
+}
+.grid.\-between {
+ -ms-flex-pack: justify;
+ justify-content: space-between;
+}
+.grid.\-around {
+ -ms-flex-pack: distribute;
+ justify-content: space-around;
+}
+.cell {
+ -ms-flex: 1;
+ flex: 1;
+ box-sizing: border-box;
+}
+@media screen and (min-width: 768px) {
+ .cell.\-1of12 {
+ -ms-flex: 0 0 8.33333%;
+ flex: 0 0 8.33333%;
+ }
+ .cell.\-2of12 {
+ -ms-flex: 0 0 16.66667%;
+ flex: 0 0 16.66667%;
+ }
+ .cell.\-3of12 {
+ -ms-flex: 0 0 25%;
+ flex: 0 0 25%;
+ }
+ .cell.\-4of12 {
+ -ms-flex: 0 0 33.33333%;
+ flex: 0 0 33.33333%;
+ }
+ .cell.\-5of12 {
+ -ms-flex: 0 0 41.66667%;
+ flex: 0 0 41.66667%;
+ }
+ .cell.\-6of12 {
+ -ms-flex: 0 0 50%;
+ flex: 0 0 50%;
+ }
+ .cell.\-7of12 {
+ -ms-flex: 0 0 58.33333%;
+ flex: 0 0 58.33333%;
+ }
+ .cell.\-8of12 {
+ -ms-flex: 0 0 66.66667%;
+ flex: 0 0 66.66667%;
+ }
+ .cell.\-9of12 {
+ -ms-flex: 0 0 75%;
+ flex: 0 0 75%;
+ }
+ .cell.\-10of12 {
+ -ms-flex: 0 0 83.33333%;
+ flex: 0 0 83.33333%;
+ }
+ .cell.\-11of12 {
+ -ms-flex: 0 0 91.66667%;
+ flex: 0 0 91.66667%;
+ }
+}
+@media screen and (max-width: 768px) {
+ .grid {
+ -ms-flex-direction: column;
+ flex-direction: column;
+ }
+ .cell {
+ -ms-flex: 0 0 auto;
+ flex: 0 0 auto;
+ }
+}
+.hack p,
+.hack .conversation-chat,
+.hack blockquote,
+.hack strong {
+ font-size: 1rem;
+ font-style: normal;
+ font-family: "Iosevka Aile Iaso", Menlo, monospace;
+}
+.hack blockquote,
+.hack code,
+.hack em,
+.hack strong {
+ font-size: 1rem;
+ line-height: 20px;
+}
+.hack blockquote,
+.hack code,
+.hack footer,
+.hack h1,
+.hack h2,
+.hack h3,
+.hack h4,
+.hack h5,
+.hack h6,
+.hack header,
+.hack li,
+.hack ol,
+.hack p,
+.hack section,
+.hack ul {
+ float: none;
+ margin: 0;
+ padding: 0;
+}
+.hack blockquote,
+.hack ol,
+.hack p,
+.hack ul {
+ margin-top: 20px;
+ margin-bottom: 20px;
+}
+.hack h2,
+.hack h3,
+.hack h4,
+.hack h5,
+.hack h6 {
+ position: relative;
+ margin-bottom: 1.75rem;
+}
+.hack h2:before,
+.hack h3:before,
+.hack h4:before,
+.hack h5:before,
+.hack h6:before {
+ display: inline;
+}
+.hack li {
+ position: relative;
+ display: block;
+ padding-left: 20px;
+}
+.hack li:after {
+ position: absolute;
+ top: 0;
+ left: 0;
+}
+.hack ul > li:after {
+ content: "-";
+}
+.hack ol {
+ counter-reset: a;
+}
+.hack ol > li:after {
+ content: counter(a) ".";
+ counter-increment: a;
+}
+.hack blockquote {
+ position: relative;
+ padding-left: 17px;
+ padding-left: 2ch;
+ overflow: hidden;
+}
+.hack blockquote:after {
+ content: ">\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>";
+ white-space: pre;
+ position: absolute;
+ top: 0;
+ left: 0;
+ line-height: 20px;
+}
+.hack pre code:after,
+.hack pre code:before {
+ display: none;
+}
+.hack code {
+ font-weight: 700;
+}
+.hack hr {
+ position: relative;
+ height: 20px;
+ overflow: hidden;
+ border: 0;
+ margin: 20px 0;
+}
+.hack hr:after {
+ content: "---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------";
+ position: absolute;
+ top: 0;
+ left: 0;
+ line-height: 20px;
+ width: 100%;
+ word-wrap: break-word;
+}
+@-moz-document url-prefix() {
+ .hack h1 {
+ display: block;
+ }
+}
+.hack-ones ol > li:after {
+ content: "1.";
+}
+p {
+ margin: 0 0 1.75rem;
+}
+.container {
+ max-width: 60rem;
+}
+.container,
+.container-fluid {
+ margin: 1em auto;
+ padding: 0 1rem;
+}
+.inner {
+ padding: 1rem;
+}
+.inner2x {
+ padding: 2rem;
+}
+.pull-left {
+ float: left;
+}
+.pull-right {
+ float: right;
+}
+.progress-bar {
+ height: 8px;
+ opacity: 0.8;
+ background-color: #ccc;
+ margin-top: 12px;
+}
+.progress-bar.progress-bar-show-percent {
+ margin-top: 38px;
+}
+.progress-bar-filled {
+ background-color: gray;
+ height: 100%;
+ transition: width 0.3s ease;
+ position: relative;
+ width: 0;
+}
+.progress-bar-filled:before {
+ content: "";
+ border: 6px solid transparent;
+ border-top-color: gray;
+ position: absolute;
+ top: -12px;
+ right: -6px;
+}
+.progress-bar-filled:after {
+ color: gray;
+ content: attr(data-filled);
+ display: block;
+ font-size: 12px;
+ white-space: nowrap;
+ position: absolute;
+ border: 6px solid transparent;
+ top: -38px;
+ right: 0;
+ -ms-transform: translateX(50%);
+ transform: translateX(50%);
+}
+table {
+ width: 100%;
+ border-collapse: collapse;
+ margin: 1.75rem 0;
+ color: #778087;
+}
+table td,
+table th {
+ vertical-align: top;
+ border: 1px solid #ccc;
+ line-height: 15px;
+ padding: 10px;
+}
+table tbody td:first-child {
+ font-weight: 700;
+}
+.form {
+ width: 30rem;
+}
+.form-group {
+ margin-bottom: 1.75rem;
+ overflow: auto;
+}
+.form-group label {
+ border-bottom: 2px solid #ccc;
+ color: #333;
+ width: 10rem;
+ display: inline-block;
+ height: 38px;
+ line-height: 38px;
+ padding: 0;
+ float: left;
+ position: relative;
+}
+.form-group.form-success label {
+ color: #4caf50 !important;
+ border-color: #4caf50 !important;
+}
+.form-group.form-warning label {
+ color: #ff9800 !important;
+ border-color: #ff9800 !important;
+}
+.form-group.form-error label {
+ color: #f44336 !important;
+ border-color: #f44336 !important;
+}
+.form-control {
+ outline: none;
+ border: none;
+ border-bottom: 2px solid #ccc;
+ padding: 0.5rem 0;
+ width: 20rem;
+ height: 38px;
+ background-color: transparent;
+}
+.form-control:focus {
+ border-color: #555;
+}
+.form-group.form-textarea label:after {
+ position: absolute;
+ content: "";
+ width: 2px;
+ background-color: #fff;
+ right: -2px;
+ top: 0;
+ bottom: 0;
+}
+textarea.form-control {
+ height: auto;
+ resize: none;
+ padding: 1rem 0;
+ border-bottom: 2px solid #ccc;
+ border-left: 2px solid #ccc;
+ padding: 0.5rem;
+}
+select.form-control {
+ border-radius: 0;
+ background-color: transparent;
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ -ms-appearance: none;
+}
+.help-block {
+ color: #999;
+ margin-top: 0.5rem;
+}
+.form-actions {
+ margin-bottom: 1.75rem;
+}
+.btn {
+ display: -ms-inline-flexbox;
+ display: inline-flex;
+ -ms-flex-align: center;
+ align-items: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+ cursor: pointer;
+ outline: none;
+ padding: 0.65rem 2rem;
+ font-size: 1rem;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ position: relative;
+ z-index: 1;
+}
+.btn:active {
+ box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.12);
+}
+.btn.btn-ghost {
+ border-color: #757575;
+ color: #757575;
+ background-color: transparent;
+}
+.btn.btn-ghost:focus,
+.btn.btn-ghost:hover {
+ border-color: #424242;
+ color: #424242;
+ z-index: 2;
+}
+.btn.btn-ghost:hover {
+ background-color: transparent;
+}
+.btn-block {
+ width: 100%;
+ display: -ms-flexbox;
+ display: flex;
+}
+.btn-default {
+ color: #fff;
+ background-color: #e0e0e0;
+ border: 1px solid #e0e0e0;
+ color: #333;
+}
+.btn-default:focus:not(.btn-ghost),
+.btn-default:hover {
+ background-color: #dcdcdc;
+ border-color: #dcdcdc;
+}
+.btn-success {
+ color: #fff;
+ background-color: #4caf50;
+ border: 1px solid #4caf50;
+}
+.btn-success:focus:not(.btn-ghost),
+.btn-success:hover {
+ background-color: #43a047;
+ border-color: #43a047;
+}
+.btn-success.btn-ghost {
+ border-color: #4caf50;
+ color: #4caf50;
+}
+.btn-success.btn-ghost:focus,
+.btn-success.btn-ghost:hover {
+ border-color: #388e3c;
+ color: #388e3c;
+ z-index: 2;
+}
+.btn-error {
+ color: #fff;
+ background-color: #f44336;
+ border: 1px solid #f44336;
+}
+.btn-error:focus:not(.btn-ghost),
+.btn-error:hover {
+ background-color: #e53935;
+ border-color: #e53935;
+}
+.btn-error.btn-ghost {
+ border-color: #f44336;
+ color: #f44336;
+}
+.btn-error.btn-ghost:focus,
+.btn-error.btn-ghost:hover {
+ border-color: #d32f2f;
+ color: #d32f2f;
+ z-index: 2;
+}
+.btn-warning {
+ color: #fff;
+ background-color: #ff9800;
+ border: 1px solid #ff9800;
+}
+.btn-warning:focus:not(.btn-ghost),
+.btn-warning:hover {
+ background-color: #fb8c00;
+ border-color: #fb8c00;
+}
+.btn-warning.btn-ghost {
+ border-color: #ff9800;
+ color: #ff9800;
+}
+.btn-warning.btn-ghost:focus,
+.btn-warning.btn-ghost:hover {
+ border-color: #f57c00;
+ color: #f57c00;
+ z-index: 2;
+}
+.btn-info {
+ color: #fff;
+ background-color: #00bcd4;
+ border: 1px solid #00bcd4;
+}
+.btn-info:focus:not(.btn-ghost),
+.btn-info:hover {
+ background-color: #00acc1;
+ border-color: #00acc1;
+}
+.btn-info.btn-ghost {
+ border-color: #00bcd4;
+ color: #00bcd4;
+}
+.btn-info.btn-ghost:focus,
+.btn-info.btn-ghost:hover {
+ border-color: #0097a7;
+ color: #0097a7;
+ z-index: 2;
+}
+.btn-primary {
+ color: #fff;
+ background-color: #2196f3;
+ border: 1px solid #2196f3;
+}
+.btn-primary:focus:not(.btn-ghost),
+.btn-primary:hover {
+ background-color: #1e88e5;
+ border-color: #1e88e5;
+}
+.btn-primary.btn-ghost {
+ border-color: #2196f3;
+ color: #2196f3;
+}
+.btn-primary.btn-ghost:focus,
+.btn-primary.btn-ghost:hover {
+ border-color: #1976d2;
+ color: #1976d2;
+ z-index: 2;
+}
+.btn-group {
+ overflow: auto;
+}
+.btn-group .btn {
+ float: left;
+}
+.btn-group .btn-ghost:not(:first-child) {
+ margin-left: -1px;
+}
+.card {
+ border: 1px solid #ccc;
+}
+.card .card-header {
+ color: #333;
+ text-align: center;
+ background-color: #ddd;
+ padding: 0.5rem 0;
+}
+.alert {
+ color: #ccc;
+ padding: 1rem;
+ border: 1px solid #ccc;
+ margin-bottom: 1.75rem;
+}
+.alert-success {
+ color: #4caf50;
+ border-color: #4caf50;
+}
+.alert-error {
+ color: #f44336;
+ border-color: #f44336;
+}
+.alert-info {
+ color: #00bcd4;
+ border-color: #00bcd4;
+}
+.alert-warning {
+ color: #ff9800;
+ border-color: #ff9800;
+}
+.media:not(:last-child) {
+ margin-bottom: 1.25rem;
+}
+.media-left {
+ padding-right: 1rem;
+}
+.media-left,
+.media-right {
+ display: table-cell;
+ vertical-align: top;
+}
+.media-right {
+ padding-left: 1rem;
+}
+.media-body {
+ display: table-cell;
+ vertical-align: top;
+}
+.media-heading {
+ font-size: 1.16667rem;
+ font-weight: 700;
+}
+.media-content {
+ margin-top: 0.3rem;
+ word-break: break-word;
+}
+.avatarholder,
+.placeholder {
+ background-color: #f0f0f0;
+ text-align: center;
+ color: #b9b9b9;
+ font-size: 1rem;
+ border: 1px solid #f0f0f0;
+}
+.avatarholder {
+ width: 48px;
+ height: 48px;
+ line-height: 46px;
+ font-size: 2rem;
+ background-size: cover;
+ background-position: 50%;
+ background-repeat: no-repeat;
+}
+.avatarholder.rounded {
+ border-radius: 33px;
+}
+.loading {
+ display: inline-block;
+ content: "&nbsp;";
+ height: 20px;
+ width: 20px;
+ margin: 0 0.5rem;
+ animation: a 0.6s infinite linear;
+ border: 2px solid #e91e63;
+ border-right-color: transparent;
+ border-radius: 50%;
+}
+.btn .loading {
+ margin-bottom: 0;
+ width: 14px;
+ height: 14px;
+}
+.btn div.loading {
+ float: left;
+}
+.alert .loading {
+ margin-bottom: -5px;
+}
+@keyframes a {
+ 0% {
+ transform: rotate(0deg);
+ }
+ to {
+ transform: rotate(1turn);
+ }
+}
+.menu {
+ width: 100%;
+}
+.menu .menu-item {
+ display: block;
+ color: #616161;
+ border-color: #616161;
+}
+.menu .menu-item.active,
+.menu .menu-item:hover {
+ color: #000;
+ border-color: #000;
+ background-color: transparent;
+}
+@media screen and (max-width: 768px) {
+ .form-group label {
+ display: block;
+ border-bottom: none;
+ width: 100%;
+ }
+ .form-group.form-textarea label:after {
+ display: none;
+ }
+ .form-control {
+ width: 100%;
+ }
+ textarea.form-control {
+ border-left: none;
+ padding: 0.5rem 0;
+ }
+ pre::-webkit-scrollbar {
+ height: 3px;
+ }
+}
+@media screen and (max-width: 480px) {
+ .form {
+ width: 100%;
+ }
+}
+
+.signalboost > .cell {
+ padding-right: 1rem;
+ padding-bottom: 2rem;
+}
+.signalboost > .cell > p {
+ margin-top: 0.5rem;
+ margin-bottom: 0.5rem;
+}
diff --git a/lume/src/static/css/iosevka/.gitignore b/lume/src/static/css/iosevka/.gitignore
new file mode 100644
index 0000000..3b38e03
--- /dev/null
+++ b/lume/src/static/css/iosevka/.gitignore
@@ -0,0 +1,2 @@
+*.ttf
+*.woff2
diff --git a/lume/src/static/css/no-fun-allowed.user.css b/lume/src/static/css/no-fun-allowed.user.css
new file mode 100644
index 0000000..8f9b584
--- /dev/null
+++ b/lume/src/static/css/no-fun-allowed.user.css
@@ -0,0 +1,10 @@
+/* ==UserStyle==
+@name No Fun Allowed
+@updateURL https://xeiaso.net/static/css/no-fun-allowed.user.css
+==/UserStyle== */
+
+@-moz-document domain("xeiaso.net") {
+ .xeblog-slides-fluff {
+ display: none !important;
+ }
+}
diff --git a/lume/src/static/css/shim.css b/lume/src/static/css/shim.css
new file mode 100644
index 0000000..e74997f
--- /dev/null
+++ b/lume/src/static/css/shim.css
@@ -0,0 +1,177 @@
+.main {
+ padding: 20px 10px;
+}
+
+.hack h1 {
+ padding-top: 0;
+}
+
+footer.footer {
+ border-top: 1px solid #ccc;
+ margin-top: 80px;
+ margin-top: 5rem;
+ padding: 48px 0;
+ padding: 3rem 0;
+}
+
+img {
+ max-width: 100%;
+}
+
+article blockquote {
+ max-width: 70ch;
+}
+
+article h1 {
+ font-weight: 900;
+}
+
+article small {
+ font-weight: 600;
+}
+
+.conversation {
+ margin-top: 0.25rem;
+ display: flex;
+ max-width: calc(65ch + 7rem);
+}
+.conversation-standalone {
+ flex: 1;
+ min-width: 6rem;
+ max-width: 6rem;
+ padding-right: 1rem;
+}
+
+.conversation-smol {
+ flex: 1;
+ min-width: 4.5rem;
+ max-width: 4.5rem;
+ padding-right: 1rem;
+}
+
+.conversation-chat {
+ background-color: #3c3836;
+ border-radius: 5px;
+ min-width: 0;
+ padding-top: 0.5rem;
+ padding-left: 0.75rem;
+ padding-right: 0.75rem;
+ padding-bottom: 0.125rem;
+}
+
+.conversation-chat:before {
+ content: "";