Skip to content

Commit 7d88d64

Browse files
authored
side navigation hide improvement (#130)
* improves styling when `navigation.side.hide` is enabled. instead of leaving an empty column in a two column layout, switch to a one column layout so that page content can have full use of the space.
1 parent 4065761 commit 7d88d64

File tree

8 files changed

+51
-26
lines changed

8 files changed

+51
-26
lines changed

documentation/docs/about/coverage-report/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ <h1>Coverage report:
4747
</form>
4848
<p class="text">
4949
<a class="nav" href="https://coverage.readthedocs.io/en/7.2.3">coverage.py v7.2.3</a>,
50-
created at 2023-04-15 03:31 +0000
50+
created at 2023-04-15 04:24 +0000
5151
</p>
5252
</div>
5353
</header>
@@ -158,7 +158,7 @@ <h1>Coverage report:
158158
<div class="content">
159159
<p>
160160
<a class="nav" href="https://coverage.readthedocs.io/en/7.2.3">coverage.py v7.2.3</a>,
161-
created at 2023-04-15 03:31 +0000
161+
created at 2023-04-15 04:24 +0000
162162
</p>
163163
</div>
164164
<aside class="hidden">

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "mkdocs-terminal",
3-
"version": "4.3.0",
3+
"version": "4.4.0",
44
"description": "Terminal.css theme for MkDocs",
55
"keywords": [
66
"mkdocs",

terminal/css/theme.css

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,6 @@ a.btn {
1616
text-decoration: none !important;
1717
}
1818

19-
/* grid for side nav and main content */
20-
.terminal-mkdocs-main-grid {
21-
display: grid;
22-
grid-column-gap: 1.4em;
23-
grid-template-columns: auto;
24-
grid-template-rows: auto;
25-
}
26-
27-
/* place main content to the right of side nav when screen wide enough for two columns */
28-
@media only screen and (min-width: 70em) {
29-
.terminal-mkdocs-main-grid {
30-
grid-template-columns: 4fr 9fr;
31-
}
32-
}
33-
3419
.terminal-mkdocs-side-nav-item--active {
3520
font-style: italic;
3621
}
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{%- set features = config.theme.features or [] -%}
2+
{%- if "navigation.side.hide" not in features -%}
23
<aside id="terminal-mkdocs-side-panel">
3-
{%- if "navigation.side.hide" not in features -%}
44
{%- block side_nav %}{% include "partials/side-nav/side-nav.html" %}{%- endblock side_nav %}
55
{%- block side_toc %}{% include "partials/side-panel/side-toc.html" %}{%- endblock side_toc %}
6-
{%- endif -%}
7-
</aside>
6+
</aside>
7+
{%- endif -%}

terminal/partials/styles.html

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,33 @@
88
<link href="{{ 'css/theme.css' | url }}" rel="stylesheet">
99
<link href="{{ 'css/theme.tile_grid.css' | url }}" rel="stylesheet">
1010
<link href="{{ 'css/theme.footer.css' | url }}" rel="stylesheet">
11-
<!-- {{ palette_name }} color palette-->
11+
<!-- {{ palette_name }} color palette -->
1212
<link href="{{ palette | url }}" rel="stylesheet">
13+
14+
<!-- page layout -->
15+
<style>
16+
/* initially set page layout to a one column grid */
17+
.terminal-mkdocs-main-grid {
18+
display: grid;
19+
grid-column-gap: 1.4em;
20+
grid-template-columns: auto;
21+
grid-template-rows: auto;
22+
}
23+
24+
{% if 'navigation.side.hide' not in features -%}
25+
/*
26+
* when side navigation is not hidden, use a two column grid.
27+
* if the screen is too narrow, fall back to the initial one column grid layout.
28+
* in this case the main content will be placed under the navigation panel.
29+
*/
30+
@media only screen and (min-width: 70em) {
31+
.terminal-mkdocs-main-grid {
32+
grid-template-columns: 4fr 9fr;
33+
}
34+
}
35+
{%- endif -%}
36+
</style>
37+
1338
{% if 'navigation.top.cursor_animation.hide' in features -%}
1439
<!-- cursor_animation override -->
1540
<style>
@@ -18,6 +43,7 @@
1843
}
1944
</style>
2045
{%- endif -%}
46+
2147
{% if 'style.links.underline.hide' in features -%}
2248
<!-- link underline override -->
2349
<style>

terminal/theme_version.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<meta name="generator" content="mkdocs-{{ mkdocs_version }}, mkdocs-terminal-4.3.0">
1+
<meta name="generator" content="mkdocs-{{ mkdocs_version }}, mkdocs-terminal-4.4.0">

tests/side_panel/test_side_panel.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,11 @@ def side_panel_partial(env_with_terminal_loader):
3939

4040

4141
class TestSidePanel():
42-
def test_no_panel_content_when_theme_feature_enabled(self, side_panel_partial, enabled_context):
43-
enabled_context["config"]["theme"]["features"] = [theme_features.HIDE_SIDE_NAV, theme_features.HIDE_SIDE_TOC]
42+
def test_no_panel_element_when_hide_feature_enabled(self, side_panel_partial, enabled_context):
43+
enabled_context["config"]["theme"]["features"] = [theme_features.HIDE_SIDE_NAV]
4444
context_data = enabled_context
4545
rendered_side_panel = side_panel_partial.render(context_data)
46-
assert "<aside id=\"terminal-mkdocs-side-panel\"></aside>" in rendered_side_panel
46+
assert rendered_side_panel.strip() == ""
4747
assert_valid_html(rendered_side_panel, ALLOW_EMPTY_ELEMENTS)
4848

4949
def test_that_visual_break_between_side_nav_and_side_toc(self, side_panel_partial, enabled_context):

tests/test_style.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,3 +68,17 @@ def test_that_override_css_added_when_link_underline_is_hidden(self, styles_part
6868
rendered_styles = styles_partial.render(context_data)
6969
assert "#terminal-mkdocs-main-content a:not(.headerlink)" in rendered_styles
7070
assert_valid_html(rendered_styles)
71+
72+
def test_that_main_grid_has_two_columns_by_default(self, styles_partial, enabled_context):
73+
rendered_styles = styles_partial.render(enabled_context)
74+
assert "grid-template-columns: auto;" in rendered_styles
75+
assert "grid-template-columns: 4fr 9fr;" in rendered_styles
76+
assert_valid_html(rendered_styles)
77+
78+
def test_that_main_grid_is_one_column_when_side_nav_is_hidden(self, styles_partial, enabled_context):
79+
enabled_context["config"]["theme"]["features"] = [theme_features.HIDE_SIDE_NAV]
80+
context_data = enabled_context
81+
rendered_styles = styles_partial.render(context_data)
82+
assert "grid-template-columns: auto;" in rendered_styles
83+
assert "grid-template-columns: 4fr 9fr;" not in rendered_styles
84+
assert_valid_html(rendered_styles)

0 commit comments

Comments
 (0)