mirror of https://github.com/ColorlibHQ/AdminLTE
619 lines
12 KiB
SCSS
619 lines
12 KiB
SCSS
//
|
||
// Core: Layout
|
||
//
|
||
|
||
html {
|
||
scroll-behavior: smooth;
|
||
}
|
||
|
||
html,
|
||
body,
|
||
.wrapper {
|
||
min-height: 100%;
|
||
}
|
||
|
||
.wrapper {
|
||
position: relative;
|
||
|
||
& .content-wrapper {
|
||
min-height: calc(100vh - #{$main-header-height} - #{$main-footer-height});
|
||
}
|
||
|
||
.layout-boxed & {
|
||
@include box-shadow(0 0 10 rgba($black, .3));
|
||
|
||
&,
|
||
&::before {
|
||
margin: 0 auto;
|
||
max-width: $boxed-layout-max-width;
|
||
}
|
||
|
||
& .main-sidebar {
|
||
left: inherit;
|
||
}
|
||
}
|
||
|
||
.layout-navbar-fixed.layout-fixed & {
|
||
.control-sidebar {
|
||
top: $main-header-height;
|
||
}
|
||
|
||
.main-header.text-sm ~ .control-sidebar {
|
||
top: $main-header-height-sm;
|
||
}
|
||
|
||
.sidebar {
|
||
margin-top: $main-header-height;
|
||
}
|
||
|
||
.brand-link.text-sm ~ .sidebar {
|
||
margin-top: $main-header-height-sm;
|
||
}
|
||
}
|
||
|
||
.layout-navbar-fixed.layout-fixed.text-sm & {
|
||
.control-sidebar {
|
||
top: $main-header-height-sm;
|
||
}
|
||
|
||
.sidebar {
|
||
margin-top: $main-header-height-sm;
|
||
}
|
||
}
|
||
|
||
.layout-navbar-fixed.sidebar-collapse & {
|
||
.brand-link {
|
||
height: $main-header-height;
|
||
width: $sidebar-mini-width;
|
||
|
||
&.text-sm {
|
||
height: $main-header-height-sm;
|
||
}
|
||
}
|
||
}
|
||
|
||
.layout-navbar-fixed.sidebar-collapse.text-sm & {
|
||
.brand-link {
|
||
height: $main-header-height-sm;
|
||
}
|
||
}
|
||
|
||
body:not(.layout-fixed).layout-navbar-fixed & {
|
||
.main-sidebar {
|
||
margin-top: calc(#{$main-header-height} / -1);
|
||
|
||
.sidebar {
|
||
margin-top: $main-header-height;
|
||
}
|
||
}
|
||
}
|
||
|
||
body:not(.layout-fixed).layout-navbar-fixed.text-sm & {
|
||
.main-sidebar {
|
||
margin-top: calc(#{$main-header-height-sm} / -1);
|
||
|
||
.sidebar {
|
||
margin-top: $main-header-height-sm;
|
||
}
|
||
}
|
||
}
|
||
|
||
.layout-navbar-fixed & {
|
||
.control-sidebar {
|
||
top: 0;
|
||
}
|
||
|
||
a.anchor {
|
||
display: block;
|
||
position: relative;
|
||
top: calc((#{$main-header-height-inner} + #{$main-header-bottom-border-width} + (#{$main-header-link-padding-y} * 2)) / -1);
|
||
}
|
||
|
||
.main-sidebar:hover {
|
||
.brand-link {
|
||
transition: width $transition-speed $transition-fn;
|
||
width: $sidebar-width;
|
||
}
|
||
}
|
||
|
||
.brand-link {
|
||
overflow: hidden;
|
||
position: fixed;
|
||
top: 0;
|
||
transition: width $transition-speed $transition-fn;
|
||
width: $sidebar-width;
|
||
z-index: $zindex-main-header + 1;
|
||
}
|
||
|
||
// Sidebar variants brand-link fix
|
||
@each $name, $color in $theme-colors {
|
||
.sidebar-dark-#{$name} .brand-link:not([class*="navbar"]) {
|
||
background-color: $sidebar-dark-bg;
|
||
}
|
||
|
||
.sidebar-light-#{$name} .brand-link:not([class*="navbar"]) {
|
||
background-color: $sidebar-light-bg;
|
||
}
|
||
}
|
||
|
||
.content-wrapper {
|
||
margin-top: $main-header-height;
|
||
}
|
||
|
||
.main-header.text-sm ~ .content-wrapper {
|
||
margin-top: $main-header-height-sm;
|
||
}
|
||
|
||
.main-header {
|
||
left: 0;
|
||
position: fixed;
|
||
right: 0;
|
||
top: 0;
|
||
z-index: $zindex-main-header - 1;
|
||
}
|
||
}
|
||
|
||
.layout-navbar-fixed.text-sm & {
|
||
.content-wrapper {
|
||
margin-top: $main-header-height-sm;
|
||
}
|
||
}
|
||
|
||
.layout-navbar-not-fixed & {
|
||
.brand-link {
|
||
position: static;
|
||
}
|
||
|
||
.sidebar,
|
||
.content-wrapper {
|
||
margin-top: 0;
|
||
}
|
||
|
||
.main-header {
|
||
position: static;
|
||
}
|
||
}
|
||
|
||
.layout-navbar-not-fixed.layout-fixed & {
|
||
.sidebar {
|
||
margin-top: 0;
|
||
}
|
||
}
|
||
|
||
@each $breakpoint in map-keys($grid-breakpoints) {
|
||
@include media-breakpoint-up($breakpoint) {
|
||
$infix: breakpoint-infix($breakpoint, $grid-breakpoints);
|
||
|
||
.layout#{$infix}-navbar-fixed.layout-fixed & {
|
||
.control-sidebar {
|
||
top: $main-header-height;
|
||
}
|
||
|
||
.text-sm & .main-header ~ .control-sidebar,
|
||
.main-header.text-sm ~ .control-sidebar {
|
||
top: $main-header-height-sm;
|
||
}
|
||
|
||
.sidebar {
|
||
margin-top: $main-header-height;
|
||
}
|
||
|
||
.text-sm & .brand-link ~ .sidebar,
|
||
.brand-link.text-sm ~ .sidebar {
|
||
margin-top: $main-header-height-sm;
|
||
}
|
||
}
|
||
|
||
.layout#{$infix}-navbar-fixed.layout-fixed.text-sm & {
|
||
.control-sidebar {
|
||
top: $main-header-height-sm;
|
||
}
|
||
|
||
.sidebar {
|
||
margin-top: $main-header-height-sm;
|
||
}
|
||
}
|
||
|
||
.layout#{$infix}-navbar-fixed & {
|
||
.control-sidebar {
|
||
top: 0;
|
||
}
|
||
|
||
a.anchor {
|
||
display: block;
|
||
position: relative;
|
||
top: calc((#{$main-header-height-inner} + #{$main-header-bottom-border-width} + (#{$main-header-link-padding-y} * 2)) / -1);
|
||
}
|
||
|
||
&.sidebar-collapse {
|
||
.brand-link {
|
||
height: $main-header-height;
|
||
transition: width $transition-speed $transition-fn;
|
||
width: $sidebar-mini-width;
|
||
|
||
.text-sm &,
|
||
&.text-sm {
|
||
height: $main-header-height-sm;
|
||
}
|
||
}
|
||
|
||
.main-sidebar:hover {
|
||
.brand-link {
|
||
transition: width $transition-speed $transition-fn;
|
||
width: $sidebar-width;
|
||
}
|
||
}
|
||
}
|
||
|
||
.brand-link {
|
||
overflow: hidden;
|
||
position: fixed;
|
||
top: 0;
|
||
transition: width $transition-speed $transition-fn;
|
||
width: $sidebar-width;
|
||
z-index: $zindex-main-header + 1;
|
||
}
|
||
|
||
// Sidebar variants brand-link fix
|
||
@each $name, $color in $theme-colors {
|
||
.sidebar-dark-#{$name} .brand-link:not([class*="navbar"]) {
|
||
background-color: $sidebar-dark-bg;
|
||
}
|
||
|
||
.sidebar-light-#{$name} .brand-link:not([class*="navbar"]) {
|
||
background-color: $sidebar-light-bg;
|
||
}
|
||
}
|
||
|
||
.content-wrapper {
|
||
margin-top: $main-header-height;
|
||
}
|
||
|
||
.text-sm & .main-header ~ .content-wrapper,
|
||
.main-header.text-sm ~ .content-wrapper {
|
||
margin-top: $main-header-height-sm;
|
||
}
|
||
|
||
.main-header {
|
||
left: 0;
|
||
position: fixed;
|
||
right: 0;
|
||
top: 0;
|
||
z-index: $zindex-main-sidebar - 1;
|
||
}
|
||
}
|
||
|
||
.layout#{$infix}-navbar-fixed.text-sm & {
|
||
.content-wrapper {
|
||
margin-top: $main-header-height-sm;
|
||
}
|
||
}
|
||
|
||
body:not(.layout-fixed).layout#{$infix}-navbar-fixed & {
|
||
.main-sidebar {
|
||
margin-top: calc(#{$main-header-height} / -1);
|
||
|
||
.sidebar {
|
||
margin-top: $main-header-height;
|
||
}
|
||
}
|
||
}
|
||
|
||
body:not(.layout-fixed).layout#{$infix}-navbar-fixed.text-sm & {
|
||
.main-sidebar {
|
||
margin-top: calc(#{$main-header-height-sm} / -1);
|
||
|
||
.sidebar {
|
||
margin-top: $main-header-height-sm;
|
||
}
|
||
}
|
||
}
|
||
|
||
.layout#{$infix}-navbar-not-fixed & {
|
||
.brand-link {
|
||
position: static;
|
||
}
|
||
|
||
.sidebar,
|
||
.content-wrapper {
|
||
margin-top: 0;
|
||
}
|
||
|
||
.main-header {
|
||
position: static;
|
||
}
|
||
}
|
||
|
||
.layout#{$infix}-navbar-not-fixed.layout-fixed & {
|
||
.sidebar {
|
||
margin-top: 0;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.layout-footer-fixed & {
|
||
.control-sidebar {
|
||
bottom: 0;
|
||
}
|
||
}
|
||
|
||
.layout-footer-fixed & {
|
||
.main-footer {
|
||
bottom: 0;
|
||
left: 0;
|
||
position: fixed;
|
||
right: 0;
|
||
z-index: $zindex-main-footer;
|
||
}
|
||
}
|
||
|
||
.layout-footer-not-fixed & {
|
||
.main-footer {
|
||
position: static;
|
||
}
|
||
|
||
.content-wrapper {
|
||
margin-bottom: 0;
|
||
}
|
||
}
|
||
|
||
@each $breakpoint in map-keys($grid-breakpoints) {
|
||
@include media-breakpoint-up($breakpoint) {
|
||
$infix: breakpoint-infix($breakpoint, $grid-breakpoints);
|
||
.layout#{$infix}-footer-fixed & {
|
||
.control-sidebar {
|
||
bottom: 0;
|
||
}
|
||
}
|
||
|
||
.layout#{$infix}-footer-fixed & {
|
||
.main-footer {
|
||
bottom: 0;
|
||
left: 0;
|
||
position: fixed;
|
||
right: 0;
|
||
z-index: $zindex-main-footer;
|
||
}
|
||
|
||
.content-wrapper {
|
||
margin-bottom: $main-footer-height;
|
||
}
|
||
}
|
||
|
||
.layout#{$infix}-footer-not-fixed & {
|
||
.main-footer {
|
||
position: static;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.layout-top-nav & {
|
||
margin-left: 0;
|
||
|
||
& .text-sm {
|
||
.brand-image {
|
||
margin-top: -.5rem;
|
||
}
|
||
}
|
||
|
||
& .main-sidebar {
|
||
bottom: inherit;
|
||
height: inherit;
|
||
}
|
||
|
||
.brand-image {
|
||
height: 33px;
|
||
}
|
||
|
||
& .main-sidebar {
|
||
display: none;
|
||
}
|
||
|
||
& .content-wrapper,
|
||
& .main-header,
|
||
& .main-footer {
|
||
margin-left: 0;
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
body.sidebar-collapse:not(.sidebar-mini-md):not(.sidebar-mini) {
|
||
.content-wrapper,
|
||
.main-footer,
|
||
.main-header {
|
||
&,
|
||
&::before {
|
||
margin-left: 0;
|
||
}
|
||
}
|
||
}
|
||
|
||
body:not(.sidebar-mini-md) {
|
||
.content-wrapper,
|
||
.main-footer,
|
||
.main-header {
|
||
@include media-breakpoint-up(md) {
|
||
@include transition(margin-left $transition-speed $transition-fn);
|
||
|
||
margin-left: $sidebar-width;
|
||
|
||
.sidebar-collapse & {
|
||
margin-left: 0;
|
||
}
|
||
}
|
||
|
||
@include media-breakpoint-down(md) {
|
||
&,
|
||
&::before {
|
||
margin-left: 0;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.sidebar-mini-md {
|
||
.content-wrapper,
|
||
.main-footer,
|
||
.main-header {
|
||
@include media-breakpoint-up(md) {
|
||
@include transition(margin-left $transition-speed $transition-fn);
|
||
|
||
margin-left: $sidebar-width;
|
||
|
||
.sidebar-collapse & {
|
||
margin-left: $sidebar-mini-width;
|
||
}
|
||
}
|
||
|
||
@include media-breakpoint-down(md) {
|
||
&,
|
||
&::before {
|
||
margin-left: $sidebar-mini-width;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.content-wrapper {
|
||
background: $main-bg;
|
||
|
||
> .content {
|
||
padding: $content-padding-y $content-padding-x;
|
||
}
|
||
}
|
||
|
||
.main-sidebar {
|
||
&,
|
||
&::before {
|
||
$local-sidebar-transition: margin-left $transition-speed $transition-fn, width $transition-speed $transition-fn;
|
||
@include transition($local-sidebar-transition);
|
||
width: $sidebar-width;
|
||
}
|
||
|
||
.sidebar-collapse:not(.sidebar-mini):not(.sidebar-mini-md) & {
|
||
&,
|
||
&::before {
|
||
box-shadow: none !important;
|
||
}
|
||
}
|
||
|
||
.sidebar-collapse & {
|
||
&,
|
||
&::before {
|
||
margin-left: -$sidebar-width;
|
||
}
|
||
|
||
.nav-sidebar.nav-child-indent .nav-treeview {
|
||
padding: 0;
|
||
}
|
||
}
|
||
|
||
@include media-breakpoint-down(sm) {
|
||
&,
|
||
&::before {
|
||
box-shadow: none !important;
|
||
margin-left: -$sidebar-width;
|
||
}
|
||
|
||
.sidebar-open & {
|
||
&,
|
||
&::before {
|
||
margin-left: 0;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
:not(.layout-fixed) {
|
||
.main-sidebar {
|
||
height: inherit;
|
||
min-height: 100%;
|
||
position: absolute;
|
||
top: 0;
|
||
}
|
||
}
|
||
|
||
.layout-fixed {
|
||
.brand-link {
|
||
width: $sidebar-width;
|
||
}
|
||
|
||
.main-sidebar {
|
||
bottom: 0;
|
||
float: none;
|
||
height: 100vh;
|
||
left: 0;
|
||
position: fixed;
|
||
top: 0;
|
||
}
|
||
|
||
.control-sidebar {
|
||
bottom: 0;
|
||
float: none;
|
||
height: 100vh;
|
||
position: fixed;
|
||
top: 0;
|
||
|
||
.control-sidebar-content {
|
||
height: calc(100vh - #{$main-header-height});
|
||
}
|
||
}
|
||
}
|
||
|
||
.main-footer {
|
||
background: $main-footer-bg;
|
||
border-top: $main-footer-border-top;
|
||
color: lighten($gray-700, 25%);
|
||
padding: $main-footer-padding;
|
||
|
||
.text-sm &,
|
||
&.text-sm {
|
||
padding: $main-footer-padding-sm;
|
||
}
|
||
}
|
||
|
||
.content-header {
|
||
padding: 15px $content-padding-x;
|
||
|
||
.text-sm & {
|
||
padding: 10px $content-padding-x;
|
||
}
|
||
|
||
h1 {
|
||
font-size: 1.8rem;
|
||
margin: 0;
|
||
|
||
.text-sm & {
|
||
font-size: 1.5rem;
|
||
}
|
||
}
|
||
|
||
.breadcrumb {
|
||
background: transparent;
|
||
line-height: 1.8rem;
|
||
margin-bottom: 0;
|
||
padding: 0;
|
||
|
||
.text-sm & {
|
||
line-height: 1.5rem;
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
|
||
.hold-transition {
|
||
.content-wrapper,
|
||
.main-header,
|
||
.main-sidebar,
|
||
.main-sidebar *,
|
||
.control-sidebar,
|
||
.control-sidebar *,
|
||
.main-footer {
|
||
transition: none !important;
|
||
}
|
||
}
|