Skip to content

Commit b509e54

Browse files
committed
Replace bootstrap burger menu with a CSS based one
This removes our dependency on the bootstrap javascript and along with it also the jquery dependency. Instead we use a pure CSS based dropdown menu, and a small snippet of custom javascript is used to maintain the aria- tag information. Reviewed by Dave Page and Chris Ellis
1 parent 3a0e8d0 commit b509e54

File tree

6 files changed

+31
-16
lines changed

6 files changed

+31
-16
lines changed

README.rst

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,6 @@ Django is released under its `BSD Licence <https://github.com/django/django/blob
4646
Bootstrap is released under the `MIT Licence <https://github.com/twbs/bootstrap/blob/master/LICENSE>`_.
4747
and includes the following software as well:
4848

49-
- jQuery under the `MIT Licence <https://jquery.org/license/>`_
50-
5149
Font Awesome has a `combination of licences <https://fontawesome.com/license>`_:
5250

5351
The code of Font Awesome is released under the `MIT Licence <https://opensource.org/licenses/MIT>`_.

media/css/main.css

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -825,6 +825,18 @@ ul.actions {
825825
transition: all 0.3s;
826826
}
827827

828+
/* Burger menu */
829+
input#navbar-toggler {
830+
display: none;
831+
}
832+
#pgNavbar {
833+
display: none;
834+
}
835+
#navbar-toggler:checked ~ #pgNavbar {
836+
display: block;
837+
}
838+
839+
828840
/* #SIDEBAR UL STYLING */
829841

830842
#pgSideNav {

media/js/jquery-3.4.1.slim.min.js

Lines changed: 0 additions & 2 deletions
This file was deleted.

media/js/main.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,16 @@
1+
/*
2+
* Keyboard-accessible nav toggle
3+
*/
4+
document.getElementById('navbar-toggler-label').addEventListener('keydown', (e) => {
5+
if (e.key == ' ') {
6+
document.getElementById('navbar-toggler').checked ^= true;
7+
e.preventDefault();
8+
}
9+
});
10+
document.getElementById('navbar-toggler').addEventListener('change', (e) => {
11+
document.getElementById('navbar-toggler').setAttribute('aria-expanded', document.getElementById('navbar-toggler').checked);
12+
});
13+
114
/*
215
* Initialize google tag manager for analytics integration
316
*/

templates/base/base.html

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,9 @@
4141
<a class="navbar-brand p-0" href="/">
4242
<img class="logo" src="/media/img/about/press/elephant.png" alt="PostgreSQL Elephant Logo">
4343
</a>
44-
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#pgNavbar" aria-controls="pgNavbar" aria-expanded="false" aria-label="Toggle navigation">
45-
<span class="navbar-toggler-icon"></span>
46-
</button>
47-
<div class="collapse navbar-collapse" id="pgNavbar">
44+
<input type="checkbox" id="navbar-toggler" aria-controls="pgNavbar" aria-expanded="false" aria-label="Toggle navigation">
45+
<label for="navbar-toggler" id="navbar-toggler-label" class="navbar-toggler" tabindex="0"><span class="navbar-toggler-icon"></span></label>
46+
<div class="navbar-collapse" id="pgNavbar">
4847
<ul class="navbar-nav mr-auto">
4948
<li class="nav-item p-2"><a href="/" title="Home">Home</a></li>
5049
<li class="nav-item p-2"><a href="/about/" title="About">About</a></li>
@@ -87,8 +86,6 @@
8786
<p>Copyright &copy; 1996-{% now "Y" %} The PostgreSQL Global Development Group</p>
8887
</div>
8988
</footer>
90-
<script src="/media/js/jquery-3.4.1.slim.min.js"></script>
91-
<script src="/media/js/bootstrap-4.4.1.min.js"></script>
9289
<script src="/media/js/main.js?{{gitrev}}"></script>
9390
{%block extrascript%}{%endblock%}
9491
</body>

templates/docs/docspage.html

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,9 @@
4444
<a class="navbar-brand p-0" href="/">
4545
<img class="logo" src="/media/img/about/press/elephant.png" alt="PostgreSQL Elephant Logo">
4646
</a>
47-
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#pgNavbar" aria-controls="pgNavbar" aria-expanded="false" aria-label="Toggle navigation">
48-
<span class="navbar-toggler-icon"></span>
49-
</button>
50-
<div class="collapse navbar-collapse" id="pgNavbar">
47+
<input type="checkbox" id="navbar-toggler" aria-controls="pgNavbar" aria-expanded="false" aria-label="Toggle navigation">
48+
<label for="navbar-toggler" id="navbar-toggler-label" class="navbar-toggler" tabindex="0"><span class="navbar-toggler-icon"></span></label>
49+
<div class="navbar-collapse" id="pgNavbar">
5150
<ul class="navbar-nav mr-auto">
5251
<li class="nav-item p-2"><a href="/" title="Home">Home</a></li>
5352
<li class="nav-item p-2"><a href="/about/" title="About">About</a></li>
@@ -178,8 +177,6 @@ <h2>Submit correction</h2>
178177
<p>Copyright &copy; 1996-{% now "Y" %} The PostgreSQL Global Development Group</p>
179178
</div>
180179
</footer>
181-
<script src="/media/js/jquery-3.4.1.slim.min.js"></script>
182-
<script src="/media/js/bootstrap-4.4.1.min.js"></script>
183180
<script src="/media/js/main.js?{{gitrev}}"></script>
184181
</body>
185182
</html>

0 commit comments

Comments
 (0)