diff --git a/pages/_data/menu.yml b/pages/_data/menu.yml index 968034be48b5aa92358584f7b2c8ec04cff56ec5..e965e04a98918976266dabb71b1093fd46efee62 100644 --- a/pages/_data/menu.yml +++ b/pages/_data/menu.yml @@ -1,11 +1,11 @@ home: url: index.html - title: Dashboard + title: Home icon: home forms: url: form-elements.html - title: Form elements + title: Forms icon: check-square base: @@ -115,7 +115,7 @@ extra: title: Search results url: search-results.html docs: - title: Documentation + title: Docs icon: file-text url: docs/index.html children: diff --git a/pages/_includes/layout/navbar-menu.html b/pages/_includes/layout/navbar-menu.html new file mode 100644 index 0000000000000000000000000000000000000000..9bf276fa3f8c19e60f02b953d972a0726de569d0 --- /dev/null +++ b/pages/_includes/layout/navbar-menu.html @@ -0,0 +1,20 @@ +{% assign current-page = page.menu | default: layout.menu | split: '.' %} + + \ No newline at end of file diff --git a/pages/_includes/layout/navbar-primary.html b/pages/_includes/layout/navbar-primary.html index 07656c66146b9b9070d1125b4087f43c3dcee33d..9080ef41541e12bbdee65547bf0fbed9e339dac1 100644 --- a/pages/_includes/layout/navbar-primary.html +++ b/pages/_includes/layout/navbar-primary.html @@ -3,23 +3,15 @@
{% include layout/navbar-logo.html class="d-none-navbar-horizontal" %} -
- Lorem ipsum -
- -
- only horizontal -
+ diff --git a/pages/tmp-layout.html b/pages/tmp-layout.html index 7768ce22394501c622f735ac6c6b0847a2f0a16a..ad62e5398ea36d12affe15faa97bc7cc6e9955f3 100644 --- a/pages/tmp-layout.html +++ b/pages/tmp-layout.html @@ -2,6 +2,7 @@ tmp: true page-header: Layout test page-header-actions: buttons +menu: home ---
diff --git a/scss/_variables.scss b/scss/_variables.scss index 3724b71e783864d8064214df55d56644e984c45e..b4c4d8c84fd3561fa8d6fc41d442c2a2b44879f9 100644 --- a/scss/_variables.scss +++ b/scss/_variables.scss @@ -22,7 +22,7 @@ $light-mix: rgba(mix($light, $dark, 64%), .24) !default; $light-white: rgba($light, .24) !default; $min-black: rgba($dark, .032) !default; -$min-white: rgba($light, .032) !default; +$min-white: rgba($light, .064) !default; $gray-100: $light !default; $gray-200: mix($light, $dark, 98%) !default; @@ -218,6 +218,7 @@ $sidenav-dark-color: $white !default; $sidenav-padding: 1.25rem !default; $sidenav-breakpoint-show: 'sm' !default; $sidenav-breakpoint-folded: 'lg' !default; +$sidenav-active-accent-color: $primary !default; //alerts $alert-link-font-weight: $font-weight-bold !default; @@ -349,10 +350,15 @@ $popover-border-color: $border-color !default; $navbar-padding-y: .75rem !default; $navbar-nav-link-padding-x: .75rem !default; -$navbar-light-color: $text-muted !default; + +$navbar-light-color: rgba($body-color, .64) !default; $navbar-light-active-color: $primary !default; $navbar-light-hover-color: $body-color !default; +$navbar-dark-color: rgba($white, .64) !default; +$navbar-dark-active-color: $white !default; +$navbar-dark-hover-color: $white !default; + //pagination $pagination-border-width: 0 !default; $pagination-padding-y: .25rem !default; @@ -455,3 +461,4 @@ $enable-social-colors: true !default; $enable-ghost-buttons: true !default; $enable-extra-colors: true !default; $enable-gradients: false !default; +$enable-navbar-vertical: true !default; diff --git a/scss/layout/_mainnav.scss b/scss/layout/_mainnav.scss index 8f9aa9afaa78aae0e7bbc75bff89d52ebe1abc14..75398a0ec47574a41ba688c02ab39df901248099 100644 --- a/scss/layout/_mainnav.scss +++ b/scss/layout/_mainnav.scss @@ -1,3 +1,48 @@ +@mixin navbar-vertical-narrow { + width: $sidenav-width-narrow; + + .navbar-nav { + margin-top: 0; + } + + .nav-link { + height: 3rem; //todo: to variable + } + + .nav-link-title { + display: none; + } + + .nav-link-icon { + margin: 0 auto; + } + + .d-none-navbar-vertical-narrow { + display: none; + } + + .navbar-brand-logo-large { + display: none; + } + + .navbar-brand-logo-small { + display: inline-block; + } + + ~ .navbar, + ~ .content { + margin-left: $sidenav-width-narrow; + } + + &.navbar-right { + ~ .navbar, + ~ .content { + margin-left: 0; + margin-right: $sidenav-width-narrow; + } + } +} + @mixin navbar-vertical { position: fixed; left: 0; @@ -7,10 +52,15 @@ z-index: $zindex-fixed; min-height: auto; align-items: start; + overflow: auto; + box-shadow: inset -1px 0 0 0 $border-color; > [class*="container"] { flex-direction: column; - align-items: start; + align-items: stretch; + padding-left: 0; + padding-right: 0; + min-height: 100%; } ~ .navbar, @@ -32,65 +82,159 @@ justify-content: center; } - &.navbar-vertical-narrow { - width: $sidenav-width-narrow; + .navbar-heading { + @include subheader(); + display: block; + margin-bottom: .5rem; + } - .d-none-navbar-vertical-narrow { - display: none; - } + .navbar-collapse { + flex-direction: column; + text-align: left; + align-items: normal; - .navbar-brand-logo-large { - display: none; + padding: $sidenav-padding $sidenav-padding; + } + + .navbar-nav { + flex-direction: column; + margin-left: -($sidenav-padding); + margin-right: -($sidenav-padding); + + .nav-link { + min-height: 0; + padding-left: $sidenav-padding; + padding-right: $sidenav-padding; } - .navbar-brand-logo-small { - display: inline-block; + .nav-item { + &.active { + background: rgba($sidenav-active-accent-color, .032); + + &:before { + left: 0; + right: auto; + top: 0; + bottom: 0; + height: auto; + width: 2px; + } + } } + } - ~ .navbar, - ~ .content { - margin-left: $sidenav-width-narrow; + .navbar-side { + margin-left: 0; + margin-top: auto; + padding-left: 0; + padding-top: $sidenav-padding; + + > * { + margin-left: 0; + margin-top: 1rem; } } &.navbar-right { left: auto; right: 0; + box-shadow: inset 1px 0 0 0 $border-color; ~ .navbar, ~ .content { margin-left: 0; margin-right: $sidenav-width; } + } - &.navbar-vertical-narrow { - ~ .navbar, - ~ .content { - margin-right: $sidenav-width-narrow; - } - } + &.navbar-vertical-narrow { + @include navbar-vertical-narrow; } } .page { display: flex; flex-direction: column; + position: relative; } .content { - padding-top: map-get($spacers, 4); - padding-bottom: map-get($spacers, 4); + padding-top: 1.25rem; + padding-bottom: 1.25rem; @include media-breakpoint-up(xl) { padding-left: .5rem; padding-right: .5rem; } + + @media print { + margin: 0 !important; + } } .navbar { min-height: $navbar-height; padding-top: 0; //todo: move to varaibles padding-bottom: 0; + + @media print { + display: none; + margin: 0 !important; + } + + .nav-link { + min-height: $navbar-height; + } + + .nav-link-icon { + font-size: 1rem; + width: 1rem; + height: 1rem; + display: block; + margin-right: .5rem; + line-height: .99; + } +} + +.navbar-expand { + @each $breakpoint, $breakpoint-max-width in $grid-breakpoints { + &-#{$breakpoint} { + @include media-breakpoint-up($breakpoint) { + .navbar-nav { + margin-left: (-$navbar-nav-link-padding-x); + + .nav-item { + position: relative; + + &.active { + &:before { + content: ''; + position: absolute; + bottom: 0; + left: $navbar-nav-link-padding-x; + right: $navbar-nav-link-padding-x; + height: 1px; + background: $sidenav-active-accent-color; + } + } + } + } + } + } + } +} + +.navbar-side { + margin-left: auto; + padding-left: 1.5rem; + + > * { + margin-left: 1rem; + } +} + +.navbar-heading { + display: none; } /** @@ -113,12 +257,14 @@ Navbar colors */ .navbar-light { background: $white; - box-shadow: 0 0 0 1px $border-color; + box-shadow: inset 0 -1px 0 0 $border-color; + @include scrollbar; } .navbar-dark { background: $sidenav-dark-bg; color: $sidenav-dark-color; + @include scrollbar(true); .text-muted { color: inherit !important; @@ -128,27 +274,35 @@ Navbar colors .navbar-brand-autodark { filter: brightness(0) invert(1); } + + .form-control { + border-color: transparent; + background: $min-white; + color: $white; + } } /** Navbar vertical */ -.navbar:not(.navbar-vertical) { - .d-none-navbar-horizontal { - display: none; +@if $enable-navbar-vertical { + .navbar:not(.navbar-vertical) { + .d-none-navbar-horizontal { + display: none; + } } -} -.navbar-vertical { - @each $breakpoint, $breakpoint-max-width in $grid-breakpoints { - &.navbar-expand-#{$breakpoint} { - @include media-breakpoint-up($breakpoint) { - @include navbar-vertical; - } + .navbar-vertical { + @each $breakpoint, $breakpoint-max-width in $grid-breakpoints { + &.navbar-expand-#{$breakpoint} { + @include media-breakpoint-up($breakpoint) { + @include navbar-vertical; + } - @include media-breakpoint-down-than($breakpoint) { - .d-none-navbar-horizontal { - display: none; + @include media-breakpoint-down-than($breakpoint) { + .d-none-navbar-horizontal { + display: none; + } } } } diff --git a/scss/ui/_type.scss b/scss/ui/_type.scss index cab3a2f63e5262f5356f25f397343c80440dce88..a0c4ea213b429027f2a3b8ef29960702b85c9170 100644 --- a/scss/ui/_type.scss +++ b/scss/ui/_type.scss @@ -76,7 +76,7 @@ pre { overflow: auto; font-size: $code-font-size; hyphens: none; - line-height: 1.5; + line-height: $line-height-base; tab-size: 3; border-radius: $border-radius; white-space: pre-wrap;