Files
test/frontend/src/styles/account.scss
Benjamin Falch 2bc741fb78
Some checks failed
Mark Stale PRs / stale (push) Has been cancelled
adding monkeytype
2026-04-23 13:53:44 +02:00

615 lines
12 KiB
SCSS

.pageAccount {
height: 100%;
.accountVerificatinNotice {
background: var(--bg-color);
border-radius: var(--roundness);
box-shadow: 0 0 0 0.2rem var(--sub-alt-color);
// background: color-mix(in srgb, var(--sub-alt-color) 50%, transparent);
// background: var(--sub-alt-color);
display: grid;
grid-template-columns: auto 1fr auto;
align-items: center;
gap: 1rem;
padding: 1rem;
.icon {
font-size: 2rem;
margin-left: 1rem;
margin-right: 1rem;
color: var(--sub-color);
}
button {
padding: 1rem;
}
}
.content {
gap: 2rem;
}
.sendVerificationEmail {
cursor: pointer;
}
.triplegroup {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
gap: 1rem;
.text {
align-self: center;
color: var(--sub-color);
}
}
.group {
&.estimatedWordsTyped {
display: flex;
align-items: center;
justify-content: center;
.title {
margin-right: 1rem;
}
}
&.resultBatches {
display: grid;
grid-template-areas: "bar button" "text text";
grid-template-columns: 2fr 1fr;
column-gap: 1rem;
.title {
grid-area: title;
margin-bottom: 0;
}
& > .text {
grid-area: text;
text-align: center;
}
button {
grid-area: button;
}
.leftText,
button,
.rightText {
align-self: center;
}
.bars {
display: grid;
grid-template-columns: auto 1fr auto;
gap: 0.25rem 1rem;
}
.rightText {
color: var(--sub-color);
font-size: 0.8em;
line-height: 1.25em;
}
.bar {
height: 0.5rem;
border-radius: var(--roundness);
background: var(--sub-alt-color);
position: relative;
align-self: center;
.fill {
transition: width 0.125s;
height: 100%;
width: 0%;
background: var(--main-color);
border-radius: var(--roundness);
}
//not used for now
.indicator {
position: absolute;
width: max-content;
bottom: 0;
.line {
width: 0.1em;
height: 1.5em;
background: var(--sub-color);
border-radius: var(--roundness);
right: 0;
position: absolute;
top: 0;
}
.text {
font-size: 0.5em;
color: var(--sub-color);
margin-right: 1em;
}
}
}
}
&.noDataError {
margin: 20rem 0;
text-align: center;
}
&.aboveHistory {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
.exportCSV {
grid-column: 3/4;
}
}
&.createdDate {
text-align: center;
color: var(--sub-color);
}
&.personalBestTables {
.tables {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 2rem;
}
}
.chart canvas {
width: 100% !important;
}
&.history {
table td {
-webkit-appearance: unset;
}
table tr {
border-radius: var(--roundness);
}
.active {
animation: accountRowHighlight 5s linear 0s 1;
}
.loadMoreButton {
background: var(--sub-alt-color);
color: var(--text-color);
text-align: center;
padding: 0.5rem;
border-radius: var(--roundness);
cursor: pointer;
-webkit-transition: 0.25s;
transition: 0.25s;
-webkit-user-select: none;
display: -ms-grid;
display: grid;
-ms-flex-line-pack: center;
align-content: center;
margin-top: 1rem;
&:hover,
&:focus {
color: var(--bg-color);
background: var(--text-color);
}
}
}
.title {
color: var(--sub-color);
// margin-bottom: 0.25em;
}
.avgres {
font-size: 0.75em;
}
.val {
font-size: 3rem;
line-height: 1.1;
}
.chartjs-render-monitor {
width: 100% !important;
}
&.chart {
position: relative;
.above {
display: flex;
justify-content: center;
margin-bottom: 1rem;
color: var(--sub-color);
flex-wrap: wrap;
row-gap: 0.5em;
.group {
display: flex;
align-items: center;
}
.fas,
.punc {
margin-right: 0.25rem;
}
.spacer {
width: 1rem;
}
}
.below {
text-align: center;
color: var(--sub-color);
margin-top: 1rem;
display: grid;
grid-template-columns: auto 500px;
gap: 1rem;
align-items: center;
.text {
height: min-content;
}
.buttons {
font-size: 0.75rem;
display: grid;
gap: 0.5rem;
grid-template-columns: 1fr 1fr 1fr 1fr;
}
}
.chart {
height: 400px;
}
.chartPreloader {
position: absolute;
width: 100%;
background: rgba(0, 0, 0, 0.5);
height: 100%;
display: grid;
align-items: center;
justify-content: center;
font-size: 5rem;
text-shadow: 0 0 3rem black;
}
}
}
table {
border-spacing: 0;
border-collapse: collapse;
color: var(--text-color);
td {
padding: 0.5rem 0.5rem;
}
thead {
color: var(--sub-color);
font-size: 0.75rem;
}
tbody tr:nth-child(odd) {
background: var(--sub-alt-color);
}
tbody td:nth-child(1) {
border-radius: var(--roundness) 0 0 var(--roundness);
}
tbody td:last-child {
border-radius: 0 var(--roundness) var(--roundness) 0;
}
td.infoIcons span {
margin: 0 0.1rem;
}
.miniResultChartButton {
transition: 0.25s;
cursor: pointer;
color: var(--text-color);
&:hover {
opacity: 1;
}
&.loading {
pointer-events: none;
}
&.disabled .fas {
opacity: 0.5;
color: var(--sub-color);
}
}
}
td:has(.resultEditTagsButton) {
padding: 0;
}
.resultEditTagsButton {
opacity: 0.5;
&.active {
color: var(--text-color);
}
&:hover,
&:focus-visible,
&.active {
opacity: 1;
}
}
//remove flashHighlight from .group.History .active
.group.history .resultEditTagsButton {
animation: none;
}
.group {
.buttonsAndTitle {
height: fit-content;
display: grid;
gap: 0.5rem;
color: var(--sub-color);
.title {
display: flex;
align-items: baseline;
.fab,
.fas,
.far {
margin-right: 0.5em;
}
}
}
&.presetFilterButtons {
.buttons {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr));
gap: 1rem;
.filterPresets {
display: grid;
grid-template-columns: 1fr auto;
gap: 0.5rem;
}
}
}
&.topFilters {
.buttons {
display: flex;
justify-content: space-evenly;
gap: 1rem;
button {
width: 100%;
}
}
}
//advanced filters
&.filterButtons {
gap: 1rem;
display: grid;
grid-template-columns: 1fr 1fr;
.buttons {
display: grid;
grid-auto-flow: column;
gap: 0.5rem;
}
.tripleSelectsColumn {
grid-column: 1/-1;
display: flex;
gap: 1rem;
flex-wrap: wrap;
.buttonsAndTitle {
flex-grow: 1;
min-width: 20rem;
}
}
&.testDate .buttons,
&.languages .buttons,
&.layouts .buttons,
&.funbox .buttons,
&.tags .buttons {
grid-template-columns: repeat(4, 1fr);
grid-auto-flow: unset;
}
}
}
}
.testActivity {
// width: max-content;
// justify-self: center;
background: var(--sub-alt-color);
border-radius: var(--roundness);
padding: 1rem;
display: flex;
justify-content: center;
--gap-size: 0.25em;
--font-size: 1em;
.wrapper {
width: 100%;
max-width: 80em;
display: grid;
grid-template-columns: min-content 1fr;
grid-template-rows: min-content 1fr min-content;
gap: 1em 1em;
grid-template-areas:
"top top"
"day chart"
"empty month";
// grid-template-areas:
// "empty month"
// "day chart"
// "top top";
// font-size: 0.75rem;
}
.note {
grid-column: span 2;
text-align: center;
font-size: 0.6em;
color: var(--sub-color);
}
.top {
grid-area: top;
display: grid;
grid-template-columns: 15rem 1fr max-content;
grid-template-areas: "title title legend";
gap: 1rem;
&:has(.year) {
grid-template-areas: "year title legend";
}
}
.ss-main {
border: 0.2em solid var(--bg-color);
}
.yearSelect,
.months div,
.days div,
.daysFull div,
.legend {
color: var(--sub-color);
}
.year {
grid-area: year;
font-size: var(--font-size);
}
.title {
grid-area: title;
text-align: left;
font-size: var(--font-size);
color: var(--sub-color);
align-self: center;
}
.months {
grid-area: month;
display: grid;
grid-template-columns: repeat(53, 1fr);
div {
width: 100%;
text-align: center;
}
font-size: var(--font-size);
}
.daysFull {
margin-right: 2rem;
}
.days,
.daysFull {
grid-area: day;
display: grid;
grid-template-rows: repeat(7, 1fr);
align-items: center;
// div {
// display: grid;
// overflow: hidden;
// align-items: center;
// }
.text {
display: flex;
height: 0;
align-items: center;
font-size: var(--font-size);
}
}
.days {
display: none;
}
.nodata {
grid-area: chart;
}
.activity {
grid-area: chart;
display: grid;
grid-auto-flow: column;
grid-template-rows: repeat(7, 1fr);
grid-template-columns: repeat(53, 1fr);
gap: var(--gap-size);
// width: max-content;
// max-width: 100%;
div {
&:hover {
border: 2px solid var(--text-color);
}
&[data-level="filler"]:hover {
border: none;
}
}
}
.legend {
grid-area: legend;
display: flex;
gap: var(--gap-size);
justify-content: flex-end;
align-self: center;
align-items: center;
span {
font-size: var(--font-size);
&:first-child {
margin-right: var(--gap-size);
}
&:last-child {
margin-left: var(--gap-size);
}
}
}
.activity div,
.legend div {
width: 100%;
aspect-ratio: 1;
border-radius: var(--gap-size);
place-self: center;
&[data-level="filler"] {
background: none;
}
&[data-level="0"] {
background-color: color-mix(
in srgb,
var(--bg-color) 50%,
var(--sub-alt-color)
);
background-color: var(--bg-color);
}
&[data-level="1"] {
background-color: color-mix(
in srgb,
var(--main-color) 20%,
var(--sub-alt-color)
);
}
&[data-level="2"] {
background-color: color-mix(
in srgb,
var(--main-color) 50%,
var(--sub-alt-color)
);
}
&[data-level="3"] {
background-color: color-mix(
in srgb,
var(--main-color) 75%,
var(--sub-alt-color)
);
}
&[data-level="4"] {
background-color: var(--main-color);
}
}
.legend div {
width: 1em;
height: 1em;
}
}