// Name: Off-canvas // Description: Defines styles for an off-canvas sidebar that slides in and out of the page // // Component: `uk-offcanvas` // // Sub-objects: `uk-offcanvas-page` // `uk-offcanvas-bar` // `uk-offcanvas-close` // // Modifiers: `uk-offcanvas-bar-flip` // // States: `uk-active` // // Uses: Panel: `uk-panel` // // Markup: // // // Open //
//
//
// // ======================================================================== // Variables // ======================================================================== $offcanvas-z-index: 1000 !default; $offcanvas-background: rgba(0,0,0,0.1) !default; $offcanvas-bar-width: 270px !default; $offcanvas-bar-background: #333 !default; $offcanvas-panel-margin: 20px 15px !default; $offcanvas-panel-color: #777 !default; $offcanvas-panel-link-color: #ccc !default; $offcanvas-panel-link-hover-color: #fff !default; $offcanvas-panel-title-color: $offcanvas-panel-link-color !default; /* ======================================================================== Component: Off-canvas ========================================================================== */ /* * This is the offcanvas overlay and bar container * 1. Hide by default * 2. Set fixed position * 3. Deactivate browser touch actions in IE11 * 4. Mask the background page */ .uk-offcanvas { /* 1 */ display: none; /* 2 */ position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: $offcanvas-z-index; /* 3 */ touch-action: none; /* 4 */ background: $offcanvas-background; @include hook-offcanvas(); } .uk-offcanvas.uk-active { display: block; } /* Sub-object `uk-offcanvas-page` ========================================================================== */ /* * Prepares the whole HTML page to slide-out * 1. Fix the main page and disallow scrolling * 2. Side-out transition */ .uk-offcanvas-page { /* 1 */ position: fixed; /* 2 */ -webkit-transition: margin-left 0.3s ease-in-out; transition: margin-left 0.3s ease-in-out; } /* Sub-object `uk-offcanvas-bar` ========================================================================== */ /* * This is the offcanvas bar * 1. Set fixed position * 2. Size and style * 3. Allow scrolling * 4. Side-out transition * 5. Deactivate scroll chaining in IE11 */ .uk-offcanvas-bar { /* 1 */ position: fixed; top: 0; bottom: 0; left: 0; -webkit-transform: translateX(-100%); transform: translateX(-100%); z-index: $offcanvas-z-index + 1; /* 2 */ width: $offcanvas-bar-width; max-width: 100%; background: $offcanvas-bar-background; /* 3 */ overflow-y: auto; -webkit-overflow-scrolling: touch; /* 4 */ -webkit-transition: -webkit-transform 0.3s ease-in-out; transition: transform 0.3s ease-in-out; /* 5 */ -ms-scroll-chaining: none; @include hook-offcanvas-bar(); } .uk-offcanvas.uk-active .uk-offcanvas-bar.uk-offcanvas-bar-show { -webkit-transform: translateX(0%); transform: translateX(0%); } /* Modifier `uk-offcanvas-bar-flip` ========================================================================== */ .uk-offcanvas-bar-flip { left: auto; right: 0; -webkit-transform: translateX(100%); transform: translateX(100%); } /* Panel in offcanvas ========================================================================== */ .uk-offcanvas .uk-panel { margin: $offcanvas-panel-margin; color: $offcanvas-panel-color; @include hook-offcanvas-panel(); } .uk-offcanvas .uk-panel-title { color: $offcanvas-panel-title-color; } .uk-offcanvas .uk-panel a:not([class]) { color: $offcanvas-panel-link-color; } .uk-offcanvas .uk-panel a:not([class]):hover { color: $offcanvas-panel-link-hover-color; } // Hooks // ======================================================================== @include hook-offcanvas-misc(); // @mixin hook-offcanvas(){} // @mixin hook-offcanvas-bar(){} // @mixin hook-offcanvas-panel(){} // @mixin hook-offcanvas-misc(){}