:root { /* FONTS */ --display-font: 'Manrope', sans-serif; --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; /* colours and shadows */ --bg1: #242434; --bg2: #46465E; --bg3: #8081BA; --translucent: #1A1A2666; --white: #FFFFFF; --shadow: 0px 0px 32px 0px #00000066; --shadow-light: 0px 0px 32px 0px #FFFFFF66; /* 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); } a, a:visited { text-decoration: none; color: var(--white); margin-bottom: 1px; outline: 0; } a:focus, a:hover { text-decoration: underline; color: var(--white); transition: var(--cubic-transition); } figcaption a:link { font-size: var(--small-size); color: var(--white); } hr { all: unset; display: block; height: 2px; background: var(--bg2); } summary:focus { animation-name: highlight; animation-duration: 500ms; animation-timing-function: ease-in-out; } /* BACKGROUND IMG GRADIENT */ .bg { background-color: var(--bg3); background-image: url(../images/bg.png); 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 { margin-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); font-family: var(--display-font); } /* NOTES */ .h-entry hr { margin-top: 5px; } .h-entry { margin-top: 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-family: var(--display-font); font-size: var(--medium-size); font-weight: bold; display: flex; align-items: center; align-self: center; } .note-info .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 { width: 1em !important; height: 1em !important; } .button-container button { all: unset; border: none !important; width: inherit !important; height: inherit !important; background-size: cover !important; margin-left: 5px; } .button-container button:hover, .button-container button:focus { border: none !important; background: var(--bg3) !important; } .favourite-button-container button { -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 button { -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 button { -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); font-family: var(--main-font); font-weight: 400; color: var(--white); } .section-title-details { font-family: var(--display-font); font-weight: 900; font-size: var(--main-size); 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); } .help-text { font-style: italic; font-size: var(--small-size); } .section-form-scope { margin-left: 5px; } .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 { font-family: var(--display-font); font-weight: bold; } button { font-size: var(--small-size) !important; font-family: var(--display-font) !important; font-weight: bold !important; background-image: linear-gradient(180deg, var(--bg2), transparent) !important; color: var(--white) !important; border: solid 2px var(--bg2) !important; border-radius: var(--unit-size); } textarea, input[type=text], input[type=password], input[type=email] { font-size: inherit !important; display: block; position: relative; color: var(--white); padding: 5px 10px 5px 10px; border: 2px solid var(--bg2); border-radius: var(--unit-size); background-color: var(--translucent); } textarea:hover, textarea:focus { border-color: var(--bg3) !important; } input[type=radio] { border: solid 0.25em var(--bg2) !important; background-color: var(--bg1) !important; } input:hover, input:focus { border-color: var(--bg3) !important; } input[type=radio]:checked { background-color: var(--white) !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; } input[type=checkbox]:hover, input[type=checkbox]:focus { background-color: var(--bg3) !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; } button:hover, button:focus, input:hover, input:focus { border-color: var(--bg3) !important; color: var(--white) !important; } :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; } /* file selector */ input[type=file] { font-family: var(--main-font) !important; font-weight: normal !important; background: linear-gradient(180deg, var(--bg2), transparent) !important; border: 2px solid var(--bg2); border-radius: var(--unit-size); } input[type=file]:focus, input[type=file]:hover { border: solid 2px var(--bg3) !important; } /* button part of file selector */ ::file-selector-button { font-family: var(--display-font) !important; font-weight: bold !important; color: var(--white) !important; } select { font-family: var(--display-font) !important; font-size: var(--small-size); font-weight: normal !important; background: linear-gradient(180deg, var(--bg2), transparent) !important; color: var(--white); border: 2px solid var(--bg2); border-radius: var(--unit-size); } select:hover, select:focus { border-color: var(--bg3); } /* 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 + * { animation-name: highlight; animation-duration: 500ms; 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 !important; width: 100%; background-color: var(--bg2); background-image: url(../images/bg.png); background-position: center; background-repeat: no-repeat; background-size: 100% 100%; } } .accessibility-menu { position: absolute; left: -1000px; top: -1000px; width: 1px; height: 1px; overflow: hidden; z-index: 5000; 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; } #anchor-menu:target + .accessibility-menu, .accessibility-menu:focus { top: var(--unit-size) !important; left: var(--unit-size) !important; width: 30% !important; height: min-content !important; } .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 0 10px var(--white), inset 10px 0 10px var(--bg3), inset -10px 0 10px var(--bg2), 0 0 10px var(--white), -10px 0 10px var(--bg3), 10px 0 10px var(--bg2); } 100% { box-shadow: initial; border-radius: var(--unit-size); } }