flatui3-rails 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (155) hide show
  1. data/.gitignore +17 -0
  2. data/Gemfile +4 -0
  3. data/LICENSE.txt +22 -0
  4. data/README.md +102 -0
  5. data/Rakefile +1 -0
  6. data/app/assets/fonts/Flat-UI-Icons.dev.svg +140 -0
  7. data/app/assets/fonts/Flat-UI-Icons.eot +0 -0
  8. data/app/assets/fonts/Flat-UI-Icons.svg +140 -0
  9. data/app/assets/fonts/Flat-UI-Icons.ttf +0 -0
  10. data/app/assets/fonts/Flat-UI-Icons.woff +0 -0
  11. data/app/assets/fonts/icomoon-session.json +1 -0
  12. data/app/assets/fonts/lato/lato-black-webfont.eot +0 -0
  13. data/app/assets/fonts/lato/lato-black-webfont.svg +4691 -0
  14. data/app/assets/fonts/lato/lato-black-webfont.ttf +0 -0
  15. data/app/assets/fonts/lato/lato-black-webfont.woff +0 -0
  16. data/app/assets/fonts/lato/lato-bold-webfont.eot +0 -0
  17. data/app/assets/fonts/lato/lato-bold-webfont.svg +5085 -0
  18. data/app/assets/fonts/lato/lato-bold-webfont.ttf +0 -0
  19. data/app/assets/fonts/lato/lato-bold-webfont.woff +0 -0
  20. data/app/assets/fonts/lato/lato-bolditalic-webfont.eot +0 -0
  21. data/app/assets/fonts/lato/lato-bolditalic-webfont.svg +4514 -0
  22. data/app/assets/fonts/lato/lato-bolditalic-webfont.ttf +0 -0
  23. data/app/assets/fonts/lato/lato-bolditalic-webfont.woff +0 -0
  24. data/app/assets/fonts/lato/lato-italic-webfont.eot +0 -0
  25. data/app/assets/fonts/lato/lato-italic-webfont.svg +4514 -0
  26. data/app/assets/fonts/lato/lato-italic-webfont.ttf +0 -0
  27. data/app/assets/fonts/lato/lato-italic-webfont.woff +0 -0
  28. data/app/assets/fonts/lato/lato-light-webfont.eot +0 -0
  29. data/app/assets/fonts/lato/lato-light-webfont.svg +4691 -0
  30. data/app/assets/fonts/lato/lato-light-webfont.ttf +0 -0
  31. data/app/assets/fonts/lato/lato-light-webfont.woff +0 -0
  32. data/app/assets/fonts/lato/lato-regular-webfont.eot +0 -0
  33. data/app/assets/fonts/lato/lato-regular-webfont.svg +4691 -0
  34. data/app/assets/fonts/lato/lato-regular-webfont.ttf +0 -0
  35. data/app/assets/fonts/lato/lato-regular-webfont.woff +0 -0
  36. data/app/assets/images/demo/browser-2x.png +0 -0
  37. data/app/assets/images/demo/browser-author.jpg +0 -0
  38. data/app/assets/images/demo/browser-pic-1.jpg +0 -0
  39. data/app/assets/images/demo/browser-pic-2.jpg +0 -0
  40. data/app/assets/images/demo/browser-pic-3.jpg +0 -0
  41. data/app/assets/images/demo/browser-pic-4.jpg +0 -0
  42. data/app/assets/images/demo/browser-pic-5.jpg +0 -0
  43. data/app/assets/images/demo/browser-pic-6.jpg +0 -0
  44. data/app/assets/images/demo/browser.png +0 -0
  45. data/app/assets/images/demo/html-icon.png +0 -0
  46. data/app/assets/images/demo/logo-mask-2x.png +0 -0
  47. data/app/assets/images/demo/logo-mask.png +0 -0
  48. data/app/assets/images/demo/video.jpg +0 -0
  49. data/app/assets/images/exaple-image.jpg +0 -0
  50. data/app/assets/images/favicon.ico +0 -0
  51. data/app/assets/images/footer/logo.png +0 -0
  52. data/app/assets/images/icons/png/Book.png +0 -0
  53. data/app/assets/images/icons/png/Calendar.png +0 -0
  54. data/app/assets/images/icons/png/Chat.png +0 -0
  55. data/app/assets/images/icons/png/Clipboard.png +0 -0
  56. data/app/assets/images/icons/png/Compas.png +0 -0
  57. data/app/assets/images/icons/png/Gift-Box.png +0 -0
  58. data/app/assets/images/icons/png/Infinity-Loop.png +0 -0
  59. data/app/assets/images/icons/png/Mail.png +0 -0
  60. data/app/assets/images/icons/png/Map.png +0 -0
  61. data/app/assets/images/icons/png/Pensils.png +0 -0
  62. data/app/assets/images/icons/png/Pocket.png +0 -0
  63. data/app/assets/images/icons/png/Retina-Ready.png +0 -0
  64. data/app/assets/images/icons/png/Toilet-Paper.png +0 -0
  65. data/app/assets/images/icons/png/Watches.png +0 -0
  66. data/app/assets/images/icons/svg/book.svg +1 -0
  67. data/app/assets/images/icons/svg/calendar.svg +1 -0
  68. data/app/assets/images/icons/svg/chat.svg +1 -0
  69. data/app/assets/images/icons/svg/clipboard.svg +1 -0
  70. data/app/assets/images/icons/svg/clocks.svg +9 -0
  71. data/app/assets/images/icons/svg/compas.svg +1 -0
  72. data/app/assets/images/icons/svg/gift-box.svg +1 -0
  73. data/app/assets/images/icons/svg/loop.svg +5 -0
  74. data/app/assets/images/icons/svg/mail.svg +1 -0
  75. data/app/assets/images/icons/svg/map.svg +1 -0
  76. data/app/assets/images/icons/svg/paper-bag.svg +1 -0
  77. data/app/assets/images/icons/svg/pencils.svg +1 -0
  78. data/app/assets/images/icons/svg/retina.svg +1 -0
  79. data/app/assets/images/icons/svg/toilet-paper.svg +1 -0
  80. data/app/assets/images/login/icon.png +0 -0
  81. data/app/assets/images/login/imac-2x.png +0 -0
  82. data/app/assets/images/login/imac.png +0 -0
  83. data/app/assets/images/switch/mask-square.png +0 -0
  84. data/app/assets/images/switch/mask.png +0 -0
  85. data/app/assets/images/tile/ribbon-2x.png +0 -0
  86. data/app/assets/images/tile/ribbon.png +0 -0
  87. data/app/assets/images/todo/done-2x.png +0 -0
  88. data/app/assets/images/todo/done.png +0 -0
  89. data/app/assets/images/todo/search-2x.png +0 -0
  90. data/app/assets/images/todo/search.png +0 -0
  91. data/app/assets/images/todo/todo-2x.png +0 -0
  92. data/app/assets/images/todo/todo.png +0 -0
  93. data/app/assets/images/video/fullscreen-2x.png +0 -0
  94. data/app/assets/images/video/fullscreen.png +0 -0
  95. data/app/assets/images/video/pause-2x.png +0 -0
  96. data/app/assets/images/video/pause.png +0 -0
  97. data/app/assets/images/video/play-2x.png +0 -0
  98. data/app/assets/images/video/play.png +0 -0
  99. data/app/assets/images/video/poster.jpg +0 -0
  100. data/app/assets/images/video/volume-full-2x.png +0 -0
  101. data/app/assets/images/video/volume-full.png +0 -0
  102. data/app/assets/images/video/volume-off-2x.png +0 -0
  103. data/app/assets/images/video/volume-off.png +0 -0
  104. data/app/assets/javascripts/bootstrap-select.js +412 -0
  105. data/app/assets/javascripts/bootstrap-switch.js +251 -0
  106. data/app/assets/javascripts/bootstrap-typeahead.js +335 -0
  107. data/app/assets/javascripts/flatui-checkbox.js +112 -0
  108. data/app/assets/javascripts/flatui-radio.js +141 -0
  109. data/app/assets/javascripts/flatui.js +9 -0
  110. data/app/assets/javascripts/html5shiv.js +8 -0
  111. data/app/assets/javascripts/icon-font-ie7.js +57 -0
  112. data/app/assets/javascripts/jquery-ui-1.10.3.min.js +6 -0
  113. data/app/assets/javascripts/jquery.placeholder.js +157 -0
  114. data/app/assets/javascripts/jquery.stacktable.js +54 -0
  115. data/app/assets/javascripts/jquery.tagsinput.js +355 -0
  116. data/app/assets/javascripts/jquery.ui.touch-punch.min.js +11 -0
  117. data/app/assets/stylesheets/flatui.less +45 -0
  118. data/flatui3-rails.gemspec +25 -0
  119. data/lib/flatui3-rails.rb +1 -0
  120. data/lib/flatui3/rails.rb +7 -0
  121. data/lib/flatui3/rails/engine.rb +13 -0
  122. data/lib/flatui3/rails/version.rb +5 -0
  123. data/lib/generators/flatui3/override/override_generator.rb +15 -0
  124. data/lib/generators/flatui3/override/templates/flatui_and_overrides.less +49 -0
  125. data/vendor/toolkit/flat-ui/flat-ui.less +45 -0
  126. data/vendor/toolkit/flat-ui/fonts.less +65 -0
  127. data/vendor/toolkit/flat-ui/icon-font.less +128 -0
  128. data/vendor/toolkit/flat-ui/mixins.less +365 -0
  129. data/vendor/toolkit/flat-ui/modules/buttons.less +231 -0
  130. data/vendor/toolkit/flat-ui/modules/caret.less +31 -0
  131. data/vendor/toolkit/flat-ui/modules/checkbox-and-radio.less +104 -0
  132. data/vendor/toolkit/flat-ui/modules/dropdown.less +225 -0
  133. data/vendor/toolkit/flat-ui/modules/footer.less +75 -0
  134. data/vendor/toolkit/flat-ui/modules/forms.less +127 -0
  135. data/vendor/toolkit/flat-ui/modules/input-icons.less +71 -0
  136. data/vendor/toolkit/flat-ui/modules/login.less +111 -0
  137. data/vendor/toolkit/flat-ui/modules/navbar.less +487 -0
  138. data/vendor/toolkit/flat-ui/modules/pager.less +49 -0
  139. data/vendor/toolkit/flat-ui/modules/pagination.less +153 -0
  140. data/vendor/toolkit/flat-ui/modules/palette.less +64 -0
  141. data/vendor/toolkit/flat-ui/modules/progress-bars.less +36 -0
  142. data/vendor/toolkit/flat-ui/modules/select.less +143 -0
  143. data/vendor/toolkit/flat-ui/modules/share.less +41 -0
  144. data/vendor/toolkit/flat-ui/modules/switch.less +150 -0
  145. data/vendor/toolkit/flat-ui/modules/tagsinput.less +117 -0
  146. data/vendor/toolkit/flat-ui/modules/tile.less +54 -0
  147. data/vendor/toolkit/flat-ui/modules/todo.less +107 -0
  148. data/vendor/toolkit/flat-ui/modules/tooltip.less +55 -0
  149. data/vendor/toolkit/flat-ui/modules/type.less +126 -0
  150. data/vendor/toolkit/flat-ui/modules/ui-slider.less +62 -0
  151. data/vendor/toolkit/flat-ui/modules/video.less +458 -0
  152. data/vendor/toolkit/flat-ui/scaffolding.less +46 -0
  153. data/vendor/toolkit/flat-ui/spaces.less +172 -0
  154. data/vendor/toolkit/flat-ui/variables.less +167 -0
  155. metadata +248 -0
