mirror of
https://github.com/Sendouc/sendou.ink.git
synced 2026-04-24 06:58:10 -05:00
499 lines
9.3 KiB
CSS
499 lines
9.3 KiB
CSS
*,
|
|
*::before,
|
|
*::after {
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
body {
|
|
width: 100%;
|
|
background-color: var(--bg);
|
|
color: var(--text);
|
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial,
|
|
sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
|
|
-webkit-font-smoothing: antialiased;
|
|
-moz-osx-font-smoothing: antialiased;
|
|
line-height: 1.55;
|
|
overflow-x: hidden;
|
|
}
|
|
|
|
*:focus:not(:focus-visible) {
|
|
outline: none !important;
|
|
}
|
|
|
|
a {
|
|
color: var(--theme);
|
|
font-weight: var(--semi-bold);
|
|
text-decoration: none;
|
|
}
|
|
|
|
:is(button, .button) {
|
|
display: flex;
|
|
width: auto;
|
|
align-items: center;
|
|
justify-content: center;
|
|
border: 2px solid var(--theme);
|
|
appearance: none;
|
|
background: var(--theme);
|
|
border-radius: var(--rounded-sm);
|
|
color: var(--button-text);
|
|
cursor: pointer;
|
|
font-size: var(--fonts-sm);
|
|
font-weight: var(--bold);
|
|
line-height: 1.2;
|
|
outline-offset: 2px;
|
|
padding-block: var(--s-1-5);
|
|
padding-inline: var(--s-2-5);
|
|
user-select: none;
|
|
}
|
|
|
|
:is(button, .button):focus-visible {
|
|
outline: 2px solid var(--theme);
|
|
}
|
|
|
|
:is(button, .button):active {
|
|
transform: translateY(1px);
|
|
}
|
|
|
|
:is(button, .button):disabled {
|
|
cursor: not-allowed;
|
|
opacity: 0.5;
|
|
transform: initial;
|
|
}
|
|
|
|
:is(button, .button).outlined {
|
|
background-color: transparent;
|
|
color: var(--theme);
|
|
}
|
|
|
|
:is(button, .button).outlined-success {
|
|
border-color: var(--theme-success);
|
|
background-color: transparent;
|
|
color: var(--theme-success);
|
|
}
|
|
|
|
:is(button, .button).tiny {
|
|
font-size: var(--fonts-xs);
|
|
padding-block: var(--s-1);
|
|
padding-inline: var(--s-2);
|
|
}
|
|
|
|
:is(button, .button).minimal {
|
|
padding: 0;
|
|
border: none;
|
|
background-color: transparent;
|
|
color: var(--theme);
|
|
outline: initial;
|
|
}
|
|
|
|
:is(button, .button).minimal-success {
|
|
padding: 0;
|
|
border: none;
|
|
background-color: transparent;
|
|
color: var(--theme-success);
|
|
}
|
|
|
|
:is(button, .button).success {
|
|
border-color: var(--theme-success);
|
|
background-color: var(--theme-success);
|
|
outline-color: var(--theme-success);
|
|
}
|
|
|
|
:is(button, .button).destructive {
|
|
border-color: var(--theme-error);
|
|
background-color: transparent;
|
|
color: var(--theme-error);
|
|
outline-color: var(--theme-error);
|
|
}
|
|
|
|
:is(button, .button).minimal-destructive {
|
|
padding: 0;
|
|
border: none;
|
|
background-color: transparent;
|
|
color: var(--theme-error);
|
|
outline-color: var(--theme-error);
|
|
}
|
|
|
|
:is(button, .button).loading {
|
|
cursor: not-allowed;
|
|
opacity: 0.6;
|
|
}
|
|
|
|
.button-icon {
|
|
width: 1.25rem;
|
|
margin-inline-end: var(--s-1-5);
|
|
}
|
|
|
|
.button-icon.lonely {
|
|
margin-inline-end: 0;
|
|
}
|
|
|
|
:is(button, .button).tiny > .button-icon {
|
|
width: 1rem;
|
|
margin-inline-end: var(--s-1);
|
|
}
|
|
|
|
textarea:not(.plain) {
|
|
padding: var(--s-2-5) var(--s-3);
|
|
border: 1px solid var(--border);
|
|
accent-color: var(--theme-secondary);
|
|
background-color: transparent;
|
|
border-radius: var(--rounded);
|
|
color: var(--text);
|
|
font-size: var(--fonts-sm);
|
|
outline: none;
|
|
overflow-wrap: normal;
|
|
overflow-x: scroll;
|
|
white-space: pre;
|
|
}
|
|
|
|
progress {
|
|
accent-color: var(--theme);
|
|
}
|
|
|
|
textarea:not(.plain):focus-within {
|
|
border-color: transparent;
|
|
|
|
/* TODO: rectangle on Safari */
|
|
outline: 2px solid var(--theme);
|
|
}
|
|
|
|
input:not(.plain) {
|
|
height: 1rem;
|
|
padding: var(--s-4) var(--s-3);
|
|
border: 1px solid var(--border);
|
|
accent-color: var(--theme-secondary);
|
|
background-color: transparent;
|
|
border-radius: var(--rounded);
|
|
color: var(--text);
|
|
font-size: var(--fonts-sm);
|
|
outline: none;
|
|
}
|
|
|
|
input:user-invalid {
|
|
border-color: transparent;
|
|
outline: 2px solid var(--theme-error);
|
|
}
|
|
|
|
input:not(.plain):focus-within {
|
|
border-color: transparent;
|
|
|
|
/* TODO: rectangle on Safari */
|
|
outline: 2px solid var(--theme);
|
|
}
|
|
|
|
input:not(.plain)::placeholder {
|
|
color: var(--text-lighter);
|
|
font-size: var(--fonts-xxs);
|
|
font-weight: var(--semi-bold);
|
|
letter-spacing: 0.5px;
|
|
}
|
|
|
|
input:not(.plain).error {
|
|
border-color: transparent;
|
|
outline: 2px solid var(--theme-error);
|
|
}
|
|
|
|
input[type="checkbox"] {
|
|
width: 16px;
|
|
height: 16px;
|
|
}
|
|
|
|
label {
|
|
display: block;
|
|
font-size: var(--fonts-xs);
|
|
font-weight: var(--bold);
|
|
margin-block-end: var(--label-margin);
|
|
}
|
|
|
|
details summary {
|
|
cursor: pointer;
|
|
}
|
|
|
|
fieldset {
|
|
border: none;
|
|
background-color: var(--bg-darker-transparent);
|
|
border-radius: var(--rounded);
|
|
font-size: var(--fonts-sm);
|
|
padding-block-end: var(--s-3);
|
|
padding-inline: var(--s-3);
|
|
}
|
|
|
|
legend {
|
|
background-color: transparent;
|
|
border-radius: 2px;
|
|
border-radius: var(--rounded-sm);
|
|
font-size: var(--fonts-xs);
|
|
font-weight: var(--bold);
|
|
}
|
|
|
|
article {
|
|
padding-inline: var(--s-3);
|
|
white-space: pre-line;
|
|
}
|
|
|
|
select {
|
|
all: unset;
|
|
width: 90%;
|
|
border: 1px solid var(--border);
|
|
background: var(--select-background, var(--bg-lighter));
|
|
|
|
/* TODO: Get color from CSS var */
|
|
background-image: url('data:image/svg+xml;utf8,<svg width="1rem" color="rgb(255 255 255 / 55%)" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" /></svg>');
|
|
background-position-x: 92%;
|
|
background-position-y: 50%;
|
|
background-repeat: no-repeat;
|
|
border-radius: var(--rounded);
|
|
cursor: pointer;
|
|
font-size: var(--fonts-sm);
|
|
font-weight: 500;
|
|
padding-block: 3.5px;
|
|
padding-inline: var(--s-3);
|
|
}
|
|
|
|
select::selection {
|
|
overflow: hidden;
|
|
font-weight: bold;
|
|
}
|
|
|
|
select:focus {
|
|
outline: 2px solid var(--theme);
|
|
}
|
|
|
|
hr {
|
|
border-color: var(--theme-transparent);
|
|
}
|
|
|
|
abbr:not([title]) {
|
|
text-decoration: none;
|
|
}
|
|
|
|
abbr[title] {
|
|
cursor: help;
|
|
}
|
|
|
|
dialog {
|
|
width: min(90%, 24rem);
|
|
border: 0;
|
|
margin: auto;
|
|
background-color: var(--bg);
|
|
border-radius: var(--rounded);
|
|
}
|
|
|
|
dialog::backdrop {
|
|
background: hsla(237deg 98% 1% / 70%);
|
|
}
|
|
|
|
@supports ((-webkit-backdrop-filter: none) or (backdrop-filter: none)) {
|
|
dialog::backdrop {
|
|
-webkit-backdrop-filter: blur(7px) brightness(70%);
|
|
backdrop-filter: blur(7px) brightness(70%);
|
|
background-color: transparent;
|
|
}
|
|
}
|
|
|
|
dialog[open],
|
|
dialog::backdrop {
|
|
animation: show 500ms ease;
|
|
}
|
|
|
|
@keyframes show {
|
|
0% {
|
|
opacity: 0;
|
|
}
|
|
}
|
|
|
|
.button-text-paragraph {
|
|
display: flex;
|
|
gap: var(--s-1);
|
|
}
|
|
|
|
.button-text-paragraph > button {
|
|
font-size: var(--fonts-md);
|
|
font-size: var(--fonts-sm);
|
|
font-weight: var(--semi-bold);
|
|
margin-block-end: 0.125rem;
|
|
}
|
|
|
|
.sub-nav__container {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
justify-content: center;
|
|
background-color: var(--bg-lighter);
|
|
background-image: url("/svg/background-pattern.svg");
|
|
margin-block-end: var(--s-4);
|
|
overflow-x: auto;
|
|
}
|
|
|
|
.sub-nav__link {
|
|
display: flex;
|
|
height: 100%;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
padding: var(--s-4);
|
|
background-color: var(--bg-lighter);
|
|
color: var(--text);
|
|
font-size: var(--fonts-xs);
|
|
font-weight: var(--semi-bold);
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.sub-nav__active-icon {
|
|
height: 1.2rem;
|
|
margin-block-end: -1rem;
|
|
margin-block-start: -3px;
|
|
visibility: hidden;
|
|
}
|
|
|
|
.sub-nav__link.active > .sub-nav__active-icon {
|
|
visibility: visible;
|
|
}
|
|
|
|
.popover-content {
|
|
z-index: 1;
|
|
max-width: 20rem;
|
|
padding: var(--s-2);
|
|
background-color: var(--bg-darker-transparent);
|
|
border-radius: var(--rounded);
|
|
font-size: var(--fonts-sm);
|
|
font-weight: var(--semi-bold);
|
|
white-space: pre-wrap;
|
|
}
|
|
|
|
@supports ((-webkit-backdrop-filter: none) or (backdrop-filter: none)) {
|
|
.popover-content {
|
|
-webkit-backdrop-filter: blur(10px) brightness(75%);
|
|
backdrop-filter: blur(10px) brightness(75%);
|
|
background-color: transparent;
|
|
}
|
|
}
|
|
|
|
.combobox-input {
|
|
width: 12rem;
|
|
}
|
|
|
|
.combobox-options {
|
|
position: absolute;
|
|
z-index: 2;
|
|
width: 12rem;
|
|
margin-top: var(--s-2);
|
|
background-color: var(--bg-darker);
|
|
border-radius: var(--rounded);
|
|
color: var(--text);
|
|
font-size: var(--fonts-sm);
|
|
padding-block: var(--s-3);
|
|
padding-inline: 0;
|
|
}
|
|
|
|
.combobox-options.empty {
|
|
padding-block: var(--s-1-5);
|
|
}
|
|
|
|
.combobox-item {
|
|
padding: var(--s-1) var(--s-3);
|
|
list-style: none;
|
|
}
|
|
|
|
.combobox-no-matches {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
color: var(--text-lighter);
|
|
font-size: var(--fonts-xs);
|
|
font-weight: var(--bold);
|
|
gap: var(--s-1);
|
|
}
|
|
|
|
.combobox-emoji {
|
|
color: var(--text);
|
|
font-size: var(--fonts-lg);
|
|
}
|
|
|
|
.combobox-item.active {
|
|
background-color: var(--theme-transparent);
|
|
}
|
|
|
|
.avatar {
|
|
background-color: var(--bg-lighter);
|
|
background-image: url("/svg/background-pattern.svg");
|
|
border-radius: 50%;
|
|
}
|
|
|
|
.stack {
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.stack.xxs {
|
|
gap: var(--s-1);
|
|
}
|
|
|
|
.stack.xs {
|
|
gap: var(--s-1-5);
|
|
}
|
|
|
|
.stack.sm {
|
|
gap: var(--s-2);
|
|
}
|
|
|
|
.stack.md {
|
|
gap: var(--s-4);
|
|
}
|
|
|
|
.stack.lg {
|
|
gap: var(--s-8);
|
|
}
|
|
|
|
.stack.horizontal {
|
|
flex-direction: row;
|
|
}
|
|
|
|
.lock-scroll {
|
|
overflow: hidden;
|
|
}
|
|
|
|
.label__container {
|
|
display: flex;
|
|
align-items: flex-end;
|
|
gap: var(--s-2);
|
|
margin-block-end: var(--label-margin);
|
|
}
|
|
|
|
.label__container > label {
|
|
margin: 0;
|
|
}
|
|
|
|
.label__value {
|
|
color: var(--text-lighter);
|
|
font-size: var(--fonts-xxs);
|
|
margin-block-start: -5px;
|
|
}
|
|
|
|
.label__value.warning {
|
|
color: var(--theme-warning);
|
|
}
|
|
|
|
.label__value.error {
|
|
color: var(--theme-error);
|
|
}
|
|
|
|
.error-message {
|
|
display: block;
|
|
color: var(--theme-error);
|
|
font-size: var(--fonts-xs);
|
|
margin-block-start: var(--label-margin);
|
|
}
|
|
|
|
.calendar__event__tags {
|
|
display: flex;
|
|
padding: 0;
|
|
color: var(--button-text);
|
|
font-size: var(--fonts-xxs);
|
|
font-weight: var(--semi-bold);
|
|
list-style: none;
|
|
}
|
|
|
|
.calendar__event__tags > li {
|
|
border-radius: var(--rounded);
|
|
padding-inline: var(--s-1-5);
|
|
}
|