Account portal, download page, non-standard module docs

This ends v1 on the website. Docs archive still available through a
sidebar nav link in the docs.
This commit is contained in:
Matthew Holt 2020-07-16 15:51:46 -06:00
parent 49ed10d267
commit 4f6d355a97
No known key found for this signature in database
GPG key ID: 2A349DD577D586A5
37 changed files with 1678 additions and 56 deletions

View file

@ -0,0 +1,289 @@
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html, body {
min-height: 100%;
}
html {
/* by setting the min-height of both html and body to 100%,
it ensures that flex items are centered on screen, but
also allows body to overflow screen height for tall content */
height: 100%;
}
body {
font: 16px sans-serif;
-webkit-font-smoothing: antialiased;
background: #e8ebf0;
display: flex;
}
a {
color: #2b9cff;
text-decoration: none;
}
a:hover {
color: #0f6ab9;
}
.card {
background: white;
margin: auto;
box-shadow: 0 20px 40px rgba(0, 0, 0, .1);
display: flex;
border-radius: 5px;
width: 100%;
max-width: 800px;
}
.card section {
padding: 50px;
text-align: center;
flex-grow: 1;
}
.card section.head {
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
flex-grow: 0;
background: #f3f7ff;
border-right: 1px solid #e8ebf0;
border-top-left-radius: 5px;
border-bottom-left-radius: 5px;
}
.card p {
margin: 0 auto;
max-width: 400px;
line-height: 1.25em;
font-size: 14px;
}
.card .logo {
width: 100%;
max-width: 100px;
display: block;
}
.card h1 {
font-size: 42px;
margin-bottom: 10px;
}
.form-fields {
padding: 20px 0;
}
input {
font-size: 16px;
font-family: 'PT Mono', 'Source Code Pro', monospace;
}
.card input,
.card button {
display: block;
margin: 1em auto;
padding: 8px;
}
.card input[type=text],
.card input[type=email],
.card input[type=password] {
width: 100%;
max-width: 400px;
}
.card button {
font-size: 16px;
font-weight: bold;
padding: 10px 20px;
}
@media (max-width: 800px) {
.card {
flex-direction: column;
}
}
.swal-content p {
margin: .5em 0;
}
#reset-password-step2 {
display: none;
}
.logo-container {
text-align: center;
margin: 20px auto;
}
.logo {
max-width: 100px;
}
.help {
border-bottom: 1px dotted #222;
cursor: help;
}
.beta {
font-size: 12px;
}
.container {
display: flex;
flex-grow: 1;
justify-content: space-between;
font-family: Maven Pro, sans-serif;
}
.container > nav {
background: #f8faff;
width: 25%;
max-width: 250px;
}
.container > nav ul {
list-style: none;
}
.container > nav ul a {
display: block;
padding: 10px 20px;
color: #546c75;
}
.container > nav ul a:hover {
color: #01324b;
background-color: #ebf3fb;
}
.container > nav ul a.current {
background-color: #e0ecfb;
font-weight: bold;
color: #01324b;
}
.container > main {
display: flex;
flex: 1;
align-items: center;
justify-content: center;
}
.container > main.dashboard {
align-items: flex-start;
justify-content: flex-start;
}
.container section {
background: white;
border-radius: 5px;
box-shadow: 0 2px 5px rgba(0, 0, 0, .08);
margin: 25px;
}
input[type=text],
input[type=email],
input[type=password] {
padding: 8px;
width: 100%;
max-width: 400px;
border: 1px solid #ccc;
}
form .field {
padding: 0 20px 20px;
max-width: 600px;
margin: 0 auto 20px auto;
border-bottom: 1px solid #eee;
}
form label b {
display: block;
margin-bottom: 10px;
}
form .description {
font-size: 14px;
color: #777;
margin-top: 5px;
}
form button,
form input[type=submit] {
font-size: 16px;
margin: 0 auto;
}
input[type=checkbox] {
cursor: pointer;
transform: scale(1.25);
}
section .pad {
margin: 15px 20px;
}
section button:not([type=submit]),
section .button:not([type=submit]) {
font-size: 14px;
padding: 6px 15px;
margin: auto;
}
section h1 {
font-size: 22px;
font-weight: normal;
}
table {
border-collapse: collapse;
}
tr {
border-bottom: 1px solid #ddd;
}
th,
td {
padding: 10px;
}
th {
background-color: #ebf3ff;
text-align: left;
}

View file

