moth/theme/basic.css

225 lines
3.8 KiB
CSS

/* Color palette: http://paletton.com/#uid=33x0u0klrl-4ON9dhtKtAdqMQ4T */
:root {
--bg: #010e19;
--fg: #edd488;
--bg-main: #000d;
--heading: #cb2408cc;
--bg-heading1: #cb240844;
--fg-link: #b9cbd8;
--bg-input: #ccc4;
--bg-input-hover: #8884;
--bg-notification: #ac8f3944;
--bg-error: #f00;
--fg-error: white;
--bg-category: #ccc4;
--bg-input-invalid: #800;
--fg-input-invalid: white;
--bg-mothball: #ccc;
--bg-debug: #cccc;
--fg-debug: black;
--bg-toast: #333;
--fg-toast: #eee;
--box-toast: #0b0;
}
@media (prefers-color-scheme: light) {
/* We uses the alpha channel to apply hue tinting to elements, to get a
* similar effect in light or dark mode. That means there aren't a whole lot of
* things to change between light and dark mode.
*/
:root {
--bg: #b9cbd8;
--fg: black;
--bg-main: #fffd;
--fg-link: #092b45;
}
}
body {
font-family: sans-serif;
background: var(--bg) url("bg.png") center fixed;
background-size: cover;
background-blend-mode: soft-light;
background-color: var(--bg);
color: var(--fg);
}
canvas.wallpaper {
position: fixed;
display: block;
z-index: -1000;
top: 0;
left: 0;
height: 100vh;
width: 100vw;
opacity: 0.2;
image-rendering: pixelated;
}
@media (prefers-reduced-motion) {
canvas.wallpaper {
display: none;
}
}
main {
max-width: 40em;
margin: 1em auto;
padding: 1px 3px;
border-radius: 5px;
background: var(--bg-main);
}
h1, h2, h3, h4, h5, h6 {
color: var(--heading);
}
h1 {
background: var(--bg-heading1);
padding: 3px;
}
p {
margin: 1em 0em;
}
a:any-link {
color: var(--fg-link);
}
form, pre {
margin: 1em;
overflow-x: auto;
}
input, select {
padding: 0.6em;
margin: 0.2em;
max-width: 30em;
}
input {
background-color: var(--bg-input);
color: inherit;
}
input:hover {
background-color: var(--bg-input-hover);
}
input:active {
background-color: inherit;
}
.notification, .error {
padding: 0 1em;
border-radius: 8px;
}
.notification {
background: var(--bg-notification);
}
.error {
background: var(--bg-error);
color: var(--fg-error);
}
.hidden {
display: none;
}
/** Puzzles list */
.category {
margin: 5px 0;
background: var(--bg-category);
}
.category h2 {
margin: 0 0.2em;
}
.category .solved {
text-decoration: line-through;
}
nav ul, .category ul {
margin: 0;
padding: 0.2em 1em;
display: flex;
flex-wrap: wrap;
gap: 8px 16px;
}
nav li, .category li {
display: inline;
}
.category li.entitled {
flex-basis: 100%;
}
.mothball {
float: right;
text-decoration: none;
border-radius: 5px;
background: var(--bg-mothball);
padding: 4px 8px;
margin: 5px;
}
/** Puzzle content */
#puzzle {
border-bottom: solid;
padding: 0 0.5em;
}
#puzzle img {
max-width: 100%;
}
input:invalid {
background-color: var(--bg-input-invalid);
color: var(--fg-input-invalid);
}
.answer_ok {
cursor: help;
}
/** Development mode information */
.debug {
overflow: auto;
padding: 1em;
border-radius: 10px;
margin: 2em auto;
background: var(--bg-debug);
color: var(--fg-debug);
}
.debug dt {
font-weight: bold;
}
/** Draggable items, from the draggable plugin */
li[draggable]::before {
content: "↕";
padding: 0.5em;
cursor: move;
}
li[draggable] {
list-style: none;
}
[draggable].moving {
opacity: 0.4;
}
[draggable].over {
border: 1px white dashed;
}
/** Toasts are little pop-up informational messages. */
.toasts {
position: fixed;
z-index: 100;
bottom: 10px;
left: 10px;
text-align: center;
width: calc(100% - 20px);
display: flex;
flex-direction: column;
}
.toast {
border-radius: 0.5em;
padding: 0.2em 2em;
animation: fadeIn ease 1s;
margin: 2px auto;
background: var(--bg-toast);
color: var(--fg-toast);
box-shadow: 0px 0px 8px 0px var(--box-toast);
}
@keyframes fadeIn {
0% { opacity: 0; }
100% { opacity: 1; }
}