diff --git a/src/demo-app/button/button-demo.scss b/src/demo-app/button/button-demo.scss index 9cb6349e0ef8..d577ca66b0e5 100644 --- a/src/demo-app/button/button-demo.scss +++ b/src/demo-app/button/button-demo.scss @@ -8,7 +8,6 @@ section { display: flex; align-items: center; - background-color: #f7f7f7; margin: 8px; } diff --git a/src/demo-app/demo-app/demo-app-theme.scss b/src/demo-app/demo-app/demo-app-theme.scss new file mode 100644 index 000000000000..335c4fc30f8f --- /dev/null +++ b/src/demo-app/demo-app/demo-app-theme.scss @@ -0,0 +1,16 @@ +@import '@angular/material/core/theming/all-theme'; + +// Include core material styles. +@include mat-core(); + +$primary: mat-palette($mat-indigo); +$accent: mat-palette($mat-pink); + +$light-theme: mat-light-theme($primary, $accent); +$dark-theme: mat-dark-theme($primary, $accent); + +@include angular-material-theme($light-theme); + +.demo-dark-theme { + @include angular-material-theme($dark-theme); +} diff --git a/src/demo-app/demo-app/demo-app.html b/src/demo-app/demo-app/demo-app.html index fe1fab9478cc..05059fbead36 100644 --- a/src/demo-app/demo-app/demo-app.html +++ b/src/demo-app/demo-app/demo-app.html @@ -1,41 +1,46 @@ - - - - - {{navItem.name}} - + +
+ + + + + {{navItem.name}} + -
+
- - Baseline - -
- -
-
- - -
-

Angular Material Demos

- + +
+ + - -
- +
+

Angular Material Demos

+ + + + +
+ -
- +
+ +
-
- + +
diff --git a/src/demo-app/demo-app/demo-app.scss b/src/demo-app/demo-app/demo-app.scss index ee4512261ed3..e9aa59c35ba1 100644 --- a/src/demo-app/demo-app/demo-app.scss +++ b/src/demo-app/demo-app/demo-app.scss @@ -31,7 +31,6 @@ body { .demo-toolbar { display: flex; - justify-content: space-between; width: 100%; } } @@ -41,6 +40,11 @@ body { } } +// Fills remaining flex space. +.demo-flex-fill { + flex: 1 1 auto; +} + // stretch to screen size in fullscreen mode .demo-content { width: 100%; diff --git a/src/demo-app/demo-app/demo-app.ts b/src/demo-app/demo-app/demo-app.ts index 746a18056915..fa47fcb43c7a 100644 --- a/src/demo-app/demo-app/demo-app.ts +++ b/src/demo-app/demo-app/demo-app.ts @@ -15,10 +15,14 @@ export class Home {} selector: 'demo-app', providers: [], templateUrl: 'demo-app.html', - styleUrls: ['demo-app.css'], + styleUrls: ['demo-app.css', 'demo-app-theme.css'], encapsulation: ViewEncapsulation.None, }) export class DemoApp { + + /** Whether the demo-app should use a dark theme or not. */ + isDarkTheme: boolean = false; + navItems = [ {name: 'Autocomplete', route: 'autocomplete'}, {name: 'Button', route: 'button'}, diff --git a/src/demo-app/index.html b/src/demo-app/index.html index 3099472c8633..574095f01c79 100644 --- a/src/demo-app/index.html +++ b/src/demo-app/index.html @@ -8,7 +8,6 @@ - diff --git a/src/demo-app/list/list-demo.html b/src/demo-app/list/list-demo.html index 5cb977fb51e9..312cce6f7d53 100644 --- a/src/demo-app/list/list-demo.html +++ b/src/demo-app/list/list-demo.html @@ -3,7 +3,7 @@

md-list demo

-
+

Normal lists

