Added user login and account creation

This commit is contained in:
Gnarwhal 2021-02-05 04:59:17 -05:00
parent 9ba8a99e82
commit 5a1dd33dfe
Signed by: Gnarwhal
GPG key ID: 0989A73D8C421174
19 changed files with 1276 additions and 874 deletions

View file

@ -0,0 +1,378 @@
html, body {
background-color: var(--background-dark);
margin: 0;
border: 0;
padding: 0;
width: 100%;
height: 100%;
font-family: sans-serif;
}
#navbar {
z-index: 1;
position: fixed;
background-color: var(--accent-value2);
color: var(--foreground);
width: 100%;
min-height: 76px;
height: 5%;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
box-shadow: 0px 0px 5px 10px rgba(0, 0, 0, 0.5);
}
.navbar-section {
width: max-content;
height: 100%;
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
}
.navbar-item {
box-sizing: border-box;
padding: 0px 20px;
width: max-content;
height: 100%;
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
font-size: 24px;
user-select: none;
transition-property: background-color;
transition-duration: 0.15s;
position: relative;
}
.navbar-item:hover {
background-color: var(--accent-value3);
}
.ap-button {
box-sizing: border-box;
padding: 12px 16px;
color: var(--foreground);
background-color: var(--accent-value2);
font-size: 18px;
text-align: center;
border-radius: 4px;
cursor: default;
transition-property: background-color;
transition-duration: 0.15s;
}
.ap-button:hover {
background-color: var(--accent-value3);
}
.ap-button:active {
background-color: var(--accent-value1);
}
#content-body {
position: relative;
top: max(76px, 5%);
width: 100%;
height: calc(100% - max(76px, 5%));
overflow-y: auto;
display: flex;
justify-content: center;
}
.page {
z-index: 0;
box-sizing: border-box;
padding: 0px 64px;
width: 100%;
height: max-content;
min-height: 100%;
background-color: var(--background);
box-shadow: 0px 0px 5px 10px rgba(0, 0, 0, 0.5);
display: none;
}
.page-header {
box-sizing: border-box;
padding: 64px 0px;
width: 100%;
height: max-content;
}
.page-header-text,
.page-subheader-text {
width: max-content;
margin: 0;
margin-bottom: 0.25em;
color: var(--foreground);
cursor: default;
}
.page-header-text.link,
.page-subheader-text.link {
transition-property: color;
transition-duration: 0.15s;
}
.page-header-text.link:hover,
.page-subheader-text.link:hover {
color: var(--accent-value4);
}
.page-header-text {
font-size: 64px;
}
.page-subheader-text {
font-size: 48px;
}
.page-header-separator,
.page-subheader-separator {
width: 100%;
height: 3px;
background-color: var(--accent-value3);
}
.list-page-search {
box-sizing: border-box;
padding: 0px 64px 32px;
width: 100%;
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
}
.list-page-search > label,
.list-page-search > input {
box-sizing: border-box;
padding: 12px 20px;
color: var(--foreground);
font-size: 24px;
}
.list-page-search > label {
background-color: var(--accent-value2);
border-radius: 8px 0px 0px 8px;
}
.list-page-search > label:hover {
background-color: var(--accent-value3);
}
.list-page-search > label:active {
background-color: var(--accent-value1);
transition-property: background-color;
transition-duration: 0.15s;
}
.list-page-search > input {
background-color: var(--distinction);
border: 0;
border-radius: 0px 8px 8px 0px;
flex-grow: 1;
outline: none;
transition-property: background-color, color;
transition-duration: 0.075s;
}
.list-page-search > input:focus {
background-color: var(--foreground);
color: var(--background);
}
.list-page-partitions {
box-sizing: border-box;
padding: 32px 64px;
width: 100%;
height: max-content;
display: flex;
flex-direction: row;
justify-content: center;
align-items: flex-start;
}
.list-page-filter-partition {
width: 20%;
max-width: 640px;
}
.list-page-filter {
margin-top: 16px;
box-sizing: border-box;
width: 100%;
height: max-content;
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
}
.list-page-filter-checkbox {
width: 32px;
height: 32px;
background-color: var(--background);
border: 3px solid var(--distinction);
border-radius: 8px;
transition-property: background-color, border-color;
transition-duration: 0.15s;
}
.list-page-filter:hover > .list-page-filter-checkbox {
background-color: var(--background);
border-color: var(--selected-accent1);
}
.list-page-filter.selected > .list-page-filter-checkbox {
background-color: var(--selected-accent1);
border-color: var(--selected-accent1);
}
.list-page-filter.selected:hover > .list-page-filter-checkbox {
background-color: var(--selected-accent0);
border-color: var(--selected-accent1);
}
.list-page-filter-name {
margin: 0;
padding: 16px;
color: var(--foreground);
font-size: 24px;
user-select: none;
}
.list-page-list-partition {
box-sizing: border-box;
padding-left: 64px;
flex-grow: 1;
}
.list-page-list {
border-radius: 8px;
overflow: hidden;
}
.list-page-header {
width: 100%;
height: 64px;
background-color: var(--accent-value2);
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
color: var(--foreground);
font-size: 24px;
text-overflow: ellipsis;
white-space: nowrap;
}
.list-page-entry {
width: 100%;
height: 64px;
background-color: var(--distinction);
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
color: var(--foreground);
font-size: 24px;
}
.list-page-entry-icon {
width: 64px;
height: 64px;
flex-grow: 0;
}
.list-page-entry-text {
box-sizing: border-box;
margin: 0;
padding: 0 12px;
width: 0;
height: 64px;
line-height: 64px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
border-top: 1px solid var(--background);
}
.list-page-header > .list-page-entry-text {
border: 0;
}

