add linter

This commit is contained in:
Jonas Duri 2019-02-05 08:16:48 +01:00
parent ed86ed9824
commit 990a488398
4 changed files with 2091 additions and 618 deletions

3
.stylelintrc Normal file
View File

@ -0,0 +1,3 @@
{
"extends": "stylelint-config-standard"
}

View File

@ -2,8 +2,8 @@
--global-font-size: 15px;
--global-line-height: 1.4em;
--global-space: 10px;
--font-stack: Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace,serif;
--mono-font-stack: Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace,serif;
--font-stack: Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif;
--mono-font-stack: Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif;
--background-color: #fff;
--page-width: 60em;
--font-color: #151515;
@ -23,8 +23,15 @@
text-rendering: geometricPrecision;
}
*::-moz-selection { background: var(--primary-color); color: var(--invert-font-color); }
*::selection { background: var(--primary-color); color: var(--invert-font-color); }
*::-moz-selection {
background: var(--primary-color);
color: var(--invert-font-color);
}
*::selection {
background: var(--primary-color);
color: var(--invert-font-color);
}
body {
font-size: var(--global-font-size);
@ -36,40 +43,16 @@ body {
background-color: var(--background-color);
}
h1, h2, h3, h4, h5, h6, .logo {
h1,
h2,
h3,
h4,
h5,
h6,
.logo {
line-height: var(--global-line-height);
}
fieldset {
border: none;
padding: 0;
margin: 0;
}
pre {
display: block;
word-break: break-all;
word-wrap: break-word;
color: var(--secondary-color);
background-color: var(--background-color);
border: 1px solid var(--secondary-color);
padding: var(--global-space);
white-space: pre-wrap; /* css-3 */
white-space: -moz-pre-wrap; /* Mozilla, since 1999 */
white-space: -pre-wrap; /* Opera 4-6 */
white-space: -o-pre-wrap; /* Opera 7 */
word-wrap: break-word; /* Internet Explorer 5.5+ */
}
pre code {
overflow-x: scroll;
padding: 0;
margin: 0;
display: inline-block;
min-width: 100%;
font-family: var(--mono-font-stack);
}
a {
cursor: pointer;
color: var(--primary-color);
@ -88,39 +71,46 @@ em {
color: var(--font-color);
}
.terminal blockquote, .terminal code, .terminal h1, .terminal h2, .terminal h3, .terminal h4, .terminal h5, .terminal h6, .terminal strong, .terminal .logo {
font-size: var(--global-font-size);
font-style: normal;
font-family: var(--font-stack);
color: var(--font-color);
}
blockquote, code, em, strong {
blockquote,
code,
em,
strong {
line-height: var(--global-line-height);
}
blockquote, code, footer, h1, h2, h3, h4, h5, h6, header, li, ol, p, section, ul, .logo {
blockquote,
code,
footer,
h1,
h2,
h3,
h4,
h5,
h6,
header,
li,
ol,
p,
section,
ul,
.logo {
float: none;
margin: 0;
padding: 0;
}
blockquote, h1, ol, p, ul, .logo {
blockquote,
h1,
ol,
p,
ul,
.logo {
margin-top: calc(var(--global-space) * 2);
margin-bottom: calc(var(--global-space) * 2);
}
ul ul {
margin-top: 0;
margin-bottom: 0;
}
ol ol {
margin-top: 0;
margin-bottom: 0;
}
h1, .logo {
h1,
.logo {
position: relative;
display: inline-block;
display: table-cell;
@ -130,7 +120,7 @@ h1, .logo {
font-weight: 600;
}
h1:after {
h1::after {
content: "====================================================================================================";
position: absolute;
bottom: 5px;
@ -138,119 +128,236 @@ h1:after {
display: var(--display-h1-decoration);
}
h1 + *, .logo + * {
h1 + *,
.logo + * {
margin-top: 0;
}
h2,
h3,
h4,
h5,
h6 {
position: relative;
margin-bottom: var(--global-line-height);
font-weight: 600;
}
blockquote {
position: relative;
padding-left: calc(var(--global-space) * 2);
padding-left: 2ch;
overflow: hidden;
}
blockquote::after {
content: ">\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>";
white-space: pre;
position: absolute;
top: 0;
left: 0;
line-height: var(--global-line-height);
color: #9ca2ab;
}
code {
font-weight: inherit;
background-color: var(--code-bg-color);
font-family: var(--mono-font-stack);
}
code::after,
code::before {
content: "`";
display: inline;
}
pre code::after,
pre code::before {
content: "";
}
pre {
display: block;
word-break: break-all;
word-wrap: break-word;
color: var(--secondary-color);
background-color: var(--background-color);
border: 1px solid var(--secondary-color);
padding: var(--global-space);
white-space: pre-wrap;
white-space: -moz-pre-wrap;
white-space: -pre-wrap;
white-space: -o-pre-wrap;
}
pre code {
overflow-x: scroll;
padding: 0;
margin: 0;
display: inline-block;
min-width: 100%;
font-family: var(--mono-font-stack);
}
.terminal blockquote,
.terminal code,
.terminal h1,
.terminal h2,
.terminal h3,
.terminal h4,
.terminal h5,
.terminal h6,
.terminal strong,
.terminal .logo {
font-size: var(--global-font-size);
font-style: normal;
font-family: var(--font-stack);
color: var(--font-color);
}
.terminal-prompt {
position: relative;
}
.terminal-prompt::before {
content: "> ";
}
.terminal-prompt::after{
.terminal-prompt::after {
content: "";
animation: cursor 800ms infinite;
background: var(--primary-color);
border-radius: 0px;
border-radius: 0;
display: inline-block;
height: 1em;
margin-left: .2em;
margin-left: 0.2em;
width: 3px;
bottom: -2px;
position: relative;
}
@-webkit-keyframes cursor {
0% { opacity: 0 }
0% {
opacity: 0;
}
50% {
opacity: 1
opacity: 1;
}
to {
opacity: 0
opacity: 0;
}
}
@keyframes cursor {
0% {
opacity: 0
opacity: 0;
}
50% {
opacity: 1
opacity: 1;
}
to {
opacity: 0
opacity: 0;
}
}
h2, h3, h4, h5, h6 {
position: relative;
margin-bottom: var(--global-line-height);
font-weight: 600;
}
li, li>ul>li {
li,
li > ul > li {
position: relative;
display: block;
padding-left: calc(var(--global-space) * 2);
}
nav>ul>li {
nav > ul > li {
padding-left: 0;
}
li:after {
li::after {
position: absolute;
top: 0;
left: 0;
}
ul > li:after {
ul > li::after {
content: "-";
}
nav ul > li:after {
nav ul > li::after {
content: "";
}
ol li::before {
content: counters(item, ".") ". ";
counter-increment: item;
}
ol ol li::before {
content: counters(item, ".") " ";
counter-increment: item;
}
.terminal-menu li::after,
.terminal-menu li::before {
display: none;
}
ol {
counter-reset: item;
}
ol li:before {
content: counters(item, ".") ". ";
counter-increment: item
}
ol ol li:before {
content: counters(item, ".") " ";
counter-increment: item
}
ol li:nth-child(n+10):after {
ol li:nth-child(n+10)::after {
left: -7px;
}
ol ol {
margin-top: 0;
margin-bottom: 0;
}
.terminal-menu {
width: 100%;
}
.terminal-nav {
display: flex;
flex-direction: column;
align-items: flex-start;
}
ul ul {
margin-top: 0;
margin-bottom: 0;
}
.terminal-menu ul {
list-style-type: none;
padding: 0 !important;
display: flex;
flex-direction: column;
width: 100%;
flex-grow: 1;
font-size: var(--global-font-size);
margin-top: 0;
}
.terminal-menu li {
display: flex;
margin: 0 0 0.5em 0;
padding: 0;
}
ol.terminal-toc li {
border-bottom: 1px dotted var(--secondary-color);
padding: 0;
margin-bottom: 15px
margin-bottom: 15px;
}
ol.terminal-toc li::before {
content: counters(item, ".") ". ";
counter-increment: item;
position: absolute;
right: 0;
background: var(--background-color);
padding: 4px 0 4px 4px;
bottom: -8px
.terminal-menu li:last-child {
margin-bottom: 0;
}
ol.terminal-toc li a {
@ -262,43 +369,38 @@ ol.terminal-toc li a {
padding-right: 4px;
}
.terminal-menu li a:not(.btn) {
text-decoration: none;
display: block;
width: 100%;
border: none;
color: var(--secondary-color);
}
.terminal-menu li a.active {
color: var(--font-color);
}
.terminal-menu li a:hover {
background: none;
color: inherit;
}
ol.terminal-toc li::before {
content: counters(item, ".") ". ";
counter-increment: item;
position: absolute;
right: 0;
background: var(--background-color);
padding: 4px 0 4px 4px;
bottom: -8px;
}
ol.terminal-toc li a:hover {
background: var(--primary-color);
color: var(--invert-font-color);
}
blockquote {
position: relative;
padding-left: calc(var(--global-space) * 2);
padding-left: 2ch;
overflow: hidden;
}
blockquote:after {
content: ">\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>";
white-space: pre;
position: absolute;
top: 0;
left: 0;
line-height: var(--global-line-height);
color: #9ca2ab;
}
pre code:after, pre code:before {
content: "";
}
code {
font-weight: inherit;
background-color: var(--code-bg-color);
font-family: var(--mono-font-stack);
}
code:after, code:before {
content: "`";
display: inline;
}
hr {
position: relative;
height: calc(var(--global-space) * 2);
@ -307,7 +409,7 @@ hr {
margin: calc(var(--global-space) * 2) 0;
}
hr:after {
hr::after {
content: "--------------------------------------------------------------------------------------------------------------------";
position: absolute;
top: 0;
@ -317,10 +419,6 @@ hr:after {
word-wrap: break-word;
}
-ones ol > li:after {
content: "1.";
}
p {
margin: 0 0 var(--global-line-height);
color: var(--global-font-color);
@ -330,7 +428,8 @@ p {
max-width: var(--page-width);
}
.container, .container-fluid {
.container,
.container-fluid {
margin: 0 auto;
padding: 0 calc(var(--global-space) * 2);
}
@ -352,12 +451,12 @@ img {
.progress-bar-filled {
background-color: var(--progress-bar-fill);
height: 100%;
transition: width .3s ease;
transition: width 0.3s ease;
position: relative;
width: 0;
}
.progress-bar-filled:before {
.progress-bar-filled::before {
content: "";
border: 6px solid transparent;
border-top-color: var(--progress-bar-fill);
@ -366,7 +465,7 @@ img {
right: -6px;
}
.progress-bar-filled:after {
.progress-bar-filled::after {
color: var(--progress-bar-fill);
content: attr(data-filled);
display: block;
@ -380,7 +479,8 @@ img {
transform: translateX(50%);
}
.progress-bar-no-arrow > .progress-bar-filled:before, .progress-bar-no-arrow > .progress-bar-filled:after {
.progress-bar-no-arrow > .progress-bar-filled::before,
.progress-bar-no-arrow > .progress-bar-filled::after {
content: "";
display: none;
visibility: hidden;
@ -395,16 +495,8 @@ table {
font-size: var(--global-font-size);
}
table tfoot tr th {
font-weight: 500;
}
table caption {
font-size: 1em;
margin: 0 0 1em 0;
}
table td, table th {
table td,
table th {
vertical-align: top;
border: 1px solid var(--font-color);
line-height: var(--global-line-height);
@ -416,6 +508,15 @@ table thead th {
font-size: 1em;
}
table tfoot tr th {
font-weight: 500;
}
table caption {
font-size: 1em;
margin: 0 0 1em 0;
}
table tbody td:first-child {
font-weight: 700;
color: var(var(--secondary-color));
@ -435,18 +536,30 @@ label {
color: var(--font-color);
}
input[type="email"], input[type="text"], input[type="number"], input[type="password"], input[type="search"] {
input[type="email"],
input[type="text"],
input[type="number"],
input[type="password"],
input[type="search"] {
border: 1px var(--input-style) var(--font-color);
width: 100%;
padding: .7em .5em;
padding: 0.7em 0.5em;
font-size: 1em;
font-family: var(--font-stack);
-webkit-appearance: none;
border-radius: 0;
}
input[type="email"]:active, input[type="text"]:active, input[type="number"]:active, input[type="password"]:active, input[type="search"]:active
input[type="email"]:focus, input[type="text"]:focus, input[type="number"]:focus, input[type="password"]:focus, input[type="search"]:focus {
input[type="email"]:active,
input[type="text"]:active,
input[type="number"]:active,
input[type="password"]:active,
input[type="search"]:active,
input[type="email"]:focus,
input[type="text"]:focus,
input[type="number"]:focus,
input[type="password"]:focus,
input[type="search"]:focus {
outline: none;
-webkit-appearance: none;
border: 1px solid var(--font-color);
@ -460,9 +573,16 @@ input[type="number"]:not(:placeholder-shown):invalid {
border-color: var(--error-color);
}
.form-group {
margin-bottom: var(--global-line-height);
overflow: auto;
input,
textarea {
color: var(--font-color);
background-color: var(--background-color);
}
input::placeholder,
textarea::placeholder {
color: var(--secondary-color) !important;
opacity: 1;
}
textarea {
@ -470,8 +590,7 @@ textarea {
width: 100%;
resize: none;
border: 1px var(--input-style) var(--font-color);
width: 100%;
padding: .5em;
padding: 0.5em;
font-size: 1em;
font-family: var(--font-stack);
-webkit-appearance: none;
@ -488,31 +607,24 @@ textarea:not(:placeholder-shown):invalid {
border-color: var(--error-color);
}
input, textarea {
color: var(--font-color);
background-color: var(--background-color);
}
input::placeholder, textarea::placeholder {
color: var(--secondary-color)!important;
opacity: 1;
}
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus
textarea:-webkit-autofill,
textarea:-webkit-autofill:hover
textarea:-webkit-autofill:focus,
input:-webkit-autofill:focus textarea:-webkit-autofill,
textarea:-webkit-autofill:hover textarea:-webkit-autofill:focus,
select:-webkit-autofill,
select:-webkit-autofill:hover,
select:-webkit-autofill:focus {
border: 1px solid var(--font-color);
-webkit-text-fill-color: var(--font-color);
-webkit-box-shadow: 0 0 0px 1000px var(--invert-font-color) inset;
-webkit-box-shadow: 0 0 0 1000px var(--invert-font-color) inset;
transition: background-color 5000s ease-in-out 0s;
}
.form-group {
margin-bottom: var(--global-line-height);
overflow: auto;
}
.btn {
display: -ms-inline-flexbox;
display: inline-flex;
@ -522,7 +634,7 @@ select:-webkit-autofill:focus {
justify-content: center;
cursor: pointer;
outline: none;
padding: .65em 2em;
padding: 0.65em 2em;
font-size: 1em;
font-family: inherit;
-webkit-user-select: none;
@ -543,7 +655,8 @@ select:-webkit-autofill:focus {
background-color: transparent;
}
.btn.btn-ghost:focus, .btn.btn-ghost:hover {
.btn.btn-ghost:focus,
.btn.btn-ghost:hover {
border-color: var(--tertiary-color);
color: var(--tertiary-color);
z-index: 2;
@ -565,12 +678,14 @@ select:-webkit-autofill:focus {
color: var(--invert-font-color);
}
.btn-default:focus:not(.btn-ghost), .btn-default:hover {
.btn-default:hover,
.btn-default:focus:not(.btn-ghost) {
background-color: var(--secondary-color);
color: var(--invert-font-color);
}
.btn-default.btn-ghost:focus, .btn-default.btn-ghost:hover {
.btn-default.btn-ghost:focus,
.btn-default.btn-ghost:hover {
border-color: var(--secondary-color);
color: var(--secondary-color);
z-index: 2;
@ -582,7 +697,8 @@ select:-webkit-autofill:focus {
border: 1px solid var(--error-color);
}
.btn-error:focus:not(.btn-ghost), .btn-error:hover {
.btn-error:hover,
.btn-error:focus:not(.btn-ghost) {
background-color: var(--error-color);
border-color: var(--error-color);
}
@ -592,7 +708,8 @@ select:-webkit-autofill:focus {
color: var(--error-color);
}
.btn-error.btn-ghost:focus, .btn-error.btn-ghost:hover {
.btn-error.btn-ghost:focus,
.btn-error.btn-ghost:hover {
border-color: var(--error-color);
color: var(--error-color);
z-index: 2;
@ -604,7 +721,8 @@ select:-webkit-autofill:focus {
border: 1px solid var(--primary-color);
}
.btn-primary:focus:not(.btn-ghost), .btn-primary:hover {
.btn-primary:hover,
.btn-primary:focus:not(.btn-ghost) {
background-color: var(--primary-color);
border-color: var(--primary-color);
}
@ -614,15 +732,16 @@ select:-webkit-autofill:focus {
color: var(--primary-color);
}
.btn-primary.btn-ghost:focus, .btn-primary.btn-ghost:hover {
.btn-primary.btn-ghost:focus,
.btn-primary.btn-ghost:hover {
border-color: var(--primary-color);
color: var(--primary-color);
z-index: 2;
}
.btn-small {
padding: .5em 1.3em!important;
font-size: .9em!important;
padding: 0.5em 1.3em !important;
font-size: 0.9em !important;
}
.btn-group {
@ -645,7 +764,7 @@ select:-webkit-autofill:focus {
color: var(--invert-font-color);
text-align: center;
background-color: var(--secondary-color);
padding: .5em 0;
padding: 0.5em 0;
}
.terminal-card > div:first-of-type {
@ -669,77 +788,6 @@ select:-webkit-autofill:focus {
border-color: var(--primary-color);
}
.terminal-menu {
width: 100%;
}
.terminal-nav {
display: flex;
flex-direction: column;
align-items: flex-start;
}
.terminal-logo {
flex-shrink: 1;
margin-right: 20px;
white-space: nowrap;
}
.terminal-logo a {
color: var(--font-color);
text-decoration: none;
font-weight: 600;
border: none;
}
.terminal-logo a:hover, .terminal-logo a:active, .terminal-logo a:visited {
background: none;
border: none;
color: var(--font-color);
}
.terminal-menu ul {
list-style-type: none;
padding: 0!important;
display: flex;
flex-direction: column;
width: 100%;
flex-grow: 1;
font-size: var(--global-font-size);
margin-top: 0;
}
.terminal-menu li {
display: flex;
margin: 0 0 .5em 0;
padding: 0;
}
.terminal-menu li:last-child {
margin-bottom: 0;
}
.terminal-menu li::after, .terminal-menu li::before {
display: none;
}
.terminal-menu li a:not(.btn) {
text-decoration: none;
display: block;
width: 100%;
border: none;
color: var(--secondary-color);
}
.terminal-menu li a.active {
color: var(--font-color);
}
.terminal-menu li a:hover {
background: none;
color: inherit;
}
@media screen and (max-width: 960px) {
label {
display: block;
@ -762,6 +810,7 @@ select:-webkit-autofill:focus {
flex-direction: row;
align-items: center;
}
.terminal-menu ul {
flex-direction: row;
justify-items: flex-end;
@ -774,12 +823,12 @@ select:-webkit-autofill:focus {
margin: 0;
margin-right: 2em;
}
.terminal-menu li:last-child {
margin-right: 0;
}
}
.terminal-media:not(:last-child) {
margin-bottom: 1.25rem;
}
@ -788,7 +837,8 @@ select:-webkit-autofill:focus {
padding-right: var(--global-space);
}
.terminal-media-left, .terminal-media-right {
.terminal-media-left,
.terminal-media-right {
display: table-cell;
vertical-align: top;
}
@ -808,7 +858,7 @@ select:-webkit-autofill:focus {
}
.terminal-media-content {
margin-top: .3rem;
margin-top: 0.3rem;
}
.terminal-placeholder {
@ -819,6 +869,10 @@ select:-webkit-autofill:focus {
border: 1px solid var(--secondary-color);
}
figure > img {
padding: 0;
}
.terminal-avatarholder {
width: calc(var(--global-space) * 5);
height: calc(var(--global-space) * 5);
@ -832,10 +886,6 @@ figure {
margin: 0;
}
figure > img {
padding: 0;
}
figure > figcaption {
color: var(--secondary-color);
text-align: center;
@ -903,7 +953,6 @@ figure > figcaption {
color: var(--primary-color);
}
.hljs-emphasis {
font-style: italic;
}

1442
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -10,6 +10,7 @@
"start": "node ./scripts/start.js",
"build": "node ./scripts/build.js && node ./scripts/copyFiles.js",
"test": "echo \"Error: no test specified\" && exit 1",
"lint": "stylelint lib/terminal.css",
"prepublish": "npm run build"
},
"repository": {
@ -37,7 +38,9 @@
"mkdirp": "^0.5.1",
"nanogen": "^0.4.2",
"postcss": "^7.0.14",
"serve": "^10.1.1"
"serve": "^10.1.1",
"stylelint": "^9.10.1",
"stylelint-config-standard": "^18.2.0"
},
"dependencies": {
"cp-file": "^6.0.0"