Files
tim 71f768bff2 Log out with a POST form.
The logout link put the CSRF token in the URL, which goes into logs and the browser history.
2026-09-26 15:27:51 +02:00

532 lines
10 KiB
CSS

@font-face {
font-family: 'Noto Sans';
font-style: normal;
font-weight: normal;
src: local('Noto Sans'), local('Noto Sans Regular'), url('fonts/NotoSans-Regular.ttf') format('truetype');
font-size-adjust: 1.1;
}
@font-face {
font-family: 'Noto Sans';
font-style: normal;
font-weight: bold;
src: local('Noto Sans Bold'), url('fonts/NotoSans-Bold.ttf') format('truetype');
font-size-adjust: 1.1;
}
@font-face {
font-family: 'Noto Sans';
font-style: italic;
font-weight: bold;
src: local('Noto Sans Bold Italic'), url('fonts/NotoSans-BoldItalic.ttf') format('truetype');
font-size-adjust: 1.1;
}
@font-face {
font-family: 'Noto Sans';
font-style: italic;
font-weight: normal;
src: local('Noto Sans Italic'), url('fonts/NotoSans-Italic.ttf') format('truetype');
font-size-adjust: 1.1;
}
@font-face {
font-family: 'Teen Bold';
font-style: normal;
font-weight: bold;
src: url('graphics/teenbold.ttf') format('truetype');
}
/* Rules that set display, such as "#main .counter", would otherwise show hidden elements */
[hidden] {
display: none !important;
}
body {
font-family: "Noto Sans", "Verdana", sans-serif;
font-size: 12pt;
max-width: 1000px;
margin: 5px auto;
}
#container {
display: flex;
flex-direction: row;
/* Create a white top, so the top #sidebar border-radius can be seen, while *
* the bottom of the container has a "reverse" radius */
background: linear-gradient(to bottom, #FFFFFF 0 20px, #006633 20px 100%);
margin: 0 10px;
}
#main {
background: #FFFFFF;
padding-bottom: 20px;
border-radius: 0 0 0 8px;
width: 100%;
}
#maintext {
margin-left: 25px;
margin-right: 10px;
min-height: 300px;
position: relative; /* needed by z-index */
z-index: 5; /* Place above absolutely-positioned sidebar in mobile, but below the slide-out nav link it contains */
}
footer#bottom {
margin: 0 10px;
background: #006633;
border-radius: 0 8px 8px 8px;
}
footer#bottom p {
clear: both;
font-size: 10.5pt;
color: #FFFFFF;
text-align: center;
padding: 5px;
margin: 0;
}
#sidebar {
background: #006633;
border-radius: 8px 8px 0 0;
max-width: 212px;
}
#sidebar .logo {
margin: 5px;
text-align: center;
font-weight: bold;
}
#sidebar .logo .mono {
font-family: monospace;
font-size: 11pt;
}
#sidebar .logo .fancy {
font-family: "Teen Bold", "Droid Sans", sans-serif;
font-weight: bold;
font-size: 50pt;
line-height: 0.6;
}
#sidebar .logo a {
color: #FFFFFF;
text-decoration: none;
}
#sidebar .mobile.menu-toggle {
display: none;
cursor: pointer;
}
#sidebar input.menu-toggle {
opacity: 0;
-webkit-touch-callout: none;
touch-callout: none;
-webkit-tap-highlight-color: transparent;
tap-highlight-color: transparent;
}
#sidebar .links {
margin: 5px;
border-radius: 5px;
font-size: 10.5pt;
}
#sidebar .links > ul,
#sidebar .links > .sideinput {
padding: 5px;
margin: 5px 0;
border-radius: 5px;
background: #FFFFFF;
color: #006633;
}
#sidebar .links ul {
list-style: none;
}
#sidebar .links ul li {
}
#sidebar .links ul li:before {
color: #006633;
content: '\2022';
margin-right: 5px;
}
/* The logout button looks like the links next to it */
#sidebar .links li form {
display: inline;
}
#sidebar .links li button {
padding: 0;
border: 0;
background: none;
font: inherit;
color: inherit;
cursor: pointer;
}
#sidebar .links li button:hover {
color: #FF0000;
text-decoration: underline;
}
#sidebar .links .sideinput {
padding: 1px;
padding: 0;
/*
text-align: right;
*/
position: relative;
}
#sidebar .links .sideinput .inputtext {
font-family: inherit;
font-size: 10.5pt;
border-radius: 5px;
border: 0;
/*
background-color: #006633;
margin-bottom: 2px;
color: #FFFFFF;
*/
width: calc(100% - 8px); /* account for parent padding */
min-height: 22px;
padding: 2px 4px;
background-color: #FFFFFF;
color: #006633;
}
#sidebar .links .sideinput .inputtext::placeholder {
color: #006633;
opacity: 0.75;
}
/*
#sidebar .links .sideinput .inputbutton {
background-color: #FFFFFF;
color: #006633;
border: 1px solid;
border-radius: 5px;
font-weight: bold;
margin-bottom: 3px;
max-width: 50%;
}
*/
#sidebar .links .sideinput .inputbutton {
position: absolute;
top: 1px;
right: 4px;;
background-color: transparent;
border: 0;
margin: 0;
padding: 0;
cursor: pointer;
}
#sidebar .links .sideinput .inputbutton svg {
fill: #006633;
}
#main .logo {
text-align: right;
font-family: "Teen Bold", "Droid Sans", sans-serif;
font-weight: bold;
font-size: 95pt;
line-height: 0.6;
margin: 0 0 14px 0;
}
ul.article-list {
list-style: none;
margin: 0;
padding: 0;
border: 4px solid #006633;
border-radius: 8px;
}
.box {
margin-top: 0px;
margin-bottom: 0px;
padding: 0 10px;
}
.box + .box {
border-top: 4px solid #006633;
}
p {
text-align: justify;
margin-bottom: 1.1em;
}
.center {
text-align: center;
}
img {
max-width: 100%;
border: 0;
}
h1 {
margin-top: 0;
color: #006633;
text-align: right;
font-size: 30pt;
}
h2 {
color: #006633;
text-align: left;
font-size: 16pt;
}
a {
color: #000000;
text-decoration : none;
}
a:link {
color: #006633;
text-decoration : none;
}
a:hover {
color: #FF0000;
text-decoration : underline;
}
a:visited {
color: #006633;
}
a.whitefont {
color: #FFFFFF;
text-decoration : none;
}
article h3 {
padding: 10px 0 0;
margin: 0;
font-size: 12pt;
}
article dl {
margin: 0;
}
article dt {
display: inline;
}
article dd {
display: inline;
margin-left: 0;
}
article dd:after {
display: block;
content: '';
}
article p {
}
div.options {
text-align: center;
margin: 10px 20px;
}
div.pager {
margin-top: 10px;
display: flex;
justify-content: space-between;
}
span.next {
}
span.prev {
}
a.bottom {
color: #006633;
text-decoration : none;
}
a.bottom:visited {
color: #006633;
}
a.bottom:hover {
color: #FF0000;
text-decoration : underline;
}
li {
font-size: inherit;
text-align: inherit;
}
pre {
text-align: justify;
font-family: monospace;
}
.xxx {
font-family: monospace;
}
.box .right {
float: right;
}
.red {
color: red;
}
@media (max-width: 800px), (max-device-width: 800px) {
body {
font-size: 12pt;
}
#container {
background: transparent;
}
#main {
margin: 0 5px;
}
#main .logo {
font-size: 70pt;
}
#maintext {
margin-left: 0;
}
/* The menu icon covers the top left of the page. It ends about 27px
from the left of #maintext (the sidebar starts 5px further left, then
10px padding and the 22px icon), so a long title wraps to the right
of it instead of running under it */
#maintext > h1:not(.logo) {
margin-left: 50px;
}
footer#bottom {
border-radius: 8px;
margin: 0 5px;
}
footer#bottom p {
font-size: 11pt;
}
#sidebar {
position: absolute;
background: transparent;
border-radius: 0 8px 8px 0;
font-size: 11pt;
}
#sidebar .logo {
display: none;
}
#sidebar .mobile.menu-toggle {
display: block;
-webkit-user-select: none;
user-select: none;
}
#sidebar input.menu-toggle {
/* Note that we could do this by turning the text we're covering into a label, and
* setting display: none on this input but this may be better for touch interfaces */
position: absolute;
z-index: 50;
top: 0;
left: 0;
width: 44px; /* the icon, with room for a finger */
height: 40px; /* text box size */
}
#sidebar nav.links {
position: relative; /* needed by z-index */
width: 150px;
background: #006633;
border-radius: 0 0 8px 0;
margin-top: 40px;
padding-bottom: 5px;
z-index: 20;
-webkit-font-smoothing: antialiased;
/* stop flickering of text in safari */
transform-origin: 0% 0%;
transform: translate(-165px, 0);
transition: transform 0.5s cubic-bezier(0.77,0.2,0.05,1.0);
}
#sidebar input.menu-toggle:checked ~ nav.links {
transform: translate(-10px, 0);
}
#sidebar .menu-toggle {
position: relative; /* needed by z-index */
z-index: 30;
width: 150px;
}
#sidebar .menu-toggle .background,
#sidebar .menu-toggle .menu,
#sidebar .menu-toggle .close {
position: absolute;
top: 0;
width: calc(100% - 10px);
padding-left: 10px;
padding-top: 10px;
}
#sidebar .menu-toggle .menu {
fill: #006633;
color: #006633;
}
#sidebar .menu-toggle .background {
height: 40px; /* text box size */
background: #006633;
border-radius: 0 8px 0 0;
-webkit-font-smoothing: antialiased;
/* stop flickering of text in safari */
transform-origin: 0% 0%;
transform: translate(-165px, 0);
transition: transform 0.5s cubic-bezier(0.77,0.2,0.05,1.0);
}
#sidebar input.menu-toggle:checked ~ .menu-toggle .background {
transform: translate(-10px, 0);
}
#sidebar .menu-toggle .close {
color: #FFFFFF;
fill: #FFFFFF;
clip-path: polygon(0 0, -20px 0, -20px 100%, 0 100%); /* covered */
transition: clip-path 0.5s cubic-bezier(0.77,0.2,0.05,1.0);
}
#sidebar input.menu-toggle:checked ~ .menu-toggle .close {
clip-path: polygon(0 0, 150px 0, 150px 100%, 0 100%); /* uncovered */
}
/* The icon alone shows the menu; the word "Menu" stays for screen readers */
#sidebar .menu-toggle .text {
position: absolute;
width: 1px;
height: 1px;
overflow: hidden;
clip-path: inset(50%);
white-space: nowrap;
}
#sidebar .menu-toggle .icon {
display: inline-block;
height: 28px; /* Size of text block */
vertical-align: middle;
}
#sidebar .links {
margin: 0;
}
#sidebar .links ul,
#sidebar .links .sideinput {
margin: 0;
background: #006633;
color: #FFFFFF;
border: 0;
}
#sidebar .links ul {
padding: 6px;
}
#sidebar .links .sideinput {
}
#sidebar .links ul li {
}
#sidebar .links ul li,
#sidebar .links ul li:before,
#sidebar .links ul li a {
color: #FFFFFF;
}
#sidebar .links .sideinput {
padding: 0 6px;
}
#sidebar .links .sideinput .inputtext {
background: #FFFFFF;
color: #006633;
font-size: 11pt;
padding: 2px 4px;
width: calc(100% - 10px); /* exclude padding */
}
#sidebar .links .sideinput .inputbutton {
right: 10px; /* all the parent margins and paddings up to the next relatively positioned element */
}
article h3 {
font-size: 13pt;
}
}