cheesy/moku/static/css/moku.css
2024-03-25 22:35:24 +00:00

435 lines
No EOL
7.3 KiB
CSS
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

:root {
--tangerine: #F7A278;
--orange: #c94c10;
--champagne: #FDE4D8;
--dusty-champagne: #EFC6B8;
--charcoal: #626262;
--emoji-picker-rounding: 6px;
--image-max-size: 324px;
}
*, *::before, *::after {
box-sizing: border-box;
}
html {
font-size: 62.5%;
line-height: 1.5;
-ms-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%;
text-size-adjust: 100%;
}
body {
background: var(--champagne);
font-size: 1.6rem;
line-height: 1.4;
max-width: 768px;
margin-inline: auto;
padding: 2.4rem 1.2rem;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
}
.mt {
margin-block-start: 1.6rem;
}
.mb {
margin-block-end: 1.6rem;
}
.small {
font-size: 1.4rem;
}
.subtle {
color: var(--charcoal);
}
.messages {
margin-block-end: 1.6rem;
display: grid;
row-gap: .8rem;
font-size: 1.5rem;
}
.messages li.success::before {
content: "✅ ";
}
.messages li.error::before {
content: "❌ ";
}
.messages li.info::before {
content: " ";
}
button.logout {
border: none;
outline: none;
background: none;
display: inline;
font-size: 1.6rem;
cursor: pointer;
padding: 0;
}
a, button.logout {
color: var(--orange);
font-weight: bold;
text-decoration: none;
text-decoration-skip-ink: none;
text-underline-offset: 2px;
}
a:hover, button.logout:hover {
text-decoration: wavy underline;
}
.profile h2 {
font-size: 1.8rem;
font-weight: bold;
color: var(--orange);
}
.avatar {
border-radius: 8px;
}
aside .avatar {
max-width: 100%;
}
dl {
display: grid;
grid-template-columns: 1fr 1fr;
row-gap: 1.2rem;
column-gap: 1.8rem;
}
dl > div {
display: grid;
}
dl dt {
font-size: 1.4rem;
font-weight: bold;
color: var(--charcoal);
}
dl > .double {
grid-column: 1 / span 2;
}
form .errors {
font-size: 1.5rem;
display: grid;
margin-block-end: .8rem;
}
form .errors::before {
content: "fix these and we're good to go:";
font-size: 1.4rem;
color: var(--charcoal);
margin-block-end: .4rem;
}
form .errors li::before {
content: "❌ ";
}
form .errors li {
text-transform: lowercase;
}
form:not(.logout) {
display: grid;
row-gap: .8rem;
}
form.auth {
max-width: 378px;
}
form .field {
display: grid;
row-gap: .4rem;
}
form .field .field-button {
display: grid;
grid-template-columns: 1fr auto;
column-gap: .8rem;
}
form .checkbox {
display: grid;
grid-template-columns: auto 1fr;
align-items: flex-start;
column-gap: .8rem;
}
form .field .help {
color: var(--charcoal);
font-size: 1.4rem;
}
form input:not([name$="-clear"]),
form select {
width: 100%;
}
form textarea {
height: 6ch;
resize: vertical;
}
form input[type=text],
form input[type=password],
form input[type=email],
form textarea,
form select {
padding: .2rem;
font-size: 1.6rem;
border: 1px solid var(--charcoal);
border-radius: 3px;
background: var(--champagne);
}
form input[type=text]:focus,
form input[type=password]:focus,
form input[type=email]:focus,
form textarea:focus,
form select:focus {
background: white;
outline: 2px solid var(--tangerine);
}
form .emoji-picker {
display: grid;
row-gap: .2rem;
margin-block-end: .8rem;
}
form .emoji-picker details:first-of-type summary {
border-top-right-radius: var(--emoji-picker-rounding);
border-top-left-radius: var(--emoji-picker-rounding);
}
form .emoji-picker details:last-of-type:not([open]) summary {
border-bottom-right-radius: var(--emoji-picker-rounding);
border-bottom-left-radius: var(--emoji-picker-rounding);
}
form .emoji-picker details summary {
background: var(--dusty-champagne);
font-size: 1.4rem;
padding: .4rem .6rem;
user-select: none;
cursor: default;
}
form .emoji-picker ul {
display: grid;
grid-template-columns: repeat(5, 1fr);
column-gap: .2rem;
row-gap: .2rem;
}
form .emoji-picker ul li label {
padding: .3rem;
}
form .emoji-picker ul li input[type=radio] {
display: none;
}
form .emoji-picker ul li input[type=radio]:checked + label {
outline: 3px solid var(--tangerine);
border-radius: 50%;
}
form button[type=submit]:not(.logout) {
padding: .4rem .6rem;
font-size: 1.5rem;
background: var(--tangerine);
border: 1px solid var(--orange);
outline: none;
border-radius: 4px;
}
header {
display: grid;
margin-block-end: 2.4rem;
}
header h1 {
font-weight: bold;
font-size: 2.4rem;
}
header h1 sup {
vertical-align: super;
font-size: 1.4rem;
font-weight: normal;
}
header nav ul {
display: flex;
flex-flow: row wrap;
align-items: center;
column-gap: 1.2rem;
row-gap: .8rem;
}
.grid-content {
display: grid;
row-gap: 1.2rem;
}
.grid-content main {
display: grid;
row-gap: 1.8rem;
}
.grid-content main article {
padding: .8rem 1.8rem;
border-left: 4px solid var(--tangerine);
word-break: break-word;
display: grid;
grid-template-columns: auto 1fr;
column-gap: 1.2rem;
}
.grid-content main article .image {
grid-column: 1 / span 2;
margin-block-end: 1rem;
}
.grid-content main article .image img {
max-width: 100%;
max-height: var(--image-max-size);
border-radius: 8px;
}
.grid-content main article .emoji {
font-size: 2rem;
padding-top: .8rem;
}
.grid-content main article .body {
display: grid;
row-gap: .2rem;
}
.grid-content main article .body .metadata {
font-size: 1.4rem;
color: var(--charcoal);
}
.grid-content main article .body .recipe {
margin-block-start: .4rem;
}
.grid-content main article .body .recipe summary {
font-size: 1.4rem;
cursor: default;
user-select: none;
}
.grid-content main article .body .recipe ol {
font-size: 1.5rem;
list-style: decimal;
margin-block-start: 1rem;
padding-inline-start: 3.4rem;
border-left: 2px solid var(--tangerine);
}
.block {
max-width: 528px;
display: grid;
row-gap: .8rem;
}
.block h2 {
font-size: 2rem;
font-weight: bold;
}
.block h3 {
font-size: 1.8rem;
font-weight: bold;
margin-block-start: 1.2rem;
}
.block ul,
.block ol {
padding-inline-start: 3.2rem;
display: grid;
row-gap: .4rem;
}
.block ul {
list-style: disc;
}
.block ol {
list-style: decimal;
}
.block strong {
font-weight: bold;
}
.block em {
font-style: italic;
}
footer {
margin-block-start: 1.8rem;
}
footer nav ul {
display: flex;
align-items: center;
justify-content: center;
column-gap: 1.2rem;
}
footer nav ul li a {
font-size: 1.4rem;
color: var(--charcoal);
}
footer nav ul li a:hover {
color: var(--orange);
}
@media(min-width: 768px) {
body {
padding: 4rem 1.2rem 2.4rem 1.2rem;
}
header {
grid-template-columns: auto 1fr;
column-gap: 2.4rem;
align-items: center;
}
header nav ul {
justify-content: flex-end;
}
.grid-content {
grid-template-columns: 214px 1fr;
column-gap: 2.4rem;
row-gap: 0;
align-items: flex-start;
}
.grid-content main article .image img {
max-width: var(--image-max-size);
}
}