flatui-rails-less 1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (157) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +17 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +38 -0
  6. data/Rakefile +1 -0
  7. data/flatui-rails-less.gemspec +26 -0
  8. data/lib/flatui/rails/less.rb +11 -0
  9. data/lib/flatui/rails/less/version.rb +7 -0
  10. data/vendor/assets/fonts/Flat-UI-Icons.dev.svg +140 -0
  11. data/vendor/assets/fonts/Flat-UI-Icons.eot +0 -0
  12. data/vendor/assets/fonts/Flat-UI-Icons.svg +140 -0
  13. data/vendor/assets/fonts/Flat-UI-Icons.ttf +0 -0
  14. data/vendor/assets/fonts/Flat-UI-Icons.woff +0 -0
  15. data/vendor/assets/fonts/icomoon-session.json +1 -0
  16. data/vendor/assets/fonts/lato/lato-black-webfont.eot +0 -0
  17. data/vendor/assets/fonts/lato/lato-black-webfont.svg +4691 -0
  18. data/vendor/assets/fonts/lato/lato-black-webfont.ttf +0 -0
  19. data/vendor/assets/fonts/lato/lato-black-webfont.woff +0 -0
  20. data/vendor/assets/fonts/lato/lato-bold-webfont.eot +0 -0
  21. data/vendor/assets/fonts/lato/lato-bold-webfont.svg +5085 -0
  22. data/vendor/assets/fonts/lato/lato-bold-webfont.ttf +0 -0
  23. data/vendor/assets/fonts/lato/lato-bold-webfont.woff +0 -0
  24. data/vendor/assets/fonts/lato/lato-bolditalic-webfont.eot +0 -0
  25. data/vendor/assets/fonts/lato/lato-bolditalic-webfont.svg +4514 -0
  26. data/vendor/assets/fonts/lato/lato-bolditalic-webfont.ttf +0 -0
  27. data/vendor/assets/fonts/lato/lato-bolditalic-webfont.woff +0 -0
  28. data/vendor/assets/fonts/lato/lato-italic-webfont.eot +0 -0
  29. data/vendor/assets/fonts/lato/lato-italic-webfont.svg +4514 -0
  30. data/vendor/assets/fonts/lato/lato-italic-webfont.ttf +0 -0
  31. data/vendor/assets/fonts/lato/lato-italic-webfont.woff +0 -0
  32. data/vendor/assets/fonts/lato/lato-light-webfont.eot +0 -0
  33. data/vendor/assets/fonts/lato/lato-light-webfont.svg +4691 -0
  34. data/vendor/assets/fonts/lato/lato-light-webfont.ttf +0 -0
  35. data/vendor/assets/fonts/lato/lato-light-webfont.woff +0 -0
  36. data/vendor/assets/fonts/lato/lato-regular-webfont.eot +0 -0
  37. data/vendor/assets/fonts/lato/lato-regular-webfont.svg +4691 -0
  38. data/vendor/assets/fonts/lato/lato-regular-webfont.ttf +0 -0
  39. data/vendor/assets/fonts/lato/lato-regular-webfont.woff +0 -0
  40. data/vendor/assets/images/demo/browser-2x.png +0 -0
  41. data/vendor/assets/images/demo/browser-author.jpg +0 -0
  42. data/vendor/assets/images/demo/browser-pic-1.jpg +0 -0
  43. data/vendor/assets/images/demo/browser-pic-2.jpg +0 -0
  44. data/vendor/assets/images/demo/browser-pic-3.jpg +0 -0
  45. data/vendor/assets/images/demo/browser-pic-4.jpg +0 -0
  46. data/vendor/assets/images/demo/browser-pic-5.jpg +0 -0
  47. data/vendor/assets/images/demo/browser-pic-6.jpg +0 -0
  48. data/vendor/assets/images/demo/browser.png +0 -0
  49. data/vendor/assets/images/demo/html-icon.png +0 -0
  50. data/vendor/assets/images/demo/logo-mask-2x.png +0 -0
  51. data/vendor/assets/images/demo/logo-mask.png +0 -0
  52. data/vendor/assets/images/demo/video.jpg +0 -0
  53. data/vendor/assets/images/exaple-image.jpg +0 -0
  54. data/vendor/assets/images/favicon.ico +0 -0
  55. data/vendor/assets/images/footer/logo.png +0 -0
  56. data/vendor/assets/images/icons/png/Book.png +0 -0
  57. data/vendor/assets/images/icons/png/Calendar.png +0 -0
  58. data/vendor/assets/images/icons/png/Chat.png +0 -0
  59. data/vendor/assets/images/icons/png/Clipboard.png +0 -0
  60. data/vendor/assets/images/icons/png/Compas.png +0 -0
  61. data/vendor/assets/images/icons/png/Gift-Box.png +0 -0
  62. data/vendor/assets/images/icons/png/Infinity-Loop.png +0 -0
  63. data/vendor/assets/images/icons/png/Mail.png +0 -0
  64. data/vendor/assets/images/icons/png/Map.png +0 -0
  65. data/vendor/assets/images/icons/png/Pensils.png +0 -0
  66. data/vendor/assets/images/icons/png/Pocket.png +0 -0
  67. data/vendor/assets/images/icons/png/Retina-Ready.png +0 -0
  68. data/vendor/assets/images/icons/png/Toilet-Paper.png +0 -0
  69. data/vendor/assets/images/icons/png/Watches.png +0 -0
  70. data/vendor/assets/images/icons/svg/book.svg +1 -0
  71. data/vendor/assets/images/icons/svg/calendar.svg +1 -0
  72. data/vendor/assets/images/icons/svg/chat.svg +1 -0
  73. data/vendor/assets/images/icons/svg/clipboard.svg +1 -0
  74. data/vendor/assets/images/icons/svg/clocks.svg +9 -0
  75. data/vendor/assets/images/icons/svg/compas.svg +1 -0
  76. data/vendor/assets/images/icons/svg/gift-box.svg +1 -0
  77. data/vendor/assets/images/icons/svg/loop.svg +5 -0
  78. data/vendor/assets/images/icons/svg/mail.svg +1 -0
  79. data/vendor/assets/images/icons/svg/map.svg +1 -0
  80. data/vendor/assets/images/icons/svg/paper-bag.svg +1 -0
  81. data/vendor/assets/images/icons/svg/pencils.svg +1 -0
  82. data/vendor/assets/images/icons/svg/retina.svg +1 -0
  83. data/vendor/assets/images/icons/svg/toilet-paper.svg +1 -0
  84. data/vendor/assets/images/login/icon.png +0 -0
  85. data/vendor/assets/images/login/imac-2x.png +0 -0
  86. data/vendor/assets/images/login/imac.png +0 -0
  87. data/vendor/assets/images/switch/mask-square.png +0 -0
  88. data/vendor/assets/images/switch/mask.png +0 -0
  89. data/vendor/assets/images/tile/ribbon-2x.png +0 -0
  90. data/vendor/assets/images/tile/ribbon.png +0 -0
  91. data/vendor/assets/images/todo/done-2x.png +0 -0
  92. data/vendor/assets/images/todo/done.png +0 -0
  93. data/vendor/assets/images/todo/search-2x.png +0 -0
  94. data/vendor/assets/images/todo/search.png +0 -0
  95. data/vendor/assets/images/todo/todo-2x.png +0 -0
  96. data/vendor/assets/images/todo/todo.png +0 -0
  97. data/vendor/assets/images/video/fullscreen-2x.png +0 -0
  98. data/vendor/assets/images/video/fullscreen.png +0 -0
  99. data/vendor/assets/images/video/pause-2x.png +0 -0
  100. data/vendor/assets/images/video/pause.png +0 -0
  101. data/vendor/assets/images/video/play-2x.png +0 -0
  102. data/vendor/assets/images/video/play.png +0 -0
  103. data/vendor/assets/images/video/poster.jpg +0 -0
  104. data/vendor/assets/images/video/volume-full-2x.png +0 -0
  105. data/vendor/assets/images/video/volume-full.png +0 -0
  106. data/vendor/assets/images/video/volume-off-2x.png +0 -0
  107. data/vendor/assets/images/video/volume-off.png +0 -0
  108. data/vendor/assets/javascripts/bootstrap-select.js +412 -0
  109. data/vendor/assets/javascripts/bootstrap-switch.js +251 -0
  110. data/vendor/assets/javascripts/bootstrap-typeahead.js +335 -0
  111. data/vendor/assets/javascripts/bootstrap.min.js +8 -0
  112. data/vendor/assets/javascripts/flat-ui.js +13 -0
  113. data/vendor/assets/javascripts/flatui-checkbox.js +112 -0
  114. data/vendor/assets/javascripts/flatui-radio.js +141 -0
  115. data/vendor/assets/javascripts/html5shiv.js +8 -0
  116. data/vendor/assets/javascripts/icon-font-ie7.js +57 -0
  117. data/vendor/assets/javascripts/jquery-ui-1.10.3.custom.min.js +6 -0
  118. data/vendor/assets/javascripts/jquery.placeholder.js +157 -0
  119. data/vendor/assets/javascripts/jquery.stacktable.js +54 -0
  120. data/vendor/assets/javascripts/jquery.tagsinput.js +355 -0
  121. data/vendor/assets/javascripts/jquery.ui.touch-punch.min.js +11 -0
  122. data/vendor/assets/javascripts/run-application.js +70 -0
  123. data/vendor/assets/stylesheets/demo.less +306 -0
  124. data/vendor/assets/stylesheets/docs.less +411 -0
  125. data/vendor/assets/stylesheets/flat-ui.less +47 -0
  126. data/vendor/assets/stylesheets/fonts.less +65 -0
  127. data/vendor/assets/stylesheets/icon-font.less +128 -0
  128. data/vendor/assets/stylesheets/mixins.less +780 -0
  129. data/vendor/assets/stylesheets/modules/button-groups.less +110 -0
  130. data/vendor/assets/stylesheets/modules/buttons.less +145 -0
  131. data/vendor/assets/stylesheets/modules/caret.less +31 -0
  132. data/vendor/assets/stylesheets/modules/checkbox-and-radio.less +143 -0
  133. data/vendor/assets/stylesheets/modules/code.less +38 -0
  134. data/vendor/assets/stylesheets/modules/dropdown.less +249 -0
  135. data/vendor/assets/stylesheets/modules/footer.less +76 -0
  136. data/vendor/assets/stylesheets/modules/forms.less +127 -0
  137. data/vendor/assets/stylesheets/modules/input-icons.less +71 -0
  138. data/vendor/assets/stylesheets/modules/login.less +111 -0
  139. data/vendor/assets/stylesheets/modules/navbar.less +551 -0
  140. data/vendor/assets/stylesheets/modules/pager.less +51 -0
  141. data/vendor/assets/stylesheets/modules/pagination.less +155 -0
  142. data/vendor/assets/stylesheets/modules/palette.less +71 -0
  143. data/vendor/assets/stylesheets/modules/progress-bars.less +36 -0
  144. data/vendor/assets/stylesheets/modules/select.less +143 -0
  145. data/vendor/assets/stylesheets/modules/share.less +44 -0
  146. data/vendor/assets/stylesheets/modules/switch.less +150 -0
  147. data/vendor/assets/stylesheets/modules/tagsinput.less +121 -0
  148. data/vendor/assets/stylesheets/modules/tile.less +54 -0
  149. data/vendor/assets/stylesheets/modules/todo.less +110 -0
  150. data/vendor/assets/stylesheets/modules/tooltip.less +56 -0
  151. data/vendor/assets/stylesheets/modules/type.less +210 -0
  152. data/vendor/assets/stylesheets/modules/ui-slider.less +62 -0
  153. data/vendor/assets/stylesheets/modules/video.less +458 -0
  154. data/vendor/assets/stylesheets/scaffolding.less +46 -0
  155. data/vendor/assets/stylesheets/spaces.less +172 -0
  156. data/vendor/assets/stylesheets/variables.less +294 -0
  157. metadata +256 -0
