diff --git a/res/css/axiom-min.css b/res/css/axiom-min.css new file mode 100644 index 0000000..0ba98d6 --- /dev/null +++ b/res/css/axiom-min.css @@ -0,0 +1 @@ +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} diff --git a/res/css/axiom.css b/res/css/axiom.css new file mode 100644 index 0000000..5f7daa6 --- /dev/null +++ b/res/css/axiom.css @@ -0,0 +1,275 @@ +:root { + /* background */ + --axiom-color-background: #fff; + --axiom-color-background-secondary: #e2e2e2; + + /* text */ + --axiom-font-family-sans: sans; + --axiom-font-family-serif: serif; + + /* color */ + --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; + + /* elements */ + --axiom-body-margin: 5vw; + --axiom-color-border: #cfd5e2; + --axiom-border: 1px solid var(--axiom-color-border); + --axiom-padding: 1rem; + --axiom-border-radius: 0.4rem; + + /* 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-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"); +} + +@media (prefers-color-scheme: dark) { + :root { + /* Dark colors */ + } +} + +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); +} + +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 { + text-decoration: none; + color: var(--axiom-color-link-fg); +} + +header { + padding: var(--axiom-padding) 0; +} + +nav { + display: flex; + justify-content: space-between; + align-items: center; +} + +nav ul { + padding: 0; + display: flex; + 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; +} + +form div { + display: flex; + justify-content: space-between; + align-items: center; +} + +input, +button, +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; +} + +button { + background-color: var(--axiom-color-link-fg); + color: var(--axiom-color-link-bg); + cursor: pointer; +} + +button.outline { + background-color: #0000; + color: var(--axiom-color-link-fg); +} + +[type="checkbox"][role="switch"] { + font-size: inherit; + appearance: none; + margin: 0.2em 0; + padding: 1em; + cursor: pointer; + position: relative; + width: 3.8em; + height: 100%; + border: var(--axiom-border); + border-radius: 2em; + outline: none; + background-color: #ccc; + transition: background .2s; +} + +[type="checkbox"][role="switch"]::after { + content: ''; + position: absolute; + top: 0.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 { + background-color: var(--axiom-color-link-fg); + border-color: var(--axiom-color-link-fg); +} + +[type="checkbox"][role="switch"]:checked::after { + left: 72%; +} + +footer { + padding: var(--axiom-padding) 0; +} + +details { + 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(0deg); +} + +table { + width: 100%; + margin: var(--axiom-padding) 0; + border-collapse: collapse; + table-layout: auto; +} + +tbody tr:nth-child(odd) { + background: #00000002; +} + +th, td { + font-size: 0.8rem; + padding: 0.1rem 0.4rem; + white-space: nowrap; + border-bottom: var(--axiom-border); +} + +th > input, +td > input { + all: unset; + font-weight: normal; +} + +dialog[open] { + display: flex; + z-index: 999; + position: fixed; + inset: 0; + align-items: center; + justify-content: center; + width: inherit; + min-width: 100%; + height: inherit; + min-height: 100%; + padding: 0; + 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 { + padding: calc(var(--axiom-padding) * 0.5) 0; +} + +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; +}