bootstrap-bookingsync-sass 0.0.19 → 1.0.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (162) hide show
  1. checksums.yaml +4 -4
  2. data/.bowerrc +4 -0
  3. data/.editorconfig +34 -0
  4. data/.ember-cli +9 -0
  5. data/.gitignore +18 -0
  6. data/.jshintrc +32 -0
  7. data/.npmignore +16 -0
  8. data/.travis.yaml +34 -0
  9. data/.watchmanconfig +3 -0
  10. data/CHANGELOG.md +34 -1
  11. data/README.md +110 -5
  12. data/addon/.gitkeep +0 -0
  13. data/addon/components/bsy-button.js +34 -0
  14. data/addon/templates/components/bsy-button.hbs +1 -0
  15. data/app/.gitkeep +0 -0
  16. data/app/components/bsy-button.js +1 -0
  17. data/assets/fonts/bookingsync/bookingsync-icons.eot +0 -0
  18. data/assets/fonts/bookingsync/bookingsync-icons.svg +37 -0
  19. data/assets/fonts/bookingsync/bookingsync-icons.ttf +0 -0
  20. data/assets/fonts/bookingsync/bookingsync-icons.woff +0 -0
  21. data/assets/fonts/bookingsync/bookingsync-icons.woff2 +0 -0
  22. data/assets/fonts/bookingsync/bookingsync-smiles.eot +0 -0
  23. data/assets/fonts/bookingsync/bookingsync-smiles.svg +1 -1
  24. data/assets/fonts/bookingsync/bookingsync-smiles.ttf +0 -0
  25. data/assets/fonts/bookingsync/bookingsync-smiles.woff +0 -0
  26. data/assets/fonts/bookingsync/bookingsync-smiles.woff2 +0 -0
  27. data/assets/javascripts/bookingsync/menu.js +29 -0
  28. data/assets/javascripts/bookingsync/toggle.js +15 -0
  29. data/assets/javascripts/bootstrap-bookingsync-sprockets.js +2 -0
  30. data/assets/stylesheets/_bootstrap-bookingsync.scss +9 -1
  31. data/assets/stylesheets/bookingsync/_annotated-sections.scss +28 -0
  32. data/assets/stylesheets/bookingsync/_buttons.scss +218 -0
  33. data/assets/stylesheets/bookingsync/_ember-power-select.scss +131 -0
  34. data/assets/stylesheets/bookingsync/_form.scss +22 -1
  35. data/assets/stylesheets/bookingsync/_icons.scss +119 -0
  36. data/assets/stylesheets/bookingsync/_layout.scss +18 -9
  37. data/assets/stylesheets/bookingsync/_list-group.scss +37 -0
  38. data/assets/stylesheets/bookingsync/_menu.scss +230 -210
  39. data/assets/stylesheets/bookingsync/_modals.scss +24 -0
  40. data/assets/stylesheets/bookingsync/_navbar.scss +53 -0
  41. data/assets/stylesheets/bookingsync/_sheet.scss +9 -0
  42. data/assets/stylesheets/bookingsync/_smiles.scss +25 -19
  43. data/assets/stylesheets/bookingsync/_theme.scss +0 -22
  44. data/assets/stylesheets/bookingsync/_variables.scss +191 -38
  45. data/blueprints/ember-cli-bootstrap-bookingsync-sass/files/app/styles/app.scss +3 -0
  46. data/blueprints/ember-cli-bootstrap-bookingsync-sass/files/app/templates/application.hbs +31 -0
  47. data/blueprints/ember-cli-bootstrap-bookingsync-sass/files/ember-cli-build.js +28 -0
  48. data/blueprints/ember-cli-bootstrap-bookingsync-sass/index.js +15 -0
  49. data/bower.json +14 -0
  50. data/config/deploy.js +30 -0
  51. data/config/ember-try.js +36 -0
  52. data/config/environment.js +6 -0
  53. data/docs/Gemfile +1 -1
  54. data/docs/Gemfile.lock +16 -13
  55. data/docs/Rakefile +1 -1
  56. data/docs/Rules +29 -11
  57. data/docs/content/assets/fonts/bookingsync/bookingsync-icons.eot +0 -0
  58. data/docs/content/assets/fonts/bookingsync/bookingsync-icons.svg +37 -0
  59. data/docs/content/assets/fonts/bookingsync/bookingsync-icons.ttf +0 -0
  60. data/docs/content/assets/fonts/bookingsync/bookingsync-icons.woff +0 -0
  61. data/docs/content/assets/fonts/bookingsync/bookingsync-icons.woff2 +0 -0
  62. data/docs/content/assets/fonts/bookingsync/bookingsync-smiles.eot +0 -0
  63. data/docs/content/assets/fonts/bookingsync/bookingsync-smiles.svg +19 -0
  64. data/docs/content/assets/fonts/bookingsync/bookingsync-smiles.ttf +0 -0
  65. data/docs/content/assets/fonts/bookingsync/bookingsync-smiles.woff +0 -0
  66. data/docs/content/assets/fonts/bookingsync/bookingsync-smiles.woff2 +0 -0
  67. data/docs/content/assets/images/bookingsync.png +0 -0
  68. data/docs/content/assets/javascripts/application.js.coffee +1 -0
  69. data/docs/content/assets/stylesheets/_base.scss +64 -25
  70. data/docs/content/assets/stylesheets/_code.scss +6 -0
  71. data/docs/content/assets/stylesheets/_icons.scss +54 -0
  72. data/docs/content/assets/stylesheets/_override.scss +67 -0
  73. data/docs/content/assets/stylesheets/_variables.scss +7 -0
  74. data/docs/content/assets/stylesheets/application.scss +2 -1
  75. data/docs/content/brand.html +9 -0
  76. data/docs/content/brand/_navbar.html +17 -0
  77. data/docs/content/brand/colors.md +101 -0
  78. data/docs/content/brand/iconography.md +87 -0
  79. data/docs/content/brand/smiles.md +51 -0
  80. data/docs/content/brand/typography.md +301 -0
  81. data/docs/content/buttons.html +6 -0
  82. data/docs/content/buttons/_navbar.html +13 -0
  83. data/docs/content/buttons/buttons.md +320 -0
  84. data/docs/content/components.html +11 -22
  85. data/docs/content/components/_navbar.html +22 -0
  86. data/docs/content/components/chosen.md +28 -17
  87. data/docs/content/components/dropdown.md +2 -4
  88. data/docs/content/components/list-group.md +239 -0
  89. data/docs/content/components/menu.md +134 -219
  90. data/docs/content/components/modal.html +108 -0
  91. data/docs/content/components/sheet.md +11 -60
  92. data/docs/content/components/switch.md +42 -25
  93. data/docs/content/compositions.html +6 -0
  94. data/docs/content/compositions/_navbar.html +12 -0
  95. data/docs/content/compositions/compositions.md +348 -0
  96. data/docs/content/embed/menu.html +160 -0
  97. data/docs/content/forms.html +6 -0
  98. data/docs/content/forms/_navbar.html +39 -0
  99. data/docs/content/{css → forms}/forms.md +98 -86
  100. data/docs/content/utilities.html +6 -0
  101. data/docs/content/utilities/_navbar.html +6 -0
  102. data/docs/content/{css → utilities}/helpers.md +4 -6
  103. data/docs/layouts/default.html +12 -7
  104. data/docs/layouts/embed.html +7 -0
  105. data/docs/layouts/head.html +1 -2
  106. data/docs/layouts/navbar.html +15 -23
  107. data/docs/layouts/sidebar.html +53 -0
  108. data/docs/nanoc.yaml +2 -0
  109. data/docs/public/ember/assets/dummy-605390683726afd79cffdf529eb4531a.css +28 -0
  110. data/docs/public/ember/assets/dummy-daae8f1136db419cd268e84ad4f5c989.js +2 -0
  111. data/docs/public/ember/assets/vendor-226e4280b8b1da91e2e598b6726ea1f4.js +28 -0
  112. data/docs/public/ember/assets/vendor-d41d8cd98f00b204e9800998ecf8427e.css +0 -0
  113. data/docs/public/ember/crossdomain.xml +15 -0
  114. data/docs/public/ember/fonts/bookingsync/bookingsync-icons.eot +0 -0
  115. data/docs/public/ember/fonts/bookingsync/bookingsync-icons.svg +37 -0
  116. data/docs/public/ember/fonts/bookingsync/bookingsync-icons.ttf +0 -0
  117. data/docs/public/ember/fonts/bookingsync/bookingsync-icons.woff +0 -0
  118. data/docs/public/ember/fonts/bookingsync/bookingsync-icons.woff2 +0 -0
  119. data/docs/public/ember/fonts/bookingsync/bookingsync-smiles.eot +0 -0
  120. data/docs/public/ember/fonts/bookingsync/bookingsync-smiles.svg +19 -0
  121. data/docs/public/ember/fonts/bookingsync/bookingsync-smiles.ttf +0 -0
  122. data/docs/public/ember/fonts/bookingsync/bookingsync-smiles.woff +0 -0
  123. data/docs/public/ember/fonts/bookingsync/bookingsync-smiles.woff2 +0 -0
  124. data/docs/public/ember/index.html +27 -0
  125. data/docs/public/ember/robots.txt +3 -0
  126. data/ember-cli-build.js +23 -0
  127. data/index.js +78 -0
  128. data/lib/bootstrap/bookingsync/version.rb +1 -1
  129. data/package.json +62 -0
  130. data/testem.json +12 -0
  131. data/tests/.jshintrc +52 -0
  132. data/tests/dummy/app/app.js +18 -0
  133. data/tests/dummy/app/components/.gitkeep +0 -0
  134. data/tests/dummy/app/controllers/.gitkeep +0 -0
  135. data/tests/dummy/app/controllers/index.js +31 -0
  136. data/tests/dummy/app/helpers/.gitkeep +0 -0
  137. data/tests/dummy/app/index.html +25 -0
  138. data/tests/dummy/app/models/.gitkeep +0 -0
  139. data/tests/dummy/app/resolver.js +3 -0
  140. data/tests/dummy/app/router.js +11 -0
  141. data/tests/dummy/app/routes/.gitkeep +0 -0
  142. data/tests/dummy/app/styles/app.scss +3 -0
  143. data/tests/dummy/app/templates/application.hbs +7 -0
  144. data/tests/dummy/app/templates/components/.gitkeep +0 -0
  145. data/tests/dummy/app/templates/index.hbs +275 -0
  146. data/tests/dummy/app/templates/navbar.hbs +24 -0
  147. data/tests/dummy/app/templates/sidebar.hbs +47 -0
  148. data/tests/dummy/config/environment.js +47 -0
  149. data/tests/dummy/public/crossdomain.xml +15 -0
  150. data/tests/dummy/public/robots.txt +3 -0
  151. data/tests/helpers/destroy-app.js +5 -0
  152. data/tests/helpers/module-for-acceptance.js +23 -0
  153. data/tests/helpers/resolver.js +11 -0
  154. data/tests/helpers/start-app.js +18 -0
  155. data/tests/index.html +34 -0
  156. data/tests/integration/.gitkeep +0 -0
  157. data/tests/integration/components/bsy-button-test.js +24 -0
  158. data/tests/test-helper.js +6 -0
  159. data/tests/unit/.gitkeep +0 -0
  160. data/vendor/.gitkeep +0 -0
  161. metadata +127 -8
  162. data/docs/content/css.html +0 -68
