@expressivecss/expressive 0.1.0-alpha.3 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +82 -2
- package/README.md +153 -43
- package/dist/css/expressive.css +7121 -9658
- package/dist/css/expressive.css.map +1 -0
- package/dist/css/expressive.min.css +1 -1
- package/dist/css/expressive.min.css.map +1 -0
- package/dist/js/expressive.cjs +7521 -0
- package/dist/js/expressive.cjs.map +7 -0
- package/dist/js/expressive.js +7383 -8099
- package/dist/js/expressive.js.map +7 -1
- package/dist/js/expressive.min.js +75 -1
- package/dist/js/expressive.min.js.map +7 -1
- package/dist/js/expressive.mjs +7292 -7998
- package/dist/js/expressive.mjs.map +7 -1
- package/dist/types/behaviors/dialogs.d.ts +25 -0
- package/dist/{js → types}/components/autocomplete.d.ts +10 -1
- package/dist/{js → types}/components/buttons.d.ts +11 -1
- package/dist/{js → types}/components/cards.d.ts +10 -1
- package/dist/{js → types}/components/carousel.d.ts +4 -5
- package/dist/{js/forms/character-counter.d.ts → types/components/characterCounter.d.ts} +1 -1
- package/dist/{js → types}/components/chips.d.ts +1 -1
- package/dist/{js → types}/components/collapsible.d.ts +1 -1
- package/dist/{js → types}/components/datepicker.d.ts +63 -2
- package/dist/{js → types}/components/dropdown.d.ts +3 -3
- package/dist/types/components/index.d.ts +23 -0
- package/dist/{js/components/materialbox.d.ts → types/components/lightbox.d.ts} +21 -21
- package/dist/{js → types}/components/modal.d.ts +1 -1
- package/dist/{js → types}/components/parallax.d.ts +11 -5
- package/dist/{js → types}/components/pushpin.d.ts +1 -1
- package/dist/{js/forms → types/components}/range.d.ts +3 -3
- package/dist/types/components/registry.d.ts +107 -0
- package/dist/{js → types}/components/scrollspy.d.ts +6 -9
- package/dist/{js/forms → types/components}/select.d.ts +11 -2
- package/dist/{js → types}/components/sidenav.d.ts +1 -1
- package/dist/{js → types}/components/slider.d.ts +3 -2
- package/dist/{js → types}/components/tabs.d.ts +3 -2
- package/dist/{js/components/tap-target.d.ts → types/components/tapTarget.d.ts} +2 -2
- package/dist/{js → types}/components/timepicker.d.ts +13 -5
- package/dist/{js/components/toast.d.ts → types/components/toasts.d.ts} +28 -4
- package/dist/{js → types}/components/tooltip.d.ts +2 -2
- package/dist/types/core/bounding.d.ts +6 -0
- package/dist/{js/foundation → types/core}/component.d.ts +1 -1
- package/dist/types/core/edges.d.ts +6 -0
- package/dist/{js/foundation → types/core}/utils.d.ts +21 -14
- package/dist/types/index.d.ts +7 -0
- package/dist/{js/plugins/docked-display.d.ts → types/plugins/dockedDisplayPlugin.d.ts} +7 -0
- package/package.json +60 -36
- package/src/sass/README.md +200 -0
- package/src/sass/abstracts/_breakpoints.scss +69 -0
- package/src/sass/abstracts/_elevation.scss +34 -0
- package/src/sass/abstracts/_index.scss +7 -0
- package/src/sass/abstracts/_mixins.scss +171 -0
- package/src/sass/abstracts/_variables.scss +57 -0
- package/src/{scss/layout/_table.scss → sass/base/_global.scss} +64 -2
- package/src/{scss/layout → sass/base}/_grid.scss +6 -6
- package/src/sass/base/_index.scss +6 -0
- package/src/{scss/foundation → sass/base}/_normalize.scss +51 -139
- package/src/sass/base/_typography.scss +90 -0
- package/src/sass/components/_badges.scss +77 -0
- package/src/{scss → sass}/components/_breadcrumb.scss +2 -0
- package/src/sass/components/_buttons.scss +407 -0
- package/src/sass/components/_cards.scss +328 -0
- package/src/{scss → sass}/components/_carousel.scss +5 -3
- package/src/sass/components/_chips.scss +140 -0
- package/src/sass/components/_collapsible.scss +81 -0
- package/src/{scss → sass}/components/_collection.scss +2 -2
- package/src/{scss/components/_date-picker.scss → sass/components/_datepicker.scss} +51 -44
- package/src/sass/components/_docked-display.scss +11 -0
- package/src/sass/components/_dropdown.scss +129 -0
- package/src/{scss/components/_material-icons.scss → sass/components/_icons-material-design.scss} +2 -0
- package/src/sass/components/_index.scss +35 -0
- package/src/{scss/components/_material-box.scss → sass/components/_lightbox.scss} +6 -4
- package/src/sass/components/_modal.scss +208 -0
- package/src/sass/components/_navbar.scss +345 -0
- package/src/{scss/layout/_footer.scss → sass/components/_page-footer.scss} +7 -6
- package/src/{scss → sass}/components/_pagination.scss +4 -3
- package/src/{scss → sass}/components/_parallax.scss +4 -1
- package/src/{scss → sass}/components/_preloader.scss +19 -97
- package/src/{scss → sass}/components/_pulse.scss +2 -0
- package/src/sass/components/_pushpin.scss +11 -0
- package/src/{scss → sass}/components/_sidenav.scss +99 -82
- package/src/{scss → sass}/components/_slider.scss +3 -1
- package/src/{scss/components/_table-of-contents.scss → sass/components/_table_of_contents.scss} +2 -0
- package/src/sass/components/_tabs.scss +232 -0
- package/src/{scss/components/_tap-target.scss → sass/components/_tapTarget.scss} +24 -22
- package/src/{scss/components/_time-picker.scss → sass/components/_timepicker.scss} +56 -56
- package/src/sass/components/_toast.scss +260 -0
- package/src/sass/components/_toolbar.scss +192 -0
- package/src/sass/components/_tooltip.scss +166 -0
- package/src/{scss → sass}/components/_transitions.scss +4 -4
- package/src/sass/components/forms/_checkboxes.scss +288 -0
- package/src/sass/components/forms/_fieldset.scss +128 -0
- package/src/{scss → sass/components}/forms/_file-input.scss +11 -9
- package/src/{scss → sass/components}/forms/_index.scss +2 -0
- package/src/sass/components/forms/_input-fields.scss +326 -0
- package/src/sass/components/forms/_radio-buttons.scss +190 -0
- package/src/sass/components/forms/_range.scss +310 -0
- package/src/sass/components/forms/_select.scss +103 -0
- package/src/sass/components/forms/_switches.scss +239 -0
- package/src/sass/expressive.scss +60 -0
- package/src/sass/tokens/_index.scss +4 -0
- package/src/sass/tokens/_reference.scss +265 -0
- package/src/sass/tokens/_theme.scss +49 -0
- package/src/sass/utilities/_helpers.scss +63 -0
- package/src/sass/utilities/_index.scss +8 -0
- package/src/{scss → sass}/utilities/_spacing.scss +4 -3
- package/src/sass/utilities/_typescale.scss +45 -0
- package/src/sass/utilities/_visibility.scss +63 -0
- package/src/sass/utilities/_z-depth.scss +18 -0
- package/dist/js/components/index.d.ts +0 -21
- package/dist/js/forms/index.d.ts +0 -4
- package/dist/js/foundation/index.d.ts +0 -2
- package/dist/js/index.d.ts +0 -52
- package/dist/js/plugins/index.d.ts +0 -1
- package/src/scss/components/_appbar.scss +0 -454
- package/src/scss/components/_badges.scss +0 -77
- package/src/scss/components/_buttons.scss +0 -412
- package/src/scss/components/_cards.scss +0 -267
- package/src/scss/components/_chips.scss +0 -147
- package/src/scss/components/_collapsible.scss +0 -84
- package/src/scss/components/_dropdown.scss +0 -98
- package/src/scss/components/_index.scss +0 -28
- package/src/scss/components/_modal.scss +0 -84
- package/src/scss/components/_tabs.scss +0 -176
- package/src/scss/components/_toast.scss +0 -70
- package/src/scss/components/_tooltip.scss +0 -49
- package/src/scss/components/_video.scss +0 -15
- package/src/scss/expressive.scss +0 -7
- package/src/scss/forms/_checkboxes.scss +0 -199
- package/src/scss/forms/_input-fields.scss +0 -360
- package/src/scss/forms/_radio-buttons.scss +0 -114
- package/src/scss/forms/_range.scss +0 -148
- package/src/scss/forms/_select.scss +0 -108
- package/src/scss/forms/_switches.scss +0 -127
- package/src/scss/foundation/_base.scss +0 -71
- package/src/scss/foundation/_color-palette.scss +0 -402
- package/src/scss/foundation/_index.scss +0 -10
- package/src/scss/foundation/_mixins.scss +0 -198
- package/src/scss/foundation/_motion.scss +0 -70
- package/src/scss/foundation/_shape.scss +0 -30
- package/src/scss/foundation/_state-layers.scss +0 -68
- package/src/scss/foundation/_theme.scss +0 -238
- package/src/scss/foundation/_tokens.scss +0 -511
- package/src/scss/foundation/_variables.scss +0 -57
- package/src/scss/layout/_index.scss +0 -3
- package/src/scss/utilities/_a11y.scss +0 -77
- package/src/scss/utilities/_elevation.scss +0 -63
- package/src/scss/utilities/_helpers.scss +0 -50
- package/src/scss/utilities/_index.scss +0 -7
- package/src/scss/utilities/_responsive.scss +0 -62
- package/src/scss/utilities/_typography.scss +0 -115
- /package/dist/{js/forms → types/behaviors}/forms.d.ts +0 -0
- /package/dist/{js/components → types/behaviors}/waves.d.ts +0 -0
- /package/src/{scss → sass}/utilities/_colors.scss +0 -0
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
@use "sass:map";
|
|
2
|
+
@use "sass:list";
|
|
3
|
+
|
|
4
|
+
// Breakpoints, as media-query range syntax.
|
|
5
|
+
//
|
|
6
|
+
// The old form built a query by interpolating a whole string:
|
|
7
|
+
//
|
|
8
|
+
// $medium-and-down: "only screen and (max-width : 992.99px)";
|
|
9
|
+
// @media #{$medium-and-down} { ... }
|
|
10
|
+
//
|
|
11
|
+
// which needed the `.99` because `max-width: 993px` and `min-width: 993px`
|
|
12
|
+
// both match at exactly 993px. Range syntax has an exclusive comparator, so
|
|
13
|
+
// the fractional values are gone and the boundary is stated once:
|
|
14
|
+
//
|
|
15
|
+
// @include bp-down("large") { ... } -> @media (width < 993px)
|
|
16
|
+
//
|
|
17
|
+
// `only screen` went with them: it existed to hide queries from Netscape 4
|
|
18
|
+
// and IE, and `screen` alone excludes print anyway - which these rules never
|
|
19
|
+
// wanted to do, since a hidden element should stay hidden on paper.
|
|
20
|
+
|
|
21
|
+
$breakpoints: (
|
|
22
|
+
"small": 601px, // phone -> tablet
|
|
23
|
+
"large": 993px, // tablet -> desktop
|
|
24
|
+
"xlarge": 1201px, // desktop -> wide desktop
|
|
25
|
+
) !default;
|
|
26
|
+
|
|
27
|
+
@function breakpoint($name) {
|
|
28
|
+
@if not map.has-key($breakpoints, $name) {
|
|
29
|
+
@error "Unknown breakpoint `#{$name}`. Available: #{map.keys($breakpoints)}.";
|
|
30
|
+
}
|
|
31
|
+
@return map.get($breakpoints, $name);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// At or above a breakpoint.
|
|
35
|
+
@mixin bp-up($name) {
|
|
36
|
+
@media (width >= #{breakpoint($name)}) {
|
|
37
|
+
@content;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// Strictly below a breakpoint.
|
|
42
|
+
@mixin bp-down($name) {
|
|
43
|
+
@media (width < #{breakpoint($name)}) {
|
|
44
|
+
@content;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// From one breakpoint up to (not including) another.
|
|
49
|
+
@mixin bp-between($from, $to) {
|
|
50
|
+
@media (#{breakpoint($from)} <= width < #{breakpoint($to)}) {
|
|
51
|
+
@content;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// Deprecated: the interpolated-string breakpoints.
|
|
56
|
+
//
|
|
57
|
+
// Kept so a downstream `@media #{$medium-and-up}` keeps compiling - the
|
|
58
|
+
// framework itself no longer uses them. Values are now range syntax, so the
|
|
59
|
+
// queries they produce match the mixins above exactly. Prefer the mixins.
|
|
60
|
+
$small-screen-up: breakpoint("small") !default;
|
|
61
|
+
$medium-screen-up: breakpoint("large") !default;
|
|
62
|
+
$large-screen-up: breakpoint("xlarge") !default;
|
|
63
|
+
|
|
64
|
+
$medium-and-up: "(width >= #{breakpoint('small')})" !default;
|
|
65
|
+
$large-and-up: "(width >= #{breakpoint('large')})" !default;
|
|
66
|
+
$extra-large-and-up: "(width >= #{breakpoint('xlarge')})" !default;
|
|
67
|
+
$small-and-down: "(width < #{breakpoint('small')})" !default;
|
|
68
|
+
$medium-and-down: "(width < #{breakpoint('large')})" !default;
|
|
69
|
+
$medium-only: "(#{breakpoint('small')} <= width < #{breakpoint('large')})" !default;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
@use "sass:map";
|
|
2
|
+
|
|
3
|
+
// Elevation shadows.
|
|
4
|
+
//
|
|
5
|
+
// These are a mixin rather than `@extend .z-depth-N` on purpose: `@extend`
|
|
6
|
+
// only resolves if the extending partial loads the module that defines the
|
|
7
|
+
// class, which forced every component to `@use` a CSS-emitting file and let
|
|
8
|
+
// the dependency graph - not expressive.scss - decide the output order.
|
|
9
|
+
// The `.z-depth-N` classes in base/_global.scss are generated from this map,
|
|
10
|
+
// so the class list and the mixin can never drift apart.
|
|
11
|
+
|
|
12
|
+
$elevations: (
|
|
13
|
+
"0": none,
|
|
14
|
+
"1": (0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2)),
|
|
15
|
+
"1-half": (0 3px 3px 0 rgba(0, 0, 0, 0.14), 0 1px 7px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -1px rgba(0, 0, 0, 0.2)),
|
|
16
|
+
"2": (0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.3)),
|
|
17
|
+
"3": (0 8px 17px 2px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.2)),
|
|
18
|
+
"4": (0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12), 0 8px 10px -7px rgba(0, 0, 0, 0.2)),
|
|
19
|
+
"5": (0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12), 0 11px 15px -7px rgba(0, 0, 0, 0.2))
|
|
20
|
+
) !default;
|
|
21
|
+
|
|
22
|
+
@mixin z-depth($level) {
|
|
23
|
+
$key: "#{$level}";
|
|
24
|
+
@if not map.has-key($elevations, $key) {
|
|
25
|
+
@error "Unknown elevation `#{$level}`. Available: #{map.keys($elevations)}.";
|
|
26
|
+
}
|
|
27
|
+
$shadow: map.get($elevations, $key);
|
|
28
|
+
@if $shadow == none {
|
|
29
|
+
// Level 0 stays !important: it is used to cancel a shadow a component set.
|
|
30
|
+
box-shadow: none !important;
|
|
31
|
+
} @else {
|
|
32
|
+
box-shadow: $shadow;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// Everything a partial needs at compile time, and nothing that emits CSS.
|
|
2
|
+
// Partials load the whole layer with a single line: @use "../abstracts" as *;
|
|
3
|
+
|
|
4
|
+
@forward "elevation"; // z-depth() mixin
|
|
5
|
+
@forward "breakpoints"; // $breakpoints map + bp-up()/bp-down()/bp-between()
|
|
6
|
+
@forward "variables"; // Sass-time knobs: grid, font sizes, flow text
|
|
7
|
+
@forward "mixins"; // btn-*, focus-visible
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
@use "./elevation" as *;
|
|
2
|
+
@use "./variables" as *;
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
// Common-button geometry. M3 default is 40dp, label-large, 20dp corners
|
|
6
|
+
// (a stadium), 24dp inset, 8dp icon gap. Variants only change color/elevation.
|
|
7
|
+
@mixin btn(
|
|
8
|
+
$height: var(--md-comp-filled-button-container-height, 40px),
|
|
9
|
+
$border-radius: var(--md-comp-filled-button-container-shape, 20px),
|
|
10
|
+
$padding-left: var(--md-comp-filled-button-leading-space, 24px),
|
|
11
|
+
$padding-right: var(--md-comp-filled-button-trailing-space, 24px),
|
|
12
|
+
$font-size: var(--md-sys-typescale-label-large-font-size),
|
|
13
|
+
) {
|
|
14
|
+
box-sizing: border-box;
|
|
15
|
+
display: inline-flex;
|
|
16
|
+
align-items: center;
|
|
17
|
+
justify-content: center;
|
|
18
|
+
gap: var(--md-comp-filled-button-icon-label-space, 8px);
|
|
19
|
+
height: $height;
|
|
20
|
+
padding-left: $padding-left;
|
|
21
|
+
padding-right: $padding-right;
|
|
22
|
+
border: none;
|
|
23
|
+
border-radius: $border-radius;
|
|
24
|
+
font-family: var(--md-sys-typescale-label-large-font-family-name);
|
|
25
|
+
font-size: $font-size;
|
|
26
|
+
font-weight: var(--md-sys-typescale-label-large-font-weight);
|
|
27
|
+
line-height: var(--md-sys-typescale-label-large-line-height);
|
|
28
|
+
letter-spacing: var(--md-sys-typescale-label-large-letter-spacing);
|
|
29
|
+
text-decoration: none;
|
|
30
|
+
white-space: nowrap;
|
|
31
|
+
cursor: pointer;
|
|
32
|
+
outline: 0;
|
|
33
|
+
user-select: none;
|
|
34
|
+
appearance: none;
|
|
35
|
+
-webkit-tap-highlight-color: transparent;
|
|
36
|
+
transition: background-color .2s ease-out, box-shadow .2s ease-out;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// State layers are 8% hover / 10% focus+press of the on-color, mixed in oklab
|
|
40
|
+
// onto the container. Filled and tonal have no elevation.
|
|
41
|
+
|
|
42
|
+
@mixin btn-filled {
|
|
43
|
+
color: var(--md-comp-filled-button-label-text-color, var(--md-sys-color-on-primary));
|
|
44
|
+
background-color: var(--md-comp-filled-button-container-color, var(--md-sys-color-primary));
|
|
45
|
+
|
|
46
|
+
&:hover {
|
|
47
|
+
background-color: color-mix(
|
|
48
|
+
in oklab,
|
|
49
|
+
var(--md-sys-color-on-primary) 8%,
|
|
50
|
+
var(--md-sys-color-primary)
|
|
51
|
+
);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
&:active,
|
|
55
|
+
&:focus {
|
|
56
|
+
background-color: color-mix(
|
|
57
|
+
in oklab,
|
|
58
|
+
var(--md-sys-color-on-primary) 10%,
|
|
59
|
+
var(--md-sys-color-primary)
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
@include focus-visible();
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
@mixin btn-tonal {
|
|
67
|
+
color: var(--md-sys-color-on-secondary-container);
|
|
68
|
+
background-color: var(--md-sys-color-secondary-container);
|
|
69
|
+
|
|
70
|
+
&:hover {
|
|
71
|
+
background-color: color-mix(
|
|
72
|
+
in oklab,
|
|
73
|
+
var(--md-sys-color-on-secondary-container) 8%,
|
|
74
|
+
var(--md-sys-color-secondary-container)
|
|
75
|
+
);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
&:active,
|
|
79
|
+
&:focus {
|
|
80
|
+
background-color: color-mix(
|
|
81
|
+
in oklab,
|
|
82
|
+
var(--md-sys-color-on-secondary-container) 10%,
|
|
83
|
+
var(--md-sys-color-secondary-container)
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
@include focus-visible();
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
@mixin btn-elevated {
|
|
91
|
+
color: var(--md-sys-color-primary);
|
|
92
|
+
background-color: var(--md-sys-color-surface);
|
|
93
|
+
@include z-depth("1");
|
|
94
|
+
|
|
95
|
+
&:hover {
|
|
96
|
+
@include z-depth("2");
|
|
97
|
+
background-color: color-mix(in oklab, var(--md-sys-color-primary) 8%, var(--md-sys-color-surface));
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
&:active,
|
|
101
|
+
&:focus {
|
|
102
|
+
@include z-depth("1");
|
|
103
|
+
background-color: color-mix(in oklab, var(--md-sys-color-primary) 10%, var(--md-sys-color-surface));
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
@include focus-visible();
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
@mixin btn-outlined {
|
|
110
|
+
background-color: transparent;
|
|
111
|
+
color: var(--md-sys-color-primary);
|
|
112
|
+
border: 1px solid var(--md-sys-color-outline);
|
|
113
|
+
|
|
114
|
+
&:hover {
|
|
115
|
+
background-color: color-mix(in oklab, var(--md-sys-color-primary) 8%, transparent);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
&:active,
|
|
119
|
+
&:focus {
|
|
120
|
+
background-color: color-mix(in oklab, var(--md-sys-color-primary) 10%, transparent);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
@include focus-visible();
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
@mixin btn-flat {
|
|
127
|
+
@include z-depth("0");
|
|
128
|
+
color: var(--md-sys-color-primary);
|
|
129
|
+
background-color: transparent;
|
|
130
|
+
border-color: transparent;
|
|
131
|
+
|
|
132
|
+
&:hover {
|
|
133
|
+
background-color: color-mix(in oklab, var(--md-sys-color-primary) 8%, transparent);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
&:active,
|
|
137
|
+
&:focus {
|
|
138
|
+
background-color: color-mix(in oklab, var(--md-sys-color-primary) 10%, transparent);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
@include focus-visible();
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
@mixin btn-disabled {
|
|
145
|
+
@include z-depth("0");
|
|
146
|
+
color: color-mix(in oklab, var(--md-sys-color-on-surface) 38%, transparent);
|
|
147
|
+
background-color: color-mix(in oklab, var(--md-sys-color-on-surface) 12%, transparent);
|
|
148
|
+
border-color: transparent;
|
|
149
|
+
pointer-events: none;
|
|
150
|
+
box-shadow: none;
|
|
151
|
+
cursor: default;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
// Focus with Keyboard
|
|
155
|
+
@mixin focus-visible {
|
|
156
|
+
&:focus-visible {
|
|
157
|
+
outline: 3px solid var(--md-sys-color-secondary);
|
|
158
|
+
outline-offset: 2px;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
// M3 type role. Every property must name a token tokens/_reference.scss
|
|
163
|
+
// actually defines — a missing var() drops the whole declaration.
|
|
164
|
+
@mixin typescale($role) {
|
|
165
|
+
font-family: var(--md-sys-typescale-#{$role}-font-family-name), #{$font-stack};
|
|
166
|
+
font-size: var(--md-sys-typescale-#{$role}-font-size);
|
|
167
|
+
font-weight: var(--md-sys-typescale-#{$role}-font-weight);
|
|
168
|
+
line-height: var(--md-sys-typescale-#{$role}-line-height);
|
|
169
|
+
letter-spacing: var(--md-sys-typescale-#{$role}-letter-spacing);
|
|
170
|
+
}
|
|
171
|
+
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
// TypeScale
|
|
2
|
+
$md_sys_typescale_body-large_size: 16px;
|
|
3
|
+
|
|
4
|
+
@use "sass:math";
|
|
5
|
+
|
|
6
|
+
// Colors
|
|
7
|
+
//
|
|
8
|
+
// The 2014 Material palette ($colors + colorFunc()) is gone. It generated 532
|
|
9
|
+
// utility classes - 18% of the compiled sheet - to express a design opinion
|
|
10
|
+
// this framework does not hold, and the framework itself consumed exactly one
|
|
11
|
+
// value from it: this link color. Everything now comes from --md-sys-color-*.
|
|
12
|
+
$link-color: var(--md-sys-color-primary) !default;
|
|
13
|
+
|
|
14
|
+
// Floating buttons
|
|
15
|
+
$button-floating-background: var(--md-sys-color-secondary) !default;
|
|
16
|
+
$button-floating-background-hover: var(--md-ref-palette-secondary70) !default;
|
|
17
|
+
$button-floating-background-focus: var(--md-ref-palette-secondary80) !default;
|
|
18
|
+
$button-floating-color: var(--md-sys-color-on-secondary) !default;
|
|
19
|
+
$button-floating-size: 40px !default;
|
|
20
|
+
$button-floating-radius: 16px !default;
|
|
21
|
+
|
|
22
|
+
// Dropdown
|
|
23
|
+
$dropdown-item-height: 50px !default;
|
|
24
|
+
|
|
25
|
+
// Media query ranges now live in abstracts/_breakpoints.scss, which states
|
|
26
|
+
// each boundary once and emits range syntax - see the note there about why
|
|
27
|
+
// the 600.99px / 992.99px / 1200.99px values are gone.
|
|
28
|
+
|
|
29
|
+
// Grid
|
|
30
|
+
$num-cols: 12 !default;
|
|
31
|
+
$gutter-width: 1.5rem !default;
|
|
32
|
+
$element-top-margin: math.div($gutter-width, 3) !default;
|
|
33
|
+
$element-bottom-margin: math.div($gutter-width * 2, 3) !default;
|
|
34
|
+
|
|
35
|
+
// Typography
|
|
36
|
+
$font-stack: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif !default;
|
|
37
|
+
$text-color: var(--md-sys-color-on-background) !default;
|
|
38
|
+
|
|
39
|
+
// Base of the html font-size ladder in base/_typography.scss. Flow text is
|
|
40
|
+
// derived from it, so the two cannot drift.
|
|
41
|
+
$root-font-size: 14px !default;
|
|
42
|
+
|
|
43
|
+
// Legacy rem heading ladder. Headings now consume --md-sys-typescale-*
|
|
44
|
+
// (see base/_typography.scss). Kept so existing Sass overrides still compile.
|
|
45
|
+
$h1-fontsize: 4.2rem !default;
|
|
46
|
+
$h2-fontsize: 3.56rem !default;
|
|
47
|
+
$h3-fontsize: 2.92rem !default;
|
|
48
|
+
$h4-fontsize: 2.28rem !default;
|
|
49
|
+
$h5-fontsize: 1.64rem !default;
|
|
50
|
+
$h6-fontsize: 1.15rem !default;
|
|
51
|
+
|
|
52
|
+
// Flow text: font-size interpolates between these two across the viewport
|
|
53
|
+
// range below. This used to be a @while loop emitting 21 media queries.
|
|
54
|
+
$flow-text-min: 1.2rem !default;
|
|
55
|
+
$flow-text-max: 1.68rem !default; // the old loop's ceiling: 1.2rem * (1 + .02 * 20)
|
|
56
|
+
$flow-text-from: 360px !default;
|
|
57
|
+
$flow-text-to: 960px !default; // the old loop's last step: 360px + 20 * 30px
|
|
@@ -1,4 +1,65 @@
|
|
|
1
|
-
@use
|
|
1
|
+
@use "../abstracts" as *;
|
|
2
|
+
|
|
3
|
+
// Element-level defaults only: box-sizing, links, blockquotes, icons, tables.
|
|
4
|
+
//
|
|
5
|
+
// Helper classes belong in utilities/, and anything that serves a single widget
|
|
6
|
+
// belongs in that widget's partial - nothing here should name a component.
|
|
7
|
+
|
|
8
|
+
html {
|
|
9
|
+
box-sizing: border-box;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
*, *:before, *:after {
|
|
13
|
+
box-sizing: inherit;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
body {
|
|
17
|
+
background-color: var(--md-sys-color-background);
|
|
18
|
+
color: var(--md-sys-color-on-background);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
button,
|
|
22
|
+
input,
|
|
23
|
+
optgroup,
|
|
24
|
+
select,
|
|
25
|
+
textarea {
|
|
26
|
+
font-family: $font-stack;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
a {
|
|
30
|
+
color: $link-color;
|
|
31
|
+
text-decoration: none;
|
|
32
|
+
-webkit-tap-highlight-color: transparent; // Gets rid of tap active state
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// Blockquote
|
|
36
|
+
blockquote { margin: 20px 0; padding-left: 1.5rem; border-left: 5px solid var(--md-sys-color-primary); }
|
|
37
|
+
|
|
38
|
+
// Icon Styles
|
|
39
|
+
i {
|
|
40
|
+
line-height: inherit;
|
|
41
|
+
&.left {
|
|
42
|
+
float: left;
|
|
43
|
+
margin-left: -8px;
|
|
44
|
+
// margin-right: 15px;
|
|
45
|
+
}
|
|
46
|
+
&.right {
|
|
47
|
+
float: right;
|
|
48
|
+
// margin-left: 15px;
|
|
49
|
+
}
|
|
50
|
+
&.tiny {
|
|
51
|
+
font-size: 1rem;
|
|
52
|
+
}
|
|
53
|
+
&.small {
|
|
54
|
+
font-size: 2rem;
|
|
55
|
+
}
|
|
56
|
+
&.medium {
|
|
57
|
+
font-size: 4rem;
|
|
58
|
+
}
|
|
59
|
+
&.large {
|
|
60
|
+
font-size: 6rem;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
2
63
|
|
|
3
64
|
// Tables
|
|
4
65
|
table, th, td {
|
|
@@ -52,7 +113,7 @@ td, th {
|
|
|
52
113
|
}
|
|
53
114
|
|
|
54
115
|
// Responsive Table
|
|
55
|
-
@
|
|
116
|
+
@include bp-down("large") {
|
|
56
117
|
|
|
57
118
|
table.responsive-table {
|
|
58
119
|
width: 100%;
|
|
@@ -117,3 +178,4 @@ td, th {
|
|
|
117
178
|
}
|
|
118
179
|
}
|
|
119
180
|
}
|
|
181
|
+
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
@use "sass:math";
|
|
2
|
-
@use
|
|
2
|
+
@use "../abstracts" as *;
|
|
3
3
|
|
|
4
4
|
.container {
|
|
5
5
|
margin: 0 auto;
|
|
@@ -7,13 +7,13 @@
|
|
|
7
7
|
width: 90%;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
-
@
|
|
10
|
+
@include bp-up("small") {
|
|
11
11
|
.container {
|
|
12
12
|
width: 85%;
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
@
|
|
16
|
+
@include bp-up("large") {
|
|
17
17
|
.container {
|
|
18
18
|
width: 70%;
|
|
19
19
|
}
|
|
@@ -78,7 +78,7 @@ body {
|
|
|
78
78
|
.offset-s11 { grid-column-start: 12; }
|
|
79
79
|
|
|
80
80
|
//--- M
|
|
81
|
-
@
|
|
81
|
+
@include bp-up("small") {
|
|
82
82
|
.m1 { grid-column: auto / span 1; }
|
|
83
83
|
.m2 { grid-column: auto / span 2; }
|
|
84
84
|
.m3 { grid-column: auto / span 3; }
|
|
@@ -106,7 +106,7 @@ body {
|
|
|
106
106
|
}
|
|
107
107
|
|
|
108
108
|
//--- L
|
|
109
|
-
@
|
|
109
|
+
@include bp-up("large") {
|
|
110
110
|
.l1 { grid-column: auto / span 1; }
|
|
111
111
|
.l2 { grid-column: auto / span 2; }
|
|
112
112
|
.l3 { grid-column: auto / span 3; }
|
|
@@ -134,7 +134,7 @@ body {
|
|
|
134
134
|
}
|
|
135
135
|
|
|
136
136
|
//--- XL
|
|
137
|
-
@
|
|
137
|
+
@include bp-up("xlarge") {
|
|
138
138
|
.xl1 { grid-column: auto / span 1; }
|
|
139
139
|
.xl2 { grid-column: auto / span 2; }
|
|
140
140
|
.xl3 { grid-column: auto / span 3; }
|