ada-ui 3.0.2 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/css/ada.blue.css CHANGED
@@ -1 +1 @@
1
- .warn,.accent,:root{--l-dark: calc(var(--l) - 16%);--l-light: calc(var(--l) + 38%);--bg: hsl(var(--h), var(--s), var(--l-dark));--fg: hsl(var(--h-fg), var(--s-fg), var(--l-fg));--fg-alpha60: hsla(var(--h-fg), var(--s-fg), var(--l-fg), 0.6);--fg-alpha80: hsla(var(--h-fg), var(--s-fg), var(--l-fg), 0.8);--default: hsl(var(--h), var(--s), var(--l));--default-alpha10: hsla(var(--h), var(--s), var(--l), 0.1);--default-alpha40: hsla(var(--h), var(--s), var(--l), 0.4);--light: hsl(var(--h), var(--s), var(--l-light));--light-alpha40: hsla(var(--h), var(--s), var(--l-light), 0.4);--light-alpha70: hsla(var(--h), var(--s), var(--l-light), 0.7)}:root{--h: 205;--s: 80%;--l: 23%;--h-fg: var(--h);--s-fg: 100%;--l-fg: 89%}.accent{--h: 146;--s: 58%;--l: 20%;--h-fg: var(--h);--s-fg: 100%;--l-fg: 89%}.warn{--h: 0;--s: 75%;--l: 29%;--h-fg: var(--h);--s-fg: 100%;--l-fg: 89%}
1
+ .warn,.accent,.shade2,.shade1,:root{--fg: hsl(var(--h-fg), var(--s-fg), var(--l-fg));--fg-alpha60: hsla(var(--h-fg), var(--s-fg), var(--l-fg), 0.6);--fg-alpha80: hsla(var(--h-fg), var(--s-fg), var(--l-fg), 0.8);--default: hsl(var(--h), var(--s), var(--l));--default-alpha10: hsla(var(--h), var(--s), var(--l), 0.1);--default-alpha40: hsla(var(--h), var(--s), var(--l), 0.4);--default-alpha60: hsla(var(--h), var(--s), var(--l), 0.6);--light: hsl(var(--h), var(--s), var(--l-light));--light-alpha40: hsla(var(--h), var(--s), var(--l-light), 0.4);--light-alpha70: hsla(var(--h), var(--s), var(--l-light), 0.7)}:root{--h: 197;--s: 100%;--l: 19%;--l-light: 40%;--bg: hsl(var(--h), 80%, 7%);--h-fg: var(--h);--s-fg: 100%;--l-fg: 89%}.shade1{--h: 198;--s: 90%;--l: 30%;--l-light: 58%;--h-fg: var(--h);--s-fg: 100%;--l-fg: 89%}.shade2{--h: 165;--s: 90%;--l: 20%;--l-light: 40%;--h-fg: var(--h);--s-fg: 100%;--l-fg: 89%}.accent{--h: 14;--s: 81%;--l: 38%;--l-light: 60%;--h-fg: var(--h);--s-fg: 100%;--l-fg: 89%}.warn{--h: 0;--s: 75%;--l: 29%;--l-light: 67%;--h-fg: var(--h);--s-fg: 100%;--l-fg: 89%}
package/css/ada.css CHANGED
@@ -1 +1 @@
1
- html{font-size:14px;font-family:"Open Sans",sans-serif;font-weight:400}@media screen and (max-width: 1199px){html{font-size:12px}}html,body{height:100%;min-height:100%;margin:0;padding:0;background:var(--bg);color:var(--fg)}h1{font-size:3rem;margin:1rem 0 2rem 0}h2{font-size:2rem;margin:1rem 0 1.5rem 0}.panel>header,.tile>header,h3{font-size:1.5rem;margin:.5rem 0 1.5rem 0}h4{font-weight:400;font-size:1.2rem;margin:.5rem 0 .5rem 0}h1,h2,.panel>header,.tile>header,h3,h4{font-weight:300;text-shadow:0 0 4px var(--light-alpha40);color:var(--fg)}h1.m-0,h2.m-0,.panel>header,.tile>header,h3.m-0,h4.m-0{margin:0}body{font-size:1rem;-webkit-tap-highlight-color:transparent;box-sizing:border-box;padding:.5rem}.panel>footer:after,.tile>footer:after,.panel>footer:before,.tile>footer:before,.panel>header:after,.tile>header:after,.panel>header:before,.tile>header:before{content:"";border-style:solid;border-color:var(--default);position:absolute;height:1rem;width:1rem;z-index:2}.tile>footer:after,.tile>footer:before,.tile>header:after,.tile>header:before{border-color:var(--light-alpha40);height:.75rem;width:.75rem}.button-group{margin:.8rem}.button,.button.icon{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;border-radius:.3rem;box-shadow:0 0 10px 0px rgba(0,0,0,.4);outline:none;border:1px solid var(--light-alpha40);color:var(--fg);text-shadow:0 0 4px var(--light-alpha40);font-family:inherit;cursor:pointer;user-select:none;background-color:transparent;vertical-align:middle;transition:border-color .15s ease-in-out,background-color .15s ease-in-out;min-height:min-content;min-width:8rem;padding:.8rem 1.6rem;margin:.8rem;font-size:1.1rem}.button.small,.button.icon{display:grid;justify-items:center;align-items:center;min-width:0;padding:.8rem}.button.icon{border:1px solid transparent;box-shadow:none;background:none}.button.icon>i.material-icons{font-size:20px}.button-group>.button.icon{margin:1px}.button.fill{background-color:var(--default)}.button:focus{border:1px solid var(--light-alpha70)}.button:active{background-color:var(--light-alpha70);border:1px solid var(--default-alpha40)}.button:disabled{opacity:.4;filter:saturate(0.6);cursor:default;color:var(--fg-alpha80);pointer-events:none}.input{border-radius:.3rem;box-shadow:0 0 10px 0px rgba(0,0,0,.4);outline:none;border:1px solid var(--light-alpha40);color:var(--fg);text-shadow:0 0 4px var(--light-alpha40);font-family:inherit;background-color:transparent;transition:border-color .15s ease-in-out;padding:.8rem 1.6rem;margin:.8rem;font-size:1.1rem}.input:focus{border:1px solid var(--light-alpha70)}.input:disabled{opacity:.4;filter:saturate(0.6);cursor:default;color:var(--fg-alpha80);pointer-events:none}.panel,.tile{background:var(--default-alpha10);box-shadow:0 0 20px 1px rgba(0,0,0,.4);border-radius:.3rem;display:grid;grid-template-rows:auto 1fr auto;overflow:auto;margin:.5rem}.panel>header,.tile>header{position:relative;text-align:left;padding:.4rem .6rem}.panel>header:before,.tile>header:before{border-width:2px 0 0 2px;border-radius:.3rem 0 0 0;left:0;top:0}.panel>header:after,.tile>header:after{border-width:2px 2px 0 0;border-radius:0 .3rem 0 0;right:0;top:0}.panel>header:empty,.tile>header:empty{padding:.2rem}.panel>article,.tile>article{z-index:1;padding:0 .6rem;overflow:auto}.panel>article::-webkit-scrollbar,.tile>article::-webkit-scrollbar{width:2px;background:transparent}.panel>article::-webkit-scrollbar-thumb,.tile>article::-webkit-scrollbar-thumb{min-width:1rem;border-style:solid;border-color:transparent;border-width:2px 2px 1px 2px;background:var(--default);box-sizing:border-box;background-clip:padding-box}.panel>footer,.tile>footer{position:relative;text-align:right;padding:.4rem .6rem;font-size:.75rem;color:var(--fg-alpha60)}.panel>footer:before,.tile>footer:before{border-width:0 0 2px 2px;border-radius:0 0 0 .3rem;left:0;bottom:0}.panel>footer:after,.tile>footer:after{border-width:0 2px 2px 0;border-radius:0 0 .3rem 0;right:0;bottom:0}.panel>footer:empty,.tile>footer:empty{padding:.2rem}.tile{margin:.8rem}.tile>header:before{border-width:1px 0 0 1px}.tile>header:after{border-width:1px 1px 0 0}.tile>article{color:var(--fg);text-shadow:0 0 4px var(--light-alpha40)}.tile>footer:before{border-width:0 0 1px 1px}.tile>footer:after{border-width:0 1px 1px 0}.tile.inset{box-shadow:inset 0 0 20px 1px rgba(0,0,0,.4)}.tile.inset>header{color:var(--fg-alpha80)}.tile.inset>header:before,.tile.inset>header:after{opacity:.6}.tile.inset>article{color:var(--fg-alpha80)}.tile.inset footer:before,.tile.inset footer:after{opacity:.6}.spinner{width:100%;height:100%;box-sizing:border-box;position:relative;border-style:solid;border-width:.3em;border-radius:50%;border-color:transparent var(--default);animation:4s rotateOuter linear infinite;box-shadow:0 0 10px 0px rgba(0,0,0,.4) inset}.spinner:before{content:"";position:absolute;top:.2em;left:.2em;right:.2em;bottom:.2em;border-style:inherit;border-width:inherit;border-color:transparent var(--light-alpha70);border-radius:inherit;animation:2s rotateInner linear infinite;box-shadow:0 0 10px 0px rgba(0,0,0,.6) inset}.spinner:after{content:"";position:absolute;top:.7em;left:.7em;right:.7em;bottom:.7em;border-style:inherit;border-width:inherit;border-color:transparent var(--light-alpha40);border-radius:inherit;animation:4s rotateCenter linear infinite}@keyframes rotateOuter{0%{transform:rotate(45deg)}100%{transform:rotate(225deg)}}@keyframes rotateInner{0%{transform:rotate(-90deg)}100%{transform:rotate(-270deg)}}@keyframes rotateCenter{0%{transform:rotate(0)}100%{transform:rotate(180deg)}}
1
+ html{font-size:14px;font-family:"Open Sans",sans-serif;font-weight:400}@media screen and (max-width: 1199px){html{font-size:12px}}html,body{height:100%;min-height:100%;margin:0;padding:0;background:var(--bg);color:var(--fg)}body{font-size:1rem;-webkit-tap-highlight-color:transparent;box-sizing:border-box;padding:.5rem}h1{font-size:3rem;margin:1rem 0 2rem 0}.command-bar,h2{font-size:2rem;margin:1rem 0 1.5rem 0}.panel>header:not(.command-bar),.tile>header:not(.command-bar),h3{font-size:1.5rem;margin:.5rem 0 1.5rem 0}.tile>header.command-bar,.panel>footer.command-bar,.tile>footer.command-bar,h4{font-weight:400;font-size:1.2rem;margin:.5rem 0 .5rem 0}h1,.command-bar,h2,.panel>header:not(.command-bar),.tile>header:not(.command-bar),h3,.tile>header.command-bar,.panel>footer.command-bar,.tile>footer.command-bar,h4{font-weight:300;text-shadow:0 0 4px var(--light-alpha40);color:var(--fg)}h1.m-0,.command-bar,.panel>footer.command-bar,.tile>footer.command-bar,.panel>header.command-bar,h2.m-0,.panel>header:not(.command-bar),.tile>header:not(.command-bar),h3.m-0,.tile>header.m-0.command-bar,.tile>header.command-bar,.panel>footer.m-0.command-bar,.panel>footer.command-bar,.tile>footer.m-0.command-bar,.tile>footer.command-bar,h4.m-0{margin:0}.panel>footer:not(.command-bar):after,.tile>footer:not(.command-bar):after,.panel>footer:not(.command-bar):before,.tile>footer:not(.command-bar):before,.panel>header:not(.command-bar):after,.tile>header:not(.command-bar):after,.panel>header:not(.command-bar):before,.tile>header:not(.command-bar):before{content:"";border-style:solid;border-color:var(--default);position:absolute;height:1rem;width:1rem;z-index:2}.tile>footer:not(.command-bar):after,.tile>footer:not(.command-bar):before,.tile>header:not(.command-bar):after,.tile>header:not(.command-bar):before{border-color:var(--light-alpha40);height:.75rem;width:.75rem}.panel,.tile{background:var(--default-alpha10);box-shadow:0 0 10px 0 rgba(0,0,0,.4);border-radius:.3rem;display:grid;grid-template-rows:auto 1fr auto;overflow:auto;margin:.5rem}.panel>header,.tile>header{position:relative}.panel>header:not(.command-bar),.tile>header:not(.command-bar){text-align:left;padding:.4rem .6rem}.panel>header:not(.command-bar):before,.tile>header:not(.command-bar):before{border-width:2px 0 0 2px;border-radius:.3rem 0 0 0;left:0;top:0}.panel>header:not(.command-bar):after,.tile>header:not(.command-bar):after{border-width:2px 2px 0 0;border-radius:0 .3rem 0 0;right:0;top:0}.panel>header:empty,.tile>header:empty{padding:.2rem}.panel>header.command-bar,.tile>header.command-bar{margin-bottom:1rem}.panel>header.command-bar:before,.tile>header.command-bar:before{border-radius:.3rem 0 0 0}.panel>header.command-bar:after,.tile>header.command-bar:after{border-radius:0 .3rem 0 0}.panel>article,.tile>article{z-index:1;padding:0 .6rem;overflow:auto}.panel>article::-webkit-scrollbar,.tile>article::-webkit-scrollbar{width:2px;background:transparent}.panel>article::-webkit-scrollbar-thumb,.tile>article::-webkit-scrollbar-thumb{min-width:1rem;border-style:solid;border-color:transparent;border-width:2px 2px 1px 2px;background:var(--default);box-sizing:border-box;background-clip:padding-box}.panel>footer,.tile>footer{position:relative}.panel>footer:not(.command-bar),.tile>footer:not(.command-bar){color:var(--fg-alpha60);padding:.4rem .6rem;font-size:.75rem;text-align:right}.panel>footer:not(.command-bar):before,.tile>footer:not(.command-bar):before{border-width:0 0 2px 2px;border-radius:0 0 0 .3rem;left:0;bottom:0}.panel>footer:not(.command-bar):after,.tile>footer:not(.command-bar):after{border-width:0 2px 2px 0;border-radius:0 0 .3rem 0;right:0;bottom:0}.panel>footer:empty,.tile>footer:empty{padding:.2rem}.panel>footer.command-bar,.tile>footer.command-bar{margin-top:1rem;line-height:2rem;height:2rem}.panel>footer.command-bar:before,.tile>footer.command-bar:before{border-radius:0 0 0 .3rem}.panel>footer.command-bar:after,.tile>footer.command-bar:after{border-radius:0 0 .3rem 0}.panel>footer.command-bar>.command,.tile>footer.command-bar>.command{height:2rem;font-size:.9rem}.tile>footer:not(.command-bar):after,.tile>footer:not(.command-bar):before,.tile>header:not(.command-bar):after,.tile>header:not(.command-bar):before,.panel>header:not(.command-bar):before,.panel>header:not(.command-bar):after,.panel>footer:not(.command-bar):before,.panel>footer:not(.command-bar):after{content:"";border-style:solid;border-color:var(--default);position:absolute;height:1rem;width:1rem;z-index:2}.tile>footer:not(.command-bar):after,.tile>footer:not(.command-bar):before,.tile>header:not(.command-bar):after,.tile>header:not(.command-bar):before{border-color:var(--light-alpha40);height:.75rem;width:.75rem}.tile{margin:.8rem}.tile>header:not(.command-bar):before{border-width:1px 0 0 1px}.tile>header:not(.command-bar):after{border-width:1px 1px 0 0}.tile>header.command-bar{line-height:2rem;height:2rem}.tile>header.command-bar>.command{height:2rem;font-size:.9rem}.tile>article{color:var(--fg)}.tile>footer:not(.command-bar):before{border-width:0 0 1px 1px}.tile>footer:not(.command-bar):after{border-width:0 1px 1px 0}.tile.inset{box-shadow:inset 0 0 10px 0 rgba(0,0,0,.4)}.tile.inset>header{color:var(--fg-alpha80)}.tile.inset>header:before,.tile.inset>header:after{opacity:.6}.tile.inset>article{color:var(--fg-alpha80)}.tile.inset footer:before,.tile.inset footer:after{opacity:.6}.command:not(.spacer),.button{overflow:hidden;outline:none;color:var(--fg);font-family:inherit;cursor:pointer;user-select:none;vertical-align:middle;transition:border-color .15s ease-in-out,background-color .15s ease-in-out}.command:disabled:not(.spacer),.button:disabled{opacity:.4;filter:saturate(0.6);cursor:default;color:var(--fg-alpha80);pointer-events:none}.button{white-space:nowrap;text-overflow:ellipsis;border-radius:.3rem;box-shadow:0 0 10px 0 rgba(0,0,0,.4);border:1px solid var(--light-alpha40);background-color:transparent;min-height:min-content;min-width:8rem;padding:.8rem 1.6rem;margin:.8rem;font-size:1.1rem}.button.small{min-width:0;padding:.8rem}.button.fill{background-color:var(--default)}.button:focus{border:1px solid var(--light-alpha70)}.button:active{background-color:var(--light-alpha70);border:1px solid var(--default-alpha40)}.command-bar-v{position:relative;display:grid;grid-auto-flow:row;gap:.5rem;width:12rem;padding-top:1.5rem;padding-bottom:1.5rem;margin:.5rem}.command-bar-v:before,.command-bar-v:after{box-shadow:0 0 10px 0 rgba(0,0,0,.4);position:absolute;content:"";height:1rem;left:0;right:0;background:var(--default-alpha60)}.command-bar-v:before{border-radius:.3rem .3rem 0 0;top:0}.command-bar-v:after{border-radius:0 0 .3rem .3rem;bottom:0}.command-bar-v>.command{min-height:3.6rem;width:12rem}.command-bar{position:relative;display:grid;grid-auto-flow:column;text-align:center;gap:.5rem;align-items:center;line-height:3.6rem;height:3.6rem;padding-left:1.5rem;padding-right:1.5rem;margin:.5rem}.command-bar:before,.command-bar:after{box-shadow:0 0 10px 0 rgba(0,0,0,.4);position:absolute;content:"";width:1rem;top:0;bottom:0;background:var(--default-alpha60)}.command-bar:before{border-radius:.3rem 0 0 .3rem;left:0}.command-bar:after{border-radius:0 .3rem .3rem 0;right:0}.command-bar>.command{height:3.6rem}.command{box-sizing:border-box;background-color:var(--default-alpha60);box-shadow:0 0 10px 0 rgba(0,0,0,.4)}.command:not(.spacer){min-width:8rem;display:grid;align-items:end;justify-items:end;text-align:end;font-size:1.1rem;border-style:solid;border-color:transparent;border-width:0 1px 0 0;padding:.4rem}.command:not(.spacer).small{min-width:0}.command:not(.spacer):focus{border-color:var(--light-alpha70)}.command:not(.spacer):active{background-color:var(--light-alpha40)}.input{border-radius:.3rem;box-shadow:0 0 10px 0 rgba(0,0,0,.4);outline:none;border:1px solid var(--light-alpha40);color:var(--fg);font-family:inherit;background-color:transparent;transition:border-color .15s ease-in-out;padding:.8rem 1.6rem;margin:.8rem;font-size:1.1rem}.input:focus{border:1px solid var(--light-alpha70)}.input:disabled{opacity:.4;filter:saturate(0.6);cursor:default;color:var(--fg-alpha80);pointer-events:none}.spinner{width:100%;height:100%;box-sizing:border-box;position:relative;border-style:solid;border-width:.3em;border-radius:50%;border-color:transparent var(--default);animation:4s rotateOuter linear infinite;box-shadow:inset 0 0 10px 0 rgba(0,0,0,.4)}.spinner:before{content:"";position:absolute;top:.2em;left:.2em;right:.2em;bottom:.2em;border-style:inherit;border-width:inherit;border-color:transparent var(--light-alpha70);border-radius:inherit;animation:2s rotateInner linear infinite;box-shadow:inset 0 0 10px 0 rgba(0,0,0,.4)}.spinner:after{content:"";position:absolute;top:.7em;left:.7em;right:.7em;bottom:.7em;border-style:inherit;border-width:inherit;border-color:transparent var(--light-alpha40);border-radius:inherit;animation:4s rotateCenter linear infinite}@keyframes rotateOuter{0%{transform:rotate(45deg)}100%{transform:rotate(225deg)}}@keyframes rotateInner{0%{transform:rotate(-90deg)}100%{transform:rotate(-270deg)}}@keyframes rotateCenter{0%{transform:rotate(0)}100%{transform:rotate(180deg)}}
package/css/ada.green.css CHANGED
@@ -1 +1 @@
1
- .warn,.accent,:root{--l-dark: calc(var(--l) - 16%);--l-light: calc(var(--l) + 38%);--bg: hsl(var(--h), var(--s), var(--l-dark));--fg: hsl(var(--h-fg), var(--s-fg), var(--l-fg));--fg-alpha60: hsla(var(--h-fg), var(--s-fg), var(--l-fg), 0.6);--fg-alpha80: hsla(var(--h-fg), var(--s-fg), var(--l-fg), 0.8);--default: hsl(var(--h), var(--s), var(--l));--default-alpha10: hsla(var(--h), var(--s), var(--l), 0.1);--default-alpha40: hsla(var(--h), var(--s), var(--l), 0.4);--light: hsl(var(--h), var(--s), var(--l-light));--light-alpha40: hsla(var(--h), var(--s), var(--l-light), 0.4);--light-alpha70: hsla(var(--h), var(--s), var(--l-light), 0.7)}:root{--h: 132;--s: 92%;--l: 21%;--h-fg: var(--h);--s-fg: 100%;--l-fg: 89%}.accent{--h: 24;--s: 91%;--l: 34%;--h-fg: var(--h);--s-fg: 100%;--l-fg: 89%}.warn{--h: 0;--s: 75%;--l: 29%;--h-fg: var(--h);--s-fg: 100%;--l-fg: 89%}
1
+ .warn,.accent,.shade2,.shade1,:root{--fg: hsl(var(--h-fg), var(--s-fg), var(--l-fg));--fg-alpha60: hsla(var(--h-fg), var(--s-fg), var(--l-fg), 0.6);--fg-alpha80: hsla(var(--h-fg), var(--s-fg), var(--l-fg), 0.8);--default: hsl(var(--h), var(--s), var(--l));--default-alpha10: hsla(var(--h), var(--s), var(--l), 0.1);--default-alpha40: hsla(var(--h), var(--s), var(--l), 0.4);--default-alpha60: hsla(var(--h), var(--s), var(--l), 0.6);--light: hsl(var(--h), var(--s), var(--l-light));--light-alpha40: hsla(var(--h), var(--s), var(--l-light), 0.4);--light-alpha70: hsla(var(--h), var(--s), var(--l-light), 0.7)}:root{--h: 135;--s: 100%;--l: 19%;--l-light: 36%;--bg: hsl(var(--h), 20%, 15%);--h-fg: var(--h);--s-fg: 100%;--l-fg: 89%}.shade1{--h: 96;--s: 89%;--l: 23%;--l-light: 40%;--h-fg: var(--h);--s-fg: 100%;--l-fg: 89%}.shade2{--h: 169;--s: 90%;--l: 22%;--l-light: 40%;--h-fg: var(--h);--s-fg: 100%;--l-fg: 89%}.accent{--h: 16;--s: 81%;--l: 38%;--l-light: 60%;--h-fg: var(--h);--s-fg: 100%;--l-fg: 89%}.warn{--h: 356;--s: 95%;--l: 30%;--l-light: 60%;--h-fg: var(--h);--s-fg: 100%;--l-fg: 89%}
package/index.html CHANGED
@@ -16,116 +16,159 @@
16
16
  href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600"
