ada-ui 4.5.0-beta.2 → 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}.blubb.tile:after,.blubb.tile:before,.tile>footer:after,.panel>footer:after,.tile>footer:before,.panel>footer:before,.tile>header:after,.panel>header:after,.tile>header:before,.panel>header:before{--border-width: 2px;content:"";border-style:solid;border-color:var(--default);position:absolute;height:1rem;width:1rem;z-index:2}.blubb.tile:after,.blubb.tile:before,.tile>footer:after,.panel>footer.light:after,.tile>footer:before,.panel>footer.light:before,.tile>header:after,.panel>header.light:after,.tile>header:before,.panel>header.light:before{--border-width: 1px;border-color:var(--light-alpha40);height:.75rem;width:.75rem}.top-left.blubb.tile:after,.blubb.tile:before,.tile>footer.top-left:after,.panel>footer.top-left:after,.tile>footer.top-left:before,.panel>footer.top-left:before,.tile>header.top-left:after,.panel>header.top-left:after,.tile>header:before,.panel>header:before{border-width:var(--border-width) 0 0 var(--border-width);border-radius:.3rem 0 0 0;left:0;top:0}.top-right.blubb.tile:after,.top-right.blubb.tile:before,.tile>footer.top-right:after,.panel>footer.top-right:after,.tile>footer.top-right:before,.panel>footer.top-right:before,.tile>header:after,.panel>header:after,.tile>header.top-right:before,.panel>header.top-right:before{border-width:var(--border-width) var(--border-width) 0 0;border-radius:0 .3rem 0 0;right:0;top:0}.blubb.tile:after,.bottom-left.blubb.tile:before,.tile>footer.bottom-left:after,.panel>footer.bottom-left:after,.tile>footer:before,.panel>footer:before,.tile>header.bottom-left:after,.panel>header.bottom-left:after,.tile>header.bottom-left:before,.panel>header.bottom-left:before{border-width:0 0 var(--border-width) var(--border-width);border-radius:0 0 0 .3rem;left:0;bottom:0}.bottom-right.blubb.tile:after,.bottom-right.blubb.tile:before,.tile>footer:after,.panel>footer:after,.tile>footer.bottom-right:before,.panel>footer.bottom-right:before,.tile>header.bottom-right:after,.panel>header.bottom-right:after,.tile>header.bottom-right:before,.panel>header.bottom-right:before{border-width:0 var(--border-width) var(--border-width) 0;border-radius:0 0 .3rem 0;right:0;bottom:0}.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: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: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}.blubb.tile:after,.blubb.tile:before,.tile>header:before,.tile>header:after,.tile>footer:before,.tile>footer:after,.panel>header:before,.panel>header:after,.panel>footer:before,.panel>footer:after{--border-width: 2px;content:"";border-style:solid;border-color:var(--default);position:absolute;height:1rem;width:1rem;z-index:2}.blubb.tile:after,.blubb.tile:before,.tile>header:before,.tile>header:after,.tile>footer:before,.tile>footer:after,.panel>header.light:before,.panel>header.light:after,.panel>footer.light:before,.panel>footer.light:after{--border-width: 1px;border-color:var(--light-alpha40);height:.75rem;width:.75rem}.top-left.blubb.tile:after,.blubb.tile:before,.tile>header.top-left:after,.tile>footer.top-left:before,.tile>footer.top-left:after,.panel>header.top-left:after,.panel>footer.top-left:before,.panel>footer.top-left:after,.tile>header:before,.panel>header:before{border-width:var(--border-width) 0 0 var(--border-width);border-radius:.3rem 0 0 0;left:0;top:0}.top-right.blubb.tile:after,.top-right.blubb.tile:before,.tile>header.top-right:before,.tile>footer.top-right:before,.tile>footer.top-right:after,.panel>header.top-right:before,.panel>footer.top-right:before,.panel>footer.top-right:after,.tile>header:after,.panel>header:after{border-width:var(--border-width) var(--border-width) 0 0;border-radius:0 .3rem 0 0;right:0;top:0}.blubb.tile:after,.bottom-left.blubb.tile:before,.tile>header.bottom-left:before,.tile>header.bottom-left:after,.tile>footer.bottom-left:after,.panel>header.bottom-left:before,.panel>header.bottom-left:after,.panel>footer.bottom-left:after,.tile>footer:before,.panel>footer:before{border-width:0 0 var(--border-width) var(--border-width);border-radius:0 0 0 .3rem;left:0;bottom:0}.bottom-right.blubb.tile:after,.bottom-right.blubb.tile:before,.tile>header.bottom-right:before,.tile>header.bottom-right:after,.tile>footer.bottom-right:before,.panel>header.bottom-right:before,.panel>header.bottom-right:after,.panel>footer.bottom-right:before,.tile>footer:after,.panel>footer:after{border-width:0 var(--border-width) var(--border-width) 0;border-radius:0 0 .3rem 0;right:0;bottom:0}.tile{background:var(--tile-background);margin:.8rem}.tile>article{color:var(--fg)}.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.tile{display:inline-grid;align-items:stretch;grid-template-columns:1fr auto;position:relative}.blubb.tile>article{padding:.8rem;font-size:1.2rem}.blubb.tile>aside{display:grid;grid-auto-flow:column;column-gap:.5rem}.blubb.tile>aside>.command{min-width:2.5rem}.blubb.tile>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,37 +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>
75
- <div class="tile blubb">
76
- <article>Tile Content</article>
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">
72
+ <div class="tile">
73
+ <header></header>
74
+ <article>Tile Content</article>
75
+ <footer></footer>
76
+ </div>
77
+ <aside class="vertical">
78
+ <button></button>
79
+ <button class="shade2"></button>
80
+ <button>Top</button>
81
+ <button>Cut</button>
82
+ </aside>
83
+ </div>
84
+ <div class="tile-with-commands">
85
+ <div class="tile">
86
+ <header></header>
87
+ <article>Tile Content</article>
88
+ <footer></footer>
89
+ </div>
77
90
  <aside>
