diff --git a/package.json b/package.json
index 358669fdba23..4c1781cbc407 100644
--- a/package.json
+++ b/package.json
@@ -5,7 +5,6 @@
"angular-cli": {},
"scripts": {
"start": "npm run build-themes && ng serve --aot --sourcemaps=false",
- "start-jit": "npm run build-themes && ng serve --sourcemaps=false",
"lint": "tslint \"src/**/*.ts\"",
"test": "ng test",
"pree2e": "webdriver-manager update",
diff --git a/src/app/pages/component-sidenav/_component-sidenav-theme.scss b/src/app/pages/component-sidenav/_component-sidenav-theme.scss
index 8007d70a2337..fe4e01adba97 100644
--- a/src/app/pages/component-sidenav/_component-sidenav-theme.scss
+++ b/src/app/pages/component-sidenav/_component-sidenav-theme.scss
@@ -1,49 +1,36 @@
@import '../../../../node_modules/@angular/material/theming';
-@import '../../../styles/constants';
@mixin component-viewer-sidenav-theme($theme) {
$primary: map-get($theme, primary);
+ $accent: map-get($theme, accent);
+ $warn: map-get($theme, warn);
$background: map-get($theme, background);
$foreground: map-get($theme, foreground);
- $is-dark-theme: map-get($theme, is-dark);
- $nav-background-opacity: if($is-dark-theme, 0.2, 0.03);
+ $sidenav: '.docs-component-viewer-sidenav';
- .docs-component-viewer-nav-content {
- background: rgba(0, 0, 0, $nav-background-opacity);
- &::-webkit-scrollbar-thumb {
- background: rgba(0, 0, 0, .26);
- }
-
- button {
- color: rgba(mat-color($foreground, text), .5);
- }
+ .docs-component-viewer-sidenav {
- hr {
- border: none;
- border-top: solid 1px rgba(mat-color($foreground, secondary-text), .1)
+ // Section divider
+ h3 {
+ background: rgba(mat-color($foreground, secondary-text), .32);
+ color: mat-color($primary, default-contrast);
}
- a {
+ // Sidenav navigation items
+ li {
+ border-color: rgba(mat-color($foreground, secondary-text), .06);
color: mat-color($foreground, secondary-text);
- &.docs-component-viewer-sidenav-item-selected,
- &:hover {
- color: mat-color($primary);
- }
- }
- }
-
- @media (max-width: $small-breakpoint-width) {
- .docs-component-viewer-sidenav {
- .docs-component-viewer-nav-content {
- background: none;
- }
- }
+ > a {
+ color: mat-color($foreground, secondary-text);
- .mat-drawer {
- &::-webkit-scrollbar-thumb {
- background: rgba(0, 0, 0, .26);
+ &.is-selected,
+ &:hover,
+ &:focus {
+ background: mat-color($background, background);
+ color: mat-color($primary);
+ }
}
}
}
diff --git a/src/app/pages/component-sidenav/component-nav.html b/src/app/pages/component-sidenav/component-nav.html
deleted file mode 100644
index 5db30f6bdc66..000000000000
--- a/src/app/pages/component-sidenav/component-nav.html
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/src/app/pages/component-sidenav/component-sidenav.html b/src/app/pages/component-sidenav/component-sidenav.html
index 630ad5592aac..5aacd122f275 100644
--- a/src/app/pages/component-sidenav/component-sidenav.html
+++ b/src/app/pages/component-sidenav/component-sidenav.html
@@ -1,23 +1,23 @@
-
-
+
+
-
\ No newline at end of file
+
diff --git a/src/app/pages/component-sidenav/component-sidenav.scss b/src/app/pages/component-sidenav/component-sidenav.scss
index 3e10381e294a..ee2e517cbcd5 100644
--- a/src/app/pages/component-sidenav/component-sidenav.scss
+++ b/src/app/pages/component-sidenav/component-sidenav.scss
@@ -1,149 +1,88 @@
-@import '../../../styles/constants';
-
+$sidenav-spacing-unit: 8px;
$sidenav-width: 240px;
+app-component-sidenav {
+ display: flex;
+}
+
.docs-component-viewer-sidenav-container {
- box-sizing: border-box;
+ width: 100%;
+
+ .mat-drawer-content {
+ position: absolute;
+ right: 0;
+ left: 0;
+ }
}
.docs-component-viewer-sidenav {
+ box-shadow: 3px 0 6px rgba(0, 0, 0, .24);
+ padding-bottom: 72px;
+ width: $sidenav-width;
+ bottom: 0;
overflow: auto;
-}
+ height: 100%;
-.docs-component-sidenav-inner-content {
- display: flex;
- flex-direction: row;
+ &.mat-sidenav-opened {
+ box-shadow: 3px 0 6px rgba(0, 0, 0, .24);
+ }
- // The rule will match the element following the router-outlet which will be the routed component.
- router-outlet + * {
- flex-grow: 1;
+ // Section divider
+ h3 {
+ border: none;
+ font-size: 10px;
+ letter-spacing: 1px;
+ line-height: $sidenav-spacing-unit * 3;
+ text-transform: uppercase;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($sidenav-spacing-unit * 2);
}
-}
-.mat-drawer {
- &::-webkit-scrollbar {
- height: 4px;
- width: 4px;
+ ul {
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
}
-}
-.docs-component-viewer-nav {
- position: sticky;
- top: 25px;
+ // Sidenav navigation item
+ li {
+ border-bottom-width: 1px;
+ border-bottom-style: solid;
+ margin: 0;
+ padding: 0;
- .docs-component-viewer-nav-content {
- margin: 25px;
- width: $sidenav-width;
- max-height: 75vh;
- overflow: auto;
- &::-webkit-scrollbar {
- height: 4px;
- width: 4px;
+ // Hide the border on the last item
+ &:last-child {
+ border-color: transparent;
}
- button {
- padding: 10px 15px;
- font-weight: 700;
- line-height: 16px;
- margin: 0;
- font-size: 13px;
- cursor: pointer;
- position: relative;
+ > a {
+ box-sizing: border-box;
display: block;
- width: 100%;
- text-align: left;
- background: none;
- border: none;
-
- &:focus {
- outline: none;
- }
+ font-size: 14px;
+ font-weight: 400;
+ line-height: ($sidenav-spacing-unit * 6) - 1;
+ text-decoration: none;
+ transition: all .3s;
+ padding: 0 ($sidenav-spacing-unit * 2);
+ position: relative;
- .mat-icon {
- position: absolute;
- right: 5px;
- font-size: 18px;
+ &.docs-component-viewer-sidenav-item-selected {
+ font-weight: 600;
}
}
-
- hr {
- padding: 0;
- margin: 0;
- }
-
- ul {
- list-style-type: none;
- margin: -5px 0 5px 0;
- padding: 0;
- overflow: hidden;
- }
-
- li {
- font-size: 13px;
- line-height: 16px;
- margin: 0;
- padding: 5px 15px 5px 20px;
- }
-
- a {
- display: block;
- text-decoration: none;
- }
}
}
.docs-component-sidenav-content {
+ min-height: 100%;
display: flex;
flex-direction: column;
-}
-
-// Add specific rule to prevent default rule conflict
-.docs-component-viewer-sidenav-container.mat-drawer-container{
- display: block;
- overflow: hidden;
- position: absolute;
- // Offset the top by the toolbar height
- top: 50px;
- bottom: 0;
- left: 0;
- right: 0;
-}
-
-.docs-component-sidenav-inner-content {
- display: flex;
- flex-direction: column;
-}
-
-.docs-component-sidenav-body-content {
- display: flex;
- // footer should always reside at the bottom of the screen.
- // if container not 100vh, push min height to that minus
- // the offset of the top bar and the footer height
- min-height: calc(100vh - 264px);
-}
-
-@media (max-width: $small-breakpoint-width) {
- // Add specific rule to prevent default rule conflict
- .docs-component-viewer-sidenav-container .docs-component-viewer-sidenav {
- // offset the top by the header + tabs on a small screen
- top: 42px;
- }
-
- .mat-sidenav-content {
- // offset the top by the header + tabs on a small screen
- margin-top: 42px;
- }
-
- .docs-component-viewer-nav {
- position: relative;
- top: 0;
- .docs-component-viewer-nav-content {
- box-sizing: border-box;
- margin: 0;
- max-height: initial;
- box-sizing: border-box;
- }
+ // The rule will match the element following the router-outlet which will be the routed component.
+ router-outlet + * {
+ flex-grow: 1;
}
}
diff --git a/src/app/pages/component-sidenav/component-sidenav.ts b/src/app/pages/component-sidenav/component-sidenav.ts
index ff7ebb6183d5..a2fa5478f8bf 100644
--- a/src/app/pages/component-sidenav/component-sidenav.ts
+++ b/src/app/pages/component-sidenav/component-sidenav.ts
@@ -1,18 +1,12 @@
-import {
- Component, Input, NgZone, ViewEncapsulation, ViewChild, OnInit, NgModule, trigger, state,
- animate, transition, style, OnDestroy
-} from '@angular/core';
+import {Component, NgZone, ViewEncapsulation, ViewChild, OnInit, NgModule} from '@angular/core';
import {DocumentationItems} from '../../shared/documentation-items/documentation-items';
-import {MatSidenav, MatSidenavModule, MatIconModule} from '@angular/material';
+import {MatSidenav, MatSidenavModule} from '@angular/material';
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
import {ActivatedRoute, Params, Router, RouterModule} from '@angular/router';
import {CommonModule} from '@angular/common';
import {ComponentHeaderModule} from '../component-page-header/component-page-header';
import {FooterModule} from '../../shared/footer/footer';
import {Observable} from 'rxjs/Observable';
-import {Subject} from 'rxjs/Subject';
-import 'rxjs/add/operator/switchMap';
-import 'rxjs/add/operator/takeUntil';
const SMALL_WIDTH_BREAKPOINT = 840;
@@ -43,11 +37,10 @@ export class ComponentSidenav implements OnInit {
this.sidenav.close();
}
});
-
// Combine params from all of the path into a single object.
this.params = Observable.combineLatest(
- this._route.pathFromRoot.map(route => route.params),
- Object.assign);
+ this._route.pathFromRoot.map(route => route.params),
+ Object.assign);
}
isScreenSmall(): boolean {
@@ -55,75 +48,6 @@ export class ComponentSidenav implements OnInit {
}
}
-@Component({
- selector: 'app-component-nav',
- templateUrl: './component-nav.html',
- animations: [
- trigger('bodyExpansion', [
- state('collapsed', style({height: '0px', visibility: 'hidden'})),
- state('expanded', style({height: '*', visibility: 'visible'})),
- transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4,0.0,0.2,1)')),
- ]),
- ],
-})
-export class ComponentNav implements OnInit, OnDestroy {
-
- @Input() params: Observable;
- expansions = {};
- private _onDestroy = new Subject();
-
- constructor(public docItems: DocumentationItems,
- private _router: Router) { }
-
- ngOnInit() {
- this._router.events
- .startWith(null)
- .switchMap(() => this.params)
- .takeUntil(this._onDestroy)
- .subscribe(p => this.setExpansions(p));
- }
-
- ngOnDestroy() {
- this._onDestroy.next();
- this._onDestroy.complete();
- }
-
- /** Set the expansions based on the route url */
- setExpansions(params: Params) {
- const categories = this.docItems.getCategories(params.section);
- for (const category of categories) {
- if (this.expansions[category.id] === true) {
- continue;
- }
-
- let match = false;
- for (const item of category.items) {
- if (this._router.url.indexOf(item.id) > -1) {
- match = true;
- break;
- }
- }
- this.expansions[category.id] = match;
- }
- }
-
- /** Gets the expanded state */
- _getExpandedState(category: string) {
- return this.getExpanded(category) ? 'expanded' : 'collapsed';
- }
-
- /** Toggles the expanded state */
- toggleExpand(category: string) {
- this.expansions[category] = !this.expansions[category];
- }
-
- /** Gets whether expanded or not */
- getExpanded(category: string): boolean {
- return this.expansions[category];
- }
-
-}
-
@NgModule({
imports: [
@@ -132,11 +56,10 @@ export class ComponentNav implements OnInit, OnDestroy {
CommonModule,
ComponentHeaderModule,
FooterModule,
- BrowserAnimationsModule,
- MatIconModule,
+ BrowserAnimationsModule
],
exports: [ComponentSidenav],
- declarations: [ComponentSidenav, ComponentNav],
+ declarations: [ComponentSidenav],
providers: [DocumentationItems],
})
export class ComponentSidenavModule {}
diff --git a/src/app/pages/component-viewer/component-viewer.scss b/src/app/pages/component-viewer/component-viewer.scss
index 301fa3289477..86897adc225b 100644
--- a/src/app/pages/component-viewer/component-viewer.scss
+++ b/src/app/pages/component-viewer/component-viewer.scss
@@ -2,9 +2,7 @@
app-component-viewer {
font-weight: 400;
-
- // spacing for the component viewer
- padding: 20px 50px 50px 20px;
+ padding: 20px $content-padding-side 50px;
@media ($mat-xsmall) {
padding-left: $content-padding-side-xs;
@@ -12,12 +10,17 @@ app-component-viewer {
}
}
+.docs-component-viewer {
+ margin: 0 auto;
+ max-width: 940px;
+}
+
.docs-component-viewer-section-tab {
text-transform: uppercase;
}
.docs-component-viewer-tabbed-content {
- margin-bottom: 25px;
+ margin-bottom: 50px;
}
.docs-component-viewer-content {
@@ -41,6 +44,7 @@ app-component-viewer {
.docs-component-overview {
width: 80%;
+ margin-right: 20px;
@media (max-width: $small-breakpoint-width) {
width: 100%;
diff --git a/src/app/shared/table-of-contents/_table-of-contents-theme.scss b/src/app/shared/table-of-contents/_table-of-contents-theme.scss
index efedf7f81b62..454c12ca7b7e 100644
--- a/src/app/shared/table-of-contents/_table-of-contents-theme.scss
+++ b/src/app/shared/table-of-contents/_table-of-contents-theme.scss
@@ -10,7 +10,6 @@
.docs-link {
color: mat-color($foreground, secondary-text);
- transition: color 100ms;
&:hover,
&.docs-active {
diff --git a/src/app/shared/table-of-contents/table-of-contents.scss b/src/app/shared/table-of-contents/table-of-contents.scss
index 03cd881e59bc..58c745b6be71 100644
--- a/src/app/shared/table-of-contents/table-of-contents.scss
+++ b/src/app/shared/table-of-contents/table-of-contents.scss
@@ -1,15 +1,12 @@
:host {
font-size: 13px;
- // Width is container width minus content width
- width: 19%;
+ width: 15%;
position: sticky;
top: 0;
- padding-left: 25px;
- box-sizing: border-box;
}
.docs-toc-container {
- padding: 5px 0 10px 10px;
+ padding: 5px 0 10px 12px;
}
.docs-toc-heading {
diff --git a/src/index.html b/src/index.html
index 082c4d2eee0e..906843f28c75 100644
--- a/src/index.html
+++ b/src/index.html
@@ -16,7 +16,7 @@
sizes="192x192">
-
+