material-inspired-component-library 4.0.1 → 5.0.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/README.md CHANGED
@@ -106,9 +106,13 @@ The library currently consists of the following components:
106
106
  - [x] [Stepper](components/stepper/README.md)
107
107
  - [x] [Switch](components/switch/README.md)
108
108
  - [x] [Text field](components/textfield/README.md)
109
+ - [x] [Time picker](components/timepicker/README.md)
109
110
 
110
111
  ## Change Log ↪️
111
112
 
113
+ ### 5.0.0 (02.12.2025)
114
+ - **Time picker**: New component.
115
+
112
116
  ### 4.0.0 (27.10.2025)
113
117
  - **BREAKING**: Moved layout.scss til sub-folder.
114
118
  - **Alert**: New component.
@@ -112,5 +112,25 @@ Use a [Divider component](../divider/README.md) to separate neighbouring accordi
112
112
 
113
113
  Since the Accordion is based on the List component, you can use the same utility classes for content structure and styling. Refer to the [List component documentation](../list/README.md) for details on how to add icons, avatars, images, and other features to your accordion items.
114
114
 
115
+ ## Customizations
116
+ You can customize the appearance of the Accordion component by overriding its own global CSS variables and those from the List component. These variables are declared on the `:root` pseudo-class and can be changed on any appropriate parent element to affect its child accordions.
117
+
118
+ | Variable name | Default Value | Description |
119
+ | ------------- | ------------- | ----------- |
120
+ | --md-sys-accordion-item-space | 0px | The space between an opened accordion item and its next neighbour. |
121
+
122
+ **Example: Changing the margin between an opened item and the next**
123
+
124
+ ```HTML
125
+ <div class="micl-list" role="listbox" style="--md-sys-accordion-item-space:4px">
126
+ <details>
127
+ ...
128
+ </details>
129
+ <details>
130
+ ...
131
+ </details>
132
+ </div>
133
+ ```
134
+
115
135
  ## Compatibility