17
17
  rel="stylesheet"
18
18
  />
19
- <link
20
- href="https://fonts.googleapis.com/icon?family=Material+Icons"
21
- rel="stylesheet"
22
- />
23
- <link rel="manifest" href="manifest.json" />
24
19
  </head>
25
20
 
26
- <body
27
- style="
28
- display: grid;
29
- grid-auto-flow: row;
30
- grid-template-columns: repeat(2, 1fr);
31
- "
32
- >
33
- <div class="panel">
34
- <header>Buttons</header>
35
- <article>
36
- <div
37
- style="
38
- display: grid;
39
- grid-template-columns: 1fr repeat(3, auto);
40
- justify-items: center;
41
- align-items: start;
42
- justify-content: start;
43
- align-items: center;
44
- "
45
- >
46
- Default
47
- <button class="button">Button</button>
48
- <button class="button accent">Button</button>
49
- <button class="button warn">Button</button>
50
- Small
51
- <button class="button small">Button</button>
52
- <button class="button small accent">Button</button>
53
- <button class="button small warn">Button</button>
54
- Fill
55
- <button class="button fill">Button</button>
56
- <button class="button fill accent">Button</button>
57
- <button class="button fill warn">Button</button>
58
- Icon
59
- <button class="button icon">
60
- <i class="material-icons">check</i>
61
- </button>
62
- <button class="button icon accent">
63
- <i class="material-icons">check</i>
64
- </button>
65
- <button class="button icon warn">
66
- <i class="material-icons">check</i>
67
- </button>
68
- Icon Fill
69
- <button class="button icon fill">
70
- <i class="material-icons">check</i>
71
- </button>
72
- <button class="button icon fill accent">
73
- <i class="material-icons">check</i>
74
- </button>
75
- <button class="button icon fill warn">
76
- <i class="material-icons">check</i>
77
- </button>
78
- Disabled
79
- <button disabled class="button">Button</button>
80
- <button disabled class="button fill">Button</button>
81
- <button disabled class="button icon">
82
- <i class="material-icons">check</i>
83
- </button>
84
- Spinner
85
- <div style="width: 48px; height: 48px; font-size: 12px">
86
- <div class="spinner"></div>
87
- </div>
88
- <div style="width: 32px; height: 32px; font-size: 8px">
89
- <div class="spinner"></div>
90
- </div>
91
- <div style="width: 16px; height: 16px; font-size: 4px">
92
- <div class="spinner"></div>
93
- </div>
94
- </div>
95
- </article>
96
- <footer></footer>
21
+ <body style="display: grid; grid: 'test a' 1fr 'c c' auto / auto 1fr">
22
+ <div
23
+ class="command-bar-v"
24
+ style="grid-area: test; grid-template-rows: auto auto 1fr"
25
+ >
26
+ <button class="command">Command</button>
27
+ <button class="command shade1">Second Command</button>
28
+ <button class="command shade2">Third Command</button>
97
29
  </div>
