hjg
2023-11-18 bb48edb3d9faaaeab0088151c86fc24137acdb08
提交 | 用户 | 时间
58d006 1 @menumin-submenu-top-border: lighten(@menumin-border , 10%);
A 2
3 .no-skin {
4     .navbar .navbar-toggle {
5         background-color: #75B3D7;
6         &:focus {
7             background-color: #75B3D7;
8             border-color: transparent;
9         }
10         &:hover {
11             background-color: darken(#75B3D7 , 5%);
12             border-color: rgba(255,255,255,0.1);
13         }
14         
15         &.display, &[data-toggle=collapse]:not(.collapsed) {
16             background-color: darken(#75B3D7 , 10%);
17             box-shadow: inset 1px 1px 2px 0 rgba(0, 0, 0, 0.25);
18             border-color: rgba(255, 255, 255, 0.35);
19         }
20     }
21
22     .sidebar {
23         background-color: @sidebar-background;
24         border-style: solid;
25         border-color: @sidebar-border;
26         border-width: 0 1px 0 0;
27     }
28
29     .nav-list .open > a {
30         & , &:hover, &:focus {
31             background-color: @nav-item-background-open;
32         }
33     }
34
35
36     .nav-list > li {
37         border-color: @nav-item-border;
38         > a {
39             background-color: @nav-item-background;
40             color: @nav-item-color;
41             
42             &:focus {
43                 background-color: @nav-item-background;
44                 color: @nav-item-color-focus;
45             }
46         }
47
48         &:hover > a {
49             background-color: @nav-item-background-hover;
50             color: @nav-item-color-hover;
51         }
52         
53         &.open > a {
54             background-color: @nav-item-background-open;
55             color: @nav-item-color-focus;
56         }
57         
58         &.active > a {
59             font-weight: bold;
60             color: @nav-item-color-active;
61             & , &:hover, &:focus {
62                 background-color: @nav-item-background-active;
63             }
64         }
65     }
66
67
68     //submenu
69     .nav-list > li .submenu {
70         background-color: @submenu-background;
71         border-color: @submenu-border;
72
73         > li > a {
74             border-top-color: @submenu-item-border;
75             background-color: @submenu-item-background;
76             color: @submenu-item-color;
77             
78             &:hover {
79                 color: @submenu-item-color-hover;
80                 background-color: @submenu-item-background-hover;
81             }
82         }
83         > li.active > a {
84             color: @nav-item-color-active;
85             > .menu-icon {
86                 color: @submenu-item-icon-active;
87             }
88         }
89         > li.active.open > a > .menu-icon {
90             color: inherit;
91         }
92         
93         @media only screen and (min-width: @screen-hover-menu) {
94             > li.active.hover > a.dropdown-toggle > .menu-icon {
95                 color: inherit;
96             }
97         }
98
99
100         > li.active:not(.open) > a {
101             background-color: @submenu-item-background-active;
102             &:hover {
103                 background-color: @submenu-item-background-hover;
104             }
105         }
106     }
107
108     .nav-list > li > .submenu {
109         .open > a, .open > a:hover, .open > a:focus {
110             border-color: @submenu-item-border;
111         }
112         
113         li > .submenu > li a{
114             color: lighten(@submenu-item-color , 8%);
115             &:hover {
116                 color: @3rd-level-item-color-hover;
117                 background-color: @3rd-level-item-background-hover;
118             }
119         }
120         
121         li.open > a {
122             color: @3rd-level-item-color-hover;
123         }
124         li > .submenu li.open > a , li > .submenu li.active > a {
125             color: @3rd-level-item-color-hover;
126         }
127     }
128     
129     //the tree line
130     .nav-list > li {
131         > .submenu:before,
132         > .submenu > li:before {
133             border-color: @submenu-tree-line-color;
134         }
135         &.active > .submenu:before,
136         &.active > .submenu > li:before    {
137             border-color: @submenu-tree-line-color-active;
138         }
139     }
140
141
142
143     //extra
144     .sidebar-toggle {
145         background-color: @sidebar-toggle-background;
146         border-color: @sidebar-toggle-border;
147
148         > .@{icon} {
149             border-color: @sidebar-toggle-icon-border;
150             color: @sidebar-toggle-icon-color;
151             background-color: @sidebar-toggle-icon-background;
152         }
153     }
154     .sidebar-shortcuts {
155         background-color: @shortcuts-background;
156     }
157     .sidebar-fixed .sidebar-shortcuts {
158         border-color: @shortcuts-border;
159     }
160     .sidebar-shortcuts-mini {
161         background-color: @submenu-background;
162     }
163
164
165
166     //-li > .arrow
167     .nav-list li > .arrow {
168         &:before {
169             border-right-color: #B8B8B8;
170             -moz-border-right-colors: #B8B8B8;
171             
172             border-width: 10px 10px 10px 0;
173             //because border-width: 10px in firefox doesn't look good
174             //but on other skins, it has a bad edge on firefox
175             left: -11px;
176         }
177         &:after {
178             border-right-color: @submenu-background;
179             -moz-border-right-colors: @submenu-background;
180             
181             border-width: 10px 10px 10px 0;
182             left: -10px;
183         }
184     }
185     .nav-list > li.pull_up > .arrow {
186         &:after {
187             border-right-color: @submenu-background !important;
188             -moz-border-right-colors: @submenu-background !important;
189             
190             border-width: 10px 10px 10px 0 !important;//to override .menu-min
191             left: -10px !important;
192         }
193         &:before {
194             border-width: 10px 10px 10px 0 !important;
195             left: -11px !important;
196         }
197     }
198
199
200
201     //active state
202     .nav-list li.active > a:after {
203         border-right-color: @nav-item-color-active;
204         -moz-border-right-colors: @nav-item-color-active;
205     }
206     //the border on right of active item
207     .nav-list > li.active:after {
208         display: block;
209         content: "";
210         position: absolute;
211         right: -2px;
212         top: -1px;
213         bottom: 0;
214         z-index: 1;
215
216         border: 2px solid;
217         border-width: 0 2px 0 0;
218         border-color: @nav-item-color-active
219     }
220     .sidebar-scroll .nav-list > li.active:after {
221         //so that its inside sidebar
222         right: 0;
223     }
224
225     
226     //show active caret only for 1st level item
227     @media only screen and (max-width: @grid-float-breakpoint-max) {
228         .sidebar.responsive .nav-list > li.active.open > a:after,
229         .sidebar.responsive-max .nav-list > li.active.open > a:after
230         {
231             display: block;
232         }
233         
234         .sidebar.responsive .nav-list li li.active > a:after,
235         .sidebar.responsive-max .nav-list li li.active > a:after
236         {
237             display: none;
238         }
239         
240         .sidebar.responsive .nav-list > li.active:after,
241         .sidebar.responsive-max .nav-list > li.active:after
242         {
243             height: @nav-item-height + 2;
244         }
245     }
246
247
248
249
250      //menu min
251     .menu_min_no_skin() {
252          .nav-list > li > a {
253             > .menu-text {
254                 background-color: @menumin-text-background;
255                 .box-shadow(@menumin-shadow1);
256                 border-color: @menumin-border;
257             }
258             &.dropdown-toggle > .menu-text {
259                 .box-shadow(@menumin-shadow2);
260             }
261          }
262          .nav-list > li {
263              &.active > .submenu {
264                 border-left-color: @submenu-border-active;
265              }
266          }
267          .nav-list > li > .submenu {
268                 background-color: @submenu-background;
269                 border: 1px solid @menumin-border;
270                 border-top-color: @menumin-submenu-top-border;
271                 .box-shadow(@menumin-shadow2);
272          }
273          
274          //-li > .arrow
275         .nav-list > li {
276              > .arrow:after {
277                 border-right-color: @menumin-text-background;
278                 -moz-border-right-colors: @menumin-text-background;
279                 
280                 border-width: 8px 8px 8px 0;
281                 left: -8px;
282              }
283              > .arrow:before {
284                 border-width: 8px 8px 8px 0;
285                 left: -9px;
286              }
287
288              &.active > .arrow:before {
289                 border-right-color: darken(@submenu-border-active , 11%);
290                 -moz-border-right-colors: darken(@submenu-border-active , 11%);
291              }
292              &.active > a > .menu-text {
293                 border-left-color: @submenu-border-active;
294              }
295         }
296
297         
298         .sidebar-shortcuts-large {
299             background-color: @submenu-background;
300             .box-shadow(@menumin-shadow1);
301             border-color: @menumin-border;
302         }
303         .sidebar-toggle > .@{icon} {
304             border-color: darken(@sidebar-toggle-icon-border, 4%);
305         }
306     }
307
308     .enable_sidebar_collapse_no_skin() when(@enable-sidebar-collapse = true) {
309         .sidebar.menu-min {
310             .menu_min_no_skin();
311         }
312     }
313     .enable_sidebar_collapse_no_skin();
314     
315     .enable_minimized_responsive_menu_no_skin() when(@enable-minimized-responsive-menu = true) {
316         @media (max-width: @grid-float-breakpoint-max) {
317             .sidebar.responsive-min {
318                 .menu_min_no_skin();
319             }
320         }
321     }
322     .enable_minimized_responsive_menu_no_skin();
323
324
325
326
327   .enable_hover_submenu_no_skin() when(@enable-submenu-hover = true) {
328     //.hover menu
329     @media only screen and (min-width: @screen-hover-menu) {
330     .nav-list li.hover {
331         > .submenu {
332             .box-shadow(@menumin-shadow1);
333             border-color: @hover-submenu-border;
334
335             > li.active > a {
336                 background-color: @hover-submenu-background-active;
337             }
338
339             > li:hover > a {
340                 background-color: @hover-submenu-item-background-hover;
341                 color: @hover-submenu-item-color-hover;
342             }
343
344         }
345     }
346     }
347
348     
349    .enable_collapsible_responsive_hover_menu_no_skin() when(@enable-collapsible-responsive-menu = true) {
350     @media only screen and (min-width: @screen-hover-menu) and (max-width: @grid-float-breakpoint-max) {
351      .sidebar.navbar-collapse {
352         .nav-list li li.hover.active.open > a {
353             background-color: @nav-item-background-active;
354         }
355         //in wide view when we hover a submenu item, its parent LI > A are highlighted, but not needed in small view
356         //so remove "li.hover:hover > a" highlight
357         .nav-list li li.hover:hover > a {
358             background-color: @submenu-item-background;
359         }
360         //and instead highlight "li.hover > a:hover"
361         .nav-list li li.hover > a:hover,
362         .nav-list li li.hover.open > a:hover,
363         .nav-list li li.hover.open.active > a:hover {
364             background-color: @submenu-item-background-hover;
365         }
366
367         //active submenu item icon is red
368         .nav-list > li .submenu > li.active.hover > a.dropdown-toggle > .menu-icon {
369             color: @submenu-item-icon-active;
370         }
371         //active submenu item icon inherits color
372         .nav-list > li .submenu > li.active.open.hover > a.dropdown-toggle > .menu-icon {
373             color: inherit;
374         }
375
376       }
377     }
378
379     //sometimes .hover items are opened in small view, and back in large view we reset the highlight state
380     @media only screen and (min-width: max(@screen-hover-menu, @grid-float-breakpoint)) {
381       .sidebar.navbar-collapse {
382         .nav-list > li.open.hover:not(:hover):not(:focus):not(.active) > a {
383             color: @nav-item-color;
384             > .arrow {
385                 color: inherit;
386             }
387         }
388         .nav-list > li.open.hover:hover > a {
389             background-color: @nav-item-background-hover;
390         }
391
392         .nav-list > li > .submenu li.open.hover:not(:hover):not(:focus):not(.active) > a {
393             color: @submenu-item-color;
394             > .arrow {
395                 color: inherit;
396             }
397         }
398       }
399     }//@media
400     //reset .hover to normal
401     @media only screen and (min-width: @screen-hover-menu) and (max-width: @grid-float-breakpoint-max) {
402         .sidebar.navbar-collapse {
403             .nav-list li.hover > .submenu {
404                 border-top-color: @submenu-border;
405                 background-color: @submenu-background;
406             }
407         }
408         
409         .nav-list li.hover > .submenu > li.active:not(.open) > a {
410             background-color: @submenu-item-background-active;
411             &:hover {
412                 background-color: @submenu-item-background-hover;
413             }
414         }
415     }
416    }
417    .enable_collapsible_responsive_hover_menu_no_skin();
418
419     
420   }
421   .enable_hover_submenu_no_skin();
422
423
424
425
426     //horizontal
427     .enable_horizontal_menu_no_skin() when(@enable-horizontal-menu = true) {
428       @media only screen and (min-width: @grid-float-breakpoint) {
429          .sidebar.h-sidebar {
430             background-color: @h-sidebar-background;
431             &:before {
432                 background-color: @h-sidebar-preground;
433                 .box-shadow(@h-sidebar-preshadow);
434             }
435
436             .nav-list > li {
437                 &:hover , &:hover + li {
438                     border-left-color: @h-nav-item-border-hover;
439                 }
440                 &:last-child:hover {
441                     border-right-color: @h-nav-item-border-hover;
442                 }
443                 &.active , &.active + li , &:hover + li.active {
444                     border-left-color: @h-nav-item-border-active;
445                 }
446                 &.active:last-child {
447                     border-right-color: @h-nav-item-border-active;
448                 }
449             }
450             .nav-list > li.active:before {
451                 background-color: @nav-item-color-active;//#2B7DBC;
452             }
453             
454             //a white line on bottom of active item to cover the blue separator
455             .nav-list > li.active > a:after {
456                 border-width: 0 0 2px 0;
457                 border-color: transparent;
458                 border-bottom-color: #FFF;
459
460                 left: 0;
461                 right: 0;
462                 top: auto;
463                 bottom: -2px;
464             }
465
466             
467             
468             .sidebar-shortcuts-large {
469                 background-color: #FFF;
470                 border-color: @menumin-border;
471                 .box-shadow(~"2px 1px 2px 0 rgba(0,0,0,0.1)");
472             }
473             .sidebar-shortcuts-large:after {
474                 border-bottom-color: #FFF;
475                 -moz-border-bottom-colors: #FFF;
476             }
477          }
478
479          .sidebar.h-sidebar {
480             .nav-list > li.hover {
481                 > .submenu {
482                     border-color: @hover-submenu-border;
483                 }
484             }
485             &.menu-min {
486                 .nav-list > li.hover {
487                     > .submenu {
488                         border-top-color: @menumin-submenu-top-border;
489                     }
490                 }                
491             }
492
493             .nav-list > li.hover {
494                 > .arrow:after {
495                     border-color: transparent;
496                     -moz-border-right-colors: none;
497                     -moz-border-top-colors: none;
498                     -moz-border-left-colors: none;                    
499
500                     border-bottom-color: #FFF;
501                     -moz-border-bottom-colors: #FFF;
502                 }
503                 > .arrow:before {
504                     border-color: transparent;
505                     -moz-border-right-colors: none;
506                     -moz-border-top-colors: none;
507                     -moz-border-left-colors: none;
508
509                     -moz-border-bottom-colors: #B8B8B8;
510                     border-bottom-color: #B8B8B8;
511                 }
512             }
513             
514             
515             &.menu-min .nav-list > li.hover > .arrow:after {
516                 -moz-border-bottom-colors: #F5F5F5;
517                 border-bottom-color: #F5F5F5;
518             }
519             &.menu-min .nav-list > li.active > a > .menu-text {
520                 border-left-color: @menumin-border;
521             }
522         }
523       }
524     }
525     .enable_horizontal_menu_no_skin();
526
527
528
529     @media only screen and (max-width: @grid-float-breakpoint-max) {
530         .sidebar {
531             border-width: 0 1px 1px 0;
532             border-top-color: lighten(@sidebar-border , 4%);
533         }
534         .menu-toggler + .sidebar.responsive {
535             border-top-width: 1px;
536         }
537
538         .sidebar.responsive-min {
539             border-width: 0 1px 0 0;
540         }
541
542         .sidebar.navbar-collapse {
543             border-width: 0;
544             border-bottom-width: 1px !important;//to override .rtl's
545             border-bottom-color: @sidebar-border;
546             .box-shadow(~"0 2px 2px rgba(0, 0, 0, 0.1)") !important;//to override .rtl's
547             
548             &.menu-min {
549                 .nav-list > li > .submenu {
550                     background-color: @submenu-background;
551                 }
552             }
553         }
554     }//@media
555     
556
557     
558     .sidebar-scroll {
559      .sidebar-shortcuts {
560         border-bottom-color: darken(@nav-item-border , 3%);
561      }
562      .sidebar-toggle {
563         border-top-color: darken(@nav-item-border , 3%);
564      }
565     }
566
567
568
569
570     .enable_old_menu_toggle_button_no_skin() when(@enable-old-menu-toggle-button = true) {
571       .main-container .menu-toggler {
572         background-color: @sidebar-toggler-background;
573         &:before {
574             border-top-color: @sidebar-toggler-line-1;
575             border-bottom-color: @sidebar-toggler-line-2;
576         }
577         
578         &:after {
579             border-top-color: @sidebar-toggler-line-3;
580             border-bottom-color: @sidebar-toggler-line-4;
581         }
582         > .toggler-text {
583             border-top-color: @sidebar-toggler-background;
584             -moz-border-top-colors: @sidebar-toggler-background;
585         }
586       }
587     }
588     .enable_old_menu_toggle_button_no_skin();
589     
590     
591     
592     //disabled state
593     .nav-list > li.disabled:before {
594         display: none !important;
595     }
596     .nav-list > li.disabled > a {
597         background-color: darken(@nav-item-background, 5%) !important;
598         color: lighten(@nav-item-color, 5%) !important;
599     }
600     
601     
602     .nav-list li .submenu > li.disabled > a,
603     .nav-list li.disabled .submenu > li > a {
604         background-color: darken(@submenu-item-background, 5%) !important;
605         color: desaturate(lighten(@submenu-item-color, 10%), 10%) !important;
606         cursor: not-allowed !important;
607         > .menu-icon {
608             display: none;
609         }
610     }
611     /**
612     .nav-list > li.disabled.active:after {
613         border-color: #999;
614     }
615     .nav-list li.disabled li.active > a:after,
616     .nav-list li.active.disabled > a:after {
617         -moz-border-right-colors: #999 !important;
618         border-right-color: #999 !important;
619     }
620     */
621     
622 }//.no-skin
623
624
625 //hover highlight
626 @import "../sidebar/highlight.less";