diff --git a/dist/shoelace.css b/dist/shoelace.css index 5a9ac9f30..18c6fdd3f 100644 --- a/dist/shoelace.css +++ b/dist/shoelace.css @@ -14,11 +14,13 @@ /*! Badges */.badge{font-size:.8em;color:#fff;background-color:#0074d9;border-radius:1em;padding:.2em .6em;vertical-align:baseline;display:inline-block;-webkit-transition:all .1s;transition:all .1s}.badge:empty{display:none}.badge.badge-secondary{color:#fff;background-color:#aaa}.badge.badge-success{color:#fff;background-color:#2ecc40}.badge.badge-info{color:#fff;background-color:#39cccc}.badge.badge-warning{color:#fff;background-color:#ff851b}.badge.badge-danger{color:#fff;background-color:#ff4136}.badge.badge-light{color:#111;background-color:#fff}.badge.badge-dark{color:#fff;background-color:#111}a.badge:hover{color:#fff;background-color:#0068c3;text-decoration:none}a.badge:focus{outline:none;-webkit-box-shadow:0 0 0 2px rgba(0,116,217,.5);box-shadow:0 0 0 2px rgba(0,116,217,.5)}a.badge.badge-secondary:hover{color:#fff;background-color:#999}a.badge.badge-secondary:focus{-webkit-box-shadow:0 0 0 2px hsla(0,0%,67%,.5);box-shadow:0 0 0 2px hsla(0,0%,67%,.5)}a.badge.badge-success:hover{color:#fff;background-color:#29b83a}a.badge.badge-success:focus{-webkit-box-shadow:0 0 0 2px rgba(46,204,64,.5);box-shadow:0 0 0 2px rgba(46,204,64,.5)}a.badge.badge-info:hover{color:#fff;background-color:#33b8b8}a.badge.badge-info:focus{-webkit-box-shadow:0 0 0 2px rgba(57,204,204,.5);box-shadow:0 0 0 2px rgba(57,204,204,.5)}a.badge.badge-warning:hover{color:#fff;background-color:#e67818}a.badge.badge-warning:focus{-webkit-box-shadow:0 0 0 2px rgba(255,133,27,.5);box-shadow:0 0 0 2px rgba(255,133,27,.5)}a.badge.badge-danger:hover{color:#fff;background-color:#e63b31}a.badge.badge-danger:focus{-webkit-box-shadow:0 0 0 2px rgba(255,65,54,.5);box-shadow:0 0 0 2px rgba(255,65,54,.5)}a.badge.badge-light:hover{color:#111;background-color:#e6e6e6}a.badge.badge-light:focus{-webkit-box-shadow:0 0 0 2px hsla(0,0%,100%,.5);box-shadow:0 0 0 2px hsla(0,0%,100%,.5)}a.badge.badge-dark:hover{color:#fff;background-color:#292929}a.badge.badge-dark:focus{-webkit-box-shadow:0 0 0 2px hsla(0,0%,7%,.5);box-shadow:0 0 0 2px hsla(0,0%,7%,.5)} -/*! Buttons */.button,button{font-family:inherit;font-size:1rem;font-weight:inherit;text-align:center;text-decoration:none;color:#fff;background-color:#0074d9;border-radius:.25rem;border:1px solid #0074d9;border-top-color:#1982dd;border-bottom-color:#0068c3;height:2.25rem;line-height:calc(2.25rem - 2px);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap;padding:0 .75em;cursor:pointer;display:inline-block;-webkit-transition:all .1s;transition:all .1s}.button:hover,button:hover{color:#fff}.button:hover:not(:disabled):not(.disabled),button:hover:not(:disabled):not(.disabled){text-decoration:none;background-color:#0068c3;border-color:#0068c3;border-top-color:#0074d9;border-bottom-color:#005dae}.button.active:not(:disabled):not(.disabled),.button:active:not(:disabled):not(.disabled),button.active:not(:disabled):not(.disabled),button:active:not(:disabled):not(.disabled){background-color:#0068c3;border-color:#0068c3;border-top-color:#005dae;border-bottom-color:#0068c3}.button:focus:not(:disabled):not(.disabled),button:focus:not(:disabled):not(.disabled){outline:none;-webkit-box-shadow:0 0 0 2px rgba(0,116,217,.5);box-shadow:0 0 0 2px rgba(0,116,217,.5)}.button.disabled,.button:disabled,button.disabled,button:disabled{text-decoration:none;opacity:.5;cursor:not-allowed}.button.button-xs,button.button-xs{font-size:.7rem;height:1.25rem;line-height:calc(1.25rem - 2px)}.button.button-sm,button.button-sm{font-size:.8rem;height:1.75rem;line-height:calc(1.75rem - 2px)}.button.button-lg,button.button-lg{font-size:1.25rem;height:2.75rem;line-height:calc(2.75rem - 2px)}.button.button-xl,button.button-xl{font-size:1.5rem;height:3.25rem;line-height:calc(3.25rem - 2px)}.button.button-secondary,button.button-secondary{color:#fff;background-color:#aaa;border-color:#aaa;border-top-color:#b3b3b3;border-bottom-color:#999}.button.button-secondary:hover:not(:disabled):not(.disabled),button.button-secondary:hover:not(:disabled):not(.disabled){color:#fff;background-color:#999;border-color:#999;border-top-color:#aaa;border-bottom-color:#888}.button.button-secondary.active:not(:disabled):not(.disabled),.button.button-secondary:active:not(:disabled):not(.disabled),button.button-secondary.active:not(:disabled):not(.disabled),button.button-secondary:active:not(:disabled):not(.disabled){background-color:#999;border-color:#999;border-top-color:#888;border-bottom-color:#999}.button.button-secondary:focus:not(:disabled):not(.disabled),button.button-secondary:focus:not(:disabled):not(.disabled){outline:none;-webkit-box-shadow:0 0 0 2px hsla(0,0%,67%,.5);box-shadow:0 0 0 2px hsla(0,0%,67%,.5)}.button.button-success,button.button-success{color:#fff;background-color:#2ecc40;border-color:#2ecc40;border-top-color:#43d153;border-bottom-color:#29b83a}.button.button-success:hover:not(:disabled):not(.disabled),button.button-success:hover:not(:disabled):not(.disabled){color:#fff;background-color:#29b83a;border-color:#29b83a;border-top-color:#2ecc40;border-bottom-color:#25a333}.button.button-success.active:not(:disabled):not(.disabled),.button.button-success:active:not(:disabled):not(.disabled),button.button-success.active:not(:disabled):not(.disabled),button.button-success:active:not(:disabled):not(.disabled){background-color:#29b83a;border-color:#29b83a;border-top-color:#25a333;border-bottom-color:#29b83a}.button.button-success:focus:not(:disabled):not(.disabled),button.button-success:focus:not(:disabled):not(.disabled){outline:none;-webkit-box-shadow:0 0 0 2px rgba(46,204,64,.5);box-shadow:0 0 0 2px rgba(46,204,64,.5)}.button.button-info,button.button-info{color:#fff;background-color:#39cccc;border-color:#39cccc;border-top-color:#4dd1d1;border-bottom-color:#33b8b8}.button.button-info:hover:not(:disabled):not(.disabled),button.button-info:hover:not(:disabled):not(.disabled){color:#fff;background-color:#33b8b8;border-color:#33b8b8;border-top-color:#39cccc;border-bottom-color:#2ea3a3}.button.button-info.active:not(:disabled):not(.disabled),.button.button-info:active:not(:disabled):not(.disabled),button.button-info.active:not(:disabled):not(.disabled),button.button-info:active:not(:disabled):not(.disabled){background-color:#33b8b8;border-color:#33b8b8;border-top-color:#2ea3a3;border-bottom-color:#33b8b8}.button.button-info:focus:not(:disabled):not(.disabled),button.button-info:focus:not(:disabled):not(.disabled){outline:none;-webkit-box-shadow:0 0 0 2px rgba(57,204,204,.5);box-shadow:0 0 0 2px rgba(57,204,204,.5)}.button.button-warning,button.button-warning{color:#fff;background-color:#ff851b;border-color:#ff851b;border-top-color:#ff9132;border-bottom-color:#e67818}.button.button-warning:hover:not(:disabled):not(.disabled),button.button-warning:hover:not(:disabled):not(.disabled){color:#fff;background-color:#e67818;border-color:#e67818;border-top-color:#ff851b;border-bottom-color:#cc6a16}.button.button-warning.active:not(:disabled):not(.disabled),.button.button-warning:active:not(:disabled):not(.disabled),button.button-warning.active:not(:disabled):not(.disabled),button.button-warning:active:not(:disabled):not(.disabled){background-color:#e67818;border-color:#e67818;border-top-color:#cc6a16;border-bottom-color:#e67818}.button.button-warning:focus:not(:disabled):not(.disabled),button.button-warning:focus:not(:disabled):not(.disabled){outline:none;-webkit-box-shadow:0 0 0 2px rgba(255,133,27,.5);box-shadow:0 0 0 2px rgba(255,133,27,.5)}.button.button-danger,button.button-danger{color:#fff;background-color:#ff4136;border-color:#ff4136;border-top-color:#ff544a;border-bottom-color:#e63b31}.button.button-danger:hover:not(:disabled):not(.disabled),button.button-danger:hover:not(:disabled):not(.disabled){color:#fff;background-color:#e63b31;border-color:#e63b31;border-top-color:#ff4136;border-bottom-color:#cc342b}.button.button-danger.active:not(:disabled):not(.disabled),.button.button-danger:active:not(:disabled):not(.disabled),button.button-danger.active:not(:disabled):not(.disabled),button.button-danger:active:not(:disabled):not(.disabled){background-color:#e63b31;border-color:#e63b31;border-top-color:#cc342b;border-bottom-color:#e63b31}.button.button-danger:focus:not(:disabled):not(.disabled),button.button-danger:focus:not(:disabled):not(.disabled){outline:none;-webkit-box-shadow:0 0 0 2px rgba(255,65,54,.5);box-shadow:0 0 0 2px rgba(255,65,54,.5)}.button.button-light,button.button-light{color:#111;background-color:#e6e6e6;border-color:#e6e6e6;border-top-color:#e9e9e9;border-bottom-color:#cfcfcf}.button.button-light:hover:not(:disabled):not(.disabled),button.button-light:hover:not(:disabled):not(.disabled){color:#111;background-color:#cfcfcf;border-color:#cfcfcf;border-top-color:#e6e6e6;border-bottom-color:#b8b8b8}.button.button-light.active:not(:disabled):not(.disabled),.button.button-light:active:not(:disabled):not(.disabled),button.button-light.active:not(:disabled):not(.disabled),button.button-light:active:not(:disabled):not(.disabled){background-color:#cfcfcf;border-color:#cfcfcf;border-top-color:#b8b8b8;border-bottom-color:#cfcfcf}.button.button-light:focus:not(:disabled):not(.disabled),button.button-light:focus:not(:disabled):not(.disabled){outline:none;-webkit-box-shadow:0 0 0 2px hsla(0,0%,90%,.5);box-shadow:0 0 0 2px hsla(0,0%,90%,.5)}.button.button-dark,button.button-dark{color:#fff;background-color:#292929;border-color:#292929;border-top-color:#3e3e3e;border-bottom-color:#252525}.button.button-dark:hover:not(:disabled):not(.disabled),button.button-dark:hover:not(:disabled):not(.disabled){color:#fff;background-color:#252525;border-color:#252525;border-top-color:#292929;border-bottom-color:#212121}.button.button-dark.active:not(:disabled):not(.disabled),.button.button-dark:active:not(:disabled):not(.disabled),button.button-dark.active:not(:disabled):not(.disabled),button.button-dark:active:not(:disabled):not(.disabled){background-color:#252525;border-color:#252525;border-top-color:#212121;border-bottom-color:#252525}.button.button-dark:focus:not(:disabled):not(.disabled),button.button-dark:focus:not(:disabled):not(.disabled){outline:none;-webkit-box-shadow:0 0 0 2px rgba(41,41,41,.5);box-shadow:0 0 0 2px rgba(41,41,41,.5)}.button.button-block,button.button-block{width:100%!important;display:block}.button.button-link,button.button-link{border-color:transparent;background-color:transparent;color:#0074d9;text-decoration:none;-webkit-box-shadow:none;box-shadow:none}.button.button-link:focus:not(:disabled):not(.disabled),.button.button-link:hover:not(:disabled):not(.disabled),button.button-link:focus:not(:disabled):not(.disabled),button.button-link:hover:not(:disabled):not(.disabled){border-color:transparent;background-color:transparent;color:#0074d9;text-decoration:underline;-webkit-box-shadow:none;box-shadow:none}label.button input[type=file]{display:none}.button-loader,.button-loader:hover{position:relative;min-width:2em;color:transparent!important;overflow:hidden}.button-loader:after{content:"";position:absolute;top:calc(50% - .5em);left:calc(50% - .5em);width:1em;height:1em;border-radius:50%;border:.15em solid hsla(0,0%,100%,.2);border-top-color:#fff;border-left-color:#fff;display:inline-block;-webkit-animation:button-loader .75s linear infinite;animation:button-loader .75s linear infinite}.button-danger.button-loader:after,.button-info.button-loader:after,.button-secondary.button-loader:after,.button-success.button-loader:after,.button-warning.button-loader:after{border-color:hsla(0,0%,100%,.2);border-top-color:#fff;border-left-color:#fff}.button-light.button-loader:after{border-color:hsla(0,0%,7%,.2);border-top-color:#111;border-left-color:#111}.button-dark.button-loader:after{border-color:hsla(0,0%,100%,.2);border-top-color:#fff;border-left-color:#fff}@-webkit-keyframes button-loader{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes button-loader{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}} +/*! Buttons */.button,button{font-family:inherit;font-size:1rem;font-weight:inherit;text-align:center;text-decoration:none;color:#fff;background-color:#0074d9;border-radius:.25rem;border:1px solid #0074d9;border-top-color:#1982dd;border-bottom-color:#0068c3;height:2.25rem;line-height:calc(2.25rem - 2px);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap;padding:0 .75em;cursor:pointer;display:inline-block;-webkit-transition:all .1s;transition:all .1s}.button:hover,button:hover{color:#fff}.button:hover:not(:disabled):not(.disabled),button:hover:not(:disabled):not(.disabled){text-decoration:none;background-color:#0068c3;border-color:#0068c3;border-top-color:#0074d9;border-bottom-color:#005dae}.button.active:not(:disabled):not(.disabled),.button:active:not(:disabled):not(.disabled),button.active:not(:disabled):not(.disabled),button:active:not(:disabled):not(.disabled){background-color:#0068c3;border-color:#0068c3;border-top-color:#005dae;border-bottom-color:#0068c3}.button:focus:not(:disabled):not(.disabled),button:focus:not(:disabled):not(.disabled){outline:none;-webkit-box-shadow:0 0 0 2px rgba(0,116,217,.5);box-shadow:0 0 0 2px rgba(0,116,217,.5)}.button.disabled,.button:disabled,button.disabled,button:disabled{text-decoration:none;opacity:.5;cursor:not-allowed}.button.button-xs,button.button-xs{font-size:.7rem;height:1.25rem;line-height:calc(1.25rem - 2px)}.button.button-sm,button.button-sm{font-size:.8rem;height:1.75rem;line-height:calc(1.75rem - 2px)}.button.button-lg,button.button-lg{font-size:1.25rem;height:2.75rem;line-height:calc(2.75rem - 2px)}.button.button-xl,button.button-xl{font-size:1.5rem;height:3.25rem;line-height:calc(3.25rem - 2px)}.button.button-secondary,button.button-secondary{color:#fff;background-color:#aaa;border-color:#aaa;border-top-color:#b3b3b3;border-bottom-color:#999}.button.button-secondary:hover:not(:disabled):not(.disabled),button.button-secondary:hover:not(:disabled):not(.disabled){color:#fff;background-color:#999;border-color:#999;border-top-color:#aaa;border-bottom-color:#888}.button.button-secondary.active:not(:disabled):not(.disabled),.button.button-secondary:active:not(:disabled):not(.disabled),button.button-secondary.active:not(:disabled):not(.disabled),button.button-secondary:active:not(:disabled):not(.disabled){background-color:#999;border-color:#999;border-top-color:#888;border-bottom-color:#999}.button.button-secondary:focus:not(:disabled):not(.disabled),button.button-secondary:focus:not(:disabled):not(.disabled){outline:none;-webkit-box-shadow:0 0 0 2px hsla(0,0%,67%,.5);box-shadow:0 0 0 2px hsla(0,0%,67%,.5)}.button.button-success,button.button-success{color:#fff;background-color:#2ecc40;border-color:#2ecc40;border-top-color:#43d153;border-bottom-color:#29b83a}.button.button-success:hover:not(:disabled):not(.disabled),button.button-success:hover:not(:disabled):not(.disabled){color:#fff;background-color:#29b83a;border-color:#29b83a;border-top-color:#2ecc40;border-bottom-color:#25a333}.button.button-success.active:not(:disabled):not(.disabled),.button.button-success:active:not(:disabled):not(.disabled),button.button-success.active:not(:disabled):not(.disabled),button.button-success:active:not(:disabled):not(.disabled){background-color:#29b83a;border-color:#29b83a;border-top-color:#25a333;border-bottom-color:#29b83a}.button.button-success:focus:not(:disabled):not(.disabled),button.button-success:focus:not(:disabled):not(.disabled){outline:none;-webkit-box-shadow:0 0 0 2px rgba(46,204,64,.5);box-shadow:0 0 0 2px rgba(46,204,64,.5)}.button.button-info,button.button-info{color:#fff;background-color:#39cccc;border-color:#39cccc;border-top-color:#4dd1d1;border-bottom-color:#33b8b8}.button.button-info:hover:not(:disabled):not(.disabled),button.button-info:hover:not(:disabled):not(.disabled){color:#fff;background-color:#33b8b8;border-color:#33b8b8;border-top-color:#39cccc;border-bottom-color:#2ea3a3}.button.button-info.active:not(:disabled):not(.disabled),.button.button-info:active:not(:disabled):not(.disabled),button.button-info.active:not(:disabled):not(.disabled),button.button-info:active:not(:disabled):not(.disabled){background-color:#33b8b8;border-color:#33b8b8;border-top-color:#2ea3a3;border-bottom-color:#33b8b8}.button.button-info:focus:not(:disabled):not(.disabled),button.button-info:focus:not(:disabled):not(.disabled){outline:none;-webkit-box-shadow:0 0 0 2px rgba(57,204,204,.5);box-shadow:0 0 0 2px rgba(57,204,204,.5)}.button.button-warning,button.button-warning{color:#fff;background-color:#ff851b;border-color:#ff851b;border-top-color:#ff9132;border-bottom-color:#e67818}.button.button-warning:hover:not(:disabled):not(.disabled),button.button-warning:hover:not(:disabled):not(.disabled){color:#fff;background-color:#e67818;border-color:#e67818;border-top-color:#ff851b;border-bottom-color:#cc6a16}.button.button-warning.active:not(:disabled):not(.disabled),.button.button-warning:active:not(:disabled):not(.disabled),button.button-warning.active:not(:disabled):not(.disabled),button.button-warning:active:not(:disabled):not(.disabled){background-color:#e67818;border-color:#e67818;border-top-color:#cc6a16;border-bottom-color:#e67818}.button.button-warning:focus:not(:disabled):not(.disabled),button.button-warning:focus:not(:disabled):not(.disabled){outline:none;-webkit-box-shadow:0 0 0 2px rgba(255,133,27,.5);box-shadow:0 0 0 2px rgba(255,133,27,.5)}.button.button-danger,button.button-danger{color:#fff;background-color:#ff4136;border-color:#ff4136;border-top-color:#ff544a;border-bottom-color:#e63b31}.button.button-danger:hover:not(:disabled):not(.disabled),button.button-danger:hover:not(:disabled):not(.disabled){color:#fff;background-color:#e63b31;border-color:#e63b31;border-top-color:#ff4136;border-bottom-color:#cc342b}.button.button-danger.active:not(:disabled):not(.disabled),.button.button-danger:active:not(:disabled):not(.disabled),button.button-danger.active:not(:disabled):not(.disabled),button.button-danger:active:not(:disabled):not(.disabled){background-color:#e63b31;border-color:#e63b31;border-top-color:#cc342b;border-bottom-color:#e63b31}.button.button-danger:focus:not(:disabled):not(.disabled),button.button-danger:focus:not(:disabled):not(.disabled){outline:none;-webkit-box-shadow:0 0 0 2px rgba(255,65,54,.5);box-shadow:0 0 0 2px rgba(255,65,54,.5)}.button.button-light,button.button-light{color:#111;background-color:#e6e6e6;border-color:#e6e6e6;border-top-color:#e9e9e9;border-bottom-color:#cfcfcf}.button.button-light:hover:not(:disabled):not(.disabled),button.button-light:hover:not(:disabled):not(.disabled){color:#111;background-color:#cfcfcf;border-color:#cfcfcf;border-top-color:#e6e6e6;border-bottom-color:#b8b8b8}.button.button-light.active:not(:disabled):not(.disabled),.button.button-light:active:not(:disabled):not(.disabled),button.button-light.active:not(:disabled):not(.disabled),button.button-light:active:not(:disabled):not(.disabled){background-color:#cfcfcf;border-color:#cfcfcf;border-top-color:#b8b8b8;border-bottom-color:#cfcfcf}.button.button-light:focus:not(:disabled):not(.disabled),button.button-light:focus:not(:disabled):not(.disabled){outline:none;-webkit-box-shadow:0 0 0 2px hsla(0,0%,90%,.5);box-shadow:0 0 0 2px hsla(0,0%,90%,.5)}.button.button-dark,button.button-dark{color:#fff;background-color:#292929;border-color:#292929;border-top-color:#3e3e3e;border-bottom-color:#252525}.button.button-dark:hover:not(:disabled):not(.disabled),button.button-dark:hover:not(:disabled):not(.disabled){color:#fff;background-color:#252525;border-color:#252525;border-top-color:#292929;border-bottom-color:#212121}.button.button-dark.active:not(:disabled):not(.disabled),.button.button-dark:active:not(:disabled):not(.disabled),button.button-dark.active:not(:disabled):not(.disabled),button.button-dark:active:not(:disabled):not(.disabled){background-color:#252525;border-color:#252525;border-top-color:#212121;border-bottom-color:#252525}.button.button-dark:focus:not(:disabled):not(.disabled),button.button-dark:focus:not(:disabled):not(.disabled){outline:none;-webkit-box-shadow:0 0 0 2px rgba(41,41,41,.5);box-shadow:0 0 0 2px rgba(41,41,41,.5)}.button.button-block,button.button-block{width:100%!important;display:block}.button.button-link,button.button-link{border-color:transparent;background-color:transparent;color:#0074d9;text-decoration:none;-webkit-box-shadow:none;box-shadow:none}.button.button-link:focus:not(:disabled):not(.disabled),.button.button-link:hover:not(:disabled):not(.disabled),button.button-link:focus:not(:disabled):not(.disabled),button.button-link:hover:not(:disabled):not(.disabled){border-color:transparent;background-color:transparent;color:#0074d9;text-decoration:underline;-webkit-box-shadow:none;box-shadow:none}.button-loader,.button-loader:hover{position:relative;min-width:2em;color:transparent!important;overflow:hidden}.button-loader:after{content:"";position:absolute;top:calc(50% - .5em);left:calc(50% - .5em);width:1em;height:1em;border-radius:50%;border:.15em solid hsla(0,0%,100%,.2);border-top-color:#fff;border-left-color:#fff;display:inline-block;-webkit-animation:button-loader .75s linear infinite;animation:button-loader .75s linear infinite}.button-danger.button-loader:after,.button-info.button-loader:after,.button-secondary.button-loader:after,.button-success.button-loader:after,.button-warning.button-loader:after{border-color:hsla(0,0%,100%,.2);border-top-color:#fff;border-left-color:#fff}.button-light.button-loader:after{border-color:hsla(0,0%,7%,.2);border-top-color:#111;border-left-color:#111}.button-dark.button-loader:after{border-color:hsla(0,0%,100%,.2);border-top-color:#fff;border-left-color:#fff}@-webkit-keyframes button-loader{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes button-loader{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}} /*! Dropdowns */.dropdown{position:relative;display:inline-block}.dropdown .dropdown-trigger:after{content:"▼";font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue;font-size:.6em;vertical-align:middle;margin-left:.5em;display:inline-block;-webkit-transform:scaleY(.75);transform:scaleY(.75);margin-top:-.2em}.dropdown.dropdown-top .dropdown-trigger:after{-webkit-transform:scaleY(.75) rotate(180deg);transform:scaleY(.75) rotate(180deg)}.dropdown .dropdown-menu{position:absolute;top:calc(100% + 1px);left:0;z-index:100;min-width:10rem;max-width:25rem;max-height:none;background-color:#fff;border:1px solid #ddd;border-radius:.25rem;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.05);box-shadow:0 1px 0 rgba(0,0,0,.05);display:none;padding:.25rem 0;overflow-y:auto;-webkit-transform:translateZ(0);transform:translateZ(0)}.dropdown .dropdown-menu a{position:relative;color:#111;text-decoration:none;padding:.25rem calc(1rem + .5em);display:block;white-space:nowrap;overflow-x:hidden;text-overflow:ellipsis}.dropdown .dropdown-menu a:focus:not(.disabled){outline:none;color:#111;background-color:#f2f2f2}.dropdown .dropdown-menu a:hover:not(.disabled){color:#fff;background-color:#0074d9}.dropdown .dropdown-menu a.disabled{outline:none;cursor:not-allowed;opacity:.5}.dropdown .dropdown-menu a.checked:before{position:absolute;left:calc(.5rem - .1em);content:"✓";font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue;font-weight:600}.dropdown .dropdown-menu hr{width:100%;border-top:1px solid #ddd;margin:.25rem 0}.dropdown.dropdown-top .dropdown-menu{top:auto;bottom:calc(100% + 1px)}.dropdown.dropdown-left .dropdown-menu{left:auto;right:0}.dropdown.dropdown.active .dropdown-menu{display:block} -/*! Forms */fieldset{border:1px solid #ddd;border-radius:.25rem;padding:1.5rem 2rem;margin-bottom:1.5rem}fieldset legend{font-weight:700;padding:0 .25rem}fieldset>:last-child{margin-bottom:0}label{color:inherit;display:inline-block;margin-bottom:.25rem}label+label{margin-left:1rem}input[type=color],input[type=date],input[type=datetime-local],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{width:100%;font-family:inherit;font-size:1rem;font-weight:inherit;color:#111;border:1px solid #ddd;border-radius:.25rem;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05);background-color:#fff;height:2.25rem;line-height:2.25rem;vertical-align:middle;display:block;padding-left:.5rem;padding-right:.5rem;margin:0;-webkit-transition:border-color .1s,background-color .1s,color .1s;transition:border-color .1s,background-color .1s,color .1s;white-space:nowrap;-moz-appearance:none;-webkit-appearance:none}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,select:focus,textarea:focus{outline:none;border-color:#0074d9}input[type=color][disabled],input[type=date][disabled],input[type=datetime-local][disabled],input[type=email][disabled],input[type=month][disabled],input[type=number][disabled],input[type=password][disabled],input[type=search][disabled],input[type=tel][disabled],input[type=text][disabled],input[type=time][disabled],input[type=url][disabled],input[type=week][disabled],select[disabled],textarea[disabled]{opacity:.5;cursor:not-allowed}input[type=color][readonly],input[type=date][readonly],input[type=datetime-local][readonly],input[type=email][readonly],input[type=month][readonly],input[type=number][readonly],input[type=password][readonly],input[type=search][readonly],input[type=tel][readonly],input[type=text][readonly],input[type=time][readonly],input[type=url][readonly],input[type=week][readonly],select[readonly],textarea[readonly]{background-color:#f2f2f2}input[type=color][type=color],input[type=date][type=color],input[type=datetime-local][type=color],input[type=email][type=color],input[type=month][type=color],input[type=number][type=color],input[type=password][type=color],input[type=search][type=color],input[type=tel][type=color],input[type=text][type=color],input[type=time][type=color],input[type=url][type=color],input[type=week][type=color],select[type=color],textarea[type=color]{padding:.5rem}input[type=color][type=color]::-webkit-color-swatch-wrapper,input[type=date][type=color]::-webkit-color-swatch-wrapper,input[type=datetime-local][type=color]::-webkit-color-swatch-wrapper,input[type=email][type=color]::-webkit-color-swatch-wrapper,input[type=month][type=color]::-webkit-color-swatch-wrapper,input[type=number][type=color]::-webkit-color-swatch-wrapper,input[type=password][type=color]::-webkit-color-swatch-wrapper,input[type=search][type=color]::-webkit-color-swatch-wrapper,input[type=tel][type=color]::-webkit-color-swatch-wrapper,input[type=text][type=color]::-webkit-color-swatch-wrapper,input[type=time][type=color]::-webkit-color-swatch-wrapper,input[type=url][type=color]::-webkit-color-swatch-wrapper,input[type=week][type=color]::-webkit-color-swatch-wrapper,select[type=color]::-webkit-color-swatch-wrapper,textarea[type=color]::-webkit-color-swatch-wrapper{padding:0}input[type=color][type=color]::-webkit-color-swatch,input[type=date][type=color]::-webkit-color-swatch,input[type=datetime-local][type=color]::-webkit-color-swatch,input[type=email][type=color]::-webkit-color-swatch,input[type=month][type=color]::-webkit-color-swatch,input[type=number][type=color]::-webkit-color-swatch,input[type=password][type=color]::-webkit-color-swatch,input[type=search][type=color]::-webkit-color-swatch,input[type=tel][type=color]::-webkit-color-swatch,input[type=text][type=color]::-webkit-color-swatch,input[type=time][type=color]::-webkit-color-swatch,input[type=url][type=color]::-webkit-color-swatch,input[type=week][type=color]::-webkit-color-swatch,select[type=color]::-webkit-color-swatch,textarea[type=color]::-webkit-color-swatch{border:none;border-radius:.25rem}input[type=color].input-xs,input[type=date].input-xs,input[type=datetime-local].input-xs,input[type=email].input-xs,input[type=month].input-xs,input[type=number].input-xs,input[type=password].input-xs,input[type=search].input-xs,input[type=tel].input-xs,input[type=text].input-xs,input[type=time].input-xs,input[type=url].input-xs,input[type=week].input-xs,select.input-xs,textarea.input-xs{font-size:.7rem;height:1.25rem;line-height:1.25rem}input[type=color].input-sm,input[type=date].input-sm,input[type=datetime-local].input-sm,input[type=email].input-sm,input[type=month].input-sm,input[type=number].input-sm,input[type=password].input-sm,input[type=search].input-sm,input[type=tel].input-sm,input[type=text].input-sm,input[type=time].input-sm,input[type=url].input-sm,input[type=week].input-sm,select.input-sm,textarea.input-sm{font-size:.8rem;height:1.75rem;line-height:1.75rem}input[type=color].input-lg,input[type=date].input-lg,input[type=datetime-local].input-lg,input[type=email].input-lg,input[type=month].input-lg,input[type=number].input-lg,input[type=password].input-lg,input[type=search].input-lg,input[type=tel].input-lg,input[type=text].input-lg,input[type=time].input-lg,input[type=url].input-lg,input[type=week].input-lg,select.input-lg,textarea.input-lg{font-size:1.25rem;height:2.75rem;line-height:2.75rem}input[type=color].input-xl,input[type=date].input-xl,input[type=datetime-local].input-xl,input[type=email].input-xl,input[type=month].input-xl,input[type=number].input-xl,input[type=password].input-xl,input[type=search].input-xl,input[type=tel].input-xl,input[type=text].input-xl,input[type=time].input-xl,input[type=url].input-xl,input[type=week].input-xl,select.input-xl,textarea.input-xl{font-size:1.5rem;height:3.25rem;line-height:3.25rem}input[type=checkbox],input[type=radio]{vertical-align:1px}select{position:relative;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='41' height='26' viewBox='0 0 41 26' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23000' d='M0 5.382l19.983 19.983L40.14 5.208 34.932 0 19.869 15.062 4.84.032z' fill-rule='evenodd'/%3E%3C/svg%3E");background-position:right .4rem center;background-repeat:no-repeat;background-size:.75rem;padding-top:0;padding-bottom:0;padding-right:1.5rem}textarea,textarea.input-lg,textarea.input-sm,textarea.input-xl,textarea.input-xs{height:auto;resize:vertical;line-height:1.5;white-space:normal}input[type=range]{-webkit-appearance:none;width:100%;height:2.25rem;line-height:2.25rem;vertical-align:middle}input[type=range]:focus{outline:none}input[type=range]::-webkit-slider-runnable-track{width:100%;height:.5rem;cursor:pointer;background:#f2f2f2;border-radius:.25rem;border:none;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}input[type=range]::-webkit-slider-thumb{border:none;width:1.25rem;height:1.25rem;border-radius:50%;background:#0074d9;cursor:pointer;-webkit-appearance:none;margin-top:-.375rem}input[type=range]:focus::-webkit-slider-runnable-track{background:#f2f2f2}input[type=range]:focus::-webkit-slider-thumb{-webkit-box-shadow:0 0 0 2px rgba(0,116,217,.5);box-shadow:0 0 0 2px rgba(0,116,217,.5)}input[type=range]::-moz-range-track{width:100%;height:.5rem;cursor:pointer;background:#f2f2f2;border-radius:.25rem;border:none;box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}input[type=range]::-moz-range-thumb{border:none;height:1.25rem;width:1.25rem;border-radius:50%;background:#0074d9;cursor:pointer}input[type=range]:focus::-moz-range-thumb{box-shadow:0 0 0 2px rgba(0,116,217,.5)}input[type=range]::-ms-track{width:100%;height:.5rem;cursor:pointer;background:transparent;border-color:transparent;color:transparent}input[type=range]::-ms-fill-lower,input[type=range]::-ms-fill-upper{background:#f2f2f2;border:none;border-radius:.25rem}input[type=range]::-ms-thumb{border:none;height:1.25rem;width:1.25rem;border-radius:50%;background:#0074d9;cursor:pointer;margin-top:-.25rem}input[type=range]:focus::-ms-thumb{box-shadow:0 0 0 2px rgba(0,116,217,.5)}input[type=range]:focus::-ms-fill-lower,input[type=range]:focus::-ms-fill-upper{background:#f2f2f2}.input-field,.input-group{margin-bottom:1.5rem}.input-group{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex}.input-group>.button,.input-group>.dropdown .button,.input-group>.dropdown button,.input-group>.input-icon input,.input-group>.input-icon select,.input-group>button,.input-group>input{border-radius:0}.input-group>.button:first-child,.input-group>.dropdown:first-child .button,.input-group>.dropdown:first-child button,.input-group>.input-icon:first-child input,.input-group>.input-icon:first-child select,.input-group>button:first-child,.input-group>input:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.input-group>.button:last-child,.input-group>.dropdown:last-child .button,.input-group>.dropdown:last-child button,.input-group>.input-icon:last-child input,.input-group>.input-icon:last-child select,.input-group>button:last-child,.input-group>input:last-child{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.input-group>input+input{border-left-width:0}.input-group>input+input:focus{border-left-width:1px;margin-left:-1px}.input-group .button:focus,.input-group button:focus{-webkit-transform:translateZ(0);transform:translateZ(0)}.input-addon{font-size:1rem;height:2.25rem;line-height:2.25rem;border-top:1px solid #ddd;border-bottom:1px solid #ddd;background:#f2f2f2;color:#aaa;padding:0 .5rem;white-space:nowrap}.input-addon:first-child{border-left:1px solid #ddd;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.input-addon:last-child{border-right:1px solid #ddd;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.input-addon.input-addon-xs{font-size:.7rem;height:1.25rem;line-height:1.25rem}.input-addon.input-addon-sm{font-size:.8rem;height:1.75rem;line-height:1.75rem}.input-addon.input-addon-lg{font-size:1.25rem;height:2.75rem;line-height:2.75rem}.input-addon.input-addon-xl{font-size:1.5rem;height:3.25rem;line-height:3.25rem}.input-icon{position:relative;width:100%}.input-icon select{position:static}.input-icon input:not(:first-child),.input-icon select:not(:first-child){padding-left:2em}.input-icon input:not(:last-child){padding-right:2em}.input-icon :first-child:not(input):not(select),.input-icon :last-child:not(input):not(select){position:absolute;top:0;left:.5em;height:2.25rem;line-height:2.25rem;color:#aaa;vertical-align:middle;pointer-events:none}.input-icon :last-child:not(input):not(select){left:auto;right:.5em}.input-icon.input-icon-xs :first-child:not(input):not(select),.input-icon.input-icon-xs :last-child:not(input):not(select){font-size:.7rem;height:1.25rem;line-height:1.25rem}.input-icon.input-icon-sm :first-child:not(input):not(select),.input-icon.input-icon-sm :last-child:not(input):not(select){font-size:.8rem;height:1.75rem;line-height:1.75rem}.input-icon.input-icon-lg :first-child:not(input):not(select),.input-icon.input-icon-lg :last-child:not(input):not(select){font-size:1.25rem;height:2.75rem;line-height:2.75rem}.input-icon.input-icon-xl :first-child:not(input):not(select),.input-icon.input-icon-xl :last-child:not(input):not(select){font-size:1.5rem;height:3.25rem;line-height:3.25rem}.input-invalid label{color:#ff4136!important}.input-invalid input,.input-invalid select{color:#ff4136!important;border-color:#ff4136!important}.input-invalid .input-icon :first-child:not(input):not(select),.input-invalid .input-icon :last-child:not(input):not(select){color:#ff4136}.input-valid label{color:#2ecc40!important}.input-valid input,.input-valid select{color:#2ecc40!important;border-color:#2ecc40!important}.input-valid .input-icon :first-child:not(input):not(select),.input-valid .input-icon :last-child:not(input):not(select){color:#2ecc40} +/*! File buttons */.file-button input[type=file]{position:absolute;height:1px;width:1px;background:none;border:0;clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);overflow:hidden;padding:0}.file-button input[type=file]:focus+label{-webkit-box-shadow:0 0 0 2px rgba(0,116,217,.5);box-shadow:0 0 0 2px rgba(0,116,217,.5)}.file-button input[type=file]:focus+label.button-secondary{-webkit-box-shadow:0 0 0 2px hsla(0,0%,67%,.5);box-shadow:0 0 0 2px hsla(0,0%,67%,.5)}.file-button input[type=file]:focus+label.button-success{-webkit-box-shadow:0 0 0 2px rgba(46,204,64,.5);box-shadow:0 0 0 2px rgba(46,204,64,.5)}.file-button input[type=file]:focus+label.button-info{-webkit-box-shadow:0 0 0 2px rgba(57,204,204,.5);box-shadow:0 0 0 2px rgba(57,204,204,.5)}.file-button input[type=file]:focus+label.button-warning{-webkit-box-shadow:0 0 0 2px rgba(255,133,27,.5);box-shadow:0 0 0 2px rgba(255,133,27,.5)}.file-button input[type=file]:focus+label.button-danger{-webkit-box-shadow:0 0 0 2px rgba(255,65,54,.5);box-shadow:0 0 0 2px rgba(255,65,54,.5)}.file-button input[type=file]:focus+label.button-light{-webkit-box-shadow:0 0 0 2px hsla(0,0%,90%,.5);box-shadow:0 0 0 2px hsla(0,0%,90%,.5)}.file-button input[type=file]:focus+label.button-dark{-webkit-box-shadow:0 0 0 2px rgba(41,41,41,.5);box-shadow:0 0 0 2px rgba(41,41,41,.5)} + +/*! Forms */fieldset{border:1px solid #ddd;border-radius:.25rem;padding:1.5rem 2rem;margin-bottom:1.5rem}fieldset legend{font-weight:700;padding:0 .25rem}fieldset>:last-child{margin-bottom:0}label{color:inherit;display:inline-block;margin-bottom:.25rem}label+label{margin-left:1rem}input[type=color],input[type=date],input[type=datetime-local],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{width:100%;font-family:inherit;font-size:1rem;font-weight:inherit;color:#111;border:1px solid #ddd;border-radius:.25rem;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05);background-color:#fff;height:2.25rem;line-height:2.25rem;vertical-align:middle;display:block;padding-left:.5rem;padding-right:.5rem;margin:0;-webkit-transition:border-color .1s,background-color .1s,color .1s;transition:border-color .1s,background-color .1s,color .1s;white-space:nowrap;-moz-appearance:none;-webkit-appearance:none}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,select:focus,textarea:focus{outline:none;border-color:#0074d9}input[type=color][disabled],input[type=date][disabled],input[type=datetime-local][disabled],input[type=email][disabled],input[type=month][disabled],input[type=number][disabled],input[type=password][disabled],input[type=search][disabled],input[type=tel][disabled],input[type=text][disabled],input[type=time][disabled],input[type=url][disabled],input[type=week][disabled],select[disabled],textarea[disabled]{opacity:.5;cursor:not-allowed}input[type=color][readonly],input[type=date][readonly],input[type=datetime-local][readonly],input[type=email][readonly],input[type=month][readonly],input[type=number][readonly],input[type=password][readonly],input[type=search][readonly],input[type=tel][readonly],input[type=text][readonly],input[type=time][readonly],input[type=url][readonly],input[type=week][readonly],select[readonly],textarea[readonly]{background-color:#f2f2f2}input[type=color][type=color],input[type=date][type=color],input[type=datetime-local][type=color],input[type=email][type=color],input[type=month][type=color],input[type=number][type=color],input[type=password][type=color],input[type=search][type=color],input[type=tel][type=color],input[type=text][type=color],input[type=time][type=color],input[type=url][type=color],input[type=week][type=color],select[type=color],textarea[type=color]{padding:.5rem}input[type=color][type=color]::-webkit-color-swatch-wrapper,input[type=date][type=color]::-webkit-color-swatch-wrapper,input[type=datetime-local][type=color]::-webkit-color-swatch-wrapper,input[type=email][type=color]::-webkit-color-swatch-wrapper,input[type=month][type=color]::-webkit-color-swatch-wrapper,input[type=number][type=color]::-webkit-color-swatch-wrapper,input[type=password][type=color]::-webkit-color-swatch-wrapper,input[type=search][type=color]::-webkit-color-swatch-wrapper,input[type=tel][type=color]::-webkit-color-swatch-wrapper,input[type=text][type=color]::-webkit-color-swatch-wrapper,input[type=time][type=color]::-webkit-color-swatch-wrapper,input[type=url][type=color]::-webkit-color-swatch-wrapper,input[type=week][type=color]::-webkit-color-swatch-wrapper,select[type=color]::-webkit-color-swatch-wrapper,textarea[type=color]::-webkit-color-swatch-wrapper{padding:0}input[type=color][type=color]::-webkit-color-swatch,input[type=date][type=color]::-webkit-color-swatch,input[type=datetime-local][type=color]::-webkit-color-swatch,input[type=email][type=color]::-webkit-color-swatch,input[type=month][type=color]::-webkit-color-swatch,input[type=number][type=color]::-webkit-color-swatch,input[type=password][type=color]::-webkit-color-swatch,input[type=search][type=color]::-webkit-color-swatch,input[type=tel][type=color]::-webkit-color-swatch,input[type=text][type=color]::-webkit-color-swatch,input[type=time][type=color]::-webkit-color-swatch,input[type=url][type=color]::-webkit-color-swatch,input[type=week][type=color]::-webkit-color-swatch,select[type=color]::-webkit-color-swatch,textarea[type=color]::-webkit-color-swatch{border:none;border-radius:.25rem}input[type=color].input-xs,input[type=date].input-xs,input[type=datetime-local].input-xs,input[type=email].input-xs,input[type=month].input-xs,input[type=number].input-xs,input[type=password].input-xs,input[type=search].input-xs,input[type=tel].input-xs,input[type=text].input-xs,input[type=time].input-xs,input[type=url].input-xs,input[type=week].input-xs,select.input-xs,textarea.input-xs{font-size:.7rem;height:1.25rem;line-height:1.25rem}input[type=color].input-sm,input[type=date].input-sm,input[type=datetime-local].input-sm,input[type=email].input-sm,input[type=month].input-sm,input[type=number].input-sm,input[type=password].input-sm,input[type=search].input-sm,input[type=tel].input-sm,input[type=text].input-sm,input[type=time].input-sm,input[type=url].input-sm,input[type=week].input-sm,select.input-sm,textarea.input-sm{font-size:.8rem;height:1.75rem;line-height:1.75rem}input[type=color].input-lg,input[type=date].input-lg,input[type=datetime-local].input-lg,input[type=email].input-lg,input[type=month].input-lg,input[type=number].input-lg,input[type=password].input-lg,input[type=search].input-lg,input[type=tel].input-lg,input[type=text].input-lg,input[type=time].input-lg,input[type=url].input-lg,input[type=week].input-lg,select.input-lg,textarea.input-lg{font-size:1.25rem;height:2.75rem;line-height:2.75rem}input[type=color].input-xl,input[type=date].input-xl,input[type=datetime-local].input-xl,input[type=email].input-xl,input[type=month].input-xl,input[type=number].input-xl,input[type=password].input-xl,input[type=search].input-xl,input[type=tel].input-xl,input[type=text].input-xl,input[type=time].input-xl,input[type=url].input-xl,input[type=week].input-xl,select.input-xl,textarea.input-xl{font-size:1.5rem;height:3.25rem;line-height:3.25rem}input[type=checkbox],input[type=radio]{vertical-align:1px}select{position:relative;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='41' height='26' viewBox='0 0 41 26' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23000' d='M0 5.382l19.983 19.983L40.14 5.208 34.932 0 19.869 15.062 4.84.032z' fill-rule='evenodd'/%3E%3C/svg%3E");background-position:right .4rem center;background-repeat:no-repeat;background-size:.75rem;padding-top:0;padding-bottom:0;padding-right:1.5rem}textarea,textarea.input-lg,textarea.input-sm,textarea.input-xl,textarea.input-xs{height:auto;resize:vertical;line-height:1.5;white-space:normal}input[type=range]{-webkit-appearance:none;width:100%;height:2.25rem;line-height:2.25rem;vertical-align:middle}input[type=range]:focus{outline:none}input[type=range]::-webkit-slider-runnable-track{width:100%;height:.5rem;cursor:pointer;background:#f2f2f2;border-radius:.25rem;border:none;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}input[type=range]::-webkit-slider-thumb{border:none;width:1.25rem;height:1.25rem;border-radius:50%;background:#0074d9;cursor:pointer;-webkit-appearance:none;margin-top:-.375rem}input[type=range]:focus::-webkit-slider-runnable-track{background:#f2f2f2}input[type=range]:focus::-webkit-slider-thumb{-webkit-box-shadow:0 0 0 2px rgba(0,116,217,.5);box-shadow:0 0 0 2px rgba(0,116,217,.5)}input[type=range]::-moz-range-track{width:100%;height:.5rem;cursor:pointer;background:#f2f2f2;border-radius:.25rem;border:none;box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}input[type=range]::-moz-range-thumb{border:none;height:1.25rem;width:1.25rem;border-radius:50%;background:#0074d9;cursor:pointer}input[type=range]:focus::-moz-range-thumb{box-shadow:0 0 0 2px rgba(0,116,217,.5)}input[type=range]::-ms-track{width:100%;height:.5rem;cursor:pointer;background:transparent;border-color:transparent;color:transparent}input[type=range]::-ms-fill-lower,input[type=range]::-ms-fill-upper{background:#f2f2f2;border:none;border-radius:.25rem}input[type=range]::-ms-thumb{border:none;height:1.25rem;width:1.25rem;border-radius:50%;background:#0074d9;cursor:pointer;margin-top:-.25rem}input[type=range]:focus::-ms-thumb{box-shadow:0 0 0 2px rgba(0,116,217,.5)}input[type=range]:focus::-ms-fill-lower,input[type=range]:focus::-ms-fill-upper{background:#f2f2f2}.input-field,.input-group{margin-bottom:1.5rem}.input-group{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex}.input-group>.button,.input-group>.dropdown .button,.input-group>.dropdown button,.input-group>.file-button label,.input-group>.input-icon input,.input-group>.input-icon select,.input-group>button,.input-group>input{border-radius:0}.input-group>.button:first-child,.input-group>.dropdown:first-child .button,.input-group>.dropdown:first-child button,.input-group>.file-button:first-child label,.input-group>.input-icon:first-child input,.input-group>.input-icon:first-child select,.input-group>button:first-child,.input-group>input:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.input-group>.button:last-child,.input-group>.dropdown:last-child .button,.input-group>.dropdown:last-child button,.input-group>.file-button:last-child label,.input-group>.input-icon:last-child input,.input-group>.input-icon:last-child select,.input-group>button:last-child,.input-group>input:last-child{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.input-group>input+input{border-left-width:0}.input-group>input+input:focus{border-left-width:1px;margin-left:-1px}.input-group .button:focus,.input-group .file-button input[type=file]:focus+label,.input-group button:focus{-webkit-transform:translateZ(0);transform:translateZ(0)}.input-addon{font-size:1rem;height:2.25rem;line-height:2.25rem;border-top:1px solid #ddd;border-bottom:1px solid #ddd;background:#f2f2f2;color:#aaa;padding:0 .5rem;white-space:nowrap}.input-addon:first-child{border-left:1px solid #ddd;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.input-addon:last-child{border-right:1px solid #ddd;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.input-addon.input-addon-xs{font-size:.7rem;height:1.25rem;line-height:1.25rem}.input-addon.input-addon-sm{font-size:.8rem;height:1.75rem;line-height:1.75rem}.input-addon.input-addon-lg{font-size:1.25rem;height:2.75rem;line-height:2.75rem}.input-addon.input-addon-xl{font-size:1.5rem;height:3.25rem;line-height:3.25rem}.input-icon{position:relative;width:100%}.input-icon select{position:static}.input-icon input:not(:first-child),.input-icon select:not(:first-child){padding-left:2em}.input-icon input:not(:last-child){padding-right:2em}.input-icon :first-child:not(input):not(select),.input-icon :last-child:not(input):not(select){position:absolute;top:0;left:.5em;height:2.25rem;line-height:2.25rem;color:#aaa;vertical-align:middle;pointer-events:none}.input-icon :last-child:not(input):not(select){left:auto;right:.5em}.input-icon.input-icon-xs :first-child:not(input):not(select),.input-icon.input-icon-xs :last-child:not(input):not(select){font-size:.7rem;height:1.25rem;line-height:1.25rem}.input-icon.input-icon-sm :first-child:not(input):not(select),.input-icon.input-icon-sm :last-child:not(input):not(select){font-size:.8rem;height:1.75rem;line-height:1.75rem}.input-icon.input-icon-lg :first-child:not(input):not(select),.input-icon.input-icon-lg :last-child:not(input):not(select){font-size:1.25rem;height:2.75rem;line-height:2.75rem}.input-icon.input-icon-xl :first-child:not(input):not(select),.input-icon.input-icon-xl :last-child:not(input):not(select){font-size:1.5rem;height:3.25rem;line-height:3.25rem}.input-invalid label{color:#ff4136!important}.input-invalid input,.input-invalid select{color:#ff4136!important;border-color:#ff4136!important}.input-invalid .input-icon :first-child:not(input):not(select),.input-invalid .input-icon :last-child:not(input):not(select){color:#ff4136}.input-valid label{color:#2ecc40!important}.input-valid input,.input-valid select{color:#2ecc40!important;border-color:#2ecc40!important}.input-valid .input-icon :first-child:not(input):not(select),.input-valid .input-icon :last-child:not(input):not(select){color:#2ecc40} /*! Grid System diff --git a/docs/alerts.html b/docs/alerts.html index 65bf6aad3..58a28aceb 100644 --- a/docs/alerts.html +++ b/docs/alerts.html @@ -36,6 +36,7 @@
  • Badges
  • Buttons
  • Dropdowns
  • +
  • File Buttons
  • Forms
  • Grid System
  • Loaders
  • diff --git a/docs/attribution.html b/docs/attribution.html index d508ad46e..c4086cd06 100644 --- a/docs/attribution.html +++ b/docs/attribution.html @@ -36,6 +36,7 @@
  • Badges
  • Buttons
  • Dropdowns
  • +
  • File Buttons
  • Forms
  • Grid System
  • Loaders
  • diff --git a/docs/badges.html b/docs/badges.html index ef8a4fedd..272712981 100644 --- a/docs/badges.html +++ b/docs/badges.html @@ -36,6 +36,7 @@
  • Badges
  • Buttons
  • Dropdowns
  • +
  • File Buttons
  • Forms
  • Grid System
  • Loaders
  • diff --git a/docs/browser-support.html b/docs/browser-support.html index 239de8516..2ef50dc8a 100644 --- a/docs/browser-support.html +++ b/docs/browser-support.html @@ -36,6 +36,7 @@
  • Badges
  • Buttons
  • Dropdowns
  • +
  • File Buttons
  • Forms
  • Grid System
  • Loaders
  • diff --git a/docs/buttons.html b/docs/buttons.html index 49bc1a318..61be4ff78 100644 --- a/docs/buttons.html +++ b/docs/buttons.html @@ -36,6 +36,7 @@
  • Badges
  • Buttons
  • Dropdowns
  • +
  • File Buttons
  • Forms
  • Grid System
  • Loaders
  • @@ -164,18 +165,6 @@ -

    File Buttons

    -

    File inputs are notoriously hard to style properly in every browser. Shoelace offers file buttons as an alternative. These are much easier to style consistently, but come with the caveat that the name (or number) of files selected will not be automatically shown to the user. This aspect of a file button’s UX can be handled effectively with JavaScript, but this is left as an exercise for the user.

    -

    File buttons are simply <label> elements with the button class and a nested file input.

    -
    <label class="button">
    -  Select File
    -  <input type="file">
    -</label>
    -
    -
    - -
    - diff --git a/docs/content.html b/docs/content.html index d0c96f523..dc38c9da6 100644 --- a/docs/content.html +++ b/docs/content.html @@ -36,6 +36,7 @@
  • Badges
  • Buttons
  • Dropdowns
  • +
  • File Buttons
  • Forms
  • Grid System
  • Loaders
  • diff --git a/docs/customizing.html b/docs/customizing.html index 92fa4dc52..3db8ad6ab 100644 --- a/docs/customizing.html +++ b/docs/customizing.html @@ -36,6 +36,7 @@
  • Badges
  • Buttons
  • Dropdowns
  • +
  • File Buttons
  • Forms
  • Grid System
  • Loaders
  • diff --git a/docs/dropdowns.html b/docs/dropdowns.html index d8bd8f929..0c77c2e14 100644 --- a/docs/dropdowns.html +++ b/docs/dropdowns.html @@ -36,6 +36,7 @@
  • Badges
  • Buttons
  • Dropdowns
  • +
  • File Buttons
  • Forms
  • Grid System
  • Loaders
  • diff --git a/docs/file-buttons.html b/docs/file-buttons.html new file mode 100644 index 000000000..f1e725146 --- /dev/null +++ b/docs/file-buttons.html @@ -0,0 +1,190 @@ + + + + + + + + + + + + File Buttons + + + + + +
    +
    + + +
    +
    +

    File Buttons

    +

    File inputs are notoriously hard to style consistently in every browser. Shoelace offers file buttons as an alternative.

    +

    File buttons are much easier to style, but come with the caveat that the name and number of files selected will not be automatically shown to the user. This aspect of a file button’s UX can be handled effectively with JavaScript, but this is left as an exercise for the user.

    +

    To create a file button, use the following markup. Note that the input needs to have an id and the label needs to have a matching for attribute. The label also needs to have the button class.

    +
    <span class="file-button">
    +  <input type="file" id="my-file">
    +  <label class="button" for="my-file">Select File</label>
    +</span>
    +
    +

    + + +

    +

    This approach is a bit more verbose than simply wrapping the input with a label, but the extra markup makes file buttons accessible via keyboard.

    +

    You can allow multiple files to be selected by adding the multiple attribute:

    +
    <span class="file-button">
    +  <input type="file" id="my-files" multiple>
    +  <label class="button" for="my-files">Select Files</label>
    +</span>
    +
    +

    + + +

    +

    Variations

    +

    File buttons can use button modifiers. Just apply the appropriate classes to the label.

    +

    + + + + + + + + + + + + + + + + + + +

    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +

    You can also use file buttons in input groups.

    +
    + + + + + + +
    + +
    +
    +
    + + + + + + + + + + diff --git a/docs/forms.html b/docs/forms.html index c8050530b..73c766892 100644 --- a/docs/forms.html +++ b/docs/forms.html @@ -37,6 +37,7 @@
  • Badges
  • Buttons
  • Dropdowns
  • +
  • File Buttons
  • Forms
  • Grid System
  • Loaders
  • @@ -89,11 +90,14 @@ <input type="file">
    - File inputs aren’t supported. Use a file button instead. + File inputs aren’t supported. Use a file button instead. - + + + + diff --git a/docs/grid-system.html b/docs/grid-system.html index b5cdd6c37..9ba391472 100644 --- a/docs/grid-system.html +++ b/docs/grid-system.html @@ -36,6 +36,7 @@
  • Badges
  • Buttons
  • Dropdowns
  • +
  • File Buttons
  • Forms
  • Grid System
  • Loaders
  • diff --git a/docs/icons.html b/docs/icons.html index b530879c3..90bb29a07 100644 --- a/docs/icons.html +++ b/docs/icons.html @@ -37,6 +37,7 @@
  • Badges
  • Buttons
  • Dropdowns
  • +
  • File Buttons
  • Forms
  • Grid System
  • Loaders
  • diff --git a/docs/installing.html b/docs/installing.html index a98cbc52c..4f6ec7cd4 100644 --- a/docs/installing.html +++ b/docs/installing.html @@ -36,6 +36,7 @@
  • Badges
  • Buttons
  • Dropdowns
  • +
  • File Buttons
  • Forms
  • Grid System
  • Loaders
  • diff --git a/docs/loaders.html b/docs/loaders.html index 05f4d18e8..dc57f73b1 100644 --- a/docs/loaders.html +++ b/docs/loaders.html @@ -36,6 +36,7 @@
  • Badges
  • Buttons
  • Dropdowns
  • +
  • File Buttons
  • Forms
  • Grid System
  • Loaders
  • diff --git a/docs/progress-bars.html b/docs/progress-bars.html index 9f16595b5..e98d6ff5a 100644 --- a/docs/progress-bars.html +++ b/docs/progress-bars.html @@ -36,6 +36,7 @@
  • Badges
  • Buttons
  • Dropdowns
  • +
  • File Buttons
  • Forms
  • Grid System
  • Loaders
  • diff --git a/docs/switches.html b/docs/switches.html index 6df951ad8..b55fde361 100644 --- a/docs/switches.html +++ b/docs/switches.html @@ -36,6 +36,7 @@
  • Badges
  • Buttons
  • Dropdowns
  • +
  • File Buttons
  • Forms
  • Grid System
  • Loaders
  • diff --git a/docs/tables.html b/docs/tables.html index 6a5250d32..cedfe7bf1 100644 --- a/docs/tables.html +++ b/docs/tables.html @@ -36,6 +36,7 @@
  • Badges
  • Buttons
  • Dropdowns
  • +
  • File Buttons
  • Forms
  • Grid System
  • Loaders
  • diff --git a/docs/tabs.html b/docs/tabs.html index f005453c9..45a5b3585 100644 --- a/docs/tabs.html +++ b/docs/tabs.html @@ -36,6 +36,7 @@
  • Badges
  • Buttons
  • Dropdowns
  • +
  • File Buttons
  • Forms
  • Grid System
  • Loaders
  • diff --git a/docs/utilities.html b/docs/utilities.html index ccba51b49..d38ceed87 100644 --- a/docs/utilities.html +++ b/docs/utilities.html @@ -36,6 +36,7 @@
  • Badges
  • Buttons
  • Dropdowns
  • +
  • File Buttons
  • Forms
  • Grid System
  • Loaders
  • diff --git a/source/css/buttons.css b/source/css/buttons.css index 6f1bab79c..d9fd1b5d9 100644 --- a/source/css/buttons.css +++ b/source/css/buttons.css @@ -311,11 +311,6 @@ button, } } -/* File buttons */ -label.button input[type="file"] { - display: none; -} - /* Loader buttons */ .button-loader, .button-loader:hover { diff --git a/source/css/file-buttons.css b/source/css/file-buttons.css new file mode 100644 index 000000000..a44aa53f5 --- /dev/null +++ b/source/css/file-buttons.css @@ -0,0 +1,25 @@ +/*! File buttons */ + +.file-button { + & input[type="file"] { + position: absolute; + height: 1px; + width: 1px; + background: none; + border: 0; + clip: rect(0 0 0 0); + clip-path: inset(50%); + overflow: hidden; + padding: 0; + + /* When the input receives focus, simulate button focus states on the label */ + &:focus + label { box-shadow: 0 0 0 var(--button-focus-width) color(var(--button-bg-color) alpha(50%)); } + &:focus + label.button-secondary { box-shadow: 0 0 0 var(--button-focus-width) color(var(--button-bg-color-secondary) alpha(50%)); } + &:focus + label.button-success { box-shadow: 0 0 0 var(--button-focus-width) color(var(--button-bg-color-success) alpha(50%)); } + &:focus + label.button-info { box-shadow: 0 0 0 var(--button-focus-width) color(var(--button-bg-color-info) alpha(50%)); } + &:focus + label.button-warning { box-shadow: 0 0 0 var(--button-focus-width) color(var(--button-bg-color-warning) alpha(50%)); } + &:focus + label.button-danger { box-shadow: 0 0 0 var(--button-focus-width) color(var(--button-bg-color-danger) alpha(50%)); } + &:focus + label.button-light { box-shadow: 0 0 0 var(--button-focus-width) color(var(--button-bg-color-light) alpha(50%)); } + &:focus + label.button-dark { box-shadow: 0 0 0 var(--button-focus-width) color(var(--button-bg-color-dark) alpha(50%)); } + } +} diff --git a/source/css/forms.css b/source/css/forms.css index 7df145eb9..5f7016120 100644 --- a/source/css/forms.css +++ b/source/css/forms.css @@ -273,6 +273,7 @@ input[type="range"] { & > .button, & > .dropdown button, & > .dropdown .button, + & > .file-button label, & > .input-icon input, & > .input-icon select { border-radius: 0; @@ -283,6 +284,7 @@ input[type="range"] { & > .button:first-child, & > .dropdown:first-child button, & > .dropdown:first-child .button, + & > .file-button:first-child label, & > .input-icon:first-child input, & > .input-icon:first-child select { border-top-left-radius: var(--input-border-radius); @@ -294,6 +296,7 @@ input[type="range"] { & > .button:last-child, & > .dropdown:last-child button, & > .dropdown:last-child .button, + & > .file-button:last-child label, & > .input-icon:last-child input, & > .input-icon:last-child select { border-top-right-radius: var(--input-border-radius); @@ -309,9 +312,10 @@ input[type="range"] { margin-left: calc(var(--input-border-width) * -1); } + /* Force a new stacking context so focus rings don't get truncated by adjacent elements */ & button:focus, - & .button:focus { - /* Force a new stacking context so focus rings don't get truncated by adjacent elements */ + & .button:focus, + & .file-button input[type="file"]:focus + label { transform: translateZ(0); } } diff --git a/source/css/shoelace.css b/source/css/shoelace.css index d57e9fbeb..43cbb2977 100644 --- a/source/css/shoelace.css +++ b/source/css/shoelace.css @@ -12,6 +12,7 @@ @import url('badges.css'); @import url('buttons.css'); @import url('dropdowns.css'); +@import url('file-buttons.css'); @import url('forms.css'); @import url('grid.css'); @import url('loaders.css'); diff --git a/source/docs/buttons.md b/source/docs/buttons.md index 7817ebd0a..070fbb85b 100644 --- a/source/docs/buttons.md +++ b/source/docs/buttons.md @@ -147,20 +147,3 @@ Loader buttons also work with button variations. - -### File Buttons - -File inputs are notoriously hard to style properly in every browser. Shoelace offers file buttons as an alternative. These are much easier to style consistently, but come with the caveat that the name (or number) of files selected will not be automatically shown to the user. This aspect of a file button’s UX can be handled effectively with JavaScript, but this is left as an [exercise for the user](https://stackoverflow.com/questions/2189615/how-to-get-file-name-when-user-select-a-file-via-input-type-file). - -File buttons are simply `