78
- <button class="command shade2"></button>
79
- <button style="width: 4rem" class="command"></button>
91
+ <button class="shade2"></button>
92
+ <button style="width: 4rem"></button>
80
93
  </aside>
81
94
  </div>
82
95
  </article>
@@ -207,31 +220,22 @@
207
220
  <footer></footer>
208
221
  </div>
209
222
  </article>
210
- <footer
211
- class="command-bar"
212
- style="grid-template-columns: repeat(3, 1fr) auto"
213
- >
214
- <button class="command">Command</button>
215
- <button class="command shade1">Second Command</button>
216
- <button class="command shade2">Third Command</button>
217
- Footer
218
- </footer>
223
+ <footer>Footer</footer>
219
224
  </div>
220
225
  <div
221
- class="command-bar"
226
+ class="commands"
222
227
  style="
223
228
  grid-area: cmd;
224
- grid-template-columns: repeat(2, auto) 12rem auto 1fr auto auto 1fr auto;
229
+ grid-template-columns: auto 12rem auto auto 1fr auto;
225
230
  "
226
231
  >
227
- <button class="command">Command</button>
228
- <button class="shade1 command">Command</button>
229
- <button class="shade2 command">Command and sth more looong</button>
230
- <button class="accent command">Special Command</button>
231
- <div class="command spacer"></div>
232
- <button class="warn command flash">Confirm Deletion</button>
233
- <button disabled class="warn command">Disabled</button>
234
- <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>
235
239
  Commands
236
240
  </div>
237
241
  </body>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ada-ui",