116
136
  The Card component uses the `interpolate-size` CSS property to smoothly open and close the detail area of a Details disclosure element, which might not be supported in your browser. Please check [Browser compatibility](https://developer.mozilla.org/en-US/docs/Web/CSS/interpolate-size#browser_compatibility) for details.
@@ -1,5 +1,5 @@
1
1
  # Alert
2
- This component is an Alert component inspired by [Material Design 3 Expressive](https://m3.material.io/components). Alerts are used to inform the user of important changes in a prominent way.
2
+ Alerts are used to inform the user of important changes in a prominent way. This component is inspired by [Material Design 3 Expressive](https://m3.material.io/components).
3
3
 
4
4
  ## Basic Usage
5
5
 
@@ -46,16 +46,28 @@ Alerts are available in **three distinct styles**:
46
46
 
47
47
  - `micl-alert-tonal`: An alert with a lighter background color. This is the style shown in the Basic Usage section.
48
48
 
49
- - `micl-alert-outlined`: An alert with a clear border, typically used for less prominent content.
49
+ - `micl-alert-outlined`: An alert with a clear border and a transparent background, typically used for less prominent content.
50
+
51
+ You can change the component's color to reflect different semantic meanings or states.
52
+
53
+ **By default, all alert styles use the error-style color scheme.**
54
+
55
+ To change the color, add one of the following modifier classes to the main `<div>` element.
56
+
57
+ | Class name | Description |
58
+ | ---------- | ----------- |
59
+ | micl-alert--primary | Uses the main color scheme of your application |
60
+ | micl-alert--secondary | Uses a color scheme that is less prominent than the main one |
61
+ | micl-alert--tertiary | Uses a color scheme that provides contrasting accents |
50
62
 
51
63
  ### Alert Content Structure
52
- The alert in the Basic Usage section shows all available structural elements:
64
+ The Alert component is built with a few key structural elements.
53
65
 
54
- - `micl-alert__icon`: An optional icon that appears before the alert text.
66
+ - `micl-alert__icon` (optional): A container for an icon, typically from a library like Material Symbols. It appears before the alert text.
55
67
 
56
- - `micl-alert__text`: A container for the main alert heading (`<h1>`-`<h6>`) and the supporting text.
68
+ - `micl-alert__text`: A container for the main alert heading (`<h1>`-`<h6>`) and supporting text.
57
69
 
58
- - `micl-alert__supporting-text`: Intended for a short description or supplementary information, and displayed in a smaller font.
70
+ - `micl-alert__supporting-text` (optional): Used for a short description or supplementary information. It is displayed in a smaller font.
59
71
 
60
72
  ## Customizations
61
73
  You can customize the appearance of the Alert component by overriding its global CSS variables. These variables are declared on the `:root` pseudo-class and can be changed on any appropriate parent element to affect its child alert.
@@ -63,7 +75,7 @@ You can customize the appearance of the Alert component by overriding its global
63
75
  | Variable name | Default Value | Description |
64
76
  | ------------- | ------------- | ----------- |
65
77
  | --md-sys-alert-padding | 16px | The inner padding between the alert's edge and its content |
66
- | --md-sys-alert-space | 16px | Sets the spacing between the icon and the text |
78
+ | --md-sys-alert-space | 16px | The spacing between the optional icon and the text container |
67
79
 
68
80
  **Example: Changing the padding**
69
81
 
@@ -92,4 +92,4 @@ You can also use other icon libraries. For example, with the [Bootstrap Icons li
92
92
  ```
93
93
 
94
94
  ## Compatibility
95
- This component uses the `color-mix` CSS functional notation, which might not be supported in your browser. Please check [Browser compatibility](https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/color-mix#browser_compatibility) for details.
95
+ This component utilizes relative RGB color values, which may not be fully supported in your browser. Please check [Browser compatibility](https://developer.mozilla.org/en-US/docs/Web/CSS/color_value#browser_compatibility) for details.
@@ -62,7 +62,9 @@ button.micl-button-outlined-xl {
62
62
 
63
63
  position: relative;
64
64
  display: inline-flex;
65
+ flex-shrink: 0;
65
66
  align-items: center;
67
+ justify-content: center;
66
68
  padding: 0;
67
69
  border: none;
68
70
  border-radius: calc(var(--micl-height) / 2);
@@ -115,15 +117,16 @@ button.micl-button-outlined-xs {
115
117
  min-inline-size: var(--micl-width);
116
118
  block-size: var(--micl-height);
117
119
  min-block-size: var(--micl-height);
118
- column-gap: 8px;
120
+ column-gap: 4px;
119
121
  padding-inline: 12px;
120
122
 
121
123
  &::before {
122
124
  content: "";
123
125
  position: absolute;
124
- block-size: var(--md-sys-target-size);
125
- inline-size: var(--md-sys-target-size);
126
- inset: calc((var(--micl-height) - var(--md-sys-target-size)) / 2) 0 0 calc((var(--micl-width) - var(--md-sys-target-size)) / 2);
126
+ block-size: var(--md-sys-target-size, 48px);
127
+ inline-size: 100%;
128
+ min-inline-size: var(--md-sys-target-size, 48px);
129
+ inset: calc((var(--micl-height) - var(--md-sys-target-size, 48px)) / 2) 0 0 calc((min(100%, var(--md-sys-target-size, 48px)) - var(--md-sys-target-size, 48px)) / 2);
127
130
  background-color: transparent;
128
131
  }
129
132
  &.micl-button--toggle.micl-button--selected {
@@ -133,7 +136,7 @@ button.micl-button-outlined-xs {
133
136
  border-radius: var(--md-sys-shape-corner-medium);
134
137
 
135
138
  &.micl-button--toggle.micl-button--selected {
136
- border-radius: var(--md-sys-shape-corner-full);
139
+ border-radius: calc(var(--micl-height) / 2);
137
140
  }
138
141
  }
139
142
  &:not(:disabled) {
@@ -143,7 +146,7 @@ button.micl-button-outlined-xs {
143
146
  }
144
147
  .micl-button__icon {
145
148
  font-size: 20px;
146
- width: 20px;
149
+ inline-size: 20px;
147
150
  }
148
151
  }
149
152
 
@@ -167,9 +170,10 @@ button.micl-button-outlined-s {
167
170
  &::before {
168
171
  content: "";
169
172
  position: absolute;
170
- block-size: var(--md-sys-target-size);
171
- inline-size: var(--md-sys-target-size);
172
- inset: calc((var(--micl-height) - var(--md-sys-target-size)) / 2) 0 0 calc((var(--micl-width) - var(--md-sys-target-size)) / 2);
173
+ block-size: var(--md-sys-target-size, 48px);
174
+ inline-size: 100%;
175
+ min-inline-size: var(--md-sys-target-size, 48px);
176
+ inset: calc((var(--micl-height) - var(--md-sys-target-size, 48px)) / 2) 0 0 calc((min(100%, var(--md-sys-target-size, 48px)) - var(--md-sys-target-size, 48px)) / 2);
173
177
  background-color: transparent;
174
178
  }
175
179
  &.micl-button--toggle.micl-button--selected {
@@ -179,7 +183,7 @@ button.micl-button-outlined-s {
179
183
  border-radius: var(--md-sys-shape-corner-medium);
180
184
 
181
185
  &.micl-button--toggle.micl-button--selected {
182
- border-radius: var(--md-sys-shape-corner-full);
186
+ border-radius: calc(var(--micl-height) / 2);
183
187
  }
184
188
  }
185
189
  &:not(:disabled) {
@@ -189,7 +193,7 @@ button.micl-button-outlined-s {
189
193
  }
190
194
  .micl-button__icon {
191
195
  font-size: 20px;
192
- width: 20px;
196
+ inline-size: 20px;
193
197
  }
194
198
  }
195
199
 
@@ -217,17 +221,17 @@ button.micl-button-outlined-m {
217
221
  border-radius: var(--md-sys-shape-corner-large);
218
222
 
219
223
  &.micl-button--toggle.micl-button--selected {
220
- border-radius: var(--md-sys-shape-corner-full);
224
+ border-radius: calc(var(--micl-height) / 2);
221
225
  }
222
226
  }
223
227
  &:not(:disabled) {
224
228
  &:active {
225
- border-radius: var(--md-sys-shape-corner-small);
229
+ border-radius: var(--md-sys-shape-corner-medium);
226
230
  }
227
231
  }
228
232
  .micl-button__icon {
229
233
  font-size: var(--md-sys-layout-icon-size, 24px);
230
- width: var(--md-sys-layout-icon-size, 24px);
234
+ inline-size: var(--md-sys-layout-icon-size, 24px);
231
235
  }
232
236
  }
233
237
 
@@ -254,7 +258,7 @@ button.micl-button-outlined-l {
254
258
  border-radius: var(--md-sys-shape-corner-extra-large);
255
259
 
256
260
  &.micl-button--toggle.micl-button--selected {
257
- border-radius: var(--md-sys-shape-corner-full);
261
+ border-radius: calc(var(--micl-height) / 2);
258
262
  }
259
263
  }
260
264
  &:not(:disabled) {
@@ -264,7 +268,7 @@ button.micl-button-outlined-l {
264
268
  }
265
269
  .micl-button__icon {
266
270
  font-size: 32px;
267
- width: 32px;
271
+ inline-size: 32px;
268
272
  }
269
273
  }
270
274
 
@@ -291,7 +295,7 @@ button.micl-button-outlined-xl {
291
295
  border-radius: var(--md-sys-shape-corner-extra-large);
292
296
 
293
297
  &.micl-button--toggle.micl-button--selected {
294
- border-radius: var(--md-sys-shape-corner-full);
298
+ border-radius: calc(var(--micl-height) / 2);
295
299
  }
296
300
  }
297
301
  &:not(:disabled) {
@@ -301,7 +305,7 @@ button.micl-button-outlined-xl {
301
305
  }
302
306
  .micl-button__icon {
303
307
  font-size: 40px;
304
- width: 40px;
308
+ inline-size: 40px;
305
309
  }
306
310
  }
307
311
 
@@ -373,11 +377,11 @@ button.micl-button-elevated-xl {
373
377
  }
374
378
  }
375
379
  button.micl-button-elevated-xs {
376
- height: 32px;
380
+ block-size: 32px;
377
381
  border: none;
378
382
  }
379
383
  button.micl-button-elevated-s {
380
- height: 40px;
384
+ block-size: 40px;
381
385
  border: none;
382
386
  }
383
387
 
@@ -1,5 +1,5 @@
1
1
  # Dialog
2
- This component implements the [Material Design 3 Expressive Dialog](https://m3.material.io/components/dialogs/overview) design.
2
+ This component implements the [Material Design 3 Expressive Dialog](https://m3.material.io/components/dialogs/overview) design. A dialog is a small window that prompts the user to make a decision or enter additional information.
3
3
 
4
4
  ## Basic Usage
5
5
 
@@ -7,7 +7,7 @@ This component implements the [Material Design 3 Expressive Dialog](https://m3.m
7
7
  To create a basic dialog, use the `<dialog>` element with the `micl-dialog` class. You can open and close the dialog using JavaScript, or you can use a control element, such as a button, to open and close the dialog.
8
8
 
9
9
  ```HTML
10
- <dialog id="mydialog" class="micl-dialog" closedby="any" popover aria-labelledby="mytitle" aria-describedby="mydesc">
10
+ <dialog id="mydialog" class="micl-dialog" popover closedby="any" role="alertdialog" aria-labelledby="mytitle" aria-describedby="mydesc">
11
11
  <div class="micl-dialog__headline">
12
12
  <h2 id="mytitle">Basic dialog</h2>
13
13
  <span id="mydesc" class="micl-dialog__supporting-text">An example of a basic dialog</span>
@@ -45,7 +45,7 @@ When dialogs with the `popover` attribute are opened, they animate from the cont
45
45
  Removing the `popover` attribute creates a more intrusive **modal** dialog. This type of dialog requires the user to interact with its buttons or press the <kbd>Esc</kbd> key to close it.
46
46
 
47
47
  ```HTML
48
- <dialog id="mydialog" class="micl-dialog" closedby="closerequest" aria-labelledby="mytitle" aria-describedby="mydesc">
48
+ <dialog id="mydialog" class="micl-dialog" closedby="closerequest" role="alertdialog" aria-labelledby="mytitle" aria-describedby="mydesc">
49
49
  <div class="micl-dialog__headline">
50
50
  <span class="micl-dialog__icon material-symbols-outlined" aria-hidden="true">info</span>
51
51
  <h2 id="mytitle">Modal dialog</h2>
@@ -53,8 +53,8 @@ Removing the `popover` attribute creates a more intrusive **modal** dialog. This
53
53
  </div>
54
54
  <div class="micl-dialog__actions">
55
55
  <form method="dialog">
56
- <button class="micl-button">Cancel</button>
57
- <button class="micl-button">Save</button>
56
+ <button class="micl-button-text-s">Cancel</button>
57
+ <button class="micl-button-text-s">Save</button>
58
58
  </form>
59
59
  </div>
60
60
  </dialog>
@@ -67,14 +67,13 @@ Removing the `popover` attribute creates a more intrusive **modal** dialog. This
67
67
  By default, modal dialogs open in the center of the screen. You can anchor a modal dialog to a control element, causing it to open relative to that element:
68
68
 
69
69
  ```HTML
70
- <dialog id="mydialog" class="micl-dialog" closedby="closerequest" style="position-anchor:--myanchor">
70
+ <dialog id="mydialog" class="micl-dialog" style="position-anchor:--myanchor">
71
71
  </dialog>
72
72
 
73
73
  <button type="button" popovertarget="mydialog" style="anchor-name:--myanchor">Open Modal Dialog</button>
74
74
  ```
75
75
 
76
76
  ### Dialog Structure Sections
77
-
78
77
  A dialog typically consists of three main sections to organize its content:
79
78
 
80
79
  - `micl-dialog__headline`: The header of the dialog. It usually contains:
@@ -92,22 +91,22 @@ A dialog typically consists of three main sections to organize its content:
92
91
  - `micl-dialog__actions`: A container for action buttons that allow the user to perform actions related to the dialog or close it. Actions are typically placed in a `<form method="dialog">` for native HTML dialog closing.
93
92
 
94
93
  ### Full-screen dialog
95
- A full-screen dialog covers the entire viewport, primarily on smaller screens. On screens wider than 560 pixels, a full-screen dialog behaves like a basic dialog. Use the `micl-dialog-fullscreen` class for this variant:
94
+ A full-screen dialog covers the entire viewport, primarily on smaller screens. On screens wider than 560 pixels, a full-screen dialog behaves like a basic dialog. Use the `micl-dialog--fullscreen` modifier class for this variant:
96
95
 
97
96
  ```HTML
98
- <dialog id="mydialog" class="micl-dialog-fullscreen" closedby="none" popover aria-labelledby="mytitle" aria-describedby="mydesc">
97
+ <dialog id="mydialog" class="micl-dialog micl-dialog--fullscreen" closedby="none" popover aria-labelledby="mytitle" aria-describedby="mydesc">
99
98
  <form method="dialog" class="micl-dialog__headline">
100
99
  <button type="button" class="micl-iconbutton-s material-symbols-outlined" popovertarget="mydialog" aria-label="Close">close</button>
101
100
  <span class="micl-dialog__icon material-symbols-outlined" aria-hidden="true">person</span>
102
101
  <h2 id="mytitle">Full-screen dialog</h2>
103
- <button class="micl-button" value="dosave">Save</button>
102
+ <button class="micl-button-text-s" value="dosave">Save</button>
104
103
  </form>
105
104
  <div class="micl-dialog__content">
106
105
  <span id="mydesc" class="micl-dialog__supporting-text">This dialog covers the whole screen.</span>
107
106
  </div>
108
107
  <form method="dialog" class="micl-dialog__actions">
109
- <button type="button" class="micl-button" popovertarget="mydialog">Cancel</button>
110
- <button class="micl-button" value="dosave">Save</button>
108
+ <button type="button" class="micl-button-text-s" popovertarget="mydialog">Cancel</button>
109
+ <button class="micl-button-text-s" value="dosave">Save</button>
111
110
  </form>
112
111
  </dialog>
113
112
 
@@ -123,7 +122,10 @@ You can customize the appearance of the Dialog component by overriding its globa
123
122
 
124
123
  | Variable name | Default Value | Description |
125
124
  | ------------- | ----- | ----------- |
125
+ | --md-sys-dialog-min-width | 280px | The minimum width of a dialog |
126
+ | --md-sys-dialog-max-width | 560px | The maximum width of a dialog |
126
127
  | --md-sys-dialog-padding | 24px | The inner padding between the dialog's edge and its content |
128
+ | --md-sys-dialog-headline-space | 16px | The vertical spacing between the elements in the header |
127
129
 
128
130
  **Example: Changing the dialog padding**
129
131
 
@@ -27,7 +27,10 @@
27
27
  @use '../../styles/typography';
28
28
 
29
29
  :root {
30
+ --md-sys-dialog-min-width: 280px;
31
+ --md-sys-dialog-max-width: 560px;
30
32
  --md-sys-dialog-padding: 24px;
33
+ --md-sys-dialog-headline-space: 16px;
31
34
  --md-sys-dialog-dir-factor: 1;
32
35
  }
33
36
 
@@ -35,8 +38,7 @@
35
38
  --md-sys-dialog-dir-factor: -1;
36
39
  }
37
40
 
38
- dialog.micl-dialog,
39
- dialog.micl-dialog-fullscreen {
41
+ dialog.micl-dialog {
40
42
  --statelayer-color: var(--md-sys-color-primary);
41
43
  --md-sys-dialog-motion-spatial: #{motion.$md-sys-motion-expressive-fast-spatial};
42
44
  --md-sys-dialog-motion-duration: #{motion.$md-sys-motion-expressive-fast-spatial-duration};
@@ -45,12 +47,12 @@ dialog.micl-dialog-fullscreen {
45
47
  box-sizing: border-box;
46
48
  display: none;
47
49
  flex-direction: column;
48
- min-width: 280px;
49
- max-width: 560px;
50
- max-height: 100vh;
50
+ min-inline-size: var(--md-sys-dialog-min-width, 280px);
51
+ max-inline-size: var(--md-sys-dialog-max-width, 560px);
52
+ max-block-size: 100vh;
51
53
  inset-block-start: anchor(start);
52
54
  inset-inline-start: anchor(start);
53
- transform: translate(calc(var(--md-sys-dialog-dir-factor) * -50%), -50%) scale(50%);
55
+ transform: translate(calc(var(--md-sys-dialog-dir-factor, 1) * -50%), -50%) scale(50%);
54
56
  padding: 0;
55
57
  margin: 0;
56
58
  border: none;
@@ -65,8 +67,8 @@ dialog.micl-dialog-fullscreen {
65
67
  transition:
66
68
  inset-block-start var(--md-sys-dialog-motion-duration-reverse) linear,
67
69
  inset-inline-start var(--md-sys-dialog-motion-duration-reverse) linear,
68
- width var(--md-sys-dialog-motion-duration-reverse) linear,
69
- height var(--md-sys-dialog-motion-duration-reverse) linear,
70
+ inline-size var(--md-sys-dialog-motion-duration-reverse) linear,
71
+ block-size var(--md-sys-dialog-motion-duration-reverse) linear,
70
72
  transform var(--md-sys-dialog-motion-duration-reverse) linear,
71
73
  opacity var(--md-sys-dialog-motion-duration-reverse) motion.$md-sys-motion-easing-emphasized-decelerate,
72
74
  overlay var(--md-sys-dialog-motion-duration-reverse) linear allow-discrete,
@@ -74,12 +76,12 @@ dialog.micl-dialog-fullscreen {
74
76
  --statelayer-opacity var(--md-sys-dialog-motion-duration) linear;
75
77
 
76
78
  @starting-style {
77
- height: fit-content;
78
- width: fit-content;
79
+ block-size: fit-content;
80
+ inline-size: fit-content;
79
81
  inset-block-start: anchor(start);
80
82
  inset-inline-start: anchor(start);
81
83
  opacity: 0;
82
- transform: translate(calc(var(--md-sys-dialog-dir-factor) * -50%), -50%) scale(50%);
84
+ transform: translate(calc(var(--md-sys-dialog-dir-factor, 1) * -50%), -50%) scale(50%);
83
85
  }
84
86
 
85
87
  &:popover-open,
@@ -88,12 +90,12 @@ dialog.micl-dialog-fullscreen {
88
90
  inset-block-start: 50%;
89
91
  inset-inline-start: 50%;
90
92
  opacity: 1;
91
- transform: translate(calc(var(--md-sys-dialog-dir-factor) * -50%), -50%) scale(100%);
93
+ transform: translate(calc(var(--md-sys-dialog-dir-factor, 1) * -50%), -50%) scale(100%);
92
94
  transition:
93
95
  inset-block-start var(--md-sys-dialog-motion-duration) linear,
94
96
  inset-inline-start var(--md-sys-dialog-motion-duration) linear,
95
- width var(--md-sys-dialog-motion-duration) linear,
96
- height var(--md-sys-dialog-motion-duration) linear,
97
+ inline-size var(--md-sys-dialog-motion-duration) linear,
98
+ block-size var(--md-sys-dialog-motion-duration) linear,
97
99
  transform var(--md-sys-dialog-motion-duration) linear,
98
100
  opacity var(--md-sys-dialog-motion-duration) motion.$md-sys-motion-easing-emphasized-accelerate,
99
101
  overlay var(--md-sys-dialog-motion-duration) linear allow-discrete,
@@ -103,7 +105,7 @@ dialog.micl-dialog-fullscreen {
103
105
  inset-block-start: anchor(start);
104
106
  inset-inline-start: anchor(start);
105
107
  opacity: 0;
106
- transform: translate(calc(var(--md-sys-dialog-dir-factor) * -50%), -50%) scale(50%);
108
+ transform: translate(calc(var(--md-sys-dialog-dir-factor, 1) * -50%), -50%) scale(50%);
107
109
  }
108
110
  }
109
111
  &:not([popover]) {
@@ -148,43 +150,41 @@ dialog.micl-dialog-fullscreen {
148
150
  flex-shrink: 0;
149
151
  align-items: flex-start;
150
152
  gap: 16px;
151
- padding: var(--md-sys-dialog-padding);
153
+ padding-block: var(--md-sys-dialog-padding, 24px) var(--md-sys-dialog-headline-space, 16px);
154
+ padding-inline: var(--md-sys-dialog-padding, 24px);
152
155
  background-color: transparent;
153
156
 
157
+ &:has(> .micl-dialog__icon) {
158
+ align-items: center;
159
+ }
160
+ .micl-dialog__icon {
161
+ inline-size: var(--md-sys-layout-icon-size, 24px);
162
+ block-size: var(--md-sys-layout-icon-size, 24px);
163
+ font-size: var(--md-sys-layout-icon-size, 24px);
164
+ color: var(--md-sys-color-secondary);
165
+ }
154
166
  h1, h2, h3, h4, h5, h6, .micl-heading {
155
167
  @include typography.headline-small;
156
168
 
157
169
  flex: 1 1 100%;
158
170
  margin: 0;
159
- overflow: hidden;
160
- text-overflow: ellipsis;
161
- white-space: nowrap;
162
171
  color: var(--md-sys-color-on-surface);
163
172
  }
164
- .micl-dialog__icon {
165
- width: var(--md-sys-layout-icon-size, 24px);
166
- height: var(--md-sys-layout-icon-size, 24px);
167
- font-size: var(--md-sys-layout-icon-size, 24px);
168
- color: var(--md-sys-color-secondary);
169
- }
170
173
  button {
171
174
  display: none;
172
175
  }
173
- &+ .micl-dialog__actions {
174
- padding-block-start: 0;
175
- }
176
- }
177
- .micl-dialog__headline:has(> .micl-dialog__icon) {
178
- align-items: center;
179
- }
180
- .micl-dialog__subhead {
181
- @include typography.title-medium;
176
+ .micl-dialog__subhead {
177
+ @include typography.title-medium;
182
178
 
183
- padding-inline: var(--md-sys-dialog-padding);
184
- overflow: hidden;
185
- text-overflow: ellipsis;
186
- white-space: nowrap;
187
- color: var(--md-sys-color-on-surface)
179
+ padding-inline: var(--md-sys-dialog-padding, 24px);
180
+ overflow: hidden;
181
+ text-overflow: ellipsis;
182
+ white-space: nowrap;
183
+ color: var(--md-sys-color-on-surface)
184
+ }
185
+ &:has(+ .micl-dialog__actions) {
186
+ padding-block-end: 0;
187
+ }
188
188
  }
189
189
  .micl-dialog__supporting-text {
190
190
  @include typography.body-medium;
@@ -193,7 +193,7 @@ dialog.micl-dialog-fullscreen {
193
193
  }
194
194
  .micl-dialog__content {
195
195
  flex-shrink: 1;
196
- padding-inline: var(--md-sys-dialog-padding);
196
+ padding-inline: var(--md-sys-dialog-padding, 24px);
197
197
  background-color: inherit;
198
198
  overflow-y: auto;
199
199
  }
@@ -202,18 +202,21 @@ dialog.micl-dialog-fullscreen {
202
202
  flex-shrink: 0;
203
203
  justify-content: flex-end;
204
204
  column-gap: 8px;
205
- padding: var(--md-sys-dialog-padding);
205
+ padding: var(--md-sys-dialog-padding, 24px);
206
206
  opacity: 1;
207
- transition: opacity var(--md-sys-dialog-motion-duration) linear;
207
+ transition:
208
+ opacity var(--md-sys-dialog-motion-duration) linear allow-discrete,
209
+ overlay var(--md-sys-dialog-motion-duration) linear allow-discrete,
210
+ display var(--md-sys-dialog-motion-duration) linear allow-discrete;
208
211
  }
209
212
  }
210
213
 
211
- dialog.micl-dialog-fullscreen {
214
+ dialog.micl-dialog.micl-dialog--fullscreen {
212
215
  @media (max-width: 560px) {
213
- width: 100vw;
214
- height: 100vh;
215
- max-width: 100vw;
216
- border-radius: var(--md-sys-shape-corner-none);
216
+ inline-size: 100vw;
217
+ block-size: 100vh;
218
+ max-inline-size: 100vw;
219
+ border-radius: var(--md-sys-shape-corner-none, 0px);
217
220
  background-color: var(--md-sys-color-surface);
218
221
  box-shadow: var(--md-sys-elevation-level0);
219
222
  timeline-scope: --headlineTimeline;
@@ -222,11 +225,12 @@ dialog.micl-dialog-fullscreen {
222
225
  // --statelayer-opacity: var(--md-sys-state-hover-state-layer-opacity);
223
226
  // }
224
227
  .micl-dialog__headline {
225
- height: 56px;
228
+ block-size: 56px;
226
229
  flex-direction: row;
227
230
  align-items: center;
228
- gap: 4px;
229
- padding: 4px;
231
+ gap: 8px;
232
+ padding-block: 4px;
233
+ padding-inline: 8px 16px;
230
234
  animation-name: headlineScroll;
231
235
  animation-duration: 1ms;
232
236
  animation-timeline: --headlineTimeline;
@@ -246,10 +250,10 @@ dialog.micl-dialog-fullscreen {
246
250
  display:none;
247
251
  }
248
252
  button {
249
- display: inline-block;
253
+ display: block;
250
254
 
251
255
  &.micl-button {
252
- margin-right: 16px;
256
+ margin-inline-end: 16px;
253
257
  }
254
258
  }
255
259
  }
@@ -258,11 +262,18 @@ dialog.micl-dialog-fullscreen {
258
262
  scroll-timeline: --headlineTimeline vertical;
259
263
  }
260
264
  .micl-dialog__actions {
265
+ display: none;
261
266
  opacity: 0;
262
267
  }
263
268
  }
264
269
  }
265
270
 
271
+ @media (max-width: 560px) {
272
+ body:has(dialog.micl-dialog.micl-dialog--fullscreen:popover-open) {
273
+ overflow-y: hidden;
274
+ }
275
+ }
276
+
266
277
  @keyframes headlineScroll {
267
278
  from {
268
279
  background-color: transparent;
@@ -34,7 +34,7 @@ body {
34
34
  .micl-divider-inset-end {
35
35
  inline-size: 100%;
36
36
  block-size: 0;
37
- margin-block: calc(var(--md-sys-divider-space, 4px) - 1px) var(--md-sys-divider-space, 4px);
37
+ margin-block: calc(var(--md-sys-divider-space, 4px) - 0.5px) calc(var(--md-sys-divider-space, 4px) - 0.5px);
38
38
  margin-inline: 0;
39
39
  border: none;
40
40
  border-block-start: var(--md-sys-divider-thickness, 1px) solid var(--md-sys-divider-color, gray);
@@ -63,3 +63,9 @@ body {
63
63
  border: none;
64
64
  border-inline-start: var(--md-sys-divider-thickness, 1px) solid var(--md-sys-divider-color, gray);
65
65
  }
66
+
67
+ li.micl-divider {
68
+ list-style: none;
69
+ box-shadow: 0 calc(-1 * var(--md-sys-divider-space, 4px) / 2) 0 calc(var(--md-sys-divider-space, 4px) / 2) var(--md-sys-list-item-container-color),
70
+ 0 calc(var(--md-sys-divider-space, 4px) / 2) 0 calc(var(--md-sys-divider-space, 4px) / 2) var(--md-sys-list-item-container-color);
71
+ }
@@ -86,4 +86,4 @@ You can also use other icon libraries. For example, with the [Bootstrap Icons li
86
86
  ```
87
87
 
88
88
  ## Compatibility
89
- This component uses the `color-mix` CSS functional notation, which might not be supported in your browser. Please check [Browser compatibility](https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/color-mix#browser_compatibility) for details.
89
+ This component utilizes relative RGB color values, which may not be fully supported in your browser. Please check [Browser compatibility](https://developer.mozilla.org/en-US/docs/Web/CSS/color_value#browser_compatibility) for details.