sendou.ink/app/components/elements/Button.module.css

128 lines
2.2 KiB
CSS

.button {
display: flex;
width: auto;
align-items: center;
justify-content: center;
border: 2px solid var(--theme);
border-radius: var(--rounded-sm);
appearance: none;
background: var(--theme);
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;
}
.button[data-focus-visible],
.button:focus-visible {
outline: 2px solid var(--theme);
}
.button[data-pressed],
.button:active {
transform: translateY(1px);
}
.button[data-disabled],
.button:disabled {
cursor: not-allowed;
opacity: 0.5;
transform: initial;
}
.outlined {
background-color: var(--theme-very-transparent);
color: var(--theme);
}
.outlinedSuccess {
border-color: var(--theme-success);
background-color: transparent;
color: var(--theme-success);
}
.small {
font-size: var(--fonts-xs);
padding-block: var(--s-1);
padding-inline: var(--s-2);
}
.miniscule {
font-size: var(--fonts-xxs);
padding-block: var(--s-1);
padding-inline: var(--s-2);
}
.big {
font-size: var(--fonts-md);
padding-block: var(--s-2-5);
padding-inline: var(--s-6);
}
.minimal {
padding: 0;
border: none;
background-color: transparent;
color: var(--theme);
outline: initial;
}
.minimal[data-focus-visible] {
outline: 2px solid var(--theme);
}
.minimalSuccess {
padding: 0;
border: none;
background-color: transparent;
color: var(--theme-success);
}
.success {
border-color: var(--theme-success);
background-color: var(--theme-success);
outline-color: var(--theme-success);
}
.destructive {
border-color: var(--theme-error);
background-color: transparent;
color: var(--theme-error);
outline-color: var(--theme-error);
}
.minimalDestructive {
padding: 0;
border: none;
background-color: transparent;
color: var(--theme-error);
outline-color: var(--theme-error);
}
.buttonIcon {
min-width: 1.25rem;
max-width: 1.25rem;
margin-inline-end: var(--s-1-5);
}
.buttonIcon.lonely {
margin-inline-end: 0 !important;
}
.small > .buttonIcon {
min-width: 1rem;
max-width: 1rem;
margin-inline-end: var(--s-1);
}
.miniscule > .buttonIcon {
min-width: 0.857rem;
max-width: 0.857rem;
margin-inline-end: var(--s-1);
}