<style>
:host {
height: 556px;
width: 512px;
}
.body-wrapper {
box-sizing: border-box;
display: flex;
flex-direction: column;
height: 320px;
padding: 32px;
width: 512px;
}
#content {
flex-grow: 1;
max-height: 192px;
overflow: scroll;
}
#dialog:focus-visible {
outline: none;
}
#content.fade-top::before {
background: linear-gradient(var(--cros-sys-app_base) 0,
transparent 100%);
bottom: 268px; /* margin + buttons + content margin and height - height */
content: '';
height: 20px;
left: 0;
pointer-events: none;
position: absolute;
width: 100%;
}
@media (prefers-color-scheme: dark) {
#content.fade-top::before {
background: linear-gradient(var(--cros-bg-color-elevation-3) 0,
transparent 100%);
}
}
#content.fade-bottom::after {
background: linear-gradient(transparent 0,
var(--cros-sys-app_base) 100%);
bottom: 96px; /* margin + buttons + content margin */
content: '';
height: 20px;
left: 0;
pointer-events: none;
position: absolute;
width: 100%;
}
@media (prefers-color-scheme: dark) {
#content.fade-bottom::after {
background: linear-gradient(transparent 0,
var(--cros-bg-color-elevation-3) 100%);
}
}
#header-image {
background-color: var(--cros-sys-app_base_shaded);
height: 236px;
width: 512px;
}
::slotted([slot=header-image]) {
--cros-sys-illo-color1-1: var(--cros-sys-illo-elevated-color1-1);
--cros-sys-illo-color1-2: var(--cros-sys-illo-elevated-color1-2);
--cros-sys-illo-base: var(--cros-sys-illo-elevated-base);
--cros-sys-illo-secondary: var(--cros-sys-illo-elevated-secondary);
height: 100%;
width: 100%;
}
::slotted([slot=title]) {
color: var(--cros-sys-on_surface);
font: var(--cros-display-6-font);
}
::slotted([slot=body]) {
color: var(--cros-sys-on_surface_variant);
font: var(--cros-body-2-font);
margin-block-start: 16px;
}
::slotted([slot=button-container]) {
display: flex;
justify-content: flex-end;
width: 100%;
}
div#footer {
display: flex;
margin-block-start: 32px;
}
cr-button {
--active-bg: transparent;
--active-shadow: none;
--active-shadow-action: none;
--bg-action: var(--cros-sys-primary);
--cr-button-height: 36px;
--disabled-bg-action:
var(--cros-sys-disabled_container);
--disabled-bg: var(--cros-sys-disabled_container);;
--disabled-text-color: var(--cros-sys-disabled);
/* Use the default bg color as hover color because we
rely on hoverBackground layer below. */
--hover-bg-action: var(--cros-sys-primary);
--hover-bg-color: var(--cros-sys-primary_container);
--ink-color: var(--cros-sys-ripple_primary);
--ripple-opacity-action: 1;
--ripple-opacity: 1;
--text-color-action: var(--cros-sys-on_primary);
--text-color: var(--cros-sys-on_primary_container);
border: none;
border-radius: 18px;
box-shadow: none;
}
cr-button.cancel-button {
background-color: var(--cros-sys-primary_container);
}
cr-button.cancel-button:hover::part(hoverBackground) {
background-color: var(--cros-sys-hover_on_subtle);
display: block;
}
cr-button.action-button:hover::part(hoverBackground) {
background-color: var(--cros-sys-hover_on_prominent);
display: block;
}
:host-context(.focus-outline-visible) cr-button:focus {
outline: 2px solid var(--cros-sys-focus_ring);
outline-offset: 2px;
}
</style>
<div id="dialog" role="dialog" tabindex="-1" aria-labelledby="title">
<div id="header-image">
<slot name="header-image"></slot>
</div>
<div class="body-wrapper">
<div id="content">
<slot id="title" name="title"></slot>
<slot name="body"></slot>
</div>
<div id="footer">
<slot name="button-container"></slot>
</div>
</div>
</div>