From 3cd5bf8843d04895f00064cc15f9c7601ce321b4 Mon Sep 17 00:00:00 2001 From: Josh Johnson Date: Fri, 26 Aug 2016 09:02:32 +0100 Subject: [PATCH] Ability to override choices selector names --- assets/styles/css/choices.css | 23 ++++---- assets/styles/css/choices.min.css | 2 +- assets/styles/scss/choices.scss | 95 ++++++++++++++++--------------- 3 files changed, 62 insertions(+), 58 deletions(-) diff --git a/assets/styles/css/choices.css b/assets/styles/css/choices.css index 8538755..b56f788 100644 --- a/assets/styles/css/choices.css +++ b/assets/styles/css/choices.css @@ -2,13 +2,15 @@ = Choices = ===============================*/ .choices { - font-size: 16px; position: relative; - margin-bottom: 24px; } + margin-bottom: 24px; + font-size: 16px; } + .choices:focus { + outline: none; } .choices:last-child { margin-bottom: 0; } .choices.is-disabled .choices__inner, .choices.is-disabled .choices__input { - background-color: #eaeaea; + background-color: #EAEAEA; cursor: not-allowed; -webkit-user-select: none; -moz-user-select: none; @@ -16,8 +18,6 @@ user-select: none; } .choices.is-disabled .choices__item { cursor: not-allowed; } - .choices:focus { - outline: none; } .choices[data-type*="select-one"] { cursor: pointer; } @@ -48,9 +48,6 @@ opacity: 1; } .choices[data-type*="select-one"] .choices__button:focus { box-shadow: 0px 0px 0px 2px #00BCD4; } - .choices[data-type*="select-one"].is-open:after { - border-color: transparent transparent #333333 transparent; - margin-top: -7.5px; } .choices[data-type*="select-one"]:after { content: ""; height: 0; @@ -63,6 +60,9 @@ top: 50%; margin-top: -2.5px; pointer-events: none; } + .choices[data-type*="select-one"].is-open:after { + border-color: transparent transparent #333333 transparent; + margin-top: -7.5px; } .choices[data-type*="select-multiple"] .choices__inner, .choices[data-type*="text"] .choices__inner { cursor: text; } @@ -222,12 +222,11 @@ outline: none; } .choices__input { - background-color: #f9f9f9; - font-size: 14px; - padding: 0; - margin-bottom: 5px; display: inline-block; vertical-align: baseline; + background-color: #f9f9f9; + font-size: 14px; + margin-bottom: 5px; border: 0; border-radius: 0; max-width: 100%; diff --git a/assets/styles/css/choices.min.css b/assets/styles/css/choices.min.css index 2293068..79af17a 100644 --- a/assets/styles/css/choices.min.css +++ b/assets/styles/css/choices.min.css @@ -1 +1 @@ -.choices{font-size:16px;position:relative;margin-bottom:24px}.choices:last-child{margin-bottom:0}.choices.is-disabled .choices__inner,.choices.is-disabled .choices__input{background-color:#eaeaea;cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.choices.is-disabled .choices__item{cursor:not-allowed}.choices:focus{outline:none}.choices[data-type*=select-one]{cursor:pointer}.choices[data-type*=select-one] .choices__inner{padding-bottom:7.5px}.choices[data-type*=select-one] .choices__input{display:block;width:100%;padding:10px;border-bottom:1px solid #ddd;background-color:#fff;margin:0}.choices[data-type*=select-one] .choices__button{background-image:url(../../icons//cross-inverse.svg);padding:0;background-size:8px;position:absolute;top:50%;right:0;margin-top:-10px;margin-right:25px;height:20px;width:20px;border-radius:10em;opacity:.5}.choices[data-type*=select-one] .choices__button:focus,.choices[data-type*=select-one] .choices__button:hover{opacity:1}.choices[data-type*=select-one] .choices__button:focus{box-shadow:0 0 0 2px #00bcd4}.choices[data-type*=select-one].is-open:after{border-color:transparent transparent #333 transparent;margin-top:-7.5px}.choices[data-type*=select-one]:after{content:"";height:0;width:0;border-style:solid;border-color:#333 transparent transparent transparent;border-width:5px;position:absolute;right:11.5px;top:50%;margin-top:-2.5px;pointer-events:none}.choices[data-type*=select-multiple] .choices__inner,.choices[data-type*=text] .choices__inner{cursor:text}.choices[data-type*=select-multiple] .choices__button,.choices[data-type*=text] .choices__button{position:relative;display:inline-block;margin:0 -4px 0 8px;padding-left:16px;border-left:1px solid #008fa1;background-image:url(../../icons//cross.svg);background-size:8px;width:8px;line-height:1;opacity:.75}.choices[data-type*=select-multiple] .choices__button:focus,.choices[data-type*=select-multiple] .choices__button:hover,.choices[data-type*=text] .choices__button:focus,.choices[data-type*=text] .choices__button:hover{opacity:1}.choices__inner{display:inline-block;vertical-align:top;width:100%;background-color:#f9f9f9;padding:7.5px 7.5px 3.75px;border:1px solid #ddd;border-radius:2.5px;font-size:14px;min-height:44px;overflow:hidden}.is-focused .choices__inner,.is-open .choices__inner{border-color:#b7b7b7}.is-open .choices__inner{border-radius:2.5px 2.5px 0 0}.is-flipped.is-open .choices__inner{border-radius:0 0 2.5px 2.5px}.choices__list{margin:0;padding-left:0;list-style-type:none}.choices__list--single{display:inline-block;padding:4px 16px 4px 4px;width:100%}.choices__list--single .choices__item{width:100%}.choices__list--multiple{display:inline}.choices__list--multiple .choices__item{display:inline-block;vertical-align:middle;border-radius:20px;padding:4px 10px;font-size:12px;font-weight:500;margin-right:3.75px;margin-bottom:3.75px;background-color:#00bcd4;border:1px solid #00a5bb;color:#fff;word-break:break-all}.choices__list--multiple .choices__item[data-deletable]{padding-right:5px}.choices__list--multiple .choices__item.is-highlighted{background-color:#00a5bb;border:1px solid #008fa1}.is-disabled .choices__list--multiple .choices__item{background-color:#aaa;border:1px solid #919191}.choices__list--dropdown{display:none;z-index:1;position:absolute;width:100%;background-color:#fff;border:1px solid #ddd;top:100%;margin-top:-1px;border-bottom-left-radius:2.5px;border-bottom-right-radius:2.5px;overflow:hidden}.choices__list--dropdown.is-active{display:block}.is-open .choices__list--dropdown{border-color:#b7b7b7}.is-flipped .choices__list--dropdown{top:auto;bottom:100%;margin-top:0;margin-bottom:-1px;border-radius:.25rem .25rem 0 0}.choices__list--dropdown .choices__list{position:relative;max-height:300px;overflow:auto;-webkit-overflow-scrolling:touch;will-change:scroll-position}.choices__list--dropdown .choices__item{position:relative;padding:10px;font-size:14px}@media (min-width:640px){.choices__list--dropdown .choices__item--selectable{padding-right:100px}.choices__list--dropdown .choices__item--selectable:after{content:"Press to select";font-size:12px;opacity:0;position:absolute;right:10px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}}.choices__list--dropdown .choices__item--selectable.is-highlighted{background-color:#f2f2f2}.choices__list--dropdown .choices__item--selectable.is-highlighted:after{opacity:.5}.choices__item{cursor:default}.choices__item--selectable{cursor:pointer}.choices__item--disabled{cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:.5}.choices__group .choices__heading{font-weight:600;font-size:12px;padding:10px;border-bottom:1px solid #f7f7f7;color:gray}.choices__button{text-indent:-9999px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background-color:transparent;background-repeat:no-repeat;background-position:center;cursor:pointer}.choices__button:focus{outline:none}.choices__input{background-color:#f9f9f9;font-size:14px;margin-bottom:5px;display:inline-block;vertical-align:baseline;border:0;border-radius:0;max-width:100%;padding:4px 0 4px 2px}.choices__input:focus{outline:0}.choices__placeholder{opacity:.5} \ No newline at end of file +.choices{position:relative;margin-bottom:24px;font-size:16px}.choices:focus{outline:none}.choices:last-child{margin-bottom:0}.choices.is-disabled .choices__inner,.choices.is-disabled .choices__input{background-color:#eaeaea;cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.choices.is-disabled .choices__item{cursor:not-allowed}.choices[data-type*=select-one]{cursor:pointer}.choices[data-type*=select-one] .choices__inner{padding-bottom:7.5px}.choices[data-type*=select-one] .choices__input{display:block;width:100%;padding:10px;border-bottom:1px solid #ddd;background-color:#fff;margin:0}.choices[data-type*=select-one] .choices__button{background-image:url(../../icons//cross-inverse.svg);padding:0;background-size:8px;position:absolute;top:50%;right:0;margin-top:-10px;margin-right:25px;height:20px;width:20px;border-radius:10em;opacity:.5}.choices[data-type*=select-one] .choices__button:focus,.choices[data-type*=select-one] .choices__button:hover{opacity:1}.choices[data-type*=select-one] .choices__button:focus{box-shadow:0 0 0 2px #00bcd4}.choices[data-type*=select-one]:after{content:"";height:0;width:0;border-style:solid;border-color:#333 transparent transparent transparent;border-width:5px;position:absolute;right:11.5px;top:50%;margin-top:-2.5px;pointer-events:none}.choices[data-type*=select-one].is-open:after{border-color:transparent transparent #333 transparent;margin-top:-7.5px}.choices[data-type*=select-multiple] .choices__inner,.choices[data-type*=text] .choices__inner{cursor:text}.choices[data-type*=select-multiple] .choices__button,.choices[data-type*=text] .choices__button{position:relative;display:inline-block;margin:0 -4px 0 8px;padding-left:16px;border-left:1px solid #008fa1;background-image:url(../../icons//cross.svg);background-size:8px;width:8px;line-height:1;opacity:.75}.choices[data-type*=select-multiple] .choices__button:focus,.choices[data-type*=select-multiple] .choices__button:hover,.choices[data-type*=text] .choices__button:focus,.choices[data-type*=text] .choices__button:hover{opacity:1}.choices__inner{display:inline-block;vertical-align:top;width:100%;background-color:#f9f9f9;padding:7.5px 7.5px 3.75px;border:1px solid #ddd;border-radius:2.5px;font-size:14px;min-height:44px;overflow:hidden}.is-focused .choices__inner,.is-open .choices__inner{border-color:#b7b7b7}.is-open .choices__inner{border-radius:2.5px 2.5px 0 0}.is-flipped.is-open .choices__inner{border-radius:0 0 2.5px 2.5px}.choices__list{margin:0;padding-left:0;list-style-type:none}.choices__list--single{display:inline-block;padding:4px 16px 4px 4px;width:100%}.choices__list--single .choices__item{width:100%}.choices__list--multiple{display:inline}.choices__list--multiple .choices__item{display:inline-block;vertical-align:middle;border-radius:20px;padding:4px 10px;font-size:12px;font-weight:500;margin-right:3.75px;margin-bottom:3.75px;background-color:#00bcd4;border:1px solid #00a5bb;color:#fff;word-break:break-all}.choices__list--multiple .choices__item[data-deletable]{padding-right:5px}.choices__list--multiple .choices__item.is-highlighted{background-color:#00a5bb;border:1px solid #008fa1}.is-disabled .choices__list--multiple .choices__item{background-color:#aaa;border:1px solid #919191}.choices__list--dropdown{display:none;z-index:1;position:absolute;width:100%;background-color:#fff;border:1px solid #ddd;top:100%;margin-top:-1px;border-bottom-left-radius:2.5px;border-bottom-right-radius:2.5px;overflow:hidden}.choices__list--dropdown.is-active{display:block}.is-open .choices__list--dropdown{border-color:#b7b7b7}.is-flipped .choices__list--dropdown{top:auto;bottom:100%;margin-top:0;margin-bottom:-1px;border-radius:.25rem .25rem 0 0}.choices__list--dropdown .choices__list{position:relative;max-height:300px;overflow:auto;-webkit-overflow-scrolling:touch;will-change:scroll-position}.choices__list--dropdown .choices__item{position:relative;padding:10px;font-size:14px}@media (min-width:640px){.choices__list--dropdown .choices__item--selectable{padding-right:100px}.choices__list--dropdown .choices__item--selectable:after{content:"Press to select";font-size:12px;opacity:0;position:absolute;right:10px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}}.choices__list--dropdown .choices__item--selectable.is-highlighted{background-color:#f2f2f2}.choices__list--dropdown .choices__item--selectable.is-highlighted:after{opacity:.5}.choices__item{cursor:default}.choices__item--selectable{cursor:pointer}.choices__item--disabled{cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:.5}.choices__group .choices__heading{font-weight:600;font-size:12px;padding:10px;border-bottom:1px solid #f7f7f7;color:gray}.choices__button{text-indent:-9999px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background-color:transparent;background-repeat:no-repeat;background-position:center;cursor:pointer}.choices__button:focus{outline:none}.choices__input{display:inline-block;vertical-align:baseline;background-color:#f9f9f9;font-size:14px;margin-bottom:5px;border:0;border-radius:0;max-width:100%;padding:4px 0 4px 2px}.choices__input:focus{outline:0}.choices__placeholder{opacity:.5} \ No newline at end of file diff --git a/assets/styles/scss/choices.scss b/assets/styles/scss/choices.scss index 0ec6196..2fa92fe 100644 --- a/assets/styles/scss/choices.scss +++ b/assets/styles/scss/choices.scss @@ -1,10 +1,16 @@ /*=============================== = Choices = ===============================*/ + +$choices-selector: 'choices' !default; +$choices-font-size-lg: 16px !default; +$choices-font-size-md: 14px !default; +$choices-font-size-sm: 12px !default; $choices-guttering: 24px !default; $choices-border-radius: 2.5px !default; $choices-border-radius-item: 20px !default; $choices-bg-color: #f9f9f9 !default; +$choices-bg-color-disabled: #EAEAEA !default; $choices-bg-color-dropdown: #FFFFFF !default; $choices-text-color: #333333 !default; $choices-keyline-color: #DDDDDD !default; @@ -16,26 +22,26 @@ $choices-button-dimension: 8px !default; $choices-button-offset: 8px !default; $choices-press-to-select-text: 'Press to select' !default; -.choices { - font-size: 16px; +.#{$choices-selector} { position: relative; margin-bottom: $choices-guttering; + font-size: $choices-font-size-lg; + &:focus { outline: none; } &:last-child { margin-bottom: 0; } &.is-disabled { - .choices__inner, .choices__input { - background-color: lighten(#DDDDDD, 5%); + .#{$choices-selector}__inner, .#{$choices-selector}__input { + background-color: $choices-bg-color-disabled; cursor: not-allowed; user-select: none; } - .choices__item { cursor: not-allowed; } + .#{$choices-selector}__item { cursor: not-allowed; } } - &:focus { outline: none; } } -.choices[data-type*="select-one"] { +.#{$choices-selector}[data-type*="select-one"] { cursor: pointer; - .choices__inner { padding-bottom: 7.5px; } - .choices__input { + .#{$choices-selector}__inner { padding-bottom: 7.5px; } + .#{$choices-selector}__input { display: block; width: 100%; padding: 10px; @@ -43,7 +49,7 @@ $choices-press-to-select-text: 'Press to select' !default; background-color: #FFFFFF; margin: 0; } - .choices__button { + .#{$choices-selector}__button { background-image: url($choices-button-icon-path + '/cross-inverse.svg'); padding: 0; background-size: 8px; @@ -60,10 +66,6 @@ $choices-press-to-select-text: 'Press to select' !default; &:hover, &:focus { opacity: 1; } &:focus { box-shadow: 0px 0px 0px 2px $choices-highlight-color; } } - &.is-open:after { - border-color: transparent transparent $choices-text-color transparent; - margin-top: -7.5px; - } &:after { content: ""; height: 0; @@ -77,11 +79,15 @@ $choices-press-to-select-text: 'Press to select' !default; margin-top: -2.5px; pointer-events: none; } + &.is-open:after { + border-color: transparent transparent $choices-text-color transparent; + margin-top: -7.5px; + } } -.choices[data-type*="select-multiple"], .choices[data-type*="text"] { - .choices__inner { cursor: text; } - .choices__button { +.#{$choices-selector}[data-type*="select-multiple"], .#{$choices-selector}[data-type*="text"] { + .#{$choices-selector}__inner { cursor: text; } + .#{$choices-selector}__button { position: relative; display: inline-block; margin-top: 0; @@ -99,7 +105,7 @@ $choices-press-to-select-text: 'Press to select' !default; } } -.choices__inner { +.#{$choices-selector}__inner { display: inline-block; vertical-align: top; width: 100%; @@ -107,7 +113,7 @@ $choices-press-to-select-text: 'Press to select' !default; padding: 7.5px 7.5px 3.75px; border: 1px solid $choices-keyline-color; border-radius: $choices-border-radius; - font-size: 14px; + font-size: $choices-font-size-md; min-height: 44px; overflow: hidden; .is-focused &, .is-open & { border-color: darken($choices-keyline-color, 15%); } @@ -115,27 +121,27 @@ $choices-press-to-select-text: 'Press to select' !default; .is-flipped.is-open & { border-radius: 0 0 $choices-border-radius $choices-border-radius; } } -.choices__list { +.#{$choices-selector}__list { margin: 0; padding-left: 0; list-style-type: none; } -.choices__list--single { +.#{$choices-selector}__list--single { display: inline-block; padding: 4px 16px 4px 4px; width: 100%; - .choices__item { width: 100%; } + .#{$choices-selector}__item { width: 100%; } } -.choices__list--multiple { +.#{$choices-selector}__list--multiple { display: inline; - .choices__item { + .#{$choices-selector}__item { display: inline-block; vertical-align: middle; border-radius: $choices-border-radius-item; padding: 4px 10px; - font-size: 12px; + font-size: $choices-font-size-sm; font-weight: 500; margin-right: 3.75px; margin-bottom: 3.75px; @@ -155,7 +161,7 @@ $choices-press-to-select-text: 'Press to select' !default; } } -.choices__list--dropdown { +.#{$choices-selector}__list--dropdown { display: none; z-index: 1; position: absolute; @@ -168,7 +174,7 @@ $choices-press-to-select-text: 'Press to select' !default; border-bottom-right-radius: $choices-border-radius; overflow: hidden; &.is-active { display: block; } - .is-open & { border-color: darken(#DDDDDD, 15%); } + .is-open & { border-color: darken($choices-keyline-color, 15%); } .is-flipped & { top: auto; bottom: 100%; @@ -176,24 +182,24 @@ $choices-press-to-select-text: 'Press to select' !default; margin-bottom: -1px; border-radius: .25rem .25rem 0 0; } - .choices__list { + .#{$choices-selector}__list { position: relative; max-height: 300px; overflow: auto; -webkit-overflow-scrolling: touch; will-change: scroll-position; } - .choices__item { + .#{$choices-selector}__item { position: relative; padding: 10px; - font-size: 14px; + font-size: $choices-font-size-md; } - .choices__item--selectable { + .#{$choices-selector}__item--selectable { @media (min-width: 640px) { padding-right: 100px; &:after { content: $choices-press-to-select-text; - font-size: 12px; + font-size: $choices-font-size-sm; opacity: 0; position: absolute; right: 10px; @@ -208,25 +214,25 @@ $choices-press-to-select-text: 'Press to select' !default; } } -.choices__item { cursor: default; } -.choices__item--selectable { cursor: pointer; } -.choices__item--disabled { +.#{$choices-selector}__item { cursor: default; } +.#{$choices-selector}__item--selectable { cursor: pointer; } +.#{$choices-selector}__item--disabled { cursor: not-allowed; user-select: none; opacity: .5; } -.choices__group { - .choices__heading { +.#{$choices-selector}__group { + .#{$choices-selector}__heading { font-weight: 600; - font-size: 12px; + font-size: $choices-font-size-sm; padding: 10px; border-bottom: 1px solid lighten($choices-keyline-color, 10%); color: lighten(#333, 30%); } } -.choices__button { +.#{$choices-selector}__button { text-indent: -9999px; -webkit-appearance: none; appearance: none; @@ -238,13 +244,12 @@ $choices-press-to-select-text: 'Press to select' !default; &:focus { outline: none; } } -.choices__input { - background-color: mix(#000000, #FFFFFF, 2.5%); - font-size: 14px; - padding: 0; - margin-bottom: 5px; +.#{$choices-selector}__input { display: inline-block; vertical-align: baseline; + background-color: mix(#000000, #FFFFFF, 2.5%); + font-size: $choices-font-size-md; + margin-bottom: 5px; border: 0; border-radius: 0; max-width: 100%; @@ -252,6 +257,6 @@ $choices-press-to-select-text: 'Press to select' !default; &:focus { outline: 0; } } -.choices__placeholder { opacity: .5; } +.#{$choices-selector}__placeholder { opacity: .5; } /*===== End of Choices ======*/