98
- <div class="panel">
99
- <header>Tiles</header>
30
+ <div class="panel" style="grid-area: a">
31
+ <header
32
+ class="command-bar"
33
+ style="grid-template-columns: repeat(3, 1fr) auto"
34
+ >
35
+ <button class="command">Command</button>
36
+ <button class="command shade1">Second Command</button>
37
+ <button class="command shade2">Third Command</button>
38
+ Header
39
+ </header>
100
40
  <article
101
41
  style="
102
42
  display: grid;
103
- grid-template-columns: repeat(2, 1fr);
104
- grid-template-rows: repeat(2, 1fr);
43
+ grid: 'buttons tiles' 1fr 'spinner tiles' auto / 1fr 1fr;
105
44
  "
106
45
  >
107
- <div class="tile">
108
- <header>Header</header>
109
- <article>Tile</article>
110
- <footer>Footer</footer>
111
- </div>
112
- <div class="tile inset">
113
- <header>Header</header>
114
- <article>Inset Tile</article>
115
- <footer>Footer</footer>
46
+ <div class="panel" style="grid-area: buttons">
47
+ <header>Buttons</header>
48
+ <article>
49
+ <h3>Default</h3>
50
+ <button class="button">Button</button>
51
+ <button class="button shade1">Button</button>
52
+ <button class="button shade2">Button</button>
53
+ <button class="button accent">Button</button>
54
+ <button class="button warn">Button</button>
55
+ <h3>Small</h3>
56
+ <button class="button small">Button</button>
57
+ <button class="button small shade1">Button</button>
58
+ <button class="button small shade2">Button</button>
59
+ <button class="button small accent">Button</button>
60
+ <button class="button small warn">Button</button>
61
+ <h3>Fill</h3>
62
+ <button class="button fill">Button</button>
63
+ <button class="button fill shade1">Button</button>
64
+ <button class="button fill shade2">Button</button>
65
+ <button class="button fill accent">Button</button>
66
+ <button class="button fill warn">Button</button>
67
+ <h3>Disabled</h3>
68
+ <button disabled class="button">Button</button>
69
+ <button disabled class="button fill">Button</button>
70
+ <button disabled class="button fill shade1">Button</button>
71
+ <button disabled class="button fill shade2">Button</button>
72
+ <button disabled class="button fill accent">Button</button>
73
+ <button disabled class="button fill warn">Button</button>
74
+ </article>
75
+ <footer></footer>
116
76
  </div>
