Skip to content
This repository was archived by the owner on Dec 18, 2024. It is now read-only.

Commit 16f8fa2

Browse files
alexwolfe-tpjelbourn
authored andcommitted
Add styles for component-viewer sidenav (#34)
* basic styles and structure for sidenav * theming for sidenav * Move sidenav styles to separate files, some refactoring * Remove leftover comment * Re-add "./" to theme mixin import
1 parent 592d8ec commit 16f8fa2

File tree

7 files changed

+110
-15
lines changed

7 files changed

+110
-15
lines changed

src/_app-theme.scss

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
@import '~@angular/material/core/theming/theming';
22
@import './app/pages/homepage/homepage-theme';
3+
@import './app/pages/component-viewer/component-viewer-sidenav-theme';
34
@import './app/shared/navbar/navbar-theme';
45

56
// Styles for the docs app that are based on the current theme.
@@ -15,5 +16,6 @@
1516
}
1617

1718
@include nav-bar-theme($theme);
19+
@include component-viewer-sidenav-theme($theme);
1820
@include home-page-theme($theme);
1921
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
@import '~@angular/material/core/theming/theming';
2+
3+
@mixin component-viewer-sidenav-theme($theme) {
4+
$primary: map-get($theme, primary);
5+
$accent: map-get($theme, accent);
6+
$warn: map-get($theme, warn);
7+
$background: map-get($theme, background);
8+
$foreground: map-get($theme, foreground);
9+
$sidenav: '.docs-component-viewer-sidenav';
10+
11+
12+
.docs-component-viewer-sidenav {
13+
background: rgba(md-color($foreground, secondary-text), .04);
14+
15+
16+
// Section divider
17+
h3 {
18+
background: rgba(md-color($foreground, secondary-text), .32);
19+
color: md-color($primary, default-contrast);
20+
}
21+
22+
// Sidenav navigation items
23+
li {
24+
border-color: rgba(md-color($foreground, secondary-text), .06);
25+
color: md-color($foreground, secondary-text);
26+
27+
> a {
28+
color: md-color($foreground, secondary-text);
29+
30+
&.is-selected,
31+
&:hover,
32+
&:focus {
33+
background: md-color($background, background);
34+
color: md-color($primary);
35+
}
36+
}
37+
}
38+
}
39+
}
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
$sidenav-spacing-unit: 8px;
2+
$sidenav-width: 240px;
3+
4+
.docs-component-viewer-sidenav {
5+
box-shadow: 3px 0 6px rgba(0, 0, 0, .24);
6+
padding-bottom: 72px;
7+
width: $sidenav-width;
8+
bottom: 0;
9+
overflow: auto;
10+
11+
&.md-sidenav-opened {
12+
box-shadow: 3px 0 6px rgba(0, 0, 0, .24);
13+
}
14+
15+
// Section divider
16+
h3 {
17+
border: none;
18+
font-size: 10px;
19+
letter-spacing: 1px;
20+
line-height: $sidenav-spacing-unit * 3;
21+
text-transform: uppercase;
22+
font-weight: 400;
23+
margin: 0;
24+
padding: 0 ($sidenav-spacing-unit * 2);
25+
}
26+
27+
ul {
28+
list-style-type: none;
29+
margin: 0;
30+
padding: 0;
31+
}
32+
33+
// Sidenav navigation item
34+
li {
35+
border-bottom-width: 1px;
36+
border-bottom-style: solid;
37+
margin: 0;
38+
padding: 0;
39+
40+
41+
// Hide the border on the last item
42+
&:last-child {
43+
border-color: transparent;
44+
}
45+
46+
> a {
47+
box-sizing: border-box;
48+
display: block;
49+
font-size: 14px;
50+
font-weight: 400;
51+
line-height: ($sidenav-spacing-unit * 6) - 1;
52+
text-decoration: none;
53+
transition: all .3s;
54+
padding: 0 ($sidenav-spacing-unit * 2);
55+
position: relative;
56+
57+
&.docs-component-viewer-sidenav-item-selected {
58+
font-weight: 600;
59+
}
60+
}
61+
}
62+
}

src/app/pages/component-viewer/component-viewer.html

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
<md-sidenav-layout>
22
<md-sidenav opened mode="side" class="docs-component-viewer-sidenav">
3-
<div *ngFor="let category of docItems.getItemsInCategories()">
4-
<div>{{category.name}}</div>
3+
<nav *ngFor="let category of docItems.getItemsInCategories()">
4+
<h3>{{category.name}}</h3>
55
<ul>
66
<li *ngFor="let component of category.items">
7-
<a [routerLink]="['/component/', component.id]">
7+
<a [routerLink]="['/component/', component.id]"
8+
routerLinkActive="docs-component-viewer-sidenav-item-selected">
89
{{component.name}}
910
</a>
1011
</li>
1112
</ul>
12-
</div>
13+
</nav>
1314
</md-sidenav>
1415

1516
<h1 class="docs-component-viewer-header"> {{componentDocItem.name}} </h1>

src/app/pages/component-viewer/component-viewer.scss

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,3 @@
1-
.docs-component-viewer-sidenav {
2-
&.md-sidenav-opened {
3-
box-shadow: none;
4-
}
5-
6-
border-right: 1px solid black;
7-
width: 300px;
8-
margin: 20px;
9-
}
10-
111
.docs-component-viewer-header {
122
margin: 50px;
133
}

src/app/pages/component-viewer/component-viewer.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import {DocumentationItems, DocItem} from '../../shared/documentation-items/docu
66
@Component({
77
selector: 'app-components',
88
templateUrl: './component-viewer.html',
9-
styleUrls: ['./component-viewer.scss'],
9+
styleUrls: ['./component-viewer.scss', './component-viewer-sidenav.scss'],
1010
encapsulation: ViewEncapsulation.None,
1111
})
1212
export class ComponentViewer {

src/main.scss

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
// Include material core styles.
66
@include md-core();
77

8+
89
// Define the light theme.
910
$primary: md-palette($md-cyan);
1011
$accent: md-palette($md-amber, A200, A100, A400);

0 commit comments

Comments
 (0)