kmaterialize 2.3.3-1.0.1 → 2.3.3-1.0.11
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/README.md +5 -5
- package/components/appbar/appbar.css +16 -3
- package/components/button/_buttons.scss +29 -0
- package/components/card/_cards.scss +13 -5
- package/components/collapsible/_collapsible.scss +50 -0
- package/components/dropdown/_dropdown.scss +2 -0
- package/components/list/_collection.scss +13 -2
- package/components/switch/_switches.scss +5 -0
- package/components/textfield/_input-fields.scss +3 -3
- package/dist/css/materialize.colors.min.css +1 -1
- package/dist/css/materialize.css +567 -96
- package/dist/css/materialize.min.css +2 -2
- package/dist/css/materialize.min.css.map +1 -1
- package/dist/js/materialize.cjs.js +10 -2
- package/dist/js/materialize.d.ts +7 -2
- package/dist/js/materialize.js +10 -2
- package/dist/js/materialize.min.js +2 -2
- package/dist/js/materialize.mjs +10 -3
- package/package.json +1 -1
- package/sass/_global.scss +92 -1
- package/sass/_typography.scss +7 -0
- package/sass/materialize.scss +7 -1
- package/sass/mixins.module.scss +6 -6
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<p align="center">
|
|
2
2
|
<a href="https://materialize.kevinzarshenas.com" target="_blank">
|
|
3
|
-
<img src="
|
|
3
|
+
<img src="images/materialize.svg" width="200"/>
|
|
4
4
|
</a>
|
|
5
5
|
</p>
|
|
6
6
|
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
## Getting started
|
|
16
16
|
Read the [getting started guide](https://materialize.kevinzarshenas.com/getting-started.html) for more information on how to use kmaterialize.
|
|
17
17
|
|
|
18
|
-
- Clone the repo: `git clone https://github.com/
|
|
18
|
+
- Clone the repo: `git clone https://github.com/kekefreedog/kmaterialize.git`
|
|
19
19
|
- Install with [npm](https://www.npmjs.com): `npm install kmaterialize`
|
|
20
20
|
|
|
21
21
|
## Testing
|
|
@@ -28,10 +28,10 @@ The documentation can be found at <https://materialize.kevinzarshenas.com>. To r
|
|
|
28
28
|
This is the core project with all the components. To see how they are used we recommend using an example project or go to the documentation.
|
|
29
29
|
|
|
30
30
|
### Running documentation locally
|
|
31
|
-
See [Materialize Docs Repo](https://github.com/materializecss/materialize-docs)
|
|
31
|
+
kmaterialize doesn't have its own docs site yet. See the upstream [Materialize Docs Repo](https://github.com/materializecss/materialize-docs) for an example of Materialize's components in action.
|
|
32
32
|
|
|
33
33
|
### Releases
|
|
34
|
-
Previous releases are available [here](https://github.com/
|
|
34
|
+
Previous releases are available [here](https://github.com/kekefreedog/kmaterialize/releases). You can also find the changelog under each release.
|
|
35
35
|
|
|
36
36
|
## Supported Browsers:
|
|
37
37
|
Materialize is compatible with:
|
|
@@ -49,7 +49,7 @@ We use Jasmine as our testing framework and we're trying to write a robust test
|
|
|
49
49
|
For quick testing install live-server node package globally and run `npm run demo`
|
|
50
50
|
|
|
51
51
|
## Contributing
|
|
52
|
-
Check out the [CONTRIBUTING document](docs/CONTRIBUTING.md) in the root of the repository to learn how you can contribute.
|
|
52
|
+
Check out the [CONTRIBUTING document](docs/CONTRIBUTING.md) in the root of the repository to learn how you can contribute.
|
|
53
53
|
|
|
54
54
|
## Copyright and license
|
|
55
55
|
Code Copyright 2026 kmaterialize. Code released under the MIT license.
|
|
@@ -72,7 +72,13 @@
|
|
|
72
72
|
margin-top: -2px;
|
|
73
73
|
margin-left: 15px;
|
|
74
74
|
margin-right: 15px;
|
|
75
|
-
|
|
75
|
+
/* Was inline-block, which overrides .btn's own inline-flex;
|
|
76
|
+
align-items:center and breaks vertical centering of the button's
|
|
77
|
+
text - visually harmless on .btn-large (tall enough that the
|
|
78
|
+
misalignment doesn't stand out) but text nearly clips out the
|
|
79
|
+
bottom on the smaller .btn/.btn-flat/.btn-floating sizes. */
|
|
80
|
+
display: inline-flex;
|
|
81
|
+
align-items: center;
|
|
76
82
|
}
|
|
77
83
|
|
|
78
84
|
.navbar ul:not(.dropdown-content) > li > a.btn > .material-icons,
|
|
@@ -130,7 +136,8 @@
|
|
|
130
136
|
.navbar .brand-logo {
|
|
131
137
|
color: var(--md-sys-color-on-surface);
|
|
132
138
|
font-size: var(--appbar-title-font-size);
|
|
133
|
-
display: inline-
|
|
139
|
+
display: inline-flex;
|
|
140
|
+
align-items: center;
|
|
134
141
|
padding: 0;
|
|
135
142
|
}
|
|
136
143
|
|
|
@@ -151,7 +158,13 @@
|
|
|
151
158
|
.navbar .brand-logo i.material-symbols-outlined,
|
|
152
159
|
.navbar .brand-logo i.material-symbols-rounded,
|
|
153
160
|
.navbar .brand-logo i.material-symbols-sharp {
|
|
154
|
-
float:
|
|
161
|
+
/* Was float:left, paired with an explicit height/line-height (from
|
|
162
|
+
the general .navbar i rule) sized to the whole navbar row height,
|
|
163
|
+
inside a brand-logo that's only ever as tall as its own text.
|
|
164
|
+
Floating a block that tall out of a small inline-block parent
|
|
165
|
+
with nothing to clear it let it render outside/clipped by the
|
|
166
|
+
navbar row - invisible in practice. brand-logo is flex now, so
|
|
167
|
+
this just needs to be a normal flex item. */
|
|
155
168
|
margin-right: 15px;
|
|
156
169
|
}
|
|
157
170
|
|
|
@@ -23,6 +23,19 @@
|
|
|
23
23
|
);
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
+
// .btn/.btn-large/.btn-small carry no color of their own - only the
|
|
27
|
+
// .filled/.tonal/.elevated/.outlined/.text modifiers do - so a bare
|
|
28
|
+
// .btn with none of those had no background or text color at all,
|
|
29
|
+
// same "invisible button" bug as .btn.text and .btn.elevated before
|
|
30
|
+
// they were fixed. Default to filled, same as v1's plain .btn always
|
|
31
|
+
// being a real visible button. Modifier classes still win (two
|
|
32
|
+
// classes beats one on specificity), and .btn-floating/.btn-flat
|
|
33
|
+
// already have their own complete color rules elsewhere so are
|
|
34
|
+
// deliberately excluded here.
|
|
35
|
+
.btn, .btn-large, .btn-small {
|
|
36
|
+
@include btn-filled;
|
|
37
|
+
}
|
|
38
|
+
|
|
26
39
|
// Icon
|
|
27
40
|
.btn.icon-left, .btn.icon-right {
|
|
28
41
|
position: relative;
|
|
@@ -243,6 +256,22 @@ button.btn-floating {
|
|
|
243
256
|
}
|
|
244
257
|
}
|
|
245
258
|
|
|
259
|
+
// @implement /Users/kzarshenas/Sites/RodeoFx/rodeo_toolkit_2/app/Front/style/scss/component_enhance.scss
|
|
260
|
+
// Anchors the FAB (and its expanded menu) to the top of the viewport
|
|
261
|
+
// instead of the bottom, for layouts where the bottom edge is already
|
|
262
|
+
// occupied (e.g. a footer or bottom nav).
|
|
263
|
+
&.top {
|
|
264
|
+
top: 23px;
|
|
265
|
+
bottom: unset;
|
|
266
|
+
padding-bottom: 15px;
|
|
267
|
+
padding-top: 0;
|
|
268
|
+
|
|
269
|
+
> ul {
|
|
270
|
+
top: 64px;
|
|
271
|
+
bottom: unset;
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
|
|
246
275
|
&.toolbar {
|
|
247
276
|
padding: 0;
|
|
248
277
|
height: 56px;
|
|
@@ -2,12 +2,14 @@
|
|
|
2
2
|
@use '../../sass/mixins.module.scss' as *;
|
|
3
3
|
|
|
4
4
|
.card-panel {
|
|
5
|
+
--background-color: color-mix(in srgb, var(--md-sys-color-surface), var(--md-sys-color-surface-tint) 17%);
|
|
6
|
+
|
|
5
7
|
transition: box-shadow .25s;
|
|
6
8
|
padding: 24px;
|
|
7
9
|
margin: $element-top-margin 0 $element-bottom-margin 0;
|
|
8
10
|
border-radius: 12px;
|
|
9
11
|
@extend .z-depth-1;
|
|
10
|
-
background-color: var(--
|
|
12
|
+
background-color: var(--background-color);
|
|
11
13
|
}
|
|
12
14
|
|
|
13
15
|
.card {
|
|
@@ -83,7 +85,7 @@
|
|
|
83
85
|
max-width: 50%;
|
|
84
86
|
|
|
85
87
|
img {
|
|
86
|
-
border-radius:
|
|
88
|
+
border-radius: 12px 0 0 12px;
|
|
87
89
|
max-width: 100%;
|
|
88
90
|
width: auto;
|
|
89
91
|
}
|
|
@@ -119,7 +121,7 @@
|
|
|
119
121
|
// Image background for content
|
|
120
122
|
img {
|
|
121
123
|
display: block;
|
|
122
|
-
border-radius:
|
|
124
|
+
border-radius: 12px 12px 0 0;
|
|
123
125
|
position: relative;
|
|
124
126
|
left: 0;
|
|
125
127
|
right: 0;
|
|
@@ -153,7 +155,7 @@
|
|
|
153
155
|
|
|
154
156
|
.card-content {
|
|
155
157
|
padding: 24px;
|
|
156
|
-
border-radius: 0 0
|
|
158
|
+
border-radius: 0 0 12px 12px;
|
|
157
159
|
|
|
158
160
|
p {
|
|
159
161
|
margin: 0;
|
|
@@ -166,6 +168,12 @@
|
|
|
166
168
|
|
|
167
169
|
i {
|
|
168
170
|
line-height: 32px;
|
|
171
|
+
|
|
172
|
+
// @implement /Users/kzarshenas/Sites/RodeoFx/rodeo_toolkit_2/app/Front/style/scss/component_enhance.scss
|
|
173
|
+
// Sits on the title's baseline with a small gap before the text,
|
|
174
|
+
// instead of floating flush against it mid-line.
|
|
175
|
+
vertical-align: text-bottom;
|
|
176
|
+
margin-right: 6px;
|
|
169
177
|
}
|
|
170
178
|
|
|
171
179
|
&.activator {
|
|
@@ -178,7 +186,7 @@
|
|
|
178
186
|
padding: 0 1.6rem;
|
|
179
187
|
|
|
180
188
|
&:last-child {
|
|
181
|
-
border-radius: 0 0
|
|
189
|
+
border-radius: 0 0 12px 12px;
|
|
182
190
|
}
|
|
183
191
|
// Replaced card links with buttons (Accessibility, @see https://github.com/materializecss/materialize/issues/565)
|
|
184
192
|
a {
|
|
@@ -4,11 +4,24 @@
|
|
|
4
4
|
.collapsible {
|
|
5
5
|
padding-left: 0;
|
|
6
6
|
list-style-type: none;
|
|
7
|
+
background-color: var(--md-sys-color-surface);
|
|
7
8
|
border-top: 1px solid var(--md-sys-color-outline-variant);
|
|
8
9
|
border-right: 1px solid var(--md-sys-color-outline-variant);
|
|
9
10
|
border-left: 1px solid var(--md-sys-color-outline-variant);
|
|
10
11
|
margin: $element-top-margin 0 $element-bottom-margin 0;
|
|
12
|
+
// @implement /Users/kzarshenas/Sites/RodeoFx/rodeo_toolkit_2/app/Front/style/scss/component_enhance.scss
|
|
13
|
+
// Matches the 12px corner radius used across cards, dropdowns and
|
|
14
|
+
// collections instead of square corners.
|
|
15
|
+
border-radius: 12px;
|
|
11
16
|
@extend .z-depth-1;
|
|
17
|
+
|
|
18
|
+
// @implement /Users/kzarshenas/Sites/RodeoFx/rodeo_toolkit_2/app/Front/style/scss/component_enhance.scss
|
|
19
|
+
// Only clip to the rounded corners while every item is closed - an open
|
|
20
|
+
// last item's body needs to be able to grow past the list's own bottom
|
|
21
|
+
// edge instead of being cut off by it.
|
|
22
|
+
&:not(:has(li:last-child.active)) {
|
|
23
|
+
overflow: hidden;
|
|
24
|
+
}
|
|
12
25
|
}
|
|
13
26
|
|
|
14
27
|
.collapsible-header {
|
|
@@ -61,6 +74,43 @@
|
|
|
61
74
|
overflow: hidden;
|
|
62
75
|
}
|
|
63
76
|
|
|
77
|
+
// @implement /Users/kzarshenas/Sites/RodeoFx/rodeo_toolkit_2/app/Front/style/scss/component_enhance.scss
|
|
78
|
+
// Round the corners of the first/last item's own header/body so they
|
|
79
|
+
// follow the list's rounded outline instead of showing a square edge
|
|
80
|
+
// inside it. Longhand corners (not the `border-radius` shorthand) so that
|
|
81
|
+
// a single-item accordion - where the same <li> is both first and last -
|
|
82
|
+
// gets all 4 corners rounded instead of the last-child rule's shorthand
|
|
83
|
+
// wiping out the top corners the first-child rule just set.
|
|
84
|
+
.collapsible > li:first-child .collapsible-header {
|
|
85
|
+
border-top-left-radius: 12px;
|
|
86
|
+
border-top-right-radius: 12px;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.collapsible > li:last-child {
|
|
90
|
+
&:not(.active) .collapsible-header {
|
|
91
|
+
border-bottom-left-radius: 12px;
|
|
92
|
+
border-bottom-right-radius: 12px;
|
|
93
|
+
transition-delay: 250ms;
|
|
94
|
+
transition-property: border-radius;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
&.active .collapsible-body {
|
|
98
|
+
border-radius: 0 0 12px 12px;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// CSS resolves border-radius per-corner, not per-rule: once the
|
|
103
|
+
// :not(.active) rule above stops matching, nothing here fixes the bottom
|
|
104
|
+
// corners back to square, so a more specific rule elsewhere (e.g. the
|
|
105
|
+
// sidenav's `li > a { border-radius: 100px; }` pill styling, which also
|
|
106
|
+
// matches .collapsible-header since it's an <a> inside a sidenav <li>)
|
|
107
|
+
// is free to fill that gap and leave the header rounded on all 4 corners
|
|
108
|
+
// while expanded. Force it explicitly instead of leaving it implicit.
|
|
109
|
+
.collapsible > li.active .collapsible-header {
|
|
110
|
+
border-bottom-left-radius: 0;
|
|
111
|
+
border-bottom-right-radius: 0;
|
|
112
|
+
}
|
|
113
|
+
|
|
64
114
|
// Popout Collapsible
|
|
65
115
|
|
|
66
116
|
.collapsible.popout {
|
|
@@ -3,9 +3,13 @@
|
|
|
3
3
|
.collection {
|
|
4
4
|
padding-left: 0;
|
|
5
5
|
list-style-type: none;
|
|
6
|
+
background-color: var(--md-sys-color-surface);
|
|
6
7
|
margin: $element-top-margin 0 $element-bottom-margin 0;
|
|
7
8
|
border: 1px solid var(--md-sys-color-outline-variant);
|
|
8
|
-
|
|
9
|
+
// @implement /Users/kzarshenas/Sites/RodeoFx/rodeo_toolkit_2/app/Front/style/scss/component_enhance.scss
|
|
10
|
+
// Matches the 12px corner radius used across cards, dropdowns and
|
|
11
|
+
// collapsibles instead of the near-square 2px default.
|
|
12
|
+
border-radius: 12px;
|
|
9
13
|
overflow: hidden;
|
|
10
14
|
position: relative;
|
|
11
15
|
|
|
@@ -30,6 +34,9 @@
|
|
|
30
34
|
height: 42px;
|
|
31
35
|
overflow: hidden;
|
|
32
36
|
left: 15px;
|
|
37
|
+
top: 21px; // vertically center within the 84px min-height row - without
|
|
38
|
+
// this, absolute's default "static position" fallback puts
|
|
39
|
+
// an <img> and an <i> icon glyph at different heights
|
|
33
40
|
display: inline-block;
|
|
34
41
|
vertical-align: middle;
|
|
35
42
|
}
|
|
@@ -86,7 +93,11 @@
|
|
|
86
93
|
|
|
87
94
|
&.with-header {
|
|
88
95
|
.collection-header {
|
|
89
|
-
|
|
96
|
+
// @implement /Users/kzarshenas/Sites/RodeoFx/rodeo_toolkit_2/app/Front/style/scss/component_enhance.scss
|
|
97
|
+
// A tinted header reads as its own row instead of blending into the
|
|
98
|
+
// list; it also isn't text, so it shouldn't be selectable.
|
|
99
|
+
background-color: var(--md-sys-color-surface-variant);
|
|
100
|
+
user-select: none;
|
|
90
101
|
border-bottom: 1px solid var(--md-sys-color-outline-variant);
|
|
91
102
|
padding: 10px 20px;
|
|
92
103
|
}
|
|
@@ -23,6 +23,11 @@
|
|
|
23
23
|
opacity: 0;
|
|
24
24
|
width: 0;
|
|
25
25
|
height: 0;
|
|
26
|
+
// @implement /Users/kzarshenas/Sites/RodeoFx/rodeo_toolkit_2/app/Front/style/scss/component_enhance.scss
|
|
27
|
+
// Without this, an inherited padding can push the (invisible, 0x0)
|
|
28
|
+
// checkbox out of alignment with the lever it's meant to sit under.
|
|
29
|
+
box-sizing: border-box;
|
|
30
|
+
padding: 0 !important;
|
|
26
31
|
|
|
27
32
|
// CHECKED
|
|
28
33
|
// Track
|
|
@@ -50,7 +50,7 @@ textarea.materialize-textarea {
|
|
|
50
50
|
|
|
51
51
|
// Default
|
|
52
52
|
|
|
53
|
-
input, textarea {
|
|
53
|
+
input:not([type=checkbox]):not([type=radio]), textarea {
|
|
54
54
|
box-sizing: border-box; /* https://stackoverflow.com/questions/1377719/padding-within-inputs-breaks-width-100*/
|
|
55
55
|
padding: 0 16px;
|
|
56
56
|
padding-top: 20px;
|
|
@@ -180,7 +180,7 @@ textarea.materialize-textarea {
|
|
|
180
180
|
|
|
181
181
|
&.outlined {
|
|
182
182
|
|
|
183
|
-
input, textarea {
|
|
183
|
+
input:not([type=checkbox]):not([type=radio]), textarea {
|
|
184
184
|
padding-top: 0;
|
|
185
185
|
background-color: transparent; //(--md-sys-color-background);
|
|
186
186
|
border: 1px solid var(--md-sys-color-on-surface-variant);
|
|
@@ -225,7 +225,7 @@ textarea.materialize-textarea {
|
|
|
225
225
|
// border/label/text below should pick up the error color.
|
|
226
226
|
background-color: transparent;
|
|
227
227
|
|
|
228
|
-
input, textarea {
|
|
228
|
+
input:not([type=checkbox]):not([type=radio]), textarea {
|
|
229
229
|
border-color: var(--md-sys-color-error);
|
|
230
230
|
}
|
|
231
231
|
input:focus:not([readonly]), textarea:focus:not([readonly]) {
|