chore(lint): set up .editorconfig, lint all

This commit is contained in:
Ash Monty 2022-07-23 17:24:19 +02:00
parent cfd7aa9625
commit 37256536aa
No known key found for this signature in database
GPG key ID: 740B7C88251D49B6
70 changed files with 10245 additions and 10233 deletions

15
.editorconfig Normal file
View file

@ -0,0 +1,15 @@
# http://editorconfig.org
root = true
[*]
indent_style = tab
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
[*.js]
indent_size = 4
[*.{css,handlebars,json}]
indent_size = 2

View file

@ -1,2 +1,2 @@
# web javascript causes a lot of eslint warnings
assets/js
assets/js

View file

@ -1,18 +1,18 @@
{
"env": {
"browser": true,
"node": true,
"commonjs": true,
"es6": true
},
"globals": {
"document": true
},
"env": {
"browser": true,
"node": true,
"commonjs": true,
"es6": true
},
"globals": {
"document": true
},
"parserOptions": {
"ecmaVersion": 2021
},
"extends": "eslint:recommended",
"rules": {
"ecmaVersion": 2021
},
"extends": "eslint:recommended",
"rules": {
"no-case-declarations": "off",
"no-empty": "off",
"no-console": "off",
@ -23,20 +23,20 @@
"error",
"never"
],
"indent": [
"error",
"indent": [
"error",
"tab",
{
"SwitchCase": 1
}
],
"quotes": [
"error",
"single"
],
"semi": [
"error",
"always"
]
}
}
],
"quotes": [
"error",
"single"
],
"semi": [
"error",
"always"
]
}
}

2
.gitignore vendored
View file

@ -66,4 +66,4 @@ static-text.json
.DS_Store
# keep browserified files out
*.bundled.js
*.bundled.js

View file

@ -1,10 +1,10 @@
language: node_js
node_js:
- "7"
- "8"
- "9"
- "7"
- "8"
- "9"
sudo: false
script:
- "npm run lint"
- "npm run lint"

View file

@ -7,5 +7,5 @@ Contributions should go in the [dev branch](https://github.com/PretendoNetwork/w
Visit the [live version](https://pretendo.network)
<a href="https://discord.gg/DThgbba" target="_blank">
<img src="https://discordapp.com/api/guilds/408718485913468928/widget.png?style=banner3">
<img src="https://discordapp.com/api/guilds/408718485913468928/widget.png?style=banner3">
</a>

View file

@ -31,4 +31,4 @@
"user": "email@gmail.com",
"pass": "app-password"
}
}
}

View file

@ -256,4 +256,4 @@
]
}
}
}
}

View file

@ -56,7 +56,7 @@
},
{
"question": "Si estoy baneado en Nintendo Network, ¿seguiré baneado al usar Pretendo?",
"answer": "No tenemos acceso a los baneos de Nintendo Network motivo por el nadie estará baneado en nuestros servidores al principio. Sin embargo, tendremos reglas a seguir al acceder a nuestros servicios y no hacerlo resultará en un baneo."
"answer": "No tenemos acceso a los baneos de Nintendo Network motivo por el nadie estará baneado en nuestros servidores al principio. Sin embargo, tendremos reglas a seguir al acceder a nuestros servicios y no hacerlo resultará en un baneo."
},
{
"question": "¿Pretendo soportará Wii/Switch?",

View file

@ -257,4 +257,4 @@
]
}
}
}
}

View file

@ -256,4 +256,4 @@
]
}
}
}
}

View file

@ -256,4 +256,4 @@
]
}
}
}
}

View file

@ -256,4 +256,4 @@
]
}
}
}
}

15990
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -1,45 +1,45 @@
{
"name": "website",
"version": "1.0.0",
"description": "",
"main": "src/server.js",
"scripts": {
"start": "browserify ./public/assets/js/miieditor.js -o ./public/assets/js/miieditor.bundled.js && node src/server.js"
},
"repository": {
"type": "git",
"url": "git+https://github.com/PretendoNetwork/website.git"
},
"author": "",
"license": "ISC",
"bugs": {
"url": "https://github.com/PretendoNetwork/website/issues"
},
"homepage": "https://github.com/PretendoNetwork/website#readme",
"dependencies": {
"@discordjs/rest": "^0.5.0",
"adm-zip": "^0.5.9",
"browserify": "^17.0.0",
"colors": "^1.4.0",
"cookie-parser": "^1.4.5",
"discord-api-types": "^0.36.1",
"discord-oauth2": "github:ryanblenis/discord-oauth2",
"express": "^4.17.1",
"express-handlebars": "^5.3.1",
"express-locale": "^2.0.0",
"fs-extra": "^9.1.0",
"got": "^11.8.2",
"gray-matter": "^4.0.3",
"kaitai-struct": "^0.9.0",
"marked": "^4.0.10",
"mongoose": "^6.4.0",
"morgan": "^1.10.0",
"nodemailer": "^6.7.5",
"stripe": "^9.9.0",
"trello": "^0.11.0",
"uuid": "^8.3.2"
},
"devDependencies": {
"eslint": "^7.32.0"
}
"name": "website",
"version": "1.0.0",
"description": "",
"main": "src/server.js",
"scripts": {
"start": "browserify ./public/assets/js/miieditor.js -o ./public/assets/js/miieditor.bundled.js && node src/server.js"
},
"repository": {
"type": "git",
"url": "git+https://github.com/PretendoNetwork/website.git"
},
"author": "",
"license": "ISC",
"bugs": {
"url": "https://github.com/PretendoNetwork/website/issues"
},
"homepage": "https://github.com/PretendoNetwork/website#readme",
"dependencies": {
"@discordjs/rest": "^0.5.0",
"adm-zip": "^0.5.9",
"browserify": "^17.0.0",
"colors": "^1.4.0",
"cookie-parser": "^1.4.5",
"discord-api-types": "^0.36.1",
"discord-oauth2": "github:ryanblenis/discord-oauth2",
"express": "^4.17.1",
"express-handlebars": "^5.3.1",
"express-locale": "^2.0.0",
"fs-extra": "^9.1.0",
"got": "^11.8.2",
"gray-matter": "^4.0.3",
"kaitai-struct": "^0.9.0",
"marked": "^4.0.10",
"mongoose": "^6.4.0",
"morgan": "^1.10.0",
"nodemailer": "^6.7.5",
"stripe": "^9.9.0",
"trello": "^0.11.0",
"uuid": "^8.3.2"
},
"devDependencies": {
"eslint": "^7.32.0"
}
}

View file

@ -1,320 +1,320 @@
/* Removing until it's done */
.setting-card a.edit,
.sign-in-history a {
display: none;
display: none;
}
.account-wrapper {
display: grid;
column-gap: 48px;
margin-top: 80px;
color: var(--text-shade-1);
display: grid;
column-gap: 48px;
margin-top: 80px;
color: var(--text-shade-1);
}
/* Account settings sidebar */
.account-sidebar .user {
text-align: center;
margin: 55px auto;
width: fit-content;
text-align: center;
margin: 55px auto;
width: fit-content;
}
.account-sidebar .user .miiname {
font-size: 1.2rem;
color: var(--text-shade-3);
margin: 8px 0 4px;
font-size: 1.2rem;
color: var(--text-shade-3);
margin: 8px 0 4px;
}
.account-sidebar .user .username {
margin: 0;
margin: 0;
}
.account-sidebar .user .tier-name {
margin: 12px 0;
line-height: 1.2em;
border-radius: 1.2em;
border-width: 2px;
border-style: solid;
padding: 4px 16px;
margin: 12px 0;
line-height: 1.2em;
border-radius: 1.2em;
border-width: 2px;
border-style: solid;
padding: 4px 16px;
}
.account-sidebar .user .tier-level-0,
.account-sidebar .user .access-level-0 {
background: #2a2f50;
color: var(--text-shade-1);
border-color: #383f6b;
background: #2a2f50;
color: var(--text-shade-1);
border-color: #383f6b;
}
.account-sidebar .user .tier-level-1 {
background: rgba(255, 132, 132, 0.2);
color: #FF8484;
border-color: rgba(255, 132, 132, 0.8);
background: rgba(255, 132, 132, 0.2);
color: #FF8484;
border-color: rgba(255, 132, 132, 0.8);
}
.account-sidebar .user .tier-level-2 {
background: rgba(89, 201, 165, 0.3);
color:#59c9a5;
border-color: #59c9a5;
background: rgba(89, 201, 165, 0.3);
color:#59c9a5;
border-color: #59c9a5;
}
.account-sidebar .user .tier-level-3 {
background: rgba(202, 177, 251, 0.3);
color:var(--accent-shade-3);
border-color: var(--accent-shade-3);
background: rgba(202, 177, 251, 0.3);
color:var(--accent-shade-3);
border-color: var(--accent-shade-3);
}
.account-sidebar .user .access-level-banned {
background: rgba(255, 63, 0, 0.1);
color:#FF3F00;
border-color: rgba(255, 63, 0, 0.8);
background: rgba(255, 63, 0, 0.1);
color:#FF3F00;
border-color: rgba(255, 63, 0, 0.8);
}
.account-sidebar .user .access-level-1 {
background: rgba(100, 247, 239, 0.3);
color: #64F7EF;
border-color: #64F7EF;
background: rgba(100, 247, 239, 0.3);
color: #64F7EF;
border-color: #64F7EF;
}
.account-sidebar .user .access-level-2 {
background: rgba(255, 199, 89, 0.3);
color: #FFC759;
border-color: #FFC759;
background: rgba(255, 199, 89, 0.3);
color: #FFC759;
border-color: #FFC759;
}
.account-sidebar .user .access-level-3 {
background: rgba(90, 255, 21, 0.3);
color:#5AFF15;
border-color: #5AFF15;
background: rgba(90, 255, 21, 0.3);
color:#5AFF15;
border-color: #5AFF15;
}
.account-sidebar .user .mii {
width: 128px;
height: 128px;
border-radius: 100%;
background: var(--bg-shade-3);
width: 128px;
height: 128px;
border-radius: 100%;
background: var(--bg-shade-3);
}
.account-sidebar .buttons a {
display: flex;
flex-flow: column;
align-items: center;
padding: 20px 24px;
margin: 20px 0 0;
text-decoration: none;
text-align: center;
display: flex;
flex-flow: column;
align-items: center;
padding: 20px 24px;
margin: 20px 0 0;
text-decoration: none;
text-align: center;
}
.account-sidebar .buttons a svg {
margin-bottom: 16px;
margin-bottom: 16px;
}
.account-sidebar .buttons a p.caption {
margin: 0;
margin: 0;
}
.account-sidebar .buttons p.cemu-warning {
margin: 4px 0 0;
font-size: 0.7rem;
color: var(--text-shade-1);
margin: 4px 0 0;
font-size: 0.7rem;
color: var(--text-shade-1);
}
/* Settings */
.settings-wrapper {
display: grid;
grid-column-start: 2;
grid-template-columns: 1fr 1fr;
column-gap: 20px;
display: grid;
grid-column-start: 2;
grid-template-columns: 1fr 1fr;
column-gap: 20px;
}
.settings-wrapper a {
color: var(--accent-shade-1);
text-decoration: none;
font-weight: bold;
color: var(--accent-shade-1);
text-decoration: none;
font-weight: bold;
}
.settings-wrapper a:hover {
text-decoration: underline;
text-decoration: underline;
}
.settings-wrapper h2.section-header {
margin-top: 40px;
grid-column: 1 / 3;
color: var(--text-shade-3);
margin-top: 40px;
grid-column: 1 / 3;
color: var(--text-shade-3);
}
.setting-card {
display: grid;
grid-template-rows: 35px repeat(2, auto);
row-gap: 24px;
position: relative;
border-radius: 10px;
background: var(--bg-shade-2);
padding: 48px 60px;
display: grid;
grid-template-rows: 35px repeat(2, auto);
row-gap: 24px;
position: relative;
border-radius: 10px;
background: var(--bg-shade-2);
padding: 48px 60px;
}
.setting-card * {
margin: 0;
margin: 0;
}
.setting-card .edit {
color: var(--text-shade-1);
background: var(--bg-shade-3);
border-radius: 100%;
position: absolute;
top: 42px;
right: 48px;
width: 24px;
height: 24px;
padding: 12px;
color: var(--text-shade-1);
background: var(--bg-shade-3);
border-radius: 100%;
position: absolute;
top: 42px;
right: 48px;
width: 24px;
height: 24px;
padding: 12px;
}
.setting-card .edit:hover {
background: var(--bg-shade-3);
color: var(--text-shade-3);
background: var(--bg-shade-3);
color: var(--text-shade-3);
}
.setting-card .header {
color: var(--text-shade-3);
color: var(--text-shade-3);
}
.setting-card .setting-list {
display: grid;
grid-template-columns: repeat(2, auto);
gap: 24px;
list-style: none;
padding: 0;
display: grid;
grid-template-columns: repeat(2, auto);
gap: 24px;
list-style: none;
padding: 0;
}
.setting-card .setting-list p.label {
color: var(--text-shade-3);
margin-bottom: 4px;
color: var(--text-shade-3);
margin-bottom: 4px;
}
fieldset {
position: relative;
height: min-content;
padding: 0;
border: none;
position: relative;
height: min-content;
padding: 0;
border: none;
}
.setting-card .server-selection {
display: flex;
border-radius: 5px;
overflow: hidden;
background: var(--bg-shade-3);
display: flex;
border-radius: 5px;
overflow: hidden;
background: var(--bg-shade-3);
}
.setting-card .server-selection input {
display: none;
display: none;
}
.server-selection input + label {
display: flex;
flex-flow: column;
align-items: center;
flex: 50%;
color: var(--text-shade-1);
padding: 40px;
justify-content: space-between;
cursor: pointer;
display: flex;
flex-flow: column;
align-items: center;
flex: 50%;
color: var(--text-shade-1);
padding: 40px;
justify-content: space-between;
cursor: pointer;
}
.server-selection input + label h2 {
margin-top: 12px;
color: var(--text-shade-1);
margin-top: 12px;
color: var(--text-shade-1);
}
.server-selection input:checked + label,
.server-selection input:checked + label h2 {
background: var(--accent-shade-0);
color: var(--text-shade-3);
background: var(--accent-shade-0);
color: var(--text-shade-3);
}
.setting-card #link-discord-account {
width: 100%;
padding: 12px 48px;
cursor: pointer;
background: var(--bg-shade-3);
width: 100%;
padding: 12px 48px;
cursor: pointer;
background: var(--bg-shade-3);
}
.setting-card button {
width: 100%;
height: fit-content;
padding: 12px 48px;
align-self: flex-end;
cursor: pointer;
background: var(--bg-shade-3);
width: 100%;
height: fit-content;
padding: 12px 48px;
align-self: flex-end;
cursor: pointer;
background: var(--bg-shade-3);
}
.setting-card.span-both-columns {
grid-column: 1 / span 2;
grid-column: 1 / span 2;
}
@keyframes banner-notice {
0% {
top: -150px;
}
20% {
top: 35px;
}
80% {
top: 35px;
}
100% {
top: -150px;
}
0% {
top: -150px;
}
20% {
top: 35px;
}
80% {
top: 35px;
}
100% {
top: -150px;
}
}
.banner-notice {
display: flex;
justify-content: center;
position: fixed;
top: -150px;
width: 100%;
animation: banner-notice 5s;
display: flex;
justify-content: center;
position: fixed;
top: -150px;
width: 100%;
animation: banner-notice 5s;
}
.banner-notice div {
padding: 4px 36px;
border-radius: 5px;
z-index: 3;
padding: 4px 36px;
border-radius: 5px;
z-index: 3;
}
.banner-notice.success div {
background: var(--green-shade-0);
background: var(--green-shade-0);
}
.banner-notice.error div {
background: var(--red-shade-1);
background: var(--red-shade-1);
}
footer {
margin-top: 80px;
margin-top: 80px;
}
@media screen and (max-width: 1300px) {
.account-wrapper {
margin: 20px 0;
}
.account-wrapper {
margin: 20px 0;
}
.settings-wrapper {
grid-column-start: 1;
}
.settings-wrapper {
grid-column-start: 1;
}
.account-sidebar {
margin: 0;
}
.account-sidebar {
margin: 0;
}
.account-sidebar .user .mii {
width: 128px;
height: 128px;
}
.account-sidebar .user .mii {
width: 128px;
height: 128px;
}
}
@media screen and (max-width: 1000px) {
.settings-wrapper {
display: block;
width: 100%;
}
.settings-wrapper {
display: block;
width: 100%;
}
.setting-card {
margin-bottom: 24px;
}
.setting-card {
margin-bottom: 24px;
}
}
@media screen and (max-width: 550px) {
.setting-card {
padding: 24px;
width: calc(100vw - 48px);
margin-left: -5vw;
margin-right: -2.5vw;
border-radius: 0;
margin-bottom: 12px;
}
.setting-card .edit {
top: 20px;
right: 20px;
transform: scale(0.85);
}
.setting-card {
padding: 24px;
width: calc(100vw - 48px);
margin-left: -5vw;
margin-right: -2.5vw;
border-radius: 0;
margin-bottom: 12px;
}
.setting-card .server-selection {
flex-flow: column;
}
.setting-card .edit {
top: 20px;
right: 20px;
transform: scale(0.85);
}
.setting-card .server-selection {
flex-flow: column;
}
}
@media screen and (max-width: 350px) {
.setting-card .setting-list {
grid-template-columns: auto;
}
.setting-card .setting-list {
grid-template-columns: auto;
}
}