diff --git a/src/demo-app/list/list-demo.scss b/src/demo-app/list/list-demo.scss index bcf8a770c381..950dc9869007 100644 --- a/src/demo-app/list/list-demo.scss +++ b/src/demo-app/list/list-demo.scss @@ -1,5 +1,4 @@ - -.demo { +.list-demo { display: flex; flex-flow: row wrap; @@ -9,20 +8,32 @@ margin: 20px 20px 0 0; } + h2 { margin-top: 20px; } +} + +/* Theme for the list-item demo elements. */ +@mixin demo-list-item-theme($dark: false) { + $base-color: if($dark, white, black); - .mat-icon { - color: rgba(0, 0, 0, 0.12); + .list-demo .mat-icon { + color: rgba($base-color, 0.12); } - .mat-list-icon { + .list-demo .mat-list-icon { color: white; - background: rgba(0, 0, 0, 0.3); + background: rgba($base-color, 0.3); + } + + .list-demo .demo-secondary-text { + color: rgba($base-color, 0.54); } } -.demo-secondary-text { - color: rgba(0, 0, 0, 0.54); +@include demo-list-item-theme(false); + +.demo-dark-theme { + @include demo-list-item-theme(true); } diff --git a/src/demo-app/list/list-demo.ts b/src/demo-app/list/list-demo.ts index 73ed3ceee7b6..be402e9c5ec6 100644 --- a/src/demo-app/list/list-demo.ts +++ b/src/demo-app/list/list-demo.ts @@ -1,4 +1,4 @@ -import {Component} from '@angular/core'; +import {Component, ViewEncapsulation} from '@angular/core'; @Component({ @@ -6,6 +6,7 @@ import {Component} from '@angular/core'; selector: 'list-demo', templateUrl: 'list-demo.html', styleUrls: ['list-demo.css'], + encapsulation: ViewEncapsulation.None }) export class ListDemo { items: string[] = [ diff --git a/src/demo-app/radio/radio-demo.scss b/src/demo-app/radio/radio-demo.scss index 9a37d4da430a..ee738628af6a 100644 --- a/src/demo-app/radio/radio-demo.scss +++ b/src/demo-app/radio/radio-demo.scss @@ -4,7 +4,6 @@ } .demo-section { - background-color: #f7f7f7; margin: 8px; padding: 16px; diff --git a/src/demo-app/tabs/tabs-demo.scss b/src/demo-app/tabs/tabs-demo.scss index d10e259e7e5e..f1ade3b04fcd 100644 --- a/src/demo-app/tabs/tabs-demo.scss +++ b/src/demo-app/tabs/tabs-demo.scss @@ -1,9 +1,6 @@ .demo-nav-bar { border: 1px solid #e0e0e0; margin-bottom: 40px; - .mat-tab-nav-bar { - background: #f9f9f9; - } sunny-routed-content, rainy-routed-content, foggy-routed-content { @@ -15,9 +12,6 @@ .demo-tab-group { border: 1px solid #e0e0e0; margin-bottom: 40px; - .mat-tab-header { - background: #f9f9f9; - } .mat-tab-body-content { padding: 12px; } diff --git a/tools/gulp/constants.ts b/tools/gulp/constants.ts index b2811415da31..925a17e9a033 100644 --- a/tools/gulp/constants.ts +++ b/tools/gulp/constants.ts @@ -17,6 +17,10 @@ export const SASS_AUTOPREFIXER_OPTIONS = { cascade: false, }; +export const SASS_PREPROCESSOR_OPTIONS = { + includePaths: [DIST_ROOT] +}; + export const HTML_MINIFIER_OPTIONS = { collapseWhitespace: true, removeComments: true, diff --git a/tools/gulp/task_helpers.ts b/tools/gulp/task_helpers.ts index 68f9f8e24b79..d4a46412ed71 100644 --- a/tools/gulp/task_helpers.ts +++ b/tools/gulp/task_helpers.ts @@ -2,7 +2,10 @@ import * as child_process from 'child_process'; import * as fs from 'fs'; import * as gulp from 'gulp'; import * as path from 'path'; -import {NPM_VENDOR_FILES, PROJECT_ROOT, DIST_ROOT, SASS_AUTOPREFIXER_OPTIONS} from './constants'; +import { + NPM_VENDOR_FILES, PROJECT_ROOT, DIST_ROOT, SASS_AUTOPREFIXER_OPTIONS, + SASS_PREPROCESSOR_OPTIONS +} from './constants'; /** Those imports lack typings. */ @@ -44,7 +47,7 @@ export function sassBuildTask(dest: string, root: string) { return () => { return gulp.src(_globify(root, '**/*.scss')) .pipe(gulpSourcemaps.init()) - .pipe(gulpSass().on('error', gulpSass.logError)) + .pipe(gulpSass(SASS_PREPROCESSOR_OPTIONS).on('error', gulpSass.logError)) .pipe(gulpAutoprefixer(SASS_AUTOPREFIXER_OPTIONS)) .pipe(gulpSourcemaps.write('.')) .pipe(gulp.dest(dest)); diff --git a/tools/gulp/tasks/aot.ts b/tools/gulp/tasks/aot.ts index 073535532435..334524eac4b8 100644 --- a/tools/gulp/tasks/aot.ts +++ b/tools/gulp/tasks/aot.ts @@ -12,7 +12,7 @@ task('aot:copy', [':build:devapp:scss', ':build:devapp:assets']); */ task('aot:prepare', sequenceTask( 'clean', - ['aot:copy', 'build:components:release', ':build:components:ngc']) + ['build:components:release', 'aot:copy', ':build:components:ngc']) ); /** Builds the demo-app with the Angular compiler to verify that all components work. */ diff --git a/tools/gulp/tasks/development.ts b/tools/gulp/tasks/development.ts index 846d4eecd257..2da68e739b4a 100644 --- a/tools/gulp/tasks/development.ts +++ b/tools/gulp/tasks/development.ts @@ -20,7 +20,7 @@ task(':watch:devapp', () => { task(':build:devapp:vendor', vendorTask()); task(':build:devapp:ts', tsBuildTask(appDir)); -task(':build:devapp:scss', sassBuildTask(outDir, appDir)); +task(':build:devapp:scss', [':build:components:scss'], sassBuildTask(outDir, appDir)); task(':build:devapp:assets', copyTask(appDir, outDir)); task('build:devapp', buildAppTask('devapp'));