ada-ui 4.5.0-beta.1 → 4.5.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.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)}body{font-size:1rem;-webkit-tap-highlight-color:transparent;box-sizing:border-box;padding:.5rem}h1{font-size:3rem}.command-bar:not(.vertical),h2{font-size:2rem}.tile>header,.panel>header,h3{font-size:1.5rem}.panel>footer.command-bar,h4{font-weight:400;font-size:1.2rem}h1,.command-bar:not(.vertical),h2,.tile>header,.panel>header,h3,.panel>footer.command-bar,h4{font-weight:300;text-shadow:0 0 4px var(--light-alpha40);color:var(--fg)}h1{margin:1rem 0 2rem 0}h1.m-0{margin:0}h2{margin:1rem 0 1.5rem 0}h2.m-0{margin:0}h3{margin:.5rem 0 1.5rem 0}h3.m-0{margin:0}h4{margin:.5rem 0 .5rem 0}h4.m-0{margin:0}.tile>footer:after,.panel>footer:after,.tile>footer:before,.panel>footer:before,.tile>header:after,.panel>header:after,.tile>header:before,.panel>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}.tile,.panel{background:var(--panel-background);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}.tile>header,.panel>header{position:relative;padding:.4rem .6rem}.tile>header:before,.panel>header:before{border-width:2px 0 0 2px;border-radius:.3rem 0 0 0;left:0;top:0}.tile>header:after,.panel>header:after{border-width:2px 2px 0 0;border-radius:0 .3rem 0 0;right:0;top:0}.tile>header:empty,.panel>header:empty{padding:.2rem}.tile>article,.panel>article{z-index:1;padding:0 .6rem;overflow:auto}.tile>article::-webkit-scrollbar,.panel>article::-webkit-scrollbar{width:2px;background:transparent}.tile>article::-webkit-scrollbar-thumb,.panel>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:border-box}.tile>footer,.panel>footer{position:relative;color:var(--footer-color);padding:.4rem .6rem;font-size:.75rem;text-align:right}.tile>footer:before,.panel>footer:before{border-width:0 0 2px 2px;border-radius:0 0 0 .3rem;left:0;bottom:0}.tile>footer:after,.panel>footer:after{border-width:0 2px 2px 0;border-radius:0 0 .3rem 0;right:0;bottom:0}.tile>footer:empty,.panel>footer:empty{padding:.2rem}.panel>header.command-bar{margin:0;margin-bottom:1rem;padding-top:0;padding-bottom:0}.panel>header.command-bar:before,.panel>header.command-bar:after{border:none;height:auto}.panel>header.command-bar:before{border-radius:.3rem 0 0 0}.panel>header.command-bar:after{border-radius:0 .3rem 0 0}.panel>footer.command-bar{margin:0;margin-top:1rem;padding-top:0;padding-bottom:0;line-height:2rem;height:2rem}.panel>footer.command-bar:before,.panel>footer.command-bar:after{border:none;height:auto}.panel>footer.command-bar:before{border-radius:0 0 0 .3rem}.panel>footer.command-bar:after{border-radius:0 0 .3rem 0}.panel>footer.command-bar>.command{height:2rem;font-size:.9rem}.tile>footer:after,.tile>footer:before,.tile>header:after,.tile>header:before,.panel>header:before,.panel>header:after,.panel>footer:before,.panel>footer:after{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}.tile{background:var(--tile-background);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)}.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 10px 0 rgba(0,0,0,.4)}.tile.inset>header{text-shadow:none}.tile.inset>header:before,.tile.inset>header:after{opacity:.6}.tile.inset footer:before,.tile.inset footer:after{opacity:.6}.blubb{display:inline-grid;grid-template-columns:1fr auto;margin:.8rem;grid-auto-flow:column;align-items:stretch;column-gap:.3rem}.blubb>.tile{margin:0;border-radius:.3rem 0 0 .3rem}.blubb>.tile>header:after{border:none}.blubb>.tile>article{padding:.4rem .8rem;font-size:1.2rem}.blubb>.tile>footer:after{border:none}.blubb>aside{display:grid;grid-auto-flow:column;column-gap:.3rem}.blubb>aside>.command{background-color:var(--default-alpha40);min-width:2.5rem}.blubb>aside>.command:last-of-type{border-radius:0 .3rem .3rem 0}.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;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);border:1px solid var(--default-alpha40)}.command-bar{position:relative;display:grid;gap:.5rem;margin:.5rem}.command-bar:before,.command-bar:after{box-shadow:0 0 10px 0 rgba(0,0,0,.4);position:absolute;content:"";background:var(--default-alpha70)}.command-bar:not(.vertical){grid-auto-flow:column;text-align:center;align-items:center;line-height:3.6rem;height:3.6rem;padding-left:1.5rem;padding-right:1.5rem}.command-bar:not(.vertical):before,.command-bar:not(.vertical):after{width:1rem;top:0;bottom:0}.command-bar:not(.vertical):before{border-radius:.3rem 0 0 .3rem;left:0}.command-bar:not(.vertical):after{border-radius:0 .3rem .3rem 0;right:0}.command-bar:not(.vertical)>.command{height:3.6rem}.command-bar.vertical{grid-auto-flow:row;min-width:12rem;padding-top:1.5rem;padding-bottom:1.5rem}.command-bar.vertical:before,.command-bar.vertical:after{height:1rem;left:0;right:0}.command-bar.vertical:before{border-radius:.3rem .3rem 0 0;top:0}.command-bar.vertical:after{border-radius:0 0 .3rem .3rem;bottom:0}.command-bar.vertical>.command{min-height:3.6rem}.command{box-sizing:border-box;background-color:var(--default-alpha70);box-shadow:0 0 10px 0 rgba(0,0,0,.4)}.command:not(.spacer){min-width:6rem;display:grid;align-items:end;justify-items:end;text-align:end;font-size:1.1rem;border-style:solid;border-color:transparent;border-width:0 0 0 2px;padding:.2rem .4rem}.command:not(.spacer).small{min-width:.5rem}.command:not(.spacer).flash{animation:flash 1s ease-in-out infinite}.command:not(.spacer):focus{border-color:var(--light-alpha70)}.command:not(.spacer):active{background-color:var(--light-alpha70);animation-play-state:paused}.command.spacer{min-width:.5rem}@keyframes flash{50%{background-color:var(--light-alpha70)}}.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;pointer-events:none}.spinner{margin:.3rem;display:inline-grid;justify-items:center;align-items:center;width:1em;height:1em;position:relative;box-sizing:border-box;animation:6s .5s rotate ease-in-out alternate infinite}.spinner:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;border-style:solid;border-width:.05em;border-radius:50%;border-color:var(--light-alpha40) transparent;animation:4s .5s inset1 ease-in-out infinite;box-shadow:0px 12px 10px -12px #000a,0px -12px 10px -12px #000a}.spinner:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;border-style:solid;border-width:.05em;border-radius:50%;border-color:transparent var(--light-alpha70);animation:4s .5s inset2 ease-in-out infinite;box-shadow:12px 0px 10px -12px #000a,-12px 0px 10px -12px #000a}@keyframes rotate{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes inset1{0%{top:0;left:0;right:0;bottom:0;transform:rotate(0)}12.5%{top:.2em;left:.2em;right:.2em;bottom:.2em;transform:rotate(0)}37.5%{top:.2em;left:.2em;right:.2em;bottom:.2em;transform:rotate(180deg)}50%{top:0;left:0;right:0;bottom:0;transform:rotate(180deg)}100%{top:0;left:0;right:0;bottom:0;transform:rotate(180deg)}}@keyframes inset2{0%{top:0;left:0;right:0;bottom:0;transform:rotate(0)}50%{top:0;left:0;right:0;bottom:0;transform:rotate(0)}62.5%{top:.2em;left:.2em;right:.2em;bottom:.2em;transform:rotate(0)}87.5%{top:.2em;left:.2em;right:.2em;bottom:.2em;transform:rotate(180deg)}100%{top:0;left:0;right:0;bottom:0;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}.commands:not(.vertical),h2{font-size:2rem}.panel>header,.tile>header,h3{font-size:1.5rem}h4{font-weight:400;font-size:1.2rem}h1,.commands:not(.vertical),h2,.panel>header,.tile>header,h3,h4{font-weight:300;text-shadow:0 0 4px var(--light-alpha40);color:var(--fg)}h1{margin:1rem 0 2rem 0}h1.m-0{margin:0}h2{margin:1rem 0 1.5rem 0}h2.m-0{margin:0}h3{margin:.5rem 0 1.5rem 0}h3.m-0{margin:0}h4{margin:.5rem 0 .5rem 0}h4.m-0{margin:0}.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;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:disabled{opacity:.4;filter:saturate(0.6);cursor:default;pointer-events:none}.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);border:1px solid var(--default-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;pointer-events:none}.panel,.tile{background:var(--panel-background);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;padding:.4rem .6rem}.panel>header:before,.tile>header:before{--border-width: 2px;content:"";border-style:solid;border-color:var(--default);position:absolute;height:1rem;width:1rem;z-index:2;border-width:var(--border-width) 0 0 var(--border-width);border-radius:.3rem 0 0 0;left:0;top:0}.panel>header:after,.tile>header:after{--border-width: 2px;content:"";border-style:solid;border-color:var(--default);position:absolute;height:1rem;width:1rem;z-index:2;border-width:var(--border-width) var(--border-width) 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:border-box}.panel>footer,.tile>footer{position:relative;color:var(--footer-color);padding:.4rem .6rem;font-size:.75rem;text-align:right}.panel>footer:before,.tile>footer:before{--border-width: 2px;content:"";border-style:solid;border-color:var(--default);position:absolute;height:1rem;width:1rem;z-index:2;border-width:0 0 var(--border-width) var(--border-width);border-radius:0 0 0 .3rem;left:0;bottom:0}.panel>footer:after,.tile>footer:after{--border-width: 2px;content:"";border-style:solid;border-color:var(--default);position:absolute;height:1rem;width:1rem;z-index:2;border-width:0 var(--border-width) var(--border-width) 0;border-radius:0 0 .3rem 0;right:0;bottom:0}.panel>footer:empty,.tile>footer:empty{padding:.2rem}.commands{position:relative;display:grid;gap:6px;margin:.5rem}.commands:before,.commands:after{box-shadow:0 0 10px 0 rgba(0,0,0,.4);position:absolute;content:"";background:var(--default-alpha70)}.commands:not(.vertical){grid-auto-flow:column;text-align:center;align-items:center;line-height:3.6rem;height:3.6rem;padding-left:1.5rem;padding-right:1.5rem}.commands:not(.vertical):before,.commands:not(.vertical):after{width:1rem;top:0;bottom:0}.commands:not(.vertical):before{border-radius:.3rem 0 0 .3rem;left:0}.commands:not(.vertical):after{border-radius:0 .3rem .3rem 0;right:0}.commands:not(.vertical)>button,.commands:not(.vertical)>div{height:3.6rem}.commands.vertical{grid-auto-flow:row;min-width:12rem;padding-top:1.5rem;padding-bottom:1.5rem}.commands.vertical:before,.commands.vertical:after{height:1rem;left:0;right:0}.commands.vertical:before{border-radius:.3rem .3rem 0 0;top:0}.commands.vertical:after{border-radius:0 0 .3rem .3rem;bottom:0}.commands.vertical>button,.commands.vertical>div{min-height:3.6rem}.commands>button,.commands>div{box-sizing:border-box;background-color:var(--default-alpha70);box-shadow:0 0 10px 0 rgba(0,0,0,.4)}.commands>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;min-width:6rem;display:grid;align-items:end;justify-items:end;text-align:end;font-size:1.1rem;border-style:solid;border-color:transparent;border-width:0 0 0 2px;padding:.2rem .4rem .2rem 1rem}.commands>button:disabled{opacity:.4;filter:saturate(0.6);cursor:default;pointer-events:none}.commands>button.flash{animation:flash 1s ease-in-out infinite}.commands>button:focus{border-color:var(--light-alpha70)}.commands>button:active{background-color:var(--light-alpha70);animation-play-state:paused}.commands>div{min-width:.5rem}@keyframes flash{50%{background-color:var(--light-alpha70)}}.tile{background:var(--tile-background);margin:.8rem}.tile>header:before{--border-width: 2px;content:"";border-style:solid;border-color:var(--default);position:absolute;height:1rem;width:1rem;z-index:2;--border-width: 1px;border-color:var(--light-alpha40);height:.75rem;width:.75rem;border-width:var(--border-width) 0 0 var(--border-width);border-radius:.3rem 0 0 0;left:0;top:0}.tile>header:after{--border-width: 2px;content:"";border-style:solid;border-color:var(--default);position:absolute;height:1rem;width:1rem;z-index:2;--border-width: 1px;border-color:var(--light-alpha40);height:.75rem;width:.75rem;border-width:var(--border-width) var(--border-width) 0 0;border-radius:0 .3rem 0 0;right:0;top:0}.tile>article{padding:.4rem .8rem}.tile>footer:before{--border-width: 2px;content:"";border-style:solid;border-color:var(--default);position:absolute;height:1rem;width:1rem;z-index:2;--border-width: 1px;border-color:var(--light-alpha40);height:.75rem;width:.75rem;border-width:0 0 var(--border-width) var(--border-width);border-radius:0 0 0 .3rem;left:0;bottom:0}.tile>footer:after{--border-width: 2px;content:"";border-style:solid;border-color:var(--default);position:absolute;height:1rem;width:1rem;z-index:2;--border-width: 1px;border-color:var(--light-alpha40);height:.75rem;width:.75rem;border-width:0 var(--border-width) var(--border-width) 0;border-radius:0 0 .3rem 0;right:0;bottom:0}.tile.inset{box-shadow:inset 0 0 10px 0 rgba(0,0,0,.4)}.tile.inset>header{text-shadow:none}.tile.inset>header:before,.tile.inset>header:after{opacity:.6}.tile.inset footer:before,.tile.inset footer:after{opacity:.6}.tile-with-commands{display:inline-grid;grid-template-columns:1fr auto;align-items:stretch;column-gap:4px;position:relative;margin:.8rem}.tile-with-commands>.tile{margin:0;border-radius:.3rem 0 0 .3rem}.tile-with-commands>.tile>header:after{border:none}.tile-with-commands>.tile>article{font-size:1.2rem}.tile-with-commands>.tile>footer:after{border:none}.tile-with-commands>aside{display:grid;grid-auto-flow:column;gap:4px}.tile-with-commands>aside>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;min-width:6rem;display:grid;align-items:end;justify-items:end;text-align:end;font-size:1.1rem;border-style:solid;border-color:transparent;border-width:0 0 0 2px;padding:.2rem .4rem .2rem 1rem;font-size:.9rem;background-color:var(--default-alpha40);min-width:3rem}.tile-with-commands>aside>button:disabled{opacity:.4;filter:saturate(0.6);cursor:default;pointer-events:none}.tile-with-commands>aside>button.flash{animation:flash 1s ease-in-out infinite}.tile-with-commands>aside>button:focus{border-color:var(--light-alpha70)}.tile-with-commands>aside>button:active{background-color:var(--light-alpha70);animation-play-state:paused}.tile-with-commands>aside>button:focus{border-color:var(--light-alpha40)}.tile-with-commands>aside>button:active{background-color:var(--light-alpha40)}.tile-with-commands>aside>button:last-of-type{border-radius:0 .3rem .3rem 0}.tile-with-commands>aside.vertical{grid-auto-flow:row}.tile-with-commands>aside.vertical>button{min-width:4.5rem;min-height:3rem}.tile-with-commands>aside.vertical>button:first-of-type{border-radius:0 .3rem 0 0}.tile-with-commands>aside.vertical>button:last-of-type{border-radius:0 0 .3rem 0}.spinner{margin:.3rem;display:inline-grid;justify-items:center;align-items:center;width:1em;height:1em;position:relative;box-sizing:border-box;animation:6s .5s rotate ease-in-out alternate infinite}.spinner:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;border-style:solid;border-width:.05em;border-radius:50%;border-color:var(--light-alpha40) transparent;animation:4s .5s inset1 ease-in-out infinite;box-shadow:0px 12px 10px -12px #000a,0px -12px 10px -12px #000a}.spinner:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;border-style:solid;border-width:.05em;border-radius:50%;border-color:transparent var(--light-alpha70);animation:4s .5s inset2 ease-in-out infinite;box-shadow:12px 0px 10px -12px #000a,-12px 0px 10px -12px #000a}@keyframes rotate{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes inset1{0%{top:0;left:0;right:0;bottom:0;transform:rotate(0)}12.5%{top:.2em;left:.2em;right:.2em;bottom:.2em;transform:rotate(0)}37.5%{top:.2em;left:.2em;right:.2em;bottom:.2em;transform:rotate(180deg)}50%{top:0;left:0;right:0;bottom:0;transform:rotate(180deg)}100%{top:0;left:0;right:0;bottom:0;transform:rotate(180deg)}}@keyframes inset2{0%{top:0;left:0;right:0;bottom:0;transform:rotate(0)}50%{top:0;left:0;right:0;bottom:0;transform:rotate(0)}62.5%{top:.2em;left:.2em;right:.2em;bottom:.2em;transform:rotate(0)}87.5%{top:.2em;left:.2em;right:.2em;bottom:.2em;transform:rotate(180deg)}100%{top:0;left:0;right:0;bottom:0;transform:rotate(180deg)}}
package/index.html CHANGED
@@ -46,63 +46,50 @@
46
46
 