117
- <div class="tile accent">
118
- <header></header>
119
- <article>Tile Accent</article>
77
+ <div class="panel" style="grid-area: spinner">
78
+ <header>Spinner</header>
79
+ <article
80
+ style="
81
+ display: grid;
82
+ grid-auto-flow: column;
83
+ justify-content: start;
84
+ align-items: center;
85
+ gap: 2rem;
86
+ "
87
+ >
88
+ <div style="width: 48px; height: 48px; font-size: 10px">
89
+ <div class="spinner"></div>
90
+ </div>
91
+ <div style="width: 32px; height: 32px; font-size: 8px">
92
+ <div class="spinner"></div>
93
+ </div>
94
+ <div style="width: 32px; height: 32px; font-size: 8px">
95
+ <div class="spinner shade1"></div>
96
+ </div>
97
+ <div style="width: 60px; height: 60px; font-size: 12px">
98
+ <div class="spinner shade2"></div>
99
+ </div>
100
+ <div style="width: 32px; height: 32px; font-size: 8px">
101
+ <div class="spinner accent"></div>
102
+ </div>
103
+ <div style="width: 32px; height: 32px; font-size: 8px">
104
+ <div class="spinner warn"></div>
105
+ </div>
106
+ </article>
120
107
  <footer></footer>
121
108
  </div>
122
- <div class="tile">
123
- <header></header>
124
- <article>Tile</article>
109
+ <div class="panel" style="grid-area: tiles">
110
+ <header>Tiles</header>
111
+ <article
112
+ style="
113
+ display: grid;
114
+ grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
115
+ "
116
+ >
117
+ <div class="tile">
118
+ <header class="command-bar">
119
+ <button class="command small shade2">Comand</button>
120
+ <div class="command spacer"></div>
121
+ </header>
122
+ <article>Tile</article>
123
+ <footer class="command-bar">
124
+ <div class="command spacer"></div>
125
+ <button class="command small warn">Comand</button>
126
+ </footer>
127
+ </div>
128
+ <div class="tile inset">
129
+ <header>Inset Tile</header>
130
+ <article></article>
131
+ <footer>Footer</footer>
132
+ </div>
133
+ <div class="tile accent">
134
+ <header>Tile Accent</header>
135
+ <article></article>
136
+ <footer></footer>
137
+ </div>
138
+ <div class="tile">
139
+ <header>Header</header>
140
+ <article></article>
141
+ <footer>Footer</footer>
142
+ </div>
143
+ </article>
125
144
  <footer></footer>
126
145
  </div>
127
146
  </article>
