Files
pyrom/data/static/css/style.css

693 lines
12 KiB
CSS

@import url("/static/css/normalize.css");
@font-face {
font-family: "Cadman";
src: url("/static/fonts/Cadman_Roman.woff2");
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: "Cadman";
src: url("/static/fonts/Cadman_Bold.woff2");;
font-weight: bold;
font-style: normal;
}
@font-face {
font-family: "Cadman";
src: url("/static/fonts/Cadman_Italic.woff2");
font-weight: normal;
font-style: italic;
}
@font-face {
font-family: "Cadman";
src: url("/static/fonts/Cadman_BoldItalic.woff2");
font-weight: bold;
font-style: italic;
}
@font-face {
font-family: "Atkinson Hyperlegible Mono";
src: url("/static/fonts/AtkinsonHyperlegibleMono-VariableFont_wght.ttf");
font-weight: 125 950;
font-style: normal;
}
@font-face {
font-family: "Atkinson Hyperlegible Mono";
src: url("/static/fonts/AtkinsonHyperlegibleMono-Italic-VariableFont_wght.ttf");
font-weight: 125 950;
font-style: italic;
}
@font-face {
font-family: "site-title";
src: url("/static/fonts/ChicagoFLF.woff2");
}
:root {
--base-padding: 6px;
--border-radius: 3px;
--border-thickness: 1px;
--wrapper-side-margin: 36px;
/* colors */
--bg-color-primary: #c1ceb1;
--bg-color-secondary: #aeb8a1;
--bg-color-tertiary: #797976;
--bg-color-contrast: #bfb1ce;
--font-color-main: black;
--font-color-anti: white;
--font-color-link: #c11c1c;
--font-color-link-visited: hsl(from var(--font-color-link) h calc(s * 0.5) calc(l * 0.7));
--critical-color: #f73030;
--warn-color: #dfdf61;
--infobox-color: #97b3ec;
--button-color-primary: #b1cecd;
}
body {
--small-padding: calc(var(--base-padding) / 2);
--medium-padding: calc(var(--base-padding) * 2);
--big-padding: calc(var(--base-padding) * 3);
--huge-padding: calc(var(--base-padding) * 4);
--input-height: calc(var(--base-padding) * 6);
--code-bg-color: hsl(from var(--bg-color-primary) h calc(s * 0.2) calc(l * 0.2));
background-color: var(--bg-color-tertiary);
font-family: Cadman;
color: var(--font-color-main);
}
#wrapper {
margin: var(--big-padding) var(--wrapper-side-margin);
}
button, .linkbutton, input[type="submit"] {
--main-color: var(--button-color-primary);
--font-color: var(--font-color-main);
--border-color: hsl(from var(--main-color) h calc(s * 1.3) 25);
--hover-color: hsl(from var(--main-color) h s calc(l * 1.05));
--active-color: hsl(from var(--main-color) h s calc(l * 0.8));
--disabled-color: hsl(from var(--main-color) h calc(s * 0.5) l);
--bottom-color: hsl(from var(--main-color) h s calc(l * 0.7));
--top-color: hsl(from var(--main-color) h s calc(l * 1.2));
--top-color2: hsl(from var(--main-color) h s calc(l * 1.1));
--inset-color: #fff7;
/* position: relative; */
/* display: inline-block; */
padding: var(--small-padding) var(--big-padding);
margin: var(--base-padding) 0px;
border-radius: var(--border-radius);
border: solid var(--border-thickness) var(--border-color);
background: linear-gradient(var(--top-color) 0%, var(--top-color2) 25%, var(--main-color) 26%, var(--main-color) 50%, var(--bottom-color) 100%);
box-shadow: inset 0px 2px 5px 3px var(--inset-color);
color: var(--font-color);
text-decoration: none;
cursor: default;
line-height: normal;
display: inline flex;
align-items: center;
justify-content: center;
&.minimal {
margin: 0;
padding: 0;
}
&.critical {
--main-color: var(--critical-color);
--font-color: var(--font-color-anti);
}
&.warn {
--main-color: var(--warn-color);
}
&.rss {
--main-color: #fba668;
}
&.alt {
--main-color: var(--bg-color-contrast);
}
&:hover {
background: linear-gradient(var(--top-color) 0%, var(--top-color2) 25%, var(--hover-color) 26%, var(--hover-color) 80%, var(--bottom-color) 100%);
}
&:is(:active, .active) {
background: linear-gradient(var(--active-color) 0%, var(--active-color) 50%, var(--main-color) 100%);
}
&:disabled {
background: var(--disabled-color);
--inset-color: #fff3;
}
}
.tab-button {
border-bottom: none;
margin-bottom: 0;
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
&.active {
padding-top: calc(var(--base-padding) * 1.5);
}
}
.tab-bar {
display: flex;
gap: var(--base-padding);
&> * {
margin-top: auto;
position: relative;
bottom: -2px;
}
}
.tab-content {
&.hidden {
display: none;
}
}
.babycode-editor {
width: 100%;
height: 150px;
resize: vertical;
}
.post-edit-form {
display: flex;
flex-direction: column;
}
input[type="text"], input[type="password"], textarea, select {
--main-color: hsl(from var(--bg-color-primary) h s calc(l + 10));
--active-color: hsl(from var(--main-color) h s calc(l + 5));
--border-color: hsl(from var(--main-color) h calc(s * 1.3) 25);
background-color: var(--main-color);
border-radius: var(--border-radius);
border: solid var(--border-thickness) var(--border-color);
padding: var(--small-padding) var(--medium-padding);
margin: var(--base-padding) 0px;
&:focus {
background-color: var(--active-color);
}
}
h1 {
margin: 0;
}
:where(a:link) {
color: var(--font-color-link);
}
:where(a:visited) {
color: var(--font-color-link-visited);
}
a.site-title {
font-family: site-title;
font-size: 3em;
text-decoration: none;
color: var(--font-color-main);
}
#header {
background-color: var(--bg-color-primary);
display: flex;
justify-content: space-between;
align-items: baseline;
flex-wrap: wrap;
&>.site-title {
flex-basis: 100%;
}
&>ul {
margin-top: var(--base-padding);
margin-bottom: var(--base-padding);
}
}
.plank {
--main-color: var(--bg-color-primary);
--lighter-color: hsl(from var(--main-color) h s calc(l*1.1));
--darker-color: hsl(from var(--main-color) h s calc(l*0.9));
--border-color: hsl(from var(--main-color) h s 90);
--rotation: 180deg;
padding: var(--medium-padding) var(--huge-padding);
background: linear-gradient(var(--rotation), var(--lighter-color) 0%, var(--main-color) 30%, var(--main-color) 70%, var(--darker-color) 100%);
background-color: var(--main-color);
border: 2px groove var(--border-color);
&:not(.no-shadow) {
box-shadow: 0px 6px 3px 0px #0004;
}
&.minimal {
padding: var(--small-padding) var(--big-padding);
}
&:not(.even){
margin-bottom: var(--small-padding);
}
&.top {
border-top-left-radius: var(--border-radius);
border-top-right-radius: var(--border-radius);
&:not(.even){
margin-bottom: var(--medium-padding);
}
}
&.bottom {
border-bottom-left-radius: var(--border-radius);
border-bottom-right-radius: var(--border-radius);
&:not(.even){
margin-top: var(--medium-padding);
}
}
}
.info {
margin: 0;
font-size: 1.5em;
font-weight: bold;
}
form.horizontal {
display: flex;
gap: var(--base-padding);
align-items: center;
&.wrap {
flex-wrap: wrap;
}
&> fieldset {
display: flex;
gap: var(--base-padding);
align-items: center;
}
}
fieldset {
border-radius: var(--border-radius);
margin: 0;
}
ul.horizontal, ol.horizontal {
display: inline flex;
align-items: center;
margin: 0;
padding: 0;
gap: var(--base-padding);
& li {
list-style-type: none;
}
&.wrap {
flex-wrap: wrap;
}
&.bullet li::before {
content: '\2022';
}
& li > button, li > .linkbutton {
margin: 0;
}
}
.primary-bg {
--main-color: var(--bg-color-primary);
background-color: var(--bg-color-primary);
}
.secondary-bg {
--main-color: var(--bg-color-secondary);
--rotation: 0deg;
}
.tertiary-bg {
--main-color: var(--bg-color-tertiary);
--rotation: 0deg;
}
.contrast-bg {
--main-color: var(--bg-color-contrast);
}
.motd {
display: flex;
gap: var(--base-padding);
}
.contain-svg {
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
&.horizontal {
flex-direction: row;
gap: var(--base-padding);
}
}
.infobox {
--main-color: var(--infobox-color);
justify-content: start;
&.critical {
--main-color: hsl(from var(--critical-color) h 50% calc(l * 0.7));
color: var(--font-color-anti);
}
&.warn {
--main-color: hsl(from var(--warn-color) h 50% calc(l * 1.2));
}
}
.pager {
display: flex;
gap: var(--base-padding);
align-items: center;
}
.button-row {
display: flex;
gap: var(--base-padding);
align-items: center;
justify-items: center;
flex-wrap: wrap;
&> * {
aspect-ratio: 1;
min-height: 32px;
width: auto;
flex: 0 0 auto;
}
}
.title-container {
display: flex;
gap: var(--base-padding);
justify-content: start;
align-items: end;
flex-wrap: wrap;
}
.motd-content {
display: flex;
flex-direction: column;
width: 75%
}
footer {
display: flex;
justify-content: space-between;
align-items: center;
}
.topic-info {
display: flex;
flex-direction: column;
gap: var(--base-padding);
}
.settings-grid {
display: grid;
gap: var(--base-padding);
--grid-item-base-width: 600px;
--grid-item-max-width: calc((100% - var(--grid-item-base-width)) / 2);
grid-template-columns: repeat(auto-fill, minmax(max(var(--grid-item-base-width), var(--grid-item-max-width)), 1fr));
&> * {
height: fit-content;
width: 100%;
}
}
.thread-actions {
display: flex;
flex-wrap: wrap;
gap: var(--base-padding);
width: fit-content;
}
.actions-group {
display: flex;
flex-wrap: wrap;
}
.flex-last {
margin-left: auto;
}
.flex-grow {
flex-grow: 1;
}
.post {
padding: var(--base-padding);
display: grid;
grid-template-columns: min(230px, 20vw) 1fr;
}
.userpage-usercard {
display: grid;
grid-template-columns: min(300px, 30vw) 1fr;
}
.usercard-inner {
display: flex;
flex-direction: column;
align-items: center;
top: var(--big-padding);
position: sticky;
gap: var(--base-padding);
}
.avatar {
max-width: 100%;
max-height: 100%;
object-fit: contain;
}
.post-content {
display: grid;
grid-template-rows: min-content 1fr min-content;
&> * {
min-width: 0;
}
}
.badge-button {
min-width: 88px;
min-height: 31px;
max-width: 88px;
max-height: 31px;
}
.badges-container {
display: flex;
flex-wrap: wrap;
gap: var(--small-padding);
justify-content: center;
align-items: center;
&.nocenter {
justify-content: start;
}
}
.usercard-rest {
display: flex;
flex-direction: column;
align-items: center;
gap: inherit;
}
.post-info {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
}
.user-stats {
display: flex;
flex-direction: column;
gap: var(--base-padding);
}
#new-post-toast {
position: fixed;
bottom: 80px;
right: 80px;
display: flex;
flex-direction: column;
gap: var(--big-padding);
&.hidden {
display: none;
}
}
.notification-buttons {
display: flex;
flex-wrap: wrap;
gap: var(--base-padding);
justify-content: center;
}
.babycode-editor-controls {
display: flex;
gap: var(--base-padding);
align-items: center;
flex-wrap: wrap;
}
/* babycode tags */
.inline-code {
background-color: var(--code-bg-color);
color: var(--font-color-anti);
padding: var(--base-padding);
border-radius: var(--border-radius);
}
.babycode-big {
font-size: 2em;
}
.babycode-small {
font-size: 0.75em;
}
.babycode-center {
text-align: center;
}
.babycode-right {
text-align: right;
}
.post-image {
max-height: 400px;
max-width: 400px;
width: auto;
height: auto;
object-fit: contain;
}
.code-block-container {
display: flex;
flex-direction: column;
min-width: 0;
&> button {
align-self: start;
}
}
code, kbd {
font-family: "Atkinson Hyperlegible Mono";
}
pre {
font-family: unset;
margin: 0;
margin-bottom: var(--base-padding);
}
pre code {
display: block;
background-color: var(--code-bg-color);
color: var(--font-color-anti);
padding: var(--base-padding);
overflow: scroll;
}
summary {
cursor: pointer;
}
.emoji {
max-width: 15px;
max-height: 15px;
}
@media (max-width: 768px) {
#wrapper {
margin-left: 0;
margin-right: 0;
}
.settings-grid {
--grid-item-base-width: 400px;
}
.mobile-fill-flex {
width: 100%;
}
.post, .userpage-usercard {
grid-template-columns: unset;
grid-template-rows: min-content 1fr;
}
.avatar {
max-width: 40%;
max-height: 40%;
}
.usercard-inner {
flex-direction: row;
}
.thread-title-counter {
display: flex;
flex-wrap: wrap;
gap: var(--base-padding);
}
.title-container {
justify-content: space-between;
}
#new-post-toast {
right: 0;
left: 0;
bottom: 0;
}
.post-image {
max-width: min(75vw, 400px);
max-height: 50vh;
}
}