47
47
  <body style="display: grid; grid: 'cmd-v main' 1fr 'cmd cmd' auto / auto 1fr">
48
48
  <div
49
- class="command-bar vertical"
49
+ class="commands vertical"
50
50
  style="grid-area: cmd-v; grid-template-rows: auto auto 1fr"
51
51
  >
52
- <button class="command">Command</button>
53
- <button class="command shade1">Second Command</button>
54
- <button class="command shade2">Third Command</button>
52
+ <button>Command</button>
53
+ <button class="shade1">Second Command</button>
54
+ <button class="shade2">Third Command</button>
55
+ <button class="accent">Special</button>
56
+ <button class="warn">Warn</button>
55
57
  </div>
56
58
  <div class="panel" style="grid-area: main">
57
- <header
58
- class="command-bar"
59
- style="grid-template-columns: repeat(3, 1fr) auto"
60
- >
61
- <button class="command">Command</button>
62
- <button
63
- class="command shade1"
64
- style="justify-items: center; align-items: center"
65
- >
66
- <div class="spinner" style="font-size: 30px"></div>
67
- </button>
68
- <button class="command shade2">Third Command</button>
69
- Header
70
- </header>
59
+ <header>Header</header>
71
60
  <article style="display: grid; grid-auto-rows: max-content">
