lint
This commit is contained in:
parent
d1eaa9b774
commit
427c1b3650
5 changed files with 155 additions and 28 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -9,3 +9,5 @@ vendor/
|
||||||
go.work
|
go.work
|
||||||
go.work.sum
|
go.work.sum
|
||||||
.env
|
.env
|
||||||
|
|
||||||
|
node_modules/
|
||||||
|
|
|
||||||
1
.stylelintrc.json
Normal file
1
.stylelintrc.json
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
{ "extends": ["stylelint-config-standard"] }
|
||||||
7
package.json
Normal file
7
package.json
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"name": "axiom",
|
||||||
|
"devDependencies": {
|
||||||
|
"stylelint": "^16.23.0",
|
||||||
|
"stylelint-config-standard": "^39.0.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
1
res/css/axiom-min.css
vendored
1
res/css/axiom-min.css
vendored
|
|
@ -1 +0,0 @@
|
||||||
dialog[open],nav ul{display:flex;padding:0}:root{--axiom-color-background:#fff;--axiom-color-background-secondary:#e2e2e2;--axiom-font-family-sans:sans;--axiom-font-family-serif:serif;--axiom-color:#373c44;--axiom-color-title:#2d3138;--axiom-color-muted:#646b79;--axiom-color-link-fg:#0172ad;--axiom-color-link-bg:#fff;--axiom-color-selection:#029ae840;--axiom-body-margin:5vw;--axiom-color-border:#cfd5e2;--axiom-border:1px solid var(--axiom-color-border);--axiom-padding:1rem;--axiom-border-radius:0.4rem;--axiom-icon-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 145, 164)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--axiom-icon-close:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 145, 164)' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E")}body{--axiom-body-font-family:var(--axiom-font-family-sans);--axiom-body-color:var(--axiom-color);--axiom-body-text-align:left;--axiom-body-max-width:40rem;--axiom-body-line-height:1.5rem;font-family:var(--axiom-body-font-family);color:var(--axiom-body-color);text-align:var(--axiom-body-text-align);line-height:var(--axiom-body-line-height);height:100vh;width:56rem;max-width:90vw;margin:0 var(--axiom-body-margin)}footer,header,main{padding:var(--axiom-padding) 0}::selection{background-color:var(--axiom-color-selection)}h1,h2,h3,h4,h5,h6{--axiom-title-font-family:var(--axiom-font-family-sans);--axiom-title-text-align:left;--axiom-title-color:var(--axiom-color-title);font-family:var(--axiom-title-font-family);color:var(--axiom-title-color);text-align:var(--axiom-title-text-align)}a,button.outline{color:var(--axiom-color-link-fg)}a{text-decoration:none}form div,nav{display:flex;justify-content:space-between;align-items:center}nav ul{justify-content:space-between;list-style:none}nav ul li{padding-right:var(--axiom-padding)}.overflow-auto{overflow:auto}.body-width{width:calc(100vw - (var(--axiom-body-margin) * 2));overflow-x:auto}form{display:flex;flex-direction:column}button,input,select{font-size:1.1rem;margin:calc(var(--axiom-padding) * .5) 0;padding:var(--axiom-padding);border:var(--axiom-border);border-radius:var(--axiom-border-radius);background-color:#00000002}[type=checkbox][role=switch]:checked,button{background-color:var(--axiom-color-link-fg)}button{color:var(--axiom-color-link-bg);cursor:pointer}button.outline{background-color:#0000}[type=checkbox][role=switch]{font-size:inherit;appearance:none;margin:.2em 0;padding:1em;cursor:pointer;position:relative;width:3.8em;height:100%;border:var(--axiom-border);border-radius:2em;outline:0;background-color:#ccc;transition:background .2s}[type=checkbox][role=switch]::after{content:'';position:absolute;top:.97em;left:28%;transform:translate(-50%,-50%);border-radius:50%;height:1.55em;width:1.55em;background-color:#fff;transition:left .2s}[type=checkbox][role=switch]:checked{border-color:var(--axiom-color-link-fg)}[type=checkbox][role=switch]:checked::after{left:72%}details,dialog>article>header{padding:calc(var(--axiom-padding) * .5) 0}details summary{font-size:1.1rem;list-style-type:none;cursor:pointer}details summary::after{width:1rem;height:1rem;float:right;transform:rotate(-90deg);background-image:var(--axiom-icon-chevron);background-size:1rem auto;background-repeat:no-repeat;content:""}details[open] summary::after{transform:rotate(0)}table{width:100%;margin:var(--axiom-padding) 0;border-collapse:collapse;table-layout:auto}tbody tr:nth-child(odd){background:#00000002}td,th{font-size:.8rem;padding:.1rem .4rem;white-space:nowrap;border-bottom:var(--axiom-border)}td>input,th>input{all:unset;font-weight:400}dialog[open]{z-index:999;position:fixed;inset:0;align-items:center;justify-content:center;width:inherit;min-width:100%;height:inherit;min-height:100%;border:0;backdrop-filter:blur(0.375rem);background-color:#00000008}dialog>article{padding:var(--axiom-padding);width:85%;height:80vh;max-width:40rem;overflow-y:auto;border:var(--axiom-border);border-radius:var(--axiom-border-radius);background-color:var(--axiom-color-background)}dialog>article>header :is(a,button)[rel=prev]{display:block;float:right;width:2.5rem;height:2.5rem;border:var(--axiom-border);border-radius:var(--axiom-border-radius);background-image:var(--axiom-icon-close);background-position:center;background-size:auto 1rem;background-repeat:no-repeat;background-color:transparent}
|
|
||||||
|
|
@ -4,15 +4,14 @@
|
||||||
--axiom-color-background-secondary: #e2e2e2;
|
--axiom-color-background-secondary: #e2e2e2;
|
||||||
|
|
||||||
/* text */
|
/* text */
|
||||||
--axiom-font-family-sans: sans;
|
--axiom-font-family-sans: "Inter", "Arial", sans;
|
||||||
--axiom-font-family-serif: serif;
|
--axiom-font-family-serif: serif;
|
||||||
|
|
||||||
/* color */
|
/* color */
|
||||||
--axiom-color: #373c44;
|
--axiom-color: #373c44;
|
||||||
--axiom-color-title: #2d3138;
|
--axiom-color-title: #2d3138;
|
||||||
--axiom-color-muted: #646b79;
|
--axiom-color-muted: #646b79;
|
||||||
--axiom-color-link-fg: #0172ad;
|
--axiom-color-link: #0172ad;
|
||||||
--axiom-color-link-bg: #fff;
|
|
||||||
--axiom-color-selection: #029ae840;
|
--axiom-color-selection: #029ae840;
|
||||||
|
|
||||||
/* elements */
|
/* elements */
|
||||||
|
|
@ -22,28 +21,46 @@
|
||||||
--axiom-padding: 1rem;
|
--axiom-padding: 1rem;
|
||||||
--axiom-border-radius: 0.4rem;
|
--axiom-border-radius: 0.4rem;
|
||||||
|
|
||||||
|
/* buttons */
|
||||||
|
--axiom-color-button: #0172ad;
|
||||||
|
--axiom-color-button-fg: #fff;
|
||||||
|
|
||||||
/* icons */
|
/* icons */
|
||||||
--axiom-icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 145, 164)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
|
--axiom-icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 145, 164)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
|
||||||
--axiom-icon-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 145, 164)' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E");
|
--axiom-icon-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 145, 164)' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E");
|
||||||
|
--axiom-icon-loading: url("data:image/svg+xml,%3Csvg fill='none' height='24' width='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E g %7B animation: rotate 2s linear infinite; transform-origin: center center; %7D circle %7B stroke-dasharray: 75,100; stroke-dashoffset: -5; animation: dash 1.5s ease-in-out infinite; stroke-linecap: round; %7D @keyframes rotate %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D @keyframes dash %7B 0%25 %7B stroke-dasharray: 1,100; stroke-dashoffset: 0; %7D 50%25 %7B stroke-dasharray: 44.5,100; stroke-dashoffset: -17.5; %7D 100%25 %7B stroke-dasharray: 44.5,100; stroke-dashoffset: -62; %7D %7D %3C/style%3E%3Cg%3E%3Ccircle cx='12' cy='12' r='10' fill='none' stroke='rgb(136, 145, 164)' stroke-width='4' /%3E%3C/g%3E%3C/svg%3E");
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (prefers-color-scheme: dark) {
|
@media (prefers-color-scheme: dark) {
|
||||||
:root {
|
:root {
|
||||||
/* Dark colors */
|
/* background */
|
||||||
|
--axiom-color-background: #13171F;
|
||||||
|
--axiom-color-background-secondary: #2a3140;
|
||||||
|
|
||||||
|
/* color */
|
||||||
|
--axiom-color: #c2c7d0;
|
||||||
|
--axiom-color-title: #e0e3e7;
|
||||||
|
--axiom-color-muted: #7b8495;
|
||||||
|
--axiom-color-link: #01aaff;
|
||||||
|
--axiom-color-selection: #01aaff30;
|
||||||
|
|
||||||
|
/* elements */
|
||||||
|
--axiom-color-border: #2a3140;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (width <= 768px) {
|
||||||
|
button:not([rel="prev"]) {
|
||||||
|
width: 100% !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
--axiom-body-font-family: var(--axiom-font-family-sans);
|
background-color: var(--axiom-color-background);
|
||||||
--axiom-body-color: var(--axiom-color);
|
color: var(--axiom-color);
|
||||||
--axiom-body-text-align: left;
|
font-family: var(--axiom-font-family-sans);
|
||||||
--axiom-body-max-width: 40rem;
|
text-align: left;
|
||||||
--axiom-body-line-height: 1.5rem;
|
line-height: 1.5rem;
|
||||||
|
|
||||||
font-family: var(--axiom-body-font-family);
|
|
||||||
color: var(--axiom-body-color);
|
|
||||||
text-align: var(--axiom-body-text-align);
|
|
||||||
line-height: var(--axiom-body-line-height);
|
|
||||||
height: 100vh;
|
height: 100vh;
|
||||||
width: 56rem;
|
width: 56rem;
|
||||||
max-width: 90vw;
|
max-width: 90vw;
|
||||||
|
|
@ -68,21 +85,54 @@ h1, h2, h3, h4, h5, h6 {
|
||||||
text-align: var(--axiom-title-text-align);
|
text-align: var(--axiom-title-text-align);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
line-height: 2.4rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
line-height: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
line-height: 1.6rem;
|
||||||
|
}
|
||||||
|
|
||||||
a {
|
a {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
color: var(--axiom-color-link-fg);
|
color: var(--axiom-color-link);
|
||||||
|
}
|
||||||
|
|
||||||
|
strong, em,
|
||||||
|
sub, sup {
|
||||||
|
color: var(--axiom-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
header {
|
header {
|
||||||
padding: var(--axiom-padding) 0;
|
padding: var(--axiom-padding) 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.carousel {
|
||||||
|
display: flex;
|
||||||
|
gap: var(--axiom-padding);
|
||||||
|
overflow-x: auto;
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.carousel > * {
|
||||||
|
flex: 1 1 0;
|
||||||
|
min-width: min-content;
|
||||||
|
}
|
||||||
|
|
||||||
nav {
|
nav {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
nav > *:not(:last-child) {
|
||||||
|
padding-right: var(--axiom-padding);
|
||||||
|
}
|
||||||
|
|
||||||
nav ul {
|
nav ul {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
@ -90,7 +140,7 @@ nav ul {
|
||||||
list-style: none;
|
list-style: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
nav ul li {
|
nav ul li:not(:last-child) {
|
||||||
padding-right: var(--axiom-padding);
|
padding-right: var(--axiom-padding);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -103,6 +153,18 @@ nav ul li {
|
||||||
overflow-x: auto;
|
overflow-x: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.muted {
|
||||||
|
color: var(--axiom-color-muted);
|
||||||
|
}
|
||||||
|
|
||||||
|
body img {
|
||||||
|
display: block;
|
||||||
|
width: 100%;
|
||||||
|
max-width: 38rem;
|
||||||
|
margin: 0 auto;
|
||||||
|
padding: 1rem 0;
|
||||||
|
}
|
||||||
|
|
||||||
form {
|
form {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
|
@ -114,26 +176,51 @@ form div {
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
label {
|
||||||
|
color: var(--axiom-color);
|
||||||
|
}
|
||||||
|
|
||||||
input,
|
input,
|
||||||
button,
|
button,
|
||||||
select {
|
select,
|
||||||
|
textarea {
|
||||||
|
font-family: var(--axiom-font-family-sans);
|
||||||
|
box-sizing: border-box;
|
||||||
|
color: var(--axiom-color);
|
||||||
|
white-space: nowrap;
|
||||||
font-size: 1.1rem;
|
font-size: 1.1rem;
|
||||||
|
width: 100%;
|
||||||
margin: calc(var(--axiom-padding) * .5) 0;
|
margin: calc(var(--axiom-padding) * .5) 0;
|
||||||
padding: var(--axiom-padding);
|
padding: calc(var(--axiom-padding) * .5) calc(var(--axiom-padding) * 0.8);
|
||||||
border: var(--axiom-border);
|
border: var(--axiom-border);
|
||||||
border-radius: var(--axiom-border-radius);
|
border-radius: var(--axiom-border-radius);
|
||||||
background-color: #00000002;
|
background-color: #00000002;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
textarea {
|
||||||
|
resize: vertical;
|
||||||
|
white-space: pre-wrap;
|
||||||
|
min-height: 2em;
|
||||||
|
max-height: 65vh;
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
canvas {
|
||||||
|
/* TODO: canvas */
|
||||||
|
}
|
||||||
|
|
||||||
button {
|
button {
|
||||||
background-color: var(--axiom-color-link-fg);
|
width: max-content;
|
||||||
color: var(--axiom-color-link-bg);
|
font-weight: 600;
|
||||||
|
background-color: var(--axiom-color-button);
|
||||||
|
border-color: var(--axiom-color-button);
|
||||||
|
color: var(--axiom-color-button-fg);
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
button.outline {
|
button.outline {
|
||||||
background-color: #0000;
|
background-color: #0000;
|
||||||
color: var(--axiom-color-link-fg);
|
color: var(--axiom-color-button);
|
||||||
}
|
}
|
||||||
|
|
||||||
[type="checkbox"][role="switch"] {
|
[type="checkbox"][role="switch"] {
|
||||||
|
|
@ -167,8 +254,8 @@ button.outline {
|
||||||
|
|
||||||
|
|
||||||
[type="checkbox"][role="switch"]:checked {
|
[type="checkbox"][role="switch"]:checked {
|
||||||
background-color: var(--axiom-color-link-fg);
|
background-color: var(--axiom-color-link);
|
||||||
border-color: var(--axiom-color-link-fg);
|
border-color: var(--axiom-color-link);
|
||||||
}
|
}
|
||||||
|
|
||||||
[type="checkbox"][role="switch"]:checked::after {
|
[type="checkbox"][role="switch"]:checked::after {
|
||||||
|
|
@ -184,7 +271,6 @@ details {
|
||||||
}
|
}
|
||||||
|
|
||||||
details summary {
|
details summary {
|
||||||
font-size: 1.1rem;
|
|
||||||
list-style-type: none;
|
list-style-type: none;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
@ -205,6 +291,7 @@ details[open] summary::after {
|
||||||
}
|
}
|
||||||
|
|
||||||
table {
|
table {
|
||||||
|
color: var(--axiom-color);
|
||||||
width: 100%;
|
width: 100%;
|
||||||
margin: var(--axiom-padding) 0;
|
margin: var(--axiom-padding) 0;
|
||||||
border-collapse: collapse;
|
border-collapse: collapse;
|
||||||
|
|
@ -226,6 +313,7 @@ th > input,
|
||||||
td > input {
|
td > input {
|
||||||
all: unset;
|
all: unset;
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
|
max-width: 10em;
|
||||||
}
|
}
|
||||||
|
|
||||||
dialog[open] {
|
dialog[open] {
|
||||||
|
|
@ -256,12 +344,11 @@ dialog > article {
|
||||||
background-color: var(--axiom-color-background);
|
background-color: var(--axiom-color-background);
|
||||||
}
|
}
|
||||||
|
|
||||||
dialog > article > header {
|
article > header {
|
||||||
padding: calc(var(--axiom-padding) * 0.5) 0;
|
margin-top: calc(var(--axiom-padding) * -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
dialog > article > header :is(a, button)[rel="prev"] {
|
dialog > article > header :is(a, button)[rel="prev"] {
|
||||||
display: block;
|
|
||||||
float: right;
|
float: right;
|
||||||
width: 2.5rem;
|
width: 2.5rem;
|
||||||
height: 2.5rem;
|
height: 2.5rem;
|
||||||
|
|
@ -273,3 +360,34 @@ dialog > article > header :is(a, button)[rel="prev"] {
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.grid {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(auto-fit, minmax(20em, 1fr));
|
||||||
|
gap: var(--axiom-padding);
|
||||||
|
}
|
||||||
|
|
||||||
|
[aria-busy="true"]:not(input, textarea, html, form)::after {
|
||||||
|
margin-right: 0.5em;
|
||||||
|
display: inline-block;
|
||||||
|
width: 1em;
|
||||||
|
height: 1em;
|
||||||
|
background-image: var(--axiom-icon-loading);
|
||||||
|
background-size: 1em auto;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
content: "";
|
||||||
|
vertical-align: -.125em;
|
||||||
|
}
|
||||||
|
|
||||||
|
[aria-busy="true"]:not(input, textarea):is(button, [type="submit"], [type="button"], [type="reset"], [role="button"]):not(.outline)::after {
|
||||||
|
filter: brightness(0) invert(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.clickable {
|
||||||
|
cursor: pointer;
|
||||||
|
transition: all 0.1s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.clickable:hover {
|
||||||
|
background-color: var(--axiom-color-background-secondary);
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue