From 5b4a224c4cad68a76b94e1635696925d13ea45f6 Mon Sep 17 00:00:00 2001 From: Angelos Chalaris Date: Sun, 30 Oct 2016 22:15:18 +0200 Subject: [PATCH] Initial commit for checkboxes --- docs/v2/DEVLOG.md | 9 +++++ docs/v2/index.html | 12 +++++++ flavors/v2/mini-default.css | 50 +++++++++++++++++++++----- flavors/v2/mini-default.min.css | 2 +- scss/v2/_core.scss | 1 + scss/v2/mini-core/_checkbox.scss | 62 ++++++++++++++++++++++++++++++++ scss/v2/mini-core/_form.scss | 42 +++++++++++----------- 7 files changed, 147 insertions(+), 31 deletions(-) create mode 100644 scss/v2/mini-core/_checkbox.scss diff --git a/docs/v2/DEVLOG.md b/docs/v2/DEVLOG.md index b794c5a..8473942 100644 --- a/docs/v2/DEVLOG.md +++ b/docs/v2/DEVLOG.md @@ -226,3 +226,12 @@ - Decided to avoid styling `search` `input` `type`s, due to lack of support for magnifying lens icon for most search inputs. Generally speaking this can easily be added by the user. - Reorganized the loading order of modules in `core`. - Added `search` fixes to `form` module. +- *DESIGN DECISION* To deal with accessibility concerns and the very "hacky" way navigation was implemented in the previous version, the following design decisions have been made. + 1. The top menu will be based around the `header` element and will not be able to do `display: fixed`. This will allow content over the fold to appear when important content exists in the menu. Space for a logo and some additional things will be added there. + 2. `nav` will be used as a vertical menu, not `fixed`, that will display any navigational content as required by the user. This is the traditional navigation menu. It will be embeddable in a grid column left or right based on user preference. + 3. Dropdown components will be removed, as the top bar does not need them to work properly and the side bar can be toggled with code. + 4. Sidebar collapsing will not be added as a checkbox hack anymore, but users will be able to use Javascript for that. + 5. An example of Javascript will be added for said collapse. +- All `checkbox` and `radio` elements will be `display: none` by default. Grouping one in an `input-group` with a `label` will give the desired style to the label. +- Created module `mini-core/checkbox`. +- Started styling `checkbox`es and `radio` buttons. Got most of the styling done, hardcoded. diff --git a/docs/v2/index.html b/docs/v2/index.html index 9fe91b5..e25deb5 100644 --- a/docs/v2/index.html +++ b/docs/v2/index.html @@ -318,6 +318,18 @@ +

Checkboxes and Radio buttons

+

Checkboxes and radio buttons are styled using the checkbox hack, while keeping things simple and adding just the needed consistency for those input types. You can see some examples below:

+
+
+ +

+
+ + + +
+
diff --git a/flavors/v2/mini-default.css b/flavors/v2/mini-default.css index 8316d98..b520729 100644 --- a/flavors/v2/mini-default.css +++ b/flavors/v2/mini-default.css @@ -570,6 +570,14 @@ legend { textarea { overflow: auto; } +[type="search"] { + -webkit-appearance: textfield; + outline-offset: -2px; } + +[type="search"]::-webkit-search-cancel-button, +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; } + input:not([type]), [type="text"], [type="email"], [type="number"], [type="search"], [type="password"], [type="url"], [type="tel"], textarea, select { box-sizing: border-box; @@ -607,14 +615,6 @@ input:not([type]), [type="text"], [type="email"], [type="number"], [type="search ::-ms-placeholder { color: #37474f; } -[type="search"] { - -webkit-appearance: textfield; - outline-offset: -2px; } - -[type="search"]::-webkit-search-cancel-button, -[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; } - button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner { border-style: none; padding: 0; } @@ -647,6 +647,40 @@ button, [type="button"], [type="submit"], [type="reset"], a.button, label.button input[type="file"] { display: none; } +[type="checkbox"], [type="radio"] { + display: none; } + +.input-group [type="checkbox"] + label, .input-group [type="radio"] + label { + position: relative; + margin-left: 21px; } + .input-group [type="checkbox"] + label:before, .input-group [type="radio"] + label:before { + box-sizing: border-box; + position: absolute; + display: inline-block; + width: 17px; + height: 17px; + content: ''; + border: 1px solid #b0bec5; + border-radius: 1px; + background: #fafafa; + color: #212121; + margin-left: -21px; + vertical-align: text-bottom; + padding: 2px; + top: 0; + left: 0; } +.input-group [type="radio"] + label:before, .input-group [type="radio"] + label:after { + border-radius: 50%; } +.input-group [type="checkbox"]:checked + label:after { + margin-left: -21px; + position: absolute; + top: 4px; + left: 4px; + width: 9px; + height: 9px; + background: #212121; + content: ''; } + mark { background: #0277bd; color: #fafafa; diff --git a/flavors/v2/mini-default.min.css b/flavors/v2/mini-default.min.css index b875db4..6ac08fb 100644 --- a/flavors/v2/mini-default.min.css +++ b/flavors/v2/mini-default.min.css @@ -1 +1 @@ -*,html{font-family:"Helvetica Neue",Helvetica,sans-serif;font-size:1em;line-height:1.5;-webkit-text-size-adjust:100%}body{margin:0;color:#212121;background:#fafafa}article,aside,figcaption,figure,footer,header,main,nav,section{display:block}abbr[title]{border-bottom:none;text-decoration:underline}audio,video{display:inline-block}svg:not(:root){overflow:hidden}input{overflow:visible}h1,h2,h3,h4,h5,h6{line-height:1.2em;margin:.7em 8px;font-weight:500}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{color:#424242;display:block;margin-top:-.35em;font-size:45%}h1{font-size:2em}h2{font-size:1.5em}h3{font-size:1.15em}h4{font-size:1em}h5{font-size:.85em}h6{font-size:.75em}p{margin:1px 10px}b,strong{font-weight:700}hr{box-sizing:content-box;border:0;overflow:visible;line-height:1.2em;margin:.5em 4px;height:1px;background:-webkit-linear-gradient(to right,#bdbdbd,#616161,#bdbdbd);background:linear-gradient(to right,#bdbdbd,#616161,#bdbdbd)}code,kbd,pre,samp{font-family:monospace,monospace}code{border-radius:2px;background:#e0e0e0;padding:2px 4px}pre{overflow:auto;border-radius:0 2px 2px 0;background:#e0e0e0;padding:12px;margin:1px 10px;border-left:3px solid #1565c0}kbd{border-radius:2px;background:#212121;color:#fafafa;padding:2px 4px}small,sub,sup{font-size:75%}sup{top:-.5em}sub{bottom:-.25em}sub,sup{line-height:0;position:relative;vertical-align:baseline}a{color:#0277bd;text-decoration:underline;opacity:1;transition:all .3s ease 0s}a:visited{color:#01579b}a:active,a:focus,a:hover{opacity:.75}.container{margin:0 auto;padding:0 10px}.row{box-sizing:border-box;-webkit-box-flex:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;display:-webkit-flex;display:flex;-webkit-flex:0 1 auto;flex:0 1 auto;-webkit-flex-flow:row wrap;flex-flow:row wrap}.col-sm,[class^=col-sm-],[class^=col-sm-offset-]{box-sizing:border-box;-webkit-box-flex:0;-webkit-flex:0 0 auto;flex:0 0 auto;padding:0 4px}.col-sm{-webkit-box-flex:1;max-width:100%;-webkit-flex-grow:1;flex-grow:1;-webkit-flex-basis:0;flex-basis:0}.col-sm-1{max-width:8.33333%;-webkit-flex-basis:8.33333%;flex-basis:8.33333%}.col-sm-2{max-width:16.66667%;-webkit-flex-basis:16.66667%;flex-basis:16.66667%}.col-sm-3{max-width:25%;-webkit-flex-basis:25%;flex-basis:25%}.col-sm-4{max-width:33.33333%;-webkit-flex-basis:33.33333%;flex-basis:33.33333%}.col-sm-5{max-width:41.66667%;-webkit-flex-basis:41.66667%;flex-basis:41.66667%}.col-sm-6{max-width:50%;-webkit-flex-basis:50%;flex-basis:50%}.col-sm-7{max-width:58.33333%;-webkit-flex-basis:58.33333%;flex-basis:58.33333%}.col-sm-8{max-width:66.66667%;-webkit-flex-basis:66.66667%;flex-basis:66.66667%}.col-sm-9{max-width:75%;-webkit-flex-basis:75%;flex-basis:75%}.col-sm-10{max-width:83.33333%;-webkit-flex-basis:83.33333%;flex-basis:83.33333%}.col-sm-11{max-width:91.66667%;-webkit-flex-basis:91.66667%;flex-basis:91.66667%}.col-sm-12{max-width:100%;-webkit-flex-basis:100%;flex-basis:100%}.col-sm-offset-0{margin-left:0}.col-sm-offset-1{margin-left:8.33333%}.col-sm-offset-2{margin-left:16.66667%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.33333%}.col-sm-offset-5{margin-left:41.66667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.33333%}.col-sm-offset-8{margin-left:66.66667%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.33333%}.col-sm-offset-11{margin-left:91.66667%}@media only screen and (min-width:800px){.col-md,[class^=col-md-],[class^=col-md-offset-]{box-sizing:border-box;-webkit-box-flex:0;-webkit-flex:0 0 auto;flex:0 0 auto;padding:0 4px}.col-md{-webkit-box-flex:1;max-width:100%;-webkit-flex-grow:1;flex-grow:1;-webkit-flex-basis:0;flex-basis:0}.col-md-1{max-width:8.33333%;-webkit-flex-basis:8.33333%;flex-basis:8.33333%}.col-md-2{max-width:16.66667%;-webkit-flex-basis:16.66667%;flex-basis:16.66667%}.col-md-3{max-width:25%;-webkit-flex-basis:25%;flex-basis:25%}.col-md-4{max-width:33.33333%;-webkit-flex-basis:33.33333%;flex-basis:33.33333%}.col-md-5{max-width:41.66667%;-webkit-flex-basis:41.66667%;flex-basis:41.66667%}.col-md-6{max-width:50%;-webkit-flex-basis:50%;flex-basis:50%}.col-md-7{max-width:58.33333%;-webkit-flex-basis:58.33333%;flex-basis:58.33333%}.col-md-8{max-width:66.66667%;-webkit-flex-basis:66.66667%;flex-basis:66.66667%}.col-md-9{max-width:75%;-webkit-flex-basis:75%;flex-basis:75%}.col-md-10{max-width:83.33333%;-webkit-flex-basis:83.33333%;flex-basis:83.33333%}.col-md-11{max-width:91.66667%;-webkit-flex-basis:91.66667%;flex-basis:91.66667%}.col-md-12{max-width:100%;-webkit-flex-basis:100%;flex-basis:100%}.col-md-offset-0{margin-left:0}.col-md-offset-1{margin-left:8.33333%}.col-md-offset-2{margin-left:16.66667%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.33333%}.col-md-offset-5{margin-left:41.66667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.33333%}.col-md-offset-8{margin-left:66.66667%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.33333%}.col-md-offset-11{margin-left:91.66667%}}@media only screen and (min-width:1080px){.col-lg,[class^=col-lg-],[class^=col-lg-offset-]{box-sizing:border-box;-webkit-box-flex:0;-webkit-flex:0 0 auto;flex:0 0 auto;padding:0 4px}.col-lg{-webkit-box-flex:1;max-width:100%;-webkit-flex-grow:1;flex-grow:1;-webkit-flex-basis:0;flex-basis:0}.col-lg-1{max-width:8.33333%;-webkit-flex-basis:8.33333%;flex-basis:8.33333%}.col-lg-2{max-width:16.66667%;-webkit-flex-basis:16.66667%;flex-basis:16.66667%}.col-lg-3{max-width:25%;-webkit-flex-basis:25%;flex-basis:25%}.col-lg-4{max-width:33.33333%;-webkit-flex-basis:33.33333%;flex-basis:33.33333%}.col-lg-5{max-width:41.66667%;-webkit-flex-basis:41.66667%;flex-basis:41.66667%}.col-lg-6{max-width:50%;-webkit-flex-basis:50%;flex-basis:50%}.col-lg-7{max-width:58.33333%;-webkit-flex-basis:58.33333%;flex-basis:58.33333%}.col-lg-8{max-width:66.66667%;-webkit-flex-basis:66.66667%;flex-basis:66.66667%}.col-lg-9{max-width:75%;-webkit-flex-basis:75%;flex-basis:75%}.col-lg-10{max-width:83.33333%;-webkit-flex-basis:83.33333%;flex-basis:83.33333%}.col-lg-11{max-width:91.66667%;-webkit-flex-basis:91.66667%;flex-basis:91.66667%}.col-lg-12{max-width:100%;-webkit-flex-basis:100%;flex-basis:100%}.col-lg-offset-0{margin-left:0}.col-lg-offset-1{margin-left:8.33333%}.col-lg-offset-2{margin-left:16.66667%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.33333%}.col-lg-offset-5{margin-left:41.66667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.33333%}.col-lg-offset-8{margin-left:66.66667%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.33333%}.col-lg-offset-11{margin-left:91.66667%}}table{border-collapse:separate;border-spacing:0;border:1px solid #bdbdbd;border-radius:2px;margin:0 auto}caption{font-size:1.5em;margin:6px 0 12px}tr{padding:6px}td,th{padding:10px;border-left:1px solid #bdbdbd;border-top:1px solid #bdbdbd}th{border-top:0;background:#eceff1}td:first-child,th:first-child{border-left:0}@media only screen and (max-width:768px){table{border-collapse:collapse;border:0;width:100%}thead{border:0;height:1px;width:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;clip:rect(0 0 0 0);-webkit-clip-path:inset(100%);clip-path:inset(100%)}tr{display:block;border:1px solid #bdbdbd;border-radius:2px;margin-bottom:10px}td{display:block;border:0;border-bottom:1px solid #bdbdbd;text-align:right}td:before{content:attr(data-label);float:left;font-weight:700}td:last-child{border-bottom:0}}form{background:#eceff1;border:1px solid #90a4ae;border-radius:2px;margin:8px;padding:8px}fieldset{border:1px solid #b0bec5;border-radius:1px;margin:0;padding:4px 6px 8px}legend{box-sizing:border-box;display:table;max-width:100%;white-space:normal;font-weight:700;font-size:.85em;padding:4px}.input-group{display:inline-block}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}textarea{overflow:auto}[type=email],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=url],input:not([type]),select,textarea{box-sizing:border-box;background:#fafafa;color:#212121;border:1px solid #b0bec5;border-radius:1px;margin:2px;padding:6px 8px}[type=email]:focus,[type=number]:focus,[type=password]:focus,[type=search]:focus,[type=tel]:focus,[type=text]:focus,[type=url]:focus,input:not([type]):focus,select:focus,textarea:focus{border-color:#0288d1;box-shadow:none}[type=email][disabled],[type=number][disabled],[type=password][disabled],[type=search][disabled],[type=tel][disabled],[type=text][disabled],[type=url][disabled],input:not([type])[disabled],select[disabled],textarea[disabled]{cursor:not-allowed;opacity:.75}[type=email]:focus:invalid,[type=email]:focus:invalid:focus,[type=email]:invalid,[type=number]:focus:invalid,[type=number]:focus:invalid:focus,[type=number]:invalid,[type=password]:focus:invalid,[type=password]:focus:invalid:focus,[type=password]:invalid,[type=search]:focus:invalid,[type=search]:focus:invalid:focus,[type=search]:invalid,[type=tel]:focus:invalid,[type=tel]:focus:invalid:focus,[type=tel]:invalid,[type=text]:focus:invalid,[type=text]:focus:invalid:focus,[type=text]:invalid,[type=url]:focus:invalid,[type=url]:focus:invalid:focus,[type=url]:invalid,input:not([type]):focus:invalid,input:not([type]):focus:invalid:focus,input:not([type]):invalid,select:focus:invalid,select:focus:invalid:focus,select:invalid,textarea:focus:invalid,textarea:focus:invalid:focus,textarea:invalid{border-color:#d32f2f;box-shadow:none}[type=email][readonly],[type=number][readonly],[type=password][readonly],[type=search][readonly],[type=tel][readonly],[type=text][readonly],[type=url][readonly],input:not([type])[readonly],select[readonly],textarea[readonly]{background-color:#eceff1;border-color:#90a4ae}::-webkit-placeholder{color:#37474f}::-moz-placeholder{color:#37474f}::-ms-placeholder{color:#37474f}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}button{overflow:visible;text-transform:none}.button,[type=button],[type=reset],[type=submit],a.button,button,label.button{display:inline-block;background:rgba(207,216,220,.75);color:#212121;border:0;border-radius:2px;padding:4px 6px;margin:4px;text-decoration:none;transition:all .3s ease 0s;cursor:pointer}.button:active,.button:focus,.button:hover,[type=button]:active,[type=button]:focus,[type=button]:hover,[type=reset]:active,[type=reset]:focus,[type=reset]:hover,[type=submit]:active,[type=submit]:focus,[type=submit]:hover,a.button:active,a.button:focus,a.button:hover,button:active,button:focus,button:hover,label.button:active,label.button:focus,label.button:hover{background:#cfd8dc;opacity:1}.button:disabled,.button[disabled],[type=button]:disabled,[type=button][disabled],[type=reset]:disabled,[type=reset][disabled],[type=submit]:disabled,[type=submit][disabled],a.button:disabled,a.button[disabled],button:disabled,button[disabled],label.button:disabled,label.button[disabled]{cursor:not-allowed;opacity:.65}input[type=file]{display:none}mark{background:#0277bd;color:#fafafa;font-size:95%;line-height:1;padding:1px}progress{display:block;vertical-align:baseline;-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:10px;border:0;border-radius:1px;margin:1px auto;background:#f5f5f5;color:#01579b}progress::-webkit-progress-value{background:#01579b;border-top-left-radius:1px;border-bottom-left-radius:1px}progress::-webkit-progress-bar{background:#f5f5f5}progress::-moz-progress-bar{background:#01579b;border-top-left-radius:1px;border-bottom-left-radius:1px}progress[value="100"]::-webkit-progress-value{border-radius:1px}progress[value="100"]::-moz-progress-bar{border-radius:1px}details,menu{display:block}summary{display:list-item}.button.primary,[type=button].primary,[type=reset].primary,[type=submit].primary,button.primary{background:#1565c0;color:#fafafa}.button.primary:active,.button.primary:focus,.button.primary:hover,[type=button].primary:active,[type=button].primary:focus,[type=button].primary:hover,[type=reset].primary:active,[type=reset].primary:focus,[type=reset].primary:hover,[type=submit].primary:active,[type=submit].primary:focus,[type=submit].primary:hover,button.primary:active,button.primary:focus,button.primary:hover{background:rgba(21,101,192,.85)}.button.secondary,[type=button].secondary,[type=reset].secondary,[type=submit].secondary,button.secondary{background:rgba(198,40,40,.85);color:#fafafa}.button.secondary:active,.button.secondary:focus,.button.secondary:hover,[type=button].secondary:active,[type=button].secondary:focus,[type=button].secondary:hover,[type=reset].secondary:active,[type=reset].secondary:focus,[type=reset].secondary:hover,[type=submit].secondary:active,[type=submit].secondary:focus,[type=submit].secondary:hover,button.secondary:active,button.secondary:focus,button.secondary:hover{background:#c62828}.button.tertiary,[type=button].tertiary,[type=reset].tertiary,[type=submit].tertiary,button.tertiary{background:rgba(139,195,74,.8)}.button.tertiary:active,.button.tertiary:focus,.button.tertiary:hover,[type=button].tertiary:active,[type=button].tertiary:focus,[type=button].tertiary:hover,[type=reset].tertiary:active,[type=reset].tertiary:focus,[type=reset].tertiary:hover,[type=submit].tertiary:active,[type=submit].tertiary:focus,[type=submit].tertiary:hover,button.tertiary:active,button.tertiary:focus,button.tertiary:hover{background:#8bc34a}.button.small,[type=button].small,[type=reset].small,[type=submit].small,button.small{border-radius:1px;padding:1px 2px;margin:2px}.button.large,[type=button].large,[type=reset].large,[type=submit].large,button.large{border-radius:4px;padding:10px 15px;margin:7px}mark.secondary{background:#f44336}mark.tertiary{background:#558b2f}mark.tag{display:inline-block;border-radius:2px;padding:2px}mark.bubble{display:inline-block;border-radius:200px;padding:3px 5px}progress.inline{display:inline-block;vertical-align:middle;width:20em}progress.secondary{color:#e53935}progress.secondary::-webkit-progress-value{background:#e53935}progress.secondary::-moz-progress-bar{background:#e53935}progress.tertiary{color:#689f38}progress.tertiary::-webkit-progress-value{background:#689f38}progress.tertiary::-moz-progress-bar{background:#689f38}progress.nano{height:2px;margin:0 auto 1px;border-radius:0}progress.nano::-webkit-progress-value{border-top-left-radius:0;border-bottom-left-radius:0}progress.nano::-moz-progress-bar{border-top-left-radius:0;border-bottom-left-radius:0}progress.nano[value="100"]::-webkit-progress-value{border-radius:0}progress.nano[value="100"]::-moz-progress-bar{border-radius:0} \ No newline at end of file +*,html{font-family:"Helvetica Neue",Helvetica,sans-serif;font-size:1em;line-height:1.5;-webkit-text-size-adjust:100%}body{margin:0;color:#212121;background:#fafafa}article,aside,figcaption,figure,footer,header,main,nav,section{display:block}abbr[title]{border-bottom:none;text-decoration:underline}audio,video{display:inline-block}svg:not(:root){overflow:hidden}input{overflow:visible}h1,h2,h3,h4,h5,h6{line-height:1.2em;margin:.7em 8px;font-weight:500}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{color:#424242;display:block;margin-top:-.35em;font-size:45%}h1{font-size:2em}h2{font-size:1.5em}h3{font-size:1.15em}h4{font-size:1em}h5{font-size:.85em}h6{font-size:.75em}p{margin:1px 10px}b,strong{font-weight:700}hr{box-sizing:content-box;border:0;overflow:visible;line-height:1.2em;margin:.5em 4px;height:1px;background:-webkit-linear-gradient(to right,#bdbdbd,#616161,#bdbdbd);background:linear-gradient(to right,#bdbdbd,#616161,#bdbdbd)}code,kbd,pre,samp{font-family:monospace,monospace}code{border-radius:2px;background:#e0e0e0;padding:2px 4px}pre{overflow:auto;border-radius:0 2px 2px 0;background:#e0e0e0;padding:12px;margin:1px 10px;border-left:3px solid #1565c0}kbd{border-radius:2px;background:#212121;color:#fafafa;padding:2px 4px}small,sub,sup{font-size:75%}sup{top:-.5em}sub{bottom:-.25em}sub,sup{line-height:0;position:relative;vertical-align:baseline}a{color:#0277bd;text-decoration:underline;opacity:1;transition:all .3s ease 0s}a:visited{color:#01579b}a:active,a:focus,a:hover{opacity:.75}.container{margin:0 auto;padding:0 10px}.row{box-sizing:border-box;-webkit-box-flex:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;display:-webkit-flex;display:flex;-webkit-flex:0 1 auto;flex:0 1 auto;-webkit-flex-flow:row wrap;flex-flow:row wrap}.col-sm,[class^=col-sm-],[class^=col-sm-offset-]{box-sizing:border-box;-webkit-box-flex:0;-webkit-flex:0 0 auto;flex:0 0 auto;padding:0 4px}.col-sm{-webkit-box-flex:1;max-width:100%;-webkit-flex-grow:1;flex-grow:1;-webkit-flex-basis:0;flex-basis:0}.col-sm-1{max-width:8.33333%;-webkit-flex-basis:8.33333%;flex-basis:8.33333%}.col-sm-2{max-width:16.66667%;-webkit-flex-basis:16.66667%;flex-basis:16.66667%}.col-sm-3{max-width:25%;-webkit-flex-basis:25%;flex-basis:25%}.col-sm-4{max-width:33.33333%;-webkit-flex-basis:33.33333%;flex-basis:33.33333%}.col-sm-5{max-width:41.66667%;-webkit-flex-basis:41.66667%;flex-basis:41.66667%}.col-sm-6{max-width:50%;-webkit-flex-basis:50%;flex-basis:50%}.col-sm-7{max-width:58.33333%;-webkit-flex-basis:58.33333%;flex-basis:58.33333%}.col-sm-8{max-width:66.66667%;-webkit-flex-basis:66.66667%;flex-basis:66.66667%}.col-sm-9{max-width:75%;-webkit-flex-basis:75%;flex-basis:75%}.col-sm-10{max-width:83.33333%;-webkit-flex-basis:83.33333%;flex-basis:83.33333%}.col-sm-11{max-width:91.66667%;-webkit-flex-basis:91.66667%;flex-basis:91.66667%}.col-sm-12{max-width:100%;-webkit-flex-basis:100%;flex-basis:100%}.col-sm-offset-0{margin-left:0}.col-sm-offset-1{margin-left:8.33333%}.col-sm-offset-2{margin-left:16.66667%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.33333%}.col-sm-offset-5{margin-left:41.66667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.33333%}.col-sm-offset-8{margin-left:66.66667%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.33333%}.col-sm-offset-11{margin-left:91.66667%}@media only screen and (min-width:800px){.col-md,[class^=col-md-],[class^=col-md-offset-]{box-sizing:border-box;-webkit-box-flex:0;-webkit-flex:0 0 auto;flex:0 0 auto;padding:0 4px}.col-md{-webkit-box-flex:1;max-width:100%;-webkit-flex-grow:1;flex-grow:1;-webkit-flex-basis:0;flex-basis:0}.col-md-1{max-width:8.33333%;-webkit-flex-basis:8.33333%;flex-basis:8.33333%}.col-md-2{max-width:16.66667%;-webkit-flex-basis:16.66667%;flex-basis:16.66667%}.col-md-3{max-width:25%;-webkit-flex-basis:25%;flex-basis:25%}.col-md-4{max-width:33.33333%;-webkit-flex-basis:33.33333%;flex-basis:33.33333%}.col-md-5{max-width:41.66667%;-webkit-flex-basis:41.66667%;flex-basis:41.66667%}.col-md-6{max-width:50%;-webkit-flex-basis:50%;flex-basis:50%}.col-md-7{max-width:58.33333%;-webkit-flex-basis:58.33333%;flex-basis:58.33333%}.col-md-8{max-width:66.66667%;-webkit-flex-basis:66.66667%;flex-basis:66.66667%}.col-md-9{max-width:75%;-webkit-flex-basis:75%;flex-basis:75%}.col-md-10{max-width:83.33333%;-webkit-flex-basis:83.33333%;flex-basis:83.33333%}.col-md-11{max-width:91.66667%;-webkit-flex-basis:91.66667%;flex-basis:91.66667%}.col-md-12{max-width:100%;-webkit-flex-basis:100%;flex-basis:100%}.col-md-offset-0{margin-left:0}.col-md-offset-1{margin-left:8.33333%}.col-md-offset-2{margin-left:16.66667%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.33333%}.col-md-offset-5{margin-left:41.66667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.33333%}.col-md-offset-8{margin-left:66.66667%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.33333%}.col-md-offset-11{margin-left:91.66667%}}@media only screen and (min-width:1080px){.col-lg,[class^=col-lg-],[class^=col-lg-offset-]{box-sizing:border-box;-webkit-box-flex:0;-webkit-flex:0 0 auto;flex:0 0 auto;padding:0 4px}.col-lg{-webkit-box-flex:1;max-width:100%;-webkit-flex-grow:1;flex-grow:1;-webkit-flex-basis:0;flex-basis:0}.col-lg-1{max-width:8.33333%;-webkit-flex-basis:8.33333%;flex-basis:8.33333%}.col-lg-2{max-width:16.66667%;-webkit-flex-basis:16.66667%;flex-basis:16.66667%}.col-lg-3{max-width:25%;-webkit-flex-basis:25%;flex-basis:25%}.col-lg-4{max-width:33.33333%;-webkit-flex-basis:33.33333%;flex-basis:33.33333%}.col-lg-5{max-width:41.66667%;-webkit-flex-basis:41.66667%;flex-basis:41.66667%}.col-lg-6{max-width:50%;-webkit-flex-basis:50%;flex-basis:50%}.col-lg-7{max-width:58.33333%;-webkit-flex-basis:58.33333%;flex-basis:58.33333%}.col-lg-8{max-width:66.66667%;-webkit-flex-basis:66.66667%;flex-basis:66.66667%}.col-lg-9{max-width:75%;-webkit-flex-basis:75%;flex-basis:75%}.col-lg-10{max-width:83.33333%;-webkit-flex-basis:83.33333%;flex-basis:83.33333%}.col-lg-11{max-width:91.66667%;-webkit-flex-basis:91.66667%;flex-basis:91.66667%}.col-lg-12{max-width:100%;-webkit-flex-basis:100%;flex-basis:100%}.col-lg-offset-0{margin-left:0}.col-lg-offset-1{margin-left:8.33333%}.col-lg-offset-2{margin-left:16.66667%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.33333%}.col-lg-offset-5{margin-left:41.66667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.33333%}.col-lg-offset-8{margin-left:66.66667%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.33333%}.col-lg-offset-11{margin-left:91.66667%}}table{border-collapse:separate;border-spacing:0;border:1px solid #bdbdbd;border-radius:2px;margin:0 auto}caption{font-size:1.5em;margin:6px 0 12px}tr{padding:6px}td,th{padding:10px;border-left:1px solid #bdbdbd;border-top:1px solid #bdbdbd}th{border-top:0;background:#eceff1}td:first-child,th:first-child{border-left:0}@media only screen and (max-width:768px){table{border-collapse:collapse;border:0;width:100%}thead{border:0;height:1px;width:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;clip:rect(0 0 0 0);-webkit-clip-path:inset(100%);clip-path:inset(100%)}tr{display:block;border:1px solid #bdbdbd;border-radius:2px;margin-bottom:10px}td{display:block;border:0;border-bottom:1px solid #bdbdbd;text-align:right}td:before{content:attr(data-label);float:left;font-weight:700}td:last-child{border-bottom:0}}form{background:#eceff1;border:1px solid #90a4ae;border-radius:2px;margin:8px;padding:8px}fieldset{border:1px solid #b0bec5;border-radius:1px;margin:0;padding:4px 6px 8px}legend{box-sizing:border-box;display:table;max-width:100%;white-space:normal;font-weight:700;font-size:.85em;padding:4px}.input-group{display:inline-block}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}textarea{overflow:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}[type=email],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=url],input:not([type]),select,textarea{box-sizing:border-box;background:#fafafa;color:#212121;border:1px solid #b0bec5;border-radius:1px;margin:2px;padding:6px 8px}[type=email]:focus,[type=number]:focus,[type=password]:focus,[type=search]:focus,[type=tel]:focus,[type=text]:focus,[type=url]:focus,input:not([type]):focus,select:focus,textarea:focus{border-color:#0288d1;box-shadow:none}[type=email][disabled],[type=number][disabled],[type=password][disabled],[type=search][disabled],[type=tel][disabled],[type=text][disabled],[type=url][disabled],input:not([type])[disabled],select[disabled],textarea[disabled]{cursor:not-allowed;opacity:.75}[type=email]:focus:invalid,[type=email]:focus:invalid:focus,[type=email]:invalid,[type=number]:focus:invalid,[type=number]:focus:invalid:focus,[type=number]:invalid,[type=password]:focus:invalid,[type=password]:focus:invalid:focus,[type=password]:invalid,[type=search]:focus:invalid,[type=search]:focus:invalid:focus,[type=search]:invalid,[type=tel]:focus:invalid,[type=tel]:focus:invalid:focus,[type=tel]:invalid,[type=text]:focus:invalid,[type=text]:focus:invalid:focus,[type=text]:invalid,[type=url]:focus:invalid,[type=url]:focus:invalid:focus,[type=url]:invalid,input:not([type]):focus:invalid,input:not([type]):focus:invalid:focus,input:not([type]):invalid,select:focus:invalid,select:focus:invalid:focus,select:invalid,textarea:focus:invalid,textarea:focus:invalid:focus,textarea:invalid{border-color:#d32f2f;box-shadow:none}[type=email][readonly],[type=number][readonly],[type=password][readonly],[type=search][readonly],[type=tel][readonly],[type=text][readonly],[type=url][readonly],input:not([type])[readonly],select[readonly],textarea[readonly]{background-color:#eceff1;border-color:#90a4ae}::-webkit-placeholder{color:#37474f}::-moz-placeholder{color:#37474f}::-ms-placeholder{color:#37474f}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}button{overflow:visible;text-transform:none}.button,[type=button],[type=reset],[type=submit],a.button,button,label.button{display:inline-block;background:rgba(207,216,220,.75);color:#212121;border:0;border-radius:2px;padding:4px 6px;margin:4px;text-decoration:none;transition:all .3s ease 0s;cursor:pointer}.button:active,.button:focus,.button:hover,[type=button]:active,[type=button]:focus,[type=button]:hover,[type=reset]:active,[type=reset]:focus,[type=reset]:hover,[type=submit]:active,[type=submit]:focus,[type=submit]:hover,a.button:active,a.button:focus,a.button:hover,button:active,button:focus,button:hover,label.button:active,label.button:focus,label.button:hover{background:#cfd8dc;opacity:1}.button:disabled,.button[disabled],[type=button]:disabled,[type=button][disabled],[type=reset]:disabled,[type=reset][disabled],[type=submit]:disabled,[type=submit][disabled],a.button:disabled,a.button[disabled],button:disabled,button[disabled],label.button:disabled,label.button[disabled]{cursor:not-allowed;opacity:.65}[type=checkbox],[type=radio],input[type=file]{display:none}.input-group [type=checkbox]+label,.input-group [type=radio]+label{position:relative;margin-left:21px}.input-group [type=checkbox]+label:before,.input-group [type=radio]+label:before{box-sizing:border-box;position:absolute;display:inline-block;width:17px;height:17px;content:'';border:1px solid #b0bec5;border-radius:1px;background:#fafafa;color:#212121;margin-left:-21px;vertical-align:text-bottom;padding:2px;top:0;left:0}.input-group [type=radio]+label:after,.input-group [type=radio]+label:before{border-radius:50%}.input-group [type=checkbox]:checked+label:after{margin-left:-21px;position:absolute;top:4px;left:4px;width:9px;height:9px;background:#212121;content:''}mark{background:#0277bd;color:#fafafa;font-size:95%;line-height:1;padding:1px}progress{display:block;vertical-align:baseline;-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:10px;border:0;border-radius:1px;margin:1px auto;background:#f5f5f5;color:#01579b}progress::-webkit-progress-value{background:#01579b;border-top-left-radius:1px;border-bottom-left-radius:1px}progress::-webkit-progress-bar{background:#f5f5f5}progress::-moz-progress-bar{background:#01579b;border-top-left-radius:1px;border-bottom-left-radius:1px}progress[value="100"]::-webkit-progress-value{border-radius:1px}progress[value="100"]::-moz-progress-bar{border-radius:1px}details,menu{display:block}summary{display:list-item}.button.primary,[type=button].primary,[type=reset].primary,[type=submit].primary,button.primary{background:#1565c0;color:#fafafa}.button.primary:active,.button.primary:focus,.button.primary:hover,[type=button].primary:active,[type=button].primary:focus,[type=button].primary:hover,[type=reset].primary:active,[type=reset].primary:focus,[type=reset].primary:hover,[type=submit].primary:active,[type=submit].primary:focus,[type=submit].primary:hover,button.primary:active,button.primary:focus,button.primary:hover{background:rgba(21,101,192,.85)}.button.secondary,[type=button].secondary,[type=reset].secondary,[type=submit].secondary,button.secondary{background:rgba(198,40,40,.85);color:#fafafa}.button.secondary:active,.button.secondary:focus,.button.secondary:hover,[type=button].secondary:active,[type=button].secondary:focus,[type=button].secondary:hover,[type=reset].secondary:active,[type=reset].secondary:focus,[type=reset].secondary:hover,[type=submit].secondary:active,[type=submit].secondary:focus,[type=submit].secondary:hover,button.secondary:active,button.secondary:focus,button.secondary:hover{background:#c62828}.button.tertiary,[type=button].tertiary,[type=reset].tertiary,[type=submit].tertiary,button.tertiary{background:rgba(139,195,74,.8)}.button.tertiary:active,.button.tertiary:focus,.button.tertiary:hover,[type=button].tertiary:active,[type=button].tertiary:focus,[type=button].tertiary:hover,[type=reset].tertiary:active,[type=reset].tertiary:focus,[type=reset].tertiary:hover,[type=submit].tertiary:active,[type=submit].tertiary:focus,[type=submit].tertiary:hover,button.tertiary:active,button.tertiary:focus,button.tertiary:hover{background:#8bc34a}.button.small,[type=button].small,[type=reset].small,[type=submit].small,button.small{border-radius:1px;padding:1px 2px;margin:2px}.button.large,[type=button].large,[type=reset].large,[type=submit].large,button.large{border-radius:4px;padding:10px 15px;margin:7px}mark.secondary{background:#f44336}mark.tertiary{background:#558b2f}mark.tag{display:inline-block;border-radius:2px;padding:2px}mark.bubble{display:inline-block;border-radius:200px;padding:3px 5px}progress.inline{display:inline-block;vertical-align:middle;width:20em}progress.secondary{color:#e53935}progress.secondary::-webkit-progress-value{background:#e53935}progress.secondary::-moz-progress-bar{background:#e53935}progress.tertiary{color:#689f38}progress.tertiary::-webkit-progress-value{background:#689f38}progress.tertiary::-moz-progress-bar{background:#689f38}progress.nano{height:2px;margin:0 auto 1px;border-radius:0}progress.nano::-webkit-progress-value{border-top-left-radius:0;border-bottom-left-radius:0}progress.nano::-moz-progress-bar{border-top-left-radius:0;border-bottom-left-radius:0}progress.nano[value="100"]::-webkit-progress-value{border-radius:0}progress.nano[value="100"]::-moz-progress-bar{border-radius:0} \ No newline at end of file diff --git a/scss/v2/_core.scss b/scss/v2/_core.scss index cdda481..64863a5 100644 --- a/scss/v2/_core.scss +++ b/scss/v2/_core.scss @@ -348,6 +348,7 @@ a{ @import 'mini-core/table'; @import 'mini-core/form'; @import 'mini-core/button'; +@import 'mini-core/checkbox'; @import 'mini-core/contextual'; @import 'mini-core/progress'; diff --git a/scss/v2/mini-core/_checkbox.scss b/scss/v2/mini-core/_checkbox.scss new file mode 100644 index 0000000..481c668 --- /dev/null +++ b/scss/v2/mini-core/_checkbox.scss @@ -0,0 +1,62 @@ +// Definitions for checkboxes and radio button elements. +// Note: both elements are hidden by default and use labels to show their input state. +// Hide both input types. +[type="checkbox"], [type="radio"] { + display: none; +} +// Use input-group to setup the style for labels. +.#{$input-group-name} { + +[type="checkbox"] + label, [type="radio"] + label { +position: relative; +margin-left: 21px; +&:before { + box-sizing: border-box; + position: absolute; + display: inline-block; + width: 17px; + height: 17px; + content: ''; + border: 1px solid #b0bec5; + border-radius: 1px; + background: #fafafa; + color: #212121; + margin-left: -21px; + vertical-align: text-bottom; + padding: 2px; + top: 0; + left: 0; +} +} +[type="radio"] + label { +&:before, &:after { + border-radius: 50%; +} +} +[type="checkbox"][disabled] + label, [type="radio"][disabled] + label { +&:before { + +} +} +[type="checkbox"][readonly] + label, [type="radio"][readonly] + label { +&:before { + +} +} +[type="checkbox"]:checked + label{ +&:after { + margin-left: -21px; + position: absolute; + top: 4px; + left: 4px; + width: 9px; + height: 9px; + background: #212121; + content: ''; +} +} +} + +// TODO: Add a certain font-family like Arial to the afters to make sure they always display properly. +// TODO: Softcode, setup everything etc. +// TODO: Maybe move away from checkmark and change to a square instead. \ No newline at end of file diff --git a/scss/v2/mini-core/_form.scss b/scss/v2/mini-core/_form.scss index d45069c..fc585e4 100644 --- a/scss/v2/mini-core/_form.scss +++ b/scss/v2/mini-core/_form.scss @@ -1,6 +1,6 @@ // Definitions for forms and input elements. // Different elements are styled based on the same set of rules. - +// Base form styling. form { @if $form-back-color != $back-color { background: $form-back-color; @@ -21,7 +21,7 @@ form { padding: $form-padding; } } - +// Fieldset styling. fieldset { @if $fieldset-back-color != $form-back-color { background: $fieldset-back-color; @@ -32,7 +32,7 @@ fieldset { margin: $fieldset-margin; padding: $fieldset-padding; } - +// Legend styling. legend { // IE and Edge fixes. box-sizing: border-box; @@ -49,19 +49,29 @@ legend { padding: $legend-padding; } } - +// Input group base naming. .#{$input-group-name} { display: inline-block; } - +// Correct the cursor style of increment and decrement buttons in Chrome. [type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button { - height: auto; // Correct the cursor style of increment and decrement buttons in Chrome. + height: auto; } - +// Remove the default vertical scrollbar in IE. textarea { - overflow: auto; // Remove the default vertical scrollbar in IE. + overflow: auto; } - +// Correct style in Chrome and Safari. +[type="search"] { + -webkit-appearance: textfield; + outline-offset: -2px; +} +// Correct style in Chrome and Safari. +[type="search"]::-webkit-search-cancel-button, +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} +// Common textual input styling. input:not([type]), [type="text"], [type="email"], [type="number"], [type="search"], [type="password"], [type="url"], [type="tel"], textarea, select { box-sizing: border-box; @@ -95,7 +105,7 @@ input:not([type]), [type="text"], [type="email"], [type="number"], [type="search border-color: $input-readonly-border-color; } } - +// Placeholder styling. ::-webkit-placeholder { color: $input-placeholder-fore-color; } @@ -104,16 +114,4 @@ input:not([type]), [type="text"], [type="email"], [type="number"], [type="search } ::-ms-placeholder { color: $input-placeholder-fore-color; -} - -// Correct style in Chrome and Safari. -[type="search"] { - -webkit-appearance: textfield; - outline-offset: -2px; -} - -// Correct style in Chrome and Safari. -[type="search"]::-webkit-search-cancel-button, -[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; } \ No newline at end of file