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.
- checksums.yaml +7 -0
- data/.gitignore +17 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +38 -0
- data/Rakefile +1 -0
- data/flatui-rails-less.gemspec +26 -0
- data/lib/flatui/rails/less.rb +11 -0
- data/lib/flatui/rails/less/version.rb +7 -0
- data/vendor/assets/fonts/Flat-UI-Icons.dev.svg +140 -0
- data/vendor/assets/fonts/Flat-UI-Icons.eot +0 -0
- data/vendor/assets/fonts/Flat-UI-Icons.svg +140 -0
- data/vendor/assets/fonts/Flat-UI-Icons.ttf +0 -0
- data/vendor/assets/fonts/Flat-UI-Icons.woff +0 -0
- data/vendor/assets/fonts/icomoon-session.json +1 -0
- data/vendor/assets/fonts/lato/lato-black-webfont.eot +0 -0
- data/vendor/assets/fonts/lato/lato-black-webfont.svg +4691 -0
- data/vendor/assets/fonts/lato/lato-black-webfont.ttf +0 -0
- data/vendor/assets/fonts/lato/lato-black-webfont.woff +0 -0
- data/vendor/assets/fonts/lato/lato-bold-webfont.eot +0 -0
- data/vendor/assets/fonts/lato/lato-bold-webfont.svg +5085 -0
- data/vendor/assets/fonts/lato/lato-bold-webfont.ttf +0 -0
- data/vendor/assets/fonts/lato/lato-bold-webfont.woff +0 -0
- data/vendor/assets/fonts/lato/lato-bolditalic-webfont.eot +0 -0
- data/vendor/assets/fonts/lato/lato-bolditalic-webfont.svg +4514 -0
- data/vendor/assets/fonts/lato/lato-bolditalic-webfont.ttf +0 -0
- data/vendor/assets/fonts/lato/lato-bolditalic-webfont.woff +0 -0
- data/vendor/assets/fonts/lato/lato-italic-webfont.eot +0 -0
- data/vendor/assets/fonts/lato/lato-italic-webfont.svg +4514 -0
- data/vendor/assets/fonts/lato/lato-italic-webfont.ttf +0 -0
- data/vendor/assets/fonts/lato/lato-italic-webfont.woff +0 -0
- data/vendor/assets/fonts/lato/lato-light-webfont.eot +0 -0
- data/vendor/assets/fonts/lato/lato-light-webfont.svg +4691 -0
- data/vendor/assets/fonts/lato/lato-light-webfont.ttf +0 -0
- data/vendor/assets/fonts/lato/lato-light-webfont.woff +0 -0
- data/vendor/assets/fonts/lato/lato-regular-webfont.eot +0 -0
- data/vendor/assets/fonts/lato/lato-regular-webfont.svg +4691 -0
- data/vendor/assets/fonts/lato/lato-regular-webfont.ttf +0 -0
- data/vendor/assets/fonts/lato/lato-regular-webfont.woff +0 -0
- data/vendor/assets/images/demo/browser-2x.png +0 -0
- data/vendor/assets/images/demo/browser-author.jpg +0 -0
- data/vendor/assets/images/demo/browser-pic-1.jpg +0 -0
- data/vendor/assets/images/demo/browser-pic-2.jpg +0 -0
- data/vendor/assets/images/demo/browser-pic-3.jpg +0 -0
- data/vendor/assets/images/demo/browser-pic-4.jpg +0 -0
- data/vendor/assets/images/demo/browser-pic-5.jpg +0 -0
- data/vendor/assets/images/demo/browser-pic-6.jpg +0 -0
- data/vendor/assets/images/demo/browser.png +0 -0
- data/vendor/assets/images/demo/html-icon.png +0 -0
- data/vendor/assets/images/demo/logo-mask-2x.png +0 -0
- data/vendor/assets/images/demo/logo-mask.png +0 -0
- data/vendor/assets/images/demo/video.jpg +0 -0
- data/vendor/assets/images/exaple-image.jpg +0 -0
- data/vendor/assets/images/favicon.ico +0 -0
- data/vendor/assets/images/footer/logo.png +0 -0
- data/vendor/assets/images/icons/png/Book.png +0 -0
- data/vendor/assets/images/icons/png/Calendar.png +0 -0
- data/vendor/assets/images/icons/png/Chat.png +0 -0
- data/vendor/assets/images/icons/png/Clipboard.png +0 -0
- data/vendor/assets/images/icons/png/Compas.png +0 -0
- data/vendor/assets/images/icons/png/Gift-Box.png +0 -0
- data/vendor/assets/images/icons/png/Infinity-Loop.png +0 -0
- data/vendor/assets/images/icons/png/Mail.png +0 -0
- data/vendor/assets/images/icons/png/Map.png +0 -0
- data/vendor/assets/images/icons/png/Pensils.png +0 -0
- data/vendor/assets/images/icons/png/Pocket.png +0 -0
- data/vendor/assets/images/icons/png/Retina-Ready.png +0 -0
- data/vendor/assets/images/icons/png/Toilet-Paper.png +0 -0
- data/vendor/assets/images/icons/png/Watches.png +0 -0
- data/vendor/assets/images/icons/svg/book.svg +1 -0
- data/vendor/assets/images/icons/svg/calendar.svg +1 -0
- data/vendor/assets/images/icons/svg/chat.svg +1 -0
- data/vendor/assets/images/icons/svg/clipboard.svg +1 -0
- data/vendor/assets/images/icons/svg/clocks.svg +9 -0
- data/vendor/assets/images/icons/svg/compas.svg +1 -0
- data/vendor/assets/images/icons/svg/gift-box.svg +1 -0
- data/vendor/assets/images/icons/svg/loop.svg +5 -0
- data/vendor/assets/images/icons/svg/mail.svg +1 -0
- data/vendor/assets/images/icons/svg/map.svg +1 -0
- data/vendor/assets/images/icons/svg/paper-bag.svg +1 -0
- data/vendor/assets/images/icons/svg/pencils.svg +1 -0
- data/vendor/assets/images/icons/svg/retina.svg +1 -0
- data/vendor/assets/images/icons/svg/toilet-paper.svg +1 -0
- data/vendor/assets/images/login/icon.png +0 -0
- data/vendor/assets/images/login/imac-2x.png +0 -0
- data/vendor/assets/images/login/imac.png +0 -0
- data/vendor/assets/images/switch/mask-square.png +0 -0
- data/vendor/assets/images/switch/mask.png +0 -0
- data/vendor/assets/images/tile/ribbon-2x.png +0 -0
- data/vendor/assets/images/tile/ribbon.png +0 -0
- data/vendor/assets/images/todo/done-2x.png +0 -0
- data/vendor/assets/images/todo/done.png +0 -0
- data/vendor/assets/images/todo/search-2x.png +0 -0
- data/vendor/assets/images/todo/search.png +0 -0
- data/vendor/assets/images/todo/todo-2x.png +0 -0
- data/vendor/assets/images/todo/todo.png +0 -0
- data/vendor/assets/images/video/fullscreen-2x.png +0 -0
- data/vendor/assets/images/video/fullscreen.png +0 -0
- data/vendor/assets/images/video/pause-2x.png +0 -0
- data/vendor/assets/images/video/pause.png +0 -0
- data/vendor/assets/images/video/play-2x.png +0 -0
- data/vendor/assets/images/video/play.png +0 -0
- data/vendor/assets/images/video/poster.jpg +0 -0
- data/vendor/assets/images/video/volume-full-2x.png +0 -0
- data/vendor/assets/images/video/volume-full.png +0 -0
- data/vendor/assets/images/video/volume-off-2x.png +0 -0
- data/vendor/assets/images/video/volume-off.png +0 -0
- data/vendor/assets/javascripts/bootstrap-select.js +412 -0
- data/vendor/assets/javascripts/bootstrap-switch.js +251 -0
- data/vendor/assets/javascripts/bootstrap-typeahead.js +335 -0
- data/vendor/assets/javascripts/bootstrap.min.js +8 -0
- data/vendor/assets/javascripts/flat-ui.js +13 -0
- data/vendor/assets/javascripts/flatui-checkbox.js +112 -0
- data/vendor/assets/javascripts/flatui-radio.js +141 -0
- data/vendor/assets/javascripts/html5shiv.js +8 -0
- data/vendor/assets/javascripts/icon-font-ie7.js +57 -0
- data/vendor/assets/javascripts/jquery-ui-1.10.3.custom.min.js +6 -0
- data/vendor/assets/javascripts/jquery.placeholder.js +157 -0
- data/vendor/assets/javascripts/jquery.stacktable.js +54 -0
- data/vendor/assets/javascripts/jquery.tagsinput.js +355 -0
- data/vendor/assets/javascripts/jquery.ui.touch-punch.min.js +11 -0
- data/vendor/assets/javascripts/run-application.js +70 -0
- data/vendor/assets/stylesheets/demo.less +306 -0
- data/vendor/assets/stylesheets/docs.less +411 -0
- data/vendor/assets/stylesheets/flat-ui.less +47 -0
- data/vendor/assets/stylesheets/fonts.less +65 -0
- data/vendor/assets/stylesheets/icon-font.less +128 -0
- data/vendor/assets/stylesheets/mixins.less +780 -0
- data/vendor/assets/stylesheets/modules/button-groups.less +110 -0
- data/vendor/assets/stylesheets/modules/buttons.less +145 -0
- data/vendor/assets/stylesheets/modules/caret.less +31 -0
- data/vendor/assets/stylesheets/modules/checkbox-and-radio.less +143 -0
- data/vendor/assets/stylesheets/modules/code.less +38 -0
- data/vendor/assets/stylesheets/modules/dropdown.less +249 -0
- data/vendor/assets/stylesheets/modules/footer.less +76 -0
- data/vendor/assets/stylesheets/modules/forms.less +127 -0
- data/vendor/assets/stylesheets/modules/input-icons.less +71 -0
- data/vendor/assets/stylesheets/modules/login.less +111 -0
- data/vendor/assets/stylesheets/modules/navbar.less +551 -0
- data/vendor/assets/stylesheets/modules/pager.less +51 -0
- data/vendor/assets/stylesheets/modules/pagination.less +155 -0
- data/vendor/assets/stylesheets/modules/palette.less +71 -0
- data/vendor/assets/stylesheets/modules/progress-bars.less +36 -0
- data/vendor/assets/stylesheets/modules/select.less +143 -0
- data/vendor/assets/stylesheets/modules/share.less +44 -0
- data/vendor/assets/stylesheets/modules/switch.less +150 -0
- data/vendor/assets/stylesheets/modules/tagsinput.less +121 -0
- data/vendor/assets/stylesheets/modules/tile.less +54 -0
- data/vendor/assets/stylesheets/modules/todo.less +110 -0
- data/vendor/assets/stylesheets/modules/tooltip.less +56 -0
- data/vendor/assets/stylesheets/modules/type.less +210 -0
- data/vendor/assets/stylesheets/modules/ui-slider.less +62 -0
- data/vendor/assets/stylesheets/modules/video.less +458 -0
- data/vendor/assets/stylesheets/scaffolding.less +46 -0
- data/vendor/assets/stylesheets/spaces.less +172 -0
- data/vendor/assets/stylesheets/variables.less +294 -0
- 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
|
+
}
|