Files
bulma/sass/components/navbar.sass

447 lines
12 KiB
Sass
Raw Normal View History

2020-10-31 23:52:27 +00:00
@import "../utilities/mixins"
2019-10-13 15:12:30 +01:00
$navbar-background-color: $scheme-main !default
2018-04-11 01:38:07 +01:00
$navbar-box-shadow-size: 0 2px 0 0 !default
$navbar-box-shadow-color: $background !default
2017-06-30 23:47:22 +01:00
$navbar-height: 3.25rem !default
2018-04-11 12:12:55 +01:00
$navbar-padding-vertical: 1rem !default
$navbar-padding-horizontal: 2rem !default
2018-04-09 10:35:44 +01:00
$navbar-z: 30 !default
2017-10-24 10:31:45 +01:00
$navbar-fixed-z: 30 !default
2017-06-30 23:47:22 +01:00
2019-10-13 15:12:30 +01:00
$navbar-item-color: $text !default
2017-10-26 17:54:26 +01:00
$navbar-item-hover-color: $link !default
2019-10-13 15:12:30 +01:00
$navbar-item-hover-background-color: $scheme-main-bis !default
$navbar-item-active-color: $scheme-invert !default
2017-07-28 21:05:15 +01:00
$navbar-item-active-background-color: transparent !default
2017-08-07 19:55:21 +01:00
$navbar-item-img-max-height: 1.75rem !default
2017-07-28 21:05:15 +01:00
2018-05-30 10:28:41 +02:00
$navbar-burger-color: $navbar-item-color !default
2017-07-28 21:05:15 +01:00
$navbar-tab-hover-background-color: transparent !default
2017-10-07 17:31:05 +01:00
$navbar-tab-hover-border-bottom-color: $link !default
$navbar-tab-active-color: $link !default
2017-07-28 21:05:15 +01:00
$navbar-tab-active-background-color: transparent !default
2017-10-07 17:31:05 +01:00
$navbar-tab-active-border-bottom-color: $link !default
2017-07-28 21:05:15 +01:00
$navbar-tab-active-border-bottom-style: solid !default
$navbar-tab-active-border-bottom-width: 3px !default
2019-10-13 15:12:30 +01:00
$navbar-dropdown-background-color: $scheme-main !default
2018-04-11 01:38:07 +01:00
$navbar-dropdown-border-top: 2px solid $border !default
2017-06-30 23:47:22 +01:00
$navbar-dropdown-offset: -4px !default
$navbar-dropdown-arrow: $link !default
$navbar-dropdown-radius: $radius-large !default
2017-07-02 16:52:20 +01:00
$navbar-dropdown-z: 20 !default
2017-06-30 22:34:13 +01:00
2017-07-28 21:05:15 +01:00
$navbar-dropdown-boxed-radius: $radius-large !default
2020-03-16 13:29:44 +11:00
$navbar-dropdown-boxed-shadow: 0 8px 8px bulmaRgba($scheme-invert, 0.1), 0 0 0 1px bulmaRgba($scheme-invert, 0.1) !default
2017-07-28 21:05:15 +01:00
2019-10-13 15:12:30 +01:00
$navbar-dropdown-item-hover-color: $scheme-invert !default
2017-07-28 21:05:15 +01:00
$navbar-dropdown-item-hover-background-color: $background !default
2017-10-07 17:31:05 +01:00
$navbar-dropdown-item-active-color: $link !default
2017-07-28 21:05:15 +01:00
$navbar-dropdown-item-active-background-color: $background !default
2017-06-30 23:47:22 +01:00
2018-04-10 22:38:00 +01:00
$navbar-divider-background-color: $background !default
$navbar-divider-height: 2px !default
2017-06-30 22:34:13 +01:00
2018-04-18 17:03:53 +01:00
$navbar-bottom-box-shadow-size: 0 -2px 0 0 !default
$navbar-breakpoint: $desktop !default
$navbar-colors: $colors !default
2017-10-24 10:31:45 +01:00
=navbar-fixed
left: 0
position: fixed
right: 0
z-index: $navbar-fixed-z
2017-06-30 22:34:13 +01:00
.navbar
2017-07-28 21:05:15 +01:00
background-color: $navbar-background-color
2017-06-30 22:34:13 +01:00
min-height: $navbar-height
position: relative
2018-04-09 10:35:44 +01:00
z-index: $navbar-z
@each $name, $pair in $navbar-colors
$color: nth($pair, 1)
$color-invert: nth($pair, 2)
&.is-#{$name}
background-color: $color
color: $color-invert
2017-09-10 17:16:12 +01:00
.navbar-brand
& > .navbar-item,
.navbar-link
color: $color-invert
& > a.navbar-item,
.navbar-link
&:focus,
2017-09-10 17:16:12 +01:00
&:hover,
&.is-active
2020-03-16 13:29:44 +11:00
background-color: bulmaDarken($color, 5%)
2017-09-10 17:16:12 +01:00
color: $color-invert
.navbar-link
&::after
border-color: $color-invert
.navbar-burger
color: $color-invert
+from($navbar-breakpoint)
2017-09-09 23:56:54 +02:00
.navbar-start,
.navbar-end
& > .navbar-item,
2017-09-10 17:04:54 +01:00
.navbar-link
2017-09-09 23:56:54 +02:00
color: $color-invert
& > a.navbar-item,
2017-09-10 17:04:54 +01:00
.navbar-link
&:focus,
2017-09-09 23:56:54 +02:00
&:hover,
&.is-active
2020-03-16 13:29:44 +11:00
background-color: bulmaDarken($color, 5%)
2017-09-09 23:56:54 +02:00
color: $color-invert
.navbar-link
&::after
border-color: $color-invert
.navbar-item.has-dropdown:focus .navbar-link,
.navbar-item.has-dropdown:hover .navbar-link,
.navbar-item.has-dropdown.is-active .navbar-link
2020-03-16 13:29:44 +11:00
background-color: bulmaDarken($color, 5%)
color: $color-invert
2017-09-09 23:56:54 +02:00
.navbar-dropdown
a.navbar-item
&.is-active
2017-09-10 17:16:12 +01:00
background-color: $color
color: $color-invert
2017-07-16 19:44:28 +01:00
& > .container
align-items: stretch
display: flex
min-height: $navbar-height
width: 100%
&.has-shadow
2018-04-18 17:03:53 +01:00
box-shadow: $navbar-box-shadow-size $navbar-box-shadow-color
2017-10-24 10:31:45 +01:00
&.is-fixed-bottom,
&.is-fixed-top
+navbar-fixed
&.is-fixed-bottom
bottom: 0
2017-10-24 12:23:31 +01:00
&.has-shadow
2018-04-18 17:03:53 +01:00
box-shadow: $navbar-bottom-box-shadow-size $navbar-box-shadow-color
2017-10-24 10:31:45 +01:00
&.is-fixed-top
top: 0
2018-04-09 01:12:55 +01:00
html,
body
&.has-navbar-fixed-top
padding-top: $navbar-height
&.has-navbar-fixed-bottom
padding-bottom: $navbar-height
2017-06-30 22:34:13 +01:00
2017-09-05 15:09:31 +02:00
.navbar-brand,
.navbar-tabs
2017-06-30 22:34:13 +01:00
align-items: stretch
display: flex
2017-07-30 18:22:13 +01:00
flex-shrink: 0
2017-07-16 19:44:28 +01:00
min-height: $navbar-height
2017-09-05 15:09:31 +02:00
2018-04-10 22:38:00 +01:00
.navbar-brand
a.navbar-item
&:focus,
2018-04-10 22:38:00 +01:00
&:hover
background-color: transparent
2017-09-05 15:09:31 +02:00
.navbar-tabs
+overflow-touch
max-width: 100vw
2017-07-16 19:44:28 +01:00
overflow-x: auto
overflow-y: hidden
2017-06-30 22:34:13 +01:00
.navbar-burger
2021-01-28 12:37:18 +00:00
@extend %reset
2018-05-30 10:28:41 +02:00
color: $navbar-burger-color
2018-06-07 13:27:55 +01:00
+hamburger($navbar-height)
2020-05-17 19:04:42 +01:00
+ltr-property("margin", auto, false)
2017-06-30 22:34:13 +01:00
2017-06-30 23:47:22 +01:00
.navbar-menu
display: none
2017-06-30 22:34:13 +01:00
.navbar-item,
.navbar-link
2017-07-28 21:05:15 +01:00
color: $navbar-item-color
2017-06-30 23:16:22 +01:00
display: block
2017-06-30 22:34:13 +01:00
line-height: 1.5
2018-04-09 01:12:55 +01:00
padding: 0.5rem 0.75rem
2017-06-30 22:34:13 +01:00
position: relative
2018-04-11 09:43:27 +01:00
.icon
&:only-child
margin-left: -0.25rem
margin-right: -0.25rem
2017-06-30 22:34:13 +01:00
2017-07-02 23:39:08 +01:00
a.navbar-item,
2018-04-09 01:12:55 +01:00
.navbar-link
cursor: pointer
&:focus,
&:focus-within,
2017-07-02 23:39:08 +01:00
&:hover,
&.is-active
2017-07-28 21:05:15 +01:00
background-color: $navbar-item-hover-background-color
color: $navbar-item-hover-color
2017-06-30 22:34:13 +01:00
.navbar-item
flex-grow: 0
flex-shrink: 0
img
2017-08-07 19:55:21 +01:00
max-height: $navbar-item-img-max-height
2017-06-30 22:34:13 +01:00
&.has-dropdown
padding: 0
&.is-expanded
flex-grow: 1
flex-shrink: 1
2017-07-16 19:44:28 +01:00
&.is-tab
border-bottom: 1px solid transparent
min-height: $navbar-height
padding-bottom: calc(0.5rem - 1px)
&:focus,
2017-07-16 19:44:28 +01:00
&:hover
2017-07-28 21:05:15 +01:00
background-color: $navbar-tab-hover-background-color
border-bottom-color: $navbar-tab-hover-border-bottom-color
2017-07-16 19:44:28 +01:00
&.is-active
2017-07-28 21:05:15 +01:00
background-color: $navbar-tab-active-background-color
border-bottom-color: $navbar-tab-active-border-bottom-color
border-bottom-style: $navbar-tab-active-border-bottom-style
border-bottom-width: $navbar-tab-active-border-bottom-width
color: $navbar-tab-active-color
padding-bottom: calc(0.5rem - #{$navbar-tab-active-border-bottom-width})
2017-06-30 22:34:13 +01:00
.navbar-content
flex-grow: 1
flex-shrink: 1
.navbar-link:not(.is-arrowless)
2020-05-17 19:38:47 +01:00
+ltr-property("padding", 2.5em)
2018-04-08 18:48:47 +01:00
&::after
2018-09-04 15:24:50 +02:00
@extend %arrow
border-color: $navbar-dropdown-arrow
2018-04-11 10:02:37 +01:00
margin-top: -0.375em
2020-05-17 19:38:47 +01:00
+ltr-position(1.125em)
2017-06-30 22:34:13 +01:00
.navbar-dropdown
font-size: 0.875rem
2017-06-30 23:16:22 +01:00
padding-bottom: 0.5rem
padding-top: 0.5rem
2017-06-30 22:34:13 +01:00
.navbar-item
2017-06-30 23:16:22 +01:00
padding-left: 1.5rem
padding-right: 1.5rem
2017-06-30 22:34:13 +01:00
.navbar-divider
2017-07-28 21:05:15 +01:00
background-color: $navbar-divider-background-color
2017-06-30 22:34:13 +01:00
border: none
2017-06-30 23:16:22 +01:00
display: none
2018-04-10 22:38:00 +01:00
height: $navbar-divider-height
2017-06-30 23:16:22 +01:00
margin: 0.5rem 0
2017-06-30 22:34:13 +01:00
+until($navbar-breakpoint)
.navbar > .container
display: block
2017-09-05 15:09:31 +02:00
.navbar-brand,
.navbar-tabs
2017-06-30 23:16:22 +01:00
.navbar-item
align-items: center
display: flex
2018-04-08 18:48:47 +01:00
.navbar-link
&::after
display: none
2017-06-30 22:34:13 +01:00
.navbar-menu
background-color: $navbar-background-color
2020-03-16 13:29:44 +11:00
box-shadow: 0 8px 16px bulmaRgba($scheme-invert, 0.1)
2017-06-30 22:34:13 +01:00
padding: 0.5rem 0
2017-06-30 23:47:22 +01:00
&.is-active
display: block
2017-10-24 10:31:45 +01:00
// Fixed navbar
.navbar
&.is-fixed-bottom-touch,
&.is-fixed-top-touch
+navbar-fixed
&.is-fixed-bottom-touch
bottom: 0
2017-10-24 12:23:31 +01:00
&.has-shadow
2020-03-16 13:29:44 +11:00
box-shadow: 0 -2px 3px bulmaRgba($scheme-invert, 0.1)
2017-10-24 10:31:45 +01:00
&.is-fixed-top-touch
top: 0
2017-10-26 19:47:48 +01:00
&.is-fixed-top,
&.is-fixed-top-touch
.navbar-menu
+overflow-touch
max-height: calc(100vh - #{$navbar-height})
overflow: auto
2018-04-11 12:12:55 +01:00
html,
body
&.has-navbar-fixed-top-touch
padding-top: $navbar-height
&.has-navbar-fixed-bottom-touch
padding-bottom: $navbar-height
2017-06-30 22:34:13 +01:00
+from($navbar-breakpoint)
2017-06-30 22:34:13 +01:00
.navbar,
.navbar-menu,
.navbar-start,
.navbar-end
2018-04-11 01:38:07 +01:00
align-items: stretch
2017-06-30 22:34:13 +01:00
display: flex
2017-06-30 23:16:22 +01:00
.navbar
2017-07-16 19:44:28 +01:00
min-height: $navbar-height
2018-04-11 01:38:07 +01:00
&.is-spaced
2018-04-11 12:12:55 +01:00
padding: $navbar-padding-vertical $navbar-padding-horizontal
2018-04-11 01:38:07 +01:00
.navbar-start,
.navbar-end
align-items: center
a.navbar-item,
.navbar-link
border-radius: $radius
2017-07-01 18:30:39 +01:00
&.is-transparent
2017-07-02 22:07:30 +01:00
a.navbar-item,
2018-04-09 01:12:55 +01:00
.navbar-link
&:focus,
2017-07-02 22:07:30 +01:00
&:hover,
&.is-active
2017-10-09 12:27:08 +01:00
background-color: transparent !important
2017-07-02 23:20:04 +01:00
.navbar-item.has-dropdown
2017-07-02 22:07:30 +01:00
&.is-active,
&.is-hoverable:focus,
&.is-hoverable:focus-within,
2017-07-02 22:07:30 +01:00
&.is-hoverable:hover
.navbar-link
2017-10-09 12:27:08 +01:00
background-color: transparent !important
2017-07-02 23:20:04 +01:00
.navbar-dropdown
a.navbar-item
&:focus,
2017-07-02 23:20:04 +01:00
&:hover
2017-07-28 21:05:15 +01:00
background-color: $navbar-dropdown-item-hover-background-color
color: $navbar-dropdown-item-hover-color
2017-07-02 23:20:04 +01:00
&.is-active
2017-07-28 21:05:15 +01:00
background-color: $navbar-dropdown-item-active-background-color
color: $navbar-dropdown-item-active-color
2017-06-30 22:34:13 +01:00
.navbar-burger
display: none
2017-06-30 23:16:22 +01:00
.navbar-item,
.navbar-link
align-items: center
display: flex
.navbar-item
&.has-dropdown
align-items: stretch
2017-10-24 12:23:31 +01:00
&.has-dropdown-up
.navbar-link::after
transform: rotate(135deg) translate(0.25em, -0.25em)
.navbar-dropdown
border-bottom: $navbar-dropdown-border-top
border-radius: $navbar-dropdown-radius $navbar-dropdown-radius 0 0
border-top: none
bottom: 100%
2020-03-16 13:29:44 +11:00
box-shadow: 0 -8px 8px bulmaRgba($scheme-invert, 0.1)
2017-10-24 12:23:31 +01:00
top: auto
2017-06-30 23:47:22 +01:00
&.is-active,
&.is-hoverable:focus,
&.is-hoverable:focus-within,
2017-06-30 23:47:22 +01:00
&.is-hoverable:hover
2017-07-02 22:07:30 +01:00
.navbar-dropdown
display: block
2018-04-11 01:38:07 +01:00
.navbar.is-spaced &,
2017-07-02 22:07:30 +01:00
&.is-boxed
opacity: 1
pointer-events: auto
transform: translateY(0)
2017-06-30 22:34:13 +01:00
.navbar-menu
flex-grow: 1
flex-shrink: 0
.navbar-start
justify-content: flex-start
2020-05-17 19:04:42 +01:00
+ltr-property("margin", auto)
2017-06-30 22:34:13 +01:00
.navbar-end
justify-content: flex-end
2020-05-17 19:04:42 +01:00
+ltr-property("margin", auto, false)
2017-06-30 23:16:22 +01:00
.navbar-dropdown
2017-07-28 21:05:15 +01:00
background-color: $navbar-dropdown-background-color
2017-07-01 18:30:39 +01:00
border-bottom-left-radius: $navbar-dropdown-radius
border-bottom-right-radius: $navbar-dropdown-radius
2017-07-28 21:05:15 +01:00
border-top: $navbar-dropdown-border-top
2020-03-16 13:29:44 +11:00
box-shadow: 0 8px 8px bulmaRgba($scheme-invert, 0.1)
2017-06-30 23:16:22 +01:00
display: none
font-size: 0.875rem
2020-05-17 19:38:47 +01:00
+ltr-position(0, false)
2017-06-30 23:16:22 +01:00
min-width: 100%
position: absolute
2017-07-01 18:30:39 +01:00
top: 100%
2017-07-02 16:52:20 +01:00
z-index: $navbar-dropdown-z
2017-06-30 23:16:22 +01:00
.navbar-item
padding: 0.375rem 1rem
white-space: nowrap
2017-07-02 16:52:20 +01:00
a.navbar-item
2020-05-17 19:38:47 +01:00
+ltr-property("padding", 3rem)
&:focus,
2017-07-02 23:20:04 +01:00
&:hover
2017-07-28 21:05:15 +01:00
background-color: $navbar-dropdown-item-hover-background-color
color: $navbar-dropdown-item-hover-color
2017-07-02 23:20:04 +01:00
&.is-active
2017-07-28 21:05:15 +01:00
background-color: $navbar-dropdown-item-active-background-color
color: $navbar-dropdown-item-active-color
2018-04-11 01:38:07 +01:00
.navbar.is-spaced &,
2017-07-01 18:30:39 +01:00
&.is-boxed
2017-07-28 21:05:15 +01:00
border-radius: $navbar-dropdown-boxed-radius
2017-07-01 18:30:39 +01:00
border-top: none
2017-07-28 21:05:15 +01:00
box-shadow: $navbar-dropdown-boxed-shadow
2017-07-01 18:30:39 +01:00
display: block
opacity: 0
pointer-events: none
top: calc(100% + (#{$navbar-dropdown-offset}))
transform: translateY(-5px)
transition-duration: $speed
transition-property: opacity, transform
2017-08-02 23:52:36 +01:00
&.is-right
left: auto
right: 0
2017-06-30 23:16:22 +01:00
.navbar-divider
display: block
2017-10-24 10:31:45 +01:00
.navbar > .container,
2017-06-30 23:16:22 +01:00
.container > .navbar
2017-09-05 15:09:31 +02:00
.navbar-brand
2020-05-17 19:04:42 +01:00
+ltr-property("margin", -.75rem, false)
2017-09-05 15:09:31 +02:00
.navbar-menu
2020-05-17 19:04:42 +01:00
+ltr-property("margin", -.75rem)
2017-10-24 10:31:45 +01:00
// Fixed navbar
.navbar
&.is-fixed-bottom-desktop,
&.is-fixed-top-desktop
+navbar-fixed
&.is-fixed-bottom-desktop
bottom: 0
2017-10-24 12:23:31 +01:00
&.has-shadow
2020-03-16 13:29:44 +11:00
box-shadow: 0 -2px 3px bulmaRgba($scheme-invert, 0.1)
2017-10-24 10:31:45 +01:00
&.is-fixed-top-desktop
top: 0
2018-04-11 12:12:55 +01:00
html,
body
&.has-navbar-fixed-top-desktop
padding-top: $navbar-height
&.has-navbar-fixed-bottom-desktop
padding-bottom: $navbar-height
&.has-spaced-navbar-fixed-top
padding-top: $navbar-height + ($navbar-padding-vertical * 2)
&.has-spaced-navbar-fixed-bottom
padding-bottom: $navbar-height + ($navbar-padding-vertical * 2)
2017-07-02 23:39:08 +01:00
// Hover/Active states
a.navbar-item,
2018-04-09 01:12:55 +01:00
.navbar-link
2017-07-02 23:39:08 +01:00
&.is-active
2017-07-28 21:05:15 +01:00
color: $navbar-item-active-color
&.is-active:not(:focus):not(:hover)
2017-07-28 21:05:15 +01:00
background-color: $navbar-item-active-background-color
2017-07-02 23:39:08 +01:00
.navbar-item.has-dropdown
&:focus,
2017-07-02 23:39:08 +01:00
&:hover,
&.is-active
.navbar-link
2017-07-28 21:05:15 +01:00
background-color: $navbar-item-hover-background-color
2018-10-31 18:19:43 +00:00
// Combination
.hero
&.is-fullheight-with-navbar
min-height: calc(100vh - #{$navbar-height})