mirror of
https://github.com/tabler/tabler.git
synced 2025-12-21 17:34:25 +04:00
navigation components
This commit is contained in:
@@ -1,11 +1,11 @@
|
|||||||
home:
|
home:
|
||||||
url: index.html
|
url: index.html
|
||||||
title: Dashboard
|
title: Home
|
||||||
icon: home
|
icon: home
|
||||||
|
|
||||||
forms:
|
forms:
|
||||||
url: form-elements.html
|
url: form-elements.html
|
||||||
title: Form elements
|
title: Forms
|
||||||
icon: check-square
|
icon: check-square
|
||||||
|
|
||||||
base:
|
base:
|
||||||
@@ -115,7 +115,7 @@ extra:
|
|||||||
title: Search results
|
title: Search results
|
||||||
url: search-results.html
|
url: search-results.html
|
||||||
docs:
|
docs:
|
||||||
title: Documentation
|
title: Docs
|
||||||
icon: file-text
|
icon: file-text
|
||||||
url: docs/index.html
|
url: docs/index.html
|
||||||
children:
|
children:
|
||||||
|
|||||||
20
pages/_includes/layout/navbar-menu.html
Normal file
20
pages/_includes/layout/navbar-menu.html
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
{% assign current-page = page.menu | default: layout.menu | split: '.' %}
|
||||||
|
|
||||||
|
<ul class="navbar-nav">
|
||||||
|
{% for level-1 in site.data.menu %}
|
||||||
|
{% assign icon = level-1[1].icon %}
|
||||||
|
<li class="nav-item{% if level-1[0] == current-page[0] %} active{% endif %}">
|
||||||
|
<a href="#" class="nav-link">
|
||||||
|
<span class="nav-link-icon">{% include ui/icon.html icon=icon %}</span>
|
||||||
|
<span class="nav-link-title">{{ level-1[1].title }}</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="#" class="nav-link d-none-navbar-vertical">
|
||||||
|
<span class="nav-link-icon">{% include ui/icon.html icon="sliders" %}</span>
|
||||||
|
<span class="nav-link-title">Customize</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
@@ -3,23 +3,15 @@
|
|||||||
<div class="container">
|
<div class="container">
|
||||||
{% include layout/navbar-logo.html class="d-none-navbar-horizontal" %}
|
{% include layout/navbar-logo.html class="d-none-navbar-horizontal" %}
|
||||||
|
|
||||||
<div>
|
<div class="navbar-collapse collapse">
|
||||||
Lorem ipsum
|
<h6 class="navbar-heading">Navigation</h6>
|
||||||
</div>
|
{% include layout/navbar-menu.html %}
|
||||||
|
|
||||||
<div class="d-none-navbar-vertical">
|
<div class="navbar-side d-none-navbar-vertical-narrow">
|
||||||
only horizontal
|
{% include layout/navbar-search.html %}
|
||||||
|
{% include ui/button.html text="Customize" icon="sliders" color="primary" block=true class="d-none-navbar-horizontal" %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="d-none-navbar-vertical-narrow">
|
|
||||||
hide narrow
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="d-none-navbar-horizontal">
|
|
||||||
only sidebar
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="text-muted">Lorem ipsum</div>
|
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
tmp: true
|
tmp: true
|
||||||
page-header: Layout test
|
page-header: Layout test
|
||||||
page-header-actions: buttons
|
page-header-actions: buttons
|
||||||
|
menu: home
|
||||||
---
|
---
|
||||||
|
|
||||||
<div class="row row-cards">
|
<div class="row row-cards">
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ $light-mix: rgba(mix($light, $dark, 64%), .24) !default;
|
|||||||
$light-white: rgba($light, .24) !default;
|
$light-white: rgba($light, .24) !default;
|
||||||
|
|
||||||
$min-black: rgba($dark, .032) !default;
|
$min-black: rgba($dark, .032) !default;
|
||||||
$min-white: rgba($light, .032) !default;
|
$min-white: rgba($light, .064) !default;
|
||||||
|
|
||||||
$gray-100: $light !default;
|
$gray-100: $light !default;
|
||||||
$gray-200: mix($light, $dark, 98%) !default;
|
$gray-200: mix($light, $dark, 98%) !default;
|
||||||
@@ -218,6 +218,7 @@ $sidenav-dark-color: $white !default;
|
|||||||
$sidenav-padding: 1.25rem !default;
|
$sidenav-padding: 1.25rem !default;
|
||||||
$sidenav-breakpoint-show: 'sm' !default;
|
$sidenav-breakpoint-show: 'sm' !default;
|
||||||
$sidenav-breakpoint-folded: 'lg' !default;
|
$sidenav-breakpoint-folded: 'lg' !default;
|
||||||
|
$sidenav-active-accent-color: $primary !default;
|
||||||
|
|
||||||
//alerts
|
//alerts
|
||||||
$alert-link-font-weight: $font-weight-bold !default;
|
$alert-link-font-weight: $font-weight-bold !default;
|
||||||
@@ -349,10 +350,15 @@ $popover-border-color: $border-color !default;
|
|||||||
|
|
||||||
$navbar-padding-y: .75rem !default;
|
$navbar-padding-y: .75rem !default;
|
||||||
$navbar-nav-link-padding-x: .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-active-color: $primary !default;
|
||||||
$navbar-light-hover-color: $body-color !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
|
||||||
$pagination-border-width: 0 !default;
|
$pagination-border-width: 0 !default;
|
||||||
$pagination-padding-y: .25rem !default;
|
$pagination-padding-y: .25rem !default;
|
||||||
@@ -455,3 +461,4 @@ $enable-social-colors: true !default;
|
|||||||
$enable-ghost-buttons: true !default;
|
$enable-ghost-buttons: true !default;
|
||||||
$enable-extra-colors: true !default;
|
$enable-extra-colors: true !default;
|
||||||
$enable-gradients: false !default;
|
$enable-gradients: false !default;
|
||||||
|
$enable-navbar-vertical: true !default;
|
||||||
|
|||||||
@@ -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 {
|
@mixin navbar-vertical {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
left: 0;
|
left: 0;
|
||||||
@@ -7,10 +52,15 @@
|
|||||||
z-index: $zindex-fixed;
|
z-index: $zindex-fixed;
|
||||||
min-height: auto;
|
min-height: auto;
|
||||||
align-items: start;
|
align-items: start;
|
||||||
|
overflow: auto;
|
||||||
|
box-shadow: inset -1px 0 0 0 $border-color;
|
||||||
|
|
||||||
> [class*="container"] {
|
> [class*="container"] {
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: start;
|
align-items: stretch;
|
||||||
|
padding-left: 0;
|
||||||
|
padding-right: 0;
|
||||||
|
min-height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
~ .navbar,
|
~ .navbar,
|
||||||
@@ -32,65 +82,159 @@
|
|||||||
justify-content: center;
|
justify-content: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.navbar-vertical-narrow {
|
.navbar-heading {
|
||||||
width: $sidenav-width-narrow;
|
@include subheader();
|
||||||
|
display: block;
|
||||||
.d-none-navbar-vertical-narrow {
|
margin-bottom: .5rem;
|
||||||
display: none;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.navbar-brand-logo-large {
|
.navbar-collapse {
|
||||||
display: none;
|
flex-direction: column;
|
||||||
|
text-align: left;
|
||||||
|
align-items: normal;
|
||||||
|
|
||||||
|
padding: $sidenav-padding $sidenav-padding;
|
||||||
}
|
}
|
||||||
|
|
||||||
.navbar-brand-logo-small {
|
.navbar-nav {
|
||||||
display: inline-block;
|
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,
|
.nav-item {
|
||||||
~ .content {
|
&.active {
|
||||||
margin-left: $sidenav-width-narrow;
|
background: rgba($sidenav-active-accent-color, .032);
|
||||||
|
|
||||||
|
&:before {
|
||||||
|
left: 0;
|
||||||
|
right: auto;
|
||||||
|
top: 0;
|
||||||
|
bottom: 0;
|
||||||
|
height: auto;
|
||||||
|
width: 2px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-side {
|
||||||
|
margin-left: 0;
|
||||||
|
margin-top: auto;
|
||||||
|
padding-left: 0;
|
||||||
|
padding-top: $sidenav-padding;
|
||||||
|
|
||||||
|
> * {
|
||||||
|
margin-left: 0;
|
||||||
|
margin-top: 1rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&.navbar-right {
|
&.navbar-right {
|
||||||
left: auto;
|
left: auto;
|
||||||
right: 0;
|
right: 0;
|
||||||
|
box-shadow: inset 1px 0 0 0 $border-color;
|
||||||
|
|
||||||
~ .navbar,
|
~ .navbar,
|
||||||
~ .content {
|
~ .content {
|
||||||
margin-left: 0;
|
margin-left: 0;
|
||||||
margin-right: $sidenav-width;
|
margin-right: $sidenav-width;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
&.navbar-vertical-narrow {
|
&.navbar-vertical-narrow {
|
||||||
~ .navbar,
|
@include navbar-vertical-narrow;
|
||||||
~ .content {
|
|
||||||
margin-right: $sidenav-width-narrow;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.page {
|
.page {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
.content {
|
.content {
|
||||||
padding-top: map-get($spacers, 4);
|
padding-top: 1.25rem;
|
||||||
padding-bottom: map-get($spacers, 4);
|
padding-bottom: 1.25rem;
|
||||||
|
|
||||||
@include media-breakpoint-up(xl) {
|
@include media-breakpoint-up(xl) {
|
||||||
padding-left: .5rem;
|
padding-left: .5rem;
|
||||||
padding-right: .5rem;
|
padding-right: .5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@media print {
|
||||||
|
margin: 0 !important;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.navbar {
|
.navbar {
|
||||||
min-height: $navbar-height;
|
min-height: $navbar-height;
|
||||||
padding-top: 0; //todo: move to varaibles
|
padding-top: 0; //todo: move to varaibles
|
||||||
padding-bottom: 0;
|
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 {
|
.navbar-light {
|
||||||
background: $white;
|
background: $white;
|
||||||
box-shadow: 0 0 0 1px $border-color;
|
box-shadow: inset 0 -1px 0 0 $border-color;
|
||||||
|
@include scrollbar;
|
||||||
}
|
}
|
||||||
|
|
||||||
.navbar-dark {
|
.navbar-dark {
|
||||||
background: $sidenav-dark-bg;
|
background: $sidenav-dark-bg;
|
||||||
color: $sidenav-dark-color;
|
color: $sidenav-dark-color;
|
||||||
|
@include scrollbar(true);
|
||||||
|
|
||||||
.text-muted {
|
.text-muted {
|
||||||
color: inherit !important;
|
color: inherit !important;
|
||||||
@@ -128,11 +274,18 @@ Navbar colors
|
|||||||
.navbar-brand-autodark {
|
.navbar-brand-autodark {
|
||||||
filter: brightness(0) invert(1);
|
filter: brightness(0) invert(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.form-control {
|
||||||
|
border-color: transparent;
|
||||||
|
background: $min-white;
|
||||||
|
color: $white;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Navbar vertical
|
Navbar vertical
|
||||||
*/
|
*/
|
||||||
|
@if $enable-navbar-vertical {
|
||||||
.navbar:not(.navbar-vertical) {
|
.navbar:not(.navbar-vertical) {
|
||||||
.d-none-navbar-horizontal {
|
.d-none-navbar-horizontal {
|
||||||
display: none;
|
display: none;
|
||||||
@@ -154,6 +307,7 @@ Navbar vertical
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Navbar secondary
|
Navbar secondary
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ pre {
|
|||||||
overflow: auto;
|
overflow: auto;
|
||||||
font-size: $code-font-size;
|
font-size: $code-font-size;
|
||||||
hyphens: none;
|
hyphens: none;
|
||||||
line-height: 1.5;
|
line-height: $line-height-base;
|
||||||
tab-size: 3;
|
tab-size: 3;
|
||||||
border-radius: $border-radius;
|
border-radius: $border-radius;
|
||||||
white-space: pre-wrap;
|
white-space: pre-wrap;
|
||||||
|
|||||||
Reference in New Issue
Block a user