View file

@ -1,92 +1,92 @@
.new-font {
font-family: museo-sans, sans-serif;
font-family: museo-sans, sans-serif;
}
.pretendo {
font-family: Poppins, Arial, Helvetica, sans-serif;
font-weight: 700;
font-family: Poppins, Arial, Helvetica, sans-serif;
font-weight: 700;
}
.announcement-hero {
position: relative;
text-align: center;
padding: 96px 0;
margin: 36px 0 24px;
position: relative;
text-align: center;
padding: 96px 0;
margin: 36px 0 24px;
}
.announcement-hero p {
font-size: 24px;
margin: 0;
margin-bottom: 24px;
font-size: 24px;
margin: 0;
margin-bottom: 24px;
}
.announcement-hero h1 {
font-size: 450%;
margin: 0;
font-size: 450%;
margin: 0;
}
.announcement-hero::before {
content: "";
position: absolute;
width: 500vw;
height: 100%;
top: 0;
left: -50vw;
background: var(--accent-shade-0);
z-index: -1;
content: "";
position: absolute;
width: 500vw;
height: 100%;
top: 0;
left: -50vw;
background: var(--accent-shade-0);
z-index: -1;
}
.bro-what.subscribe {
padding-top: 0;
display: flex;
padding-top: 0;
display: flex;
}
.bro-what.subscribe h1 {
margin: 0;
margin-right: 12px;
width: fit-content;
margin: 0;
margin-right: 12px;
width: fit-content;
}
.buy-now {
margin-left:auto;
margin-left:auto;
}
.buy-now button {
cursor: pointer;
width: max-content;
height: 100%;
cursor: pointer;
width: max-content;
height: 100%;
}
.bro-what {
padding: 48px;
padding: 48px;
}
.bro-what a {
color: inherit;
text-decoration: none;
font-weight: 700;
color: inherit;
text-decoration: none;
font-weight: 700;
}
.dotted-bg {
position: relative;
position: relative;
}
.dotted-bg::before {
content: "";
position: absolute;
width: 500vw;
height: 100%;
top: 0;
left: -50vw;
background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='100%25' width='100%25'%3E%3Cdefs%3E%3Cpattern id='doodad' width='6' height='6' viewBox='0 0 40 40' patternUnits='userSpaceOnUse' patternTransform=''%3E%3Crect width='100%25' height='100%25' fill='rgba(27, 31, 59,1)'/%3E%3Ccircle cx='20' cy='20' r='11' fill='rgba(103, 61, 182,0.4)'/%3E%3Cpath d='M9 20aInfinityInfinity 0 0 0InfinityNaNaInfinityInfinity 0 0 0-InfinityNaN' fill='%23ecc94b'/%3E%3C/pattern%3E%3C/defs%3E%3Crect fill='url(%23doodad)' height='200%25' width='200%25'/%3E%3C/svg%3E ");
z-index: -1;
content: "";
position: absolute;
width: 500vw;
height: 100%;
top: 0;
left: -50vw;
background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='100%25' width='100%25'%3E%3Cdefs%3E%3Cpattern id='doodad' width='6' height='6' viewBox='0 0 40 40' patternUnits='userSpaceOnUse' patternTransform=''%3E%3Crect width='100%25' height='100%25' fill='rgba(27, 31, 59,1)'/%3E%3Ccircle cx='20' cy='20' r='11' fill='rgba(103, 61, 182,0.4)'/%3E%3Cpath d='M9 20aInfinityInfinity 0 0 0InfinityNaNaInfinityInfinity 0 0 0-InfinityNaN' fill='%23ecc94b'/%3E%3C/pattern%3E%3C/defs%3E%3Crect fill='url(%23doodad)' height='200%25' width='200%25'/%3E%3C/svg%3E ");
z-index: -1;
}
.footnotes {
color: var(--text-shade-1);
color: var(--text-shade-1);
}
@media screen and (max-width: 946px) {
header nav a:not(.keep-on-mobile) {
header nav a:not(.keep-on-mobile) {
display: none;
}
.announcement-hero h1 {
font-size: 350%;
}
.announcement-hero h1 {
font-size: 350%;
}
}
@media screen and (max-width: 724px) {
@ -105,35 +105,35 @@
margin: 0 10px;
}
.announcement-hero h1 {
font-size: 250%;
}
.announcement-hero p {
font-size: 18px;
}
.announcement-hero h1 {
font-size: 250%;
}
.announcement-hero p {
font-size: 18px;
}
}
@media screen and (max-width: 600px) {
.bro-what.subscribe {
flex-flow: column;
}
.bro-what.subscribe {
flex-flow: column;
}
.bro-what a,
.buy-now button {
width: 100%;
}
.bro-what a,
.buy-now button {
width: 100%;
}
.bro-what a {
margin-top: 24px;
}
.bro-what a {
margin-top: 24px;
}
.announcement-hero {
padding: 72px 0;
}
.announcement-hero {
padding: 72px 0;
}
}
@media screen and (max-width: 480px) {
.bro-what {
padding: 36px 0;
}
}
.bro-what {
padding: 36px 0;
}
}

View file

@ -1,119 +1,119 @@
.blog-card {
display: flex;
flex-flow: row nowrap;
padding: 0;
margin: 0 auto;
max-width: 1000px;
margin-bottom: 30px;
text-decoration: none;
position: relative;
border-radius: 10px;
overflow: hidden;
display: flex;
flex-flow: row nowrap;
padding: 0;
margin: 0 auto;
max-width: 1000px;
margin-bottom: 30px;
text-decoration: none;
position: relative;
border-radius: 10px;
overflow: hidden;
}
.blog-card .post-info {
flex: 50%;
padding: 40px;
display: flex;
flex-flow: column;
color: var(--text-shade-1);
flex: 50%;
padding: 40px;
display: flex;
flex-flow: column;
color: var(--text-shade-1);
}
.blog-card .post-info .title {
color: var(--text-shade-3);
margin: 0;
color: var(--text-shade-3);
margin: 0;
}
.blog-card .post-info .caption {
margin: 4px 0 32px 0;
margin: 4px 0 32px 0;
}
.blog-card .pub-info {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: left;
margin-top: auto;
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: left;
margin-top: auto;
}
.blog-card .pub-info .date {
font-weight: bold;
color: var(--text-shade-3);
font-weight: bold;
color: var(--text-shade-3);
}
.blog-card .pub-info > * {
margin-right: 0.5em;
margin-top: 0.2em;
margin-right: 0.5em;
margin-top: 0.2em;
}
.blog-card .profile {
display: inline-grid;
grid-template-columns: 30px auto;
grid-gap: 10px;
font-weight: bold;
color: var(--text-shade-3);
align-items: center;
height: 32px;
margin-right: 0.3em;
display: inline-grid;
grid-template-columns: 30px auto;
grid-gap: 10px;
font-weight: bold;
color: var(--text-shade-3);
align-items: center;
height: 32px;
margin-right: 0.3em;
}
.blog-card .profile img {
border-radius: 4px;
border: 1px solid var(--border);
max-width: 100%;
border-radius: 4px;
border: 1px solid var(--border);
max-width: 100%;
}
.blog-card .cover {
flex: 50%;
border: 3px solid var(--bg-shade-0);
border-radius: 0 10px 10px 0;
flex: 50%;
border: 3px solid var(--bg-shade-0);
border-radius: 0 10px 10px 0;
}
.progress-hero a,
.progress-hero a * {
color: var(--accent-shade-1);
text-decoration: none;
font-weight: bold;
color: var(--accent-shade-1);
text-decoration: none;
font-weight: bold;
}
.progress-hero a:hover,
.progress-hero a:hover {
text-decoration: underline;
text-decoration: underline;
}
.buttons {
margin: 10vh auto;
width: min-content;
margin: 10vh auto;
width: min-content;
}
.buttons button.secondary.icon-btn {
cursor: pointer;
width: 35px;
height: 35px;
padding: 0;
cursor: pointer;
width: 35px;
height: 35px;
padding: 0;
}
footer {
margin-top: 160px;
margin-top: 160px;
}
@media screen and (max-width: 900px) {
.blog-card {
flex-flow: column;
}
.blog-card .post-info {
padding: 30px;
}
.blog-card .cover {
order: -1;
min-height: 250px;
border-radius: 10px 10px 0 0;
}
footer {
margin-top: 100px;
}
.blog-card {
flex-flow: column;
}
.blog-card .post-info {
padding: 30px;
}
.blog-card .cover {
order: -1;
min-height: 250px;
border-radius: 10px 10px 0 0;
}
footer {
margin-top: 100px;
}
}
@media screen and (max-width: 450px) {
.blog-card .cover {
min-height: 200px;
}
.blog-card .cover {
min-height: 200px;
}
}

View file

