mirror of
https://github.com/twbs/bootstrap.git
synced 2025-08-30 16:50:00 +02:00
v5.2.0 design refresh, plus responsive offcanvas classes (#35736)
* Add responsive offcanvas classes - Updates navbar-expand classes to de-dupe some styles—these shouldn't interfere now. - Adds some JS to the offcanvas component to help with responsiveness Co-Authored-By: GeoSot <geo.sotis@gmail.com> * Redesign homepage, docs, and examples Homepage: - New Bootstrap purple navbar - Redesigned masthead - Rewrote and redesigned homepage content - Replace Copy text with icons like Bootstrap Icons site across all ClipboardJS instances - Fixed padding issues in site footer - Match homepage button styles to examples page, use gap instead of tons of responsive margin utils Docs: - New navbar, no more subnav. Migrated search and version picker into the main navbar and refreshed the design of it all, including the responsive toggles. - New sidebar navigation is always expanded, and now features Bootstrap Icons alongside section headings - Sidebar navigation autoscrolls to active link for better usability - Subnav and navbar padding issues ironed out - Enhanced the version picker in anticipation of v5.2: we can now link right to the same page in the previous version. - Redesign callouts to add more color to our pages - Collapse table of contents on mobile - Cleanup and redesign button styles with CSS variables - Update design for subnav version dropdown - Update highlight and example to be full-width until md - Improve the Added In badges - Turn the ToC into a well on mobile - Redesign code snippets to better house two action buttons Examples: - Redesign Examples page layout - Add new example for responsive offcanvases in navbars * Convert offcanvas to CSS vars * Feat: add resize handler to Offcanvas.js. If we could use as default the `.offcanvas` class without modifiers, we then, could add a simplified selector The selector itself, ignores the .offcanvas class as it doesn't have any responsive behavior The `aria-modal` addon is to protect us, selection backdrop elements * Separate examples code, Add some selectors, fix stackblitz btn Co-authored-by: GeoSot <geo.sotis@gmail.com>
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
</head>
|
||||
{{ block "body_override" . }}<body>{{ end }}
|
||||
{{ partial "skippy" . }}
|
||||
{{ partial "icons" . }}
|
||||
|
||||
{{ partial "docs-navbar" . }}
|
||||
|
||||
|
@@ -1,29 +1,45 @@
|
||||
{{ define "main" }}
|
||||
{{ partial "docs-subnav" . }}
|
||||
|
||||
<div class="container-xxl my-md-4 bd-layout">
|
||||
<div class="container-xxl bd-gutter mt-3 my-md-4 bd-layout">
|
||||
<aside class="bd-sidebar">
|
||||
{{ partial "docs-sidebar" . }}
|
||||
<div class="offcanvas-lg offcanvas-start" id="bdSidebar" aria-labelledby="bdSidebarOffcanvasLabel">
|
||||
<div class="offcanvas-header border-bottom">
|
||||
<h5 class="offcanvas-title" id="bdSidebarOffcanvasLabel">Browse docs</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close" data-bs-target="#bdSidebar"></button>
|
||||
</div>
|
||||
|
||||
<div class="offcanvas-body">
|
||||
{{ partial "docs-sidebar" . }}
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
|
||||
<main class="bd-main order-1">
|
||||
<div class="bd-intro ps-lg-4">
|
||||
<div class="bd-intro pt-2 ps-lg-2">
|
||||
<div class="d-md-flex flex-md-row-reverse align-items-center justify-content-between">
|
||||
<a class="btn btn-sm btn-bd-light mb-2 mb-md-0" href="{{ .Site.Params.repo }}/blob/main/site/content/{{ .Page.File.Path | replaceRE `\\` "/" }}" title="View and edit this file on GitHub" target="_blank" rel="noopener">View on GitHub</a>
|
||||
<h1 class="bd-title" id="content">{{ .Title | markdownify }}</h1>
|
||||
<a class="btn btn-sm btn-bd-light mb-3 mb-md-0 rounded-2" href="{{ .Site.Params.repo }}/blob/main/site/content/{{ .Page.File.Path | replaceRE `\\` "/" }}" title="View and edit this file on GitHub" target="_blank" rel="noopener">
|
||||
View on GitHub
|
||||
</a>
|
||||
<h1 class="bd-title mb-0" id="content">{{ .Title | markdownify }}</h1>
|
||||
</div>
|
||||
<p class="bd-lead">{{ .Page.Params.Description | markdownify }}</p>
|
||||
{{ partial "ads" . }}
|
||||
</div>
|
||||
|
||||
{{ if (eq .Page.Params.toc true) }}
|
||||
<div class="bd-toc mt-4 mb-5 my-md-0 ps-xl-3 mb-lg-5 text-muted">
|
||||
<strong class="d-block h6 my-2 pb-2 border-bottom">On this page</strong>
|
||||
{{ .TableOfContents }}
|
||||
<div class="bd-toc mt-3 mb-5 my-lg-0 ps-xl-3 mb-lg-5 text-muted">
|
||||
<button class="btn btn-link link-dark p-md-0 mb-2 mb-md-0 text-decoration-none bd-toc-toggle d-md-none" type="button" data-bs-toggle="collapse" data-bs-target="#tocContents" aria-expanded="false" aria-controls="tocContents">
|
||||
On this page
|
||||
<svg class="bi d-md-none ms-2" aria-hidden="true"><use xlink:href="#chevron-expand"></use></svg>
|
||||
</button>
|
||||
<strong class="d-none d-md-block h6 my-2">On this page</strong>
|
||||
<hr class="d-none d-md-block my-2">
|
||||
<div class="collapse bd-toc-collapse" id="tocContents">
|
||||
{{ .TableOfContents }}
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
|
||||
<div class="bd-content ps-lg-4">
|
||||
<div class="bd-content ps-lg-2">
|
||||
{{ if .Page.Params.sections }}
|
||||
<div class="row g-3">
|
||||
{{ range .Page.Params.sections }}
|
||||
|
@@ -1,14 +1,19 @@
|
||||
{{ define "main" }}
|
||||
<header class="py-5 border-bottom">
|
||||
<div class="container pt-md-1 pb-md-4">
|
||||
<div class="container-xxl bd-gutter pt-md-1 pb-md-4">
|
||||
<div class="row">
|
||||
<div class="col-xl-8">
|
||||
<h1 class="bd-title mt-0">{{ .Title | markdownify }}</h1>
|
||||
<p class="bd-lead">{{ .Page.Params.Description | markdownify }}</p>
|
||||
{{ if eq .Title "Examples" }}
|
||||
<div class="d-flex flex-column flex-sm-row">
|
||||
<a href="{{ .Site.Params.download.dist_examples }}" class="btn btn-lg btn-bd-primary" onclick="ga('send', 'event', 'Examples', 'Hero', 'Download Examples');">Download examples</a>
|
||||
<a href="{{ .Site.Params.download.source }}" class="btn btn-lg btn-outline-secondary mt-3 mt-sm-0 ms-sm-3" onclick="ga('send', 'event', 'Examples', 'Hero', 'Download');">Download source code</a>
|
||||
<div class="d-flex flex-column flex-md-row gap-3">
|
||||
<a href="{{ .Site.Params.download.dist_examples }}" class="btn btn-lg bd-btn-lg btn-bd-primary d-flex align-items-center justify-content-center fw-semibold" onclick="ga('send', 'event', 'Examples', 'Hero', 'Download Examples');">
|
||||
<svg class="bi me-2" aria-hidden="true"><use xlink:href="#box-seam"></use></svg>
|
||||
Download examples
|
||||
</a>
|
||||
<a href="{{ .Site.Params.download.source }}" class="btn btn-lg bd-btn-lg btn-outline-secondary" onclick="ga('send', 'event', 'Examples', 'Hero', 'Download');">
|
||||
Download source code
|
||||
</a>
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
@@ -20,7 +25,7 @@
|
||||
</header>
|
||||
|
||||
<main class="bd-content order-1 py-5" id="content">
|
||||
<div class="container">
|
||||
<div class="container-xxl bd-gutter">
|
||||
{{ .Content }}
|
||||
|
||||
{{ if eq .Title "Examples" }}
|
||||
@@ -30,7 +35,7 @@
|
||||
<div class="masthead-followup-icon d-inline-block mb-2 text-white bg-danger">
|
||||
{{ partial "icons/droplet-fill.svg" (dict "width" "32" "height" "32") }}
|
||||
</div>
|
||||
<h2 class="display-6 fw-normal">Go further with Bootstrap Themes</h2>
|
||||
<h2 class="display-6 fw-normal">Go further with Bootstrap Themes</h2>
|
||||
<p class="col-md-10 col-lg-8 mx-auto lead">
|
||||
Need something more than these examples? Take Bootstrap to the next level with premium themes from the <a href="{{ .Site.Params.themes }}">official Bootstrap Themes marketplace</a>. They’re built as their own extended frameworks, rich with new components and plugins, documentation, and powerful build tools.
|
||||
</p>
|
||||
|
Reference in New Issue
Block a user