@ -0,0 +1,13 @@
input[name=path] {
font-size: 14px;
padding: 4px;
border-radius: 4px;
width: auto;
/* max-width: 450px; */
max-width: none;
}
a.disabled {
color: #aaa;
cursor: not-allowed;
}

View file

@ -12,20 +12,6 @@ body {
-moz-tab-size: 4;
}
#v1-banner {
display: block;
background: #5c92a4;
color: #fff;
text-align: center;
padding: 10px 20px;
font-size: 14px;
text-decoration: none;
}
#v1-banner:hover {
background: #457a8c;
}
.wrapper {
max-width: 1400px;
margin-left: auto;
@ -38,6 +24,14 @@ body {
text-align: center;
}
.text-right {
text-align: right;
}
.float-right {
float: right;
}
a {
color: #0694f1;
text-decoration: none;
@ -64,8 +58,8 @@ header nav {
header nav > a {
display: inline-block;
padding-left: 10px;
padding-right: 10px;
padding-left: 12px;
padding-right: 12px;
text-decoration: none;
color: inherit;
}
@ -116,6 +110,7 @@ header nav .button {
padding-bottom: 2px;
}
button,
.button {
border-radius: 2em;
padding: 10px 20px;
@ -124,43 +119,54 @@ header nav .button {
transition: all .2s;
text-decoration: none;
display: inline-block;
border: 0;
cursor: pointer;
}
button:hover,
.button:hover {
transform: scale(1.05);
}
button:active,
.button:active {
transform: translateY(2px);
}
button.red,
.button.red {
background-color: #d9552b;
color: white;
}
button.red:hover,
.button.red:hover {
background-color: #fd511a;
}
button.blue,
.button.blue {
background-color: #0082d0;
color: white;
}
button.blue:hover,
.button.blue:hover {
background-color: #00aaff;
}
button.gray,
.button.gray {
background-color: #4c6a79;
color: white;
}
button.gray:hover,
.button.gray:hover {
background-color: #4f8098;
}
button.big,
.button.big {
font-size: 125%;
text-transform: uppercase;
@ -169,11 +175,24 @@ header nav .button {
margin-right: 20px;
}
button.disabled,
.button.disabled,
button:disabled,
.button:disabled {
background-color: #aaa !important;
color: white !important;
transform: none !important;
cursor: not-allowed;
}
p button,
p .button {
font-size: 18px;
padding: 12px 30px;
}
article a:hover {
text-decoration: underline;
}

View file

@ -431,6 +431,39 @@ iframe {
margin: 1em 0 2em;
}
.nonstandard-notice {
font-size: 14px;
max-width: 500px;
margin: 25px auto;
border: 1px solid #ecd200;
background: #fffddf;
border-radius: 5px;
padding: 10px;
color: #886c00;
line-height: 1.4em;
display: none;
}
.nonstandard {
color: rgb(214, 145, 16);
}
.nonstandard-flag {
cursor: help;
font-size: 8px;
line-height: 1em;
padding: 4px 8px;
text-transform: uppercase;
font-weight: bold;
background-color: rgb(238, 167, 34);
color: white;
border-radius: 4px;
white-space: nowrap;
}
@ -515,6 +548,10 @@ article .json a {
padding-bottom: 0;
}
#hovercard .nonstandard-flag {
float: right;
}
#hovercard .module-link {
display: block;
text-decoration: none;

View file

@ -0,0 +1,303 @@
body {
background-color: #f0f6f9;
}
.download-bar {
display: flex;
justify-content: space-between;
background: white;
border-radius: 4px;
box-shadow: 0 3px 6px rgba(0, 0, 0, .1);
font-size: 20px;
margin-top: 20px;
position: sticky; /* uwu 💓 */
top: 0;
z-index: 1;
}
.download-bar > * {
padding: 15px;
display: flex;
align-items: center;
}
#platform {
padding: 5px 15px;
font-size: 16px;
}
#download {
margin: 0;
font-size: 16px;
font-weight: bold;
}
.packages-explanation {
margin: 20px auto;
}
.warning {
margin-left: 1em;
font-size: 12px;
font-weight: bold;
padding: 2px 15px;
border-radius: 1em;
border: 2px solid rgb(255, 201, 0);
color: rgb(206, 151, 0);
}
input:disabled,
select:disabled,
#optional-packages.disabled .optpkg label {
cursor: not-allowed !important;
}
.loader {
display: inline-block;
font-size: 10px;
text-indent: -9999em;
width: 20px;
height: 20px;
border-radius: 50%;
background: #aaa;
background: -moz-linear-gradient(left, #aaa 10%, rgba(255, 255, 255, 0) 42%);
background: -webkit-linear-gradient(left, #aaa 10%, rgba(255, 255, 255, 0) 42%);
background: -o-linear-gradient(left, #aaa 10%, rgba(255, 255, 255, 0) 42%);
background: -ms-linear-gradient(left, #aaa 10%, rgba(255, 255, 255, 0) 42%);
background: linear-gradient(to right, #aaa 10%, rgba(255, 255, 255, 0) 42%);
animation: load3 1.4s infinite linear;
transform: translateZ(0);
vertical-align: middle;
margin-right: .5em;
margin-top: -2px;
}
#signature .loader {
width: 12px;
height: 12px;
}
.loader:before {
width: 50%;
height: 50%;
background: #fff;
border-radius: 100% 0 0 0;
position: absolute;
top: 0;
left: 0;
content: '';
}
.loader:after {
background: #aaa;
width: 75%;
height: 75%;
border-radius: 50%;
content: '';
margin: auto;
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
}
@-webkit-keyframes load3 {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg);
}
}
@keyframes load3 {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg);
}
}
.table-container {
overflow-x: auto;
box-shadow: 0 2px 4px rgba(0, 0, 0, .1);
border-top-left-radius: 8px;
border-top-right-radius: 8px;
}
#optional-packages {
width: 100%;
border-spacing: 0;
border-collapse: collapse;
}
/* #optional-packages tr {
height: 1px;
} */
#optional-packages th,
#optional-packages td {
border-bottom: 1px solid #dfeaf0;
}
#optional-packages th:first-child { border-top-left-radius: 8px; }
#optional-packages th:last-child { border-top-right-radius: 8px; }
#optional-packages th {
background: #dfe8ec;
text-align: left;
text-transform: uppercase;
letter-spacing: 2px;
color: #54676f;
font-weight: bold;
font-size: 12px;
margin-bottom: 1em;
border-color: #90a2ac;
}
#optional-packages th:first-child {
padding-left: 4.25em;
}
#optional-packages td {
background: #fff;
height: 1px; /* TODO: works on Chrome, but not Firefox */
/* height: 100%; TODO: works on Firefox, but not Chrome */
/* TODO:
see https://stackoverflow.com/a/34781198/1048862
(could also do tr with height: 1px which gets ignored,
then td with height: inherit; but this effectively the
same as just doing a td with height: 1px.)
I don't like how either Firefox or Chrome handle this
styling (setting the height of the parent shouldn't be
required at all, the browser is rendering a height
regardless!) but I think I lean toward Firefox's as
being more correct; the hack in Firefox is setting a
flexible 100% height on the parent, rather than the hack
in Chrome which is setting a height that is too small
and stretched or ignored anyway.
*/
}
#optional-packages th,
#optional-packages .optpkg td:first-child label,
#optional-packages td:not(:first-child) {
padding: 15px;
}
#optional-packages .optpkg-name {
font-weight: bold;
}
#optional-packages .optpkg input[type=checkbox] {
transform: scale(1.5);
cursor: pointer;
margin-right: 2em;
}
#optional-packages .optpkg label {
display: flex;
align-items: center;
height: 100%;
line-height: 1em;
cursor: pointer;
}
#optional-packages:not(.disabled) .optpkg label:hover {
background: linear-gradient(90deg, rgba(242,248,253,1) 75%, rgba(242,248,253,0) 100%);
}
#optional-packages .optpkg.selected td {
background-color: #f2f8fd;
}
#optional-packages .optpkg input[type=text] {
font-size: 12px;
padding: 6px;
outline: none;
text-align: center;
border: 1px solid #ccc;
border-radius: 4px;
}
#optional-packages .optpkg input[type=text]::placeholder {
font-style: italic;
}
#optional-packages .optpkg-no-modules {
font-size: 12px;
font-style: italic;
color: #555;
}
#optional-packages .optpkg-module {
margin-top: .5em;
margin-bottom: .5em;
}
#optional-packages .optpkg-module .module-name {
font-weight: bold;
font-family: 'PT Mono', monospace;
}
#optional-packages .optpkg-module .module-description {
color: #444;
margin-left: 1em;
font-size: 14px;
}
.swal-custom-content {
text-align: left;
}
.swal-custom-content ol {
margin: 1em 0 1em 2em;
}
.swal-custom-content li {
margin-bottom: 10px;
}
@media (max-width: 860px) {
.download-bar {
flex-direction: column;
align-items: center;
}
}
@media (max-width: 600px) {
.download-bar {
font-size: inherit;
}
.download-bar > * {
padding: 5px;
}
}