diff --git a/components/00-base/_variables.components.scss b/components/00-base/_variables.components.scss index f2a59752..fb33d096 100644 --- a/components/00-base/_variables.components.scss +++ b/components/00-base/_variables.components.scss @@ -965,6 +965,18 @@ $ct-navigation-drawer-top-offset: ct-spacing(2) !default; $ct-navigation-drawer-column-gutter: ct-spacing(4) !default; // Colors. +$ct-navigation-light-menu-border-color: ct-color-light('interaction-background') !default; +$ct-navigation-light-menu-color: ct-color-light('interaction-background') !default; +$ct-navigation-light-menu-hover-color: ct-color-light('interaction-hover-background') !default; +$ct-navigation-light-menu-active-color: ct-color-light('interaction-hover-background') !default; +$ct-navigation-light-menu-item-background-color: transparent !default; +$ct-navigation-light-menu-item-border-color: transparent !default; +$ct-navigation-light-menu-item-hover-background-color: transparent !default; +$ct-navigation-light-menu-item-hover-border-color: ct-color-light('interaction-hover-background') !default; +$ct-navigation-light-menu-item-active-background-color: transparent !default; +$ct-navigation-light-menu-item-active-border-color: ct-color-light('highlight') !default; +$ct-navigation-light-menu-item-active-trail-background-color: ct-color-light('interaction-background') !default; +$ct-navigation-light-menu-item-active-trail-color: ct-color-light('background') !default; $ct-navigation-light-drawer-border-color: ct-color-light('interaction-background') !default; $ct-navigation-light-drawer-color: ct-color-light('interaction-background') !default; $ct-navigation-light-drawer-hover-color: ct-color-light('interaction-hover-background') !default; @@ -987,6 +999,18 @@ $ct-navigation-light-drawer-sub-menu-item-hover-background-color: ct-color-light $ct-navigation-light-drawer-sub-menu-item-hover-color: ct-color-light('interaction-hover-text') !default; $ct-navigation-light-drawer-sub-menu-item-active-background-color: ct-color-light('body') !default; $ct-navigation-light-drawer-sub-menu-item-active-color: ct-color-light('background') !default; +$ct-navigation-dark-menu-border-color: ct-color-dark('interaction-background') !default; +$ct-navigation-dark-menu-color: ct-color-dark('interaction-background') !default; +$ct-navigation-dark-menu-hover-color: ct-color-dark('interaction-hover-background') !default; +$ct-navigation-dark-menu-active-color: ct-color-dark('interaction-hover-background') !default; +$ct-navigation-dark-menu-item-background-color: transparent !default; +$ct-navigation-dark-menu-item-border-color: transparent !default; +$ct-navigation-dark-menu-item-hover-background-color: transparent !default; +$ct-navigation-dark-menu-item-hover-border-color: ct-color-dark('interaction-hover-background') !default; +$ct-navigation-dark-menu-item-active-background-color: transparent !default; +$ct-navigation-dark-menu-item-active-border-color: ct-color-dark('highlight') !default; +$ct-navigation-dark-menu-item-active-trail-background-color: ct-color-dark('interaction-background') !default; +$ct-navigation-dark-menu-item-active-trail-color: ct-color-dark('background') !default; $ct-navigation-dark-drawer-border-color: ct-color-dark('interaction-background') !default; $ct-navigation-dark-drawer-color: ct-color-dark('interaction-background') !default; $ct-navigation-dark-drawer-hover-color: ct-color-dark('interaction-hover-background') !default; diff --git a/components/03-organisms/navigation/navigation.scss b/components/03-organisms/navigation/navigation.scss index 264f85ac..a223ca4e 100644 --- a/components/03-organisms/navigation/navigation.scss +++ b/components/03-organisms/navigation/navigation.scss @@ -18,6 +18,14 @@ &#{$root}--none { #{$root}__items { + display: none; + align-items: center; + height: 100%; + + @include ct-breakpoint($ct-navigation-breakpoint) { + display: flex; + } + #{$root}__menu { &.ct-menu, .ct-menu { @@ -28,17 +36,70 @@ margin: 0; } - .ct-menu__sub-menu { - margin-top: ct-spacing(2); + // First-level items to be displayed inline. + &.ct-menu--level-0 { + display: flex; } .ct-menu__item { - margin-bottom: ct-spacing(2); - margin-left: ct-spacing(2); + // Links - level 0. + &--level-0 { + border-bottom: solid ct-particle(0.5); + + > .ct-link { + display: block; + padding: ct-spacing(2); + text-align: center; + + &::after { + right: ct-spacing(); + margin-top: -1 * ct-particle(0.25); + top: ct-spacing(2); + } + } + } } + } + } + + @include ct-component-theme($root) using($root, $theme) { + #{$root}__items { + .ct-menu__item { + // Links - level 0. + &--level-0 { + border-bottom-color: ct-component-var($root, $theme, menu-item, border-color); + + &:hover { + @include ct-component-property($root, $theme, menu-item, hover, background-color); + + border-bottom-color: ct-component-var($root, $theme, menu-item, hover, border-color); + } + + &:active { + @include ct-component-property($root, $theme, menu-item, active, background-color); - &.ct-menu > .ct-menu__item { - margin-left: 0; + border-bottom-color: ct-component-var($root, $theme, menu-item, active, border-color); + } + + &.ct-menu__item--active-trail { + border-bottom-color: ct-component-var($root, $theme, menu, border-color); + } + + > .ct-link { + @include ct-component-property($root, $theme, menu-item, background-color); + @include ct-component-property($root, $theme, menu, color); + + &:hover { + @include ct-component-property($root, $theme, menu-item, hover, background-color); + @include ct-component-property($root, $theme, menu, hover, color); + } + + &:active { + @include ct-component-property($root, $theme, menu-item, active, background-color); + @include ct-component-property($root, $theme, menu, active, color); + } + } + } } } } diff --git a/components/03-organisms/navigation/navigation.twig b/components/03-organisms/navigation/navigation.twig index e381d9fe..5c547b21 100644 --- a/components/03-organisms/navigation/navigation.twig +++ b/components/03-organisms/navigation/navigation.twig @@ -46,6 +46,13 @@ {% endif %} {% endif %} {% endfor %} + {% else %} + {% for key in items|keys %} + {% if items[key].below %} + {% set items_without_below = items[key]|merge({ 'below': null }) %} + {% set items = items|merge({(key): items_without_below}) %} + {% endif %} + {% endfor %} {% endif %}