Files
sendou.ink/app/features/tier-list-maker/components/TierRow.module.css
2026-09-17 17:34:36 +03:00

207 lines
3.4 KiB
CSS

.container {
display: grid;
grid-template-columns: subgrid;
grid-column: 1 / -1;
min-height: 68px;
}
.tierLabel {
grid-column: 1;
display: flex;
align-items: center;
justify-content: center;
min-width: 68px;
padding: var(--s-2);
font-size: var(--font-lg);
font-weight: var(--weight-bold);
color: var(--color-text);
border-radius: var(--radius-field);
cursor: pointer;
background-color: var(--tier-color);
transition: background-color 0.15s;
border: none;
&:hover,
&:focus-visible {
background-color: color-mix(
in oklch,
var(--tier-color) 85%,
var(--color-text)
);
}
}
.tierName {
line-height: 1.2;
max-width: 90px;
overflow-wrap: break-word;
word-wrap: break-word;
}
.popupContent {
display: flex;
flex-direction: column;
gap: var(--s-4);
padding: var(--s-2);
}
.deleteButton {
height: auto;
}
.nameInput {
width: 100%;
}
.targetZone {
grid-column: 2;
display: flex;
flex-wrap: wrap;
gap: var(--s-1-5);
padding: var(--s-2);
background: var(--color-bg-high);
border-radius: var(--radius-field) 0 0 var(--radius-field);
align-items: center;
align-content: center;
transition: background-color 0.15s;
}
.targetZoneOver {
background: var(--color-bg-higher);
}
.targetZoneSelectable {
cursor: pointer;
}
.targetZoneSelectable:hover {
background-color: var(--color-bg-higher);
}
.targetZoneSelected {
background: var(--color-bg-higher);
outline: var(--border-style-high);
outline-offset: -2px;
}
.emptyMessage {
width: 100%;
height: 100%;
text-align: center;
margin: auto;
color: var(--color-text-high);
font-size: var(--font-md);
font-weight: var(--weight-semi);
font-style: italic;
display: flex;
align-items: center;
justify-content: center;
}
.arrowControls {
grid-column: 3;
display: grid;
grid-template-rows: 1fr 1fr;
gap: var(--s-1);
}
.arrowButton {
display: flex;
align-items: center;
justify-content: center;
width: var(--field-size-sm);
height: 100%;
padding: var(--s-1);
background: var(--color-bg-high);
border: none;
cursor: pointer;
transition: background-color 0.15s;
&:hover:not(:disabled),
&:focus-visible {
background: var(--color-bg-higher);
}
&:disabled {
opacity: 0.3;
cursor: not-allowed;
}
}
.arrowButtonUpper {
border-radius: 0 var(--radius-field) 0 0;
}
.arrowButtonLower {
border-radius: 0 0 var(--radius-field) 0;
}
.arrowIcon {
width: 20px;
height: 20px;
color: var(--color-text);
}
.colorGrid {
display: grid;
grid-template-columns: repeat(6, 1fr);
gap: var(--s-3);
}
.colorButton {
width: 32px;
height: 32px;
border-radius: 50%;
border: 2px solid transparent;
cursor: pointer;
transition: border-color 0.15s;
padding: 0;
&:hover,
&:focus-visible {
border-color: var(--color-text-high);
}
}
.colorButtonSelected {
border-color: var(--color-text);
box-shadow: 0 0 0 2px var(--color-bg);
}
.customColorButton {
position: relative;
display: flex;
align-items: center;
justify-content: center;
background-color: var(--color-bg-higher);
color: var(--color-text);
&:focus-within {
outline: var(--border-style-high);
outline-offset: 2px;
}
}
.customColorButtonOnLight {
color: var(--color-text-on-light);
}
.customColorButtonOnDark {
color: var(--color-text-on-dark);
}
.customColorIcon {
width: 20px;
height: 20px;
pointer-events: none;
}
.customColorInput {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
opacity: 0;
cursor: pointer;
}