UNPKG

@ionic/core

Version:
326 lines (297 loc) • 9.1 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 --color: Text color of the breadcrumb * @prop --color-active: Text color of the active breadcrumb * @prop --color-hover: Text color of the breadcrumb on hover * @prop --color-focused: Text color of the breadcrumb when focused * @prop --background-focused: Background color of the breadcrumb when focused */ display: flex; flex: 0 0 auto; align-items: center; color: var(--color); font-size: 1rem; font-weight: 400; line-height: 1.5; } .breadcrumb-native { font-family: inherit; font-size: inherit; font-style: inherit; font-weight: inherit; letter-spacing: inherit; text-decoration: inherit; text-indent: inherit; text-overflow: inherit; text-transform: inherit; text-align: inherit; white-space: inherit; color: inherit; padding-left: 0; padding-right: 0; padding-top: 0; padding-bottom: 0; margin-left: 0; margin-right: 0; margin-top: 0; margin-bottom: 0; display: flex; align-items: center; width: 100%; outline: none; background: inherit; } :host(.breadcrumb-disabled) { cursor: default; opacity: 0.5; pointer-events: none; } :host(.breadcrumb-active) { color: var(--color-active); } :host(.ion-focused) { color: var(--color-focused); } :host(.ion-focused) .breadcrumb-native { background: var(--background-focused); } @media (any-hover: hover) { :host(.ion-activatable:hover) { color: var(--color-hover); } :host(.ion-activatable.in-breadcrumbs-color:hover), :host(.ion-activatable.ion-color:hover) { color: var(--ion-color-shade); } } .breadcrumb-separator { display: inline-flex; } :host(.breadcrumb-collapsed) .breadcrumb-native { display: none; } :host(.in-breadcrumbs-color), :host(.in-breadcrumbs-color.breadcrumb-active) { color: var(--ion-color-base); } :host(.in-breadcrumbs-color) .breadcrumb-separator { color: var(--ion-color-base); } :host(.ion-color) { color: var(--ion-color-base); } :host(.in-toolbar-color), :host(.in-toolbar-color) .breadcrumb-separator { color: rgba(var(--ion-color-contrast-rgb), 0.8); } :host(.in-toolbar-color.breadcrumb-active) { color: var(--ion-color-contrast); } .breadcrumbs-collapsed-indicator { padding-left: 0; padding-right: 0; padding-top: 0; padding-bottom: 0; -webkit-margin-start: 14px; margin-inline-start: 14px; -webkit-margin-end: 14px; margin-inline-end: 14px; margin-top: 0; margin-bottom: 0; display: flex; flex: 1 1 100%; align-items: center; justify-content: center; width: 32px; height: 18px; border: 0; outline: none; cursor: pointer; appearance: none; } .breadcrumbs-collapsed-indicator ion-icon { margin-top: 1px; font-size: 1.375rem; } /** * 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 { --color: var(--ion-color-step-850, var(--ion-text-color-step-150, #2d4665)); --color-active: var(--ion-text-color, #03060b); --color-hover: var(--ion-text-color, #03060b); --color-focused: var(--color-active); --background-focused: var(--ion-color-step-50, var(--ion-background-color-step-50, rgba(233, 237, 243, 0.7))); /** * Main content should be prioritized * on iOS, so we set max font size for breadcrumbs. * Breadcrumbs can be placed in the content too, so * we add a min font size to keep the text legible. */ font-size: clamp(16px, 1rem, 22px); } :host(.breadcrumb-active) { font-weight: 600; } .breadcrumb-native { border-radius: 4px; -webkit-padding-start: 12px; padding-inline-start: 12px; -webkit-padding-end: 12px; padding-inline-end: 12px; padding-top: 5px; padding-bottom: 5px; border: 1px solid transparent; } :host(.ion-focused) .breadcrumb-native { border-radius: 8px; } :host(.in-breadcrumbs-color.ion-focused) .breadcrumb-native, :host(.ion-color.ion-focused) .breadcrumb-native { background: rgba(var(--ion-color-base-rgb), 0.1); color: var(--ion-color-base); } :host(.ion-focused) ::slotted(ion-icon), :host(.in-breadcrumbs-color.ion-focused) ::slotted(ion-icon), :host(.ion-color.ion-focused) ::slotted(ion-icon) { color: var(--ion-color-step-750, var(--ion-text-color-step-250, #445b78)); } .breadcrumb-separator { color: var(--ion-color-step-550, var(--ion-text-color-step-450, #73849a)); } ::slotted(ion-icon) { color: var(--ion-color-step-400, var(--ion-text-color-step-600, #92a0b3)); font-size: min(1.125rem, 21.6px); } ::slotted(ion-icon[slot=start]) { -webkit-margin-end: 8px; margin-inline-end: 8px; } ::slotted(ion-icon[slot=end]) { -webkit-margin-start: 8px; margin-inline-start: 8px; } :host(.breadcrumb-active) ::slotted(ion-icon) { color: var(--ion-color-step-850, var(--ion-text-color-step-150, #242d39)); } .breadcrumbs-collapsed-indicator { border-radius: 4px; background: var(--ion-color-step-100, var(--ion-background-color-step-100, #e9edf3)); color: var(--ion-color-step-550, var(--ion-text-color-step-450, #73849a)); } .breadcrumbs-collapsed-indicator:hover { opacity: 0.45; } .breadcrumbs-collapsed-indicator:focus { background: var(--ion-color-step-150, var(--ion-background-color-step-150, #d9e0ea)); } .breadcrumbs-collapsed-indicator ion-icon { font-size: min(1.375rem, 22px); }