@ -1,22 +1,22 @@
.wrapper {
display: flex;
flex-direction: column;
width: 95%;
min-height: 100vh;
display: flex;
flex-direction: column;
width: 95%;
min-height: 100vh;
}
header {
width: 100%;
width: 100%;
}
.card-wrap {
width: 100%;
width: 100%;
}
.blog-card {
padding: 60px;
max-width: 1100px;
margin: 50px auto;
color: var(--text-shade-1);
padding: 60px;
max-width: 1100px;
margin: 50px auto;
color: var(--text-shade-1);
}
.blog-card h1,
@ -25,201 +25,201 @@ header {
.blog-card h4,
.blog-card h5,
.blog-card h6 {
margin: 40px 0 10px;
color: var(--text-shade-3);
margin: 40px 0 10px;
color: var(--text-shade-3);
}
.blog-card strong {
color: var(--text-shade-3);
color: var(--text-shade-3);
}
.blog-card a,
.blog-card a * {
color: var(--accent-shade-1);
text-decoration: none;
font-weight: bold;
color: var(--accent-shade-1);
text-decoration: none;
font-weight: bold;
}
.blog-card a:hover,
.blog-card a:hover {
text-decoration: underline;
text-decoration: underline;
}
.blog-card del {
text-decoration: line-through;
text-decoration: line-through;
}
.blog-card .title {
margin: 0;
margin-bottom: 8px;
margin: 0;
margin-bottom: 8px;
}
.blog-card .pub-info {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: left;
margin-top: auto;
margin-bottom: 30px;
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: left;
margin-top: auto;
margin-bottom: 30px;
}
.blog-card .pub-info .date {
font-weight: bold;
color: var(--text-shade-3);
font-weight: bold;
color: var(--text-shade-3);
}
.blog-card .pub-info > * {
margin-right: 0.5em;
margin-top: 0.2em;
margin-right: 0.5em;
margin-top: 0.2em;
}
.blog-card .profile {
display: inline-grid;
grid-template-columns: 30px auto;
grid-gap: 10px;
font-weight: bold;
color: var(--text-shade-3);
align-items: center;
height: 32px;
margin-right: 0.3em;
display: inline-grid;
grid-template-columns: 30px auto;
grid-gap: 10px;
font-weight: bold;
color: var(--text-shade-3);
align-items: center;
height: 32px;
margin-right: 0.3em;
}
.blog-card .profile img {
margin: 0;
border-radius: 4px;
border: 1px solid var(--border);
max-width: 100%;
margin: 0;
border-radius: 4px;
border: 1px solid var(--border);
max-width: 100%;
}
.blog-card p,
.post-info {
color: var(--text-shade-1);
color: var(--text-shade-1);
}
.blog-card img {
max-width: 100%;
max-height: 800px;
margin: 10px auto;
display: block;
border-radius: 4px;
border: 1px solid var(--border);
max-width: 100%;
max-height: 800px;
margin: 10px auto;
display: block;
border-radius: 4px;
border: 1px solid var(--border);
}
.blog-card img.emoji {
display: inline;
margin: 0;
border: none;
display: inline;
margin: 0;
border: none;
}
.blog-card video {
width: 100%;
border-radius: 4px;
border: 1px solid var(--border);
width: 100%;
border-radius: 4px;
border: 1px solid var(--border);
}
.blog-card iframe {
width: 100%;
aspect-ratio: 16/9;
border-radius: 4px;
border: 1px solid var(--border);
width: 100%;
aspect-ratio: 16/9;
border-radius: 4px;
border: 1px solid var(--border);
}
/* Fallback for aspect-ratio since it's unsupported by some browsers (looking at you Safari) */
@supports not (aspect-ratio: 16/9) {
.blog-card .aspectratio-fallback {
position: relative;
height: 0;
padding-top: 56.25%;
}
.blog-card iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border: 0;
}
.blog-card .aspectratio-fallback {
position: relative;
height: 0;
padding-top: 56.25%;
}
.blog-card iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border: 0;
}
}
/* Some twitter iframe specific stuff */
.blog-card .twitter-tweet {
margin: auto;
margin: auto;
}
.blog-card .twitter-tweet iframe {
border: none; /* Fixes the double border */
border: none; /* Fixes the double border */
}
.blog-card table {
border-radius: 4px;
border-collapse: collapse;
background: var(--bg-shade-3);
margin-bottom: 30px;
overflow: hidden;
border-radius: 4px;
border-collapse: collapse;
background: var(--bg-shade-3);
margin-bottom: 30px;
overflow: hidden;
}
.blog-card table th {
padding: 8px 12px;
background: var(--bg-shade-4);
color: var(--text-shade-3);
padding: 8px 12px;
background: var(--bg-shade-4);
color: var(--text-shade-3);
}
.blog-card table td {
padding: 8px 12px;
vertical-align: top;
border-radius: inherit;
padding: 8px 12px;
vertical-align: top;
border-radius: inherit;
}
.blog-card table tr:nth-child(even) {
background: var(--bg-shade-2);
background: var(--bg-shade-2);
}
.blog-card pre code {
border-radius: 4px;
margin-bottom: 30px;
border-radius: 4px;
margin-bottom: 30px;
}
.blog-card input[type="checkbox"] {
appearance: none;
-webkit-appearance: none;
display: inline-block;
background: var(--bg-shade-3);
padding: 12px;
margin: 4px;
border-radius: 4px;
vertical-align: -60%;
appearance: none;
-webkit-appearance: none;
display: inline-block;
background: var(--bg-shade-3);
padding: 12px;
margin: 4px;
border-radius: 4px;
vertical-align: -60%;
}
.blog-card input[type="checkbox"]:checked {
content: "checkboxtest";
background: no-repeat center/contain url(../images/check.svg),
var(--bg-shade-3);
content: "checkboxtest";
background: no-repeat center/contain url(../images/check.svg),
var(--bg-shade-3);
}
.blog-card hr {
border: 1px solid var(--text-shade-1);
margin: 30px 0;
border: 1px solid var(--text-shade-1);
margin: 30px 0;
}
.blog-card blockquote {
border-left: 2px solid var(--text-shade-1);
padding: 8px 24px;
margin: 0;
margin-bottom: 30px;
border-left: 2px solid var(--text-shade-1);
padding: 8px 24px;
margin: 0;
margin-bottom: 30px;
}
@media screen and (max-width: 800px) {
.blog-card {
padding: 40px;
}
.blog-card {
padding: 40px;
}
}
@media screen and (max-width: 600px) {
.wrapper {
width: 100%;
}
.wrapper {
width: 100%;
}
header {
width: 90%;
margin: 35px auto;
}
header {
width: 90%;
margin: 35px auto;
}
.blog-card {
padding: 40px 5vw;
border-radius: 0;
margin-top: 0;
}
.blog-card {
padding: 40px 5vw;
border-radius: 0;
margin-top: 0;
}
footer {
width: 95%;
margin: auto auto 40px;
}
footer {
width: 95%;
margin: auto auto 40px;
}
}

View file

@ -10,18 +10,18 @@ button {
color: var(--text-shade-3);
padding: 12px 48px;
background: var(--bg-shade-3);
cursor: pointer;
display: block;
text-align: center;
cursor: pointer;
display: block;
text-align: center;
}
button:hover {
background: var(--bg-shade-4);
background: var(--bg-shade-4);
}
button.primary {
background: var(--accent-shade-0);
}
button.primary:hover {
background: var(--accent-shade-1);
background: var(--accent-shade-1);
}
button.secondary.icon-btn {
@ -40,101 +40,101 @@ button svg {
/* MODALS */
body.modal-open {
overflow: hidden;
overflow: hidden;
}
div.modal-wrapper {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100vh;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
background: rgba(0, 0, 0, 0.6);
display: flex;
justify-content: center;
align-items: center;
background: rgba(0, 0, 0, 0.6);
z-index: 10;
z-index: 10;
}
div.modal-wrapper.hidden {
display: none;
display: none;
}
div.modal {
background: var(--bg-shade-3);
padding: 48px;
border-radius: 8px;
text-align: left;
width: min(660px, 90%);
box-sizing: border-box;
background: var(--bg-shade-3);
padding: 48px;
border-radius: 8px;
text-align: left;
width: min(660px, 90%);
box-sizing: border-box;
}
div.modal h1 {
margin-top: 0;
margin-top: 0;
}
p.modal-caption {
color: var(--text-shade-1);
color: var(--text-shade-1);
}
p.modal-caption span,
p.switch-tier-modal-caption span {
color: var(--text-shade-3);
color: var(--text-shade-3);
}
.modal-button-wrapper {
margin-top: 24px;
display: flex;
justify-content: flex-end;
margin-top: 24px;
display: flex;
justify-content: flex-end;
}
.modal-button-wrapper button {
margin-left: 12px;
width: fit-content;
margin-left: 12px;
width: fit-content;
}
.modal-button-wrapper button.cancel {
background: none;
background: none;
}
.modal-button-wrapper button {
padding: 12px 24px;
padding: 12px 24px;
}
@media screen and (max-width: 600px) {
div.modal {
padding: 24px;
}
div.modal {
padding: 24px;
}
}
/* MISC FORM COMPONENTS */
input[type="checkbox"] {
appearance: none;
-webkit-appearance: none;
background: var(--bg-shade-3);
padding: 12px;
margin: 4px;
margin-left: 0;
border-radius: 4px;
vertical-align: -65%;
width: fit-content;
cursor: pointer;
appearance: none;
-webkit-appearance: none;
background: var(--bg-shade-3);
padding: 12px;
margin: 4px;
margin-left: 0;
border-radius: 4px;
vertical-align: -65%;
width: fit-content;
cursor: pointer;
}
input[type="checkbox"]:checked {
background: no-repeat center/contain url(../images/check.svg), var(--accent-shade-0);
background: no-repeat center/contain url(../images/check.svg), var(--accent-shade-0);
}
input {
appearance: none;
-webkit-appearance: none;
display: block;
font-family: Poppins, Arial, Helvetica, sans-serif;
font-size: 1rem;
background-color: var(--bg-shade-3);
border: none;
border-radius: 4px;
padding: 12px;
color: var(--text-shade-3);
width: calc(100% - 24px);
appearance: none;
-webkit-appearance: none;
display: block;
font-family: Poppins, Arial, Helvetica, sans-serif;
font-size: 1rem;
background-color: var(--bg-shade-3);
border: none;
border-radius: 4px;
padding: 12px;
color: var(--text-shade-3);
width: calc(100% - 24px);
}
input:focus {
background-color: var(--bg-shade-4);
outline: none;
transition: 150ms;
}
background-color: var(--bg-shade-4);
outline: none;
transition: 150ms;
}

View file

@ -1,221 +1,221 @@
html,
body {
background: var(--bg-shade-0);
background: var(--bg-shade-0);
}
a.logo-link {
margin: auto;
margin-left: 36px;
height: 40px;
text-decoration: none;
margin: auto;
margin-left: 36px;
height: 40px;
text-decoration: none;
}
.docs-wrapper header {
width: calc(100% - 72px);
background: var(--bg-shade-0);
padding: 12px 36px;
margin: 18px 0;
width: calc(100% - 72px);
background: var(--bg-shade-0);
padding: 12px 36px;
margin: 18px 0;
}
header a.logo-link {
display: none;
display: none;
}
header nav a:first-child {
margin-left: -24px;
margin-left: -24px;
}
.docs-wrapper {
display: grid;
grid-template-columns: repeat(2, fit-content(100%));
grid-template-rows: repeat(2, fit-content(100%));
height: 100vh;
display: grid;
grid-template-columns: repeat(2, fit-content(100%));
grid-template-rows: repeat(2, fit-content(100%));
height: 100vh;
}
.docs-wrapper .sidebar {
display: flex;
flex-flow: column;
align-items: center;
width: clamp(270px, 30vw, 500px);
background: var(--bg-shade-0);
max-height: calc(100vh - 69px);
overflow-y: scroll;
min-height: 100%;
display: flex;
flex-flow: column;
align-items: center;
width: clamp(270px, 30vw, 500px);
background: var(--bg-shade-0);
max-height: calc(100vh - 69px);
overflow-y: scroll;
min-height: 100%;
}
.docs-wrapper .sidebar .section {
display: flex;
flex-flow: column;
width: 200px;
margin-left: 138px;
margin-bottom: 72px;
display: flex;
flex-flow: column;
width: 200px;
margin-left: 138px;
margin-bottom: 72px;
}
.docs-wrapper .sidebar .section:first-child {
margin-top: 72px;
margin-top: 72px;
}
.docs-wrapper .sidebar .section h5 {
margin: 0;
font-weight: normal;
text-transform: uppercase;
color: var(--text-shade-0);
margin-bottom: 12px;
margin: 0;
font-weight: normal;
text-transform: uppercase;
color: var(--text-shade-0);
margin-bottom: 12px;
}
.docs-wrapper .sidebar .section a {
position: relative;
text-decoration: none;
color: var(--text-shade-1);
width: fit-content;
margin-bottom: 12px;
position: relative;
text-decoration: none;
color: var(--text-shade-1);
width: fit-content;
margin-bottom: 12px;
}
.docs-wrapper .sidebar .section a.active,
.docs-wrapper .sidebar .section a:hover {
color: var(--text-shade-3);
color: var(--text-shade-3);
}
.docs-wrapper .sidebar .section a.active::before {
/* This filter thing is jank, if anyone knows a better way to do this please fix */
filter: invert(51%) sepia(12%) saturate(2930%) hue-rotate(218deg)
brightness(99%) contrast(92%);
position: absolute;
left: -30px;
content: url(../images/arrow-right.svg);
/* This filter thing is jank, if anyone knows a better way to do this please fix */
filter: invert(51%) sepia(12%) saturate(2930%) hue-rotate(218deg)
brightness(99%) contrast(92%);
position: absolute;
left: -30px;
content: url(../images/arrow-right.svg);
}
.docs-wrapper .content {
width: calc(100vw - clamp(270px, 30vw, 500px) - (72px * 2));
background: var(--bg-shade-1);
padding: 72px;
max-height: calc(100vh - 69px - (72px * 2));
overflow-y: scroll;
width: calc(100vw - clamp(270px, 30vw, 500px) - (72px * 2));
background: var(--bg-shade-1);
padding: 72px;
max-height: calc(100vh - 69px - (72px * 2));
overflow-y: scroll;
}
.docs-wrapper .content-inner {
max-width: 900px;
max-width: 900px;
}
.docs-wrapper .content p {
color: var(--text-shade-1);
color: var(--text-shade-1);
}
.docs-wrapper .content h1:first-child {
margin-top: 0;
margin-top: 0;
}
.docs-wrapper .content .quick-links-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
grid-gap: 24px;
margin-bottom: 60px;
display: grid;
grid-template-columns: repeat(2, 1fr);
grid-gap: 24px;
margin-bottom: 60px;
}
.docs-wrapper .quick-links-grid a {
text-decoration: none;
background: var(--bg-shade-2);
border-radius: 6px;
color: var(--text-shade-1);
display: flex;
align-items: center;
padding: 20px;
text-decoration: none;
background: var(--bg-shade-2);
border-radius: 6px;
color: var(--text-shade-1);
display: flex;
align-items: center;
padding: 20px;
}
.docs-wrapper .quick-links-grid svg:first-child {
height: 36px;
margin-right: 24px;
margin-left: 4px;
color: var(--accent-shade-2);
height: 36px;
margin-right: 24px;
margin-left: 4px;
color: var(--accent-shade-2);
}
.docs-wrapper .quick-links-grid p.header {
font-size: 22px;
font-weight: 600;
color: var(--text-shade-3);
margin: 0;
font-size: 22px;
font-weight: 600;
color: var(--text-shade-3);
margin: 0;
}
.docs-wrapper .quick-links-grid p {
margin: 0;
margin: 0;
}
.docs-wrapper .quick-links-grid svg:last-child {
height: 36px;
margin-left: auto;
height: 36px;
margin-left: auto;
}
/* Scrollbar styling 'cause it's fancy */
.docs-wrapper .sidebar::-webkit-scrollbar,
.docs-wrapper .content::-webkit-scrollbar,
.docs-wrapper .content pre code::-webkit-scrollbar {
width: 12px;
height: 12px;
width: 12px;
height: 12px;
}
.docs-wrapper .sidebar::-webkit-scrollbar-track,
.docs-wrapper .content::-webkit-scrollbar-track,
.docs-wrapper .content pre code::-webkit-scrollbar-track {
background: none;
background: none;
}
.docs-wrapper .sidebar::-webkit-scrollbar-thumb,
.docs-wrapper .content::-webkit-scrollbar-thumb,
.docs-wrapper .content pre code::-webkit-scrollbar-thumb {
background-color: var(--text-shade-0);
border-radius: 24px;
border: 3px solid var(--bg-shade-1);
background-color: var(--text-shade-0);
border-radius: 24px;
border: 3px solid var(--bg-shade-1);
}
.docs-wrapper .content::-webkit-scrollbar-thumb {
border: 3px solid var(--bg-shade-1);
border: 3px solid var(--bg-shade-1);
}
.docs-wrapper .content pre code::-webkit-scrollbar-thumb {
border: 3px solid var(--bg-shade-0);
border: 3px solid var(--bg-shade-0);
}
.docs-wrapper .sidebar {
scrollbar-width: thin;
scrollbar-color: var(--text-shade-0) var(--bg-shade-1);
scrollbar-width: thin;
scrollbar-color: var(--text-shade-0) var(--bg-shade-1);
}
.docs-wrapper .content {
scrollbar-width: thin;
scrollbar-color: var(--text-shade-0) var(--bg-shade-1);
scrollbar-width: thin;
scrollbar-color: var(--text-shade-0) var(--bg-shade-1);
}
.docs-wrapper .content pre code {
scrollbar-width: thin;
scrollbar-color: var(--text-shade-0) var(--bg-shade-0);
scrollbar-width: thin;
scrollbar-color: var(--text-shade-0) var(--bg-shade-0);
}
.docs-wrapper .content .missing-in-locale-notice {
background: var(--bg-shade-2);
padding: 24px;
border-radius: 6px;
background: var(--bg-shade-2);
padding: 24px;
border-radius: 6px;
}
.input-wrapper {
display: flex;
margin-top: 8px;
display: flex;
margin-top: 8px;
}
.localization-form input {
appearance: none;
-webkit-appearance: none;
border: 0;
font-family: Poppins, Arial, Helvetica, sans-serif;
font-size: 1rem;
background-color: var(--bg-shade-3);
border: none;
border-radius: 4px 0 0 4px;
padding: 12px 24px;
color: var(--text-shade-1);
width: 20px;
flex: 2 10%;
appearance: none;
-webkit-appearance: none;
border: 0;
font-family: Poppins, Arial, Helvetica, sans-serif;
font-size: 1rem;
background-color: var(--bg-shade-3);
border: none;
border-radius: 4px 0 0 4px;
padding: 12px 24px;
color: var(--text-shade-1);
width: 20px;
flex: 2 10%;
}
.search input::placeholder {
color: var(--text-shade-0);
color: var(--text-shade-0);
}
.search input:focus {
background-color: #fff;
color: var(--bg-shade-3);
transition: 200ms;
outline: none;
background-color: #fff;
color: var(--bg-shade-3);
transition: 200ms;
outline: none;
}
.search button {
appearance: none;
-webkit-appearance: none;
border: 0;
font-family: Poppins, Arial, Helvetica, sans-serif;
font-size: 1rem;
color: var(--text-shade-3);
padding: 12px 36px;
background: var(--accent-shade-0);
cursor: pointer;
appearance: none;
-webkit-appearance: none;
border: 0;
font-family: Poppins, Arial, Helvetica, sans-serif;
font-size: 1rem;
color: var(--text-shade-3);
padding: 12px 36px;
background: var(--accent-shade-0);
cursor: pointer;
}
@media screen and (max-width: 1080px) {
.docs-wrapper .sidebar .section {
margin-left: 60px;
width: 184px;
}
.docs-wrapper .sidebar .section {
margin-left: 60px;
width: 184px;
}
}