@@ -0,0 +1,47 @@
1
+ // Flat UI main stylesheet that aggregates all modules
2
+
3
+ // Loading custom fonts
4
+ //@import url("https://fonts.googleapis.com/css?family=Lato:400,700,700italic,900,400italic,300");
5
+ @import "fonts";
6
+ @import "icon-font";
7
+
8
+ // Loading config with variables (changing them leads to changing a color scheme)
9
+ @import "variables";
10
+
11
+ // Utility mixins for greater good
12
+ @import "mixins";
13
+
14
+ @import "scaffolding";
15
+
16
+ // Modules
17
+ @import "modules/type";
18
+ @import "modules/code";
19
+ @import "modules/buttons";
20
+ @import "modules/button-groups";
21
+ @import "modules/caret";
22
+ @import "modules/navbar";
23
+ @import "modules/select";
24
+ @import "modules/forms";
25
+ @import "modules/input-icons";
26
+ @import "modules/checkbox-and-radio";
27
+ @import "modules/tagsinput";
28
+ @import "modules/progress-bars";
29
+ @import "modules/ui-slider";
30
+ @import "modules/pager";
31
+ @import "modules/pagination";
32
+ @import "modules/tooltip";
33
+ @import "modules/dropdown";
34
+ @import "modules/switch";
35
+ @import "modules/share";
36
+
37
+ // Examples
38
+ @import "modules/palette";
39
+ @import "modules/tile";
40
+ @import "modules/todo";
41
+ @import "modules/video";
42
+ @import "modules/login";
43
+
44
+ @import "modules/footer";
45
+
46
+ // Spaces
47
+ @import "spaces";
@@ -0,0 +1,65 @@
1
+ @font-face {
2
+ font-family: 'Lato';
3
+ src: url('../fonts/lato/lato-black-webfont.eot');
4
+ src: url('../fonts/lato/lato-black-webfont.eot?#iefix') format('embedded-opentype'),
5
+ url('../fonts/lato/lato-black-webfont.woff') format('woff'),
6
+ url('../fonts/lato/lato-black-webfont.ttf') format('truetype'),
7
+ url('../fonts/lato/lato-black-webfont.svg#latoblack') format('svg');
8
+ font-weight: 900;
9
+ font-style: normal;
10
+ }
11
+
12
+ @font-face {
13
+ font-family: 'Lato';
14
+ src: url('../fonts/lato/lato-bold-webfont.eot');
15
+ src: url('../fonts/lato/lato-bold-webfont.eot?#iefix') format('embedded-opentype'),
16
+ url('../fonts/lato/lato-bold-webfont.woff') format('woff'),
17
+ url('../fonts/lato/lato-bold-webfont.ttf') format('truetype'),
18
+ url('../fonts/lato/lato-bold-webfont.svg#latobold') format('svg');
19
+ font-weight: bold;
20
+ font-style: normal;
21
+ }
22
+
23
+ @font-face {
24
+ font-family: 'Lato';
25
+ src: url('../fonts/lato/lato-bolditalic-webfont.eot');
26
+ src: url('../fonts/lato/lato-bolditalic-webfont.eot?#iefix') format('embedded-opentype'),
27
+ url('../fonts/lato/lato-bolditalic-webfont.woff') format('woff'),
28
+ url('../fonts/lato/lato-bolditalic-webfont.ttf') format('truetype'),
29
+ url('../fonts/lato/lato-bolditalic-webfont.svg#latobold_italic') format('svg');
30
+ font-weight: bold;
31
+ font-style: italic;
32
+ }
33
+
34
+ @font-face {
35
+ font-family: 'Lato';
36
+ src: url('../fonts/lato/lato-italic-webfont.eot');
37
+ src: url('../fonts/lato/lato-italic-webfont.eot?#iefix') format('embedded-opentype'),
38
+ url('../fonts/lato/lato-italic-webfont.woff') format('woff'),
39
+ url('../fonts/lato/lato-italic-webfont.ttf') format('truetype'),
40
+ url('../fonts/lato/lato-italic-webfont.svg#latoitalic') format('svg');
41
+ font-weight: normal;
42
+ font-style: italic;
43
+ }
44
+
45
+ @font-face {
46
+ font-family: 'Lato';
47
+ src: url('../fonts/lato/lato-light-webfont.eot');
48
+ src: url('../fonts/lato/lato-light-webfont.eot?#iefix') format('embedded-opentype'),
49
+ url('../fonts/lato/lato-light-webfont.woff') format('woff'),
50
+ url('../fonts/lato/lato-light-webfont.ttf') format('truetype'),
51
+ url('../fonts/lato/lato-light-webfont.svg#latolight') format('svg');
52
+ font-weight: 300;
53
+ font-style: normal;
54
+ }
55
+
56
+ @font-face {
57
+ font-family: 'Lato';
58
+ src: url('../fonts/lato/lato-regular-webfont.eot');
59
+ src: url('../fonts/lato/lato-regular-webfont.eot?#iefix') format('embedded-opentype'),
60
+ url('../fonts/lato/lato-regular-webfont.woff') format('woff'),
61
+ url('../fonts/lato/lato-regular-webfont.ttf') format('truetype'),
62
+ url('../fonts/lato/lato-regular-webfont.svg#latoregular') format('svg');
63
+ font-weight: normal;
64
+ font-style: normal;
65
+ }
@@ -0,0 +1,128 @@
1
+ @font-face {
2
+ font-family: 'Flat-UI-Icons';
3
+ src:url('../fonts/Flat-UI-Icons.eot');
4
+ src:url('../fonts/Flat-UI-Icons.eot?#iefix') format('embedded-opentype'),
5
+ url('../fonts/Flat-UI-Icons.woff') format('woff'),
6
+ url('../fonts/Flat-UI-Icons.ttf') format('truetype'),
7
+ url('../fonts/Flat-UI-Icons.svg#Flat-UI-Icons') format('svg');
8
+ font-weight: normal;
9
+ font-style: normal;
10
+ }
11
+
12
+ /* Use the following CSS code if you want to use data attributes for inserting your icons */
13
+ [data-icon]:before {
14
+ font-family: 'Flat-UI-Icons';
15
+ content: attr(data-icon);
16
+ speak: none;
17
+ font-weight: normal;
18
+ font-variant: normal;
19
+ text-transform: none;
20
+ -webkit-font-smoothing: antialiased;
21
+ }
22
+
23
+ /* Use the following CSS code if you want to have a class per icon */
24
+ /*
25
+ Instead of a list of all class selectors,
26
+ you can use the generic selector below, but it's slower:
27
+ [class*="fui-"] {
28
+ */
29
+ .fui-arrow-right, .fui-arrow-left, .fui-cmd, .fui-check-inverted, .fui-heart, .fui-location, .fui-plus, .fui-check, .fui-cross, .fui-list, .fui-new, .fui-video, .fui-photo, .fui-volume, .fui-time, .fui-eye, .fui-chat, .fui-search, .fui-user, .fui-mail, .fui-lock, .fui-gear, .fui-radio-unchecked, .fui-radio-checked, .fui-checkbox-unchecked, .fui-checkbox-checked, .fui-calendar-solid, .fui-pause, .fui-play, .fui-check-inverted-2 {
30
+ display: inline-block;
31
+ font-family: 'Flat-UI-Icons';
32
+ speak: none;
33
+ font-style: normal;
34
+ font-weight: normal;
35
+ font-variant: normal;
36
+ text-transform: none;
37
+ -webkit-font-smoothing: antialiased;
38
+ }
39
+ .fui-arrow-right:before {
40
+ content: "\e02c";
41
+ }
42
+ .fui-arrow-left:before {
43
+ content: "\e02d";
44
+ }
45
+ .fui-cmd:before {
46
+ content: "\e02f";
47
+ }
48
+ .fui-check-inverted:before {
49
+ content: "\e006";
50
+ }
51
+ .fui-heart:before {
52
+ content: "\e007";
53
+ }
54
+ .fui-location:before {
55
+ content: "\e008";
56
+ }
57
+ .fui-plus:before {
58
+ content: "\e009";
59
+ }
60
+ .fui-check:before {
61
+ content: "\e00a";
62
+ }
63
+ .fui-cross:before {
64
+ content: "\e00b";
65
+ }
66
+ .fui-list:before {
67
+ content: "\e00c";
68
+ }
69
+ .fui-new:before {
70
+ content: "\e00d";
71
+ }
72
+ .fui-video:before {
73
+ content: "\e00e";
74
+ }
75
+ .fui-photo:before {
76
+ content: "\e00f";
77
+ }
78
+ .fui-volume:before {
79
+ content: "\e010";
80
+ }
81
+ .fui-time:before {
82
+ content: "\e011";
83
+ }
84
+ .fui-eye:before {
85
+ content: "\e012";
86
+ }
87
+ .fui-chat:before {
88
+ content: "\e013";
89
+ }
90
+ .fui-search:before {
91
+ content: "\e01c";
92
+ }
93
+ .fui-user:before {
94
+ content: "\e01d";
95
+ }
96
+ .fui-mail:before {
97
+ content: "\e01e";
98
+ }
99
+ .fui-lock:before {
100
+ content: "\e01f";
101
+ }
102
+ .fui-gear:before {
103
+ content: "\e024";
104
+ }
105
+ .fui-radio-unchecked:before {
106
+ content: "\e02b";
107
+ }
108
+ .fui-radio-checked:before {
109
+ content: "\e032";
110
+ }
111
+ .fui-checkbox-unchecked:before {
112
+ content: "\e033";
113
+ }
114
+ .fui-checkbox-checked:before {
115
+ content: "\e034";
116
+ }
117
+ .fui-calendar-solid:before {
118
+ content: "\e022";
119
+ }
120
+ .fui-pause:before {
121
+ content: "\e03b";
122
+ }
123
+ .fui-play:before {
124
+ content: "\e03c";
125
+ }
126
+ .fui-check-inverted-2:before {
127
+ content: "\e000";
128
+ }
@@ -0,0 +1,780 @@
1
+ //
2
+ // Mixins
3
+ // --------------------------------------------------
4
+
5
+ // Utilities
6
+ // -------------------------
7
+
8
+ // Clearfix
9
+ // Source: http://nicolasgallagher.com/micro-clearfix-hack/
10
+ //
11
+ // For modern browsers
12
+ // 1. The space content is one way to avoid an Opera bug when the
13
+ // contenteditable attribute is included anywhere else in the document.
14
+ // Otherwise it causes space to appear at the top and bottom of elements
15
+ // that are clearfixed.
16
+ // 2. The use of `table` rather than `block` is only necessary if using
17
+ // `:before` to contain the top-margins of child elements.
18
+ .clearfix() {
19
+ &:before,
20
+ &:after {
21
+ content: " "; /* 1 */
22
+ display: table; /* 2 */
23
+ }
24
+ &:after {
25
+ clear: both;
26
+ }
27
+ }
28
+
29
+ // Webkit-style focus
30
+ .tab-focus() {
31
+ // Default
32
+ outline: thin dotted #333;
33
+ // Webkit
34
+ outline: 5px auto -webkit-focus-ring-color;
35
+ outline-offset: -2px;
36
+ }
37
+
38
+ // Center-align a block level element
39
+ .center-block() {
40
+ display: block;
41
+ margin-left: auto;
42
+ margin-right: auto;
43
+ }
44
+
45
+ // Sizing shortcuts
46
+ .size(@width; @height) {
47
+ width: @width;
48
+ height: @height;
49
+ }
50
+ .square(@size) {
51
+ .size(@size; @size);
52
+ }
53
+
54
+ // Placeholder text
55
+ .placeholder(@color: @input-color-placeholder) {
56
+ &:-moz-placeholder { color: @color; } // Firefox 4-18
57
+ &::-moz-placeholder { color: @color; } // Firefox 19+
58
+ &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+
59
+ &::-webkit-input-placeholder { color: @color; } // Safari and Chrome
60
+ &.placeholder { color: @color; } // Fallback
61
+ }
62
+
63
+ .placeholder-height(@height) {
64
+ &:-moz-placeholder {
65
+ line-height: @height;
66
+ }
67
+ &::-webkit-input-placeholder {
68
+ line-height: @height;
69
+ }
70
+ &.placeholder {
71
+ line-height: @height;
72
+ }
73
+ }
74
+
75
+ // Text overflow
76
+ // Requires inline-block or block for proper styling
77
+ .text-overflow() {
78
+ overflow: hidden;
79
+ text-overflow: ellipsis;
80
+ white-space: nowrap;
81
+ }
82
+
83
+ // CSS image replacement
84
+ .text-hide() {
85
+ font: ~"0/0" a;
86
+ color: transparent;
87
+ text-shadow: none;
88
+ background-color: transparent;
89
+ border: 0;
90
+ }
91
+
92
+ // CSS3 PROPERTIES
93
+ // --------------------------------------------------
94
+
95
+ .mask(@arguments) {
96
+ -webkit-mask: @arguments;
97
+ mask: @arguments;
98
+ }
99
+
100
+ // Single side border-radius
101
+ .border-top-radius(@radius) {
102
+ border-top-right-radius: @radius;
103
+ border-top-left-radius: @radius;
104
+ }
105
+ .border-right-radius(@radius) {
106
+ border-bottom-right-radius: @radius;
107
+ border-top-right-radius: @radius;
108
+ }
109
+ .border-bottom-radius(@radius) {
110
+ border-bottom-right-radius: @radius;
111
+ border-bottom-left-radius: @radius;
112
+ }
113
+ .border-left-radius(@radius) {
114
+ border-bottom-left-radius: @radius;
115
+ border-top-left-radius: @radius;
116
+ }
117
+
118
+ // Drop shadows
119
+ .box-shadow(@shadow) {
120
+ -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1
121
+ box-shadow: @shadow;
122
+ }
123
+
124
+ .animation(@properties) {
125
+ -webkit-animation: @properties;
126
+ -moz-animation: @properties;
127
+ -o-animation: @properties;
128
+ animation: @properties;
129
+ }
130
+
131
+ // Transitions
132
+ .transition(@transition) {
133
+ -webkit-transition: @transition;
134
+ transition: @transition;
135
+ }
136
+ .transition-property(@transition-property) {
137
+ -webkit-transition-property: @transition-property;
138
+ transition-property: @transition-property;
139
+ }
140
+ .transition-delay(@transition-delay) {
141
+ -webkit-transition-delay: @transition-delay;
142
+ transition-delay: @transition-delay;
143
+ }
144
+ .transition-duration(@transition-duration) {
145
+ -webkit-transition-duration: @transition-duration;
146
+ transition-duration: @transition-duration;
147
+ }
148
+ .transition-transform(@transition) {
149
+ -webkit-transition: -webkit-transform @transition;
150
+ -moz-transition: -moz-transform @transition;
151
+ -o-transition: -o-transform @transition;
152
+ transition: transform @transition;
153
+ }
154
+
155
+ // Transformations
156
+ .rotate(@degrees) {
157
+ -webkit-transform: rotate(@degrees);
158
+ -ms-transform: rotate(@degrees); // IE9+
159
+ transform: rotate(@degrees);
160
+ }
161
+ .scale(@ratio) {
162
+ -webkit-transform: scale(@ratio);
163
+ -ms-transform: scale(@ratio); // IE9+
164
+ transform: scale(@ratio);
165
+ }
166
+ .translate(@x; @y) {
167
+ -webkit-transform: translate(@x, @y);
168
+ -ms-transform: translate(@x, @y); // IE9+
169
+ transform: translate(@x, @y);
170
+ }
171
+ .skew(@x; @y) {
172
+ -webkit-transform: skew(@x, @y);
173
+ -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+
174
+ transform: skew(@x, @y);
175
+ }
176
+ .translate3d(@x; @y; @z) {
177
+ -webkit-transform: translate3d(@x, @y, @z);
178
+ transform: translate3d(@x, @y, @z);
179
+ }
180
+
181
+ .rotateX(@degrees) {
182
+ -webkit-transform: rotateX(@degrees);
183
+ -ms-transform: rotateX(@degrees); // IE9+
184
+ transform: rotateX(@degrees);
185
+ }
186
+ .rotateY(@degrees) {
187
+ -webkit-transform: rotateY(@degrees);
188
+ -ms-transform: rotateY(@degrees); // IE9+
189
+ transform: rotateY(@degrees);
190
+ }
191
+ .perspective(@perspective) {
192
+ -webkit-perspective: @perspective;
193
+ -moz-perspective: @perspective;
194
+ perspective: @perspective;
195
+ }
196
+ .perspective-origin(@perspective) {
197
+ -webkit-perspective-origin: @perspective;
198
+ -moz-perspective-origin: @perspective;
199
+ perspective-origin: @perspective;
200
+ }
201
+ .transform-origin(@origin){
202
+ -webkit-transform-origin: @origin;
203
+ -moz-transform-origin: @origin;
204
+ transform-origin: @origin;
205
+ }
206
+
207
+
208
+ // Backface visibility
209
+ // Prevent browsers from flickering when using CSS 3D transforms.
210
+ // Default value is `visible`, but can be changed to `hidden`
211
+ // See git pull https://github.com/dannykeane/bootstrap.git backface-visibility for examples
212
+ .backface-visibility(@visibility){
213
+ -webkit-backface-visibility: @visibility;
214
+ -moz-backface-visibility: @visibility;
215
+ backface-visibility: @visibility;
216
+ }
217
+
218
+ // Background clip
219
+ .background-clip(@clip: border-box) {
220
+ -webkit-background-clip: @clip;
221
+ -moz-background-clip: @clip;
222
+ background-clip: @clip;
223
+ }
224
+
225
+ // Box sizing
226
+ .box-sizing(@boxmodel) {
227
+ -webkit-box-sizing: @boxmodel;
228
+ -moz-box-sizing: @boxmodel;
229
+ box-sizing: @boxmodel;
230
+ }
231
+
232
+ // User select
233
+ // For selecting text on the page
234
+ .user-select(@select) {
235
+ -webkit-user-select: @select;
236
+ -moz-user-select: @select;
237
+ -ms-user-select: @select; // IE10+
238
+ -o-user-select: @select;
239
+ user-select: @select;
240
+ }
241
+
242
+ // Resize anything
243
+ .resizable(@direction) {
244
+ resize: @direction; // Options: horizontal, vertical, both
245
+ overflow: auto; // Safari fix
246
+ }
247
+
248
+ // CSS3 Content Columns
249
+ .content-columns(@column-count; @column-gap: @grid-gutter-width) {
250
+ -webkit-column-count: @column-count;
251
+ -moz-column-count: @column-count;
252
+ column-count: @column-count;
253
+ -webkit-column-gap: @column-gap;
254
+ -moz-column-gap: @column-gap;
255
+ column-gap: @column-gap;
256
+ }
257
+
258
+ // Optional hyphenation
259
+ .hyphens(@mode: auto) {
260
+ word-wrap: break-word;
261
+ -webkit-hyphens: @mode;
262
+ -moz-hyphens: @mode;
263
+ -ms-hyphens: @mode; // IE10+
264
+ -o-hyphens: @mode;
265
+ hyphens: @mode;
266
+ }
267
+
268
+ // Opacity
269
+ .opacity(@opacity) {
270
+ opacity: @opacity;
271
+ // IE8 filter
272
+ @opacity-ie: (@opacity * 100);
273
+ filter: ~"alpha(opacity=@{opacity-ie})";
274
+ }
275
+
276
+
277
+
278
+ // GRADIENTS
279
+ // --------------------------------------------------
280
+
281
+ #gradient {
282
+
283
+ // Horizontal gradient, from left to right
284
+ //
285
+ // Creates two color stops, start and end, by specifying a color and position for each color stop.
286
+ // Color stops are not available in IE9 and below.
287
+ .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {
288
+ background-image: -webkit-gradient(linear, @start-percent top, @end-percent top, from(@start-color), to(@end-color)); // Safari 4+, Chrome 2+
289
+ background-image: -webkit-linear-gradient(left, color-stop(@start-color @start-percent), color-stop(@end-color @end-percent)); // Safari 5.1+, Chrome 10+
290
+ background-image: -moz-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // FF 3.6+
291
+ background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10
292
+ background-repeat: repeat-x;
293
+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down
294
+ }
295
+
296
+ // Vertical gradient, from top to bottom
297
+ //
298
+ // Creates two color stops, start and end, by specifying a color and position for each color stop.
299
+ // Color stops are not available in IE9 and below.
300
+ .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {
301
+ background-image: -webkit-gradient(linear, left @start-percent, left @end-percent, from(@start-color), to(@end-color)); // Safari 4+, Chrome 2+
302
+ background-image: -webkit-linear-gradient(top, @start-color, @start-percent, @end-color, @end-percent); // Safari 5.1+, Chrome 10+
303
+ background-image: -moz-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // FF 3.6+
304
+ background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10
305
+ background-repeat: repeat-x;
306
+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down
307
+ }
308
+
309
+ .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {
310
+ background-repeat: repeat-x;
311
+ background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1+, Chrome 10+
312
+ background-image: -moz-linear-gradient(@deg, @start-color, @end-color); // FF 3.6+
313
+ background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10
314
+ }
315
+ .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {
316
+ background-image: -webkit-gradient(left, linear, 0 0, 0 100%, from(@start-color), color-stop(@color-stop, @mid-color), to(@end-color));
317
+ background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);
318
+ background-image: -moz-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);
319
+ background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);
320
+ background-repeat: no-repeat;
321
+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback
322
+ }
323
+ .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {
324
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@start-color), color-stop(@color-stop, @mid-color), to(@end-color));
325
+ background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);
326
+ background-image: -moz-linear-gradient(top, @start-color, @mid-color @color-stop, @end-color);
327
+ background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);
328
+ background-repeat: no-repeat;
329
+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback
330
+ }
331
+ .radial(@inner-color: #555; @outer-color: #333) {
332
+ background-image: -webkit-gradient(radial, center center, 0, center center, 460, from(@inner-color), to(@outer-color));
333
+ background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);
334
+ background-image: -moz-radial-gradient(circle, @inner-color, @outer-color);
335
+ background-image: radial-gradient(circle, @inner-color, @outer-color);
336
+ background-repeat: no-repeat;
337
+ }
338
+ .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {
339
+ background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(.25, @color), color-stop(.25, transparent), color-stop(.5, transparent), color-stop(.5, @color), color-stop(.75, @color), color-stop(.75, transparent), to(transparent));
340
+ background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
341
+ background-image: -moz-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
342
+ background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
343
+ }
344
+ }
345
+
346
+ // Reset filters for IE
347
+ //
348
+ // When you need to remove a gradient background, do not forget to use this to reset
349
+ // the IE filter for IE9 and below.
350
+ .reset-filter() {
351
+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)"));
352
+ }
353
+
354
+
355
+
356
+ // Retina images
357
+ //
358
+ // Short retina mixin for setting background-image and -size
359
+
360
+ .img-retina(@file-1x; @file-2x; @width-1x; @height-1x) {
361
+ background-image: url("@{file-1x}");
362
+
363
+ @media
364
+ only screen and (-webkit-min-device-pixel-ratio: 2),
365
+ only screen and ( min--moz-device-pixel-ratio: 2),
366
+ only screen and ( -o-min-device-pixel-ratio: 2/1),
367
+ only screen and ( min-device-pixel-ratio: 2),
368
+ only screen and ( min-resolution: 192dpi),
369
+ only screen and ( min-resolution: 2dppx) {
370
+ background-image: url("@{file-2x}");
371
+ background-size: @width-1x @height-1x;
372
+ }
373
+ }
374
+
375
+
376
+ // Responsive image
377
+ //
378
+ // Keep images from scaling beyond the width of their parents.
379
+
380
+ .img-responsive(@display: block;) {
381
+ display: @display;
382
+ max-width: 100%; // Part 1: Set a maximum relative to the parent
383
+ height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching
384
+ }
385
+
386
+ // Responsive utilities
387
+ // -------------------------
388
+ // More easily include all the states for responsive-utilities.less.
389
+ .responsive-visibility() {
390
+ display: block !important;
391
+ tr& { display: table-row !important; }
392
+ th&,
393
+ td& { display: table-cell !important; }
394
+ }
395
+
396
+ .responsive-invisibility() {
397
+ &,
398
+ tr&,
399
+ th&,
400
+ td& { display: none !important; }
401
+ }
402
+
403
+ // Grid System
404
+ // -----------
405
+
406
+ // Centered container element
407
+ .container-fixed() {
408
+ margin-right: auto;
409
+ margin-left: auto;
410
+ padding-left: (@grid-gutter-width / 2);
411
+ padding-right: (@grid-gutter-width / 2);
412
+ .clearfix();
413
+ }
414
+
415
+ // Creates a wrapper for a series of columns
416
+ .make-row(@gutter: @grid-gutter-width) {
417
+ margin-left: (@gutter / -2);
418
+ margin-right: (@gutter / -2);
419
+ .clearfix();
420
+ }
421
+
422
+ // Generate the extra small columns
423
+ .make-xs-column(@columns; @gutter: @grid-gutter-width) {
424
+ position: relative;
425
+ float: left;
426
+ width: percentage((@columns / @grid-columns));
427
+ // Prevent columns from collapsing when empty
428
+ min-height: 1px;
429
+ // Inner gutter via padding
430
+ padding-left: (@gutter / 2);
431
+ padding-right: (@gutter / 2);
432
+ }
433
+
434
+ // Generate the small columns
435
+ .make-sm-column(@columns; @gutter: @grid-gutter-width) {
436
+ position: relative;
437
+ // Prevent columns from collapsing when empty
438
+ min-height: 1px;
439
+ // Inner gutter via padding
440
+ padding-left: (@gutter / 2);
441
+ padding-right: (@gutter / 2);
442
+
443
+ // Calculate width based on number of columns available
444
+ @media (min-width: @screen-sm-min) {
445
+ float: left;
446
+ width: percentage((@columns / @grid-columns));
447
+ }
448
+ }
449
+
450
+ // Generate the small column offsets
451
+ .make-sm-column-offset(@columns) {
452
+ @media (min-width: @screen-sm-min) {
453
+ margin-left: percentage((@columns / @grid-columns));
454
+ }
455
+ }
456
+ .make-sm-column-push(@columns) {
457
+ @media (min-width: @screen-sm-min) {
458
+ left: percentage((@columns / @grid-columns));
459
+ }
460
+ }
461
+ .make-sm-column-pull(@columns) {
462
+ @media (min-width: @screen-sm-min) {
463
+ right: percentage((@columns / @grid-columns));
464
+ }
465
+ }
466
+
467
+ // Generate the medium columns
468
+ .make-md-column(@columns; @gutter: @grid-gutter-width) {
469
+ position: relative;
470
+ // Prevent columns from collapsing when empty
471
+ min-height: 1px;
472
+ // Inner gutter via padding
473
+ padding-left: (@gutter / 2);
474
+ padding-right: (@gutter / 2);
475
+
476
+ // Calculate width based on number of columns available
477
+ @media (min-width: @screen-md-min) {
478
+ float: left;
479
+ width: percentage((@columns / @grid-columns));
480
+ }
481
+ }
482
+
483
+ // Generate the medium column offsets
484
+ .make-md-column-offset(@columns) {
485
+ @media (min-width: @screen-md-min) {
486
+ margin-left: percentage((@columns / @grid-columns));
487
+ }
488
+ }
489
+ .make-md-column-push(@columns) {
490
+ @media (min-width: @screen-md) {
491
+ left: percentage((@columns / @grid-columns));
492
+ }
493
+ }
494
+ .make-md-column-pull(@columns) {
495
+ @media (min-width: @screen-md-min) {
496
+ right: percentage((@columns / @grid-columns));
497
+ }
498
+ }
499
+
500
+ // Generate the large columns
501
+ .make-lg-column(@columns; @gutter: @grid-gutter-width) {
502
+ position: relative;
503
+ // Prevent columns from collapsing when empty
504
+ min-height: 1px;
505
+ // Inner gutter via padding
506
+ padding-left: (@gutter / 2);
507
+ padding-right: (@gutter / 2);
508
+
509
+ // Calculate width based on number of columns available
510
+ @media (min-width: @screen-lg-min) {
511
+ float: left;
512
+ width: percentage((@columns / @grid-columns));
513
+ }
514
+ }
515
+
516
+ // Generate the large column offsets
517
+ .make-lg-column-offset(@columns) {
518
+ @media (min-width: @screen-lg-min) {
519
+ margin-left: percentage((@columns / @grid-columns));
520
+ }
521
+ }
522
+ .make-lg-column-push(@columns) {
523
+ @media (min-width: @screen-lg-min) {
524
+ left: percentage((@columns / @grid-columns));
525
+ }
526
+ }
527
+ .make-lg-column-pull(@columns) {
528
+ @media (min-width: @screen-lg-min) {
529
+ right: percentage((@columns / @grid-columns));
530
+ }
531
+ }
532
+
533
+
534
+ // COMPONENT MIXINS
535
+ // --------------------------------------------------
536
+
537
+ // Color swatches grid
538
+ .calc-color(@first-color, @second-color) {
539
+ .palette-@{first-color} {
540
+ background-color: ~"@{@{first-color}}";
541
+ }
542
+ .palette-@{second-color} {
543
+ background-color: ~"@{@{second-color}}";
544
+ }
545
+ }
546
+
547
+ // Dropdown arrow
548
+ // -------------------------
549
+ .dropdown-arrow(@color: @brand-primary; @top: 5px; @left: 15px; @size: 9px) {
550
+ &:before {
551
+ content: "";
552
+ border-style: solid;
553
+ border-width: 0 @size @size @size;
554
+ border-color: transparent transparent @color transparent;
555
+ height: 0;
556
+ position: absolute;
557
+ left: @left;
558
+ top: @top;
559
+ width: 0;
560
+ // Make corners smooth
561
+ -webkit-transform: rotate(360deg);
562
+ }
563
+ }
564
+
565
+ // Button variants
566
+ // -------------------------
567
+ // Easily pump out default styles, as well as :hover, :focus, :active,
568
+ // and disabled options for all buttons
569
+ .button-variant(@color; @background; @hover-background; @active-background; @disabled-background: @gray-light) {
570
+ color: @color;
571
+ background-color: @background;
572
+
573
+ &:hover,
574
+ &:focus,
575
+ &:active,
576
+ &.active,
577
+ .open .dropdown-toggle& {
578
+ color: @color;
579
+ background-color: @hover-background;
580
+ border-color: @hover-background;
581
+ }
582
+ &:active,
583
+ &.active,
584
+ .open .dropdown-toggle& {
585
+ background: @active-background;
586
+ }
587
+ &.disabled,
588
+ &[disabled],
589
+ fieldset[disabled] & {
590
+ &,
591
+ &:hover,
592
+ &:focus,
593
+ &:active,
594
+ &.active {
595
+ background-color: @background;
596
+ }
597
+ }
598
+ }
599
+
600
+ // Button sizes
601
+ // -------------------------
602
+ .button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {
603
+ padding: @padding-vertical @padding-horizontal;
604
+ font-size: @font-size;
605
+ line-height: @line-height;
606
+ border-radius: @border-radius;
607
+ }
608
+
609
+ // Social button variants
610
+ // -------------------------
611
+ .social-button-variant(@color; @background) {
612
+ color: @color;
613
+ background-color: @background;
614
+
615
+ &:hover,
616
+ &:focus {
617
+ background-color: mix(@background, white, 80%);
618
+ }
619
+ &:active,
620
+ &.active {
621
+ background-color: mix(@background, black, 85%);
622
+ }
623
+ }
624
+
625
+ .swap-dialog-color(@color) {
626
+ background-color: mix(@color, white, 9%);
627
+ border-top-color: mix(@color, white, 20%);
628
+ }
629
+
630
+ .dropdown-arrow-inverse {
631
+ border-bottom-color: @brand-primary !important;
632
+ border-top-color: @brand-primary !important;
633
+ }
634
+
635
+ .swap-iconbar-color(@color) {
636
+ background-color: @color;
637
+ > ul {
638
+ > li {
639
+ &.active {
640
+ > a {
641
+ color: mix(@color, black, 66%);
642
+ }
643
+ }
644
+ > a {
645
+ &:hover, &:focus {
646
+ color: mix(@color, black, 66%);
647
+ }
648
+ }
649
+ }
650
+ }
651
+ .iconbar-unread { background-color: mix(@color, black, 66%); }
652
+ }
653
+
654
+ .swap-pagination-color(@color, @hover, @active) {
655
+ ul {
656
+ background-color: @color;
657
+
658
+ li {
659
+ &.previous {
660
+ > a {
661
+ border-right-color: mix(@color, white, 66%);
662
+ }
663
+ }
664
+ > a, > span {
665
+ border-left-color: mix(@color, white, 66%);
666
+
667
+ &:hover, &:focus {
668
+ background-color: @hover;
669
+ }
670
+ &:active {
671
+ background-color: @active;
672
+ }
673
+ }
674
+ &.active {
675
+ > a, > span {
676
+ background-color: @active;
677
+ }
678
+ }
679
+
680
+ &.pagination-dropdown.dropup {
681
+ .dropdown-arrow {
682
+ border-top-color: @color;
683
+ }
684
+ }
685
+ }
686
+ }
687
+ }
688
+
689
+ // Labels
690
+ // -------------------------
691
+ .label-variant(@color, @hover-color, @text-color: @inverse) {
692
+ background-color: @color;
693
+ color: @text-color;
694
+
695
+ &[href] {
696
+ color: @text-color;
697
+
698
+ &:hover,
699
+ &:focus {
700
+ color: @text-color;
701
+ background-color: @hover-color;
702
+ }
703
+ }
704
+ }
705
+
706
+ // Form validation states
707
+ //
708
+ // Used in forms.less to generate the form validation CSS for warnings, errors,
709
+ // and successes.
710
+
711
+ .form-control-validation(@text-color: @brand-primary; @border-color: @gray-light; @background-color: @inverse) {
712
+ // Color the label and help text
713
+ .help-block,
714
+ .control-label {
715
+ color: @text-color;
716
+ }
717
+ // Set the border and box shadow on specific inputs to match
718
+ .form-control {
719
+ color: @text-color;
720
+ border-color: @border-color;
721
+ .box-shadow(none);
722
+ .placeholder(@text-color);
723
+
724
+ &:focus {
725
+ border-color: @border-color;
726
+ .box-shadow(none);
727
+ }
728
+ }
729
+ // Set validation states also for addons
730
+ .input-group-addon {
731
+ color: @text-color;
732
+ border-color: @border-color;
733
+ background-color: @background-color;
734
+ }
735
+ }
736
+
737
+ // Form control focus state
738
+ //
739
+ // Generate a customized focus state and for any input with the specified color,
740
+ // which defaults to the `@input-focus-border` variable.
741
+ //
742
+ // We highly encourage you to not customize the default value, but instead use
743
+ // this to tweak colors on an as-needed basis. This aesthetic change is based on
744
+ // WebKit's default styles, but applicable to a wider range of browsers. Its
745
+ // usability and accessibility should be taken into account with any change.
746
+ //
747
+ // Example usage: change the default blue border and shadow to white for better
748
+ // contrast against a dark gray background.
749
+
750
+ .form-control-focus(@color: @brand-secondary) {
751
+ .form-group.focus &,
752
+ &:focus {
753
+ border-color: @color;
754
+ outline: 0;
755
+ .box-shadow(none);
756
+ }
757
+ }
758
+
759
+ // Form control sizing
760
+ //
761
+ // Relative text size, padding, and border-radii changes for form controls. For
762
+ // horizontal sizing, wrap controls in the predefined grid classes. `<select>`
763
+ // element gets special love because it's special, and that's a fact!
764
+
765
+ .input-size(@input-height; @padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius: @border-radius-large) {
766
+ height: @input-height;
767
+ padding: @padding-vertical @padding-horizontal;
768
+ font-size: @font-size;
769
+ line-height: @line-height;
770
+ border-radius: @border-radius;
771
+
772
+ select& {
773
+ height: @input-height;
774
+ line-height: @input-height;
775
+ }
776
+
777
+ textarea& {
778
+ height: auto;
779
+ }
780
+ }