2021-05-13 10:05:43 +00:00
|
|
|
@import "./globals.scss";
|
2021-02-03 09:55:01 +00:00
|
|
|
|
2021-02-03 09:30:07 +00:00
|
|
|
// Common styles.
|
|
|
|
.text-left { text-align: left; }
|
|
|
|
.text-right { text-align: right; }
|
|
|
|
.text-center { text-align: center; }
|
|
|
|
.text-justify { text-align: justify; }
|
|
|
|
.clearfix {
|
2021-01-27 16:04:21 +00:00
|
|
|
&:after {
|
2021-02-03 09:30:07 +00:00
|
|
|
content: "";
|
|
|
|
display: table;
|
|
|
|
clear: both;
|
2021-01-27 16:04:21 +00:00
|
|
|
}
|
2021-02-03 09:30:07 +00:00
|
|
|
}
|
2021-03-04 13:43:23 +00:00
|
|
|
.core-bold {
|
|
|
|
font-weight: bold;
|
|
|
|
}
|
|
|
|
|
2021-02-03 09:30:07 +00:00
|
|
|
.img-responsive {
|
2021-01-27 16:04:21 +00:00
|
|
|
display: block;
|
|
|
|
max-width: 100%;
|
|
|
|
&[height] {
|
2021-02-03 09:30:07 +00:00
|
|
|
height: auto;
|
2021-01-27 16:04:21 +00:00
|
|
|
}
|
2021-02-03 09:30:07 +00:00
|
|
|
}
|
2021-01-27 16:04:21 +00:00
|
|
|
|
2021-02-03 09:30:07 +00:00
|
|
|
.opacity-hide { opacity: 0; }
|
|
|
|
.core-big { font-size: 115%; }
|
|
|
|
.invisible { visibility: hidden; }
|
2021-01-27 16:04:21 +00:00
|
|
|
|
2021-02-03 09:30:07 +00:00
|
|
|
.button-no-uppercase {
|
2021-01-27 16:04:21 +00:00
|
|
|
text-transform: none;
|
2021-02-03 09:30:07 +00:00
|
|
|
}
|
2021-01-27 16:04:21 +00:00
|
|
|
|
2021-05-13 09:30:01 +00:00
|
|
|
.flex { display: flex; }
|
|
|
|
.inline-block { display: inline-block; }
|
|
|
|
.block { display: block; }
|
|
|
|
|
2021-02-23 11:21:12 +00:00
|
|
|
.flex-row {
|
|
|
|
display: flex;
|
|
|
|
flex-direction: row;
|
|
|
|
}
|
|
|
|
|
2021-05-05 15:43:40 +00:00
|
|
|
.margin-bottom-sm { margin-bottom: 8px; }
|
|
|
|
.margin-bottom-md { margin-bottom: 12px; }
|
|
|
|
|
|
|
|
.font-bold { font-weight: bold; }
|
|
|
|
.font-italic { font-style: italic; }
|
|
|
|
.font-lg { font-size: 1.7rem; }
|
|
|
|
.font-sm { font-size: 1.2rem; }
|
|
|
|
|
2021-05-20 08:55:02 +00:00
|
|
|
// Headings.
|
2021-05-20 07:56:54 +00:00
|
|
|
.item-heading {
|
|
|
|
font-size: 16px !important;
|
|
|
|
color: initial !important;
|
|
|
|
}
|
|
|
|
|
2021-05-20 08:55:02 +00:00
|
|
|
ion-header h1,
|
|
|
|
ion-header h2 {
|
|
|
|
display: block;
|
|
|
|
transform: translateZ(0);
|
|
|
|
color: initial;
|
|
|
|
margin: 0;
|
|
|
|
width: 100%;
|
|
|
|
text-overflow: ellipsis;
|
|
|
|
white-space: nowrap;
|
|
|
|
overflow: hidden;
|
|
|
|
pointer-events: auto;
|
|
|
|
}
|
|
|
|
|
|
|
|
ion-app.md ion-header h1,
|
|
|
|
ion-app.md ion-header h2 {
|
|
|
|
padding-inline: 20px;
|
|
|
|
font-size: 20px;
|
|
|
|
font-weight: 500;
|
|
|
|
letter-spacing: .0125em;
|
|
|
|
}
|
|
|
|
|
|
|
|
ion-app.ios ion-header h1,
|
|
|
|
ion-app.ios ion-header h2 {
|
|
|
|
top: 0;
|
|
|
|
left: 0;
|
|
|
|
padding-inline: 90px;
|
|
|
|
position: absolute;
|
|
|
|
display: block;
|
|
|
|
text-align: center;
|
|
|
|
width: 100%;
|
|
|
|
transform: translateZ(0);
|
|
|
|
font-size: 17px;
|
|
|
|
font-weight: 600;
|
|
|
|
line-height: #{$toolbar-height-ios};
|
|
|
|
box-sizing: border-box;
|
|
|
|
pointer-events: none;
|
|
|
|
}
|
|
|
|
|
2020-11-04 15:16:57 +00:00
|
|
|
// Correctly inherit ion-text-wrap onto labels.
|
|
|
|
ion-item.ion-text-wrap ion-label {
|
|
|
|
white-space: normal !important;
|
|
|
|
}
|
|
|
|
|
2021-02-05 14:08:21 +00:00
|
|
|
// It fixes the click on links where ion-ripple-effect is present.
|
|
|
|
.ion-activatable ion-label,
|
|
|
|
.item-multiple-items ion-label {
|
|
|
|
z-index: 3;
|
|
|
|
pointer-events: none;
|
|
|
|
ion-anchor, ion-button, a, button {
|
|
|
|
pointer-events: visible;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-03-15 17:30:31 +00:00
|
|
|
@each $color-name, $value in $colors {
|
|
|
|
$value: map-get($colors, $color-name);
|
|
|
|
$base: map-get($value, base);
|
|
|
|
|
|
|
|
.text-#{$color-name},
|
|
|
|
p.text-#{$color-name} {
|
|
|
|
color: $base;
|
|
|
|
}
|
|
|
|
}
|
2020-10-22 09:17:21 +00:00
|
|
|
|
2020-10-29 10:42:50 +00:00
|
|
|
// Ionic toolbar.
|
2021-05-20 08:55:02 +00:00
|
|
|
ion-app.md ion-toolbar {
|
|
|
|
--min-height: #{$toolbar-height-md};
|
|
|
|
}
|
|
|
|
|
|
|
|
ion-app.ios ion-toolbar {
|
|
|
|
--min-height: #{$toolbar-height-ios};
|
|
|
|
}
|
|
|
|
|
2020-10-22 09:17:21 +00:00
|
|
|
ion-toolbar ion-back-button,
|
|
|
|
ion-toolbar .in-toolbar.button-clear {
|
2021-05-07 08:31:06 +00:00
|
|
|
--color: var(--core-header-toolbar-color);
|
|
|
|
--ion-toolbar-color: var(--core-header-toolbar-color);
|
2020-10-22 09:17:21 +00:00
|
|
|
}
|
2020-10-28 16:24:51 +00:00
|
|
|
|
2021-05-07 08:31:06 +00:00
|
|
|
ion-header ion-toolbar .button.button-clear,
|
|
|
|
ion-header ion-toolbar .button.button-solid {
|
2021-05-10 09:52:41 +00:00
|
|
|
--background: transparent;
|
2021-05-07 08:31:06 +00:00
|
|
|
--color: var(--core-header-toolbar-color);
|
|
|
|
--ion-color-primary: var(--core-header-toolbar-color);
|
2021-05-06 08:56:20 +00:00
|
|
|
}
|
|
|
|
|
2021-05-07 08:31:06 +00:00
|
|
|
ion-header ion-toolbar .button.button-clear.button-has-icon-only,
|
|
|
|
ion-header ion-toolbar .button.button-solid.button-has-icon-only {
|
|
|
|
--border-radius: 50%;
|
|
|
|
width: 48px;
|
|
|
|
height: 48px;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2020-11-20 12:59:20 +00:00
|
|
|
ion-toolbar .core-navbar-button-hidden {
|
|
|
|
display: none !important;
|
|
|
|
}
|
|
|
|
|
2020-10-29 10:42:50 +00:00
|
|
|
// Ionic icon.
|
2020-10-28 16:24:51 +00:00
|
|
|
ion-icon {
|
|
|
|
&.icon-slash::after,
|
|
|
|
&.icon-backslash::after {
|
|
|
|
content: " ";
|
|
|
|
position: absolute;
|
|
|
|
top: 0;
|
|
|
|
bottom: 0;
|
|
|
|
left: 0;
|
|
|
|
right: 0;
|
|
|
|
background-color: var(--ion-color-danger);
|
|
|
|
-webkit-mask: url("/assets/fonts/font-awesome/solid/slash.svg") no-repeat 50% 50%;
|
|
|
|
mask: url("/assets/fonts/font-awesome/solid/slash.svg") no-repeat 50% 50%;
|
|
|
|
}
|
|
|
|
|
|
|
|
&.icon-slash::after {
|
|
|
|
-webkit-transform: scale(-1, 1);
|
|
|
|
transform: scale(-1, 1);
|
|
|
|
}
|
|
|
|
|
|
|
|
&.fa-fw {
|
|
|
|
text-align: center;
|
|
|
|
width: 1.25em;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-02-23 08:24:32 +00:00
|
|
|
ion-button.button-small ion-icon.faicon[slot] {
|
|
|
|
font-size: 1.5em !important;
|
|
|
|
}
|
|
|
|
|
2021-05-13 10:05:43 +00:00
|
|
|
[dir=rtl] ion-icon.icon-flip-rtl,
|
|
|
|
[dir=rtl] ion-item::part(detail-icon),
|
|
|
|
[dir=rtl] ion-icon.item-detail-icon {
|
2021-01-26 11:21:40 +00:00
|
|
|
transform: scaleX(-1);
|
|
|
|
}
|
|
|
|
|
2021-05-06 09:33:10 +00:00
|
|
|
// Buttons.
|
2021-05-13 09:48:31 +00:00
|
|
|
ion-button,
|
|
|
|
ion-fab-button,
|
|
|
|
button,
|
|
|
|
[role="button"] {
|
2021-05-06 09:33:10 +00:00
|
|
|
min-height: var(--a11y-min-target-size);
|
|
|
|
min-width: var(--a11y-min-target-size);
|
|
|
|
}
|
|
|
|
|
|
|
|
[role="button"] {
|
|
|
|
cursor: pointer;
|
|
|
|
|
|
|
|
[disabled],
|
|
|
|
[aria-disabled="true"] {
|
|
|
|
cursor: auto;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-05-10 09:52:41 +00:00
|
|
|
ion-button.core-button-as-link {
|
2021-05-06 09:33:10 +00:00
|
|
|
text-transform: none;
|
|
|
|
text-decoration: underline;
|
2021-05-10 09:52:41 +00:00
|
|
|
font-size: inherit;
|
|
|
|
font-weight: normal;
|
|
|
|
letter-spacing: normal;
|
|
|
|
white-space: break-spaces;
|
2021-05-06 09:33:10 +00:00
|
|
|
}
|
|
|
|
|
2020-10-29 10:42:50 +00:00
|
|
|
// Ionic alert.
|
2021-02-26 07:41:00 +00:00
|
|
|
ion-alert.core-alert-network-error .alert-head,
|
|
|
|
div.core-iframe-network-error {
|
2020-10-29 10:42:50 +00:00
|
|
|
position: relative;
|
|
|
|
content: " ";
|
|
|
|
background: url("/assets/fonts/font-awesome/solid/wifi.svg") no-repeat 50% 50%;
|
|
|
|
margin: 25px auto;
|
|
|
|
|
|
|
|
&::after {
|
|
|
|
content: " ";
|
|
|
|
position: absolute;
|
|
|
|
top: -20%;
|
|
|
|
right: -15%;
|
|
|
|
width: 50%;
|
|
|
|
height: 50%;
|
|
|
|
background-color: var(--ion-color-danger);
|
|
|
|
-webkit-mask: url("/assets/fonts/font-awesome/solid/exclamation-triangle.svg") no-repeat 50% 50%;
|
|
|
|
mask: url("/assets/fonts/font-awesome/solid/exclamation-triangle.svg") no-repeat 50% 50%;
|
|
|
|
}
|
|
|
|
}
|
2021-02-26 07:41:00 +00:00
|
|
|
[dir=rtl] ion-alert.core-alert-network-error .alert-head::after,
|
|
|
|
[dir=rtl] div.core-iframe-network-error::after {
|
2020-10-29 10:42:50 +00:00
|
|
|
right: unset;
|
|
|
|
left: -15%;
|
|
|
|
}
|
2020-11-20 10:59:36 +00:00
|
|
|
ion-alert.core-nohead {
|
|
|
|
.alert-head {
|
|
|
|
padding-bottom: 0;
|
|
|
|
}
|
|
|
|
}
|
2020-10-29 10:42:50 +00:00
|
|
|
|
2021-05-19 11:48:11 +00:00
|
|
|
ion-alert .alert-message {
|
|
|
|
user-select: text;
|
|
|
|
}
|
|
|
|
|
2020-10-29 10:42:50 +00:00
|
|
|
// Ionic list.
|
|
|
|
ion-list.list-md {
|
2020-12-10 10:45:27 +00:00
|
|
|
padding: 0;
|
2020-10-29 10:42:50 +00:00
|
|
|
}
|
2020-10-27 10:44:35 +00:00
|
|
|
|
2020-11-20 10:59:36 +00:00
|
|
|
// Header.
|
|
|
|
ion-tabs.hide-header ion-header {
|
|
|
|
display: none;
|
|
|
|
}
|
|
|
|
ion-toolbar {
|
|
|
|
ion-spinner {
|
|
|
|
margin: 10px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-10-27 10:44:35 +00:00
|
|
|
// Modals.
|
2021-05-13 12:12:42 +00:00
|
|
|
.core-modal-fullscreen .modal-wrapper {
|
2020-10-27 10:44:35 +00:00
|
|
|
position: absolute;
|
2021-05-13 10:05:43 +00:00
|
|
|
@include position(0 !important, null, null, 0 !important);
|
2020-10-27 10:44:35 +00:00
|
|
|
display: block;
|
|
|
|
width: 100% !important;
|
|
|
|
height: 100% !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.core-modal-force-on-top {
|
|
|
|
z-index: 100000 !important;
|
|
|
|
}
|
2020-10-27 14:05:11 +00:00
|
|
|
|
2021-02-03 09:55:01 +00:00
|
|
|
@media only screen and (min-height: 400px) and (min-width: 300px) {
|
|
|
|
.core-modal-lateral {
|
|
|
|
|
|
|
|
.modal-wrapper {
|
|
|
|
position: absolute;
|
2021-05-13 10:05:43 +00:00
|
|
|
@include position(0 !important, 0 !important, 0 !important, unset !important);
|
2021-02-03 09:55:01 +00:00
|
|
|
display: block;
|
|
|
|
height: 100% !important;
|
|
|
|
width: auto;
|
|
|
|
min-width: 300px;
|
|
|
|
box-shadow: 0 28px 48px rgba(0, 0, 0, 0.4);
|
|
|
|
}
|
|
|
|
ion-backdrop {
|
|
|
|
visibility: visible;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-10-27 14:05:11 +00:00
|
|
|
// Hidden submit button.
|
|
|
|
.core-submit-hidden-enter {
|
|
|
|
position: absolute;
|
|
|
|
visibility: hidden;
|
|
|
|
left: -1000px;
|
|
|
|
}
|
2020-10-29 12:45:55 +00:00
|
|
|
|
|
|
|
// Note on foot of ion-input.
|
|
|
|
.item .core-input-footnote {
|
|
|
|
width: 100%;
|
|
|
|
font-style: italic;
|
|
|
|
margin-top: 0;
|
|
|
|
margin-bottom: 10px;
|
|
|
|
font-size: 14px;
|
|
|
|
}
|
2020-11-04 15:16:57 +00:00
|
|
|
|
2020-11-12 08:53:56 +00:00
|
|
|
// Item styles
|
2021-05-03 08:08:20 +00:00
|
|
|
[aria-current="page"] {
|
2021-01-26 17:30:00 +00:00
|
|
|
// TODO: Add safe area to border and RTL
|
2020-11-12 08:53:56 +00:00
|
|
|
--ion-safe-area-left: calc(-1 * var(--selected-item-border-width));
|
2021-05-03 08:08:20 +00:00
|
|
|
border-inline-start: var(--selected-item-border-width) solid var(--selected-item-color);
|
2020-11-12 08:53:56 +00:00
|
|
|
}
|
|
|
|
|
2020-11-12 11:10:51 +00:00
|
|
|
.item.item-file {
|
|
|
|
ion-thumbnail {
|
|
|
|
--size: 32px;
|
|
|
|
width: var(--size);
|
|
|
|
height: var(--size);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-01-18 15:16:18 +00:00
|
|
|
.item-dimmed {
|
2021-01-27 16:04:21 +00:00
|
|
|
opacity: 0.7;
|
|
|
|
--background: var(--gray-lighter);
|
2021-01-18 15:16:18 +00:00
|
|
|
}
|
2020-11-12 11:10:51 +00:00
|
|
|
|
2021-01-12 09:38:34 +00:00
|
|
|
// Extra text colors.
|
|
|
|
.text-gray {
|
|
|
|
color: var(--gray-dark);
|
|
|
|
}
|
|
|
|
|
2020-11-12 11:10:51 +00:00
|
|
|
// Card styles
|
2021-02-23 07:53:24 +00:00
|
|
|
@each $color-name, $value in $colors {
|
|
|
|
$value: map-get($colors, $color-name);
|
2020-11-12 11:10:51 +00:00
|
|
|
|
2021-02-23 07:53:24 +00:00
|
|
|
$base: map-get($value, base);
|
|
|
|
$contrast: map-get($value, contrast);
|
|
|
|
$shade: map-get($value, shade);
|
|
|
|
$tint: map-get($value, tint);
|
|
|
|
|
|
|
|
// Message cards.
|
|
|
|
ion-card.core-#{$color-name}-card {
|
|
|
|
border-bottom: 3px solid $base;
|
|
|
|
|
|
|
|
ion-item::part(native) {
|
|
|
|
--inner-border-width: 0;
|
|
|
|
}
|
|
|
|
ion-label {
|
|
|
|
white-space: normal !important;
|
|
|
|
}
|
|
|
|
ion-icon {
|
|
|
|
color: $base;
|
|
|
|
}
|
2020-12-14 13:50:37 +00:00
|
|
|
}
|
2021-02-23 07:53:24 +00:00
|
|
|
|
|
|
|
.item.core-#{$color-name}-item {
|
|
|
|
--inner-border-width: 0 0 3px 0;
|
|
|
|
--border-width: 0;
|
|
|
|
border-bottom: 3px solid $base !important;
|
|
|
|
ion-icon {
|
|
|
|
color: $base;
|
|
|
|
}
|
2020-12-14 13:50:37 +00:00
|
|
|
}
|
2021-04-23 11:24:48 +00:00
|
|
|
|
|
|
|
ion-icon.ion-color-#{$color-name} {
|
|
|
|
color: $base;
|
|
|
|
--ion-color-base: #{$base};
|
|
|
|
}
|
2020-11-12 11:10:51 +00:00
|
|
|
}
|
|
|
|
|
2020-11-04 15:16:57 +00:00
|
|
|
// Avatar
|
|
|
|
// -------------------------
|
|
|
|
// Large centered avatar
|
2020-12-04 14:23:00 +00:00
|
|
|
img.large-avatar,
|
|
|
|
.large-avatar img {
|
2020-11-04 15:16:57 +00:00
|
|
|
display: block;
|
2020-12-11 15:08:35 +00:00
|
|
|
margin: 8px auto;
|
2020-12-04 14:23:00 +00:00
|
|
|
width: var(--core-large-avatar-size);
|
|
|
|
height: var(--core-large-avatar-size);
|
|
|
|
max-width: var(--core-large-avatar-size);
|
|
|
|
max-height: var(--core-large-avatar-size);
|
2020-11-04 15:16:57 +00:00
|
|
|
margin-bottom: 10px;
|
|
|
|
border-radius : 50%;
|
|
|
|
padding: 4px;
|
|
|
|
border: 1px solid #ddd;
|
|
|
|
background-color: transparent;
|
|
|
|
}
|
|
|
|
|
2020-12-04 14:23:00 +00:00
|
|
|
ion-avatar.large-avatar {
|
|
|
|
width: var(--core-large-avatar-size);
|
|
|
|
height: var(--core-large-avatar-size);
|
|
|
|
}
|
|
|
|
|
2020-11-04 15:16:57 +00:00
|
|
|
ion-avatar ion-img, ion-avatar img {
|
|
|
|
text-indent: -99999px;
|
2020-11-06 14:34:01 +00:00
|
|
|
background-color: var(--gray-light);
|
2020-11-04 15:16:57 +00:00
|
|
|
}
|
|
|
|
|
2021-01-27 09:34:03 +00:00
|
|
|
// Wait to load before showing the image.
|
|
|
|
img[core-external-content]:not([src]) {
|
|
|
|
visibility: hidden;
|
|
|
|
}
|
|
|
|
img[alt] {
|
|
|
|
text-indent: -999999px;
|
|
|
|
white-space: nowrap;
|
|
|
|
overflow: hidden;
|
|
|
|
}
|
|
|
|
|
2020-12-14 13:50:37 +00:00
|
|
|
// Activity modules
|
2021-01-26 17:30:00 +00:00
|
|
|
.core-module-icon {
|
2021-05-10 09:52:41 +00:00
|
|
|
--size: var(--module-icon-size);
|
2021-03-09 15:52:56 +00:00
|
|
|
width: var(--size);
|
|
|
|
height: var(--size);
|
2021-02-23 07:53:24 +00:00
|
|
|
max-width: var(--size);
|
|
|
|
max-height: var(--size);
|
2021-01-26 17:30:00 +00:00
|
|
|
}
|
|
|
|
|
2020-12-14 13:50:37 +00:00
|
|
|
ion-item img.core-module-icon[slot="start"] {
|
|
|
|
margin-top: 12px;
|
|
|
|
margin-bottom: 12px;
|
|
|
|
margin-right: 32px;
|
|
|
|
}
|
2021-01-26 17:30:00 +00:00
|
|
|
|
2020-12-14 13:50:37 +00:00
|
|
|
[dir=rtl] ion-item img.core-module-icon[slot="start"] {
|
|
|
|
margin-right: unset;
|
|
|
|
margin-left: 32px;
|
|
|
|
}
|
|
|
|
|
2021-05-20 08:55:02 +00:00
|
|
|
ion-toolbar h1 img.core-bar-button-image,
|
|
|
|
ion-toolbar h1 .core-bar-button-image img {
|
2021-01-22 16:06:30 +00:00
|
|
|
padding: 0;
|
2021-05-07 08:31:06 +00:00
|
|
|
width: var(--core-header-toolbar-button-image-size);
|
|
|
|
height: var(--core-header-toolbar-button-image-size);
|
|
|
|
max-width: var(--core-header-toolbar-button-image-size);
|
|
|
|
max-height: var(--core-header-toolbar-button-image-size);
|
2021-01-22 16:06:30 +00:00
|
|
|
border-radius: 50%;
|
|
|
|
}
|
|
|
|
|
2020-11-04 16:37:02 +00:00
|
|
|
// Action sheet.
|
|
|
|
.md ion-action-sheet {
|
|
|
|
.action-sheet-group-cancel {
|
|
|
|
-webkit-filter: drop-shadow(0px 3px 3px rgba(var(--action-sheet-shadow-color)));
|
|
|
|
filter: drop-shadow(0px 3px 3px rgba(var(--action-sheet-shadow-color)));
|
|
|
|
}
|
|
|
|
|
|
|
|
.action-sheet-title {
|
|
|
|
border-bottom: 1px solid var(--title-border-color);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.ios ion-action-sheet {
|
|
|
|
.action-sheet-title {
|
|
|
|
font-size: 16px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-11-06 14:34:01 +00:00
|
|
|
// Select.
|
2021-02-05 14:08:21 +00:00
|
|
|
ion-select::part(text) {
|
|
|
|
white-space: normal;
|
|
|
|
}
|
|
|
|
|
2020-11-06 14:34:01 +00:00
|
|
|
// File uploader.
|
|
|
|
.action-sheet-button input.core-fileuploader-file-handler-input {
|
|
|
|
position: absolute;
|
|
|
|
top: 0;
|
|
|
|
bottom: 0;
|
|
|
|
left: 0;
|
|
|
|
right: 0;
|
|
|
|
min-width: 100%;
|
|
|
|
opacity: 0;
|
|
|
|
z-index: 100;
|
|
|
|
cursor: pointer;
|
|
|
|
}
|
2020-11-17 10:00:46 +00:00
|
|
|
|
|
|
|
.core-anchor, core-format-text a {
|
2021-05-07 08:31:06 +00:00
|
|
|
color: var(--core-link-color);
|
2020-11-17 10:00:46 +00:00
|
|
|
cursor: pointer;
|
|
|
|
text-decoration: underline;
|
|
|
|
}
|
2020-12-10 13:43:15 +00:00
|
|
|
|
2021-05-13 10:05:43 +00:00
|
|
|
core-block ion-item-divider .core-button-spinner {
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
@include margin-horizontal(10px);
|
|
|
|
|
|
|
|
ion-badge.core-course-download-courses-progress {
|
|
|
|
@include margin(null, 12px, null, null);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-12-10 13:43:15 +00:00
|
|
|
// Horizontal scrolling elements
|
|
|
|
.core-horizontal-scroll {
|
|
|
|
display: flex;
|
|
|
|
flex-flow: nowrap;
|
|
|
|
overflow-x: scroll;
|
|
|
|
flex-direction: row;
|
|
|
|
}
|
2021-01-18 14:19:30 +00:00
|
|
|
|
2021-01-21 14:00:38 +00:00
|
|
|
// Text formats.
|
|
|
|
// Highlight text.
|
|
|
|
.matchtext {
|
2021-02-03 09:30:07 +00:00
|
|
|
background-color: var(--text-hightlight-background-color);
|
2021-01-21 14:00:38 +00:00
|
|
|
}
|
|
|
|
|
2021-02-18 08:19:38 +00:00
|
|
|
// Monospaced font.
|
|
|
|
.core-monospaced {
|
|
|
|
font-family: Andale Mono,Monaco,Courier New,DejaVu Sans Mono,monospace;
|
|
|
|
}
|
2021-02-26 07:41:00 +00:00
|
|
|
|
|
|
|
.core-iframe-offline-disabled {
|
|
|
|
display: none !important;
|
|
|
|
}
|
2021-03-09 12:25:27 +00:00
|
|
|
|
|
|
|
.core-scanning-qr {
|
|
|
|
.ion-page, .modal-wrapper {
|
|
|
|
background-color: transparent !important;
|
|
|
|
--background: transparent;
|
|
|
|
}
|
|
|
|
|
|
|
|
ion-content, ion-backdrop, ion-modal:not(.core-modal-fullscreen), ion-tabs {
|
|
|
|
display: none !important;
|
|
|
|
}
|
|
|
|
}
|
2021-03-15 17:30:31 +00:00
|
|
|
|
|
|
|
// Hide virtual utilities.
|
|
|
|
.core-browser-copy-area {
|
|
|
|
display: none;
|
|
|
|
}
|
2021-03-24 13:31:08 +00:00
|
|
|
|
|
|
|
// Different levels of padding.
|
|
|
|
@for $i from 0 through 15 {
|
|
|
|
.core-padding-#{$i} {
|
|
|
|
@include padding(null, null, null, 15px * $i + 16px);
|
|
|
|
}
|
|
|
|
}
|
2021-04-21 11:12:32 +00:00
|
|
|
|
2021-05-06 09:33:10 +00:00
|
|
|
textarea {
|
|
|
|
min-height: var(--a11y-min-target-size);
|
|
|
|
}
|
|
|
|
|
2021-04-21 11:12:32 +00:00
|
|
|
textarea:not([core-auto-rows]) {
|
|
|
|
height: 200px;
|
|
|
|
}
|
2021-04-26 12:14:15 +00:00
|
|
|
|
|
|
|
ion-fab[core-fab] {
|
|
|
|
position: fixed;
|
|
|
|
}
|
|
|
|
|
|
|
|
ion-content > ion-fab[core-fab] {
|
|
|
|
position: absolute;
|
|
|
|
}
|
2021-04-27 13:21:09 +00:00
|
|
|
|
|
|
|
ion-back-button.md::part(text) {
|
|
|
|
display: none;
|
|
|
|
}
|
2021-04-27 11:14:31 +00:00
|
|
|
|
2021-05-03 07:16:09 +00:00
|
|
|
|
|
|
|
.core-media-adapt-width {
|
|
|
|
max-width: 100%;
|
|
|
|
}
|
|
|
|
|
|
|
|
img.core-media-adapt-width {
|
|
|
|
height: auto;
|
|
|
|
}
|
|
|
|
|
|
|
|
audio.core-media-adapt-width {
|
|
|
|
width: 100%;
|
|
|
|
}
|
2021-05-11 08:04:32 +00:00
|
|
|
|
2021-05-18 15:11:00 +00:00
|
|
|
// Make links clickable when inside radio or checkbox items. Style part.
|
|
|
|
@media (any-hover: hover) {
|
|
|
|
ion-item.item-multiple-inputs:hover::part(native) {
|
|
|
|
color: var(--color-hover);
|
|
|
|
|
|
|
|
&::after {
|
|
|
|
background: var(--background-hover);
|
|
|
|
opacity: var(--background-hover-opacity);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
ion-item.ion-color.item-multiple-inputs:hover::part(native) {
|
|
|
|
color: #{current-color(contrast)};
|
|
|
|
|
|
|
|
&::after {
|
|
|
|
background: #{current-color(contrast)};
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Make links clickable when inside radio or checkbox items. Pointer and cursor part.
|
|
|
|
ion-item.item-multiple-inputs {
|
|
|
|
cursor: pointer;
|
|
|
|
ion-label {
|
|
|
|
z-index: 3;
|
|
|
|
pointer-events: none;
|
|
|
|
|
|
|
|
ion-anchor, a,
|
|
|
|
ion-button, button,
|
|
|
|
audio, video {
|
|
|
|
pointer-events: visible;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
ion-checkbox, ion-datetime, ion-radio, ion-select{
|
|
|
|
position: static;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-05-19 11:04:53 +00:00
|
|
|
// Case with ion-input + ion-select inside.
|
|
|
|
ion-item.item-input.item-multiple-inputs {
|
|
|
|
.flex-row {
|
|
|
|
width: 100%;
|
|
|
|
ion-select {
|
|
|
|
position: relative;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-05-11 08:04:32 +00:00
|
|
|
// Focus highlight for accessibility.
|
2021-05-13 14:39:16 +00:00
|
|
|
ion-item.item-input.ion-focused:not(:focus),
|
2021-05-11 08:04:32 +00:00
|
|
|
.ion-focused,
|
2021-05-13 14:39:16 +00:00
|
|
|
ion-item.ion-activatable.ion-focused:not(:focus),
|
2021-05-11 08:04:32 +00:00
|
|
|
ion-input.has-focus,
|
|
|
|
.ion-focused ion-toggle:focus-within,
|
|
|
|
.ion-focused ion-select:focus-within,
|
|
|
|
.ion-focused ion-checkbox:focus-within,
|
|
|
|
.ion-focused ion-radio:focus-within {
|
2021-05-13 14:39:16 +00:00
|
|
|
@include core-focus();
|
2021-05-11 08:04:32 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// Treat cases where there's a focusable element inside an item, like a button.
|
2021-05-13 14:39:16 +00:00
|
|
|
ion-item.ion-focused:not(:focus),
|
|
|
|
ion-item.item-input ion-input.has-focus {
|
|
|
|
position: relative;
|
|
|
|
&::after {
|
|
|
|
box-shadow: revert;
|
|
|
|
opacity: revert;
|
|
|
|
z-index: revert;
|
|
|
|
}
|
|
|
|
.item-highlight, .item-inner-highlight {
|
|
|
|
position: unset;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Change default outline.
|
|
|
|
:focus-visible {
|
|
|
|
@include core-focus-style();
|
|
|
|
outline: none;
|
|
|
|
}
|
|
|
|
|
|
|
|
textarea, button, select, input, a {
|
|
|
|
&:focus {
|
|
|
|
@include core-focus-style();
|
|
|
|
outline: none;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-05-14 12:14:52 +00:00
|
|
|
ion-loading:focus-visible,
|
|
|
|
ion-alert:focus-visible,
|
|
|
|
ion-popover:focus-visible,
|
|
|
|
ion-modal:focus-visible {
|
|
|
|
box-shadow: none;
|
|
|
|
}
|
|
|
|
|
2021-05-19 14:20:43 +00:00
|
|
|
ion-input .native-input {
|
2021-05-13 14:39:16 +00:00
|
|
|
&:focus, &:focus-visible {
|
|
|
|
box-shadow: none;
|
|
|
|
outline: none;
|
|
|
|
}
|
2021-05-11 08:04:32 +00:00
|
|
|
}
|
2021-05-19 14:20:43 +00:00
|
|
|
|
|
|
|
ion-checkbox {
|
|
|
|
--border-radius: 2px;
|
|
|
|
}
|
2021-05-20 13:30:58 +00:00
|
|
|
|
|
|
|
// Disable scroll on parent ion contents to enabled PTR on the ones inside the splitview. See split-view component for more info.
|
|
|
|
ion-content.disable-scroll-y::part(scroll) {
|
|
|
|
touch-action: auto;
|
|
|
|
overflow-y: hidden;
|
|
|
|
overscroll-behavior-y: auto;
|
|
|
|
z-index: auto;
|
|
|
|
will-change: auto;
|
|
|
|
}
|