View file

@ -1,76 +1,76 @@
.select-box {
display: flex;
flex-direction: column;
position: relative;
user-select: none;
display: flex;
flex-direction: column;
position: relative;
user-select: none;
}
.select-box > * {
box-sizing: border-box;
box-sizing: border-box;
}
.select-box .options-container {
max-height: 0;
width: fit-content;
opacity: 0;
transition: all 0.4s;
overflow: hidden;
border-radius: 5px;
background-color: var(--bg-shade-3);
order: 1;
position: absolute;
top: 48px;
right: 0;
max-height: 0;
width: fit-content;
opacity: 0;
transition: all 0.4s;
overflow: hidden;
border-radius: 5px;
background-color: var(--bg-shade-3);
order: 1;
position: absolute;
top: 48px;
right: 0;
}
.select-box .option .item {
color: var(--text-shade-2);
color: var(--text-shade-2);
}
.select-box .lang {
width: 1.3rem;
height: 1rem;
margin-right: .2rem;
display: inline-block;
width: 1.3rem;
height: 1rem;
margin-right: .2rem;
display: inline-block;
}
.select-box .options-container.active {
max-height: 240px;
opacity: 1;
overflow-y: auto;
max-height: 240px;
opacity: 1;
overflow-y: auto;
}
.select-box .options-container.active + .locale-dropdown-toggle::after {
transform: translateY(-50%) rotateX(180deg);
transform: translateY(-50%) rotateX(180deg);
}
.select-box .options-container::-webkit-scrollbar {
width: 8px;
background: var(--bg-shade-3);
border-radius: 0 5px 5px 0;
width: 8px;
background: var(--bg-shade-3);
border-radius: 0 5px 5px 0;
}
.select-box .options-container::-webkit-scrollbar-thumb {
background: var(--text-shade-1);
border-radius: 0 5px 5px 0;
background: var(--text-shade-1);
border-radius: 0 5px 5px 0;
}
.select-box .option {
padding: 12px 15px;
cursor: pointer;
border-radius: 5px;
padding: 12px 15px;
cursor: pointer;
border-radius: 5px;
}
.select-box .option:hover {
background: var(--bg-shade-4);
background: var(--bg-shade-4);
}
.select-box .option:hover .item {
color: white;
color: white;
}
.select-box label {
cursor: pointer;
cursor: pointer;
}
.select-box .option .radio {
display: none;
display: none;
}

View file

@ -1,137 +1,137 @@
pre code.hljs {
display: block;
overflow-x: auto;
padding: 36px;
border-radius: 10px;
font-family: Poppins, Arial, Helvetica, sans-serif;
display: block;
overflow-x: auto;
padding: 36px;
border-radius: 10px;
font-family: Poppins, Arial, Helvetica, sans-serif;
}
code.hljs {
padding: 3px 5px;
padding: 3px 5px;
}
.hljs {
background: var(--bg-shade-0);
color: #d6deeb;
background: var(--bg-shade-0);
color: #d6deeb;
}
.hljs-keyword {
color: var(--accent-shade-2);
font-style: italic;
color: var(--accent-shade-2);
font-style: italic;
}
.hljs-built_in {
color: #addb67;
font-style: italic;
color: #addb67;
font-style: italic;
}
.hljs-type {
color: #82aaff;
color: #82aaff;
}
.hljs-literal {
color: #ff5874;
color: #ff5874;
}
.hljs-number {
color: #f78c6c;
color: #f78c6c;
}
.hljs-regexp {
color: #5ca7e4;
color: #5ca7e4;
}
.hljs-string {
color: #ecc48d;
color: #ecc48d;
}
.hljs-subst {
color: #d3423e;
color: #d3423e;
}
.hljs-symbol {
color: #82aaff;
color: #82aaff;
}
.hljs-class {
color: #ffcb8b;
color: #ffcb8b;
}
.hljs-function {
color: #82aaff;
color: #82aaff;
}
.hljs-title {
color: #dcdcaa;
font-style: italic;
color: #dcdcaa;
font-style: italic;
}
.hljs-params {
color: #7fdbca;
color: #7fdbca;
}
.hljs-comment {
color: #637777;
font-style: italic;
color: #637777;
font-style: italic;
}
.hljs-doctag {
color: #7fdbca;
color: #7fdbca;
}
.hljs-meta,
.hljs-meta .hljs-keyword {
color: #82aaff;
color: #82aaff;
}
.hljs-meta .hljs-string {
color: #ecc48d;
color: #ecc48d;
}
.hljs-section {
color: #82b1ff;
color: #82b1ff;
}
.hljs-attr,
.hljs-name,
.hljs-tag {
color: #7fdbca;
color: #7fdbca;
}
.hljs-attribute {
color: #80cbc4;
color: #80cbc4;
}
.hljs-variable {
color: #addb67;
color: #addb67;
}
.hljs-bullet {
color: #d9f5dd;
color: #d9f5dd;
}
.hljs-code {
color: #80cbc4;
color: #80cbc4;
}
.hljs-emphasis {
color: #c792ea;
font-style: italic;
color: #c792ea;
font-style: italic;
}
.hljs-strong {
color: #addb67;
font-weight: 700;
color: #addb67;
font-weight: 700;
}
.hljs-formula {
color: #c792ea;
color: #c792ea;
}
.hljs-link {
color: #ff869a;
color: #ff869a;
}
.hljs-quote {
color: #697098;
font-style: italic;
color: #697098;
font-style: italic;
}
.hljs-selector-tag {
color: #ff6363;
color: #ff6363;
}
.hljs-selector-id {
color: #fad430;
color: #fad430;
}
.hljs-selector-class {
color: #addb67;
font-style: italic;
color: #addb67;
font-style: italic;
}
.hljs-selector-attr,
.hljs-selector-pseudo {
color: #c792ea;
font-style: italic;
color: #c792ea;
font-style: italic;
}
.hljs-template-tag {
color: #c792ea;
color: #c792ea;
}
.hljs-template-variable {
color: #addb67;
color: #addb67;
}
.hljs-addition {
color: #addb67ff;
font-style: italic;
color: #addb67ff;
font-style: italic;
}
.hljs-deletion {
color: #ef535090;
font-style: italic;
color: #ef535090;
font-style: italic;
}

View file

@ -1,95 +1,95 @@
.localization-wrapper {
width: 100%;
min-height: calc(100vh - 155px);
margin: 0;
text-align: left;
display: flex;
justify-content: center;
align-items: center;
width: 100%;
min-height: calc(100vh - 155px);
margin: 0;
text-align: left;
display: flex;
justify-content: center;
align-items: center;
}
.localization-widget {
max-width: 600px;
width: 100%;
max-width: 600px;
width: 100%;
}
.caption {
color: var(--text-shade-1);
max-width: 400px;
margin: 20px 0;
color: var(--text-shade-1);
max-width: 400px;
margin: 20px 0;
}
.title.dot {
margin: 0;
margin: 0;
}
.localization-instr,
.localization-instr:visited {
display: flex;
align-items: center;
color: var(--accent-shade-2);
text-decoration: none;
position: relative;
left: -4px;
width: fit-content;
display: flex;
align-items: center;
color: var(--accent-shade-2);
text-decoration: none;
position: relative;
left: -4px;
width: fit-content;
}
.localization-instr svg {
height: 1.3em;
margin-right: 4px;
height: 1.3em;
margin-right: 4px;
}
.localization-form {
padding: 36px;
background-color: var(--bg-shade-0);
border-radius: 12px;
margin-top: 36px;
padding: 36px;
background-color: var(--bg-shade-0);
border-radius: 12px;
margin-top: 36px;
}
.input-wrapper {
display: flex;
margin-top: 8px;
display: flex;
margin-top: 8px;
}
.localization-form input {
appearance: none;
-webkit-appearance: none;
border: 0;
font-family: Poppins, Arial, Helvetica, sans-serif;
font-size: 1rem;
background-color: var(--bg-shade-3);
border: none;
border-radius: 4px 0 0 4px;
padding: 12px 24px;
color: var(--text-shade-1);
width: 20px;
flex: 2 10%;
appearance: none;
-webkit-appearance: none;
border: 0;
font-family: Poppins, Arial, Helvetica, sans-serif;
font-size: 1rem;
background-color: var(--bg-shade-3);
border: none;
border-radius: 4px 0 0 4px;
padding: 12px 24px;
color: var(--text-shade-1);
width: 20px;
flex: 2 10%;
}
.localization-form input::placeholder {
color: var(--text-shade-0);
color: var(--text-shade-0);
}
.localization-form input:focus {
background-color: var(--bg-shade-4);
color: var(--bg-shade-3);
transition: 200ms;
outline: none;
background-color: var(--bg-shade-4);
color: var(--bg-shade-3);
transition: 200ms;
outline: none;
}
.localization-form button {
appearance: none;
-webkit-appearance: none;
border: 0;
border-radius: 0 4px 4px 0;
font-family: Poppins, Arial, Helvetica, sans-serif;
font-size: 1rem;
color: var(--text-shade-3);
padding: 12px 36px;
background: var(--accent-shade-0);
cursor: pointer;
appearance: none;
-webkit-appearance: none;
border: 0;
border-radius: 0 4px 4px 0;
font-family: Poppins, Arial, Helvetica, sans-serif;
font-size: 1rem;
color: var(--text-shade-3);
padding: 12px 36px;
background: var(--accent-shade-0);
cursor: pointer;
}
footer {
margin-top: auto;
margin-top: auto;
}

View file

