mirror of
https://github.com/basecamp/once-campfire.git
synced 2026-03-13 21:55:15 +09:00
268 lines
5.9 KiB
CSS
268 lines
5.9 KiB
CSS
:root {
|
|
--font-family: -apple-system, BlinkMacSystemFont, Aptos, Roboto, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
|
--hover-color: var(--color-border-darker);
|
|
--hover-size: 0.15em;
|
|
--hover-filter: brightness(1);
|
|
}
|
|
|
|
html, body {
|
|
-webkit-text-size-adjust: none;
|
|
background-color: var(--color-bg);
|
|
color: var(--color-text);
|
|
font-family: var(--font-family);
|
|
line-height: 1.4;
|
|
overflow: initial;
|
|
text-size-adjust: none;
|
|
}
|
|
|
|
/* Links */
|
|
:where(a:not([class]):not(:has(img))) {
|
|
color: var(--link-color, var(--color-link));
|
|
|
|
@media (any-hover: hover) {
|
|
&:where(:not(:active):hover) {
|
|
--hover-filter: brightness(1.3);
|
|
|
|
filter: var(--hover-filter);
|
|
}
|
|
}
|
|
}
|
|
|
|
:where(button, input, textarea, summary, .input, .btn) {
|
|
--outline-size: min(0.2em, 2px);
|
|
|
|
appearance: none;
|
|
border: none;
|
|
background-color: transparent;
|
|
font: inherit;
|
|
line-height: inherit;
|
|
text-decoration: none;
|
|
touch-action: manipulation;
|
|
transition: box-shadow 150ms ease, outline-offset 150ms ease, background-color 150ms ease, opacity 150ms ease, filter 150ms ease;
|
|
|
|
/* Hover */
|
|
@media (any-hover: hover) {
|
|
&:where(:not(:active):hover) {
|
|
filter: var(--hover-filter);
|
|
box-shadow: 0 0 0 var(--hover-size) var(--hover-color);
|
|
}
|
|
}
|
|
|
|
/* Keyboard navigation */
|
|
&:where(:not(:active)):focus-visible {
|
|
outline-width: var(--outline-size);
|
|
outline-color: var(--outline-color, var(--color-link));
|
|
outline-offset: var(--outline-offset, calc(var(--outline-size) * 2));
|
|
}
|
|
|
|
/* Pressing */
|
|
&:focus:not(:focus-visible) {
|
|
--outline-offset: 0;
|
|
}
|
|
|
|
/* Disabled */
|
|
&:where([disabled]):not(:hover):not(:active) {
|
|
cursor: not-allowed;
|
|
filter: brightness(0.75);
|
|
}
|
|
}
|
|
|
|
/* Turbo */
|
|
turbo-frame,
|
|
turbo-cable-stream-source {
|
|
display: contents;
|
|
}
|
|
|
|
/* For settings */
|
|
fieldset {
|
|
border: 2px solid var(--fieldset-border-color, var(--color-border));
|
|
border-block-end: 0;
|
|
border-inline: 0;
|
|
display: flex;
|
|
flex-direction: column;
|
|
max-inline-size: 50ch;
|
|
padding: var(--block-space) 0;
|
|
|
|
&.border {
|
|
border-color: var(--color-border-darker);
|
|
border-style: solid;
|
|
border-width: 1px;
|
|
}
|
|
}
|
|
|
|
legend {
|
|
align-items: center;
|
|
display: flex;
|
|
justify-content: center;
|
|
margin-inline: auto;
|
|
text-align: center;
|
|
}
|
|
|
|
.membership-item:has(.btn.invisible) {
|
|
opacity: 0.5;
|
|
}
|
|
|
|
/* Dialogs */
|
|
.dialog {
|
|
--width: 50ch;
|
|
|
|
background-color: var(--color-bg);
|
|
margin-inline: var(--inline-space);
|
|
inline-size: var(--width);
|
|
max-inline-size: calc(100dvw - var(--inline-space) * 2);
|
|
position: relative;
|
|
|
|
&::backdrop {
|
|
background-image: linear-gradient(
|
|
45deg,
|
|
#fff500,
|
|
#ff9f00,
|
|
#f00,
|
|
#ec0061
|
|
);
|
|
opacity: 0.75;
|
|
}
|
|
}
|
|
|
|
.dialog__close {
|
|
position: absolute;
|
|
inset: calc(var(--block-space) * 1.5) var(--inline-space) auto auto;
|
|
}
|
|
|
|
/* Misc */
|
|
menu {
|
|
outline: 0;
|
|
}
|
|
|
|
code {
|
|
background: var(--color-bg);
|
|
border: 1px solid var(--color-border-dark);
|
|
padding: 0.2em 0.4em;
|
|
border-radius: 0.3em;
|
|
font-weight: 500;
|
|
}
|
|
|
|
pre {
|
|
background-color: var(--color-bg);
|
|
font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monaco, monospace;
|
|
font-size: 0.8rem;
|
|
white-space: pre-wrap;
|
|
word-wrap: break-word;
|
|
}
|
|
|
|
.version-badge {
|
|
border: 1px solid var(--color-border-darker);
|
|
border-radius: 0.3em;
|
|
color: var(--color-border-darker);
|
|
padding: 0.1em var(--inline-space-half);
|
|
}
|
|
|
|
/* PWA install */
|
|
.pwa__instructions {
|
|
@media (display-mode: standalone) {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
.pwa__installer {
|
|
display: none;
|
|
|
|
.pwa--can-install & {
|
|
display: block;
|
|
}
|
|
}
|
|
|
|
/* Notification settings */
|
|
.notifications-help {
|
|
padding: var(--block-space) var(--inline-space);
|
|
background-color: var(--color-border);
|
|
border-radius: 0.5em;
|
|
border: 1px solid var(--color-border-dark);
|
|
margin-block-end: var(--block-space-half);
|
|
|
|
summary {
|
|
--column-gap: var(--inline-space-half);
|
|
--btn-background: transparent;
|
|
--btn-border-radius: 0.5em;
|
|
--btn-border-color: transparent;
|
|
|
|
display: flex;
|
|
justify-content: start;
|
|
padding: var(--block-space) var(--inline-space);
|
|
margin: calc(var(--block-space) * -1) calc(var(--inline-space) * -1);
|
|
}
|
|
|
|
.disclosure {
|
|
margin-inline-start: auto;
|
|
transition: transform 150ms ease;
|
|
|
|
.notifications-help[open] & {
|
|
transform: rotate(90deg);
|
|
}
|
|
}
|
|
|
|
img {
|
|
display: inline;
|
|
vertical-align: text-top;
|
|
|
|
@media (prefers-color-scheme: dark) {
|
|
filter: invert(100);
|
|
}
|
|
}
|
|
|
|
li {
|
|
margin-block: var(--block-space-half);
|
|
}
|
|
|
|
em {
|
|
background: var(--color-bg);
|
|
border: 1px solid var(--color-border-darker);
|
|
padding: 0.2em 0.4em;
|
|
border-radius: 0.3em;
|
|
font-weight: 500;
|
|
font-style: normal;
|
|
font-size: 0.9em;
|
|
}
|
|
}
|
|
|
|
/* Language translations */
|
|
.lanuage-list-menu {
|
|
--max-width: 40ch;
|
|
|
|
background-color: var(--color-border);
|
|
border: 1px solid var(--color-border-dark);
|
|
border-radius: 0.5em;
|
|
inset: auto;
|
|
inline-size: max-content;
|
|
margin-inline: var(--inline-space);
|
|
max-inline-size: 40ch;
|
|
overflow: clip;
|
|
position: absolute;
|
|
z-index: 3;
|
|
|
|
@media (max-width: 100ch) {
|
|
max-inline-size: calc(var(--max-width) - var(--inline-space));
|
|
}
|
|
}
|
|
|
|
.language-list {
|
|
display: grid;
|
|
gap: var(--block-space-half) var(--inline-space);
|
|
grid-template-rows: min-content;
|
|
grid-template-columns: min-content 1fr;
|
|
justify-content: start;
|
|
margin: 0;
|
|
padding: var(--block-space) var(--inline-space-double);
|
|
text-align: start;
|
|
}
|
|
|
|
/* Nicer scrollbars on Chrome 29+. This is intended for Windows machines, but */
|
|
/* there's not a way to target Windows using CSS, so Chrome on Mac will have */
|
|
/* slightly thinner scrollbars than normal. #C1C1C1 is the default color on Macs. */
|
|
@media screen and (-webkit-min-device-pixel-ratio:0) and (min-resolution:.001dpcm) {
|
|
* {
|
|
scrollbar-color: #C1C1C1 transparent;
|
|
scrollbar-width: thin;
|
|
}
|
|
}
|