// Toolbar Variables :root { --gin-toolbar-secondary-height: 48px; --gin-toolbar-height: 39px; --gin-scroll-offset: 72px; --gin-toolbar-y-offset: var(--gin-toolbar-height); // Needs px to work in calc() functions. --gin-toolbar-x-offset: 0px; // Needs px to work in calc() functions. --gin-sticky-offset: 0px; // Needs px to work in calc() functions. @include mq(medium) { --gin-toolbar-secondary-height: 60px; --gin-icon-size-toolbar: 22px; --gin-scroll-offset: 130px; --gin-toolbar-y-offset: 0px; // Needs px to work in calc() functions. --gin-toolbar-x-offset: var(--gin-toolbar-width-collapsed); --gin-sticky-offset: var(--gin-height-sticky); } } .toolbar-fixed[data-toolbar-menu=open] { @include mq(medium) { --gin-toolbar-x-offset: var(--gin-toolbar-width, 240px); } } // Toolbar #toolbar-item-administration-tray { @include mq(medium) { border: 0 none; } } .toolbar { .toolbar-bar { box-shadow: none; // Reset `box-shadow` style from the `.toolbar-bar` class if we use RTL mode. [dir="rtl"] & { box-shadow: none; } @include mq(xsmall) { display: flex; } @include mq(large) { height: 0; } .toolbar-tab > .toolbar-item { font-weight: var(--gin-font-weight-normal);; } #toolbar-item-administration-tray .toolbar-icon, .toolbar-tab > .toolbar-icon-edit.toolbar-item { &::before { @include mq(medium) { left: calc((var(--gin-toolbar-width-collapsed) - var(--gin-icon-size-toolbar)) / 2 - 9px); width: var(--gin-icon-size-toolbar); height: var(--gin-icon-size-toolbar); top: 50%; transform: translateY(-50%); } } } .toolbar-tab > .toolbar-icon-edit.toolbar-item::before { @include mq($to: xsmall) { left: 0; } } @include mq(medium) { // Toolbar logo .toolbar-logo { height: var(--gin-height-sticky); &:hover, &:focus { z-index: 3; position: relative; } } // Admin tray: Home icon .toolbar-icon-home { display: block; width: 100%; margin: var(--gin-spacing-xs) 0; } #toolbar-item-administration-tray a.toolbar-icon.override-icon { &:before { left: 0; width: 0; content: none; } } } // Custom logo #toolbar-item-administration-tray .toolbar-logo { padding: var(--gin-spacing-xs) 0; img { max-width: calc(var(--gin-toolbar-width-collapsed) - 1px); max-height: 40px; } } #toolbar-item-administration-tray a.toolbar-icon-admin-toolbar-tools-help.toolbar-icon-default { @include mq(medium) { height: 74px; margin-bottom: 6px; transition: top var(--gin-transition); } &::before { $logoSize: 32px; @include mq(medium) { width: $logoSize; height: $logoSize; left: calc((var(--gin-toolbar-width-collapsed) - #{$logoSize}) / 2 - 9px); mask-size: $logoSize $logoSize; mask-position: center center; } } &:hover::before { background: var(--gin-color-primary); } &::after { display: none; } &:focus { box-shadow: none; &::after { box-shadow: inset 0 0 0 1px var(--gin-color-focus-border), inset 0 0 0 4px var(--gin-color-focus); } } } } } .toolbar-tray a, .toolbar-tray a:visited, .toolbar-tray span { color: var(--gin-color-text); } #gin-toolbar-bar.js-settings-tray-edit-mode { justify-content: flex-end; } #toolbar-item-administration-tray a.toolbar-icon.override-icon { &:before { @include mq(medium) { left: 0; width: 0; content: none; } } } .toolbar .toolbar-bar { position: fixed; left: 0; width: 100%; } .toolbar .toolbar-menu { background: transparent; .toolbar-menu a, .toolbar-menu span { color: var(--gin-color-text); } } .toolbar .toolbar-tray .menu-item--active-trail > .toolbar-box a, .toolbar .toolbar-tray a.is-active { color: var(--gin-color-primary); font-weight: var(--gin-font-weight-semibold); text-decoration: none; @include mq($to: medium) { width: 100%; background: var(--gin-color-primary-light); } } // Mobile: hide menu titles .toolbar-menu__title, .toolbar-menu__sub-title, a.toolbar-menu__trigger, .toolbar-menu__logo { display: none; } // New Desktop Toolbar @include mq(medium) { #toolbar-item-administration-tray { display: block; } .toolbar .toolbar-menu .toolbar-menu { background: var(--gin-bg-app); } .toolbar-fixed { transition: var(--gin-transition); } .toolbar .toolbar-box { position: static; } .toolbar-tab > .toolbar-item { &.toolbar-icon-menu { display: none; } } .toolbar-menu-administration a.toolbar-menu__trigger { position: fixed; left: 0; bottom: 0; font-size: var(--gin-font-size-s); color: var(--gin-color-text-light); text-decoration: none; display: flex; align-items: center; width: var(--gin-toolbar-width-collapsed); height: 64px; padding: var(--gin-spacing-m) 0 var(--gin-spacing-m) var(--gin-toolbar-width-collapsed); margin: 0; transition: width var(--gin-transition); overflow: hidden; &, &:active, &:focus { background-color: transparent; } &:hover { &::before { background-color: var(--gin-color-title); } } &::before { content: ""; position: absolute; left: calc((var(--gin-toolbar-width-collapsed) - 36px) / 2); display: inline-block; width: 32px; height: 32px; border-radius: 50%; border: 1px solid var(--gin-border-color); background: var(--gin-bg-layer) url("data:image/svg+xml,%3Csvg width='9' height='14' viewBox='0 0 9 14' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M 1.7109375,0.31445312 0.2890625,1.7226562 5.5917969,7.0761719 0.2890625,12.429688 1.7109375,13.837891 8.4082031,7.0761719 Z' fill='%23999999'/%3E%3C/svg%3E") no-repeat center center; background-size: 11px 11px; transition: transform var(--gin-transition); } &.is-active { display: flex; font-weight: var(--gin-font-weight-normal); color: var(--gin-color-text-light); width: var(--gin-toolbar-width); &:hover { color: var(--gin-color-title); } &:before { transform: rotate(180deg); } } .menu { display: none; } .close { display: inline; } } .toolbar-tab--toolbar-item-administration { order: -1; } .toolbar-menu-administration { display: flex; position: fixed; top: auto; left: 0; width: var(--gin-toolbar-width-collapsed); height: 100vh; max-width: calc(100% - var(--gin-toolbar-height)); background: var(--gin-bg-layer); border-right: 1px solid var(--gin-border-color-layer); transition: var(--gin-transition); .gin--dark-mode & { box-shadow: 0 0 4px rgba(0, 0, 0, 0.1); } [data-toolbar-menu='open'] & { width: var(--gin-toolbar-width); } .toolbar-tray-horizontal & { ul li.menu-item--expanded .menu-item.hover-intent ul, ul li.menu-item--expanded .menu-item:focus-within ul { margin-top: 0; margin-left: calc(var(--gin-toolbar-width) - 2px); } // admin_toolbar 3.3.1 fix // hide for vertical toolbar .toolbar-icon.toolbar-handle { display: none !important; } } // Open Menu .toolbar-vertical & { width: var(--gin-toolbar-width); > .toolbar-menu { > .menu-item { border-top: 0 none; border-bottom: 0 none; > .toolbar-icon, > .toolbar-box > .toolbar-icon { width: auto; padding-left: calc(var(--gin-spacing-xxl) + var(--gin-spacing-xs)) } .toolbar-menu { left: var(--gin-toolbar-width); } } } } > .toolbar-menu { align-self: flex-start; height: 100%; max-height: calc(100% - var(--gin-toolbar-width-collapsed)); overflow-y: auto; background: transparent; -webkit-overflow-scrolling: touch; display: flex; flex-direction: column; overflow-x: hidden; > .menu-item { > .toolbar-icon, > .toolbar-box > .toolbar-icon { font-size: var(--gin-font-size); font-weight: 475; letter-spacing: -.0125rem; color: var(--gin-color-text); display: flex; align-items: center; width: calc(var(--gin-toolbar-x-offset) - var(--gin-spacing-m)); height: 48px; padding-left: calc(var(--gin-toolbar-width-collapsed) - var(--gin-spacing-m)); padding-right: 0; margin: 0 var(--gin-spacing-xs) 1px; border-radius: var(--gin-border-m); overflow: hidden; transition: width var(--gin-transition); &:hover { color: var(--gin-color-primary); background-color: transparent; } &.is-active { color: var(--gin-color-primary-active); font-weight: var(--gin-font-weight-semibold); &:before { background: var(--gin-color-primary); } } &.toolbar-handle { width: var(--gin-toolbar-width-collapsed); &:before { display: none; } } } .toolbar-menu { display: none; top: 0; margin-left: calc(var(--gin-toolbar-x-offset) - 1px); height: 100vh; max-width: calc(100% - var(--gin-toolbar-height)); box-shadow: none; border-left: 1px solid var(--gin-border-color-layer); transition: margin-left var(--gin-transition); overflow-y: auto; overflow-x: hidden; &, [dir] & { position: fixed; width: var(--gin-toolbar-width); } // Link color a, span { color: var(--gin-color-text); &.is-active { color: var(--gin-color-primary); font-weight: var(--gin-font-weight-semibold); background: var(--gin-color-primary-light); &:hover { color: var(--gin-color-primary-hover); background: var(--gin-color-primary-light-hover); } } } &__title, &__sub-title { position: relative; display: block; min-height: 36px; font-size: var(--gin-font-size-h3); letter-spacing: -.025em; padding: 0; margin: var(--gin-spacing-m) var(--gin-spacing-s) calc(var(--gin-spacing-l) - var(--gin-spacing-xxs)) var(--gin-spacing-s); a { font-weight: var(--gin-font-weight-semibold); color: var(--gin-color-title); padding: var(--gin-spacing-s); border-radius: var(--gin-border-m); } } &__sub-title { font-size: var(--gin-font-size-xl); letter-spacing: -.01em; margin-bottom: 1.275rem; a { padding: .9rem var(--gin-spacing-s); } } .menu-item { border-top: 0 none; border-left: 0 none; border-bottom: 0 none; .toolbar-icon { font-size:var(--gin-font-size); display: block; width: 100%; max-width: calc(100% - var(--gin-spacing-l)); padding: var(--gin-spacing-s) var(--gin-spacing-xl) var(--gin-spacing-s) var(--gin-spacing-s); margin: .25em var(--gin-spacing-s); border-radius: var(--gin-border-m); overflow: hidden; } } } } // Shadow as scrolling indicator &, .toolbar-menu { background: linear-gradient(var(--gin-bg-layer) 30%, var(--gin-bg-layer)), linear-gradient(var(--gin-bg-layer), var(--gin-bg-layer) 80%) 0 100%, radial-gradient(farthest-side at 50% 0, rgba(0, 0, 0, .15), rgba(0, 0, 0, 0)), radial-gradient(farthest-side at 50% 100%, rgba(0, 0, 0, .15), rgba(0, 0, 0, 0)) 0 100%; background-color: var(--gin-bg-layer); background-repeat: no-repeat; background-attachment: local, local, scroll, scroll; background-size: 100% 40px, 100% 40px, 100% 16px, 100% 16px; } .toolbar-menu { background-size: 100% 40px, 100% 40px, 100% 24px, 100% 24px; } } .menu-item.hover-intent > .toolbar-menu, .menu-item:focus-within > .toolbar-menu { z-index: 2; display: block; border-right: 1px solid rgba(0,0,0,.075); box-shadow: 7px 0 16px rgba(0,0,0,.075), -12px 0 0 0 var(--gin-bg-layer); } .menu-item .menu-item:hover > .toolbar-icon, .menu-item .menu-item:hover > .toolbar-box .toolbar-icon { color: var(--gin-color-primary-hover); background: var(--gin-color-primary-light); } } // Hide Drupal's default toggle for sidebar .toolbar .toolbar-toggle-orientation button { display: none; } } .toolbar .toolbar-icon.toolbar-handle:focus { background-color: rgba(255, 255, 255, .1); } #toolbar-item-administration-search-tray input { width: 100%; max-width: calc(100% - var(--gin-spacing-m)); outline: none; } .toolbar-tray-horizontal ul li.menu-item--expanded ul li.menu-item--expanded, .toolbar-tray-horizontal .toolbar-menu:not(:first-child) li.menu-item--expanded > a:focus { position: relative; &::before { z-index: 1; top: 1em; right: 20px; } } // New Main level hover; needs refactoring at some point. .toolbar-menu-administration > .toolbar-menu > .menu-item { &:hover { background: transparent; } &:hover > .toolbar-icon, &:hover > .toolbar-box > a.toolbar-icon, > .toolbar-icon:focus, &.menu-item--active-trail > .toolbar-icon, &.menu-item--active-trail:hover > .toolbar-icon, &.menu-item--active-trail > .toolbar-box > a.toolbar-icon { @include mq(medium) { color: var(--gin-color-primary-hover); box-shadow: none; &::before { background: var(--gin-color-primary-active); } &::after { content: ""; display: block; position: absolute; top: 3px; left: calc((var(--gin-toolbar-width-collapsed) - var(--gin-spacing-xl) - var(--gin-spacing-xs)) / 2 - 9px); width: calc(100% - 10px); height: 42px; background: var(--gin-color-primary-light); border-radius: var(--gin-border-m); } &:focus { background: transparent; &::after { box-shadow: inset 0 0 0 1px var(--gin-color-focus-border), inset 0 0 0 4px var(--gin-color-focus); } } } } &.menu-item--active-trail > .toolbar-icon, &.menu-item--active-trail > .toolbar-box > a.toolbar-icon, > .toolbar-icon.is-active { @include mq(medium) { &::after { background: var(--gin-bg-item-hover); } } } } // New navigation approach. // .toolbar-fixed[data-toolbar-menu=open] { // @include mq(medium) { // padding-left: calc(var(--gin-toolbar-width-collapsed) + var(--gin-toolbar-width)); // .toolbar-menu-administration > .toolbar-menu > .menu-item--active-trail > .toolbar-menu { // z-index: 1; // display: block; // border-right: 1px solid var(--gin-border-color-layer); // box-shadow: 7px 0 16px rgba(0,0,0,.075); // > li { // float: none; // } // } // .toolbar-menu-administration > .toolbar-menu > .menu-item:not(.menu-item--active-trail) > .toolbar-menu { // box-shadow: none; // } // // Submenu // .toolbar-menu-administration > .toolbar-menu > .menu-item > .toolbar-menu > .menu-item:hover .toolbar-menu, // .toolbar-menu-administration > .toolbar-menu > .menu-item > .toolbar-menu > .menu-item.menu-item--active-trail .toolbar-menu { // position: relative; // opacity: 1; // display: block; // margin-left: var(--gin-spacing-l); // border-left-color: var(--gin-color-text-light); // height: auto; // .menu-item-title { // display: none; // } // .toolbar-icon { // padding: .75em; // } // } // } // }