@@ -7,6 +7,12 @@
7
7
  // Forms
8
8
  // --------------------------------------------------
9
9
 
10
+ .form-inline {
11
+ .form-group {
12
+ margin-top: 0;
13
+ }
14
+ }
15
+
10
16
  // Form groups
11
17
  //
12
18
  // Designed to help with the organization and spacing of vertical forms. For
@@ -17,9 +23,13 @@
17
23
  display: block;
18
24
  box-sizing: border-box;
19
25
  max-width: 100%;
20
- margin: 0;
26
+ margin: 25px 0 0 0;
21
27
  padding: $label-padding-focus 0 $padding-base-vertical;
22
28
 
29
+ &:first-of-type {
30
+ margin-top: 0;
31
+ }
32
+
23
33
  label {
24
34
  position: absolute;
25
35
  bottom: 0;
@@ -85,6 +95,17 @@
85
95
  }
86
96
  }
87
97
 
98
+ .select {
99
+ margin-top: 25px;
100
+
101
+ label {
102
+ color: $label-color-filled;
103
+ font-size: $label-font-size-filled;
104
+ font-weight: normal;
105
+ pointer-events: none;
106
+ }
107
+ }
108
+
88
109
  // FIXME: :not(.readonly) should be used
89
110
  .form-group label:after {
90
111
  background-color: $label-border-focus;
@@ -0,0 +1,119 @@
1
+ /*!
2
+ * Copyright 2016 BookingSync SAS.
3
+ * Licensed under MIT (https://github.com/BookingSync/bootstrap-bookingsync-sass/blob/master/LICENSE)
4
+ */
5
+
6
+ @font-face {
7
+ font-family: '#{$icons-font-name}';
8
+ src: url(if($bootstrap-bookingsync-sass-asset-helper, bs-font-path('#{$icons-font-path}#{$icons-font-name}.eot'), '#{$icons-font-path}#{$icons-font-name}.eot'));
9
+ src: url(if($bootstrap-bookingsync-sass-asset-helper, bs-font-path('#{$icons-font-path}#{$icons-font-name}.eot?#iefix'), '#{$icons-font-path}#{$icons-font-name}.eot?#iefix')) format('embedded-opentype'),
10
+ url(if($bootstrap-bookingsync-sass-asset-helper, bs-font-path('#{$icons-font-path}#{$icons-font-name}.woff2'), '#{$icons-font-path}#{$icons-font-name}.woff2')) format('woff2'),
11
+ url(if($bootstrap-bookingsync-sass-asset-helper, bs-font-path('#{$icons-font-path}#{$icons-font-name}.woff'), '#{$icons-font-path}#{$icons-font-name}.woff')) format('woff'),
12
+ url(if($bootstrap-bookingsync-sass-asset-helper, bs-font-path('#{$icons-font-path}#{$icons-font-name}.ttf'), '#{$icons-font-path}#{$icons-font-name}.ttf')) format('truetype'),
13
+ url(if($bootstrap-bookingsync-sass-asset-helper, bs-font-path('#{$icons-font-path}#{$icons-font-name}.svg##{$icons-font-svg-id}'), '#{$icons-font-path}#{$icons-font-name}.svg##{$icons-font-svg-id}')) format('svg');
14
+ font-weight: normal;
15
+ font-style: normal;
16
+ }
17
+
18
+ [class^="icon-"], [class*=" icon-"] {
19
+ /* use !important to prevent issues with browser extensions that change fonts */
20
+ font-family: '#{$icons-font-name}' !important;
21
+ speak: none;
22
+ font-style: normal;
23
+ font-weight: normal;
24
+ font-variant: normal;
25
+ text-transform: none;
26
+ line-height: 1;
27
+ display: inline-block;
28
+
29
+ /* Better Font Rendering =========== */
30
+ -webkit-font-smoothing: antialiased;
31
+ -moz-osx-font-smoothing: grayscale;
32
+ }
33
+
34
+ .icon-fw {
35
+ width: (18em / 14);
36
+ text-align: center;
37
+ }
38
+
39
+ .icon-invoice:before {
40
+ content: $icon-invoice;
41
+ }
42
+ .icon-rental:before {
43
+ content: $icon-rental;
44
+ }
45
+ .icon-photo:before {
46
+ content: $icon-photo;
47
+ }
48
+ .icon-video:before {
49
+ content: $icon-video;
50
+ }
51
+ .icon-description:before {
52
+ content: $icon-description;
53
+ }
54
+ .icon-contract:before {
55
+ content: $icon-contract;
56
+ }
57
+ .icon-reservation:before {
58
+ content: $icon-reservation;
59
+ }
60
+ .icon-rates:before {
61
+ content: $icon-rates;
62
+ }
63
+ .icon-payments:before {
64
+ content: $icon-payments;
65
+ }
66
+ .icon-help:before {
67
+ content: $icon-help;
68
+ }
69
+ .icon-map:before {
70
+ content: $icon-map;
71
+ }
72
+ .icon-calendar:before {
73
+ content: $icon-calendar;
74
+ }
75
+ .icon-inbox:before {
76
+ content: $icon-inbox;
77
+ }
78
+ .icon-clients:before {
79
+ content: $icon-clients;
80
+ }
81
+ .icon-owner:before {
82
+ content: $icon-owner;
83
+ }
84
+ .icon-search:before {
85
+ content: $icon-search;
86
+ }
87
+ .icon-checkin:before {
88
+ content: $icon-checkin;
89
+ }
90
+ .icon-settings:before {
91
+ content: $icon-settings;
92
+ }
93
+ .icon-maintenance:before {
94
+ content: $icon-maintenance;
95
+ }
96
+ .icon-reports:before {
97
+ content: $icon-reports;
98
+ }
99
+ .icon-cleaning:before {
100
+ content: $icon-cleaning;
101
+ }
102
+ .icon-notifications:before {
103
+ content: $icon-notifications;
104
+ }
105
+ .icon-instant:before {
106
+ content: $icon-instant;
107
+ }
108
+ .icon-applications:before {
109
+ content: $icon-applications;
110
+ }
111
+ .icon-website:before {
112
+ content: $icon-website;
113
+ }
114
+ .icon-reviews:before {
115
+ content: $icon-reviews;
116
+ }
117
+ .icon-widget:before {
118
+ content: $icon-widget;
119
+ }
@@ -5,7 +5,7 @@
5
5
 
6
6
  body {
7
7
  min-height: 100vh;
8
- padding-top: $navbar-height;
8
+ padding-top: $navbar-height + 1; // for the navbar-fixed-top border
9
9
  }
10
10
 
11
11
  .navbar.navbar-fixed-top {
@@ -19,10 +19,11 @@ body {
19
19
  }
20
20
 
21
21
  .navbar-nav > li > a {
22
- line-height: 40px;
22
+ line-height: 20px;
23
23
  }
24
24
 
25
25
  h1,
26
+ .h1,
26
27
  .navbar-brand {
27
28
  font-size: 18px;
28
29
  line-height: $navbar-height;
@@ -30,8 +31,14 @@ body {
30
31
  margin: 0;
31
32
  }
32
33
 
34
+ a.h1:focus,
35
+ a.h1:hover {
36
+ text-decoration: none;
37
+ color: $headings-color;
38
+ }
39
+
33
40
  @media (max-width: $screen-xs-max) {
34
- .navbar-header > div {
41
+ .navbar-brand-container {
35
42
  padding: 0 60px;
36
43
  }
37
44
 
@@ -39,18 +46,20 @@ body {
39
46
  padding: 0 40px;
40
47
  }
41
48
 
42
- div > .navbar-brand {
49
+ .navbar-brand {
43
50
  text-align: center;
44
51
  width: 100%;
45
52
  }
46
53
  }
47
54
  }
48
55
 
49
- #content {
50
- min-height: 100vh;
51
- font-size: 12px; // FIXME: Temporary fix for easier migration
56
+ .main-content {
57
+ overflow: auto;
58
+ }
52
59
 
53
- &.with-navbar {
54
- padding-top: $navbar-height + 1; // navbar border
60
+ .sided-content {
61
+ & > .navbar,
62
+ & > .main-content {
63
+ margin-left: $menu-width;
55
64
  }
56
65
  }
@@ -0,0 +1,37 @@
1
+ .list-group {
2
+ .active {
3
+ .list-group-item {
4
+ background-color: $list-group-active-bg;
5
+ }
6
+
7
+ .list-group .list-group-item {
8
+ background-color: $list-group-active-child-bg;
9
+
10
+ &:hover {
11
+ background-color: $list-group-active-child-hover-bg;
12
+ }
13
+ }
14
+ }
15
+
16
+ .list-group {
17
+ margin-bottom: 0;
18
+
19
+ .list-group-item {
20
+ padding-left: 30px;
21
+ }
22
+ }
23
+
24
+ &.list-group-with-icon .list-group .list-group-item {
25
+ padding-left: 59px;
26
+ }
27
+ }
28
+
29
+ .panel-default {
30
+ .expanded .list-group-item {
31
+ border-left: 2px solid $list-group-active-child-border;
32
+ }
33
+
34
+ .expanded > .list-group-item {
35
+ font-weight: 600;
36
+ }
37
+ }
@@ -2,281 +2,301 @@
2
2
  // Menu
3
3
  // --------------------------------------------------
4
4
 
5
+ .caret-right {
6
+ display: inline-block;
7
+ width: 0;
8
+ height: 0;
9
+ margin-left: 2px;
10
+ vertical-align: middle;
11
+ border-left: $caret-width-base dashed;
12
+ border-top: $caret-width-base solid transparent;
13
+ border-bottom: $caret-width-base solid transparent;
14
+ }
15
+
5
16
  .menu {
6
17
  background-color: $menu-bg;
7
18
  color: $menu-color;
8
- border-radius: $menu-border-radius;
9
- width: 60px;
10
- height: 100%;
11
- overflow: hidden;
19
+ width: $menu-width;
20
+ overflow-x: hidden;
21
+ overflow-y: auto;
22
+ -webkit-overflow-scrolling: touch;
12
23
  z-index: 9000;
13
24
  transition: width 0.2s cubic-bezier(.4,0,.2,1);
14
- border-radius: 0;
15
25
 
16
- .body {
17
- overflow: hidden;
26
+ ol {
27
+ padding-left: 0;
28
+ margin: 0;
18
29
  }
19
30
 
20
- @media (max-width: $screen-xs-max) {
21
- .body,
22
- .menu-dropdown ol,
23
- .menu-dropright {
24
- overflow-y: auto;
25
- -webkit-overflow-scrolling: touch;
31
+ li {
32
+ display: block;
33
+
34
+ &.divider {
35
+ border-top: 1px solid $menu-divider-border-color;
36
+ }
37
+
38
+ a {
39
+ display: block;
40
+ text-decoration: none;
41
+ white-space: nowrap;
42
+ line-height: $menu-link-height;
26
43
  }
27
44
  }
28
45
 
46
+ a:not(.collapsed) .caret {
47
+ transform: rotate(180deg);
48
+ }
49
+ }
29
50
 
30
- &:hover {
31
- width: 230px;
51
+ .menu-collapsed {
52
+ width: $menu-collapsed-width;
32
53
 
33
- .body,
34
- .menu-dropdown ol,
35
- .menu-dropright {
36
- overflow-y: auto;
37
- -webkit-overflow-scrolling: touch;
38
- }
54
+ &.menu-hovered {
55
+ width: $menu-width;
39
56
  }
57
+ }
40
58
 
41
- header,
42
- footer {
43
- .bar {
44
- height: $menu-header-height;
45
- position: relative;
46
- }
59
+ .menu-fixed {
60
+ height: 100vh;
61
+ position: fixed;
62
+ top: 0;
63
+ left: 0;
64
+ }
47
65
 
48
- .brand,
49
- .avatar {
50
- height: 24px;
51
- width: 24px;
52
- font-size: 24px;
53
- position: absolute;
54
- top: 18px;
55
- left: 18px;
56
- }
66
+ .menu-icon,
67
+ .menu-body,
68
+ .menu-caret {
69
+ display: table-cell;
70
+ vertical-align: middle;
71
+ }
57
72
 
58
- .brand {
59
- font-size: 24px;
60
- padding-top: 5px;
61
- }
73
+ .menu-icon {
74
+ width: $menu-collapsed-width;
75
+ min-width: $menu-collapsed-width;
76
+ text-align: center;
62
77
 
63
- p {
64
- margin: 0;
65
- margin-left: 60px;
66
- padding-top: 17.5px;
67
- line-height: 1.24em;
68
- white-space: nowrap;
69
- }
78
+ * {
79
+ width: $menu-icon-size;
80
+ height: $menu-icon-size;
81
+ font-size: $menu-icon-size;
82
+ line-height: 1;
70
83
  }
84
+ }
71
85
 
72
- header {
73
- background-color: $menu-header-bg;
74
- color: $menu-header-color;
75
- z-index: 1000;
76
- position: static;
86
+ .menu-body {
87
+ width: 100%;
88
+ }
77
89
 
78
- a {
79
- color: $menu-header-link-color;
80
- }
90
+ .menu-caret {
91
+ padding-right: 15px;
92
+ }
81
93
 
82
- ol {
83
- margin-bottom: 0;
84
- border-top: 1px solid $menu-header-link-hover-bg;
85
- background-color: $menu-header-bg;
86
- width: 100%;
87
- position: absolute;
88
- max-height: 100%;
89
- overflow: hidden;
90
-
91
- a:hover {
92
- background-color: $menu-header-link-hover-bg;
93
- color: $menu-header-link-hover-color;
94
- }
95
- }
94
+ .menu-link-icon {
95
+ color: $menu-link-icon-color;
96
+ }
96
97
 
97
- .bar {
98
- background-color: $menu-header-bg;
99
- z-index: 2000;
100
- }
98
+ .menu-link-body {
99
+ font-weight: 600;
100
+ -webkit-font-smoothing: antialiased;
101
+ -moz-osx-font-smoothing: grayscale;
102
+ }
101
103
 
102
- #menu-header-submenu {
103
- width: 100%;
104
+ .menu-link {
105
+ background-color: $menu-link-bg;
106
+ color: $menu-link-color;
104
107
 
105
- &.open {
106
- top: $menu-header-height;
107
- bottom: 0;
108
- @media (max-width: $screen-xs-max) {
109
- position: fixed;
110
- top: $menu-header-height + $navbar-height;
111
- }
112
- }
113
- }
114
- }
108
+ &:hover,
109
+ &:focus {
110
+ background-color: $menu-link-hover-bg;
111
+ color: $menu-link-hover-color;
115
112
 
116
- footer {
117
- background-color: $menu-footer-bg;
118
- color: $menu-footer-color;
119
-
120
- a {
121
- color: $menu-footer-link-color;
113
+ .menu-link-icon {
114
+ color: $menu-link-hover-icon-color;
122
115
  }
116
+ }
123
117
 
124
- .back {
125
- i {
126
- color: $menu-footer-back-color;
127
- }
118
+ .active &,
119
+ .active:hover &,
120
+ .active:focus & {
121
+ background-color: $menu-active-bg;
122
+ color: $menu-active-color;
128
123
 
129
- a:hover i {
130
- color: $menu-footer-back-color;
131
- }
124
+ .menu-link-icon {
125
+ color: $menu-active-icon-color;
132
126
  }
127
+ }
133
128
 
134
- i {
135
- margin-left: 2px;
136
- }
129
+ & > .menu-body {
130
+ padding-left: 15px;
131
+ }
132
+ }
137
133
 
138
- #menu-footer-submenu {
139
- top: 0;
140
- width: 100%;
141
- height: 100%;
134
+ .menu-header {
135
+ background-color: $menu-header-bg;
136
+ color: $menu-header-color;
137
+ z-index: 1000;
138
+ position: static;
142
139
 
143
- ol {
144
- margin-top: $menu-header-height;
145
- margin-bottom: 0;
146
- }
140
+ a {
141
+ color: $menu-header-link-color;
147
142
 
148
- &.open {
149
- ol {
150
- background-color: $menu-footer-bg;
151
- }
152
- }
143
+ &:hover {
144
+ background-color: $menu-header-link-hover-bg;
145
+ color: $menu-header-link-hover-color;
153
146
  }
154
147
  }
155
148
 
156
- ol {
157
- // No need to set list-style: none; since li is block level
158
- padding-left: 0; // reset padding because ul and ol
149
+ & > .menu-body {
150
+ padding-left: 15px;
159
151
  }
152
+ }
160
153
 
161
- li {
162
- display: block;
154
+ .menu-header-icon {
155
+ * {
156
+ width: $menu-header-icon-size;
157
+ height: $menu-header-icon-size;
158
+ font-size: $menu-header-icon-size;
159
+ }
160
+ }
163
161
 
164
- a {
165
- display: block;
166
- padding: 10px 22px;
167
- text-decoration: none;
168
- white-space: nowrap;
169
- line-height: 30px;
170
- }
162
+ .menu-header-body {
163
+ height: $menu-header-height;
164
+ position: relative;
165
+ color: $menu-header-color;
166
+ }
171
167
 
172
- i {
173
- width: 16px;
174
- height: 16px;
168
+ .menu-header-heading {
169
+ font-size: $menu-header-heading-size;
170
+ margin-top: 0;
171
+ margin-bottom: 0;
172
+ color: $menu-header-color;
173
+ overflow: hidden;
174
+ text-overflow: ellipsis;
175
+ white-space: nowrap;
176
+ }
177
+
178
+ .menu-header-submenu {
179
+ position: absolute;
180
+ width: 100%;
181
+ top: $menu-header-height;
182
+ background-color: $menu-header-submenu-bg;
183
+ color: $menu-header-submenu-color;
184
+ border-top: 1px solid $menu-header-submenu-border-color;
185
+
186
+ a {
187
+ color: $menu-header-submenu-link-color;
188
+ padding-left: 22px;
189
+
190
+ &:hover {
191
+ background-color: $menu-header-submenu-link-hover-bg;
192
+ color: $menu-header-submenu-link-hover-color;
175
193
  }
176
194
  }
195
+ }
177
196
 
178
- .body,
179
- footer {
180
- li {
181
- a {
182
- background-color: $menu-link-bg;
183
- color: $menu-link-color;
184
-
185
- i {
186
- color: $menu-link-icon-color;
187
- }
188
-
189
- span {
190
- padding-left: 18px;
191
- font-weight: 600;
192
- -webkit-font-smoothing: antialiased;
193
- -moz-osx-font-smoothing: grayscale;
194
- }
195
-
196
- &:hover {
197
- background-color: $menu-link-hover-bg;
198
- color: $menu-link-hover-color;
199
-
200
- i {
201
- color: $menu-link-hover-icon-color;
202
- }
203
- }
204
- }
197
+ .menu-footer {
198
+ background-color: $menu-footer-bg;
199
+ color: $menu-footer-color;
200
+ z-index: 1000;
201
+ position: static;
205
202
 
206
- &.active a,
207
- &.active:hover a,
208
- &.active:focus a {
209
- background-color: $menu-active-bg;
210
- color: $menu-active-color;
203
+ a {
204
+ color: $menu-footer-link-color;
211
205
 
212
- i {
213
- color: $menu-active-icon-color;
214
- }
215
- }
206
+ &:hover {
207
+ background-color: $menu-footer-link-hover-bg;
208
+ color: $menu-footer-link-hover-color;
209
+ }
210
+
211
+ &.collapsed .caret {
212
+ transform: rotate(180deg);
213
+ }
214
+
215
+ &:not(.collapsed) .caret {
216
+ transform: rotate(0deg);
216
217
  }
217
218
  }
218
219
  }
219
220
 
220
- .menu-toggle {
221
- height: $menu-header-height;
222
-
223
- .icon-bar {
224
- background-color: $menu-default-toggle-icon-bar-bg;
221
+ .menu-footer-icon {
222
+ * {
223
+ width: $menu-footer-icon-size;
224
+ height: $menu-footer-icon-size;
225
+ font-size: $menu-footer-icon-size;
225
226
  }
226
227
  }
227
228
 
228
- .menu-fixed {
229
- height: 100vh;
230
- position: fixed;
231
- top: 0;
232
- left: 0;
229
+ .menu-footer-body {
230
+ height: $menu-footer-height;
231
+ position: relative;
232
+ color: $menu-footer-color;
233
233
  }
234
234
 
235
- @media (max-width: $screen-xs-max) {
236
- .menu-toggle {
237
- position: fixed;
238
- top: 0;
239
- left: 0;
240
- z-index: 2000;
241
- margin-top: 0;
242
- margin-bottom: 0;
243
- margin-left: 5px;
244
- }
235
+ .menu-footer-heading {
236
+ font-size: $menu-footer-heading-size;
237
+ margin-top: 0;
238
+ margin-bottom: 0;
239
+ color: $menu-footer-color;
240
+ overflow: hidden;
241
+ text-overflow: ellipsis;
242
+ white-space: nowrap;
243
+ }
244
+
245
+ .menu-footer-submenu {
246
+ position: absolute;
247
+ width: 100%;
248
+ bottom: $menu-footer-height;
249
+ background-color: $menu-footer-submenu-bg;
250
+ color: $menu-footer-submenu-color;
251
+ border-top: 1px solid $menu-footer-submenu-border-color;
252
+ border-bottom: 1px solid $menu-footer-submenu-border-color;
245
253
 
246
- .menu {
247
- position: fixed;
248
- left: 0;
249
- top: $navbar-height;
250
- width: 100%;
251
- height: calc(100% - 70px);
254
+ a {
255
+ color: $menu-footer-submenu-link-color;
256
+ padding-left: $menu-collapsed-width;
252
257
 
253
258
  &:hover {
254
- width: 100%;
259
+ background-color: $menu-footer-submenu-link-hover-bg;
260
+ color: $menu-footer-submenu-link-hover-color;
255
261
  }
256
262
  }
257
263
  }
258
264
 
259
- @media (min-width: $screen-sm-min) {
260
- .menu {
261
- height: 100vh;
262
- position: fixed;
263
- top: 0;
264
- left: 0;
265
+ .menu-submenu {
266
+ width: $menu-width - $menu-collapsed-width;
267
+ margin-left: $menu-collapsed-width;
268
+ color: $menu-submenu-color;
269
+ background-color: $menu-submenu-bg;
270
+ z-index: 8000;
271
+
272
+ .menu-header {
273
+ color: $menu-submenu-header-color;
274
+ background-color: $menu-submenu-header-bg;
275
+ }
276
+
277
+ .menu-link {
278
+ background-color: $menu-submenu-link-bg;
279
+ color: $menu-submenu-link-color;
265
280
 
266
- &.collapse {
267
- visibility: visible;
281
+ &:hover,
282
+ &:focus {
283
+ background-color: $menu-submenu-link-hover-bg;
284
+ color: $menu-submenu-link-hover-color;
268
285
 
269
- &.flex-col {
270
- display: flex;
286
+ .menu-link-icon {
287
+ color: $menu-submenu-link-hover-icon-color;
271
288
  }
272
289
  }
273
- }
274
- }
275
290
 
276
- // Kill scroll on the body when the mobile menu is opened
277
- body.menu-open {
278
- position: fixed;
279
- overflow: hidden;
280
- width: 100%;
281
- height: 100%;
291
+ .active &,
292
+ .active:hover &,
293
+ .active:focus & {
294
+ background-color: $menu-submenu-active-bg;
295
+ color: $menu-submenu-active-color;
296
+
297
+ .menu-link-icon {
298
+ color: $menu-submenu-active-icon-color;
299
+ }
300
+ }
301
+ }
282
302
  }