sendou.ink/app/styles/common.css
Kalle e7bbb565be
SendouQ (#1455)
* Tables

* Clocks

* Maplist preference selector

* Fix SSR

* Nav icon

* RankedOrScrim

* Map pool

* Create group

* Redirect logic

* Persist map pool

* Advance from preparing page

* Rename query

* Fix merge

* Fix migration order

* Seed groups

* Find looking groups SQL

* Renders something

* More UI work

* Back to 30min

* Likes/dislikes

* Always return own group

* Fix like order

* 3 tc/rm/cb -> 2

* Show only 3 weapons

* Pass group size

* Handle both liked and liked by same group

* Fix SQL

* Group preference frontend work

* Morphing

* Styling

* Don't show group controls if not manager

* Give/remove manager

* Leave group

* Leave with confirm

* Delete likes when morphing groups

* Clocks consistency

* Remove bad invariant

* Persist settings to local storage

* Fix initial value flashing

* Fix never resolving loading indicator

* REFRESH_GROUP

* Flip animations

* Tweaks

* Auto refresh logic

* Groups of 4 seed

* Reduce throwing

* Load full groups initial

* Create match

* Match UI initial

* Score reporter initial

* Push footer down on match page

* Score reporter knows when set ended

* Score reporting untested

* Show score after report

* Align better

* Look again with same group functionality

* More migrations

* Team on match page

* Show confirmer before reporting score

* Report weapons

* Report weapos again by admin + skill changing

* Handle no tiebreaker given to MapPool

* Remove unranked

* Remove support for "team id skill"

* no-wrap -> nowrap

* Preparing page work

* Use common GroupCard component

* Add some metas

* MemberAdder in looking page

* Fix GroupCard actions

* Fix SZ only map list including other modes

* Add season info

* Prompt login

* Joining team

* Manage group on preparing page

* Manage group on preparing page

* Seed past matches

* Add to seed

* No map list preference when full group + fix expiry

* Fix skill matchesCount calculation

* Tiers initial work

* Some progress on tiers

* Tiering logic

* MMR in group cards

* Name to challenge

* Team MMR

* Big team rank icons

* Adjust todos

* Match score report with confirm

* Allow regular members to report score

* Handle reporting weapons edge cases

* Add tier images

* Improve GroupCard spacing

* Refactor looking page

* Looking mobile UI

* Calculate skill only for current season

* Divide groups visually when reporting weapons

* Fix match page weapons sorting

* Add cache to user skills+tier calculation

* Admin report match score

* Initial leaderboard

* Cached leaderboard

* Weapon category lb's

* Populate SkillTeamUser in SendouQ

* Team leaderboard filtered down

* Add TODOs

* Seasons initlal

* Season weapons initial

* Weapons stylized

* Show rest weapons as +

* Hide peak if same as current

* Load matches SQL initial

* Season matches UI initial

* Take user id in account

* Add weapons

* Paginated matches

* Fix pages count logic

* Scroll top on data change

* Day headers for matches

* Link from user page to user seasons page

* Summarize maps + ui initial

* Map stats

* Player info tabs

* MMR chart

* Chart adjustments

* Handle basing team MMR on player MMR

* Set initial MMR

* Add info about discord to match page

* Season support to tournaments

* Get tournament skills as well for the graph

* WIP

* New team rating logic + misc other

* tiered -> tiered.server

* Update season starting time

* TODOs

* Add rules page

* Hide elements correctly when off-season

* Fix crash when only one player with skill

* How-to video

* Fix StartRank showing when not logged in

* Make user leaderboard the default

* Make Skill season non-nullable

* Add suggested pass to match

* Add rule

* identifierToUserIds helper

* Fix tiers not showing
2023-08-12 22:42:54 +03:00

1265 lines
23 KiB
CSS

*,
*::before,
*::after {
box-sizing: border-box;
}
body {
width: 100%;
background-color: var(--bg);
color: var(--text);
font-family: Lexend, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: antialiased;
line-height: 1.55;
overflow-x: hidden;
-webkit-tap-highlight-color: transparent;
}
*: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);
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;
}
: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: var(--theme-very-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).big {
font-size: var(--fonts-md);
padding-block: var(--s-2-5);
padding-inline: var(--s-6);
}
: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 !important;
}
:is(button, .button).tiny > .button-icon {
width: 1rem;
margin-inline-end: var(--s-1);
}
/* :not([name="text"]) workaround not to select textarea on map planner */
textarea:not(.plain, [name="text"]) {
width: 18rem;
max-width: 100%;
height: 8rem;
padding: var(--s-2-5) var(--s-3);
border: 2px solid var(--border);
border-radius: var(--rounded-sm);
accent-color: var(--theme-secondary);
background-color: var(--bg-input);
color: var(--text);
outline: none;
overflow-wrap: normal;
overflow-x: auto;
}
progress {
accent-color: var(--theme);
}
textarea:not(.plain, [name="text"]):focus-within {
border-color: transparent;
/* TODO: rectangle on Safari */
outline: 2px solid var(--theme);
}
input:not(.plain, [type="radio"]) {
width: var(--input-width, 12rem);
}
input:not(.plain) {
height: 1rem;
padding: var(--s-4) var(--s-3);
border: 2px solid var(--border);
border-radius: var(--rounded-sm);
accent-color: var(--theme-secondary);
background-color: var(--bg-input);
color: var(--text);
outline: none;
}
input:user-invalid {
border-color: transparent;
outline: 2px solid var(--theme-error);
}
input:not(.plain, .combobox-input):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;
}
[list]::-webkit-calendar-picker-indicator {
display: none !important;
}
label {
display: block;
font-size: var(--fonts-xs);
font-weight: var(--bold);
margin-block-end: var(--label-margin);
}
details summary {
cursor: pointer;
user-select: none;
}
.summary {
border-radius: var(--rounded);
background-color: var(--bg-darker-transparent);
font-size: var(--fonts-xs);
font-weight: var(--semi-bold);
padding-block: var(--s-1);
padding-inline: var(--s-2);
}
fieldset {
border: none;
border-radius: var(--rounded);
background-color: var(--bg-lighter);
font-size: var(--fonts-sm);
padding-block-end: var(--s-3);
padding-inline: var(--s-3);
}
legend {
border-radius: var(--rounded-sm);
background-color: transparent;
font-size: var(--fonts-xs);
font-weight: var(--bold);
}
article {
white-space: pre-wrap;
}
select {
all: unset;
width: 100%;
box-sizing: border-box;
border: 2px solid var(--border);
border-radius: var(--rounded-sm);
background: var(--select-background, var(--bg-input));
/* TODO: Get color from CSS var */
background-image: url('data:image/svg+xml;utf8,<svg width="17px" 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.5" d="M19 9l-7 7-7-7" /></svg>');
background-position: center right var(--s-3);
background-repeat: no-repeat;
cursor: pointer;
font-weight: 500;
padding-block: 3.5px;
padding-inline: var(--s-3) var(--s-8);
}
select:disabled {
cursor: not-allowed;
opacity: 0.5;
transform: initial;
}
/* Temporary solution for issue: https://github.com/Sendouc/sendou.ink/issues/1141 */
.light select {
/* TODO: Get color from CSS var */
background-image: url('data:image/svg+xml;utf8,<svg width="1rem" color="rgb(0 0 0 / 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>');
}
select::selection {
overflow: hidden;
font-weight: bold;
}
select:focus {
outline: 2px solid var(--theme);
}
table {
width: 100%;
border-collapse: collapse;
border-spacing: 0 var(--s-1-5);
font-size: var(--fonts-xs);
text-align: left;
}
table > thead {
font-size: var(--fonts-xxs);
}
table > tbody > tr:nth-child(2n) {
background-color: var(--bg);
}
table > thead > tr > th {
padding-inline: var(--s-1);
}
table > tbody > tr > td {
padding-inline: var(--s-1);
}
td > input[type="checkbox"] {
vertical-align: middle;
}
hr {
border-color: var(--theme-transparent);
}
abbr:not([title]) {
text-decoration: none;
}
abbr[title] {
cursor: help;
}
dialog {
width: min(90%, 24rem);
border: 0;
border-radius: var(--rounded);
margin: auto;
background-color: var(--bg);
color: var(--text);
}
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;
}
}
.toggle {
all: unset;
position: relative;
display: inline-flex;
width: var(--s-11);
height: var(--s-6);
align-items: center;
border-radius: var(--rounded);
background-color: var(--theme-transparent);
cursor: pointer;
}
.toggle.tiny {
width: var(--s-6);
height: var(--s-3);
}
.toggle.checked {
background-color: var(--theme-vibrant);
}
.toggle:active {
transform: initial;
}
.toggle-dot {
display: inline-block;
width: var(--s-4);
height: var(--s-4);
border-radius: 50%;
background-color: white;
transform: translateX(var(--s-1));
transition: transform 0.2s ease;
}
.toggle-dot.tiny {
width: var(--s-3);
height: var(--s-3);
transform: translateX(-0.2rem);
}
.toggle-dot.checked {
transform: translateX(var(--s-6));
}
.toggle-dot.checked.tiny {
transform: translateX(var(--s-4));
}
.button-text-paragraph {
display: flex;
gap: var(--s-1);
}
.button-text-paragraph > button {
font-size: var(--fonts-sm);
font-weight: var(--semi-bold);
margin-block-end: 0.125rem;
}
.input-container {
display: flex;
border: 2px solid var(--border);
border-radius: var(--rounded-sm);
accent-color: var(--theme-secondary);
background-color: var(--bg-input);
color: var(--text);
font-size: var(--fonts-sm);
outline: none;
}
.input-container:focus-within {
border-color: transparent;
/* TODO: rectangle on Safari */
outline: 2px solid var(--theme);
}
/* stylelint-disable no-descending-specificity */
.input-container > input {
width: 100%;
border: none;
margin: auto 0;
}
/* stylelint-enable no-descending-specificity */
.input-container > input:focus-within {
outline: none;
}
.input-addon {
display: grid;
border-radius: var(--rounded-sm) 0 0 var(--rounded-sm);
background-color: var(--bg-lighter);
color: var(--text-lighter);
font-size: var(--fonts-xs);
font-weight: var(--semi-bold);
padding-inline: var(--s-2);
place-items: center;
}
.sub-nav__container {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: var(--s-4);
margin-block-end: var(--s-8);
margin-block-start: -12px;
}
.sub-nav__container__secondary {
margin-block-end: var(--s-2);
}
.sub-nav__link__container {
display: flex;
max-width: 110px;
flex: 1;
flex-direction: column;
align-items: center;
color: var(--text);
gap: var(--s-1-5);
}
.sub-nav__link__container.active {
color: var(--theme-secondary);
}
.sub-nav__link {
width: 100%;
padding: var(--s-1) var(--s-4);
border-radius: var(--rounded);
background-color: var(--bg-lightest);
cursor: pointer;
font-size: var(--fonts-xs);
text-align: center;
white-space: nowrap;
}
.sub-nav__link__secondary {
font-size: var(--fonts-xxs);
padding: var(--s-0-5) var(--s-2);
background-color: var(--bg-lighter-solid);
}
.sub-nav__container.compact .sub-nav__link {
padding: var(--s-1) var(--s-2);
}
.sub-nav__border-guy {
width: 78%;
height: 3px;
border-radius: var(--rounded);
background-color: var(--bg-lightest);
visibility: hidden;
}
.sub-nav__border-guy__secondary {
height: 2.5px;
background-color: var(--bg-lighter-solid);
}
.sub-nav__link__container.active > .sub-nav__border-guy {
visibility: initial;
}
.popover-content {
z-index: 1;
max-width: 20rem;
padding: var(--s-2);
border: 2px solid var(--border);
border-radius: var(--rounded);
background-color: var(--bg-darker);
font-size: var(--fonts-sm);
font-weight: var(--semi-bold);
white-space: pre-wrap;
}
.articles-list {
display: flex;
flex-direction: column;
padding: 0;
gap: var(--s-6);
list-style: none;
}
.articles-list__title {
color: var(--theme);
font-size: var(--fonts-md);
}
.combobox-wrapper {
position: relative;
}
.combobox-input {
width: var(--input-width, 12rem);
}
.combobox-input.fullWidth {
width: 100%;
}
.combobox-options {
position: absolute;
z-index: 2;
width: var(--input-width, 12rem);
border-radius: var(--rounded);
margin-top: var(--s-2);
background-color: var(--bg-darker);
color: var(--text);
font-size: var(--fonts-sm);
padding-block: var(--s-3);
padding-inline: 0;
}
.combobox-options.fullWidth {
width: 100%;
}
.combobox-options.empty {
padding-block: var(--s-1-5);
}
.combobox-item {
display: flex;
align-items: center;
padding: var(--s-1) var(--s-3);
gap: var(--s-2);
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);
}
.article > p {
padding-block: var(--s-2-5);
}
.calendar__event__tags {
display: flex;
max-width: var(--tags-max-width, 18rem);
flex-wrap: wrap;
padding: 0;
font-size: var(--fonts-xxs);
font-weight: var(--semi-bold);
gap: var(--s-1);
list-style: none;
}
.calendar__event__tags > li {
display: flex;
align-items: center;
border-radius: var(--rounded);
padding-inline: var(--s-1-5);
}
.calendar__event__tag {
color: var(--black-text);
}
.calendar__event__badge-tag {
color: var(--badge-text);
}
.calendar__event__tag-delete-button {
margin-left: auto;
}
.calendar__event__tag-badges {
display: flex;
margin-inline-start: var(--s-1);
}
.calendar__event__tag-delete-button > svg {
width: 0.85rem !important;
color: var(--black-text);
margin-inline-end: 0 !important;
margin-inline-start: var(--s-1);
}
.alert {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: center;
border-radius: var(--rounded);
background-color: var(--theme-info-transparent);
color: var(--text);
font-size: var(--fonts-sm);
font-weight: var(--semi-bold);
gap: var(--s-2);
line-height: 1.2;
margin-inline: auto;
padding-block: var(--s-1-5);
padding-inline-end: var(--s-4);
padding-inline-start: var(--s-3);
}
.alert.tiny {
font-size: var(--fonts-xs);
}
.alert.warning {
background-color: var(--theme-warning-transparent);
}
.alert.error {
background-color: var(--theme-error-transparent);
}
.alert.success {
background-color: var(--theme-success-transparent);
}
.avatar {
border-radius: 50%;
background-color: var(--bg-lightest);
}
/* Hack to deal with Safari bug when the image is loading. See: https://stackoverflow.com/a/73466877 */
@media not all and (min-resolution: 0.001dpcm) {
img[loading="lazy"] {
clip-path: inset(0.5px);
}
}
.alert > svg {
height: 1.75rem;
fill: var(--theme-info);
}
.alert.tiny > svg {
height: 1.25rem;
}
.alert.warning > svg {
fill: var(--theme-warning);
}
.alert.error > svg {
fill: var(--theme-error);
}
.alert.success > svg {
fill: var(--theme-success);
}
.form-errors {
font-size: var(--fonts-sm);
}
.form-errors > h4 {
color: var(--theme-error);
}
.section > div {
padding: var(--s-2);
border-radius: var(--rounded);
background-color: var(--bg-darker);
}
.section > h2 {
color: var(--text-lighter);
font-size: var(--fonts-md);
}
.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.smedium {
gap: var(--s-6);
}
.stack.lg {
gap: var(--s-8);
}
.stack.xl {
gap: var(--s-12);
}
.stack.horizontal {
flex-direction: row;
}
.lock-scroll {
overflow: hidden;
height: unset;
}
/* https://stackoverflow.com/questions/50917016/make-a-hidden-field-required/50917245#comment117565184_50917245 */
.hidden-input-with-validation {
position: absolute;
width: 0;
height: 0;
border: none;
opacity: 0;
pointer-events: none;
}
.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);
}
.info-message {
display: block;
color: var(--text-lighter);
font-size: var(--fonts-xs);
margin-block-start: var(--label-margin);
}
.builds-container {
display: grid;
justify-content: center;
column-gap: var(--s-3);
grid-template-columns: repeat(auto-fit, 240px);
row-gap: var(--s-4);
}
.builds-buttons {
display: flex;
justify-content: space-between;
}
.builds-buttons__link {
display: flex;
flex-direction: column;
gap: var(--s-2);
}
@media screen and (min-width: 480px) {
.builds-buttons__link {
flex-direction: row;
}
}
.build__filter {
display: flex;
flex-direction: column;
padding: var(--s-2-5);
border-radius: var(--rounded);
background-color: var(--bg-lighter);
gap: var(--s-2);
}
@media screen and (min-width: 640px) {
.build__filter {
flex-direction: row;
}
}
.build__filter__ability {
display: flex;
width: 32px;
align-items: center;
}
.build__filter__ap-select {
width: 75px;
}
.build {
position: relative;
display: flex;
flex-direction: column;
padding: var(--s-3);
border-radius: var(--rounded);
background-color: var(--bg-lighter);
gap: var(--s-3);
}
.build__private {
background-color: var(--bg-lighter-transparent);
}
.build__private-text {
display: flex;
justify-content: center;
font-weight: var(--semi-bold);
gap: var(--s-1);
}
.build__private-icon {
width: 16px;
margin-block-end: var(--s-1);
stroke-width: 2px;
}
.build__title {
overflow: hidden;
height: 2.5rem;
font-size: var(--fonts-sm);
line-height: 1.25;
word-wrap: break-all;
}
.build__top-row {
display: flex;
justify-content: space-between;
}
.build__date-author-row {
display: flex;
font-size: var(--fonts-xxs);
gap: var(--s-1);
}
.build__modes {
position: absolute;
right: 0;
display: flex;
min-width: max-content;
margin-top: -21px;
gap: var(--s-1);
}
.build__weapon {
position: relative;
padding: var(--s-0-5);
border-radius: 50%;
background-color: var(--bg-darker-very-transparent);
}
.build__top500 {
position: absolute;
top: -14px;
right: 8px;
}
.build__weapon-text {
padding-left: var(--s-1);
color: var(--text-lighter);
font-size: var(--fonts-xxs);
font-weight: var(--semi-bold);
}
.build__weapons {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: center;
gap: var(--s-1);
}
.build__gear-abilities {
display: grid;
column-gap: var(--s-1);
grid-template-columns: repeat(5, max-content);
place-items: center;
row-gap: var(--s-2);
}
.build__gear {
border-radius: 50%;
background-color: var(--bg-darker-very-transparent);
overflow: visible;
}
.build__ability {
width: var(--ability-size);
height: var(--ability-size);
padding: 0;
border: 2px solid var(--theme-transparent);
border-radius: 50%;
border-right: 0;
border-bottom: 0;
background: var(--bg-ability);
background-size: 100%;
box-shadow: 0 0 0 1px var(--bg-ability);
transform: scale(1);
transition: all 0.1s ease;
user-select: none;
}
.build__ability.is-drag-target {
background: var(--abilities-button-bg);
transform: scale(1.15);
}
.build__ability.drag-started:not(.drop-allowed) {
filter: grayscale(1);
opacity: 0.3;
pointer-events: none;
}
.build__ability.readonly,
.build__ability.readonly:active {
cursor: default;
transform: none;
}
.build__bottom-row {
display: flex;
height: 100%;
align-items: flex-end;
justify-content: center;
gap: var(--s-4);
}
.build__icon {
width: 1.2rem;
height: 1.2rem;
}
.build__small-text {
font-size: var(--fonts-xxs) !important;
}
.ability-selector__container {
display: flex;
width: 100%;
flex-direction: column;
justify-content: center;
gap: var(--s-3);
}
.ability-selector__slots {
display: grid;
margin: 0 auto;
gap: var(--s-2);
grid-template-columns: repeat(4, max-content);
place-items: center;
}
.ability-selector__ability-buttons {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: var(--s-1);
}
.ability-selector__ability-button {
padding: var(--s-0-5);
border-color: var(--abilities-button-bg);
border-radius: 50%;
background-color: var(--abilities-button-bg);
}
.ability-selector__ability-button.is-dragging {
box-shadow: 0 0 100px inset rgb(255 255 255 / 25%);
}
.colors__grid {
display: grid;
width: 100%;
justify-content: center;
font-size: var(--fonts-sm);
font-weight: var(--bold);
grid-template-columns: 3fr 2fr 1fr;
row-gap: var(--s-3);
}
.playwire__img {
display: block;
width: 200px;
margin-right: auto;
margin-left: auto;
}
.playwire__text {
font-size: var(--fonts-sm);
text-align: center;
}
.top-leaderboard {
min-height: 110px;
margin-block-start: var(--s-20);
}
.youtube__container {
position: relative;
width: 100%;
height: 0;
padding-bottom: 56.25%;
}
.youtube__iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.divider {
display: flex;
width: 100%;
align-items: center;
color: var(--theme);
font-size: var(--fonts-lg);
text-align: center;
}
.divider::before,
.divider::after {
flex: 1;
border-bottom: 2px solid var(--theme-transparent);
content: "";
}
.divider:not(:empty)::before {
margin-right: 0.25em;
}
.divider:not(:empty)::after {
margin-left: 0.25em;
}
.discord-icon {
width: 1rem;
display: inline;
fill: #7289da;
}
.youtube-icon {
width: 1rem;
display: inline;
fill: #f00;
}
.art__dialog__image-container {
width: 100vw;
height: 90vh;
display: flex;
justify-content: center;
align-items: center;
background-color: transparent;
padding: 0;
overflow: visible;
flex-direction: column;
}
.art__thumbnail {
cursor: pointer;
transition: all 0.2s ease;
}
.art__thumbnail:hover {
scale: 1.025;
}
.art__dialog__image-container:focus-visible {
outline: none;
}
.art__dialog__tag {
background-color: #fff;
border-radius: var(--rounded);
color: #000;
font-size: var(--fonts-xxs);
padding-inline: var(--s-1);
margin-block-start: var(--s-1);
margin-block-end: var(--s-0-5);
}
.art__dialog__tag__user {
background-color: var(--theme);
}
.art__dialog__description {
font-size: var(--fonts-sm);
text-align: center;
color: #fff;
}
.art__dialog__image-container img {
max-width: 100%;
max-height: 100%;
object-fit: contain;
}
.art__comms-header {
font-weight: var(--bold);
color: var(--theme-secondary);
font-size: var(--fonts-sm);
}
.art__delete-tag-button {
margin-block-start: -5px;
margin-inline-start: 1px;
}
.art__creation-mode-switcher-container {
height: 20px;
}
.art__tags-container {
display: flex;
column-gap: var(--s-2);
row-gap: var(--s-0-5);
justify-content: center;
flex-wrap: wrap;
margin-block-start: var(--s-0-5);
}
.pagination__dot {
width: 0.6rem;
height: 0.6rem;
border-radius: 50%;
background-color: var(--theme-transparent);
transition: all 0.2s ease;
}
.pagination__dot__active {
background-color: var(--theme);
}
.tier__container {
display: grid;
}
.tier__img {
grid-column: 1;
grid-row: 1;
}
.chart__container {
height: 175px;
background-color: var(--bg-lighter);
border-radius: var(--rounded);
}
#nprogress .bar {
margin-top: 3rem !important;
background: var(--theme) !important;
}
#nprogress .spinner {
display: none !important;
}
#nprogress .peg {
display: none !important;
}