source: pro-violet-viettel/docs/template/assets/css/less/sidebar.less

Last change on this file was 400, checked in by dungnv, 11 years ago
File size: 14.4 KB
Line 
1//some sidebar variables
2@sidebar-bg:#F2F2F2;
3@sidebar-border-right:#CCC;
4
5//@menu-active-color:#0B6CBC;
6
7@menu-bg:#F9F9F9;
8@menu-color:#585858;
9@menu-hover-indicator:#3382AF;
10@menu-subarrow-color:#666;
11@menu-open-bg:#FAFAFA;
12@menu-active-bg:#FFF;
13
14@submenu-border:#E5E5E5;
15@submenu-bg:#FFF;
16@submenu-item-color:#616161;
17@submenu-item-border:#E4E4E4;
18@submenu-item-hover:#4B88B7;
19@submenu-item-active-icon:#C86139;
20
21
22@3rd-level-icon-color:#6A7D87;
23@submenu-left-border-style:dotted;
24
25//@submenu-left-border:#CCD7E2;
26//@submenu-active-left-border:#BCCFE0;
27
28
29
30@menumin-btn-bg:#F3F3F3;
31@menumin-btn-border:#E0E0E0;
32@menumin-icon-color:#AAA;
33@menumin-icon-border:#BBB;
34@menumin-icon-bg:#FFF;
35@menumin-bg:#F5F5F5;
36
37@menumin-text-border:#DDD;
38@menumin-shadow:~"2px 1px 2px 0 rgba(0,0,0,0.2)";
39
40@shortcuts-bg:#FAFAFA;
41@shortcuts-border:#DDD;
42
43
44
45
46
47.sidebar {
48 width:@sidebar-width;
49 
50 float:left;
51 position:relative;
52 //why not simply position:absolute?
53 //because we need the page height to be at least as high as the sidebar in case the page content is too small
54
55
56 border:1px solid @sidebar-border-right;
57 border-width:0 1px 0 0;
58
59 
60 background-color:@sidebar-bg;
61 
62  &:before {/* the grey background of sidebar */
63
64         content:""; display:block;
65         width:@sidebar-width;
66               
67         position:fixed; bottom:0; top:0;
68         z-index:-1;
69               
70         background-color:@sidebar-bg;
71         border:1px solid @sidebar-border-right;
72         border-width:0 1px 0 0;
73 }
74 
75 &.fixed , &.sidebar-fixed {
76        position: fixed;
77        z-index: @zindex-navbar-fixed - 1;
78        top: @navbar-mh;
79        left: 0;
80        &:before {
81                left: 0;
82                right: auto;
83        }
84 }
85}
86
87
88
89/* side navigation */
90li [class^="icon-"], li [class*=" icon-"]{
91 & , .nav-list & {
92        width:auto;
93 }
94}
95
96.nav-list {
97 margin:0; padding:0;
98 list-style:none;
99}
100
101.nav-list .open > a, .nav-list .open > a:hover, .nav-list .open > a:focus {
102 background-color: @menu-open-bg;
103}
104
105.nav-list > li > a, .nav-list .nav-header {
106 margin:0;
107}
108
109.nav-list > li {
110 display:block;
111 padding:0;
112 margin:0;
113
114 border:none;
115 border-top:1px solid #FCFCFC;
116 border-bottom:1px solid #E5E5E5;
117
118 position:relative;
119
120 &:first-child {
121        border-top:none;
122 }
123}
124
125.nav-list li > a:focus {
126        outline: none;
127}
128
129.nav-list > li {
130 > a {
131         display:block;
132         height:38px; line-height:36px;
133
134         padding:0 16px 0 7px;
135         background-color:@menu-bg;
136
137         color:@menu-color;
138         text-shadow:none !important;
139
140         font-size:13px;
141         text-decoration:none;
142
143         > [class*="icon-"]:first-child {
144                display:inline-block;
145                vertical-align:middle;
146
147                min-width:30px;
148                text-align:center;
149
150                font-size:18px;
151                font-weight:normal;
152               
153                margin-right:2px;
154         }
155         
156         &:focus {
157                background-color:@menu-bg;
158                color:@menu-focus-color;
159         }
160         
161         &:hover  {
162                background-color:#FFF;
163                color:@menu-focus-color;
164                &:before {
165                        display:block; content:"";
166                        position:absolute;
167                        top:-1px; bottom:0; left:0;
168                        width:3px; max-width:3px; overflow:hidden;
169                        background-color:@menu-hover-indicator;
170                }
171         }
172
173 }
174 
175 /* the submenu indicator arrow */
176 a > .arrow {
177        display:inline-block;
178        width:14px !important; height:14px;
179        line-height:14px;
180 
181        text-shadow:none;
182        font-size:18px;
183 
184        position:absolute;
185        right:11px;
186        top:11px;
187 
188        padding:0;
189        color:@menu-subarrow-color;
190 }
191 a:hover > .arrow , &.active > a  > .arrow , &.open > a > .arrow  {
192        color:@menu-focus-color;
193 }
194
195
196
197 &.separator {
198         height:3px;
199         background-color:transparent;
200         position:static;
201         margin:1px 0;
202
203         .box-shadow(none);
204 }
205
206 /* menu active/open states */
207 &.open > a {
208        background-color:@menu-open-bg;
209        color:@menu-focus-color;
210 }
211
212 &.active {
213  background-color:@menu-active-bg;
214   > a
215  {
216         & , &:hover, &:focus, &:active {
217                 background-color:@menu-active-bg;
218                 color:@menu-active-color;
219                 font-weight:bold;
220                 font-size:13px;
221         }
222
223         > [class*="icon-"] {
224                font-weight:normal;
225     }
226
227         &:hover:before {/* no left side menu item border on active state */
228                display:none;
229         }
230  }
231  //////
232
233
234  &:after {/* the border on right of active item */
235        display:inline-block; content:"";
236        position:absolute;
237        right:-2px; top:-1px; bottom:0;
238        z-index:1;
239       
240        border:2px solid @menu-active-color;
241        border-width: 0 2px 0 0;
242  }
243 }
244
245
246
247 /* submenu */
248 &.open {
249  border-bottom-color:@submenu-border;
250 }
251
252
253 &.active .submenu {
254  display:block;
255 }
256 .submenu {
257   display:none;
258   list-style:none;
259   margin:0; padding:0;
260
261   position:relative;
262   background-color:@submenu-bg;
263
264   border-top:1px solid @submenu-border;
265
266   > li {
267         margin-left:0;
268         position:relative;
269         
270         > a {
271                 display:block;
272                 position:relative;
273                 color:@submenu-item-color;
274
275                 padding:7px 0 9px 37px;
276                 margin:0;
277                 
278                 border-top:1px dotted @submenu-item-border;
279                 &:focus {
280                        text-decoration:none;
281                 }
282                 &:hover{
283                        text-decoration:none;
284                        color:@submenu-item-hover;
285                }
286         }
287
288         &.active > a {
289                color:@menu-active-color;
290         }
291
292
293        /* optional icon before each item */
294        a > [class*="icon-"]:first-child {
295                display:none;
296
297                font-size:12px; font-weight:normal;
298                width:18px; height:auto; line-height:12px; text-align:center;
299                position:absolute; left:10px; top:11px; z-index:1;
300
301                background-color:#FFF;
302        }
303        &.active > a > [class*="icon-"]:first-child,
304        &:hover > a > [class*="icon-"]:first-child {
305                display:inline-block;
306        }
307        &.active > a > [class*="icon-"]:first-child {
308                color:@submenu-item-active-icon;
309        }
310
311  }// > li
312 }//end of submenu
313
314
315 > .submenu {//the first level submenu
316        > li {
317                //tree like menu
318                &:before {
319                         /* the horizontal line */
320                        content:""; display:inline-block;
321                        position:absolute;
322                       
323                        width:7px;               
324                        left:20px; top:17px;
325                        border-top:1px @submenu-left-border-style @submenu-left-border;
326                }
327                &:first-child > a {
328                        border-top:1px solid #FAFAFA;
329                }
330        }
331
332        &:before {
333                content:"";
334                display:block;
335                position:absolute; z-index:1;
336                left:18px;
337                top:0; bottom:0;
338 
339                border: 1px @submenu-left-border-style @submenu-left-border;
340                border-width: 0 0 0 1px;
341        }
342 }
343 &.active {
344        > .submenu {
345                > li {
346                        &:before {
347                                border-top-color:@submenu-active-left-border;
348                        }
349                }
350                &:before {
351                        border-left-color:@submenu-active-left-border;
352                }
353        }
354 }
355
356
357}//end of .nav-list > li
358
359
360//.nav-list li
361.nav-list li {
362 .active_state_caret() {
363        display:block;
364        content:"";
365         
366        position:absolute !important;
367        right:0; top:4px;
368
369        border: 8px solid transparent;
370        border-width: 14px 10px;
371        border-right-color: @menu-active-color;
372 }
373
374 .submenu {
375        /* needed for webkit based browsers to slideToggle without problem */
376        overflow:hidden;
377 }
378
379 &.active > a:after {
380        .active_state_caret();
381 }
382
383 &.open > a:after {/* no caret for open menu item */ //we put this after .active > a:after to override it
384        display:none;
385 }
386 &.active.open > .submenu > li.active.open > a.dropdown-toggle:after {
387        /* don't display caret on active open item who is open and has children */
388        display: none;
389 }
390 &.active > .submenu > li.active > a:after {
391        /** don't display caret on active item whose parent is not open
392        useful for hiding the caret when submenu is sliding up */
393        display: none;
394 }
395 &.active.open > .submenu > li.active > a:after {
396        /* display caret on active item whose parent is open */
397        display: block;
398 }
399
400
401 &.active.no-active-child {
402        > a:after {/* show caret for active menu item with childs which is not open(i.e. no submenu item is active) */
403                display:inline-block !important;
404        }
405 }
406}//end of .nav-list li
407
408
409
410.nav-list a {
411 .badge , .label {
412        font-size:12px;
413        padding-left:6px; padding-right:6px;
414        position:absolute;
415        top:9px; right:11px;
416        opacity:0.88;
417        [class*="icon-"] {
418                vertical-align:middle;
419                margin:0;
420        }
421 }
422 &.dropdown-toggle {
423        .badge , .label {
424                right:28px;
425        }
426 }
427 &:hover {
428        .badge , .label {
429                opacity:1;
430        }
431  }
432 
433}
434
435.nav-list .submenu .submenu a {
436 .badge , .label {
437        top:6px;
438 }
439}
440
441
442
443
444/* side menu minimizer icon */
445.sidebar-collapse  {
446 border-bottom:1px solid @menumin-btn-border;
447 background-color:@menumin-btn-bg;
448 
449 text-align:center;
450 padding:3px 0;
451 
452 position:relative;
453 
454 
455 > [class*="icon-"]{
456         display:inline-block;
457         
458         cursor:pointer;
459         font-size:14px;
460         color:@menumin-icon-color;
461         
462         border:1px solid @menumin-icon-border;
463         padding:0 5px;
464         line-height:18px;
465         
466         border-radius:16px;
467
468         background-color:@menumin-icon-bg;
469         position:relative;
470 }
471 
472 &:before {
473        content:"";
474        display:inline-block;
475         
476        height:0;
477        border-top:1px solid @menumin-btn-border;
478        position:absolute;
479        left:15px; right:15px; top:13px;
480 }
481
482}
483
484
485
486/* sidebar shortcuts icon */
487.sidebar-shortcuts {
488 background-color:@shortcuts-bg;
489 border-bottom:1px solid @shortcuts-border;
490 text-align:center;
491 
492 line-height:@breadcrumb-height - 2;
493 max-height:@breadcrumb-height;
494 margin-bottom:0;
495}
496.sidebar-shortcuts-large {
497 padding-bottom:4px;
498 
499 > .btn {
500        width:41px;
501        line-height:24px;
502       
503        margin-top:-2px;
504        padding:0;
505       
506        border-width:4px;
507       
508        text-align:center;
509        > [class*="icon-"] { margin:0; }       
510 }
511 
512}
513.sidebar-shortcuts-mini {
514 display:none;
515 font-size:0;
516 width:42px;
517 line-height:18px;
518 padding-top:2px; padding-bottom:2px;
519 
520 background-color:@submenu-bg;
521 
522  > .btn{
523         border-width:0 !important;
524         font-size:0;
525         line-height:0;
526         padding:8px !important;
527         margin:0 1px;
528         
529         border-radius:0 !important;
530         .opacity(0.85);
531  }
532}
533
534@media screen and (-webkit-min-device-pixel-ratio:0) {
535    ::safari-only,.sidebar-shortcuts-mini > .btn {//safari only
536                margin: 0;
537    }
538}
539
540
541//3rd & 4th level menu
542.nav-list > li > .submenu {
543  li > .submenu {
544        border-top:none;
545        background-color:transparent;
546        display:none;
547  }
548  li.active > .submenu {
549        display:block;
550  }
551
552  a > .arrow {
553        right:11px; top:10px;
554        font-size:16px;
555        color:#6B828E;
556  }
557 
558  .open > a, .open > a:hover, .open > a:focus {
559        background-color: transparent;
560        border-color: @submenu-item-border;
561  }
562
563  li > .submenu > li > a > .arrow {
564        right:12px;
565        top:9px;
566  }
567
568
569  li > .submenu > li {
570                line-height:16px;
571                &:before {//the tree like menu
572                        display:none;
573                }
574
575                > a {/*3rd level*/
576                        margin-left:20px;
577                        padding-left:22px;
578                }
579                > .submenu > li > a {/*4th level*/
580                        margin-left:20px;
581                        padding-left:38px;
582                }
583
584                a > [class*="icon-"]:first-child {
585                        display:inline-block;
586                        color:inherit;
587                        font-size:14px;
588                       
589                        position:static;
590                        background-color:transparent;
591                        margin-right: 1px;
592                }
593
594
595                a {
596                        font-size:13px;
597                        color:#777;
598                       
599                        &:hover {
600                                color:desaturate(@menu-focus-color, 25%);
601                                text-decoration:underline;
602                                [class*="icon-"] {
603                                        text-decoration:none;
604                                        color:desaturate(@menu-focus-color, 25%);
605                                }
606                        }
607                }
608
609  }
610
611  li.open > a {
612        color:desaturate(@menu-focus-color, 12%);
613        >  [class*="icon-"]:first-child {
614                display:inline-block;
615        }
616        .arrow {
617                color:desaturate(@menu-focus-color, 12%);
618        }
619  }
620  li > .submenu li.open > a {
621        color:desaturate(@menu-focus-color, 12%);
622        >  [class*="icon-"]:first-child {
623                display:inline-block;
624                color:@menu-focus-color;
625        }
626       
627        .arrow {
628                color:desaturate(@menu-focus-color, 12%);
629        }
630  }
631
632  li > .submenu li.active > a {
633        color:desaturate(@menu-active-color, 8%);
634        >  [class*="icon-"]:first-child {
635                display:inline-block;
636                color:desaturate(@menu-active-color, 8%);
637        }
638  }
639
640
641}//.nav-list > li > .submenu
642
643
644.nav-list > li {
645  &.active.open li.active > a:after {
646        top:2px;
647        border-width:14px 8px;
648  }
649  &.active.open li.active.open li.active > a:after {
650        top:0;
651  }
652}
653
654
655
656
657
658
659
660
661
662@import "sidebar-min.less";//minimized sidebar mode
663
664
665
666/* side menu toggler in mobile view */
667.menu-toggler {
668 display:none;
669}
670
671
672
673/* responsive sidebar */
674@media only screen and (max-width: @screen-sm-max) {
675 .sidebar:before {
676        display:none;
677 }
678 .sidebar {
679        display:none;
680        float:none;
681       
682        position:absolute;
683        z-index:999;
684        left:0;
685        bottom:auto;
686        top:auto !important;/*so that it's applied even if it's .sidebar-fixed */
687        margin-top:40px;
688
689        border:1px solid #CCC;
690        border-left-width:0;
691        box-shadow:2px 1px 2px 0 rgba(0,0,0,0.2);
692 }
693 
694 .sidebar.display {
695        display:block;
696 }
697
698
699 .menu-toggler {
700        display:inline-block;
701        position:absolute; left:0; z-index:998;
702        width:52px; height:32px;
703        margin-right:2px;
704       
705        line-height:normal;
706        padding-left:33px; padding-top:7px; padding-bottom:1px;
707       
708        font-size:13px; font-weight:bold;
709        text-transform:uppercase;
710
711        background-color:#444;
712        color:#F3F3F3;
713       
714        .box-sizing(content-box);
715       
716 }
717 .menu-toggler:hover {
718        text-decoration:none;
719 }
720 .menu-toggler:before {
721        border-top: 1px solid #87B87F;
722        border-bottom: 1px solid #6FB3E0;
723        height:2px; width:24px;
724        content: "";
725        position: absolute; z-index:11;
726        top: 13px; left:4px;
727
728        .transition(~"all 0.1s ease");
729        -o-transition: none;
730       
731        .box-sizing(content-box);
732 }
733 .menu-toggler:after {
734        border-top: 1px solid #FFA24D;
735        border-bottom: 1px solid #D15B47;
736        content: "";
737        height:2px;     width:24px;
738        position: absolute;
739        top:19px; left:4px;
740
741
742        .transition(~"all 0.1s ease");
743        -o-transition: none;
744       
745        .box-sizing(content-box);
746 }
747 .menu-toggler.display:before {
748        height:4px;
749        top: 8px;
750        border-width:2px;
751 }
752 .menu-toggler.display:after {
753        height:4px;
754        top:20px;
755        border-width:2px;
756 }
757
758
759 .menu-toggler > .menu-text {
760        display:block;
761        position:absolute;
762        bottom:-18px; left:0;
763        border:1px solid transparent;
764        border-width:9px 42px;
765        border-top-color:#444;
766 }
767 .menu-toggler > .menu-text:after {
768        display:block;
769        color:#FFF;
770       
771        content: @menu-button-text;
772       
773        position:absolute;
774        left: -8px;//change these to adjust text placement
775        top: -41px;
776 }
777
778 
779 
780 .nav-list > li.active:after {
781        display:none;
782 }
783 .nav-list  li.active > a:after {
784        display:none;
785 }
786
787 .nav-list li.active.open > .submenu > li.active > a:after {
788        display:none;
789 }
790 
791 .menu-min .nav-list > li.active:after {
792        display:block;
793 }
794 .menu-min .nav-list >  li.active > a:after {
795        display:block;
796 }
797}
798
799
800@media only screen and (max-width: @screen-tiny) {
801 .menu-toggler {
802        width:0;
803 }
804 .menu-toggler > .menu-text{
805        border-width:7px 16px;
806        bottom:-14px;
807 }
808 .menu-toggler > .menu-text:after {
809        font-size:9px; font-weight:normal;
810        color:#FFF;
811        position:absolute;
812        left:-13px; top:-42px;
813 }
814
815 .menu-toggler:before ,  .menu-toggler:after {
816        margin-top: 8px;
817 }
818 .menu-toggler.display:before ,  .menu-toggler.display:after {
819        height:2px;
820        border-width:1px;
821 }
822 .menu-toggler.display:before {
823        top:13px;
824 }
825 .menu-toggler.display:after {
826        top:19px;
827 }
828}
829
830
831
832
833
834/* not used yet */
835/**
836@media only screen and (max-width: 979px) {
837 .sidebar.responsive-min {
838   display:block;
839   float:none;
840   position:absolute;
841   border-width:0 1px 1px 0;
842 
843   border-left:none;
844   box-shadow:none;
845   margin-top:0;
846   z-index:14;
847 }
848
849 .sidebar.responsive-min.menu-min {
850        border-bottom:none;
851 }
852 .sidebar.responsive-min.menu-min:before {
853   display:block;
854 }
855
856.sidebar.responsive-min + .main-content {
857        margin-left:43px !important;
858 }
859 .sidebar.responsive-min + .main-content .breadcrumbs.breadcrumbs-fixed { left:43px; }
860 .sidebar.responsive-min + .main-content .breadcrumbs .breadcrumb {margin-left:10px;}
861
862 .menu-toggler.responsive-min {
863        display:none !important;
864 }
865}
866*/
867
868
Note: See TracBrowser for help on using the repository browser.