@ionic/core
Version:
Base components for Ionic
293 lines (274 loc) • 8.81 kB
CSS
/**
* 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;
* }
* }
*/
ion-refresher {
top: 0;
display: none;
position: absolute;
width: 100%;
height: 60px;
pointer-events: none;
z-index: -1;
}
ion-refresher {
inset-inline-start: 0;
}
ion-refresher.refresher-active {
display: block;
}
ion-refresher-content {
display: flex;
flex-direction: column;
justify-content: center;
height: 100%;
}
.refresher-pulling,
.refresher-refreshing {
display: none;
width: 100%;
}
.refresher-pulling-icon,
.refresher-refreshing-icon {
transform-origin: center;
transition: 200ms;
font-size: 30px;
text-align: center;
}
:host-context([dir=rtl]) .refresher-pulling-icon, :host-context([dir=rtl]) .refresher-refreshing-icon {
transform-origin: calc(100% - center);
}
[dir=rtl] .refresher-pulling-icon, [dir=rtl] .refresher-refreshing-icon {
transform-origin: calc(100% - center);
}
@supports selector(:dir(rtl)) {
.refresher-pulling-icon:dir(rtl), .refresher-refreshing-icon:dir(rtl) {
transform-origin: calc(100% - center);
}
}
.refresher-pulling-text,
.refresher-refreshing-text {
font-size: 16px;
text-align: center;
}
ion-refresher-content .arrow-container {
display: none;
}
.refresher-pulling ion-refresher-content .refresher-pulling {
display: block;
}
.refresher-ready ion-refresher-content .refresher-pulling {
display: block;
}
.refresher-ready ion-refresher-content .refresher-pulling-icon {
transform: rotate(180deg);
}
.refresher-refreshing ion-refresher-content .refresher-refreshing {
display: block;
}
.refresher-cancelling ion-refresher-content .refresher-pulling {
display: block;
}
.refresher-cancelling ion-refresher-content .refresher-pulling-icon {
transform: scale(0);
}
.refresher-completing ion-refresher-content .refresher-refreshing {
display: block;
}
.refresher-completing ion-refresher-content .refresher-refreshing-icon {
transform: scale(0);
}
.refresher-native .refresher-pulling-text, .refresher-native .refresher-refreshing-text {
display: none;
}
/**
* 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;
* }
* }
*/
.refresher-md .refresher-pulling-icon,
.refresher-md .refresher-refreshing-icon {
color: var(--ion-text-color, #000);
}
.refresher-md .refresher-pulling-text,
.refresher-md .refresher-refreshing-text {
color: var(--ion-text-color, #000);
}
.refresher-md .refresher-refreshing .spinner-lines-md line,
.refresher-md .refresher-refreshing .spinner-lines-small-md line,
.refresher-md .refresher-refreshing .spinner-crescent circle {
stroke: var(--ion-text-color, #000);
}
.refresher-md .refresher-refreshing .spinner-bubbles circle,
.refresher-md .refresher-refreshing .spinner-circles circle,
.refresher-md .refresher-refreshing .spinner-dots circle {
fill: var(--ion-text-color, #000);
}
ion-refresher.refresher-native {
display: block;
z-index: 1;
}
ion-refresher.refresher-native ion-spinner {
-webkit-margin-start: auto;
margin-inline-start: auto;
-webkit-margin-end: auto;
margin-inline-end: auto;
margin-top: 0;
margin-bottom: 0;
width: 24px;
height: 24px;
color: var(--ion-color-primary, #0054e9);
}
ion-refresher.refresher-native .spinner-arrow-container {
display: inherit;
}
ion-refresher.refresher-native .arrow-container {
display: block;
position: absolute;
width: 24px;
height: 24px;
}
ion-refresher.refresher-native .arrow-container ion-icon {
-webkit-margin-start: auto;
margin-inline-start: auto;
-webkit-margin-end: auto;
margin-inline-end: auto;
margin-top: 0;
margin-bottom: 0;
left: 0;
right: 0;
bottom: -4px;
position: absolute;
color: var(--ion-color-primary, #0054e9);
font-size: 12px;
}
ion-refresher.refresher-native.refresher-pulling ion-refresher-content .refresher-pulling, ion-refresher.refresher-native.refresher-ready ion-refresher-content .refresher-pulling {
display: flex;
}
ion-refresher.refresher-native.refresher-refreshing ion-refresher-content .refresher-refreshing, ion-refresher.refresher-native.refresher-completing ion-refresher-content .refresher-refreshing, ion-refresher.refresher-native.refresher-cancelling ion-refresher-content .refresher-refreshing {
display: flex;
}
ion-refresher.refresher-native .refresher-pulling-icon {
transform: translateY(calc(-100% - 10px));
}
ion-refresher.refresher-native .refresher-pulling-icon,
ion-refresher.refresher-native .refresher-refreshing-icon {
-webkit-margin-start: auto;
margin-inline-start: auto;
-webkit-margin-end: auto;
margin-inline-end: auto;
margin-top: 0;
margin-bottom: 0;
border-radius: 100%;
-webkit-padding-start: 8px;
padding-inline-start: 8px;
-webkit-padding-end: 8px;
padding-inline-end: 8px;
padding-top: 8px;
padding-bottom: 8px;
display: flex;
border: 1px solid var(--ion-color-step-200, var(--ion-background-color-step-200, #ececec));
background: var(--ion-color-step-250, var(--ion-background-color-step-250, #ffffff));
box-shadow: 0px 1px 6px rgba(0, 0, 0, 0.1);
}