upub/web/index.html

381 lines
7.4 KiB
HTML
Raw Normal View History

<!DOCTYPE html>
<html>
<head>
<title>upub</title>
<meta charset="utf-8">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="og:type" content="website" />
<meta property="og:title" content="upub">
<meta property="og:description" content="micro social network, federated" />
2024-05-27 06:54:57 +02:00
<meta property="og:url" content="https://upub.alemi.dev/web" />
<meta property="og:site_name" content="upub" />
<link rel="preload" href="https://cdn.alemi.dev/web/font/FiraCode-Regular.woff2" as="font" type="font/woff2" crossorigin="anonymous">
<link rel="preload" href="https://cdn.alemi.dev/web/font/FiraCode-Bold.woff2" as="font" type="font/woff2" crossorigin="anonymous">
<link crossorigin rel="stylesheet" href="https://cdn.alemi.dev/web/alemi.css">
<style>
2024-04-15 17:54:39 +02:00
:root {
--main-col-percentage: 75%;
2024-04-15 17:54:39 +02:00
}
@font-face {
font-family: 'Fira Code';
font-style: normal;
font-weight: 400;
font-display: swap;
2024-04-18 03:45:05 +02:00
src: url("https://cdn.alemi.dev/web/font/FiraCode-Regular.woff2") format("woff2"), url("https://cdn.alemi.dev/web/font/FiraCode-Regular.woff") format("woff");
}
@font-face {
font-family: 'Fira Code';
font-style: normal;
font-weight: 800;
font-display: swap;
2024-04-18 03:45:05 +02:00
src: url("https://cdn.alemi.dev/web/font/FiraCode-Bold.woff2") format("woff2"), url("https://cdn.alemi.dev/web/font/FiraCode-Bold.woff") format("woff");
}
* {
font-family: 'Fira Code', Menlo, DejaVu Sans Mono, Monaco, Consolas, Ubuntu Mono, monospace;
}
html {
overflow-y: scroll;
height: 100vh;
}
body {
margin: 0;
2024-04-17 05:39:45 +02:00
padding-bottom: 1.2em;
font-size: 11pt;
}
2024-05-02 12:47:48 +02:00
textarea {
font-size: 10pt;
2024-05-02 12:47:48 +02:00
}
nav {
z-index: 90;
top: 0;
position: sticky;
padding-top: .05em;
2024-04-17 05:39:45 +02:00
background-color: var(--background);
}
footer {
width: 100%;
position: fixed;
bottom: 0;
background-color: var(--background);
text-align: center;
padding-bottom: 0;
line-height: 1rem;
}
main {
margin: 0em 1em;
}
2024-04-22 15:37:43 +02:00
blockquote {
margin-top: .5em;
margin-bottom: .5em;
margin-left: 1.25em;
padding-left: .3em;
2024-04-22 15:37:43 +02:00
overflow-wrap: break-word;
hyphens: auto;
border-left: solid 3px var(--background-secondary);
2024-04-22 15:37:43 +02:00
}
article.tl {
color: var(--text);
border-left: solid 3px var(--accent);
margin-left: 1.25em;
margin-right: 1em;
margin-top: 0;
margin-bottom: 0;
word-wrap: break-word;
}
article p {
margin: 0 0 0 .5em;
}
b.displayname {
overflow-wrap: break-word;
}
table.align {
max-width: 100%;
}
2024-04-17 05:39:45 +02:00
span.footer {
padding: .1em;
font-size: .6em;
color: var(--secondary);
}
span.nowrap {
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
display: block;
}
2024-04-17 05:39:45 +02:00
hr.sep {
2024-05-20 07:53:07 +02:00
border: 1px solid rgba(var(--accent-rgb), 0.45);
}
2024-05-21 15:25:47 +02:00
div.sep-top {
border-top: 2px solid rgba(var(--accent-rgb), 0.45);
}
hr.sticky {
position: sticky;
z-index: 100;
margin-top: 0;
padding-top: 0;
2024-04-17 05:39:45 +02:00
margin-bottom: 0;
padding-bottom: 0;
top: 1.65rem;
}
div.sticky {
z-index: 100;
top: 2rem;
position: sticky;
2024-04-17 05:39:45 +02:00
background-color: var(--background);
}
div.border {
border: 1px dashed var(--accent);
}
span.border-button {
2024-06-06 21:47:23 +02:00
border: 1px solid var(--background-dim);
}
span.border-button:hover {
background-color: var(--background-dim);
}
2024-06-06 21:47:23 +02:00
div.inline {
display: inline;
}
@media screen and (max-width: 786px) {
div.sticky {
top: 1.75rem;
padding-top: .25rem;
}
}
2024-04-15 18:22:16 +02:00
a.upub-title {
2024-05-20 07:50:36 +02:00
color: var(--accent);
2024-04-15 18:22:16 +02:00
text-decoration: none;
}
a.upub-title:hover {
text-decoration: underline;
}
a.hover {
text-decoration: none;
}
a.hover:hover {
text-decoration: underline;
}
a.breadcrumb {
text-decoration: none;
color: var(--secondary);
}
a.breadcrumb:hover {
font-weight: bold;
2024-05-20 07:50:36 +02:00
color: var(--accent);
}
b.big {
font-size: 18pt;
}
div.banner {
margin-top: .3em;
outline: .3em solid rgba(var(--accent-rgb), 0.33);
}
div.overlap {
position: relative;
bottom: 3em;
2024-06-10 21:51:27 +02:00
margin-bottom: -3em;
}
2024-05-13 17:18:31 +02:00
img {
max-width: 100%;
}
img.avatar {
display: inline;
border-radius: 50%;
}
img.avatar-border {
background-color: var(--background);
2024-05-20 07:50:36 +02:00
border: .3em solid var(--accent);
}
img.inline {
height: .75em;
}
img.avatar-actor {
min-height: 2em;
max-height: 2em;
min-width: 2em;
max-width: 2em;
}
2024-04-29 02:42:59 +02:00
.box {
2024-05-20 07:50:36 +02:00
border: 3px solid var(--accent);
}
2024-04-29 02:42:59 +02:00
.cursor {
cursor: pointer;
}
video.attachment {
height: 10em;
}
img.attachment {
cursor: pointer;
2024-04-23 23:28:19 +02:00
height: 10em;
width: 100%;
2024-05-20 07:50:36 +02:00
border: 3px solid var(--accent);
padding: 5px;
2024-04-23 23:28:19 +02:00
object-fit: cover;
2024-05-12 01:20:55 +02:00
box-sizing: border-box;
}
img.expand,
video.expand {
height: unset;
max-height: 55vh;
2024-04-29 02:42:59 +02:00
max-width: 100%;
object-fit: contain;
}
div.tl-header {
background-color: rgba(var(--accent-rgb), 0.33);
2024-05-20 07:50:36 +02:00
color: var(--accent);
}
p.tiny-text {
line-height: .75em;
}
table.post-table {
border-collapse: collapse;
}
2024-04-17 05:39:45 +02:00
table p {
margin: .25em 1em;
}
2024-04-17 05:39:45 +02:00
tr.post-table,
td.post-table {
2024-05-20 07:50:36 +02:00
border: 1px dashed var(--accent);
padding: .5em;
}
td.top {
vertical-align: top;
}
td.bottom {
vertical-align: bottom;
}
2024-04-23 23:28:19 +02:00
details>summary::marker {
display: none;
}
details>summary {
list-style: none;
cursor: pointer;
}
details>summary:hover {
font-weight: bold;
}
code.cw {
display: block;
}
input[type=button]:hover,
input[type=submit].active {
background-color: var(--accent);
border-color: var(--accent);
color: var(--background);
cursor: pointer;
}
.ml-1-r {
margin-left: 1em;
}
.mr-1-r {
margin-right: 1em;
}
.ml-3-r {
margin-left: 3em;
}
.mr-3-r {
margin-right: 3em;
}
.depth-r {
margin-left: .5em;
}
.only-on-mobile {
display: none;
}
@media screen and (max-width: 786px) {
.depth-r {
margin-left: .125em;
}
.ml-1-l {
margin-left: 0;
}
.mr-1-r {
margin-right: 0;
}
.ml-3-r {
margin-left: 0;
}
.mr-3-r {
margin-right: 0;
}
.only-on-mobile {
display: inherit;
}
.hidden-on-mobile {
display: none;
}
div.col-side {
padding-right: .25em;
}
main {
margin: 0;
}
}
@media screen and (max-width: 400px) {
.hidden-on-tiny {
display: none;
}
}
span.emoji {
color: transparent;
text-shadow: 0 0 0 var(--secondary);
}
2024-04-30 02:09:23 +02:00
span.emoji-btn:hover {
color: unset;
text-shadow: unset;
}
2024-05-02 03:25:59 +02:00
div.context {
border-left: 1px solid var(--background-dim);
padding-left: 1px;
}
2024-05-22 23:54:00 +02:00
span.json-key {
color: var(--accent);
}
span.json-text {
color: var(--text);
}
2024-05-23 03:37:37 +02:00
pre.striped {
background: repeating-linear-gradient(
135deg,
var(--background-dim),
var(--background-dim) .9em,
var(--background) .9em,
var(--background) 1em
);
}
.spinner {
2024-05-22 23:54:00 +02:00
animation: spin 1s linear infinite;
}
2024-05-23 04:07:43 +02:00
span.dots {
&:after {
animation: dots 1.5s linear infinite;
display: inline-block;
2024-05-23 04:16:09 +02:00
content: "\00a0\00a0\00a0";
2024-05-23 04:07:43 +02:00
}
}
2024-05-22 23:54:00 +02:00
@keyframes spin {
0% { transform: rotate(0deg); }
2024-05-23 03:37:37 +02:00
100% { transform: rotate(360deg); }
2024-05-22 23:54:00 +02:00
}
2024-05-23 04:16:09 +02:00
/* \00a0 is unicode for "space", because otherwise it gets removed */
2024-05-23 04:07:43 +02:00
@keyframes dots {
2024-05-23 04:16:09 +02:00
0% { content: "\00a0\00a0\00a0"; }
25% { content: ".\00a0\00a0"; }
50% { content: "..\00a0"; }
2024-05-23 04:07:43 +02:00
75% { content: "..."; }
2024-05-23 04:16:09 +02:00
100% { content: "\00a0\00a0\00a0"; }
2024-05-23 04:07:43 +02:00
}
</style>
</head>
</head>
<body>
</body>
</html>