UNPKG

@ionic/core

Version:

Base components for Ionic

250 lines (228 loc) • 5.38 kB
:host { /** * @prop --background: Background of the toast * @prop --color: Color of the toast text * * @prop --border-color: Border color of the toast * @prop --border-radius: Border radius of the toast * @prop --border-width: Border width of the toast * @prop --border-style: Border style of the toast * * @prop --white-space: White space of the toast message * * @prop --box-shadow: Box shadow of the toast * * @prop --min-width: Minimum width of the toast * @prop --width: Width of the toast * @prop --max-width: Maximum width of the toast * * @prop --min-height: Minimum height of the toast * @prop --height: Height of the toast * @prop --max-height: Maximum height of the toast * * @prop --button-color: Color of the button text * * @prop --start: Position from the left if direction is left-to-right, and from the right if direction is right-to-left * @prop --end: Position from the right if direction is left-to-right, and from the left if direction is right-to-left */ --border-width: 0; --border-style: none; --border-color: initial; --box-shadow: none; --min-width: auto; --width: auto; --min-height: auto; --height: auto; --max-height: auto; --white-space: pre-wrap; left: 0; top: 0; display: block; position: absolute; width: 100%; height: 100%; outline: none; color: var(--color); font-family: var(--ion-font-family, inherit); contain: strict; z-index: 1001; pointer-events: none; } :host-context([dir=rtl]) { left: unset; right: unset; right: 0; } :host(.overlay-hidden) { display: none; } :host(.ion-color) { --button-color: inherit; color: var(--ion-color-contrast); } :host(.ion-color) .toast-button-cancel { color: inherit; } :host(.ion-color) .toast-wrapper { background: var(--ion-color-base); } .toast-wrapper { border-radius: var(--border-radius); left: var(--start); right: var(--end); width: var(--width); min-width: var(--min-width); max-width: var(--max-width); height: var(--height); min-height: var(--min-height); max-height: var(--max-height); border-width: var(--border-width); border-style: var(--border-style); border-color: var(--border-color); background: var(--background); box-shadow: var(--box-shadow); } [dir=rtl] .toast-wrapper, :host-context([dir=rtl]) .toast-wrapper { left: unset; right: unset; left: var(--end); right: var(--start); } .toast-container { display: flex; align-items: center; pointer-events: auto; height: inherit; min-height: inherit; max-height: inherit; contain: content; } .toast-content { display: flex; flex: 1; flex-direction: column; justify-content: center; } .toast-message { flex: 1; white-space: var(--white-space); } .toast-button-group { display: flex; } .toast-button { border: 0; outline: none; color: var(--button-color); z-index: 0; } .toast-icon { font-size: 1.4em; } .toast-button-inner { display: flex; align-items: center; } @media (any-hover: hover) { .toast-button:hover { cursor: pointer; } } :host { --background: var(--ion-color-step-50, #f2f2f2); --border-radius: 14px; --button-color: var(--ion-color-primary, #3880ff); --color: var(--ion-color-step-850, #262626); --max-width: 700px; --start: 10px; --end: 10px; font-size: 14px; } .toast-wrapper { margin-left: auto; margin-right: auto; margin-top: auto; margin-bottom: auto; display: block; position: absolute; z-index: 10; } @supports (margin-inline-start: 0) or (-webkit-margin-start: 0) { .toast-wrapper { margin-left: unset; margin-right: unset; -webkit-margin-start: auto; margin-inline-start: auto; -webkit-margin-end: auto; margin-inline-end: auto; } } @supports (backdrop-filter: blur(0)) { :host(.toast-translucent) .toast-wrapper { background: rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8); backdrop-filter: saturate(180%) blur(20px); } } .toast-wrapper.toast-top { transform: translate3d(0, -100%, 0); top: 0; } .toast-wrapper.toast-middle { opacity: 0.01; } .toast-wrapper.toast-bottom { transform: translate3d(0, 100%, 0); bottom: 0; } .toast-content { padding-left: 15px; padding-right: 15px; padding-top: 15px; padding-bottom: 15px; } @supports (margin-inline-start: 0) or (-webkit-margin-start: 0) { .toast-content { padding-left: unset; padding-right: unset; -webkit-padding-start: 15px; padding-inline-start: 15px; -webkit-padding-end: 15px; padding-inline-end: 15px; } } .toast-header { margin-bottom: 2px; font-weight: 500; } .toast-button { padding-left: 15px; padding-right: 15px; padding-top: 10px; padding-bottom: 10px; height: 44px; transition: background-color, opacity 100ms linear; border: 0; background-color: transparent; font-family: var(--ion-font-family); font-size: 17px; font-weight: 500; overflow: hidden; } @supports (margin-inline-start: 0) or (-webkit-margin-start: 0) { .toast-button { padding-left: unset; padding-right: unset; -webkit-padding-start: 15px; padding-inline-start: 15px; -webkit-padding-end: 15px; padding-inline-end: 15px; } } .toast-button.ion-activated { opacity: 0.4; } @media (any-hover: hover) { .toast-button:hover { opacity: 0.6; } }