@ -1,132 +1,132 @@
.wrapper {
display: flex;
flex-flow: column;
min-height: 100vh;
display: flex;
flex-flow: column;
min-height: 100vh;
}
header {
margin: 35px 0;
margin: 35px 0;
}
.account-form-wrapper {
margin: auto;
width: fit-content;
overflow: hidden;
margin: auto;
width: fit-content;
overflow: hidden;
}
form.account {
display: block;
padding: 40px 48px;
background-color: var(--bg-shade-2);
color: var(--text-shade-1);
border-radius: 12px;
width: min(480px, 90vw);
box-sizing: border-box;
display: block;
padding: 40px 48px;
background-color: var(--bg-shade-2);
color: var(--text-shade-1);
border-radius: 12px;
width: min(480px, 90vw);
box-sizing: border-box;
}
form.account h2 {
margin: 0;
color: var(--text-shade-3);
margin: 0;
color: var(--text-shade-3);
}
form.account p {
margin: 12px 0;
margin: 12px 0;
}
form.account div {
margin-top: 24px;
margin-top: 24px;
}
form.account label {
display: block;
margin-bottom: 6px;
text-transform: uppercase;
font-size: 12px;
display: block;
margin-bottom: 6px;
text-transform: uppercase;
font-size: 12px;
}
form.account button {
width: 100%;
background: var(--accent-shade-0);
width: 100%;
background: var(--accent-shade-0);
}
form.account a {
text-decoration: none;
display: block;
color: var(--text-shade-1);
text-align: right;
margin: 6px 0;
width: fit-content;
text-decoration: none;
display: block;
color: var(--text-shade-1);
text-align: right;
margin: 6px 0;
width: fit-content;
}
form.account a:hover {
color: var(--text-shade-3);
color: var(--text-shade-3);
}
form.account a.pwdreset {
margin-left: auto;
font-size: 14px;
margin-left: auto;
font-size: 14px;
}
form.account a.register {
margin: auto;
margin-top: 18px;
margin: auto;
margin-top: 18px;
}
@keyframes banner-notice {
0% {
top: -150px;
}
20% {
top: 35px;
}
80% {
top: 35px;
}
100% {
top: -150px;
}
0% {
top: -150px;
}
20% {
top: 35px;
}
80% {
top: 35px;
}
100% {
top: -150px;
}
}
.banner-notice {
display: flex;
justify-content: center;
position: fixed;
top: -150px;
width: 100%;
animation: banner-notice 5s;
display: flex;
justify-content: center;
position: fixed;
top: -150px;
width: 100%;
animation: banner-notice 5s;
}
.banner-notice div {
padding: 4px 36px;
border-radius: 5px;
z-index: 3;
padding: 4px 36px;
border-radius: 5px;
z-index: 3;
}
.banner-notice.error div {
background: var(--red-shade-1);
background: var(--red-shade-1);
}
form.account.register {
display: grid;
grid-template-columns: repeat(2, 1fr);
width: min(780px, 90vw);
column-gap: 24px;
margin-bottom: 48px;
display: grid;
grid-template-columns: repeat(2, 1fr);
width: min(780px, 90vw);
column-gap: 24px;
margin-bottom: 48px;
}
form.account.register div.h-captcha {
grid-column: 1 / span 2;
display: flex;
justify-content: center;
grid-column: 1 / span 2;
display: flex;
justify-content: center;
}
form.account.register p,
form.account.register div.email,
form.account.register div.buttons {
grid-column: 1 / span 2;
grid-column: 1 / span 2;
}
@media screen and (max-width: 720px) {
form.account.register {
grid-template-columns: 1fr;
}
form.account.register div.h-captcha,
form.account.register p,
form.account.register div.email,
form.account.register div.buttons {
grid-column: unset;
}
form.account.register {
grid-template-columns: 1fr;
}
form.account.register div.h-captcha,
form.account.register p,
form.account.register div.email,
form.account.register div.buttons {
grid-column: unset;
}
}

View file