72
61
  <div class="panel">
73
62
  <header>Lab</header>
74
- <article style="display: grid; grid-auto-flow: column">
75
- <div class="blubb">
76
- <div class="tile">
77
- <header></header>
78
- <article>Tile Content</article>
79
- <footer></footer>
80
- </div>
81
- <aside>
82
- <button class="command shade2"></button>
83
- <button style="width: 4rem" class="command"></button>
84
- </aside>
85
- </div>
86
- <div class="blubb">
63
+ <article
64
+ style="
65
+ display: grid;
66
+ grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
67
+ align-content: start;
68
+ align-items: start;
69
+ "
70
+ >
71
+ <div class="tile-with-commands">
87
72
  <div class="tile">
88
73
  <header></header>
89
74
  <article>Tile Content</article>
90
75
  <footer></footer>
91
76
  </div>
92
- <aside>
93
- <button class="command shade2"></button>
94
- <button style="width: 4rem" class="command"></button>
77
+ <aside class="vertical">
78
+ <button></button>
79
+ <button class="shade2"></button>
80
+ <button>Top</button>
81
+ <button>Cut</button>
95
82
  </aside>
96
83
  </div>
97
- <div class="blubb">
84
+ <div class="tile-with-commands">
98
85
  <div class="tile">
99
86
  <header></header>
