Skip to content

Commit 1d3c827

Browse files
committed
feat: add single SCSS entrypoint
1 parent f018e82 commit 1d3c827

File tree

6 files changed

+82
-87
lines changed

6 files changed

+82
-87
lines changed

README.md

Lines changed: 35 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@ You want to style your angular material dynamically with all the colors in the r
99
```bash
1010
npm i angular-material-css-vars -S
1111
```
12-
2. If @angular/material is already configured remove `@import '@angular/material/theming';` from your main stylesheet file if present.
12+
2. If @angular/material is already configured remove `@include mat.core()` from your main stylesheet file if present.
1313
3. Add this to your main stylesheet instead:
1414
```scss
15-
@use 'angular-material-css-vars/main' as mat-css;
15+
@use 'angular-material-css-vars' as mat-css-vars;
1616
1717
// init theme
18-
@include mat-css.init-material-css-vars(
18+
@include mat-css-vars.init-material-css-vars(
1919
// optional
2020
$dark-theme-selector: '.isDarkTheme',
2121
$light-theme-selector: '.isLightTheme',
@@ -69,18 +69,18 @@ export class AppModule {
6969
## Utility
7070
There are also several [utility functions and mixins](https://github.com/johannesjo/angular-material-css-vars/blob/master/projects/material-css-vars/src/lib/_public-util.scss).
7171
```scss
72-
@use 'angular-material-css-vars/public-util' as mat-css-utilities;
72+
@use 'angular-material-css-vars' as mat-css-vars;
7373
7474
.with-color {
75-
border-color: mat-css-utilities.mat-css-color-primary(300);
75+
border-color: mat-css-vars.mat-css-color-primary(300);
7676
}
7777
7878
.color-and-contrast {
79-
@include mat-css-utilities.mat-css-color-and-contrast(300);
79+
@include mat-css-vars.mat-css-color-and-contrast(300);
8080
}
8181
8282
.with-bg {
83-
@include mat-css-utilities.mat-css-bg(300);
83+
@include mat-css-vars.mat-css-bg(300);
8484
}
8585
```
8686
@@ -90,10 +90,10 @@ There are also [some additional hacks](additional-hacks.md) (e.g. adding a color
9090
You can provide different options before initialization to change the body class used for the dark theme and to provide different default styles:
9191
```scss
9292
...
93-
@use 'angular-material-css-vars/main' as mat-css;
93+
@use 'angular-material-css-vars' as mat-css-vars;
9494
...
9595
96-
@include mat-css.init-material-css-vars(
96+
@include mat-css-vars.init-material-css-vars(
9797
// $default-light-theme: ... ;
9898
// $text: ... ;
9999
$dark-theme-selector: '.isDarkTheme',
@@ -103,16 +103,15 @@ You can provide different options before initialization to change the body class
103103
```
104104
To make those variables take effect with your mixins, you need to make sure that they are also defined before using them. E.g.:
105105
```scss
106-
@use 'angular-material-css-vars/main' as mat-css;
107-
@use 'angular-material-css-vars/public-util' as mat-css-utilities;
106+
@use 'angular-material-css-vars' as mat-css-vars;
108107
109-
@include mat-css.init-material-css-vars(
108+
@include mat-css-vars.init-material-css-vars(
110109
// probably best put in a common variables file and imported before the mixins
111110
$dark-theme-selector: '.isDarkTheme',
112111
);
113112
114113
.my-component {
115-
@include mat-css-utilities.mat-css-dark-theme {
114+
@include mat-css-vars.mat-css-dark-theme {
116115
// dark theme styles ...
117116
}
118117
}
@@ -125,51 +124,45 @@ A full list of the theme map [can be found here](https://github.com/johannesjo/a
125124
### Set default (fallback palettes)
126125
There are two ways to set the default fallback theme. One is using the `mat-css-palette-defaults` mixin.
127126
```scss
128-
@use 'angular-material-css-vars/public-util' as mat-css-utilities;
129-
@use 'angular-material-css-vars/main' as mat-css-main;
130-
@use '@angular/material/theming' as mat-theming;
127+
@use 'angular-material-css-vars' as mat-css-vars;
128+
@use '@angular/material' as mat;
131129
132-
@include mat-css-main.init-material-css-vars();
130+
@include mat-css-vars.init-material-css-vars();
133131
134-
@include mat-css-utilities.mat-css-set-palette-defaults(mat-theming.$mat-light-blue, 'primary');
135-
@include mat-css-utilities.mat-css-set-palette-defaults(mat-theming.$mat-pink, 'accent');
136-
@include mat-css-utilities.mat-css-set-palette-defaults(mat-theming.$mat-red, 'warn');
132+
@include mat-css-vars.mat-css-set-palette-defaults(mat.$light-blue-palette, 'primary');
133+
@include mat-css-vars.mat-css-set-palette-defaults(mat.$pink-palette, 'accent');
134+
@include mat-css-vars.mat-css-set-palette-defaults(mat.$red-palette, 'warn');
137135
```
138136
The other is to include your own variables for [$mat-css-default-light-theme](https://github.com/johannesjo/angular-material-css-vars/blob/master/projects/material-css-vars/src/lib/_variables.scss).
139137
```scss
140-
@use 'angular-material-css-vars/main' as mat-css-main;
141-
@use 'angular-material-css-vars/variables' as mat-css-vars;
142-
@use 'angular-material-css-vars/public-util' as mat-css-utilities;
138+
@use 'angular-material-css-vars' as mat-css-vars;
143139
144140
$mat-css-default-light-theme: map-merge(
145141
// if you don't want to enter ALL the properties
146-
mat-css-vars.$default-light-theme,
142+
mat-css-vars.$default-light-theme,
147143
(
148-
--palette-primary-50: mat-css-utilities.hex-to-rgb(#e1f5fe),
149-
--palette-primary-100: mat-css-utilities.hex-to-rgb(#b3e5fc),
150-
--palette-primary-200: mat-css-utilities.hex-to-rgb(#81d4fa),
151-
--palette-primary-300: mat-css-utilities.hex-to-rgb(#4fc3f7),
152-
--palette-primary-400: mat-css-utilities.hex-to-rgb(#29b6f6),
153-
--palette-primary-500: mat-css-utilities.hex-to-rgb(#03a9f4),
154-
// ...
144+
--palette-primary-50: mat-css-vars.hex-to-rgb(#e1f5fe),
145+
--palette-primary-100: mat-css-vars.hex-to-rgb(#b3e5fc),
146+
--palette-primary-200: mat-css-vars.hex-to-rgb(#81d4fa),
147+
--palette-primary-300: mat-css-vars.hex-to-rgb(#4fc3f7),
148+
--palette-primary-400: mat-css-vars.hex-to-rgb(#29b6f6),
149+
--palette-primary-500: mat-css-vars.hex-to-rgb(#03a9f4),
150+
// ...
155151
)
156152
);
157153
158-
@include mat-css-main.init-material-css-vars();
154+
@include mat-css-vars.init-material-css-vars();
159155
```
160156
161157
### Set global density
162158
To set the global density level, just pass the `$density` variable to the `init-material-css-vars()` mixin like the following:
163159
164160
```scss
165-
@use 'angular-material-css-vars/main' as mat-css-main;
161+
@use 'angular-material-css-vars' as mat-css-vars;
166162
167-
@include mat-css-main.init-material-css-vars($density: -2);
163+
@include mat-css-vars.init-material-css-vars($density: -2);
168164
```
169165
170-
## IE 11
171-
This lib won't work with IE11 but thanks to @Coly010 there is [a workaround for that too](https://github.com/johannesjo/angular-material-css-vars/issues/11#issuecomment-572749449).
172-
173166
## App Theme Mixins
174167
The `init-material-css-vars` mixin allows content to be passed into it. This allows you to create app themes that can take advantage of the dynamic theme created inside this mixin. It may be possible to do all theming using the utility mixins outlined above, but in other cases, you may need access to the theme palette, including foreground and background palettes.
175168
@@ -178,18 +171,17 @@ See the Material guide on [Theming your custom component](https://material.angul
178171
## Font config
179172
If needed the typography can be adjusted as well.
180173
```scss
181-
@use 'angular-material-css-vars/main' as mat-css-main;
174+
@use 'angular-material-css-vars' as mat-css-vars;
182175
@use '@angular/material' as mat;
183-
@use '@angular/material/theming' as mat-theming;
184176
185177
// example
186-
$custom-typography: mat.mat-typography-config(
178+
$custom-typography: mat.define-typography-config(
187179
$font-family: 'Roboto, monospace',
188-
$headline: mat-theming.mat-typography-level(32px, 48px, 700),
189-
$body-1: mat-theming.mat-typography-level(16px, 24px, 500)
180+
$headline: mat.define-typography-level(32px, 48px, 700),
181+
$body-1: mat.define-typography-level(16px, 24px, 500)
190182
);
191183
192-
@include mat-css-main.init-material-css-vars($typography-config: $custom-typography) using($mat-css-theme) {
184+
@include mat-css-vars.init-material-css-vars($typography-config: $custom-typography) using($mat-css-theme) {
193185
@include app-theme($mat-css-theme);
194186
};
195187

projects/material-css-vars/index.scss

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
@forward "./src/lib/main";
2+
@forward "./src/lib/variables";
3+
@forward "./src/lib/public-util";
4+
@forward "./src/lib/public-color-util";

projects/material-css-vars/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
},
2929
"exports": {
3030
".": {
31-
"sass": "./src/lib/_main.scss"
31+
"sass": "./index.scss"
3232
},
3333
"./main": {
3434
"sass": "./src/lib/_main.scss"

projects/material-css-vars/src/lib/_variables.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ $palette-primary: (
247247
600: var(--palette-primary-contrast-600),
248248
700: var(--palette-primary-contrast-700),
249249
800: var(--palette-primary-contrast-800),
250-
900: var(--palette-primary-contrast-900b),
250+
900: var(--palette-primary-contrast-900),
251251
A100: var(--palette-primary-contrast-A100),
252252
A200: var(--palette-primary-contrast-A200),
253253
A400: var(--palette-primary-contrast-A400),

src/app/app.component.scss

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,137 +1,136 @@
1-
@use '../../projects/material-css-vars/src/lib/public-util' as mat-css-utilities;
2-
@use '../../projects/material-css-vars/src/lib/main' as mat-css-main;
1+
@use '../../projects/material-css-vars' as mat-css-vars;
32

43
$lighter-dark: rgb(88, 88, 88);
54

65
.bg-50 {
7-
@include mat-css-utilities.mat-css-color-and-contrast-primary(50);
6+
@include mat-css-vars.mat-css-color-and-contrast-primary(50);
87
}
98

109
.bg-100 {
11-
@include mat-css-utilities.mat-css-color-and-contrast-primary(100);
10+
@include mat-css-vars.mat-css-color-and-contrast-primary(100);
1211
}
1312

1413
.bg-200 {
15-
@include mat-css-utilities.mat-css-color-and-contrast-primary(200);
14+
@include mat-css-vars.mat-css-color-and-contrast-primary(200);
1615
}
1716

1817
.bg-300 {
19-
@include mat-css-utilities.mat-css-color-and-contrast-primary(300);
18+
@include mat-css-vars.mat-css-color-and-contrast-primary(300);
2019
}
2120

2221
.bg-400 {
23-
@include mat-css-utilities.mat-css-color-and-contrast-primary(400);
22+
@include mat-css-vars.mat-css-color-and-contrast-primary(400);
2423
}
2524

2625
.bg-500 {
27-
@include mat-css-utilities.mat-css-color-and-contrast-primary(500);
28-
border: 4px dashed mat-css-utilities.mat-css-color-accent();
26+
@include mat-css-vars.mat-css-color-and-contrast-primary(500);
27+
border: 4px dashed mat-css-vars.mat-css-color-accent();
2928
}
3029

3130
.bg-600 {
32-
@include mat-css-utilities.mat-css-color-and-contrast-primary(600);
31+
@include mat-css-vars.mat-css-color-and-contrast-primary(600);
3332
}
3433

3534
.bg-700 {
36-
@include mat-css-utilities.mat-css-color-and-contrast-primary(700);
35+
@include mat-css-vars.mat-css-color-and-contrast-primary(700);
3736
}
3837

3938
.bg-800 {
40-
@include mat-css-utilities.mat-css-color-and-contrast-primary(800);
39+
@include mat-css-vars.mat-css-color-and-contrast-primary(800);
4140
}
4241

4342
.bg-900 {
44-
@include mat-css-utilities.mat-css-color-and-contrast-primary(900);
43+
@include mat-css-vars.mat-css-color-and-contrast-primary(900);
4544
}
4645

4746

4847
.bga-50 {
49-
@include mat-css-utilities.mat-css-color-and-contrast-accent(50);
48+
@include mat-css-vars.mat-css-color-and-contrast-accent(50);
5049
}
5150

5251
.bga-100 {
53-
@include mat-css-utilities.mat-css-color-and-contrast-accent(100);
52+
@include mat-css-vars.mat-css-color-and-contrast-accent(100);
5453
}
5554

5655
.bga-200 {
57-
@include mat-css-utilities.mat-css-color-and-contrast-accent(200);
56+
@include mat-css-vars.mat-css-color-and-contrast-accent(200);
5857
}
5958

6059
.bga-300 {
61-
@include mat-css-utilities.mat-css-color-and-contrast-accent(300);
60+
@include mat-css-vars.mat-css-color-and-contrast-accent(300);
6261
}
6362

6463
.bga-400 {
65-
@include mat-css-utilities.mat-css-color-and-contrast-accent(400);
64+
@include mat-css-vars.mat-css-color-and-contrast-accent(400);
6665
}
6766

6867
.bga-500 {
69-
@include mat-css-utilities.mat-css-color-and-contrast-accent(500);
70-
border: 4px dashed mat-css-utilities.mat-css-color-primary();
68+
@include mat-css-vars.mat-css-color-and-contrast-accent(500);
69+
border: 4px dashed mat-css-vars.mat-css-color-primary();
7170
}
7271

7372
.bga-600 {
74-
@include mat-css-utilities.mat-css-color-and-contrast-accent(600);
73+
@include mat-css-vars.mat-css-color-and-contrast-accent(600);
7574
}
7675

7776
.bga-700 {
78-
@include mat-css-utilities.mat-css-color-and-contrast-accent(700);
77+
@include mat-css-vars.mat-css-color-and-contrast-accent(700);
7978
}
8079

8180
.bga-800 {
82-
@include mat-css-utilities.mat-css-color-and-contrast-accent(800);
81+
@include mat-css-vars.mat-css-color-and-contrast-accent(800);
8382
}
8483

8584
.bga-900 {
86-
@include mat-css-utilities.mat-css-color-and-contrast-accent(900);
85+
@include mat-css-vars.mat-css-color-and-contrast-accent(900);
8786
}
8887

8988

9089
.bgw-50 {
91-
@include mat-css-utilities.mat-css-color-and-contrast-warn(50);
90+
@include mat-css-vars.mat-css-color-and-contrast-warn(50);
9291
}
9392

9493
.bgw-100 {
95-
@include mat-css-utilities.mat-css-color-and-contrast-warn(100);
94+
@include mat-css-vars.mat-css-color-and-contrast-warn(100);
9695
}
9796

9897
.bgw-200 {
99-
@include mat-css-utilities.mat-css-color-and-contrast-warn(200);
98+
@include mat-css-vars.mat-css-color-and-contrast-warn(200);
10099
}
101100

102101
.bgw-300 {
103-
@include mat-css-utilities.mat-css-color-and-contrast-warn(300);
102+
@include mat-css-vars.mat-css-color-and-contrast-warn(300);
104103
}
105104

106105
.bgw-400 {
107-
@include mat-css-utilities.mat-css-color-and-contrast-warn(400);
106+
@include mat-css-vars.mat-css-color-and-contrast-warn(400);
108107
}
109108

110109
.bgw-500 {
111-
@include mat-css-utilities.mat-css-color-and-contrast-warn(500);
112-
border: 4px dashed mat-css-utilities.mat-css-color-primary();
110+
@include mat-css-vars.mat-css-color-and-contrast-warn(500);
111+
border: 4px dashed mat-css-vars.mat-css-color-primary();
113112
}
114113

115114
.bgw-600 {
116-
@include mat-css-utilities.mat-css-color-and-contrast-warn(600);
115+
@include mat-css-vars.mat-css-color-and-contrast-warn(600);
117116
}
118117

119118
.bgw-700 {
120-
@include mat-css-utilities.mat-css-color-and-contrast-warn(700);
119+
@include mat-css-vars.mat-css-color-and-contrast-warn(700);
121120
}
122121

123122
.bgw-800 {
124-
@include mat-css-utilities.mat-css-color-and-contrast-warn(800);
123+
@include mat-css-vars.mat-css-color-and-contrast-warn(800);
125124
}
126125

127126
.bgw-900 {
128-
@include mat-css-utilities.mat-css-color-and-contrast-warn(900);
127+
@include mat-css-vars.mat-css-color-and-contrast-warn(900);
129128
}
130129

131130
::ng-deep color-picker {
132131
.color-picker {
133132

134-
@include mat-css-utilities.mat-css-dark-theme {
133+
@include mat-css-vars.mat-css-dark-theme {
135134
color: #fff;
136135
background: $lighter-dark;
137136
}
@@ -161,6 +160,7 @@ $lighter-dark: rgb(88, 88, 88);
161160
height: 50px;
162161
text-align: center;
163162
position: relative;
163+
box-sizing: border-box;
164164

165165
div {
166166
position: absolute;

src/styles.scss

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
@use '/projects/material-css-vars/src/lib/main' as mat-css-main;
2-
@use '/projects/material-css-vars/src/lib/public-util' as mat-css-utilities;
1+
@use '/projects/material-css-vars' as mat-css-vars;
32
@use '@angular/material' as mat;
43

54
@import './app/app.theme';
@@ -10,13 +9,13 @@ $custom-typography: mat.define-typography-config(
109
$headline-1: mat.define-typography-level(16px, 24px, 500)
1110
);
1211

13-
@include mat-css-main.init-material-css-vars($typography-config: $custom-typography) using($mat-css-theme) {
12+
@include mat-css-vars.init-material-css-vars($typography-config: $custom-typography) using($mat-css-theme) {
1413
@include app-theme($mat-css-theme);
1514
};
1615

17-
@include mat-css-utilities.mat-css-set-palette-defaults(mat.$light-blue-palette, 'primary');
18-
@include mat-css-utilities.mat-css-set-palette-defaults(mat.$pink-palette, 'accent');
19-
@include mat-css-utilities.mat-css-set-palette-defaults(mat.$red-palette, 'warn');
16+
@include mat-css-vars.mat-css-set-palette-defaults(mat.$light-blue-palette, 'primary');
17+
@include mat-css-vars.mat-css-set-palette-defaults(mat.$pink-palette, 'accent');
18+
@include mat-css-vars.mat-css-set-palette-defaults(mat.$red-palette, 'warn');
2019

2120
body {
2221
padding: 0;

0 commit comments

Comments
 (0)