diff options
author | Mark Otto <markd.otto@gmail.com> | 2021-12-03 11:08:01 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-03 11:08:01 +0300 |
commit | a780d74b28add417be398c525d2ed75775e02e16 (patch) | |
tree | 058a106e5ca750899dfbe293405345b710af6cd7 /site | |
parent | 6eef480e1e0c839243871b7714a925a14579fc28 (diff) |
Docs offcanvas navbar (#34487)
* Redesign docs navbar to use offcanvas, tweak overall padding while I'm here
* Match code snippets to new gutter width
* Replace value with docs-specific variable
Opted not to do a CSS variable here since on .bd-content it would be inherited into our examples
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
Diffstat (limited to 'site')
-rw-r--r-- | site/assets/scss/_component-examples.scss | 8 | ||||
-rw-r--r-- | site/assets/scss/_layout.scss | 3 | ||||
-rw-r--r-- | site/assets/scss/_navbar.scss | 12 | ||||
-rw-r--r-- | site/assets/scss/_sidebar.scss | 2 | ||||
-rw-r--r-- | site/assets/scss/_subnav.scss | 11 | ||||
-rw-r--r-- | site/assets/scss/_variables.scss | 2 | ||||
-rw-r--r-- | site/layouts/partials/docs-navbar.html | 110 |
7 files changed, 89 insertions, 59 deletions
diff --git a/site/assets/scss/_component-examples.scss b/site/assets/scss/_component-examples.scss index f93f1ee989..208654ae03 100644 --- a/site/assets/scss/_component-examples.scss +++ b/site/assets/scss/_component-examples.scss @@ -85,7 +85,7 @@ .bd-example { position: relative; padding: 1rem; - margin: 1rem (-$grid-gutter-width * .5) 0; + margin: 1rem ($bd-gutter-x * -1) 0; border: solid $gray-300; border-width: 1px 0 0; @include clearfix(); @@ -313,7 +313,7 @@ // .highlight { - padding: 1rem; + padding: var(--bs-gutter-x) $bd-gutter-x; margin-bottom: 1rem; background-color: $gray-100; @@ -338,8 +338,8 @@ } .bd-content .highlight { - margin-right: (-$grid-gutter-width * .5); - margin-left: (-$grid-gutter-width * .5); + margin-right: $bd-gutter-x * -1; + margin-left: $bd-gutter-x * -1; @include media-breakpoint-up(sm) { margin-right: 0; diff --git a/site/assets/scss/_layout.scss b/site/assets/scss/_layout.scss index 707c4949d1..03eab6f287 100644 --- a/site/assets/scss/_layout.scss +++ b/site/assets/scss/_layout.scss @@ -1,4 +1,7 @@ .bd-layout { + padding-right: $bd-gutter-x; + padding-left: $bd-gutter-x; + @include media-breakpoint-up(md) { display: grid; gap: $grid-gutter-width; diff --git a/site/assets/scss/_navbar.scss b/site/assets/scss/_navbar.scss index 053cadf2ee..07851b55c7 100644 --- a/site/assets/scss/_navbar.scss +++ b/site/assets/scss/_navbar.scss @@ -1,4 +1,7 @@ .bd-navbar { + --bs-gutter-x: $bd-gutter-x; + --bs-gutter-y: $bd-gutter-x; + padding: .75rem 0; background-color: $bd-purple-bright; @@ -29,4 +32,13 @@ width: 1rem; height: 1rem; } + + .offcanvas { + background-color: $bd-purple-bright; + border-left: 0; + + @include media-breakpoint-down(md) { + box-shadow: $box-shadow-lg; + } + } } diff --git a/site/assets/scss/_sidebar.scss b/site/assets/scss/_sidebar.scss index d893ba9dcc..b6d347fe7a 100644 --- a/site/assets/scss/_sidebar.scss +++ b/site/assets/scss/_sidebar.scss @@ -1,6 +1,6 @@ .bd-sidebar { @include media-breakpoint-down(md) { - margin: 0 -.75rem 1rem; + margin: 0 ($bd-gutter-x * -1) 1rem; } } diff --git a/site/assets/scss/_subnav.scss b/site/assets/scss/_subnav.scss index 8377ff4235..cc47c6fb54 100644 --- a/site/assets/scss/_subnav.scss +++ b/site/assets/scss/_subnav.scss @@ -1,4 +1,7 @@ .bd-subnavbar { + --bs-gutter-x: $bd-gutter-x; + --bs-gutter-y: $bd-gutter-x; + // The position and z-index are needed for the dropdown to stay on top of the content position: relative; z-index: $zindex-sticky; @@ -31,16 +34,16 @@ position: absolute; top: .4rem; right: .4rem; + bottom: .4rem; display: flex; align-items: center; justify-content: center; - height: 1.5rem; - padding-right: .25rem; - padding-left: .25rem; + padding-right: .3125rem; + padding-left: .3125rem; @include font-size(.75rem); color: $gray-600; content: "Ctrl + /"; - border: $border-width solid $border-color; + background-color: $gray-100; @include border-radius(.125rem); } diff --git a/site/assets/scss/_variables.scss b/site/assets/scss/_variables.scss index 110600260c..939492f702 100644 --- a/site/assets/scss/_variables.scss +++ b/site/assets/scss/_variables.scss @@ -11,3 +11,5 @@ $bd-warning: #f0ad4e; $bd-danger: #d9534f; $dropdown-active-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'><path fill='#292b2c' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/></svg>"); $sidebar-collapse-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'><path fill='none' stroke='rgba(0,0,0,.5)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 14l6-6-6-6'/></svg>"); + +$bd-gutter-x: 1.25rem; diff --git a/site/layouts/partials/docs-navbar.html b/site/layouts/partials/docs-navbar.html index e120c9c740..6611596e6b 100644 --- a/site/layouts/partials/docs-navbar.html +++ b/site/layouts/partials/docs-navbar.html @@ -4,62 +4,72 @@ {{ partial "icons/bootstrap-white-fill.svg" (dict "class" "d-block my-1" "width" "40" "height" "32") }} </a> - <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#bdNavbar" aria-controls="bdNavbar" aria-expanded="false" aria-label="Toggle navigation"> + <button class="navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#bdNavbar" aria-controls="bdNavbar" aria-expanded="false" aria-label="Toggle navigation"> {{ partial "icons/hamburger.svg" (dict "class" "bi" "width" "32" "height" "32") }} </button> - <div class="collapse navbar-collapse" id="bdNavbar"> - <ul class="navbar-nav flex-row flex-wrap bd-navbar-nav pt-2 py-md-0"> - <li class="nav-item col-6 col-md-auto"> - <a class="nav-link p-2{{ if .IsHome }} active" aria-current="page{{ end }}" href="/" onclick="ga('send', 'event', 'Navbar', 'Community links', 'Bootstrap');">Home</a> - </li> - <li class="nav-item col-6 col-md-auto"> - <a class="nav-link p-2{{ if eq .Page.Layout "docs" }} active" aria-current="true{{ end }}" href="/docs/{{ .Site.Params.docs_version }}/getting-started/introduction/" onclick="ga('send', 'event', 'Navbar', 'Community links', 'Docs');">Docs</a> - </li> - <li class="nav-item col-6 col-md-auto"> - <a class="nav-link p-2{{ if eq .Page.Title "Examples" }} active" aria-current="true{{ end }}" href="/docs/{{ .Site.Params.docs_version }}/examples/" onclick="ga('send', 'event', 'Navbar', 'Community links', 'Examples');">Examples</a> - </li> - <li class="nav-item col-6 col-md-auto"> - <a class="nav-link p-2" href="{{ .Site.Params.icons }}" onclick="ga('send', 'event', 'Navbar', 'Community links', 'Icons');" target="_blank" rel="noopener">Icons</a> - </li> - <li class="nav-item col-6 col-md-auto"> - <a class="nav-link p-2" href="{{ .Site.Params.themes }}" onclick="ga('send', 'event', 'Navbar', 'Community links', 'Themes');" target="_blank" rel="noopener">Themes</a> - </li> - <li class="nav-item col-6 col-md-auto"> - <a class="nav-link p-2" href="{{ .Site.Params.blog }}" onclick="ga('send', 'event', 'Navbar', 'Community links', 'Blog');" target="_blank" rel="noopener">Blog</a> - </li> - </ul> + <div class="offcanvas offcanvas-end" tabindex="-1" id="bdNavbar" aria-labelledby="bdNavbarOffcanvasLabel"> + <div class="offcanvas-header pb-0"> + <h5 class="offcanvas-title text-white" id="bdNavbarOffcanvasLabel">Bootstrap</h5> + <button type="button" class="btn-close btn-close-white" data-bs-dismiss="offcanvas" aria-label="Close"></button> + </div> - <hr class="d-md-none text-white-50"> + <div class="offcanvas-body pt-0"> + <hr class="d-md-none text-white-50"> + <ul class="navbar-nav flex-row flex-wrap bd-navbar-nav"> + <li class="nav-item col-6 col-md-auto"> + <a class="nav-link p-2{{ if .IsHome }} active" aria-current="page{{ end }}" href="/" onclick="ga('send', 'event', 'Navbar', 'Community links', 'Bootstrap');">Home</a> + </li> + <li class="nav-item col-6 col-md-auto"> + <a class="nav-link p-2{{ if eq .Page.Layout "docs" }} active" aria-current="true{{ end }}" href="/docs/{{ .Site.Params.docs_version }}/getting-started/introduction/" onclick="ga('send', 'event', 'Navbar', 'Community links', 'Docs');">Docs</a> + </li> + <li class="nav-item col-6 col-md-auto"> + <a class="nav-link p-2{{ if eq .Page.Title "Examples" }} active" aria-current="true{{ end }}" href="/docs/{{ .Site.Params.docs_version }}/examples/" onclick="ga('send', 'event', 'Navbar', 'Community links', 'Examples');">Examples</a> + </li> + <li class="nav-item col-6 col-md-auto"> + <a class="nav-link p-2" href="{{ .Site.Params.icons }}" onclick="ga('send', 'event', 'Navbar', 'Community links', 'Icons');" target="_blank" rel="noopener">Icons</a> + </li> + <li class="nav-item col-6 col-md-auto"> + <a class="nav-link p-2" href="{{ .Site.Params.themes }}" onclick="ga('send', 'event', 'Navbar', 'Community links', 'Themes');" target="_blank" rel="noopener">Themes</a> + </li> + <li class="nav-item col-6 col-md-auto"> + <a class="nav-link p-2" href="{{ .Site.Params.blog }}" onclick="ga('send', 'event', 'Navbar', 'Community links', 'Blog');" target="_blank" rel="noopener">Blog</a> + </li> + </ul> - <ul class="navbar-nav flex-row flex-wrap ms-md-auto"> - <li class="nav-item col-6 col-md-auto"> - <a class="nav-link p-2" href="{{ .Site.Params.github_org }}" target="_blank" rel="noopener"> - {{ partial "icons/github.svg" (dict "class" "navbar-nav-svg d-inline-block align-text-top" "width" "36" "height" "36") }} - <small class="d-md-none ms-2">GitHub</small> - </a> - </li> - <li class="nav-item col-6 col-md-auto"> - <a class="nav-link p-2" href="https://twitter.com/{{ .Site.Params.twitter }}" target="_blank" rel="noopener"> - {{ partial "icons/twitter.svg" (dict "class" "navbar-nav-svg d-inline-block align-text-top" "width" "36" "height" "36") }} - <small class="d-md-none ms-2">Twitter</small> - </a> - </li> - <li class="nav-item col-6 col-md-auto"> - <a class="nav-link p-2" href="{{ .Site.Params.slack }}" target="_blank" rel="noopener"> - {{ partial "icons/slack.svg" (dict "class" "navbar-nav-svg d-inline-block align-text-top" "width" "36" "height" "36") }} - <small class="d-md-none ms-2">Slack</small> - </a> - </li> - <li class="nav-item col-6 col-md-auto"> - <a class="nav-link p-2" href="{{ .Site.Params.opencollective }}" target="_blank" rel="noopener"> - {{ partial "icons/opencollective.svg" (dict "class" "navbar-nav-svg d-inline-block align-text-top" "width" "36" "height" "36") }} - <small class="d-md-none ms-2">Open Collective</small> - </a> - </li> - </ul> + <hr class="d-md-none text-white-50"> - <a class="btn btn-bd-download d-lg-inline-block my-2 my-md-0 ms-md-3" href="/docs/{{ .Site.Params.docs_version }}/getting-started/download/">Download</a> + <ul class="navbar-nav flex-row flex-wrap ms-md-auto"> + <li class="nav-item col-6 col-md-auto"> + <a class="nav-link p-2" href="{{ .Site.Params.github_org }}" target="_blank" rel="noopener"> + {{ partial "icons/github.svg" (dict "class" "navbar-nav-svg d-inline-block align-text-top" "width" "36" "height" "36") }} + <small class="d-md-none ms-2">GitHub</small> + </a> + </li> + <li class="nav-item col-6 col-md-auto"> + <a class="nav-link p-2" href="https://twitter.com/{{ .Site.Params.twitter }}" target="_blank" rel="noopener"> + {{ partial "icons/twitter.svg" (dict "class" "navbar-nav-svg d-inline-block align-text-top" "width" "36" "height" "36") }} + <small class="d-md-none ms-2">Twitter</small> + </a> + </li> + <li class="nav-item col-6 col-md-auto"> + <a class="nav-link p-2" href="{{ .Site.Params.slack }}" target="_blank" rel="noopener"> + {{ partial "icons/slack.svg" (dict "class" "navbar-nav-svg d-inline-block align-text-top" "width" "36" "height" "36") }} + <small class="d-md-none ms-2">Slack</small> + </a> + </li> + <li class="nav-item col-6 col-md-auto"> + <a class="nav-link p-2" href="{{ .Site.Params.opencollective }}" target="_blank" rel="noopener"> + {{ partial "icons/opencollective.svg" (dict "class" "navbar-nav-svg d-inline-block align-text-top" "width" "36" "height" "36") }} + <small class="d-md-none ms-2">Open Collective</small> + </a> + </li> + </ul> + + <hr class="d-md-none text-white-50"> + + <a class="btn btn-bd-download d-lg-inline-block my-2 my-md-0 ms-md-3" href="/docs/{{ .Site.Params.docs_version }}/getting-started/download/">Download</a> + </div> </div> </nav> </header> |