@@ -0,0 +1,75 @@
1
+ //
2
+ // Footer
3
+ // --------------------------------------------------
4
+
5
+ footer {
6
+ background-color: mix(@base, @inverse, 9%);
7
+ color: mix(@base, @inverse, 34%);
8
+ font-size: 15px;
9
+ padding: 0;
10
+
11
+ a {
12
+ color: mix(@base, @inverse, 50%);
13
+ font-weight: 700;
14
+ }
15
+ p {
16
+ font-size: 15px;
17
+ line-height: 20px;
18
+ }
19
+ }
20
+
21
+ .footer-title {
22
+ margin: 0 0 22px;
23
+ padding-top: 21px;
24
+ font-size: 24px;
25
+ line-height: 40px;
26
+ }
27
+
28
+ .footer-brand {
29
+ display: block;
30
+ margin-bottom: 26px;
31
+ width: 220px;
32
+
33
+ img {
34
+ width: 216px;
35
+ }
36
+ }
37
+
38
+ // FOOTER BANNER
39
+ // ----------------------
40
+ .footer-banner {
41
+ background-color: @firm;
42
+ color: mix(@firm, @inverse, 20%);
43
+ margin-left: 42px;
44
+ min-height: 316px;
45
+ padding: 0 30px 30px;
46
+
47
+ .footer-title {
48
+ color: @inverse;
49
+ }
50
+ a {
51
+ color: lighten(@firm, 42%);
52
+ text-decoration: underline;
53
+
54
+ &:hover {
55
+ text-decoration: none;
56
+ }
57
+ }
58
+ ul {
59
+ list-style-type: none;
60
+ margin: 0 0 26px;
61
+ padding: 0;
62
+
63
+ li {
64
+ border-top: 1px solid lighten(@firm, 2%);
65
+ line-height: 19px;
66
+ padding: 6px 0;
67
+
68
+ &:first-child {
69
+ border-top: none;
70
+ padding-top: 1px;
71
+ }
72
+ }
73
+ }
74
+ }
75
+
@@ -0,0 +1,127 @@
1
+ //
2
+ // Forms
3
+ // --------------------------------------------------
4
+
5
+ // Textarea
6
+ textarea {
7
+ font-size: ceil(@font-size-base * 1.071); // ~15px
8
+ line-height: 24px;
9
+ padding: 5px 11px;
10
+ }
11
+
12
+ // Label
13
+ label {
14
+ font-weight: normal;
15
+ line-height: @line-height-base * 1.1605em; // ~20px
16
+ }
17
+
18
+ // Placeholder
19
+ //
20
+ // Placeholder text gets special styles because when browsers invalidate entire
21
+ // lines if it doesn't understand a selector/
22
+ .form-control {
23
+ .placeholder-color(desaturate(lighten(@base, 45%), 15%));
24
+ }
25
+
26
+ // Common form controls
27
+ //
28
+ // Shared size and type resets for form controls. Apply `.form-control` to any
29
+ // of the following form controls:
30
+ //
31
+ // select
32
+ // textarea
33
+ // input[type="text"]
34
+ // input[type="password"]
35
+ // input[type="datetime"]
36
+ // input[type="datetime-local"]
37
+ // input[type="date"]
38
+ // input[type="month"]
39
+ // input[type="time"]
40
+ // input[type="week"]
41
+ // input[type="number"]
42
+ // input[type="email"]
43
+ // input[type="url"]
44
+ // input[type="search"]
45
+ // input[type="tel"]
46
+ // input[type="color"]
47
+
48
+ .form-control {
49
+ border: 2px solid @lightgray;
50
+ color: @base;
51
+ font-family: @font-family-base;
52
+ font-size: ceil(@font-size-base * 1.071); // ~15px
53
+ padding: 8px 12px;
54
+ height: 41px;
55
+ -webkit-appearance: none;
56
+ border-radius: @input-border-radius;
57
+ .box-shadow(none);
58
+ .transition(~"border .25s linear, color .25s linear, background-color .25s linear");
59
+
60
+ // Customize the `:focus` state
61
+ .form-control-focus();
62
+
63
+ // Disabled and read-only inputs
64
+ // Note: HTML5 says that controls under a fieldset > legend:first-child won't
65
+ // be disabled if the fieldset is disabled. Due to implementation difficulty,
66
+ // we don't honor that edge case; we style them as disabled anyway.
67
+ &[disabled],
68
+ &[readonly],
69
+ fieldset[disabled] & {
70
+ background-color: @input-bg-disabled;
71
+ border-color: mix(@gray, white, 40%);
72
+ color: mix(@gray, white, 40%);
73
+ cursor: default;
74
+ }
75
+
76
+ // Flat (without border)
77
+ &.flat {
78
+ border-color: transparent;
79
+
80
+ &:hover {
81
+ border-color: @lightgray;
82
+ }
83
+ &:focus {
84
+ border-color: @firm;
85
+ }
86
+ }
87
+ }
88
+
89
+ // Form control sizing
90
+ .input-sm {
91
+ .input-size(@input-height-small; 8px; 10px; floor(@font-size-base * 0.929); @line-height-base);
92
+ }
93
+
94
+ .input-lg {
95
+ .input-size(@input-height-large; 10px; 15px; ceil(@font-size-base * 1.214); @line-height-base);
96
+ }
97
+
98
+ .input-hg {
99
+ .input-size(@input-height-huge; 10px; 16px; ceil(@font-size-base * 1.571); @line-height-base);
100
+ }
101
+
102
+ // Form control feedback states
103
+ //
104
+ // Apply contextual and semantic states to individual form controls.
105
+
106
+ // Warning
107
+ .has-warning {
108
+ .form-control-validation(@warning; @warning);
109
+ }
110
+ // Error
111
+ .has-error {
112
+ .form-control-validation(@danger; @danger);
113
+ }
114
+ // Success
115
+ .has-success {
116
+ .form-control-validation(@success; @success);
117
+ }
118
+
119
+ // Form groups
120
+ //
121
+ // Designed to help with the organization and spacing of vertical forms. For
122
+ // horizontal forms, use the predefined grid classes.
123
+
124
+ .form-group {
125
+ position: relative;
126
+ margin-bottom: 20px;
127
+ }
@@ -0,0 +1,71 @@
1
+ //
2
+ // Input Icons
3
+ // --------------------------------------------------
4
+
5
+ .form-group {
6
+ position: relative;
7
+ }
8
+
9
+ .form-control {
10
+ & + .input-icon {
11
+ position: absolute;
12
+ top: 2px;
13
+ right: 2px;
14
+ line-height: 37px;
15
+ vertical-align: middle;
16
+ font-size: ceil(@font-size-base * 1.428); // ~20px
17
+ color: desaturate(lighten(@base, 45%), 15%);
18
+ background-color: @inverse;
19
+ padding: 0 12px 0 0;
20
+ border-radius: @input-border-radius;
21
+ }
22
+ }
23
+
24
+ // Icons sizing
25
+ // ---------------------------
26
+
27
+ // Huge
28
+ .input-hg + .input-icon {
29
+ line-height: 49px;
30
+ padding: 0 16px 0 0;
31
+ }
32
+
33
+ //Large
34
+ .input-lg + .input-icon {
35
+ line-height: 41px;
36
+ padding: 0 15px 0 0;
37
+ }
38
+
39
+ // Small
40
+ .input-sm + .input-icon {
41
+ font-size: @font-size-base;
42
+ line-height: 30px;
43
+ padding: 0 10px 0 0;
44
+ }
45
+
46
+
47
+ // Icons states
48
+ // ---------------------------
49
+
50
+ .has-success {
51
+ .input-icon {
52
+ color: @success;
53
+ }
54
+ }
55
+ .has-warning {
56
+ .input-icon {
57
+ color: @warning;
58
+ }
59
+ }
60
+ .has-error {
61
+ .input-icon {
62
+ color: @danger;
63
+ }
64
+ }
65
+ .form-control[disabled] + .input-icon,
66
+ .form-control[readonly] + .input-icon,
67
+ fieldset[disabled] .form-control + .input-icon,
68
+ .form-control.disabled + .input-icon {
69
+ color: mix(@gray, white, 40%);
70
+ background-color: mix(@gray, white, 10%);
71
+ }
@@ -0,0 +1,111 @@
1
+ //
2
+ // Login screen
3
+ // --------------------------------------------------
4
+
5
+ // Module color variable
6
+ @form-color: mix(@base, @inverse, 9%);
7
+
8
+ .login {
9
+ background: asset-url("login/imac.png") 0 0 no-repeat;
10
+ background-size: 940px 778px;
11
+ color: @inverse;
12
+ margin-bottom: 77px;
13
+ padding: 38px 38px 267px;
14
+ position: relative;
15
+ }
16
+
17
+ .login-screen {
18
+ background-color: @firm;
19
+ min-height: 473px;
20
+ padding: 123px 199px 33px 306px;
21
+ }
22
+
23
+ .login-icon {
24
+ left: 200px;
25
+ position: absolute;
26
+ top: 160px;
27
+ width: 96px;
28
+
29
+ > img {
30
+ display: block;
31
+ margin-bottom: 6px;
32
+ width: 100%;
33
+ }
34
+ > h4 {
35
+ font-size: 17px;
36
+ font-weight: 200;
37
+ line-height: 34px;
38
+ .opacity(.95);
39
+
40
+ small {
41
+ color: inherit;
42
+ display: block;
43
+ font-size: inherit;
44
+ font-weight: 700;
45
+ }
46
+ }
47
+ }
48
+
49
+ // LOGIN FORM
50
+ // -----------
51
+ .login-form {
52
+ background-color: @form-color;
53
+ padding: 24px 23px 20px;
54
+ position: relative;
55
+ border-radius: @border-radius-large;
56
+
57
+ // Ear
58
+ &:before {
59
+ content: '';
60
+ border-style: solid;
61
+ border-width: 12px 12px 12px 0;
62
+ border-color: transparent @form-color transparent transparent;
63
+ height: 0;
64
+ position: absolute;
65
+ left: -12px;
66
+ top: 35px;
67
+ width: 0;
68
+ -webkit-transform: rotate(360deg); // Make corners smooth
69
+ }
70
+ .control-group {
71
+ margin-bottom: 6px;
72
+ position: relative;
73
+ }
74
+ .login-field {
75
+ border-color: transparent;
76
+ font-size: 17px;
77
+ text-indent: 3px;
78
+
79
+ &:focus {
80
+ border-color: @firm;
81
+
82
+ & + .login-field-icon {
83
+ color: @firm;
84
+ }
85
+ }
86
+ }
87
+ .login-field-icon {
88
+ color: mix(@gray, @inverse, 60%);
89
+ font-size: 16px;
90
+ position: absolute;
91
+ right: 13px;
92
+ top: 9px;
93
+ .transition(.25s);
94
+ }
95
+ }
96
+
97
+ .login-link {
98
+ color: mix(@gray, @inverse, 60%);
99
+ display: block;
100
+ font-size: 13px;
101
+ margin-top: 15px;
102
+ text-align: center;
103
+ }
104
+
105
+ // Retina support
106
+ @media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (-moz-min-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 3/2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (-moz-min-device-pixel-ratio: 1.5), only screen and (min-device-pixel-ratio: 1.5), only screen and (min-device-pixel-ratio: 2) {
107
+ .login {
108
+ background-image: asset-url("login/imac-2x.png");
109
+ }
110
+ }
111
+
@@ -0,0 +1,487 @@
1
+ //
2
+ // Navbar
3
+ // --------------------------------------------------
4
+
5
+ .navbar {
6
+ font-size: ceil(@font-size-base * 1.142); // ~16px
7
+ border-radius: @border-radius-large;
8
+ background: mix(@base, white, 9.5%);
9
+ border: none;
10
+
11
+ .navbar-collapse {
12
+ padding-left: 0;
13
+ padding-right: 0;
14
+ }
15
+
16
+ .navbar-brand {
17
+ border-radius: @border-radius-large 0 0 @border-radius-large;
18
+ color: mix(@base, white, 85%);
19
+ font-size: ceil(@font-size-base * 1.714); // ~24px
20
+ line-height: 29.55px;
21
+ font-weight: 700;
22
+ margin-left: -15px;
23
+ padding: 23px 28px 24px 17px;
24
+ text-shadow: none;
25
+ display: inline-block;
26
+
27
+ &:hover,
28
+ &:focus {
29
+ color: @firm;
30
+ }
31
+ &[class*="fui-"] {
32
+ font-weight: normal;
33
+ }
34
+ small { line-height: 1; }
35
+ }
36
+
37
+ .nav {
38
+ margin-right: 0;
39
+ display: inline-block;
40
+ float: left;
41
+
42
+ // First level nav
43
+ > li {
44
+ position: relative;
45
+ display: inline-block;
46
+
47
+ &:hover {
48
+ > ul {
49
+ opacity: 1;
50
+ top: 100%;
51
+ visibility: visible;
52
+ z-index: 100;
53
+ -webkit-transform: scale(1, 1);
54
+ // Show on hover
55
+ display: block\9;
56
+ }
57
+ }
58
+ &.active {
59
+ > a,
60
+ > a:hover,
61
+ > a:focus {
62
+ background: none;
63
+ color: @firm;
64
+ .box-shadow(none);
65
+ }
66
+ }
67
+ &:first-child {
68
+ border-radius: @border-radius-large @border-radius-large 0 0;
69
+ }
70
+ &:last-child {
71
+ border-radius: 0 0 @border-radius-large @border-radius-large;
72
+ }
73
+
74
+ // Second level nav
75
+ > ul {
76
+ padding-top: 13px;
77
+ top: 80%;
78
+ padding-left: 0;
79
+ .dropdown-arrow(@base);
80
+
81
+ // Third level nav
82
+ li {
83
+ &:hover {
84
+ ul {
85
+ opacity: 1;
86
+ -webkit-transform: scale(1, 1);
87
+ visibility: visible;
88
+ display: block\9;
89
+ }
90
+ }
91
+ ul {
92
+ left: 100%;
93
+ }
94
+ }
95
+ }
96
+
97
+ // First level link
98
+ > a {
99
+ color: mix(@base, white, 85%);
100
+ display: inline-block;
101
+ font-weight: 700;
102
+ font-size: ceil(@font-size-base * 1.071); // ~15px
103
+ line-height: 28px;
104
+ padding: 22px @navbar-link-space;
105
+ text-shadow: none;
106
+ .transition(~"background-color .25s, color .25s, border-bottom-color .25s");
107
+
108
+ &:hover,
109
+ &:focus {
110
+ color: @firm;
111
+ background-color: transparent;
112
+ }
113
+ &[class*="fui-"] {
114
+ font-size: 24px;
115
+ font-weight: normal;
116
+ }
117
+
118
+ > [class*="fui-"] {
119
+ font-size: 24px;
120
+ margin: -4px 0 0;
121
+ position: relative;
122
+ top: 4px;
123
+ }
124
+
125
+ > [class*="fui-"] + * {
126
+ margin-left: 12px;
127
+ }
128
+ }
129
+ }
130
+
131
+ > li:first-child {
132
+ > a {
133
+ border-radius: 0 0 0 @border-radius-large;
134
+ }
135
+ }
136
+
137
+ // Sub menu
138
+ ul {
139
+ border-radius: 4px;
140
+ left: 0;
141
+ list-style-type: none;
142
+ margin-left: 0;
143
+ opacity: 0;
144
+ position: absolute;
145
+ top: 0;
146
+ width: 234px;
147
+ // Trigger transform to hide nav completely without 'ghost' bug (when switching from :hover to initial)
148
+ -webkit-transform: scale(1, 0.99);
149
+ -webkit-transform-origin: 0 0;
150
+ // Don't show it at all by default since IE doesn't get modern transitions
151
+ visibility: hidden;
152
+ .transition(.3s ease-out);
153
+
154
+ // Deep level sub menu
155
+ ul {
156
+ left: 95%;
157
+ padding-left: 5px;
158
+ }
159
+
160
+ // Sub menu item
161
+ li {
162
+ background-color: @base;
163
+ padding: 0 3px 3px;
164
+ position: relative;
165
+
166
+ &:first-child {
167
+ border-radius: @border-radius-large @border-radius-large 0 0;
168
+ padding-top: 3px;
169
+ }
170
+ &:last-child {
171
+ border-radius: 0 0 @border-radius-large @border-radius-large;
172
+ }
173
+ &.active {
174
+ > a,
175
+ > a:hover,
176
+ > a:focus {
177
+ background-color: @firm;
178
+ color: @inverse;
179
+ padding-left: @navbar-sublink-space;
180
+ padding-right: @navbar-sublink-space;
181
+ }
182
+ & + li {
183
+ > a {
184
+ padding-left: @navbar-sublink-space;
185
+ padding-right: @navbar-sublink-space;
186
+ }
187
+ }
188
+ }
189
+ }
190
+
191
+ // Sub menu link
192
+ a {
193
+ border-radius: 2px;
194
+ color: @inverse;
195
+ display: block;
196
+ font-size: @font-size-base;
197
+ padding: 6px @navbar-sublink-space;
198
+ text-decoration: none;
199
+
200
+ &:hover {
201
+ background-color: @firm;
202
+ }
203
+ }
204
+ }
205
+ }
206
+
207
+ // Expand/collapse button
208
+ .btn-navbar {
209
+ background: none;
210
+ border: none;
211
+ color: @base;
212
+ margin: 18px 15px 14px;
213
+ text-shadow: none;
214
+ display: none;
215
+
216
+ &:hover,
217
+ &:focus {
218
+ background: none;
219
+ color: @firm;
220
+ }
221
+ &:before {
222
+ content: "\e00c";
223
+ font-family: "Flat-UI-Icons";
224
+ font-size: ceil(@font-size-base * 1.571);
225
+ font-style: normal;
226
+ font-weight: normal;
227
+ -webkit-font-smoothing: antialiased;
228
+ }
229
+ .icon-bar {
230
+ display: none;
231
+ }
232
+ }
233
+ }
234
+
235
+ .navbar-inner {
236
+ background: mix(@base, white, 9.5%);
237
+ border: none;
238
+ padding-left: 0;
239
+ padding-right: 0;
240
+ border-radius: @border-radius-large;
241
+ }
242
+
243
+ // Alternate Color
244
+ // --------------------------------------------------
245
+ .navbar-inverse {
246
+ font-size: ceil(@font-size-base * 1.214); // ~17px
247
+ background-color: @base;
248
+
249
+ .navbar-brand {
250
+ border-bottom: 2px solid mix(@base, black, 85%);
251
+ border-right: 2px solid mix(@base, black, 85%);
252
+ color: @inverse;
253
+ padding: 10px 28px 11px 32px;
254
+ }
255
+ .btn-navbar {
256
+ color: @inverse;
257
+ margin: 7px 10px;
258
+ }
259
+ .btn-icon {
260
+ margin: 8px 5px 8px 15px;
261
+ }
262
+ .nav {
263
+ > li {
264
+ &:first-child {
265
+ &.active {
266
+ > a {
267
+ padding-left: @navbar-link-space;
268
+ }
269
+ }
270
+ > a {
271
+ border-left: none;
272
+ }
273
+ }
274
+
275
+ // Active item
276
+ &.active {
277
+ > a {
278
+ &,
279
+ &:hover,
280
+ &:focus {
281
+ background-color: @firm;
282
+ border-bottom-color: mix(@firm, black, 85%);
283
+ border-left: none;
284
+ color: @inverse;
285
+ padding-left: @navbar-link-space;
286
+ }
287
+ }
288
+ & + li {
289
+ > a {
290
+ border-left: none;
291
+ padding-left: @navbar-link-space;
292
+ }
293
+ }
294
+ }
295
+
296
+ // Link styling
297
+ > a {
298
+ font-size: floor(@font-size-base * 1.143); // ~16px
299
+ border-bottom: 2px solid mix(@base, black, 85%);
300
+ border-left: 2px solid mix(@base, black, 85%);
301
+ color: @inverse;
302
+ padding: 16px @navbar-link-space 15px;
303
+ line-height: 20px;
304
+ }
305
+ }
306
+ }
307
+ .nav.pull-right {
308
+ margin-right: -15px;
309
+ }
310
+
311
+ // Round corders of the pull-right dropdown
312
+ .nav.pull-right > li {
313
+ > a {
314
+ border-radius: 0 @border-radius-large @border-radius-large 0;
315
+ }
316
+ }
317
+ }
318
+
319
+ // Unread icon
320
+ .navbar-unread,
321
+ .navbar-new {
322
+ font-family: @font-family-base;
323
+ background-color: @firm;
324
+ border-radius: 50%;
325
+ color: @inverse;
326
+ font-size: 0;
327
+ font-weight: 700;
328
+ height: 6px;
329
+ line-height: @font-size-base;
330
+ position: absolute;
331
+ right: 12px;
332
+ text-align: center;
333
+ top: 28px;
334
+ width: 6px;
335
+ z-index: 10;
336
+
337
+ .active & {
338
+ background-color: @inverse;
339
+ display: none;
340
+ }
341
+ .navbar-inverse & {
342
+ top: 15px;
343
+ }
344
+ }
345
+
346
+ .navbar-new {
347
+ background-color: @danger;
348
+ font-size: 12px;
349
+ line-height: 17px;
350
+ height: 18px;
351
+ margin: -9px -1px;
352
+ min-width: 18px;
353
+ padding: 0 1px;
354
+ width: auto;
355
+ -webkit-font-smoothing: subpixel-antialiased;
356
+ }
357
+
358
+ // DROPDOWN LIST
359
+ // -----------
360
+ .navbar {
361
+ // Inverse navbar dropdown styling
362
+ &.navbar-inverse {
363
+ .nav li.dropdown {
364
+ &.open {
365
+ > .dropdown-toggle {
366
+ background-color: @firm;
367
+ border-bottom-color: mix(@firm, black, 85%);
368
+ color: @inverse;
369
+
370
+ .caret {
371
+ border-bottom-color: @inverse !important;
372
+ border-top-color: @inverse !important;
373
+ }
374
+ }
375
+ }
376
+ }
377
+ }
378
+
379
+ // Default navbar dropdown styling
380
+ .nav li.dropdown {
381
+ &.open {
382
+ > .dropdown-toggle {
383
+ background: none;
384
+ color: @firm;
385
+
386
+ .caret {
387
+ border-bottom-color: @firm !important;
388
+ border-top-color: @firm !important;
389
+ }
390
+ }
391
+ .dropdown-menu {
392
+ opacity: 1;
393
+ top: 100%;
394
+ visibility: visible;
395
+ z-index: 1000;
396
+ -webkit-transform: none;
397
+ }
398
+ }
399
+ > .dropdown-toggle {
400
+ outline: none;
401
+
402
+ &:hover,
403
+ &:focus {
404
+ .caret {
405
+ border-bottom-color: @firm;
406
+ border-top-color: @firm;
407
+ }
408
+ }
409
+ .caret {
410
+ border-left-width: 6px;
411
+ border-right-width: 6px;
412
+ border-top-width: 8px;
413
+ border-bottom-color: lighten(@base, 13%);
414
+ border-top-color: lighten(@base, 13%);
415
+ margin-left: 10px;
416
+ }
417
+ }
418
+ .dropdown-menu {
419
+ background-color: @base;
420
+ opacity: 0;
421
+ padding: 0;
422
+ visibility: hidden;
423
+
424
+ &:before {
425
+ display: none;
426
+ }
427
+ &:after {
428
+ border-bottom-color: @base;
429
+ }
430
+ > li {
431
+ > a {
432
+ border-radius: 3px;
433
+ color: @inverse;
434
+ padding: 6px 8px 8px;
435
+ }
436
+ }
437
+ .divider {
438
+ background-color: mix(@base, black, 85%);
439
+ border-bottom: none;
440
+ margin: 2px 0 5px;
441
+ padding: 0;
442
+ height: 2px;
443
+ }
444
+ }
445
+ }
446
+ }
447
+
448
+ // Fixed top/bottom
449
+ .navbar.navbar-fixed-bottom,
450
+ .navbar.navbar-fixed-top {
451
+ .navbar-inner {
452
+ .navbar-search {
453
+ .form-control {
454
+ border-radius: 50px 0 0 50px !important;
455
+ }
456
+ .btn {
457
+ border-radius: 0 50px 50px 0;
458
+ }
459
+ }
460
+ }
461
+ }
462
+
463
+ .navbar.navbar-fixed-bottom {
464
+ .nav {
465
+ > li {
466
+ &:hover {
467
+ > ul {
468
+ bottom: 100%;
469
+ padding-bottom: 13px;
470
+ top: auto;
471
+
472
+ li:hover {
473
+ ul {
474
+ bottom: 0;
475
+ }
476
+ }
477
+ }
478
+ }
479
+ }
480
+
481
+ // Dropdown list
482
+ ul {
483
+ bottom: 80%;
484
+ top: auto;
485
+ }
486
+ }
487
+ }