100
87
  <article>Tile Content</article>
101
88
  <footer></footer>
102
89
  </div>
103
90
  <aside>
104
- <button class="command shade2"></button>
105
- <button style="width: 4rem" class="command"></button>
91
+ <button class="shade2"></button>
92
+ <button style="width: 4rem"></button>
106
93
  </aside>
107
94
  </div>
108
95
  </article>
@@ -233,31 +220,22 @@
233
220
  <footer></footer>
234
221
  </div>
235
222
  </article>
236
- <footer
237
- class="command-bar"
238
- style="grid-template-columns: repeat(3, 1fr) auto"
239
- >
240
- <button class="command">Command</button>
241
- <button class="command shade1">Second Command</button>
242
- <button class="command shade2">Third Command</button>
243
- Footer
244
- </footer>
223
+ <footer>Footer</footer>
245
224
  </div>
246
225
  <div
247
- class="command-bar"
226
+ class="commands"
248
227
  style="
249
228
  grid-area: cmd;
250
- grid-template-columns: repeat(2, auto) 12rem auto 1fr auto auto 1fr auto;
229
+ grid-template-columns: auto 12rem auto auto 1fr auto;
251
230
  "
252
231
  >
253
- <button class="command">Command</button>
254
- <button class="shade1 command">Command</button>
255
- <button class="shade2 command">Command and sth more looong</button>
256
- <button class="accent command">Special Command</button>
257
- <div class="command spacer"></div>
258
- <button class="warn command flash">Confirm Deletion</button>
259
- <button disabled class="warn command">Disabled</button>
260
- <div class="command spacer"></div>
232
+ <button style="justify-items: center; align-items: center">
233
+ <div class="spinner" style="font-size: 30px"></div>
234
+ </button>
235
+ <button class="shade2">Command and sth more looong</button>
236
+ <button class="warn flash">Confirm Deletion</button>
237
+ <button disabled class="warn">Disabled</button>
238
+ <div></div>
261
239
  Commands