@ -1,6 +1,6 @@
:root {
/* 1 is the base color, <1 are darker variations and >1 are lighter */
--bg-shade-0: #131733;
--bg-shade-1: #1B1F3B;
--bg-shade-2: #23274A;
@ -16,7 +16,7 @@
--text-shade-1: #A1A8D9;
--text-shade-2: #CAC1F5;
--text-shade-3: #fff;
--green-shade-0: #37a985;
--green-shade-1: #59c9a5;
@ -70,11 +70,11 @@ body, .main-body {
h1.dot:not([data-title-suffix]):after, h2.dot:not([data-title-suffix]):after {
content: "";
background-color: var(--accent-shade-1);
width: 0.6rem;
height: 0.6rem;
border-radius: 50%;
display: inline-block;
background-color: var(--accent-shade-1);
width: 0.6rem;
height: 0.6rem;
border-radius: 50%;
display: inline-block;
}
h1.dot[data-title-suffix]:after, h2.dot[data-title-suffix]:after {
content: attr(data-title-suffix);
@ -331,7 +331,7 @@ section.showcase::before {
position: absolute;
top: 0;
bottom: 0;
z-index: -1;
z-index: -1;
}
section.showcase .text {
max-width: 504px;
@ -465,12 +465,12 @@ section.team-helpers .row.first {
section.team-helpers .row.second {
animation: infiniteScrollRow2 25s linear infinite;
}
@keyframes infiniteScrollRow1 {
0% { transform: translate3d(0); }
@keyframes infiniteScrollRow1 {
0% { transform: translate3d(0); }
100% { transform: translate3d(calc(100% / -3), 0, 0); }
}
@keyframes infiniteScrollRow2 {
0% { transform: translate3d(calc(100% / -3), 0, 0); }
@keyframes infiniteScrollRow2 {
0% { transform: translate3d(calc(100% / -3), 0, 0); }
100% { transform: translate3d(0, 0, 0); }
}
section.team-helpers .animation-wrapper {
@ -839,7 +839,7 @@ section.update-signup div.circle {
.hero-meta {
margin-top: 100px;
}
.wrapper {
width: 90%;
}
@ -892,15 +892,15 @@ section.update-signup div.circle {
font-size: 1.1rem;
}
section.showcase {
margin-top: 0;
margin-top: 0;
}
section.showcase .grid {
grid-template-columns: 1fr;
grid-template-rows: repeat(3, 1fr);
}
section.team,
section.team-helpers {
margin-top: 100px;
@ -961,7 +961,7 @@ section.update-signup div.circle {
}
section.showcase {
padding: 160px 0;
padding: 160px 0;
}
section.showcase p.text {
margin-bottom: 82px;
@ -984,7 +984,7 @@ section.update-signup div.circle {
section.team-helpers .team-helpers-cards {
grid-gap: 12px;
margin-right: 12px;
margin-right: 12px;
}
section.team-helpers .animation-wrapper .helper-card {
padding: 7px 18px;
@ -1002,4 +1002,4 @@ section.update-signup div.circle {
margin: auto !important;
}
}
}

View file

@ -1,251 +1,250 @@
body,
div.main-body,
.miieditor-wrapper {
z-index: -1;
user-select: none;
z-index: -1;
user-select: none;
}
svg.logotype {
position: absolute;
width: 120px;
top:42px;
left:162px;
position: absolute;
width: 120px;
top:42px;
left:162px;
}
.miieditor-wrapper {
position: relative;
display: grid;
grid-template-columns: 2fr 3fr;
background: var(--bg-shade-0);
width: 100vw;
height: 100vh;
gap: 0 48px;
position: relative;
display: grid;
grid-template-columns: 2fr 3fr;
background: var(--bg-shade-0);
width: 100vw;
height: 100vh;
gap: 0 48px;
}
.miieditor-wrapper::after {
content: "";
display: block;
position: absolute;
background: radial-gradient(closest-side, var(--bg-shade-1) 0%, transparent 100%);
width: 200vh;
height: 200vh;
top: -100vh;
left: -100vh;
z-index: -1;
content: "";
display: block;
position: absolute;
background: radial-gradient(closest-side, var(--bg-shade-1) 0%, transparent 100%);
width: 200vh;
height: 200vh;
top: -100vh;
left: -100vh;
z-index: -1;
}
div.mii-img-wrapper {
position: relative;
margin: auto;
max-width: 512px;
width: 26vw;
height: auto;
position: relative;
margin: auto;
max-width: 512px;
width: 26vw;
height: auto;
}
img#mii-img {
position: relative;
width: 512px;
height: auto;
z-index: 2;
position: relative;
width: 512px;
height: auto;
z-index: 2;
}
div.mii-img-wrapper .shadow {
position: absolute;
bottom: -18px;
left: 6px;
height: 72px;
width: 512px;
background: radial-gradient(farthest-side, var(--bg-shade-2) 0%, transparent 100%);
position: absolute;
bottom: -18px;
left: 6px;
height: 72px;
width: 512px;
background: radial-gradient(farthest-side, var(--bg-shade-2) 0%, transparent 100%);
}
div.params-wrapper {
position: relative;
overflow-x: visible;
margin: auto;
margin-top: 150px;
margin-right: 100px;
display: grid;
z-index: 3;
position: relative;
overflow-x: visible;
margin: auto;
margin-top: 150px;
margin-right: 100px;
display: grid;
z-index: 3;
}
div.tabs {
display: grid;
grid-auto-flow: column;
width: fit-content;
gap: 2px;
background: #0A0C19;
padding: 6px;
border-radius: 6px;
margin-bottom: 32px;
display: grid;
grid-auto-flow: column;
width: fit-content;
gap: 2px;
background: #0A0C19;
padding: 6px;
border-radius: 6px;
margin-bottom: 32px;
}
div.tabs .tabbtn {
min-width: 42px;
min-height: 42px;
border: none;
border-radius: 6px;
cursor: pointer;
background: none;
color: var(--text-shade-3);
min-width: 42px;
min-height: 42px;
border: none;
border-radius: 6px;
cursor: pointer;
background: none;
color: var(--text-shade-3);
}
div.tabs .tabbtn:hover,
div.tabs .tabbtn.active {
background: var(--bg-shade-1);
background: var(--bg-shade-1);
}
div.subtabs {
position: relative;
grid-column: 1 / span 2;
position: relative;
grid-column: 1 / span 2;
}
div.subtabs .subtabbtn {
position: relative;
border: none;
padding: 12px;
border-radius: 6px;
cursor: pointer;
background: none;
color: var(--text-shade-3);
position: relative;
border: none;
padding: 12px;
border-radius: 6px;
cursor: pointer;
background: none;
color: var(--text-shade-3);
}
div.subtabs .subtabbtn.active::before,
div.subtabs .subtabbtn.active:hover::before {
content: "";
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 5px;
background: var(--accent-shade-1);
border-radius: 6px;
content: "";
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 5px;
background: var(--accent-shade-1);
border-radius: 6px;
}
.subtab.has-sliders {
grid-template-columns: 1fr 1fr;
grid-template-columns: 1fr 1fr;
}
form.params {
grid-template-columns: repeat(2, auto);
grid-template-columns: repeat(2, auto);
}
form.params .tab {
display: none;
grid-template-columns: 534px 258px;
gap: 48px;
display: none;
grid-template-columns: 534px 258px;
gap: 48px;
}
form.params .tab.active {
display: grid;
display: grid;
}
fieldset {
appearance: none;
border: none;
padding: 0;
margin: 0;
display: none;
grid-template-columns: repeat(4, 1fr);
gap: 18px;
width: fit-content;
height: fit-content;
grid-row: 2;
appearance: none;
border: none;
padding: 0;
margin: 0;
display: none;
grid-template-columns: repeat(4, 1fr);
gap: 18px;
width: fit-content;
height: fit-content;
grid-row: 2;
}
fieldset.active {
display: grid;
display: grid;
}
fieldset.color {
grid-template-columns: repeat(2, 1fr);
display: grid;
grid-column: 2;
grid-template-columns: repeat(2, 1fr);
display: grid;
grid-column: 2;
}
fieldset input[type="radio"] {
display: none;
display: none;
}
fieldset input[type="radio"] + label {
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
border-radius: 18px;
background: var(--bg-shade-3);
width: 120px;
height: 120px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
border-radius: 18px;
background: var(--bg-shade-3);
width: 120px;
height: 120px;
}
fieldset input[type="radio"]:checked + label {
background: var(--bg-shade-4);
font-weight: bold;
box-shadow: inset 0 0 0 4px var(--accent-shade-1);
background: var(--bg-shade-4);
font-weight: bold;
box-shadow: inset 0 0 0 4px var(--accent-shade-1);
}
fieldset.color input[type="radio"]:checked + label {
box-shadow: inset 0 0 0 4px var(--accent-shade-1), inset 0 0 0 6px var(--bg-shade-1);
box-shadow: inset 0 0 0 4px var(--accent-shade-1), inset 0 0 0 6px var(--bg-shade-1);
}
div.colorSidebar {
margin: auto;
margin: auto;
}
fieldset.has-subpages.active {
display: block;
display: block;
}
fieldset.has-subpages .subpage {
display: none;
grid-template-columns: repeat(4, 1fr);
gap: 18px;
width: fit-content;
height: fit-content;
display: none;
grid-template-columns: repeat(4, 1fr);
gap: 18px;
width: fit-content;
height: fit-content;
}
fieldset.has-subpages .subpage.active {
display: grid;
display: grid;
}
input[type="range"].invert {
direction: rtl;
direction: rtl;
}
.pagination {
display: flex;
flex-flow: row;
width: max-content;
grid-column: 3 / span 2;
grid-row: 4;
margin-left: auto;
align-items: center;
font-size: 18px;
color: var(--text-shade-1);
display: flex;
flex-flow: row;
width: max-content;
grid-column: 3 / span 2;
grid-row: 4;
margin-left: auto;
align-items: center;
font-size: 18px;
color: var(--text-shade-1);
}
.pagination .current-page-index {
display: inline-block;
font-weight: bold;
color: var(--text-shade-3);
width: 18px;
margin-right: 0.7ch;
text-align: right;
display: inline-block;
font-weight: bold;
color: var(--text-shade-3);
width: 18px;
margin-right: 0.7ch;
text-align: right;
}
.page-btn {
appearance: none;
border: none;
background: none;
cursor: pointer;
appearance: none;
border: none;
background: none;
cursor: pointer;
}
.page-btn svg{
height: 36px;
margin: 6px
height: 36px;
margin: 6px
}
.page-btn.disabled {
pointer-events: none;
pointer-events: none;
}
.page-btn.disabled svg path {
fill: var(--bg-shade-3);
fill: var(--bg-shade-3);
}
button * {
pointer-events: none;
pointer-events: none;
}
.miieditor-wrapper::before {
content: "";
display: block;
position: absolute;
background: var(--bg-shade-1);
border-radius: 100%;
width: 1308px;
height: 1707px;
top: 50%;
transform: translateY(-50%);
right: -200px;
z-index: 0;
content: "";
display: block;
position: absolute;
background: var(--bg-shade-1);
border-radius: 100%;
width: 1308px;
height: 1707px;
top: 50%;
transform: translateY(-50%);
right: -200px;
z-index: 0;
}

View file

@ -1,111 +1,111 @@
footer {
width: 100%;
display: grid;
grid-template-columns: repeat(3, fit-content(100%)) 1fr;
gap: 7.7vw;
color: var(--text-shade-1);
margin-top: 120px;
position: relative;
padding: 60px 0;
width: 100%;
display: grid;
grid-template-columns: repeat(3, fit-content(100%)) 1fr;
gap: 7.7vw;
color: var(--text-shade-1);
margin-top: 120px;
position: relative;
padding: 60px 0;
}
footer::after {
content: "";
width: 400vw;
height: 100%;
position: absolute;
top: 0;
left: -50vw;
background: var(--bg-shade-0);
z-index: -1;
content: "";
width: 400vw;
height: 100%;
position: absolute;
top: 0;
left: -50vw;
background: var(--bg-shade-0);
z-index: -1;
}
footer div {
display: flex;
flex-flow: column;
width: fit-content;
display: flex;
flex-flow: column;
width: fit-content;
}
footer svg.logotype {
height: 56px;
width: fit-content;
margin: -10px 0 24px -10px;
height: 56px;
width: fit-content;
margin: -10px 0 24px -10px;
}
footer p {
margin: 0;
margin: 0;
}
footer h1 {
font-size: 20px;
margin-top: 0;
color: var(--text-shade-3);
font-size: 20px;
margin-top: 0;
color: var(--text-shade-3);
}
footer a {
color: var(--text-shade-1);
text-decoration: none;
width: fit-content;
color: var(--text-shade-1);
text-decoration: none;
width: fit-content;
}
footer a:hover {
color: var(--text-shade-3);
text-decoration: underline;
color: var(--text-shade-3);
text-decoration: underline;
}
footer div.discord-server-card {
background: var(--bg-shade-2);
border-radius: 12px;
padding: 30px 90px 30px 36px;
justify-self: end;
background: var(--bg-shade-2);
border-radius: 12px;
padding: 30px 90px 30px 36px;
justify-self: end;
}
footer div.discord-server-card h1 {
font-size: 25px;
margin: 0;
font-size: 25px;
margin: 0;
}
footer div.discord-server-card h2 {
color: var(--text-shade-3);
font-size: 22px;
margin: 0;
color: var(--text-shade-3);
font-size: 22px;
margin: 0;
}
footer div.discord-server-card a {
display: flex;
align-items: center;
color: var(--accent-shade-3);
font-size: 22px;
text-decoration: none;
width: fit-content;
margin-left: -2px;
margin-top: 12px;
display: flex;
align-items: center;
color: var(--accent-shade-3);
font-size: 22px;
text-decoration: none;
width: fit-content;
margin-left: -2px;
margin-top: 12px;
}
footer div.discord-server-card a:hover {
text-decoration: underline;
text-decoration: underline;
}
footer div.discord-server-card svg {
height: 24px;
stroke-width: 3px;
margin-right: 4px;
height: 24px;
stroke-width: 3px;
margin-right: 4px;
}
@media screen and (max-width: 900px) {
footer {
margin-top: 100px;
grid-template-columns: repeat(3, 1fr);
grid-template-rows: repeat(2, fit-content(100%));
}
footer div {
justify-self: center;
}
footer div.discord-server-card {
grid-column: 1 / span 4;
width: calc(100% - 126px);
justify-self: normal;
}
footer {
margin-top: 100px;
grid-template-columns: repeat(3, 1fr);
grid-template-rows: repeat(2, fit-content(100%));
}
footer div {
justify-self: center;
}
footer div.discord-server-card {
grid-column: 1 / span 4;
width: calc(100% - 126px);
justify-self: normal;
}
}
@media screen and (max-width: 580px) {
footer {
grid-template-columns: 1fr;
grid-template-rows: repeat(4, fit-content(100%));
}
footer div {
justify-self: start;
}
footer div.discord-server-card {
grid-column: 1 / span 1;
padding: 30px;
width: calc(100% - 60px);
}
footer {
grid-template-columns: 1fr;
grid-template-rows: repeat(4, fit-content(100%));
}
footer div {
justify-self: start;
}
footer div.discord-server-card {
grid-column: 1 / span 1;
padding: 30px;
width: calc(100% - 60px);
}
}

View file

@ -1,155 +1,155 @@
header {
display: flex;
align-items: center;
margin-top: 35px;
display: flex;
align-items: center;
margin-top: 35px;
}
header a {
text-decoration: none;
text-decoration: none;
}
header .logo-link,
header .logo-link svg {
display: block;
display: block;
}
header nav a:first-child {
margin-left: 40px;
margin-left: 40px;
}
header nav a {
color: var(--text-shade-1);
margin: 0 17px;
text-decoration: none;
color: var(--text-shade-1);
margin: 0 17px;
text-decoration: none;
}
header nav a:hover {
color: var(--text-shade-3);
transition: color 50ms ease-in-out;
color: var(--text-shade-3);
transition: color 50ms ease-in-out;
}
header .right-section {
display: grid;
grid-auto-flow: column;
grid-gap: 24px;
margin-left: auto;
z-index: 2;
color: var(--text-shade-1);
display: grid;
grid-auto-flow: column;
grid-gap: 24px;
margin-left: auto;
z-index: 2;
color: var(--text-shade-1);
}
header .locale-dropdown-toggle {
width: fit-content;
height: 24px;
padding: 0;
margin: auto;
transition: color 150ms;
cursor: pointer;
width: fit-content;
height: 24px;
padding: 0;
margin: auto;
transition: color 150ms;
cursor: pointer;
}
header .locale-dropdown-toggle:hover,
header .locale-dropdown-toggle.active {
color: var(--text-shade-3);
color: var(--text-shade-3);
}
header .user-widget-wrapper {
height: 24px;
height: 24px;
}
header .user-widget-wrapper a.login-link {
color: var(--text-shade-1);
text-decoration: none;
transition: color 150ms;
color: var(--text-shade-1);
text-decoration: none;
transition: color 150ms;
}
header .user-widget-wrapper a.login-link:hover {
color: var(--text-shade-3);
color: var(--text-shade-3);
}
header .user-widget-wrapper.logged-in {
position: relative;
width: 32px;
height: 32px;
position: relative;
width: 32px;
height: 32px;
}
header .user-widget-wrapper.logged-in .user-widget-toggle {
width: 32px;
height: 32px;
background: var(--text-shade-0);
border-radius: 50%;
overflow: hidden;
cursor: pointer;
width: 32px;
height: 32px;
background: var(--text-shade-0);
border-radius: 50%;
overflow: hidden;
cursor: pointer;
}
header .user-widget-wrapper .user-widget-toggle img,
header .user-widget .user-avatar img {
width: 100%;
height: 100%;
width: 100%;
height: 100%;
}
header .user-widget {
max-height: 0;
overflow: hidden;
max-height: 0;
overflow: hidden;
box-sizing: border-box;
transition: max-height 300ms, padding 200ms, opacity 150ms;
box-sizing: border-box;
transition: max-height 300ms, padding 200ms, opacity 150ms;
position: absolute;
right: 0;
top: 48px;
padding: 0;
background: var(--bg-shade-2);
border-radius: 8px;
text-align: center;
opacity: 0;
position: absolute;
right: 0;
top: 48px;
padding: 0;
background: var(--bg-shade-2);
border-radius: 8px;
text-align: center;
opacity: 0;
box-shadow: 0 0 10px -2px var(--bg-shade-0);
box-shadow: 0 0 10px -2px var(--bg-shade-0);
}
header .user-widget.active {
max-height: 100vh;
padding: 36px;
opacity: 1;
max-height: 100vh;
padding: 36px;
opacity: 1;
}
header .user-widget .user-avatar {
width: 128px;
height: 128px;
margin: auto;
background: var(--text-shade-0);
border-radius: 50%;
overflow: hidden;
width: 128px;
height: 128px;
margin: auto;
background: var(--text-shade-0);
border-radius: 50%;
overflow: hidden;
}
header .user-widget .user-info {
margin-top: 12px;
margin-top: 12px;
}
header .user-widget .user-info .mii-name {
color: var(--text-shade-3);
color: var(--text-shade-3);
}
header .user-widget .buttons {
margin-top: 12px;
margin-top: 12px;
}
header .user-widget .button {
margin-top: 12px;
width: 100%;
padding: 8px 60px;
cursor: pointer;
margin-top: 12px;
width: 100%;
padding: 8px 60px;
cursor: pointer;
}
header .user-widget .button.logout {
background: var(--bg-shade-3);
color: var(--text-shade-3);
background: var(--bg-shade-3);
color: var(--text-shade-3);
}
@media screen and (max-width: 900px) {
header nav a:not(.keep-on-mobile) {
display: none;
}
header nav a:not(.keep-on-mobile) {
display: none;
}
header .logo-link {
margin-right: 20px;
}
header .logo-link {
margin-right: 20px;
}
}
@media screen and (max-width: 480px) {
header .logo-link svg text {
display: none;
}
header .logo-link svg text {
display: none;
}
header .logo-link svg {
width: 39.876px;
}
header .logo-link svg {
width: 39.876px;
}
header .logo-link {
margin-right: 10px;
}
header nav a {
margin: 0 10px;
}
header .logo-link {
margin-right: 10px;
}
header nav a {
margin: 0 10px;
}
}

View file

@ -1,3 +1,3 @@
/*
MOVE PROGRESS CSS HERE
*/
*/

View file

@ -1,308 +1,308 @@
.wrapper {
display: flex;
justify-content: center;
text-align: center;
min-height: 100vh;
display: flex;
justify-content: center;
text-align: center;
min-height: 100vh;
}
.wrapper::before {
position: absolute;
top: -800px;
content: "";
background: var(--bg-shade-0);
border-radius: 100%;
width: 1600px;
height: 1400px;
position: absolute;
top: -800px;
content: "";
background: var(--bg-shade-0);
border-radius: 100%;
width: 1600px;
height: 1400px;
}
.back-arrow {
position: absolute;
display: flex;
justify-content: center;
top: 36px;
left: max(calc((100vw - 1590px) / 2), 2.5vw);
padding: 6px 10px;
background: var(--bg-shade-3);
border-radius: 24px;
transition: filter 150ms;
text-decoration: none;
color: var(--text-shade-3);
z-index: 5;
position: absolute;
display: flex;
justify-content: center;
top: 36px;
left: max(calc((100vw - 1590px) / 2), 2.5vw);
padding: 6px 10px;
background: var(--bg-shade-3);
border-radius: 24px;
transition: filter 150ms;
text-decoration: none;
color: var(--text-shade-3);
z-index: 5;
}
.back-arrow:hover {
filter: brightness(1.5)
filter: brightness(1.5)
}
.back-arrow svg {
width: 24px;
height: 24px;
width: 24px;
height: 24px;
}
.back-arrow span {
margin: 0 4px;
margin: 0 4px;
}
.account-form-wrapper {
display: flex;
flex-flow: column;
width: min(1200px, 100%);
color: var(--text-shade-1);
margin: 0 auto 48px;
z-index: 1;
display: flex;
flex-flow: column;
width: min(1200px, 100%);
color: var(--text-shade-1);
margin: 0 auto 48px;
z-index: 1;
}
.account-form-wrapper .logotype {
margin: 36px auto 0;
width: fit-content;
margin: 36px auto 0;
width: fit-content;
}
h1.title {
color: var(--text-shade-3);
color: var(--text-shade-3);
}
p.caption {
width: min(100%, 500px);
margin: 0 auto 36px;
width: min(100%, 500px);
margin: 0 auto 36px;
}
.account-form-wrapper .progress-bar-wrapper {
justify-content: center;
width: min(100%, 500px);
margin: 0 auto 72px;
padding: 24px;
border-radius: 6px;
background: var(--bg-shade-2);
box-sizing: border-box;
justify-content: center;
width: min(100%, 500px);
margin: 0 auto 72px;
padding: 24px;
border-radius: 6px;
background: var(--bg-shade-2);
box-sizing: border-box;
}
.account-form-wrapper .progress-bar-wrapper p {
text-align: left;
margin-bottom: 0;
text-align: left;
margin-bottom: 0;
}
.account-form-wrapper .progress-bar-wrapper p span {
color: var(--text-shade-3);
font-weight: 600;
color: var(--text-shade-3);
font-weight: 600;
}
.account-form-wrapper .progress-bar {
height: 8px;
border-radius: 4px;
margin-top: 0;
height: 8px;
border-radius: 4px;
margin-top: 0;
}
form {
box-sizing: border-box;
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 1.3rem;
box-sizing: border-box;
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 1.3rem;
}
form .tier-radio {
display: none;
display: none;
}
form .tier-radio:checked + label::before {
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
box-shadow: inset 0 0 0 4px var(--accent-shade-1);
border-radius: 10px;
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
box-shadow: inset 0 0 0 4px var(--accent-shade-1);
border-radius: 10px;
}
form .tier-radio:checked + label::after {
content: url(/assets/images/check.svg);
display: flex;
justify-content: center;
background: var(--accent-shade-1);
width: 24px;
height: 24px;
border-radius: 100%;
position: absolute;
top: -16px;
right: -16px;
padding: 6px;
content: url(/assets/images/check.svg);
display: flex;
justify-content: center;
background: var(--accent-shade-1);
width: 24px;
height: 24px;
border-radius: 100%;
position: absolute;
top: -16px;
right: -16px;
padding: 6px;
}
label.tier {
display: flex;
flex-flow: column;
position: relative;
border-radius: 10px;
align-items: center;
padding-top: calc(50px + 1rem);
background: var(--bg-shade-3);
cursor: pointer;
transition: all 150ms;
margin-top: 50px;
text-align: center;
display: flex;
flex-flow: column;
position: relative;
border-radius: 10px;
align-items: center;
padding-top: calc(50px + 1rem);
background: var(--bg-shade-3);
cursor: pointer;
transition: all 150ms;
margin-top: 50px;
text-align: center;
}
label.tier p {
margin: 0;
margin-bottom: 0.5rem;
margin: 0;
margin-bottom: 0.5rem;
}
label.tier .tier-thumbnail {
height: 100px;
width: 100px;
display: flex;
align-items: center;
overflow: hidden;
border-radius: 8px;
position: absolute;
top: -50px;
z-index: 2;
background: var(--bg-shade-4);
height: 100px;
width: 100px;
display: flex;
align-items: center;
overflow: hidden;
border-radius: 8px;
position: absolute;
top: -50px;
z-index: 2;
background: var(--bg-shade-4);
}
form .tier-radio:checked + label .tier-thumbnail::before {
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
box-shadow: inset 0 0 0 4px var(--accent-shade-1);
border-radius: 8px;
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
box-shadow: inset 0 0 0 4px var(--accent-shade-1);
border-radius: 8px;
}
label.tier .tier-text {
display: flex;
flex-flow: column;
margin-bottom: auto;
display: flex;
flex-flow: column;
margin-bottom: auto;
}
label.tier .tier-name {
color: var(--text-shade-3);
font-weight: bold;
font-size: 1.2rem;
color: var(--text-shade-3);
font-weight: bold;
font-size: 1.2rem;
}
label.tier .tier-perks {
text-align: left;
width: 70%;
margin: 24px auto 48px;
text-align: left;
width: 70%;
margin: 24px auto 48px;
}
label.tier .tier-perks div {
display: grid;
grid-template-columns: 16px auto;
gap: 8px;
display: grid;
grid-template-columns: 16px auto;
gap: 8px;
}
label.tier .tier-perks svg {
stroke-width: 5px;
stroke: var(--green-shade-1);
stroke-linecap: square;
width: 16px;
height: 16px;
vertical-align: top;
margin-top: 0.5ex;
stroke-width: 5px;
stroke: var(--green-shade-1);
stroke-linecap: square;
width: 16px;
height: 16px;
vertical-align: top;
margin-top: 0.5ex;
}
label.tier p.price {
display: flex;
width: 100%;
justify-content: center;
align-items: center;
background: var(--bg-shade-4);
margin: 0;
padding: 1.5rem 1rem;
box-sizing: border-box;
border-radius: 0 0 10px 10px;
display: flex;
width: 100%;
justify-content: center;
align-items: center;
background: var(--bg-shade-4);
margin: 0;
padding: 1.5rem 1rem;
box-sizing: border-box;
border-radius: 0 0 10px 10px;
}
label.tier p.price span {
font-size: 2rem;
color: var(--text-shade-3);
font-weight: bold;
margin-right: 0.5ch;
font-size: 2rem;
color: var(--text-shade-3);
font-weight: bold;
margin-right: 0.5ch;
}
form .button-wrapper {
grid-column: 2 / span 1;
position: relative;
margin-top: 24px;
grid-column: 2 / span 1;
position: relative;
margin-top: 24px;
}
button {
appearance: none;
-webkit-appearance: none;
display: block;
font-family: Poppins, Arial, Helvetica, sans-serif;
font-size: 1rem;
height: fit-content;
appearance: none;
-webkit-appearance: none;
display: block;
font-family: Poppins, Arial, Helvetica, sans-serif;
font-size: 1rem;
height: fit-content;
background: var(--accent-shade-0);
border: none;
border-radius: 4px;
padding: 12px;
color: var(--text-shade-3);
width: 100%;
background: var(--accent-shade-0);
border: none;
border-radius: 4px;
padding: 12px;
color: var(--text-shade-3);
width: 100%;
transition: filter 300ms;
pointer-events: all;
cursor: pointer;
filter: none;
transition: filter 300ms;
pointer-events: all;
cursor: pointer;
filter: none;
}
form button.disabled {
pointer-events: none;
filter: brightness(0.75) saturate(0.75); /* not using opacity here 'cause in the mobile layout you would see the cards under it */
cursor: default;
pointer-events: none;
filter: brightness(0.75) saturate(0.75); /* not using opacity here 'cause in the mobile layout you would see the cards under it */
cursor: default;
}
form button.unsubscribe {
position: relative;
background: none;
color: var(--text-shade-1);
margin-top: 12px;
padding: 0;
position: relative;
background: none;
color: var(--text-shade-1);
margin-top: 12px;
padding: 0;
}
form button.unsubscribe.hidden {
position: absolute;
top: 0;
pointer-events: none;
z-index: -1;
position: absolute;
top: 0;
pointer-events: none;
z-index: -1;
}
form button.unsubscribe:hover {
color: var(--text-shade-3);
color: var(--text-shade-3);
}
@media screen and (max-width: 900px) {
.account-form-wrapper {
width: min(500px, 100%);
margin-bottom: 172px;
}
.account-form-wrapper {
width: min(500px, 100%);
margin-bottom: 172px;
}
form {
grid-template-columns: 1fr;
gap: 2.4rem;
}
form {
grid-template-columns: 1fr;
gap: 2.4rem;
}
form button {
position: relative;
width: 100%;
}
form .button-wrapper {
grid-column: 1 / span 1;
position: fixed;
bottom: 24px;
width: min(500px, 90%);
z-index: 5;
}
form .button-wrapper::before {
content: "";
position: absolute;
top: -24px;
left: -100vw;
width: 200vw;
height: 300%;
background: var(--bg-shade-0);
}
form button {
position: relative;
width: 100%;
}
form .button-wrapper {
grid-column: 1 / span 1;
position: fixed;
bottom: 24px;
width: min(500px, 90%);
z-index: 5;
}
form .button-wrapper::before {
content: "";
position: absolute;
top: -24px;
left: -100vw;
width: 200vw;
height: 300%;
background: var(--bg-shade-0);
}
}
@media screen and (max-width: 380px) {
label.tier .tier-perks {
width: 80%;
}
.back-arrow {
padding: 6px;
}
.back-arrow span {
display: none;
}
label.tier .tier-perks {
width: 80%;
}
.back-arrow {
padding: 6px;
}
.back-arrow span {
display: none;
}
}

View file

@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-right"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-right"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>

Before

Width:  |  Height:  |  Size: 314 B

After

Width:  |  Height:  |  Size: 315 B

View file

@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-check"><polyline points="20 6 9 17 4 12"></polyline></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-check"><polyline points="20 6 9 17 4 12"></polyline></svg>

Before

Width:  |  Height:  |  Size: 254 B

After

Width:  |  Height:  |  Size: 255 B

View file

@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-down"><polyline points="6 9 12 15 18 9"></polyline></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-down"><polyline points="6 9 12 15 18 9"></polyline></svg>

Before

Width:  |  Height:  |  Size: 261 B

After

Width:  |  Height:  |  Size: 262 B

View file

@ -211,4 +211,4 @@ class Mii extends KaitaiStream {
}
}
module.exports = Mii;
module.exports = Mii;

View file

@ -39,7 +39,7 @@ onlineFilesModalButtonConfirm?.addEventListener('click', () => {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({
body: JSON.stringify({
password: onlineFilesModalPasswordInput.value
})
})
@ -58,4 +58,4 @@ onlineFilesModalButtonConfirm?.addEventListener('click', () => {
onlineFilesModalButtonClose?.addEventListener('click', () => {
onlineFilesModal.classList.add('hidden');
});
});

View file

@ -59,7 +59,7 @@ document.addEventListener('click', (e) => {
let found = false;
if (
localeDropdown == targetElement ||
localeDropdown.contains(targetElement)
localeDropdown.contains(targetElement)
) {
found = true;
userWidget.classList.remove('active');
@ -67,9 +67,9 @@ document.addEventListener('click', (e) => {
if (
userWidget == targetElement ||
userWidget.contains(targetElement) ||
userWidgetToggle == targetElement ||
userWidgetToggle.contains(targetElement)
userWidget.contains(targetElement) ||
userWidgetToggle == targetElement ||
userWidgetToggle.contains(targetElement)
) {
found = true;
localeDropdownToggle.classList.remove('active');

View file

@ -1,6 +1,6 @@
// This file gets automatically bundled with browserify when running the start script. This also means that after any update you're gonna need to restart the server.
// Prevent the user from reloading or leaving the page
// Prevent the user from reloading or leaving the page
window.addEventListener('beforeunload', function (e) {
e.preventDefault();
e.returnValue = '';

View file

@ -111,4 +111,4 @@ buttons.switchTierModal.confirm.addEventListener('click', function(e) {
e.preventDefault();
submitForm(false);
});
});

View file

@ -1,19 +1,19 @@
{
"name": "Pretendo Network",
"short_name": "Pretendo Network",
"icons": [
{
"src": "https://pretendo.network/assets/images/icons/android-chrome-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "https://pretendo.network/assets/images/icons/android-chrome-384x384.png",
"sizes": "384x384",
"type": "image/png"
}
],
"theme_color": "#1b1f3b",
"background_color": "#1b1f3b",
"display": "standalone"
"name": "Pretendo Network",
"short_name": "Pretendo Network",
"icons": [
{
"src": "https://pretendo.network/assets/images/icons/android-chrome-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "https://pretendo.network/assets/images/icons/android-chrome-384x384.png",
"sizes": "384x384",
"type": "image/png"
}
],
"theme_color": "#1b1f3b",
"background_color": "#1b1f3b",
"display": "standalone"
}

View file

@ -1,19 +1,19 @@
{
"name": "Pretendo",
"short_name": "Pretendo",
"icons": [
{
"src": "/assets/icons/android-chrome-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "/assets/icons/android-chrome-384x384.png",
"sizes": "384x384",
"type": "image/png"
}
],
"theme_color": "#673db6",
"background_color": "#673db6",
"display": "standalone"
"name": "Pretendo",
"short_name": "Pretendo",
"icons": [
{
"src": "/assets/icons/android-chrome-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "/assets/icons/android-chrome-384x384.png",
"sizes": "384x384",
"type": "image/png"
}
],
"theme_color": "#673db6",
"background_color": "#673db6",
"display": "standalone"
}

View file

@ -149,4 +149,4 @@ async function updateStripeDonationCache() {
module.exports = {
getTrelloCache,
getStripeDonationCache
};
};

View file

@ -24,4 +24,4 @@ async function connect() {
module.exports = {
connect,
PNID
};
};

View file

@ -49,4 +49,4 @@ module.exports = {
error,
warn,
info
};
};

View file

@ -19,4 +19,4 @@ async function sendMail(options) {
module.exports = {
sendMail
};
};

View file

@ -10,4 +10,4 @@ async function redirectMiddleware(request, response, next) {
return next();
}
module.exports = redirectMiddleware;
module.exports = redirectMiddleware;

View file

@ -5,7 +5,7 @@ async function renderDataMiddleware(request, response, next) {
if (request.path.startsWith('/assets')) {
return next();
}
// Get user local
const reqLocale = request.locale;
const locale = util.getLocale(reqLocale.region, reqLocale.language);
@ -40,4 +40,4 @@ async function renderDataMiddleware(request, response, next) {
}
}
module.exports = renderDataMiddleware;
module.exports = renderDataMiddleware;

View file

@ -7,4 +7,4 @@ async function requireLoginMiddleware(request, response, next) {
return next();
}
module.exports = requireLoginMiddleware;
module.exports = requireLoginMiddleware;

View file

@ -61,7 +61,7 @@ router.get('/', requireLoginMiddleware, async (request, response) => {
scope: ['identify', 'guilds'],
state: crypto.randomBytes(16).toString('hex'),
});
renderData.discordAuthURL = discordAuthURL;
}
@ -396,7 +396,7 @@ router.post('/stripe/unsubscribe', requireLoginMiddleware, async (request, respo
logger.error(`Error canceling old user subscription | ${pnid.get('connections.stripe.customer_id')}, ${pid}, ${subscriptionId} | - ${error.message}`);
response.cookie('error_message', 'Error canceling subscription! Contact support if issue persists', { domain: '.pretendo.network' });
return response.redirect('/account');
}
}
@ -421,4 +421,4 @@ router.post('/stripe/webhook', express.raw({ type: 'application/json' }), async
});
module.exports = router;
module.exports = router;

View file

@ -23,4 +23,4 @@ const PNIDSchema = new Schema({
}
});
module.exports = PNIDSchema;
module.exports = PNIDSchema;

View file

@ -144,7 +144,7 @@ app.engine('handlebars', handlebars({
* get the string in the user's locale. If not available, it will return it in
* the default locale.
*/
args.slice(1, -1).forEach(arg => {
userLocaleString = userLocaleString?.[arg];
});

View file

@ -148,7 +148,7 @@ function nintendoPasswordHash(password, pid) {
Buffer.from('\x02\x65\x43\x46'),
Buffer.from(password)
]);
const hashed = crypto.createHash('sha256').update(unpacked).digest().toString('hex');
return hashed;
@ -219,7 +219,7 @@ async function handleStripeEvent(event) {
} catch (error) {
logger.error(`Error sending email | ${customer.id}, ${customer.email} | - ${error.message}`);
}
return;
}
@ -348,4 +348,4 @@ module.exports = {
updateDiscordConnection,
nintendoPasswordHash,
handleStripeEvent
};
};

View file

@ -99,7 +99,7 @@
<p>Your current tier gives you beta server access. Cool!</p>
{{/unless}}
</div>
<h2 class="section-header" id="security">Sign in and security</h2>
<div class="setting-card">
<h2 class="header">Account</h2>
@ -188,4 +188,4 @@
</div>
</div>
<script src="/assets/js/account.js"></script>
<script src="/assets/js/account.js"></script>

View file

@ -33,4 +33,4 @@
<p>{{ error }}</p>
</div>
</div>
{{/if}}
{{/if}}

File diff suppressed because it is too large Load diff

View file

@ -45,4 +45,4 @@
<p>{{ error }}</p>
</div>
</div>
{{/if}}
{{/if}}

View file

@ -101,4 +101,4 @@
</div>
</div>
<script src="/assets/js/upgrade.js" />
<script src="/assets/js/upgrade.js" />

View file

@ -40,7 +40,7 @@
</a>
library of first party games like never before, with fan-favorite titles such as Mario Kart 8 and Super Mario Maker making a return, and challenge your friends on the go with the Nintendo 3DS's Super Smash Bros. and Miitopia!</p>
</div>
<div class="bro-what dotted-bg new-font">
<h1>Why subscribe to Nintendo Switch Online + Legacy Pack when the online servers are still up and most first-party games have already been ported to the Nintendo Switch?</h1>
@ -78,4 +78,4 @@
document.querySelector("#Pretendo").setAttribute("font-family", "museo-sans, sans-serif");
document.querySelector("#Pretendo > tspan").innerHTML = "Nintendo Switch Online + Legacy Pack";
document.querySelector(".logo-link > svg").setAttribute("width", 350);
</script>
</script>

View file

@ -12,7 +12,7 @@
</div>
</div>
{{#each postList }}
{{#each postList }}
<a href="/blog/{{this.slug}}" class="purple-card blog-card">
<div class="post-info">
<h2 class="title">{{{ this.postInfo.title }}}</h2>
@ -43,4 +43,4 @@
</div>
{{> footer }}
</div>
</div>

View file

@ -2,7 +2,7 @@
<div class="docs-wrapper">
<a href="/" class="logo-link">
<a href="/" class="logo-link">
<svg xmlns="http://www.w3.org/2000/svg" width="120" height="39.876">
<g id="logo_type" data-name="logo type" transform="translate(-553 -467)">
<g id="logo" transform="translate(553 467)">
@ -27,25 +27,25 @@
</svg>
</a>
{{> header}}
{{> docs-sidebar}}
{{> header}}
<div class="content">
<div class="content-inner">
{{#if missingInLocale}}
<p class="missing-in-locale-notice">{{ localeHelper locale "docs" "missingInLocale" }}</p>
{{/if}}
{{> docs-sidebar}}
<div class="content">
<div class="content-inner">
{{#if missingInLocale}}
<p class="missing-in-locale-notice">{{ localeHelper locale "docs" "missingInLocale" }}</p>
{{/if}}
{{#if showQuickLinks}}
<h1>{{ localeHelper locale "docs" "quickLinks" "header" }}</h1>
<div class="quick-links-grid">
<a href="/docs/troubleshoot-errors">
<a href="/docs/troubleshoot-errors">
<svg xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-download"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg> <div>
<p class="header">{{ localeHelper locale "docs" "quickLinks" "links" 0 "header" }}</p>
<p>{{ localeHelper locale "docs" "quickLinks" "links" 0 "caption" }}</p>
</div>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-right"><polyline points="9 18 15 12 9 6"></polyline></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-right"><polyline points="9 18 15 12 9 6"></polyline></svg>
</a>
<a href="/docs/beans">
@ -53,18 +53,17 @@
<p class="header">{{ localeHelper locale "docs" "quickLinks" "links" 1 "header" }}</p>
<p>{{ localeHelper locale "docs" "quickLinks" "links" 1 "caption" }}</p>
</div>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-right"><polyline points="9 18 15 12 9 6"></polyline></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-right"><polyline points="9 18 15 12 9 6"></polyline></svg>
</a>
</div>
{{/if}}
{{{ content }}}
</div>
</div>
{{{ content }}}
</div>
</div>
</div>
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/11.3.1/styles/default.min.css">
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/11.3.1/highlight.min.js"></script>
<link rel="stylesheet" href="/assets/css/highlightjs.css">
<script>hljs.highlightAll();</script>

View file

@ -2,7 +2,7 @@
<div class="docs-wrapper">
<a href="/" class="logo-link">
<a href="/" class="logo-link">
<svg xmlns="http://www.w3.org/2000/svg" width="120" height="39.876">
<g id="logo_type" data-name="logo type" transform="translate(-553 -467)">
<g id="logo" transform="translate(553 467)">
@ -27,14 +27,13 @@
</svg>
</a>
{{> header}}
{{> docs-sidebar}}
{{> header}}
<div class="content">
<div class="content-inner">
<div class="card"></div>
</div>
</div>
{{> docs-sidebar}}
<div class="content">
<div class="content-inner">
<div class="card"></div>
</div>
</div>
</div>

View file

@ -37,7 +37,7 @@
<div class="light-purple-circle">
<img class="n2ds" src="/assets/images/n2ds.png">
<div class="deco">
<svg xmlns="http://www.w3.org/2000/svg" width="839.371" height="893.406" viewBox="0 0 839.371 893.406">
<g id="deco" transform="translate(-1064.958 -142.958)">
<g id="Ellipse_12" data-name="Ellipse 12" transform="translate(1314 265)" fill="none" stroke="#9d6ff3" stroke-width="26">
@ -131,7 +131,7 @@
</div>
</div>
</section>
<section class="team">
<div class="sect-top sect team-top">
<h2 class="dot title" id="credits" {{#if locale.credits.titleSuffix}}data-title-suffix="{{locale.credits.titleSuffix}}"{{/if}}>{{ localeHelper locale "credits" "title" }}</h2>
@ -149,7 +149,7 @@
<span>{{ name }}</span>
<a href="{{ github }}" class="github" target="_blank">
<svg data-prefix="fab" data-icon="github" class="svg-inline--fa fa-github fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path fill="currentColor" d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"></path></svg>
</a>
</a>
</h3>
<p class="text">{{ caption }}</p>
</div>
@ -209,5 +209,5 @@
</section>
{{> footer }}
</div>
</div>

View file

@ -7,14 +7,14 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="manifest" href="/assets/site.webmanifest">
<meta name="msapplication-config" content="/assets/browserconfig.xml">
<!-- windows/ios/chrome -->
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="apple-mobile-web-app-title" content="Pretendo Network">
<meta name="application-name" content="Pretendo Network">
<meta name="msapplication-TileColor" content="#1b1f3b">
<meta name="theme-color" content="#1b1f3b">
<!-- open graph/embeds -->
<meta property="og:title" content="{{ postInfo.title }} | Pretendo Network Blog">
<meta property="og:description" content="{{ postInfo.caption }}">
@ -23,7 +23,7 @@
<meta property="og:image" content="{{ postInfo.cover_image }}">
<meta property="og:image:alt" content="Pretendo Network">
<meta property="og:site_name" content="Pretendo Network">
<!-- twitter embeds -->
<meta name="twitter:url" content="https://pretendo.network/">
<meta name="twitter:card" content="summary_large_image">
@ -31,14 +31,14 @@
<meta name="twitter:title" content="{{ postInfo.title }} | Pretendo Network Blog">
<meta name="twitter:description" content="{{ postInfo.caption }}">
<meta name="twitter:image" content="{{ postInfo.cover_image }}">
<!-- google seo -->
<meta name="description" content="An open source Nintendo Network replacement that aims to build custom servers for the WiiU and 3DS family of consoles">
<meta name="robots" content="index, follow">
<!-- RSS feed -->
<link rel="alternate" type="application/rss+xml" title="Pretendo Network Blog" href="/blog/feed.xml">
<!-- favicon -->
<link rel="apple-touch-icon" sizes="180x180" href="/assets/images/icons/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/assets/images/icons/favicon-32x32.png">
@ -72,4 +72,4 @@
<script src="/assets/js/locale-dropdown-handler.js"></script>
</body>
</html>
</html>

View file

@ -7,14 +7,14 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="manifest" href="/assets/site.webmanifest">
<meta name="msapplication-config" content="/assets/browserconfig.xml">
<!-- windows/ios/chrome -->
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="apple-mobile-web-app-title" content="Pretendo Network">
<meta name="application-name" content="Pretendo Network">
<meta name="msapplication-TileColor" content="#1b1f3b">
<meta name="theme-color" content="#1b1f3b">
<!-- open graph/embeds -->
<meta property="og:title" content="Pretendo Network">
<meta property="og:description" content="An open source Nintendo Network replacement that aims to build custom servers for the WiiU and 3DS family of consoles">
@ -23,7 +23,7 @@
<meta property="og:image" content="https://pretendo.network/assets/images/opengraph/opengraph-image.png">
<meta property="og:image:alt" content="Pretendo Network">
<meta property="og:site_name" content="Pretendo Network">
<!-- twitter embeds -->
<meta name="twitter:url" content="https://pretendo.network/">
<meta name="twitter:card" content="summary_large_image">
@ -31,14 +31,14 @@
<meta name="twitter:title" content="Pretendo Network">
<meta name="twitter:description" content="An open source Nintendo Network replacement that aims to build custom servers for the WiiU and 3DS family of consoles">
<meta name="twitter:image" content="https://pretendo.network/assets/images/opengraph/opengraph-image.png">
<!-- google seo -->
<meta name="description" content="An open source Nintendo Network replacement that aims to build custom servers for the WiiU and 3DS family of consoles">
<meta name="robots" content="index, follow">
<!-- RSS feed -->
<link rel="alternate" type="application/rss+xml" title="Pretendo Network Blog" href="/blog/feed.xml">
<!-- favicon -->
<link rel="apple-touch-icon" sizes="180x180" href="/assets/images/icons/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/assets/images/icons/favicon-32x32.png">
@ -70,4 +70,4 @@
<script src="/assets/js/progress-charts.js"></script>
</body>
</html>
</html>

View file

@ -25,4 +25,4 @@
{{> footer }}
<script src="/assets/js/locale-tester-handler.js" />
<script src="/assets/js/locale-tester-handler.js" />

View file

@ -1,50 +1,50 @@
<div class="sidebar">
<div class="section">
<h5>Getting started</h5>
<a href="/docs/welcome">Welcome</a>
<a href="/docs/installing-juxt" >Installing Juxt</a>
<a href="/docs/search">Search</a>
</div>
<div class="section">
<h5>Getting started</h5>
<a href="/docs/welcome">Welcome</a>
<a href="/docs/installing-juxt" >Installing Juxt</a>
<a href="/docs/search">Search</a>
</div>
<div class="section">
<h5>Error codes - Juxt</h5>
<a href="/docs/JXT-598-0000">JXT-598-0000</a>
<a href="/docs/JXT-598-0001">JXT-598-0001</a>
<a href="/docs/JXT-598-0002">JXT-598-0002</a>
<a href="/docs/JXT-598-0003">JXT-598-0003</a>
<a href="/docs/JXT-598-0009">JXT-598-0009</a>
<a href="/docs/JXT-598-0010">JXT-598-0010</a>
<a href="/docs/JXT-598-0011">JXT-598-0011</a>
<a href="/docs/JXT-598-0015">JXT-598-0015</a>
<a href="/docs/JXT-598-0020">JXT-598-0020</a>
<a href="/docs/JXT-598-1XXX">JXT-598-1XXX</a>
<a href="/docs/JXT-598-2XXX">JXT-598-2XXX</a>
<a href="/docs/JXT-598-3XXX">JXT-598-3XXX</a>
<a href="/docs/JXT-598-4XXX">JXT-598-4XXX</a>
<a href="/docs/JXT-598-5XXX">JXT-598-5XXX</a>
</div>
<div class="section">
<h5>Error codes - Juxt</h5>
<a href="/docs/JXT-598-0000">JXT-598-0000</a>
<a href="/docs/JXT-598-0001">JXT-598-0001</a>
<a href="/docs/JXT-598-0002">JXT-598-0002</a>
<a href="/docs/JXT-598-0003">JXT-598-0003</a>
<a href="/docs/JXT-598-0009">JXT-598-0009</a>
<a href="/docs/JXT-598-0010">JXT-598-0010</a>
<a href="/docs/JXT-598-0011">JXT-598-0011</a>
<a href="/docs/JXT-598-0015">JXT-598-0015</a>
<a href="/docs/JXT-598-0020">JXT-598-0020</a>
<a href="/docs/JXT-598-1XXX">JXT-598-1XXX</a>
<a href="/docs/JXT-598-2XXX">JXT-598-2XXX</a>
<a href="/docs/JXT-598-3XXX">JXT-598-3XXX</a>
<a href="/docs/JXT-598-4XXX">JXT-598-4XXX</a>
<a href="/docs/JXT-598-5XXX">JXT-598-5XXX</a>
</div>
<div class="section">
<h5>Error codes - Beans</h5>
<a href="/docs/Black Beans">Black Beans</a>
<a href="/docs/black-eyed-peas">Black-Eyed Peas</a>
<a href="/docs/Cannellini Beans">Cannellini Beans</a>
<a href="/docs/Chickpeas (Garbanzo Beans)">Chickpeas (Garbanzo Beans)</a>
<a href="/docs/Great Northern Beans">Great Northern Beans</a>
<a href="/docs/Kidney Beans">Kidney Beans</a>
<a href="/docs/Lima Beans">Lima Beans</a>
<a href="/docs/Pinto Beans">Pinto Beans</a>
<a href="/docs/Fava Beans">Fava Beans</a>
<a href="/docs/Navy Beans">Navy Beans</a>
</div>
<div class="section">
<h5>Error codes - Beans</h5>
<a href="/docs/Black Beans">Black Beans</a>
<a href="/docs/black-eyed-peas">Black-Eyed Peas</a>
<a href="/docs/Cannellini Beans">Cannellini Beans</a>
<a href="/docs/Chickpeas (Garbanzo Beans)">Chickpeas (Garbanzo Beans)</a>
<a href="/docs/Great Northern Beans">Great Northern Beans</a>
<a href="/docs/Kidney Beans">Kidney Beans</a>
<a href="/docs/Lima Beans">Lima Beans</a>
<a href="/docs/Pinto Beans">Pinto Beans</a>
<a href="/docs/Fava Beans">Fava Beans</a>
<a href="/docs/Navy Beans">Navy Beans</a>
</div>
</div>
<script>
function selectSidebarElement(element) {
element.scrollIntoView({ block: "center" });
element.classList.add('active');
element.scrollIntoView({ block: "center" });
element.classList.add('active');
}
selectSidebarElement(document.querySelector("div.sidebar a[href='/docs/{{currentPage}}']"));
</script>
</script>

View file

@ -52,4 +52,4 @@
{{ localeHelper locale "footer" "widget" "button" }}
</a>
</div>
</footer>
</footer>

View file

@ -138,7 +138,7 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-globe"><circle cx="12" cy="12" r="10"></circle><line x1="2" y1="12" x2="22" y2="12"></line><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"></path></svg>
</div>
</div>
{{#if isLoggedIn}}
<div class="user-widget-wrapper logged-in">
<div class="user-widget-toggle">
@ -169,11 +169,11 @@
{{else}}
<div class="user-widget-wrapper">
<a class="login-link" href="/account/login">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-user"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-user"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg>
</a>
</div>
{{/if}}
</div>
</header>
<script src="/assets/js/header-handler.js"></script>
<script src="/assets/js/header-handler.js"></script>

View file

@ -51,4 +51,4 @@
{{/each}}
</div>
</div>
</div>
</div>

View file

@ -30,4 +30,4 @@
{{> footer }}
</div>
</div>