128
- <footer></footer>
147
+ <footer
148
+ class="command-bar"
149
+ style="grid-template-columns: repeat(3, 1fr) auto"
150
+ >
151
+ <button class="command">Command</button>
152
+ <button class="command shade1">Second Command</button>
153
+ <button class="command shade2">Third Command</button>
154
+ Footer
155
+ </footer>
156
+ </div>
157
+ <div
158
+ class="command-bar"
159
+ style="
160
+ grid-area: c;
161
+ grid-template-columns: repeat(2, auto) 12rem auto 1fr auto 1fr auto;
162
+ "
163
+ >
164
+ <button class="command">Command</button>
165
+ <button class="shade1 command">Command</button>
166
+ <button class="shade2 command">Command and sth more looong</button>
167
+ <button class="accent command">Special Command</button>
168
+ <div class="command spacer"></div>
169
+ <button class="warn command">Delete</button>
170
+ <div class="command spacer"></div>
171
+ Commands
129
172
  </div>
130
173
  </body>
131
174
  </html>
package/package.json CHANGED
@@ -1,8 +1,9 @@
1
1
  {
2
2
  "name": "ada-ui",
3
- "version": "3.0.2",
3
+ "version": "4.0.0",
4
4
  "scripts": {
5
- "dev": "sass scss:css --watch",
5
+ "start:dev": "alive-server .",
6
+ "build:dev": "sass scss:css --watch",
6
7
  "build": "rm -rf css && sass scss:css -s compressed --no-source-map"
7
8
  },
8
9
  "repository": {
@@ -14,6 +15,7 @@
14
15
  "url": "https://github.com/tklepzig/Ada/issues"
15
16
  },
16
17
  "devDependencies": {
18
+ "alive-server": "^1.2.9",
17
19
  "sass": "^1.42.1"
18
20
  }
19
21
  }
