/*! * bootstrap-tokenfield * https://github.com/sliptree/bootstrap-tokenfield * Copyright 2013-2014 Sliptree and other contributors; Licensed MIT */ @import "../bower_components/bootstrap/less/mixins.less"; @import "../bower_components/bootstrap/less/variables.less"; // Variables @token-background: #ededed; @token-border: #d9d9d9; @token-hover-border: #b9b9b9; @token-active-border: rgba(82, 168, 236, 0.8); @token-active-border-fallback: rgb(82, 168, 236); // IE8 @token-active-invalid-border: @token-background; // Mixins .tokenfield-focus(@color: @input-border-focus) { @color-rgba: rgba(red(@color), green(@color), blue(@color), .6); border-color: @color; outline: 0; .box-shadow(~"inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px @{color-rgba}"); } .tokenfield-validation(@border-color) { border-color: darken(@border-color, 10%); @shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px lighten(@border-color, 20%); .box-shadow(@shadow); } .border-radius(@border-radius) { -webkit-border-radius: @border-radius; -moz-border-radius: @border-radius; border-radius: @border-radius; } // Blink animation for duplicate tokens @-webkit-keyframes blink { 0% { border-color: #ededed; } 100% { border-color: #b94a48; } } @-moz-keyframes blink { 0% { border-color: #ededed; } 100% { border-color: #b94a48; } } @keyframes blink { 0% { border-color: #ededed; } 100% { border-color: #b94a48; } } // Tokenfield .tokenfield { height: auto; min-height: @input-height-base; padding-bottom: 0px; &.focus { .tokenfield-focus(); } // Tokens .token { .box-sizing(border-box); .border-radius(3px); display: inline-block; border: 1px solid @token-border; background-color: @token-background; white-space: nowrap; margin: -1px 5px 5px 0; height: 22px; vertical-align: top; cursor: default; &:hover { border-color: @token-hover-border; } &.active { border-color: rgb(82, 168, 236); border-color: rgba(82, 168, 236, 0.8); } &.duplicate { border-color: @state-danger-border; .animation-name(blink); .animation-duration(0.1s); .animation-direction(normal); .animation-timing-function(ease); .animation-iteration-count(infinite); } &.invalid { background: none; border: 1px solid transparent; .border-radius(0); border-bottom: 1px dotted @brand-danger; &.active { background: @token-background; border: 1px solid @token-active-invalid-border; .border-radius(3px); } } .token-label { display: inline-block; overflow: hidden; text-overflow: ellipsis; padding-left: 4px; vertical-align: top; } .close { font-family: Arial; display: inline-block; line-height: 100%; font-size: 1.1em; line-height: 1.49em; margin-left: 5px; float: none; height: 100%; vertical-align: top; padding-right: 4px; } } // Inputs .token-input { background: none; width: 60px; min-width: 60px; border: 0; height: 20px; padding: 0; margin-bottom: 6px; .box-shadow(none); } .token-input:focus { border-color: transparent; outline: 0; /* IE6-9 */ .box-shadow(none); } // Disabled state &.disabled { cursor: not-allowed; background-color: @gray-lighter; .token-input { cursor: not-allowed; } .token:hover { cursor: not-allowed; border-color: @token-border; .close { cursor: not-allowed; .opacity(0.2); } } } } // Validation states .has-warning .tokenfield.focus { .tokenfield-validation(@state-warning-text); } .has-error .tokenfield.focus { .tokenfield-validation(@state-danger-text); } .has-success .tokenfield.focus { .tokenfield-validation(@state-success-text); } // Various sizes .tokenfield.input-sm, .input-group-sm .tokenfield { min-height: 30px; padding-bottom: 0px; } .input-group-sm .token, .tokenfield.input-sm .token { height: 20px; margin-bottom: 4px; } .input-group-sm .token-input, .tokenfield.input-sm .token-input { height: 18px; margin-bottom: 5px; } .tokenfield.input-lg, .input-group-lg .tokenfield { min-height: 45px; padding-bottom: 4px; } .input-group-lg .token, .tokenfield.input-lg .token { height: 25px; } .input-group-lg .token-label, .tokenfield.input-lg .token-label { line-height: 23px; } .input-group-lg .token .close, .tokenfield.input-lg .token .close { line-height: 1.3em; } .input-group-lg .token-input, .tokenfield.input-lg .token-input { height: 23px; line-height: 23px; margin-bottom: 6px; vertical-align: top; } // RTL .tokenfield.rtl { direction: rtl; text-align: right; } .tokenfield.rtl .token { margin: -1px 0 5px 5px; } .tokenfield.rtl .token .token-label { padding-left: 0px; padding-right: 4px; }