sendou.ink/app/features/tournament/tournament.module.css
2025-12-30 16:17:24 +02:00

771 lines
13 KiB
CSS

.actionSection {
padding: var(--s-0-5) var(--s-6) var(--s-6) var(--s-6);
border-radius: var(--rounded);
background-color: var(--color-bg-high);
}
.actionSectionTopPadded {
padding: var(--s-3) var(--s-6) var(--s-6) var(--s-6);
}
.actionSectionTitle {
font-size: var(--fonts-lg);
font-weight: var(--bold);
}
.actionSideNote {
color: var(--color-text-high);
font-size: var(--fonts-xs);
font-weight: var(--semi-bold);
}
.chatContainer {
top: var(--sticky-top);
position: sticky;
width: 100%;
}
.chatMessagesContainer {
height: 350px;
}
.mapPoolCounts {
display: grid;
width: 250px;
margin: 0 auto;
color: var(--color-text-high);
font-size: var(--fonts-xs);
grid-template-columns: repeat(4, 1fr);
place-items: center;
row-gap: var(--s-2);
}
.summaryContent {
display: inline-flex;
gap: var(--s-3);
}
.summaryContent > svg {
width: 1rem;
}
.roundContainer {
width: 250px;
margin: 0 auto;
}
.selectContainer > label {
margin-left: var(--s-2-5);
}
.teamsContainer {
display: flex;
justify-content: center;
gap: var(--s-4);
}
.teamSelect {
width: 150px;
text-overflow: ellipsis;
white-space: nowrap;
}
.boRadiosContainer {
display: flex;
justify-content: center;
gap: var(--s-4);
}
.mapList {
display: grid;
justify-content: center;
column-gap: var(--s-4);
font-size: var(--fonts-sm);
font-weight: var(--semi-bold);
grid-template-columns: max-content max-content;
}
.pickInfo {
align-self: center;
font-size: var(--fonts-xxxs);
}
.pickInfoTeam1 {
color: var(--color-info);
}
.pickInfoTeam2 {
color: var(--color-error-high);
}
.pickInfoTiebreaker {
color: var(--color-warning-high);
}
.pickInfoBoth {
color: var(--color-success-high);
}
.stageListed {
justify-self: flex-start;
}
.teamWithRoster {
display: flex;
width: 100%;
align-items: center;
}
.teamWithRosterName {
flex: 1;
font-weight: var(--bold);
padding-inline-end: var(--s-4);
text-align: right;
}
.teamWithRosterMembers {
display: flex;
flex: 1;
flex-direction: column;
border-inline-start: 2px solid var(--color-text-accent);
font-size: var(--fonts-xs);
font-weight: var(--semi-bold);
gap: var(--s-2);
padding-inline-start: var(--s-4);
padding-block: var(--s-3);
}
.teamWithRosterMember {
display: grid;
gap: var(--s-1-5);
grid-template-columns: max-content max-content 1fr;
}
.teamWithRosterMemberInactive {
text-decoration: line-through;
color: var(--color-text-high);
text-decoration-thickness: 2px;
}
.teamWithRosterMemberAvatarInactive {
opacity: 0.4;
}
.teamWithRosterMapPool {
display: grid;
grid-template-columns: max-content max-content max-content max-content;
border-radius: var(--rounded);
border: 2px solid var(--color-accent);
width: max-content;
margin: 0 auto;
overflow: hidden;
}
.teamWithRosterMapPool3Columns {
grid-template-columns: max-content max-content max-content;
}
.teamWithRosterMapPoolModeInfo {
background-color: var(--color-bg);
display: flex;
font-size: var(--fonts-xxs);
justify-content: center;
align-items: center;
gap: var(--s-1);
font-weight: var(--semi-bold);
padding-block: var(--s-0-5);
}
.teamWithRosterSeed {
font-size: var(--fonts-xxs);
font-weight: var(--semi-bold);
color: var(--color-text-high);
}
.teamWithRosterTeamName {
word-break: break-word;
}
.teamMemberRow {
list-style: none;
position: relative;
}
.teamMemberName {
overflow: hidden;
color: var(--color-text);
text-overflow: ellipsis;
white-space: nowrap;
max-width: 150px;
display: flex;
align-items: center;
}
.teamMemberNameRole {
position: absolute;
background-color: var(--color-text-accent);
color: var(--color-text-inverse);
font-weight: var(--semi-bold);
width: 12px;
height: 12px;
border-radius: var(--rounded);
font-size: var(--fonts-xxxxs);
display: grid;
place-items: center;
top: 14px;
left: 15px;
}
.teamMemberNameRoleSub {
background-color: var(--color-info);
}
.logoContainer {
display: flex;
align-items: center;
gap: var(--s-4);
}
.logo {
border-radius: 100%;
min-width: 124px;
}
.title {
font-size: var(--fonts-xl);
font-weight: var(--bold);
}
.badge {
text-transform: uppercase;
font-size: var(--fonts-xxs);
font-weight: var(--bold);
padding: var(--s-0-5) var(--s-2);
border-radius: var(--rounded);
place-items: center;
width: max-content;
display: flex;
gap: var(--s-2);
}
.badgeRanked {
background-color: var(--color-info-low);
color: var(--color-info-high);
}
.badgeUnranked {
background-color: var(--color-success-low);
color: var(--color-success-high);
}
.badgeModes {
background-color: var(--color-bg-high);
}
.infoIcon {
width: 18px;
padding: var(--s-1) 0;
}
.infoDescription {
white-space: pre-wrap;
}
.infoDescription > :is(h1, h2, h3, h4, h5, h6) {
margin-block-end: var(--s-6);
line-height: 1.4;
}
.infoDescription > :is(h2, h3, h4, h5, h6) {
margin-block-start: var(--s-6);
}
.infoDescription > h1 {
font-size: var(--fonts-xl);
}
.infoDescription > :is(h2, h3, h4, h5, h6) {
font-size: var(--fonts-lg);
}
.infoDescription > :is(h3, h4, h5, h6) {
font-size: var(--fonts-md);
}
.infoDescription > ul:has(+ p) {
margin-block-end: var(--s-6);
}
.by {
color: var(--color-text-high);
font-size: var(--fonts-sm);
font-weight: var(--semi-bold);
}
.sectionHeader {
font-size: var(--fonts-sm);
}
.section {
background-color: var(--color-bg-high);
margin-inline: -12px;
padding: var(--s-4) var(--s-3);
}
.sectionInputContainer {
width: 16rem;
}
.sectionWarning {
font-size: var(--fonts-xs);
font-weight: var(--semi-bold);
text-align: center;
color: var(--color-text-high);
}
.sectionMapSelectRow {
display: flex;
align-items: center;
gap: var(--s-4);
white-space: nowrap;
}
.sectionIcon {
width: 2rem;
}
.rosterGrid {
display: grid;
grid-template-columns: repeat(auto-fill, 110px);
gap: var(--s-4);
margin-block-start: var(--s-2);
width: 100%;
justify-content: center;
}
.rosterGridMemberName {
max-width: 110px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.missingPlayer {
width: 62px;
height: 62px;
font-size: 32px;
border-radius: 100%;
border: 2px solid var(--color-accent-low);
display: grid;
place-items: center;
margin: 0 auto;
}
.missingPlayerOptional {
border: 2px dashed var(--color-text-accent);
color: var(--color-text-accent);
}
.inviteContainer {
display: flex;
flex-direction: column;
gap: var(--s-12);
align-items: center;
}
.seedsForm {
width: 100%;
display: flex;
align-items: center;
}
.seedsOrderButton {
margin-block-start: var(--s-2);
margin-inline-end: auto;
}
/* TODO: overflow-x scroll */
.seedsTeamsListRow {
display: grid;
width: 100%;
align-items: center;
padding: var(--s-1-5) var(--s-3);
border-radius: var(--rounded);
column-gap: var(--s-1);
font-size: var(--fonts-xs);
grid-template-columns: 1.5rem 2rem 8rem 3rem 1fr;
list-style: none;
row-gap: var(--s-1-5);
}
.seedsTeamsListRow.sortable:not(.disabled) {
cursor: grab;
}
.seedsTeamsListRow.active {
cursor: grabbing;
}
.seedsTeamsListRow.sortable:active:not(.disabled) {
cursor: grabbing !important;
}
.seedsTeamsContainerHeader {
font-weight: var(--bold);
}
.seedsTeamName {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.seedsTeamMember {
display: grid;
grid-template-columns: max-content max-content;
grid-column-gap: var(--s-2-5);
background-color: var(--color-bg-high);
border-radius: var(--rounded);
padding: var(--s-1) var(--s-3);
place-items: center;
}
.seedsTeamsListRow.active .seedsTeamMember {
background-color: var(--color-bg-higher);
}
.seedsTeamMemberName {
grid-column: 1 / span 2;
font-weight: var(--semi-bold);
}
.seedsLonelyStat {
grid-column: 1 / span 2;
}
.seedsPlusInfo {
display: inline-flex;
align-items: center;
margin-inline-end: var(--s-4);
min-width: 2rem;
}
.streamUserContainer {
font-size: var(--fonts-xs);
display: flex;
gap: var(--s-2);
align-items: center;
font-weight: var(--semi-bold);
}
.streamViewerCount {
font-size: var(--fonts-xs);
display: flex;
gap: var(--s-2);
align-items: center;
margin-block-start: -5px;
color: var(--color-text-high);
}
.streamViewerCount > svg {
width: 0.75rem;
}
.teamStats {
border-radius: var(--rounded);
padding: var(--s-4);
display: grid;
grid-template-columns: 1fr 1fr;
gap: var(--s-4);
margin: 0 auto;
}
.teamStat {
display: grid;
grid-template-columns: 1fr;
grid-template-rows: 1fr 2fr 1fr;
place-items: center;
font-weight: var(--bold);
text-align: center;
}
.teamStatTitle {
font-size: var(--fonts-sm);
color: var(--color-text-high);
}
.teamStatMain {
font-size: var(--fonts-xl);
font-weight: var(--semi-bold);
}
.teamStatMain sup {
font-size: var(--fonts-sm);
font-weight: var(--semi-bold);
}
.teamStatSub {
color: var(--color-text-high);
font-size: var(--fonts-sm);
}
@media screen and (min-width: 640px) {
.section {
margin: 0;
border-radius: var(--rounded);
}
.teamStats {
grid-template-columns: 1fr 1fr 1fr 1fr;
}
}
.teamSets {
display: flex;
flex-direction: column;
max-width: 32rem;
margin: 0 auto;
gap: var(--s-8);
}
.teamSet {
display: flex;
flex-direction: column;
gap: var(--s-2-5);
background-color: var(--color-bg-high);
border-radius: var(--rounded);
padding: var(--s-3) var(--s-6);
}
.teamSetTopContainer {
display: flex;
justify-content: center;
gap: var(--s-2);
flex-direction: column;
align-items: center;
text-align: center;
}
@media screen and (min-width: 480px) {
.teamSetTopContainer {
flex-direction: row;
align-items: flex-end;
}
}
.teamSetScore {
font-size: var(--fonts-xl);
font-weight: var(--bold);
white-space: nowrap;
}
.teamSetRoundName {
font-size: var(--fonts-lg);
font-weight: var(--semi-bold);
color: var(--color-text-high);
margin-block-end: 2px;
}
.teamSetMode {
background-color: var(--color-bg-high);
border-radius: 100%;
padding: var(--s-2);
border: 2px solid var(--color-success);
}
.teamSetModeLoss {
border-color: var(--color-bg-higher);
}
.teamSetStageContainer {
display: flex;
flex-direction: column;
gap: var(--s-2);
align-items: center;
font-size: var(--fonts-xs);
font-weight: var(--semi-bold);
color: var(--color-text);
}
.teamSetOpponent {
display: grid;
grid-template-areas: "vs team" "vs members";
grid-template-columns: max-content 1fr;
column-gap: var(--s-4);
row-gap: var(--s-2);
}
.teamSetOpponentVs {
grid-area: vs;
font-size: var(--fonts-xl);
font-weight: var(--bold);
color: var(--color-text-high);
align-self: center;
}
.teamSetOpponentTeam {
grid-area: team;
font-size: var(--fonts-lg);
font-weight: var(--semi-bold);
color: var(--color-text);
}
.teamSetOpponentMembers {
grid-area: members;
display: flex;
gap: var(--s-2);
flex-wrap: wrap;
}
.teamSetOpponentMember {
color: var(--color-text);
display: flex;
gap: var(--s-1);
font-size: var(--fonts-xs);
align-items: center;
}
.overlapDivider {
display: flex;
width: 100%;
align-items: center;
color: var(--color-accent);
font-size: var(--fonts-lg);
}
.overlapDivider::before,
.overlapDivider::after {
flex: 1;
border-bottom: 2px solid var(--color-accent-low);
content: "";
}
.standingsMatchResultSquare {
width: 28px;
height: 28px;
display: grid;
place-items: center;
font-size: var(--fonts-xs);
font-weight: var(--semi-bold);
border: 3px solid var(--color-accent);
border-radius: var(--rounded-sm);
color: var(--color-text);
}
.standingsMatchResultSquareWin {
border-color: var(--color-success);
}
.standingsMatchResultSquareLoss {
border-color: var(--color-error);
}
.standingsTeamName {
min-width: 125px;
word-break: break-word;
display: flex;
gap: var(--s-1-5);
align-items: center;
color: var(--color-text);
}
.standingsDivider {
width: 5px;
background-color: var(--color-accent-low);
border-radius: var(--rounded);
}
.divGrid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(225px, 1fr));
gap: var(--s-4);
}
.divLink {
background-color: var(--color-bg-high);
padding: var(--s-2) var(--s-4);
border-radius: var(--rounded);
font-size: var(--fonts-lg);
width: 100%;
white-space: nowrap;
}
.divLink:focus-visible {
outline: 3px solid var(--color-accent);
outline-offset: 3px;
}
.divLinkParticipant {
outline: 3px solid var(--color-bg-higher);
outline-offset: 3px;
}
.divLinkParticipant svg {
fill: var(--color-accent);
}
.divParticipantCounts {
display: flex;
align-items: center;
color: var(--color-text-high);
font-size: var(--fonts-sm);
gap: var(--s-2);
margin-block-end: var(--s-1);
}
.divParticipantCounts > svg {
width: 1rem;
margin-block-end: 1px;
}
.standingsDividerRow {
background: transparent !important;
height: auto;
}
.standingsDividerPadding {
padding-block: var(--s-2);
background: transparent;
}
.standingsDividerContent {
display: flex;
align-items: center;
width: 100%;
gap: var(--s-2);
}
.standingsDividerLine {
flex: 1;
height: 4px;
border-radius: var(--rounded);
}
.standingsDividerText {
font-size: var(--fonts-xs);
font-weight: var(--bold);
text-transform: uppercase;
letter-spacing: 0.5px;
white-space: nowrap;
padding: var(--s-0-5) var(--s-1-5);
border-radius: var(--rounded);
}
.standingsDividerQualifiedLine {
background-color: var(--color-success);
}
.standingsDividerQualifiedText {
color: var(--color-success);
background-color: transparent;
}
.standingsDividerEliminatedLine {
background-color: var(--color-error);
}
.standingsDividerEliminatedText {
color: var(--color-error);
background-color: transparent;
}