Package not found. Please check the package name and try again.

flatui-rails-less 1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
+ }