262
240
  </div>
263
241
  </body>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ada-ui",
3
- "version": "4.5.0-beta.1",
3
+ "version": "4.5.0",
4
4
  "scripts": {
5
5
  "dev": "tmux splitw -d npm run build:dev && tmux splitw -d npm run start:dev",
6
6
  "start:dev": "alive-server .",
package/scss/_button.scss CHANGED
@@ -1,4 +1,4 @@
1
- %button {
1
+ @mixin button {
2
2
  overflow: hidden;
3
3
  outline: none;
4
4
  color: var(--fg);
@@ -17,7 +17,7 @@
17
17
  }
18
18
 
19
19
  .button {
20
- @extend %button;
20
+ @include button;
21
21
  white-space: nowrap;
22
22
  text-overflow: ellipsis;
23
23
  border-radius: 0.3rem;
@@ -1,7 +1,34 @@
1
- .command-bar {
1
+ @mixin command {
2
+ @include button;
3
+ min-width: 6rem;
4
+ display: grid;
5
+ align-items: end;
6
+ justify-items: end;
7
+ text-align: end;
8
+ font-size: 1.1rem;
9
+ border-style: solid;
10
+ border-color: transparent;
11
+ border-width: 0 0 0 2px;
12
+ padding: 0.2rem 0.4rem 0.2rem 1rem;
13
+
14
+ &.flash {
15
+ animation: flash 1s ease-in-out infinite;
16
+ }
17
+
18
+ &:focus {
19
+ border-color: var(--light-alpha70);
20
+ }
21
+
22
+ &:active {
23
+ background-color: var(--light-alpha70);
24
+ animation-play-state: paused;
25
+ }
26
+ }
27
+
28
+ .commands {
2
29
  position: relative;
3
30
  display: grid;
4
- gap: 0.5rem;
31
+ gap: 6px;
5
32
  margin: 0.5rem;
6
33
 
7
34
  &:before,
@@ -38,7 +65,8 @@
38
65
  right: 0;
39
66
  }
40
67
 
41
- & > .command {
68
+ > button,
69
+ > div {
42
70
  height: 3.6rem;
43
71
  }
44
72
  }
@@ -65,49 +93,24 @@
65
93
  bottom: 0;
66
94
  }
67
95
 
68
- & > .command {
96
+ > button,
97
+ > div {
69
98
  min-height: 3.6rem;
70
99
  }
71
100
  }
72
- }
73
-
74
- .command {
75
- box-sizing: border-box;
76
- background-color: var(--default-alpha70);
77
- box-shadow: $box-shadow;
78
-
79
- &:not(.spacer) {
80
- @extend %button;
81
- min-width: 6rem;
82
- display: grid;
83
- align-items: end;
84
- justify-items: end;
85
- text-align: end;
86
- font-size: 1.1rem;
87
- border-style: solid;
88
- border-color: transparent;
89
- border-width: 0 0 0 2px;
90
- padding: 0.2rem 0.4rem;
91
-
92
- &.small {
93
- min-width: 0.5rem;
94
- }
95
-
96
- &.flash {
97
- animation: flash 1s ease-in-out infinite;
98
- }
99
101
 
100
- &:focus {
101
- border-color: var(--light-alpha70);
102
- }
102
+ > button,
103
+ > div {
104
+ box-sizing: border-box;
105
+ background-color: var(--default-alpha70);
106
+ box-shadow: $box-shadow;
107
+ }
103
108
 
104
- &:active {
105
- background-color: var(--light-alpha70);
106
- animation-play-state: paused;
107
- }
109
+ > button {
110
+ @include command;
108
111
  }
109
112
 
110
- &.spacer {
113
+ > div {
111
114
  min-width: 0.5rem;
112
115
  }
113
116
  }
package/scss/_corner.scss CHANGED
@@ -1,4 +1,6 @@
1
- %corner {
1
+ @mixin corner($location, $style: "default") {
2
+ --border-width: 2px;
3
+
2
4
  content: "";
3
5
  border-style: solid;
4
6
  border-color: var(--default);
@@ -6,11 +8,40 @@
6
8
  height: 1rem;
7
9
  width: 1rem;
8
10
  z-index: 2;
9
- }
10
11
 
11
- %corner-light {
12
- @extend %corner;
13
- border-color: var(--light-alpha40);
14
- height: 0.75rem;
15
- width: 0.75rem;
12
+ @if $style == "light" {
13
+ --border-width: 1px;
14
+
15
+ border-color: var(--light-alpha40);
16
+ height: 0.75rem;
17
+ width: 0.75rem;
18
+ }
19
+
20
+ @if $location == "top-left" {
21
+ border-width: var(--border-width) 0 0 var(--border-width);
22
+ border-radius: 0.3rem 0 0 0;
23
+ left: 0;
24
+ top: 0;
25
+ }
26
+
27
+ @if $location == "top-right" {
28
+ border-width: var(--border-width) var(--border-width) 0 0;
29
+ border-radius: 0 0.3rem 0 0;
30
+ right: 0;
31
+ top: 0;
32
+ }
33
+
34
+ @if $location == "bottom-left" {
35
+ border-width: 0 0 var(--border-width) var(--border-width);
36
+ border-radius: 0 0 0 0.3rem;
37
+ left: 0;
38
+ bottom: 0;
39
+ }
40
+
41
+ @if $location == "bottom-right" {
42
+ border-width: 0 var(--border-width) var(--border-width) 0;
43
+ border-radius: 0 0 0.3rem 0;
44
+ right: 0;
45
+ bottom: 0;
46
+ }
16
47
  }
package/scss/_panel.scss CHANGED
@@ -1,6 +1,6 @@
1
1
  @import "corner";
2
2
 
3
- %panel {
3
+ .panel {
4
4
  background: var(--panel-background);
5
5
  box-shadow: $box-shadow;
6
6
  border-radius: 0.3rem;
@@ -15,18 +15,10 @@
15
15
  padding: 0.4rem 0.6rem;
16
16
 
17
17
  &:before {
18
- @extend %corner;
19
- border-width: 2px 0 0 2px;
20
- border-radius: 0.3rem 0 0 0;
21
- left: 0;
22
- top: 0;
18
+ @include corner("top-left");
23
19
  }
24
20
  &:after {
25
- @extend %corner;
26
- border-width: 2px 2px 0 0;
27
- border-radius: 0 0.3rem 0 0;
28
- right: 0;
29
- top: 0;
21
+ @include corner("top-right");
30
22
  }
31
23
 
32
24
  &:empty {
@@ -62,18 +54,10 @@
62
54
  text-align: right;
63
55
 
64
56
  &:before {
65
- @extend %corner;
66
- border-width: 0 0 2px 2px;
67
- border-radius: 0 0 0 0.3rem;
68
- left: 0;
69
- bottom: 0;
57
+ @include corner("bottom-left");
70
58
  }
71
59
  &:after {
72
- @extend %corner;
73
- border-width: 0 2px 2px 0;
74
- border-radius: 0 0 0.3rem 0;
75
- right: 0;
76
- bottom: 0;
60
+ @include corner("bottom-right");
77
61
  }
78
62
 
79
63
  &:empty {
@@ -81,58 +65,3 @@
81
65
  }
82
66
  }
83
67
  }
84
-
85
- .panel {
86
- @extend %panel;
87
-
88
- > header {
89
- &.command-bar {
90
- margin: 0;
91
- margin-bottom: 1rem;
92
- padding-top: 0;
93
- padding-bottom: 0;
94
-
95
- &:before,
96
- &:after {
97
- border: none;
98
- height: auto;
99
- }
100
-
101
- &:before {
102
- border-radius: 0.3rem 0 0 0;
103
- }
104
- &:after {
105
- border-radius: 0 0.3rem 0 0;
106
- }
107
- }
108
- }
109
- > footer {
110
- &.command-bar {
111
- @extend %h4;
112
- margin: 0;
113
- margin-top: 1rem;
114
- padding-top: 0;
115
- padding-bottom: 0;
116
- line-height: 2rem;
117
- height: 2rem;
118
-
119
- &:before,
120
- &:after {
121
- border: none;
122
- height: auto;
123
- }
124
-
125
- &:before {
126
- border-radius: 0 0 0 0.3rem;
127
- }
128
- &:after {
129
- border-radius: 0 0 0.3rem 0;
130
- }
131
-
132
- & > .command {
133
- height: 2rem;
134
- font-size: 0.9rem;
135
- }
136
- }
137
- }
138
- }
package/scss/_tile.scss CHANGED
@@ -1,33 +1,29 @@
1
1
  @import "corner";
2
2
 
3
3
  .tile {
4
- @extend %panel;
4
+ @extend .panel;
5
5
  background: var(--tile-background);
6
6
  margin: 0.8rem;
7
7
 
8
8
  > header {
9
9
  &:before {
10
- @extend %corner-light;
11
- border-width: 1px 0 0 1px;
10
+ @include corner("top-left", "light");
12
11
  }
13
12
  &:after {
14
- @extend %corner-light;
15
- border-width: 1px 1px 0 0;
13
+ @include corner("top-right", "light");
16
14
  }
17
15
  }
18
16
 
19
17
  > article {
20
- color: var(--fg);
18
+ padding: 0.4rem 0.8rem;
21
19
  }
22
20
 
23
21
  > footer {
24
22
  &:before {
25
- @extend %corner-light;
26
- border-width: 0 0 1px 1px;
23
+ @include corner("bottom-left", "light");
27
24
  }
28
25
  &:after {
29
- @extend %corner-light;
30
- border-width: 0 1px 1px 0;
26
+ @include corner("bottom-right", "light");
31
27
  }
32
28
  }
33
29
 
@@ -51,13 +47,13 @@
51
47
  }
52
48
  }
53
49
 
54
- .blubb {
50
+ .tile-with-commands {
55
51
  display: inline-grid;
56
52
  grid-template-columns: 1fr auto;
57
- margin: 0.8rem;
58
- grid-auto-flow: column;
59
53
  align-items: stretch;
60
- column-gap: 0.3rem;
54
+ column-gap: 4px;
55
+ position: relative;
56
+ margin: 0.8rem;
61
57
 
62
58
  > .tile {
63
59
  margin: 0;
@@ -70,7 +66,6 @@
70
66
  }
71
67
 
72
68
  > article {
73
- padding: 0.4rem 0.8rem;
74
69
  font-size: 1.2rem;
75
70
  }
76
71
 
@@ -80,19 +75,44 @@
80
75
  }
81
76
  }
82
77
  }
83
-
84
78
  > aside {
85
79
  display: grid;
86
80
  grid-auto-flow: column;
87
- column-gap: 0.3rem;
81
+ gap: 4px;
88
82
 
89
- > .command {
83
+ > button {
84
+ @include command;
85
+ font-size: 0.9rem;
90
86
  background-color: var(--default-alpha40);
91
- min-width: 2.5rem;
87
+ min-width: 3rem;
88
+
89
+ &:focus {
90
+ border-color: var(--light-alpha40);
91
+ }
92
+
93
+ &:active {
94
+ background-color: var(--light-alpha40);
95
+ }
92
96
 
93
97
  &:last-of-type {
94
98
  border-radius: 0 0.3rem 0.3rem 0;
95
99
  }
96
100
  }
101
+
102
+ &.vertical {
103
+ grid-auto-flow: row;
104
+
105
+ > button {
106
+ min-width: 4.5rem;
107
+ min-height: 3rem;
108
+
109
+ &:first-of-type {
110
+ border-radius: 0 0.3rem 0 0;
111
+ }
112
+ &:last-of-type {
113
+ border-radius: 0 0 0.3rem 0;
114
+ }
115
+ }
116
+ }
97
117
  }
98
118
  }
package/scss/ada.scss CHANGED
@@ -40,9 +40,9 @@ body {
40
40
  }
41
41
 
42
42
  @import "typography";
43
- @import "panel";
44
- @import "tile";
45
43
  @import "button";
46
- @import "command";
47
44
  @import "input";
45
+ @import "panel";
46
+ @import "commands";
47
+ @import "tile";
48
48
  @import "spinner";