3
- "version": "4.5.0-beta.2",
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,4 @@
1
- %corner {
1
+ @mixin corner($location, $style: "default") {
2
2
  --border-width: 2px;
3
3
 
4
4
  content: "";
@@ -9,7 +9,7 @@
9
9
  width: 1rem;
10
10
  z-index: 2;
11
11
 
12
- &.light {
12
+ @if $style == "light" {
13
13
  --border-width: 1px;
14
14
 
15
15
  border-color: var(--light-alpha40);
@@ -17,28 +17,28 @@
17
17
  width: 0.75rem;
18
18
  }
19
19
 
20
- &.top-left {
20
+ @if $location == "top-left" {
21
21
  border-width: var(--border-width) 0 0 var(--border-width);
22
22
  border-radius: 0.3rem 0 0 0;
23
23
  left: 0;
24
24
  top: 0;
25
25
  }
26
26
 
27
- &.top-right {
27
+ @if $location == "top-right" {
28
28
  border-width: var(--border-width) var(--border-width) 0 0;
29
29
  border-radius: 0 0.3rem 0 0;
30
30
  right: 0;
31
31
  top: 0;
32
32
  }
33
33
 
34
- &.bottom-left {
34
+ @if $location == "bottom-left" {
35
35
  border-width: 0 0 var(--border-width) var(--border-width);
36
36
  border-radius: 0 0 0 0.3rem;
37
37
  left: 0;
38
38
  bottom: 0;
39
39
  }
40
40
 
41
- &.bottom-right {
41
+ @if $location == "bottom-right" {
42
42
  border-width: 0 var(--border-width) var(--border-width) 0;
43
43
  border-radius: 0 0 0.3rem 0;
44
44
  right: 0;
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,10 +15,10 @@
15
15
  padding: 0.4rem 0.6rem;
16
16
 
17
17
  &:before {
18
- @extend %corner, .top-left;
18
+ @include corner("top-left");
19
19
  }
20
20
  &:after {
21
- @extend %corner, .top-right;
21
+ @include corner("top-right");
22
22
  }
23
23
 
24
24
  &:empty {
@@ -54,10 +54,10 @@
54
54
  text-align: right;
55
55
 
56
56
  &:before {
57
- @extend %corner, .bottom-left;
57
+ @include corner("bottom-left");
58
58
  }
59
59
  &:after {
60
- @extend %corner, .bottom-right;
60
+ @include corner("bottom-right");
61
61
  }
62
62
 
63
63
  &:empty {
@@ -65,58 +65,3 @@
65
65
  }
66
66
  }
67
67
  }
68
-
69
- .panel {
70
- @extend %panel;
71
-
72
- > header {
73
- &.command-bar {
74
- margin: 0;
75
- margin-bottom: 1rem;
76
- padding-top: 0;
77
- padding-bottom: 0;
78
-
79
- &:before,
80
- &:after {
81
- border: none;
82
- height: auto;
83
- }
84
-
85
- &:before {
86
- border-radius: 0.3rem 0 0 0;
87
- }
88
- &:after {
89
- border-radius: 0 0.3rem 0 0;
90
- }
91
- }
92
- }
93
- > footer {
94
- &.command-bar {
95
- @extend %h4;
96
- margin: 0;
97
- margin-top: 1rem;
98
- padding-top: 0;
99
- padding-bottom: 0;
100
- line-height: 2rem;
101
- height: 2rem;
102
-
103
- &:before,
104
- &:after {
105
- border: none;
106
- height: auto;
107
- }
108
-
109
- &:before {
110
- border-radius: 0 0 0 0.3rem;
111
- }
112
- &:after {
113
- border-radius: 0 0 0.3rem 0;
114
- }
115
-
116
- & > .command {
117
- height: 2rem;
118
- font-size: 0.9rem;
119
- }
120
- }
121
- }
122
- }
package/scss/_tile.scss CHANGED
@@ -1,29 +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 .light;
10
+ @include corner("top-left", "light");
11
11
  }
12
12
  &:after {
13
- @extend .light;
13
+ @include corner("top-right", "light");
14
14
  }
15
15
  }
16
16
 
17
17
  > article {
18
- color: var(--fg);
18
+ padding: 0.4rem 0.8rem;
19
19
  }
20
20
 
21
21
  > footer {
22
22
  &:before {
23
- @extend .light;
23
+ @include corner("bottom-left", "light");
24
24
  }
25
25
  &:after {
26
- @extend .light;
26
+ @include corner("bottom-right", "light");
27
27
  }
28
28
  }
29
29
 
@@ -47,37 +47,70 @@
47
47
  }
48
48
  }
49
49
 
50
- .blubb {
51
- &.tile {
52
- display: inline-grid;
53
- align-items: stretch;
54
- grid-template-columns: 1fr auto;
55
- position: relative;
50
+ .tile-with-commands {
51
+ display: inline-grid;
52
+ grid-template-columns: 1fr auto;
53
+ align-items: stretch;
54
+ column-gap: 4px;
55
+ position: relative;
56
+ margin: 0.8rem;
56
57
 
57
- &:before {
58
- @extend %corner, .light, .top-left;
59
- }
58
+ > .tile {
59
+ margin: 0;
60
+ border-radius: 0.3rem 0 0 0.3rem;
60
61
 
61
- &:after {
62
- @extend %corner, .light, .bottom-left;
62
+ > header {
63
+ &:after {
64
+ border: none;
65
+ }
63
66
  }
64
67
 
65
68
  > article {
66
- padding: 0.8rem;
67
69
  font-size: 1.2rem;
68
70
  }
69
71
 
70
- > aside {
71
- display: grid;
72
- grid-auto-flow: column;
73
- column-gap: 0.5rem;
72
+ > footer {
73
+ &:after {
74
+ border: none;
75
+ }
76
+ }
77
+ }
78
+ > aside {
79
+ display: grid;
80
+ grid-auto-flow: column;
81
+ gap: 4px;
74
82
 
75
- > .command {
76
- //background-color: var(--default-alpha40);
77
- min-width: 2.5rem;
83
+ > button {
84
+ @include command;
85
+ font-size: 0.9rem;
86
+ background-color: var(--default-alpha40);
87
+ min-width: 3rem;
78
88
 
89
+ &:focus {
90
+ border-color: var(--light-alpha40);
91
+ }
92
+
93
+ &:active {
94
+ background-color: var(--light-alpha40);
95
+ }
96
+
97
+ &:last-of-type {
98
+ border-radius: 0 0.3rem 0.3rem 0;
99
+ }
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
+ }
79
112
  &:last-of-type {
80
- border-radius: 0 0.3rem 0.3rem 0;
113
+ border-radius: 0 0 0.3rem 0;
81
114
  }
82
115
  }
83
116
  }
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";