@@ -1,9 +1,4 @@
1
1
  %colourShades {
2
- --l-dark: calc(var(--l) - 16%);
3
- --l-light: calc(var(--l) + 38%);
4
-
5
- --bg: hsl(var(--h), var(--s), var(--l-dark));
6
-
7
2
  --fg: hsl(var(--h-fg), var(--s-fg), var(--l-fg));
8
3
  --fg-alpha60: hsla(var(--h-fg), var(--s-fg), var(--l-fg), 0.6);
9
4
  --fg-alpha80: hsla(var(--h-fg), var(--s-fg), var(--l-fg), 0.8);
@@ -11,6 +6,7 @@
11
6
  --default: hsl(var(--h), var(--s), var(--l));
12
7
  --default-alpha10: hsla(var(--h), var(--s), var(--l), 0.1);
13
8
  --default-alpha40: hsla(var(--h), var(--s), var(--l), 0.4);
9
+ --default-alpha60: hsla(var(--h), var(--s), var(--l), 0.6);
14
10
 
15
11
  --light: hsl(var(--h), var(--s), var(--l-light));
16
12
  --light-alpha40: hsla(var(--h), var(--s), var(--l-light), 0.4);
@@ -0,0 +1,53 @@
1
+ %button {
2
+ overflow: hidden;
3
+ outline: none;
4
+ color: var(--fg);
5
+ font-family: inherit;
6
+ cursor: pointer;
7
+ user-select: none;
8
+ vertical-align: middle;
9
+ transition: border-color 0.15s ease-in-out, background-color 0.15s ease-in-out;
10
+
11
+ &:disabled {
12
+ opacity: 0.4;
13
+ filter: saturate(0.6);
14
+ cursor: default;
15
+ color: var(--fg-alpha80);
16
+ pointer-events: none;
17
+ }
18
+ }
19
+
20
+ .button {
21
+ @extend %button;
22
+ white-space: nowrap;
23
+ text-overflow: ellipsis;
24
+ border-radius: 0.3rem;
25
+ box-shadow: $box-shadow;
26
+ border: 1px solid var(--light-alpha40);
27
+ background-color: transparent;
28
+ min-height: min-content;
29
+ min-width: 8rem;
30
+ padding: 0.8rem 1.6rem;
31
+ margin: 0.8rem;
32
+ font-size: 1.1rem;
33
+
34
+ &.small {
35
+ min-width: 0;
36
+ padding: 0.8rem;
37
+ }
38
+ &.fill {
39
+ background-color: var(--default);
40
+ }
41
+ &:focus {
42
+ border: 1px solid var(--light-alpha70);
43
+ }
44
+ &:hover {
45
+ // stays after click on touch devices
46
+ // TODO: only for non-touch devices
47
+ // /*background-color: var(--light-alpha40);*/
48
+ }
49
+ &:active {
50
+ background-color: var(--light-alpha70);
51
+ border: 1px solid var(--default-alpha40);
52
+ }
53
+ }
@@ -0,0 +1,106 @@
1
+ .command-bar-v {
2
+ position: relative;
3
+ display: grid;
4
+ grid-auto-flow: row;
5
+ gap: 0.5rem;
6
+ width: 12rem;
7
+ padding-top: 1.5rem;
8
+ padding-bottom: 1.5rem;
9
+ margin: 0.5rem;
10
+
11
+ &:before,
12
+ &:after {
13
+ box-shadow: $box-shadow;
14
+ position: absolute;
15
+ content: "";
16
+ height: 1rem;
17
+ left: 0;
18
+ right: 0;
19
+ background: var(--default-alpha60);
20
+ }
21
+
22
+ &:before {
23
+ border-radius: 0.3rem 0.3rem 0 0;
24
+ top: 0;
25
+ }
26
+ &:after {
27
+ border-radius: 0 0 0.3rem 0.3rem;
28
+ bottom: 0;
29
+ }
30
+
31
+ & > .command {
32
+ min-height: 3.6rem;
33
+ width: 12rem;
34
+ }
35
+ }
36
+
37
+ .command-bar {
38
+ position: relative;
39
+ @extend %h2, .m-0;
40
+ display: grid;
41
+ grid-auto-flow: column;
42
+ text-align: center;
43
+ gap: 0.5rem;
44
+ align-items: center;
45
+ line-height: 3.6rem;
46
+ height: 3.6rem;
47
+ padding-left: 1.5rem;
48
+ padding-right: 1.5rem;
49
+ margin: 0.5rem;
50
+
51
+ &:before,
52
+ &:after {
53
+ box-shadow: $box-shadow;
54
+ position: absolute;
55
+ content: "";
56
+ width: 1rem;
57
+ top: 0;
58
+ bottom: 0;
59
+ background: var(--default-alpha60);
60
+ }
61
+
62
+ &:before {
63
+ border-radius: 0.3rem 0 0 0.3rem;
64
+ left: 0;
65
+ }
66
+ &:after {
67
+ border-radius: 0 0.3rem 0.3rem 0;
68
+ right: 0;
69
+ }
70
+
71
+ & > .command {
72
+ height: 3.6rem;
73
+ }
74
+ }
75
+
76
+ .command {
77
+ box-sizing: border-box;
78
+ background-color: var(--default-alpha60);
79
+ box-shadow: $box-shadow;
80
+
81
+ &:not(.spacer) {
82
+ @extend %button;
83
+ min-width: 8rem;
84
+ display: grid;
85
+ align-items: end;
86
+ justify-items: end;
87
+ text-align: end;
88
+ font-size: 1.1rem;
89
+ border-style: solid;
90
+ border-color: transparent;
91
+ border-width: 0 1px 0 0;
92
+ padding: 0.4rem;
93
+
94
+ &.small {
95
+ min-width: 0;
96
+ }
97
+
98
+ &:focus {
99
+ border-color: var(--light-alpha70);
100
+ }
101
+
102
+ &:active {
103
+ background-color: var(--light-alpha40);
104
+ }
105
+ }
106
+ }
@@ -0,0 +1,16 @@
1
+ %corner {
2
+ content: "";
3
+ border-style: solid;
4
+ border-color: var(--default);
5
+ position: absolute;
6
+ height: 1rem;
7
+ width: 1rem;
8
+ z-index: 2;
9
+ }
10
+
11
+ %corner-light {
12
+ @extend %corner;
13
+ border-color: var(--light-alpha40);
14
+ height: 0.75rem;
15
+ width: 0.75rem;
16
+ }
@@ -0,0 +1,24 @@
1
+ .input {
2
+ border-radius: 0.3rem;
3
+ box-shadow: $box-shadow;
4
+ outline: none;
5
+ border: 1px solid var(--light-alpha40);
6
+ color: var(--fg);
7
+ font-family: inherit;
8
+ background-color: transparent;
9
+ transition: border-color 0.15s ease-in-out;
10
+ padding: 0.8rem 1.6rem;
11
+ margin: 0.8rem;
12
+ font-size: 1.1rem;
13
+
14
+ &:focus {
15
+ border: 1px solid var(--light-alpha70);
16
+ }
17
+ &:disabled {
18
+ opacity: 0.4;
19
+ filter: saturate(0.6);
20
+ cursor: default;
21
+ color: var(--fg-alpha80);
22
+ pointer-events: none;
23
+ }
24
+ }
@@ -0,0 +1,120 @@
1
+ @import "corner";
2
+
3
+ .panel {
4
+ background: var(--default-alpha10);
5
+ box-shadow: $box-shadow;
6
+ border-radius: 0.3rem;
7
+ display: grid;
8
+ grid-template-rows: auto 1fr auto;
9
+ overflow: auto;
10
+ margin: 0.5rem;
11
+
12
+ > header {
13
+ position: relative;
14
+
15
+ &:not(.command-bar) {
16
+ text-align: left;
17
+ @extend %h3, .m-0;
18
+ padding: 0.4rem 0.6rem;
19
+
20
+ &:before {
21
+ @extend %corner;
22
+ border-width: 2px 0 0 2px;
23
+ border-radius: 0.3rem 0 0 0;
24
+ left: 0;
25
+ top: 0;
26
+ }
27
+ &:after {
28
+ @extend %corner;
29
+ border-width: 2px 2px 0 0;
30
+ border-radius: 0 0.3rem 0 0;
31
+ right: 0;
32
+ top: 0;
33
+ }
34
+ }
35
+
36
+ &:empty {
37
+ padding: 0.2rem;
38
+ }
39
+
40
+ &.command-bar {
41
+ @extend .m-0;
42
+ margin-bottom: 1rem;
43
+
44
+ &:before {
45
+ border-radius: 0.3rem 0 0 0;
46
+ }
47
+ &:after {
48
+ border-radius: 0 0.3rem 0 0;
49
+ }
50
+ }
51
+ }
52
+
53
+ > article {
54
+ z-index: 1;
55
+ padding: 0 0.6rem;
56
+ overflow: auto;
57
+
58
+ &::-webkit-scrollbar {
59
+ width: 2px;
60
+ background: transparent;
61
+ }
62
+ &::-webkit-scrollbar-thumb {
63
+ min-width: 1rem;
64
+ border-style: solid;
65
+ border-color: transparent;
66
+ border-width: 2px 2px 1px 2px;
67
+ background: var(--default);
68
+ box-sizing: border-box;
69
+ background-clip: padding-box;
70
+ }
71
+ }
72
+ > footer {
73
+ position: relative;
74
+
75
+ &:not(.command-bar) {
76
+ color: var(--fg-alpha60);
77
+ padding: 0.4rem 0.6rem;
78
+ font-size: 0.75rem;
79
+ text-align: right;
80
+
81
+ &:before {
82
+ @extend %corner;
83
+ border-width: 0 0 2px 2px;
84
+ border-radius: 0 0 0 0.3rem;
85
+ left: 0;
86
+ bottom: 0;
87
+ }
88
+ &:after {
89
+ @extend %corner;
90
+ border-width: 0 2px 2px 0;
91
+ border-radius: 0 0 0.3rem 0;
92
+ right: 0;
93
+ bottom: 0;
94
+ }
95
+ }
96
+
97
+ &:empty {
98
+ padding: 0.2rem;
99
+ }
100
+
101
+ &.command-bar {
102
+ @extend %h4, .m-0;
103
+ margin-top: 1rem;
104
+ line-height: 2rem;
105
+ height: 2rem;
106
+
107
+ &:before {
108
+ border-radius: 0 0 0 0.3rem;
109
+ }
110
+ &:after {
111
+ border-radius: 0 0 0.3rem 0;
112
+ }
113
+
114
+ & > .command {
115
+ height: 2rem;
116
+ font-size: 0.9rem;
117
+ }
118
+ }
119
+ }
120
+ }
@@ -0,0 +1,67 @@
1
+ .spinner {
2
+ width: 100%;
3
+ height: 100%;
4
+ box-sizing: border-box;
5
+ position: relative;
6
+ border-style: solid;
7
+ border-width: 0.3em;
8
+ border-radius: 50%;
9
+ border-color: transparent var(--default);
10
+ animation: 4s rotateOuter linear infinite;
11
+ box-shadow: inset $box-shadow;
12
+
13
+ &:before {
14
+ content: "";
15
+ position: absolute;
16
+ top: 0.2em;
17
+ left: 0.2em;
18
+ right: 0.2em;
19
+ bottom: 0.2em;
20
+ border-style: inherit;
21
+ border-width: inherit;
22
+ border-color: transparent var(--light-alpha70);
23
+ border-radius: inherit;
24
+ animation: 2s rotateInner linear infinite;
25
+ box-shadow: inset $box-shadow;
26
+ }
27
+ &:after {
28
+ content: "";
29
+ position: absolute;
30
+ top: 0.7em;
31
+ left: 0.7em;
32
+ right: 0.7em;
33
+ bottom: 0.7em;
34
+ border-style: inherit;
35
+ border-width: inherit;
36
+ border-color: transparent var(--light-alpha40);
37
+ border-radius: inherit;
38
+ animation: 4s rotateCenter linear infinite;
39
+ }
40
+ }
41
+
42
+ @keyframes rotateOuter {
43
+ 0% {
44
+ transform: rotate(45deg);
45
+ }
46
+ 100% {
47
+ transform: rotate(225deg);
48
+ }
49
+ }
50
+
51
+ @keyframes rotateInner {
52
+ 0% {
53
+ transform: rotate(-90deg);
54
+ }
55
+ 100% {
56
+ transform: rotate(-270deg);
57
+ }
58
+ }
59
+
60
+ @keyframes rotateCenter {
61
+ 0% {
62
+ transform: rotate(0);
63
+ }
64
+ 100% {
65
+ transform: rotate(180deg);
66
+ }
67
+ }
@@ -0,0 +1,70 @@
1
+ @import "corner";
2
+
3
+ .tile {
4
+ @extend .panel;
5
+ margin: 0.8rem;
6
+
7
+ > header {
8
+ &:not(.command-bar) {
9
+ &:before {
10
+ @extend %corner-light;
11
+ border-width: 1px 0 0 1px;
12
+ }
13
+ &:after {
14
+ @extend %corner-light;
15
+ border-width: 1px 1px 0 0;
16
+ }
17
+ }
18
+
19
+ &.command-bar {
20
+ @extend %h4, .m-0;
21
+ line-height: 2rem;
22
+ height: 2rem;
23
+
24
+ & > .command {
25
+ height: 2rem;
26
+ font-size: 0.9rem;
27
+ }
28
+ }
29
+ }
30
+
31
+ > article {
32
+ color: var(--fg);
33
+ }
34
+
35
+ > footer {
36
+ &:not(.command-bar) {
37
+ &:before {
38
+ @extend %corner-light;
39
+ border-width: 0 0 1px 1px;
40
+ }
41
+ &:after {
42
+ @extend %corner-light;
43
+ border-width: 0 1px 1px 0;
44
+ }
45
+ }
46
+ }
47
+
48
+ &.inset {
49
+ box-shadow: inset $box-shadow;
50
+
51
+ > header {
52
+ color: var(--fg-alpha80);
53
+ &:before,
54
+ &:after {
55
+ opacity: 0.6;
56
+ }
57
+ }
58
+
59
+ > article {
60
+ color: var(--fg-alpha80);
61
+ }
62
+
63
+ footer {
64
+ &:before,
65
+ &:after {
66
+ opacity: 0.6;
67
+ }
68
+ }
69
+ }
70
+ }
@@ -0,0 +1,49 @@
1
+ %h1 {
2
+ @extend %header;
3
+ font-size: 3rem;
4
+ margin: 1rem 0 2rem 0;
5
+ }
6
+
7
+ %h2 {
8
+ @extend %header;
9
+ font-size: 2rem;
10
+ margin: 1rem 0 1.5rem 0;
11
+ }
12
+
13
+ %h3 {
14
+ @extend %header;
15
+ font-size: 1.5rem;
16
+ margin: 0.5rem 0 1.5rem 0;
17
+ }
18
+
19
+ %h4 {
20
+ @extend %header;
21
+ font-weight: 400;
22
+ font-size: 1.2rem;
23
+ margin: 0.5rem 0 0.5rem 0;
24
+ }
25
+
26
+ %header {
27
+ font-weight: 300;
28
+ text-shadow: 0 0 4px var(--light-alpha40);
29
+ color: var(--fg);
30
+ &.m-0 {
31
+ margin: 0;
32
+ }
33
+ }
34
+
35
+ h1 {
36
+ @extend %h1;
37
+ }
38
+
39
+ h2 {
40
+ @extend %h2;
41
+ }
42
+
43
+ h3 {
44
+ @extend %h3;
45
+ }
46
+
47
+ h4 {
48
+ @extend %h4;
49
+ }
@@ -3,21 +3,51 @@
3
3
  :root {
4
4
  @extend %colourShades;
5
5
 
6
- --h: 205;
7
- --s: 80%;
8
- --l: 23%;
6
+ --h: 197;
7
+ --s: 100%;
8
+ --l: 19%;
9
+ --l-light: 40%;
10
+
11
+ --bg: hsl(var(--h), 80%, 7%);
9
12
 
10
13
  --h-fg: var(--h);
11
14
  --s-fg: 100%;
12
15
  --l-fg: 89%;
13
16
  }
14
17
 
15
- .accent {
18
+ .shade1 {
19
+ @extend %colourShades;
20
+
21
+ --h: 198;
22
+ --s: 90%;
23
+ --l: 30%;
24
+ --l-light: 58%;
25
+
26
+ --h-fg: var(--h);
27
+ --s-fg: 100%;
28
+ --l-fg: 89%;
29
+ }
30
+
31
+ .shade2 {
16
32
  @extend %colourShades;
17
33
 
18
- --h: 146;
19
- --s: 58%;
34
+ --h: 165;
35
+ --s: 90%;
20
36
  --l: 20%;
37
+ --l-light: 40%;
38
+
39
+ --h-fg: var(--h);
40
+ --s-fg: 100%;
41
+ --l-fg: 89%;
42
+ }
43
+
44
+ .accent {
45
+ @extend %colourShades;
46
+
47
+ --h: 14;
48
+ --s: 81%;
49
+ --l: 38%;
50
+ --l-light: 60%;
21
51
 
22
52
  --h-fg: var(--h);
23
53
  --s-fg: 100%;
@@ -30,6 +60,7 @@
30
60
  --h: 0;
31
61
  --s: 75%;
32
62
  --l: 29%;
63
+ --l-light: 67%;
33
64
 
34
65
  --h-fg: var(--h);
35
66
  --s-fg: 100%;
@@ -3,9 +3,36 @@
3
3
  :root {
4
4
  @extend %colourShades;
5
5
 
6
- --h: 132;
7
- --s: 92%;
8
- --l: 21%;
6
+ --h: 135;
7
+ --s: 100%;
8
+ --l: 19%;
9
+ --l-light: 36%;
10
+
11
+ --bg: hsl(var(--h), 20%, 15%);
12
+
13
+ --h-fg: var(--h);
14
+ --s-fg: 100%;
15
+ --l-fg: 89%;
16
+ }
17
+
18
+ .shade1 {
19
+ @extend %colourShades;
20
+ --h: 96;
21
+ --s: 89%;
22
+ --l: 23%;
23
+ --l-light: 40%;
24
+
25
+ --h-fg: var(--h);
26
+ --s-fg: 100%;
27
+ --l-fg: 89%;
28
+ }
29
+
30
+ .shade2 {
31
+ @extend %colourShades;
32
+ --h: 169;
33
+ --s: 90%;
34
+ --l: 22%;
35
+ --l-light: 40%;
9
36
 
10
37
  --h-fg: var(--h);
11
38
  --s-fg: 100%;
@@ -15,9 +42,10 @@
15
42
  .accent {
16
43
  @extend %colourShades;
17
44
 
18
- --h: 24;
19
- --s: 91%;
20
- --l: 34%;
45
+ --h: 16;
46
+ --s: 81%;
47
+ --l: 38%;
48
+ --l-light: 60%;
21
49
 
22
50
  --h-fg: var(--h);
23
51
  --s-fg: 100%;
@@ -27,9 +55,10 @@
27
55
  .warn {
28
56
  @extend %colourShades;
29
57
 
30
- --h: 0;
31
- --s: 75%;
32
- --l: 29%;
58
+ --h: 356;
59
+ --s: 95%;
60
+ --l: 30%;
61
+ --l-light: 60%;
33
62
 
34
63
  --h-fg: var(--h);
35
64
  --s-fg: 100%;
package/scss/ada.scss CHANGED
@@ -1,4 +1,5 @@
1
1
  $font-family: "Open Sans", sans-serif !default;
2
+ $box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.4);
2
3
 
3
4
  @mixin desktop() {
4
5
  @media screen and (min-width: 1200px) {
@@ -31,56 +32,6 @@ body {
31
32
  color: var(--fg);
32
33
  }
33
34
 
34
- %h1 {
35
- @extend %header;
36
- font-size: 3rem;
37
- margin: 1rem 0 2rem 0;
38
- }
39
-
40
- %h2 {
41
- @extend %header;
42
- font-size: 2rem;
43
- margin: 1rem 0 1.5rem 0;
44
- }
45
-
46
- %h3 {
47
- @extend %header;
48
- font-size: 1.5rem;
49
- margin: 0.5rem 0 1.5rem 0;
50
- }
51
-
52
- %h4 {
53
- @extend %header;
54
- font-weight: 400;
55
- font-size: 1.2rem;
56
- margin: 0.5rem 0 0.5rem 0;
57
- }
58
-
59
- %header {
60
- font-weight: 300;
61
- text-shadow: 0 0 4px var(--light-alpha40);
62
- color: var(--fg);
63
- &.m-0 {
64
- margin: 0;
65
- }
66
- }
67
-
68
- h1 {
69
- @extend %h1;
70
- }
71
-
72
- h2 {
73
- @extend %h2;
74
- }
75
-
76
- h3 {
77
- @extend %h3;
78
- }
79
-
80
- h4 {
81
- @extend %h4;
82
- }
83
-
84
35
  body {
85
36
  font-size: 1rem;
86
37
  -webkit-tap-highlight-color: transparent;
@@ -88,313 +39,10 @@ body {
88
39
  padding: 0.5rem;
89
40
  }
90
41
 
91
- %corner {
92
- content: "";
93
- border-style: solid;
94
- border-color: var(--default);
95
- position: absolute;
96
- height: 1rem;
97
- width: 1rem;
98
- z-index: 2;
99
- }
100
-
101
- %corner-light {
102
- @extend %corner;
103
- border-color: var(--light-alpha40);
104
- height: 0.75rem;
105
- width: 0.75rem;
106
- }
107
-
108
- .button-group {
109
- margin: 0.8rem;
110
- }
111
-
112
- .button {
113
- white-space: nowrap;
114
- text-overflow: ellipsis;
115
- overflow: hidden;
116
- border-radius: 0.3rem;
117
- box-shadow: 0 0 10px 0px rgba(0, 0, 0, 0.4);
118
- outline: none;
119
- border: 1px solid var(--light-alpha40);
120
- color: var(--fg);
121
- text-shadow: 0 0 4px var(--light-alpha40);
122
- font-family: inherit;
123
- cursor: pointer;
124
- user-select: none;
125
- background-color: transparent;
126
- vertical-align: middle;
127
- transition: border-color 0.15s ease-in-out, background-color 0.15s ease-in-out;
128
- min-height: min-content;
129
- min-width: 8rem;
130
- padding: 0.8rem 1.6rem;
131
- margin: 0.8rem;
132
- font-size: 1.1rem;
133
- &.small {
134
- display: grid;
135
- justify-items: center;
136
- align-items: center;
137
- min-width: 0;
138
- padding: 0.8rem;
139
- }
140
- &.icon {
141
- @extend .button, .small;
142
- border: 1px solid transparent;
143
- box-shadow: none;
144
- background: none;
145
- > i.material-icons {
146
- font-size: 20px;
147
- }
148
- .button-group > & {
149
- margin: 1px;
150
- }
151
- }
152
- &.fill {
153
- background-color: var(--default);
154
- }
155
- &:focus {
156
- border: 1px solid var(--light-alpha70);
157
- }
158
- &:hover {
159
- // stays after click on touch devices
160
- // TODO: only for non-touch devices
161
- // /*background-color: var(--light-alpha40);*/
162
- }
163
- &:active {
164
- background-color: var(--light-alpha70);
165
- border: 1px solid var(--default-alpha40);
166
- }
167
- &:disabled {
168
- opacity: 0.4;
169
- filter: saturate(0.6);
170
- cursor: default;
171
- color: var(--fg-alpha80);
172
- pointer-events: none;
173
- }
174
- }
175
-
176
- .input {
177
- border-radius: 0.3rem;
178
- box-shadow: 0 0 10px 0px rgba(0, 0, 0, 0.4);
179
- outline: none;
180
- border: 1px solid var(--light-alpha40);
181
- color: var(--fg);
182
- text-shadow: 0 0 4px var(--light-alpha40);
183
- font-family: inherit;
184
- background-color: transparent;
185
- transition: border-color 0.15s ease-in-out;
186
- padding: 0.8rem 1.6rem;
187
- margin: 0.8rem;
188
- font-size: 1.1rem;
189
-
190
- &:focus {
191
- border: 1px solid var(--light-alpha70);
192
- }
193
- &:disabled {
194
- opacity: 0.4;
195
- filter: saturate(0.6);
196
- cursor: default;
197
- color: var(--fg-alpha80);
198
- pointer-events: none;
199
- }
200
- }
201
-
202
- .panel {
203
- background: var(--default-alpha10);
204
- box-shadow: 0 0 20px 1px rgba(0, 0, 0, 0.4);
205
- border-radius: 0.3rem;
206
- display: grid;
207
- grid-template-rows: auto 1fr auto;
208
- overflow: auto;
209
- margin: 0.5rem;
210
- > header {
211
- position: relative;
212
- text-align: left;
213
- @extend %h3, .m-0;
214
- padding: 0.4rem 0.6rem;
215
- &:before {
216
- @extend %corner;
217
- border-width: 2px 0 0 2px;
218
- border-radius: 0.3rem 0 0 0;
219
- left: 0;
220
- top: 0;
221
- }
222
- &:after {
223
- @extend %corner;
224
- border-width: 2px 2px 0 0;
225
- border-radius: 0 0.3rem 0 0;
226
- right: 0;
227
- top: 0;
228
- }
229
- &:empty {
230
- padding: 0.2rem;
231
- }
232
- }
233
-
234
- > article {
235
- z-index: 1;
236
- padding: 0 0.6rem;
237
- overflow: auto;
238
-
239
- &::-webkit-scrollbar {
240
- width: 2px;
241
- background: transparent;
242
- }
243
- &::-webkit-scrollbar-thumb {
244
- min-width: 1rem;
245
- border-style: solid;
246
- border-color: transparent;
247
- border-width: 2px 2px 1px 2px;
248
- background: var(--default);
249
- box-sizing: border-box;
250
- background-clip: padding-box;
251
- }
252
- }
253
- > footer {
254
- position: relative;
255
- text-align: right;
256
- padding: 0.4rem 0.6rem;
257
- font-size: 0.75rem;
258
- color: var(--fg-alpha60);
259
- &:before {
260
- @extend %corner;
261
- border-width: 0 0 2px 2px;
262
- border-radius: 0 0 0 0.3rem;
263
- left: 0;
264
- bottom: 0;
265
- }
266
- &:after {
267
- @extend %corner;
268
- border-width: 0 2px 2px 0;
269
- border-radius: 0 0 0.3rem 0;
270
- right: 0;
271
- bottom: 0;
272
- }
273
- &:empty {
274
- padding: 0.2rem;
275
- }
276
- }
277
- }
278
-
279
- .tile {
280
- @extend .panel;
281
- margin: 0.8rem;
282
-
283
- > header {
284
- &:before {
285
- @extend %corner-light;
286
- border-width: 1px 0 0 1px;
287
- }
288
- &:after {
289
- @extend %corner-light;
290
- border-width: 1px 1px 0 0;
291
- }
292
- }
293
-
294
- > article {
295
- color: var(--fg);
296
- text-shadow: 0 0 4px var(--light-alpha40);
297
- }
298
-
299
- > footer {
300
- &:before {
301
- @extend %corner-light;
302
- border-width: 0 0 1px 1px;
303
- }
304
- &:after {
305
- @extend %corner-light;
306
- border-width: 0 1px 1px 0;
307
- }
308
- }
309
-
310
- &.inset {
311
- box-shadow: inset 0 0 20px 1px rgba(0, 0, 0, 0.4);
312
-
313
- > header {
314
- color: var(--fg-alpha80);
315
- &:before,
316
- &:after {
317
- opacity: 0.6;
318
- }
319
- }
320
-
321
- > article {
322
- color: var(--fg-alpha80);
323
- }
324
-
325
- footer {
326
- &:before,
327
- &:after {
328
- opacity: 0.6;
329
- }
330
- }
331
- }
332
- }
333
-
334
- .spinner {
335
- width: 100%;
336
- height: 100%;
337
- box-sizing: border-box;
338
- position: relative;
339
- border-style: solid;
340
- border-width: 0.3em;
341
- border-radius: 50%;
342
- border-color: transparent var(--default);
343
- animation: 4s rotateOuter linear infinite;
344
- box-shadow: 0 0 10px 0px rgba(0, 0, 0, 0.4) inset;
345
-
346
- &:before {
347
- content: "";
348
- position: absolute;
349
- top: 0.2em;
350
- left: 0.2em;
351
- right: 0.2em;
352
- bottom: 0.2em;
353
- border-style: inherit;
354
- border-width: inherit;
355
- border-color: transparent var(--light-alpha70);
356
- border-radius: inherit;
357
- animation: 2s rotateInner linear infinite;
358
- box-shadow: 0 0 10px 0px rgba(0, 0, 0, 0.6) inset;
359
- }
360
- &:after {
361
- content: "";
362
- position: absolute;
363
- top: 0.7em;
364
- left: 0.7em;
365
- right: 0.7em;
366
- bottom: 0.7em;
367
- border-style: inherit;
368
- border-width: inherit;
369
- border-color: transparent var(--light-alpha40);
370
- border-radius: inherit;
371
- animation: 4s rotateCenter linear infinite;
372
- }
373
- }
374
-
375
- @keyframes rotateOuter {
376
- 0% {
377
- transform: rotate(45deg);
378
- }
379
- 100% {
380
- transform: rotate(225deg);
381
- }
382
- }
383
-
384
- @keyframes rotateInner {
385
- 0% {
386
- transform: rotate(-90deg);
387
- }
388
- 100% {
389
- transform: rotate(-270deg);
390
- }
391
- }
392
-
393
- @keyframes rotateCenter {
394
- 0% {
395
- transform: rotate(0);
396
- }
397
- 100% {
398
- transform: rotate(180deg);
399
- }
400
- }
42
+ @import "typography";
43
+ @import "panel";
44
+ @import "tile";
45
+ @import "button";
46
+ @import "command";
47
+ @import "input";
48
+ @import "spinner";
package/manifest.json DELETED
@@ -1,9 +0,0 @@
1
- {
2
- "name": "Ada",
3
- "short_name": "Ada",
4
- "start_url": "/",
5
- "display": "standalone",
6
- "orientation": "any",
7
- "theme_color": "#07131d",
8
- "background_color": "#07131d"
9
- }