730 lines
15 KiB
CSS
730 lines
15 KiB
CSS
html * {
|
|
scroll-behavior: smooth;
|
|
scroll-margin-top: 4rem;
|
|
}
|
|
|
|
*:focus:not(:active) {
|
|
border: 4px solid var(--bg3);
|
|
border-radius: var(--unit-size);
|
|
transition: border ease-in-out;
|
|
}
|
|
|
|
:root {
|
|
/* FONTS */
|
|
--main-font: 'Inter var', sans-serif;
|
|
|
|
/* UNITS
|
|
* unit size - every element should be a multiplier of this
|
|
* main size - used for headers and icons
|
|
* medium size - same as above, except that the element in question is contained in something else
|
|
* small size - used in common text, borders
|
|
*/
|
|
--unit-size: 0.5rem;
|
|
--main-size: 1.5rem;
|
|
--medium-size: 1.2rem;
|
|
--small-size: 1rem;
|
|
|
|
|
|
|
|
/* transitions and animations */
|
|
--cubic-transition: all 200ms cubic-bezier(0, 0.55, 0.45, 1);
|
|
--fade-in: fadeIn 200ms cubic-bezier(0, 0.55, 0.45, 1);
|
|
--fade-out: fadeOut 200ms cubic-bezier(0, 0.55, 0.45, 1);
|
|
}
|
|
|
|
@media (prefers-color-scheme: dark) {
|
|
:root {
|
|
/* colours and shadows */
|
|
--bg1: #242434;
|
|
--bg2: #46465E;
|
|
--bg3: #8081BA;
|
|
--bg-button: linear-gradient(180deg, var(--bg2), transparent) !important;
|
|
|
|
--translucent: #1A1A2666;
|
|
--white: #FFFFFF;
|
|
|
|
--shadow: 0px 0px 32px 0px #00000066;
|
|
--shadow-light: 0px 0px 32px 0px #FFFFFF66;
|
|
}
|
|
|
|
.bg {
|
|
background-image: url(../images/bg.png);
|
|
}
|
|
|
|
select {
|
|
background-image: url("../images/drop.png") !important;
|
|
}
|
|
}
|
|
|
|
@media (prefers-color-scheme: light) {
|
|
:root {
|
|
/* colours and shadows */
|
|
--bg1: #eceff4;
|
|
--bg2: #4c566a66;
|
|
--bg3: #2e3440;
|
|
--bg-button: #d8dee966 !important;
|
|
|
|
--translucent: #eceff466;
|
|
--white: #2e3440;
|
|
|
|
--shadow: 0px 0px 32px 0px #00000066;
|
|
--shadow-light: 0px 0px 32px 0px #FFFFFF66;
|
|
}
|
|
|
|
.bg {
|
|
background-image: url(../images/bg-light.png);
|
|
}
|
|
|
|
select {
|
|
background-image: url("../images/drop-light.png") !important;
|
|
}
|
|
}
|
|
|
|
|
|
a,
|
|
a:visited {
|
|
text-decoration: none;
|
|
color: var(--white);
|
|
}
|
|
|
|
a:hover {
|
|
text-decoration: underline;
|
|
color: var(--white);
|
|
}
|
|
|
|
figcaption a:link {
|
|
font-size: var(--small-size);
|
|
color: var(--white);
|
|
}
|
|
|
|
hr {
|
|
all: unset;
|
|
display: block;
|
|
height: 2px;
|
|
background: var(--bg2);
|
|
}
|
|
|
|
summary:focus,
|
|
summary:hover {
|
|
cursor: pointer !important;
|
|
color: var(--bg1);
|
|
padding-left: var(--unit-size);
|
|
padding-right: var(--unit-size);
|
|
|
|
background: var(--white);
|
|
border-radius: var(--unit-size);
|
|
|
|
transition: var(--cubic-transition);
|
|
}
|
|
|
|
summary:focus .icon-details-open,
|
|
summary:hover .icon-details-open {
|
|
fill: var(--bg1);
|
|
transition: var(--cubic-transition);
|
|
}
|
|
|
|
/* BACKGROUND IMG GRADIENT */
|
|
.bg {
|
|
background-color: var(--bg3);
|
|
background-position: center;
|
|
background-repeat: no-repeat;
|
|
background-size: 100% 100%;
|
|
}
|
|
|
|
.anchor-hidden {
|
|
display: none;
|
|
}
|
|
|
|
/* HEADER AND SIDEPANELS */
|
|
#header {
|
|
z-index: 1;
|
|
font-size: var(--main-size);
|
|
|
|
height: 3rem;
|
|
display: flex;
|
|
position: fixed;
|
|
top: 0;
|
|
background-color: var(--bg1);
|
|
|
|
width: 100%;
|
|
align-items: center;
|
|
padding: var(--unit-size);
|
|
|
|
box-shadow: var(--shadow);
|
|
}
|
|
|
|
#instance {
|
|
display: flex;
|
|
align-items: center;
|
|
align-self: center;
|
|
margin-left: auto;
|
|
margin-right: auto;
|
|
}
|
|
|
|
#instance h1 {
|
|
margin-left: 4px;
|
|
}
|
|
|
|
.icon {
|
|
fill: var(--white);
|
|
align-self: center;
|
|
}
|
|
|
|
/* CURRENT PAGE LINK */
|
|
.active {
|
|
font-weight: bold;
|
|
}
|
|
|
|
/* CONTAINS ALL ELEMENTS BESIDES HEADER */
|
|
.container {
|
|
position: relative;
|
|
top: 3rem;
|
|
margin-left: 20%;
|
|
margin-right: 20%;
|
|
|
|
padding: var(--unit-size) var(--unit-size) 0 var(--unit-size);
|
|
}
|
|
|
|
/* THE FOCUSED (middle) DIV */
|
|
.content {
|
|
display: flex;
|
|
flex-direction: column;
|
|
padding: var(--unit-size) var(--unit-size) 0 var(--unit-size);
|
|
|
|
width: 100%;
|
|
}
|
|
|
|
.markdown-blocks {
|
|
background-color: var(--translucent);
|
|
border-radius: 0 0 var(--unit-size) var(--unit-size);
|
|
border: solid 2px var(--bg2);
|
|
border-top: solid 2px var(--bg3);
|
|
padding: var(--unit-size);
|
|
}
|
|
|
|
.markdown-blocks ul {
|
|
margin-left: 1em;
|
|
list-style: disc;
|
|
}
|
|
|
|
.markdown-blocks ul li {
|
|
margin-bottom: 0.2em;
|
|
}
|
|
|
|
.doc-navigation {
|
|
background-color: var(--translucent);
|
|
border-radius: var(--unit-size) var(--unit-size) 0 0;
|
|
border: solid 2px var(--bg2);
|
|
border-bottom: none;
|
|
padding: var(--unit-size);
|
|
}
|
|
|
|
.doc-navigation ul {
|
|
display: flex;
|
|
justify-content: space-evenly;
|
|
font-size: var(--main-size);
|
|
}
|
|
|
|
/* NOTES */
|
|
#replyform {
|
|
padding: var(--unit-size);
|
|
margin-top: var(--unit-size);
|
|
background-color: var(--translucent);
|
|
border-radius: var(--unit-size);
|
|
display: flex;
|
|
flex-direction: column;
|
|
font-size: var(--small-size);
|
|
}
|
|
#replyform textarea {
|
|
width: 100%;
|
|
resize: vertical;
|
|
margin-top: var(--unit-size);
|
|
padding: var(--unit-size);
|
|
}
|
|
|
|
.h-entry {
|
|
margin-top: var(--unit-size);
|
|
}
|
|
.notes hr {
|
|
margin-top: 5px;
|
|
}
|
|
.h-entry a {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
.h-entry .embed header {
|
|
padding: var(--unit-size);
|
|
}
|
|
.h-entry .embed .p-summary {
|
|
padding: var(--unit-size);
|
|
}
|
|
.h-entry,
|
|
.note {
|
|
background-color: var(--translucent);
|
|
border-radius: var(--unit-size);
|
|
}
|
|
|
|
.h-entry .replies .h-entry {
|
|
background-color: unset;
|
|
padding: 0 var(--unit-size) var(--unit-size) 0;
|
|
margin-left: var(--medium-size);
|
|
}
|
|
|
|
.note-info {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
|
|
border: solid 2px var(--bg2);
|
|
border-bottom: unset;
|
|
border-radius: var(--unit-size) var(--unit-size) 0 0;
|
|
|
|
background-color: var(--translucent);
|
|
font-size: var(--medium-size);
|
|
padding: 5px 10px 5px 10px;
|
|
}
|
|
|
|
.note-author {
|
|
font-size: var(--medium-size);
|
|
font-weight: bold;
|
|
display: flex;
|
|
align-items: center;
|
|
align-self: center;
|
|
}
|
|
|
|
.note-author .avatar {
|
|
width: auto;
|
|
height: var(--medium-size);
|
|
border-radius: var(--unit-size);
|
|
margin-right: 4px;
|
|
}
|
|
|
|
/* TODO: icons */
|
|
.note-actions {
|
|
display: flex;
|
|
vertical-align: middle;
|
|
}
|
|
|
|
.button-container {
|
|
all: unset;
|
|
border: none !important;
|
|
width: 1em !important;
|
|
height: 1em !important;
|
|
background-size: cover !important;
|
|
margin-left: 5px;
|
|
text-indent: -9999em;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.button-container:hover,
|
|
.button-container:focus {
|
|
border: none !important;
|
|
background: var(--bg3) !important;
|
|
}
|
|
|
|
.favourite-button-container {
|
|
-webkit-mask-image: url("../icons/heart.svg") !important;
|
|
-o-mask-image: url("../icons/heart.svg") !important;
|
|
-moz-mask-image: url("../icons/heart.svg") !important;
|
|
mask-image: url("../icons/heart.svg") !important;
|
|
}
|
|
.reply-button-container {
|
|
-webkit-mask-image: url("../icons/reply.svg") !important;
|
|
-o-mask-image: url("../icons/reply.svg") !important;
|
|
-moz-mask-image: url("../icons/reply.svg") !important;
|
|
mask-image: url("../icons/reply.svg") !important;
|
|
}
|
|
.repeat-button-container {
|
|
-webkit-mask-image: url("../icons/repeat.svg") !important;
|
|
-o-mask-image: url("../icons/repeat.svg") !important;
|
|
-moz-mask-image: url("../icons/repeat.svg") !important;
|
|
mask-image: url("../icons/repeat.svg") !important;
|
|
}
|
|
|
|
.note-actions-unset {
|
|
background: var(--bg2) !important;
|
|
}
|
|
|
|
.note-actions-set {
|
|
background: var(--white) !important;
|
|
}
|
|
|
|
.note-content {
|
|
border: solid 2px var(--bg2);
|
|
border-top: unset;
|
|
border-radius: 0 0 var(--unit-size) var(--unit-size);
|
|
|
|
padding: var(--small-size);
|
|
}
|
|
|
|
.note-content p {
|
|
padding-left: var(--small-size);
|
|
padding-right: var(--small-size);
|
|
}
|
|
|
|
.note-attachments {
|
|
display: flex;
|
|
max-width: 100%;
|
|
}
|
|
|
|
.note-attachments > figure {
|
|
display: flex;
|
|
flex-direction: column;
|
|
margin: 0;
|
|
border-radius: var(--unit-size);
|
|
background-color: var(--translucent);
|
|
padding: var(--small-size);
|
|
}
|
|
|
|
.note-attachments > figure figcaption {
|
|
display: flex;
|
|
padding-top: var(--small-size);
|
|
}
|
|
|
|
.note-attachments > figure img,
|
|
.note-attachments > figure video {
|
|
width: 100%;
|
|
height: auto;
|
|
}
|
|
|
|
/* SECTIONS */
|
|
.section-widget {
|
|
display: flex;
|
|
flex-direction: column;
|
|
width: 100%;
|
|
|
|
background-color: var(--translucent);
|
|
border-radius: var(--unit-size);
|
|
border: solid 2px var(--bg2);
|
|
|
|
color: var(--white);
|
|
}
|
|
|
|
.section-title-details {
|
|
font-size: var(--main-size);
|
|
font-weight: 700;
|
|
|
|
border-radius: var(--unit-size);
|
|
padding: 5px 10px 5px 10px;
|
|
|
|
background-color: var(--translucent);
|
|
}
|
|
.section-title-details[open] svg {
|
|
transform: rotate(180deg);
|
|
animation: var(--fade-out)
|
|
}
|
|
|
|
/* SECTION DETAILS CLOSED */
|
|
.section-title-details:not([open]) svg {
|
|
transform: initial;
|
|
animation: var(--fade-in);
|
|
}
|
|
|
|
.section-title-summary {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
}
|
|
|
|
.section-form {
|
|
padding: var(--unit-size);
|
|
}
|
|
.form-group {
|
|
margin-bottom: var(--unit-size);
|
|
}
|
|
|
|
.help-text {
|
|
font-style: italic;
|
|
font-size: var(--small-size);
|
|
}
|
|
|
|
.section-form-options {
|
|
display: block !important;
|
|
margin-bottom: var(--unit-size);
|
|
}
|
|
|
|
.section-form-textarea {
|
|
border-radius: var(--unit-size);
|
|
background-color: var(--translucent);
|
|
color: var(--white);
|
|
|
|
width: 100%;
|
|
max-width: 100%;
|
|
height: calc(6 * var(--main-size));
|
|
|
|
border: 2px solid transparent;
|
|
margin-top: var(--unit-size);
|
|
margin-bottom: var(--unit-size);
|
|
padding: var(--unit-size);
|
|
resize: vertical;
|
|
}
|
|
|
|
/* BUTTONS AND INPUT SHENANIGANS */
|
|
label, button {
|
|
font-weight: bold !important;
|
|
}
|
|
|
|
select,
|
|
button,
|
|
textarea,
|
|
input {
|
|
font-size: inherit !important;
|
|
display: block;
|
|
position: relative;
|
|
color: var(--white);
|
|
padding: 2px 6px;
|
|
border: 2px solid var(--bg2) !important;
|
|
border-radius: var(--unit-size) !important;
|
|
background-color: var(--translucent);
|
|
}
|
|
button {
|
|
background: var(--bg-button);
|
|
padding: 5px 10px;
|
|
}
|
|
|
|
select {
|
|
-webkit-appearance: none !important;
|
|
-moz-appearance: none !important;
|
|
|
|
background-repeat: no-repeat;
|
|
background-size: 16px;
|
|
background-position: center right 5px;
|
|
|
|
color: var(--white) !important;
|
|
border: 2px solid var(--bg2);
|
|
border-radius: var(--unit-size);
|
|
}
|
|
|
|
input[type=radio] {
|
|
border: solid 0.25em var(--bg2) !important;
|
|
background-color: var(--bg1) !important;
|
|
}
|
|
|
|
input[type=checkbox] {
|
|
background-color: var(--bg2) !important;
|
|
background-size: cover;
|
|
margin-left: 5px;
|
|
|
|
-webkit-mask-image: url("../icons/check-off.svg") !important;
|
|
-o-mask-image: url("../icons/check-off.svg") !important;
|
|
-moz-mask-image: url("../icons/check-off.svg") !important;
|
|
mask-image: url("../icons/check-off.svg") !important;
|
|
}
|
|
|
|
/* DISABLED STATE TEXT COLOR */
|
|
:is(:disabled, :disabled:active)::file-selector-button,
|
|
button:is(:disabled, :disabled:active),
|
|
input:is([type=reset], [type=button], [type=submit]):is(:disabled, :disabled:active),
|
|
select:is(:disabled, :disabled:active) > button {
|
|
color: var(--white) !important;
|
|
}
|
|
|
|
/* HOVER AND FOCUS */
|
|
textarea:hover,
|
|
textarea:focus,
|
|
button:hover,
|
|
button:focus,
|
|
input:hover,
|
|
input:focus {
|
|
border: solid 2px var(--bg3) !important;
|
|
color: var(--white) !important;
|
|
}
|
|
select:hover,
|
|
select:focus {
|
|
border-color: var(--bg3) !important;
|
|
}
|
|
|
|
input[type=checkbox]:hover,
|
|
input[type=checkbox]:focus {
|
|
background-color: var(--bg3) !important;
|
|
}
|
|
|
|
input[type=radio]:checked {
|
|
background-color: var(--white) !important;
|
|
}
|
|
|
|
input[type=checkbox]:checked {
|
|
background-color: var(--bg3) !important;
|
|
-webkit-mask-image: url("../icons/check-on.svg") !important;
|
|
-o-mask-image: url("../icons/check-on.svg") !important;
|
|
-moz-mask-image: url("../icons/check-on.svg") !important;
|
|
mask-image: url("../icons/check-on.svg") !important;
|
|
}
|
|
|
|
/* file selector */
|
|
input[type=file] {
|
|
font-family: var(--main-font) !important;
|
|
font-weight: normal !important;
|
|
background: var(--bg-button);
|
|
border: 2px solid var(--bg2);
|
|
border-radius: var(--unit-size);
|
|
}
|
|
|
|
/* button part of file selector */
|
|
::file-selector-button {
|
|
font-family: var(--main-font) !important;
|
|
font-weight: bold !important;
|
|
color: var(--white) !important;
|
|
}
|
|
|
|
/* ACCESSIBILITY MENU */
|
|
#accessibility-menu {
|
|
display: block;
|
|
position: absolute;
|
|
z-index: 999;
|
|
|
|
top: -90%;
|
|
left: -90%;
|
|
|
|
width: 30%;
|
|
height: min-content;
|
|
|
|
background-color: var(--bg1);
|
|
padding: var(--unit-size);
|
|
|
|
border: solid 2px var(--bg3);
|
|
border-radius: var(--unit-size);
|
|
box-shadow: var(--shadow);
|
|
}
|
|
|
|
#accessibility-menu ul {
|
|
list-style-type: disc;
|
|
margin-left: var(--medium-size);
|
|
}
|
|
|
|
#accessibility-menu:focus-within:not(:active) {
|
|
top: var(--unit-size);
|
|
left: var(--unit-size);
|
|
}
|
|
|
|
.anchor-hidden {
|
|
width: 1px;
|
|
height: 1px;
|
|
overflow: hidden;
|
|
}
|
|
|
|
/* ANIMATIONS */
|
|
@keyframes fadeIn {
|
|
0% {
|
|
opacity: 0;
|
|
transform: translateY(-10px);
|
|
}
|
|
|
|
100% {
|
|
opacity: unset;
|
|
transform: none;
|
|
}
|
|
}
|
|
|
|
@keyframes fadeOut {
|
|
100% {
|
|
opacity: 0;
|
|
transform: translateY(-10px);
|
|
}
|
|
|
|
0% {
|
|
opacity: unset;
|
|
transform: none;
|
|
}
|
|
}
|
|
|
|
@keyframes highlight {
|
|
0% {
|
|
box-shadow: initial;
|
|
border-radius: var(--unit-size);
|
|
}
|
|
|
|
50% {
|
|
border-radius: var(--unit-size);
|
|
box-shadow: inset 0 20px 40px var(--white);
|
|
transition: box-shadow 0.3s ease-in-out;
|
|
}
|
|
|
|
100% {
|
|
box-shadow: initial;
|
|
border-radius: var(--unit-size);
|
|
}
|
|
}
|
|
|
|
/* MEDIA QUERIES */
|
|
/* sidepanels need to be shown by default on desktop, hidden on mobile */
|
|
.panel .panel-content {
|
|
display: flex;
|
|
flex-direction: column;
|
|
font-size: var(--small-size);
|
|
|
|
/* should remain in place for the user */
|
|
position: fixed;
|
|
top: 0;
|
|
|
|
/* should be bellow header */
|
|
margin-top: 3rem;
|
|
|
|
/* should occupy the entire vertical real estate */
|
|
height: calc(100% - 3rem);
|
|
|
|
padding: var(--unit-size);
|
|
}
|
|
|
|
@media (min-width: 1200px) {
|
|
#panel-left-icon,
|
|
#panel-right-icon {
|
|
display: none;
|
|
}
|
|
|
|
.panel .panel-content {
|
|
width: 100%;
|
|
max-width: 20%;
|
|
}
|
|
|
|
a[id|="anchor"]:target + .accessibility-target {
|
|
animation-name: highlight;
|
|
animation-duration: 600ms;
|
|
animation-timing-function: ease-in-out;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 1200px) {
|
|
/* content should occupy the entire width at this size */
|
|
.container {
|
|
margin-left: unset;
|
|
margin-right: unset;
|
|
}
|
|
|
|
.content {
|
|
max-width: 100%;
|
|
}
|
|
|
|
#panel-left-toggle:not(:checked) ~ .panel-content,
|
|
#panel-right-toggle:not(:checked) ~ .panel-content {
|
|
display: none;
|
|
}
|
|
|
|
#panel-left-toggle:checked ~ .panel-content,
|
|
#panel-right-toggle:checked ~ .panel-content,
|
|
a[id|="anchor"]:target ~ .panel-content {
|
|
display: flex;
|
|
|
|
width: 100%;
|
|
background-color: var(--bg2);
|
|
background-image: url(../images/bg.png);
|
|
background-position: center;
|
|
background-repeat: no-repeat;
|
|
background-size: 100% 100%;
|
|
z-index: auto;
|
|
}
|
|
|
|
@media (prefers-color-scheme: dark) {
|
|
#panel-left-toggle:checked ~ .panel-content,
|
|
#panel-right-toggle:checked ~ .panel-content,
|
|
a[id|="anchor"]:target ~ .panel-content {
|
|
background-image: url(../images/bg.png);
|
|
}
|
|
}
|
|
@media (prefers-color-scheme: light) {
|
|
#panel-left-toggle:checked ~ .panel-content,
|
|
#panel-right-toggle:checked ~ .panel-content,
|
|
a[id|="anchor"]:target ~ .panel-content {
|
|
background-image: url(../images/bg-light.png);
|
|
}
|
|
}
|
|
} |