View file

@ -1,25 +1,3 @@
:root {
--background-dark: #111115;
--background: #22222A;
--foreground: #EEEEEE;
--distinction: #44444F;
--accent-value0: #500000;
--accent-value1: #800000;
--accent-value2: #A00000;
--accent-value3: #D02020;
--accent-value4: #FA7575;
--selected-accent0: #0066CC;
--selected-accent1: #3388FF;
--navbar-background: var(--accent-value2);
--navbar-hover-background: var(--accent-value3);
--navbar-foreground: #EEEEEE;
--header-color: var(--accent-value3);
}
html, body {
background-color: var(--background-dark);
@ -32,394 +10,27 @@ html, body {
font-family: sans-serif;
}
#navbar {
z-index: 1;
position: fixed;
background-color: var(--navbar-background);
color: var(--navbar-foreground);
width: 100%;
min-height: 76px;
height: 5%;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
box-shadow: 0px 0px 5px 10px rgba(0, 0, 0, 0.5);
}
.navbar-section {
width: max-content;
height: 100%;
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
}
.navbar-item {
box-sizing: border-box;
padding: 0px 20px;
width: max-content;
height: 100%;
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
font-size: 24px;
user-select: none;
transition-property: background-color;
transition-duration: 0.15s;
position: relative;
}
.navbar-item:hover {
background-color: var(--navbar-hover-background);
}
#content-body {
position: relative;
top: max(76px, 5%);
width: 100%;
height: calc(100% - max(76px, 5%));
overflow-y: auto;
display: flex;
justify-content: center;
}
.page {
z-index: 0;
box-sizing: border-box;
padding: 0px 64px;
width: 100%;
height: 100%;
background-color: var(--background);
box-shadow: 0px 0px 5px 10px rgba(0, 0, 0, 0.5);
overflow-y: auto;
display: none;
}
.page-header {
box-sizing: border-box;
padding: 64px 0px;
width: 100%;
height: max-content;
}
.page-header-text {
width: max-content;
margin: 0;
margin-bottom: 0.25em;
color: var(--header-color);
font-size: 64px;
}
.page-header-separator {
width: 100%;
height: 3px;
background-color: var(--foreground);
}
.page-subheader-text {
width: max-content;
margin: 0;
margin-bottom: 0.25em;
color: var(--header-color);
font-size: 48px;
user-select: none;
}
.page-subheader-separator {
width: 100%;
height: 3px;
background-color: var(--foreground);
transition-property: color;
transition-duration: 0.15s;
}
.list-page-search {
box-sizing: border-box;
padding: 32px 64px;
width: 100%;
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
}
.list-page-search > label {
box-sizing: border-box;
padding: 16px 24px;
background-color: var(--accent-value2);
color: var(--foreground);
font-size: 32px;
border-radius: 8px 0px 0px 8px;
transition-property: background-color;
transition-duration: 0.15s;
}
.list-page-search > label:hover {
background-color: var(--accent-value3);
}
.list-page-search > label:active {
background-color: var(--accent-value1);
}
.list-page-search > input {
box-sizing: border-box;
padding: 16px 24px;
background-color: var(--distinction);
color: var(--foreground);
font-size: 32px;
border: 0;
border-radius: 0px 8px 8px 0px;
flex-grow: 1;
outline: none;
transition-property: background-color, color;
transition-duration: 0.075s;
}
.list-page-search > input:focus {
background-color: var(--foreground);
color: var(--background);
}
.list-page-partitions {
box-sizing: border-box;
padding: 32px 64px;
width: 100%;
height: max-content;
display: flex;
flex-direction: row;
justify-content: center;
align-items: flex-start;
}
.list-page-filter-partition {
width: 20%;
max-width: 640px;
}
.list-page-filter {
margin-top: 16px;
box-sizing: border-box;
width: 100%;
height: max-content;
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
}
.list-page-filter-checkbox {
width: 32px;
height: 32px;
background-color: var(--background);
border: 3px solid var(--distinction);
border-radius: 8px;
transition-property: background-color, border-color;
transition-duration: 0.15s;
}
.list-page-filter:hover > .list-page-filter-checkbox {
background-color: var(--background);
border-color: var(--selected-accent1);
}
.list-page-filter.selected > .list-page-filter-checkbox {
background-color: var(--selected-accent1);
border-color: var(--selected-accent1);
}
.list-page-filter.selected:hover > .list-page-filter-checkbox {
background-color: var(--selected-accent0);
border-color: var(--selected-accent1);
}
.list-page-filter-name {
margin: 0;
padding: 16px;
color: var(--foreground);
font-size: 24px;
user-select: none;
}
.list-page-list-partition {
box-sizing: border-box;
padding-left: 64px;
flex-grow: 1;
}
.list-page-list {
border-radius: 8px;
overflow: hidden;
overflow-y: auto;
}
.list-page-list-header {
width: 100%;
height: 64px;
background-color: var(--accent-value2);
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
color: var(--foreground);
font-size: 24px;
text-overflow: ellipsis;
white-space: nowrap;
}
.list-page-list-entry {
width: 100%;
height: 64px;
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
color: var(--foreground);
font-size: 24px;
border-bottom: 1px solid var(--distinction);
}
#games-page {
max-width: 1920px;
}
.game-list-page-entry-icon {
width: 64px;
height: 64px;
flex-grow: 0;
}
.game-list-page-entry-name {
box-sizing: border-box;
margin: 0;
padding: 0 12px;
width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
.list-page-entry-text.game-name {
flex-grow: 1;
flex-basis: 0px;
}
.game-list-page-entry-description {
box-sizing: border-box;
margin: 0;
padding: 0 12px;
width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
.list-page-entry-text.game-description {
flex-grow: 2;
flex-basis: 0px;
}
#achievements-page {
max-width: 1920px;
}
.achievement-list-page-entry-icon {
width: 64px;
height: 64px;
flex-grow: 0;
}
.achievement-list-page-entry-name {
box-sizing: border-box;
margin: 0;
padding: 0 12px;
width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
.list-page-entry-text.achievement-name {
flex-grow: 4;
flex-basis: 0px;
}
.achievement-list-page-entry-description {
.list-page-entry-text.achievement-description {
box-sizing: border-box;
margin: 0;
@ -431,22 +42,10 @@ html, body {
white-space: nowrap;
flex-grow: 8;
flex-basis: 0px;
}
.achievement-list-page-entry-stages {
box-sizing: border-box;
margin: 0;
padding: 0 12px;
width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
.list-page-entry-text.achievement-stages {
flex-grow: 1;
flex-basis: 0px;
}
#profile-page {
@ -482,6 +81,8 @@ html, body {
#profile-info-pfp {
width: 100%;
max-width: 640px;
margin-bottom: 1.25em;
}
#profile-info-name {
@ -491,7 +92,78 @@ html, body {
font-size: 42px;
color: var(--header-color);
color: var(--foreground);
}
.profile-list {
margin-top: 1.25em;
width: 100%;
height: max-content;
border-radius: 8px;
overflow: hidden;
}
.profile-entry {
overflow: hidden;
height: 64px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
background-color: var(--distinction);
border-bottom: 1px solid var(--background);
}
.profile-entry.accented {
border-bottom: 1px solid var(--accent-value0);
background-color: var(--accent-value1);
}
.profile-entry-left {
height: 100%;
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
}
.profile-entry-right {
height: 100%;
display: flex;
flex-direction: row;
justify-content: flex-end;
align-items: center;
}
.profile-entry-icon {
width: 64px;
}
.profile-entry-text {
margin: 0;
padding: 0px 16px;
color: var(--foreground);
font-size: 24px;
}
.profile-entry-text.accented {
display: none;
}
.profile-entry.accented .profile-entry-text.accented {
display: block;
}
#profile-platforms {
@ -504,74 +176,6 @@ html, body {
flex-grow: 1;
}
.profile-platform-entry {
overflow: hidden;
margin-top: 16px;
height: 64px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
border: 3px solid var(--distinction);
border-radius: 12px;
}
.profile-platform-entry.connected {
border: 3px solid var(--accent-value3);
background-color: var(--accent-value2);
}
.profile-platform-entry-left {
height: 100%;
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
}
.profile-platform-entry-right {
height: 100%;
display: flex;
flex-direction: row;
justify-content: flex-end;
align-items: center;
}
.profile-platform-icon {
width: 64px;
}
.profile-platform-name {
margin: 0;
padding: 0px 16px;
color: var(--foreground);
font-size: 24px;
}
.profile-platform-connected {
display: none;
margin: 0;
padding: 0px 16px;
color: var(--foreground);
font-size: 24px;
}
.profile-platform-entry.connected .profile-platform-connected {
display: block;
}
#profile-section-2 {
box-sizing: border-box;
@ -586,122 +190,16 @@ html, body {
#profile-games {
box-sizing: border-box;
padding: 0px 64px;
padding: 0px 64px 64px;
width: 50%;
height: max-content;
}
#profile-games > .page-subheader-text:hover {
color: var(--accent-value4);
}
.profile-game-entry {
overflow: hidden;
margin-top: 16px;
height: 64px;
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
border: 3px solid var(--distinction);
border-radius: 12px;
}
.profile-game-entry-icon {
height: 64px;
}
.profile-game-entry-name {
margin: 0;
padding: 0px 16px;
color: var(--foreground);
font-size: 24px;
}
#profile-achievements {
box-sizing: border-box;
padding: 0px 64px;
padding: 0px 64px 64px;
width: 50%;
height: max-content;
}
#profile-achievements > .page-subheader-text:hover {
color: var(--accent-value4);
}
.profile-achievement-entry {
overflow: hidden;
margin-top: 16px;
height: 64px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
border: 3px solid var(--distinction);
border-radius: 12px;
}
.profile-achievement-entry.completed {
border: 3px solid var(--accent-value3);
background-color: var(--accent-value2);
}
.profile-achievement-entry-left {
height: 100%;
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
}
.profile-achievement-entry-right {
height: 100%;
display: flex;
flex-direction: row;
justify-content: flex-end;
align-items: center;
}
.profile-achievement-entry-icon {
height: 64px;
}
.profile-achievement-entry-name {
margin: 0;
padding: 0px 16px;
color: var(--foreground);
font-size: 24px;
}
.profile-achievement-completed {
display: none;
margin: 0;
padding: 0px 16px;
color: var(--foreground);
font-size: 24px;
}
.profile-achievement-entry.completed .profile-achievement-completed {
display: block;
}
}

View file

@ -0,0 +1,101 @@
:root {
--form-spacing: 48px;
--element-spacing: 12px;
--error: #FA7575;
}
#login-page {
display: block;
max-width: 1280px;
}
#login-header {
box-sizing: border-box;
padding: 0 calc(25% - 64px);
width: 100%;
height: max-content;
}
#login-form {
box-sizing: border-box;
margin: 24px calc(25% - 64px) 0;
padding: 24px 0;
height: max-content;
background-color: var(--distinction);
border-radius: 8px;
}
#error-message {
display: none;
box-sizing: border-box;
margin: 0 var(--form-spacing) var(--element-spacing);
width: calc(100% - (var(--form-spacing) * 2));
color: var(--error);
font-size: 20px;
}
.login-field {
box-sizing: border-box;
margin: 0 var(--form-spacing) var(--element-spacing);
border: 0;
padding: 8px;
width: calc(100% - (var(--form-spacing) * 2));
height: max-content;
font-size: 20px;
border-radius: 4px;
outline: none;
}
.login-field.error {
background-color: var(--error);
}
#username,
#confirm {
display: none;
}
#login-buttons {
margin: 0 calc(var(--form-spacing) - (var(--element-spacing) / 2));
width: calc(100% - (var(--form-spacing) * 2) + var(--element-spacing));
height: max-content;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
.ap-button.login {
margin: 0 calc(var(--element-spacing) / 2);
flex-grow: 1;
flex-basis: 0px;
}
#warning {
box-sizing: border-box;
padding: 0 var(--form-spacing);
color: var(--foreground);
font-size: 24px;
}

View file

@ -0,0 +1,16 @@
:root {
--background-dark: #111115;
--background: #22222A;
--foreground-dark: #AAAAAA;
--foreground: #EEEEEE;
--distinction: #44444F;
--accent-value0: #500000;
--accent-value1: #800000;
--accent-value2: #A00000;
--accent-value3: #D02020;
--accent-value4: #FA7575;
--selected-accent0: #0066CC;
--selected-accent1: #3388FF;
}