UNPKG

@ionic/core

Version:
266 lines (248 loc) • 7.56 kB
/** * Convert a font size to a dynamic font size. * Fonts that participate in Dynamic Type should use * dynamic font sizes. * @param size - The initial font size including the unit (i.e. px or pt) * @param unit (optional) - The unit to convert to. Use this if you want to * convert to a unit other than $baselineUnit. */ /** * Convert a font size to a dynamic font size but impose * a maximum font size. * @param size - The initial font size including the unit (i.e. px or pt) * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale). * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to * convert to a unit other than $baselineUnit. */ /** * Convert a font size to a dynamic font size but impose * a minimum font size. * @param size - The initial font size including the unit (i.e. px or pt) * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale). * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to * convert to a unit other than $baselineUnit. */ /** * Convert a font size to a dynamic font size but impose * maximum and minimum font sizes. * @param size - The initial font size including the unit (i.e. px or pt) * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale). * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale). * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to * convert to a unit other than $baselineUnit. */ /** * A heuristic that applies CSS to tablet * viewports. * * Usage: * @include tablet-viewport() { * :host { * background-color: green; * } * } */ /** * A heuristic that applies CSS to mobile * viewports (i.e. phones, not tablets). * * Usage: * @include mobile-viewport() { * :host { * background-color: blue; * } * } */ :host { /** * @prop --background: Background of the popover * @prop --box-shadow: Box shadow of the popover * * @prop --min-width: Minimum width of the popover * @prop --width: Width of the popover * @prop --max-width: Maximum width of the popover * * @prop --min-height: Minimum height of the popover * @prop --height: Height of the popover * @prop --max-height: Maximum height of the popover * * @prop --backdrop-opacity: Opacity of the backdrop * * @prop --offset-x: The amount to move the popover by on the x-axis * @prop --offset-y: The amount to move the popover by on the y-axis */ --background: var(--ion-background-color, #fff); --min-width: 0; --min-height: 0; --max-width: auto; --height: auto; --offset-x: 0px; --offset-y: 0px; left: 0; right: 0; top: 0; bottom: 0; display: flex; position: fixed; align-items: center; justify-content: center; outline: none; color: var(--ion-text-color, #000); z-index: 1001; } /** * With nested popovers, only the popover that * was first presented has a popover. This is the * parent popover and allows us to easily * track all nested popovers from a single backdrop. * As a result, nested popovers do not have backdrops * and their container should not be clickable. * This ensures that users can click the parent backdrop * while still interacting with the nested popover inner * content. */ :host(.popover-nested) { pointer-events: none; } :host(.popover-nested) .popover-wrapper { pointer-events: auto; } :host(.overlay-hidden) { display: none; } .popover-wrapper { z-index: 10; } .popover-content { display: flex; position: absolute; flex-direction: column; 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); background: var(--background); box-shadow: var(--box-shadow); overflow: auto; z-index: 10; } ::slotted(.popover-viewport) { --ion-safe-area-top: 0px; --ion-safe-area-right: 0px; --ion-safe-area-bottom: 0px; --ion-safe-area-left: 0px; display: flex; flex-direction: column; } :host(.popover-nested.popover-side-left) { --offset-x: 5px; } :host(.popover-nested.popover-side-right) { --offset-x: -5px; } :host(.popover-nested.popover-side-start) { --offset-x: 5px; } :host-context([dir=rtl]):host(.popover-nested.popover-side-start), :host-context([dir=rtl]).popover-nested.popover-side-start { --offset-x: -5px; } @supports selector(:dir(rtl)) { :host(.popover-nested.popover-side-start:dir(rtl)) { --offset-x: -5px; } } :host(.popover-nested.popover-side-end) { --offset-x: -5px; } :host-context([dir=rtl]):host(.popover-nested.popover-side-end), :host-context([dir=rtl]).popover-nested.popover-side-end { --offset-x: 5px; } @supports selector(:dir(rtl)) { :host(.popover-nested.popover-side-end:dir(rtl)) { --offset-x: 5px; } } /** * Convert a font size to a dynamic font size. * Fonts that participate in Dynamic Type should use * dynamic font sizes. * @param size - The initial font size including the unit (i.e. px or pt) * @param unit (optional) - The unit to convert to. Use this if you want to * convert to a unit other than $baselineUnit. */ /** * Convert a font size to a dynamic font size but impose * a maximum font size. * @param size - The initial font size including the unit (i.e. px or pt) * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale). * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to * convert to a unit other than $baselineUnit. */ /** * Convert a font size to a dynamic font size but impose * a minimum font size. * @param size - The initial font size including the unit (i.e. px or pt) * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale). * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to * convert to a unit other than $baselineUnit. */ /** * Convert a font size to a dynamic font size but impose * maximum and minimum font sizes. * @param size - The initial font size including the unit (i.e. px or pt) * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale). * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale). * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to * convert to a unit other than $baselineUnit. */ /** * A heuristic that applies CSS to tablet * viewports. * * Usage: * @include tablet-viewport() { * :host { * background-color: green; * } * } */ /** * A heuristic that applies CSS to mobile * viewports (i.e. phones, not tablets). * * Usage: * @include mobile-viewport() { * :host { * background-color: blue; * } * } */ :host { --width: 250px; --max-height: 90%; --box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12); --backdrop-opacity: var(--ion-backdrop-opacity, 0.32); } .popover-content { border-radius: 4px; transform-origin: left top; } :host-context([dir=rtl]) .popover-content { transform-origin: right top; } [dir=rtl] .popover-content { transform-origin: right top; } @supports selector(:dir(rtl)) { .popover-content:dir(rtl) { transform-origin: right top; } } .popover-viewport { transition-delay: 100ms; } .popover-wrapper { opacity: 0; }