From 2cd17b1f297a0bc8cee5af7e9aef28fd335ff451 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pau=20Ferrer=20Oca=C3=B1a?= Date: Fri, 14 May 2021 12:26:12 +0200 Subject: [PATCH 1/4] MOBILE-3670 core: Fix some loading styles --- .../addon-block-recentlyaccessedcourses.html | 2 +- .../addon-block-recentlyaccesseditems.html | 2 +- .../addon-block-starredcourses.html | 4 ++-- .../timeline/addon-block-timeline.html | 2 +- src/core/components/loading/loading.scss | 21 +++++++++++-------- .../components/format/core-course-format.html | 2 +- .../course/components/format/format.scss | 16 +++++++++----- 7 files changed, 29 insertions(+), 20 deletions(-) diff --git a/src/addons/block/recentlyaccessedcourses/components/recentlyaccessedcourses/addon-block-recentlyaccessedcourses.html b/src/addons/block/recentlyaccessedcourses/components/recentlyaccessedcourses/addon-block-recentlyaccessedcourses.html index e0cc57102..c5680098a 100644 --- a/src/addons/block/recentlyaccessedcourses/components/recentlyaccessedcourses/addon-block-recentlyaccessedcourses.html +++ b/src/addons/block/recentlyaccessedcourses/components/recentlyaccessedcourses/addon-block-recentlyaccessedcourses.html @@ -14,7 +14,7 @@ -
diff --git a/src/addons/block/recentlyaccesseditems/components/recentlyaccesseditems/addon-block-recentlyaccesseditems.html b/src/addons/block/recentlyaccesseditems/components/recentlyaccesseditems/addon-block-recentlyaccesseditems.html index 615d39f7f..bc9ffadb7 100644 --- a/src/addons/block/recentlyaccesseditems/components/recentlyaccesseditems/addon-block-recentlyaccesseditems.html +++ b/src/addons/block/recentlyaccesseditems/components/recentlyaccesseditems/addon-block-recentlyaccesseditems.html @@ -25,7 +25,7 @@
-
diff --git a/src/addons/block/starredcourses/components/starredcourses/addon-block-starredcourses.html b/src/addons/block/starredcourses/components/starredcourses/addon-block-starredcourses.html index 5623b314a..90064a66d 100644 --- a/src/addons/block/starredcourses/components/starredcourses/addon-block-starredcourses.html +++ b/src/addons/block/starredcourses/components/starredcourses/addon-block-starredcourses.html @@ -14,10 +14,10 @@ - -
+
diff --git a/src/addons/block/timeline/components/timeline/addon-block-timeline.html b/src/addons/block/timeline/components/timeline/addon-block-timeline.html index 6635ba016..bbce37627 100644 --- a/src/addons/block/timeline/components/timeline/addon-block-timeline.html +++ b/src/addons/block/timeline/components/timeline/addon-block-timeline.html @@ -51,7 +51,7 @@ - diff --git a/src/core/components/loading/loading.scss b/src/core/components/loading/loading.scss index 53746da0e..a6d075729 100644 --- a/src/core/components/loading/loading.scss +++ b/src/core/components/loading/loading.scss @@ -1,14 +1,13 @@ +@import "~theme/globals"; + :host { position: static; - -webkit-transition: height 200ms ease-in-out; - transition: height 200ms ease-in-out; + @include core-transition(height, 200ms); + --loading-background: rgba(255, 255, 255, 0.26); > .core-loading-container { position: absolute; - top: 0; - right: 0; - left: 0; - bottom: 0; + @include position(0, 0, 0, 0); display: table; height: 100%; width: 100%; @@ -17,7 +16,7 @@ z-index: 3; margin: 0; padding: 10px 0 0 0; - background-color: rgba(255, 255, 255, 0.26); + background-color: var(--loading-background); -webkit-transition: all 200ms ease-in-out; transition: all 200ms ease-in-out; @@ -29,7 +28,7 @@ } .core-loading-content { - display: inline; + display: contents; padding-bottom: 1px; /* This makes height be real */ } @@ -45,8 +44,12 @@ display: block; .core-loading-container { - margin-top: 10px; + padding-top: 20px; position: relative; } } } + +:host-context(body.dark) { + --loading-background: rgba(0, 0, 0, 0.26); +} diff --git a/src/core/features/course/components/format/core-course-format.html b/src/core/features/course/components/format/core-course-format.html index 83df84652..50e81e8e7 100644 --- a/src/core/features/course/components/format/core-course-format.html +++ b/src/core/features/course/components/format/core-course-format.html @@ -155,7 +155,7 @@ -
+
diff --git a/src/core/features/course/components/format/format.scss b/src/core/features/course/components/format/format.scss index b79f185c3..0c0b7aca9 100644 --- a/src/core/features/course/components/format/format.scss +++ b/src/core/features/course/components/format/format.scss @@ -1,8 +1,4 @@ -// ion-app.app-root ion-badge.core-course-download-section-progress { -// display: block; -// @include float(start); -// @include margin(12px, 12px, null, 12px); -// } +@import '~theme/globals.scss'; :host { @@ -52,4 +48,14 @@ } } + .core-section-download.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); + } + } + } From c8899dde0310c780782b36ad09077ef57a285460 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pau=20Ferrer=20Oca=C3=B1a?= Date: Fri, 14 May 2021 13:23:59 +0200 Subject: [PATCH 2/4] MOBILE-3670 statusbar: Change status bar color on loading site --- .../remotethemes/services/remotethemes.ts | 5 ++- src/core/services/app.ts | 14 ++++++-- src/core/singletons/colors.ts | 33 +++++++++++++++---- 3 files changed, 43 insertions(+), 9 deletions(-) diff --git a/src/addons/remotethemes/services/remotethemes.ts b/src/addons/remotethemes/services/remotethemes.ts index 6dc82e1e4..941034de6 100644 --- a/src/addons/remotethemes/services/remotethemes.ts +++ b/src/addons/remotethemes/services/remotethemes.ts @@ -43,7 +43,7 @@ export class AddonRemoteThemesProvider { protected stylesEls: {[siteId: string]: { element: HTMLStyleElement; hash: string }} = {}; constructor() { - this.logger = CoreLogger.getInstance('AddonRemoteThemesProvider'); + this.logger = CoreLogger.getInstance('AddonRemoteThemes'); } /** @@ -363,6 +363,9 @@ export class AddonRemoteThemesProvider { // Adding styles to a style element automatically enables it. Disable it again. if (disabled) { this.disableElement(this.stylesEls[siteId].element, true); + } else { + // Set StatusBar properties. + CoreApp.setStatusBarColor(); } } diff --git a/src/core/services/app.ts b/src/core/services/app.ts index 0ac452410..8430448e2 100644 --- a/src/core/services/app.ts +++ b/src/core/services/app.ts @@ -622,8 +622,16 @@ export class CoreAppProvider { */ setStatusBarColor(color?: string): void { if (!color) { - // Get the default color to reset it. - color = getComputedStyle(document.documentElement).getPropertyValue('--core-header-toolbar-background').trim(); + // Get the default color to change it. + const element = document.querySelector('ion-header ion-toolbar'); + if (element) { + color = getComputedStyle(element).getPropertyValue('--background').trim(); + } else { + // Fallback, it won't always work. + color = getComputedStyle(document.body).getPropertyValue('--core-header-toolbar-background').trim(); + } + + color = CoreColors.getColorHex(color); } // Make darker on Android. @@ -631,6 +639,8 @@ export class CoreAppProvider { color = CoreColors.darker(color); } + this.logger.debug(`Set status bar color ${color}`); + const useLightText = CoreColors.isWhiteContrastingBetter(color); const statusBar = StatusBar.instance; statusBar.backgroundColorByHexString(color); diff --git a/src/core/singletons/colors.ts b/src/core/singletons/colors.ts index fa79ae86d..5f3e7718f 100644 --- a/src/core/singletons/colors.ts +++ b/src/core/singletons/colors.ts @@ -45,13 +45,36 @@ export class CoreColors { static darker(color: string, percent: number = 10): string { percent = 1 - (percent / 100); const components = CoreColors.hexToRGB(color); - components.red = Math.floor(components.red * percent) ; - components.green = Math.floor(components.green * percent) ; - components.blue = Math.floor(components.blue * percent) ; + components.red = Math.floor(components.red * percent); + components.green = Math.floor(components.green * percent); + components.blue = Math.floor(components.blue * percent); return CoreColors.RGBToHex(components); } + /** + * Returns the hex code from any color css type (ie named). + * + * @param color Color in any format. + * @returns Color in hex format. + */ + static getColorHex(color: string): string { + const d = document.createElement('div'); + d.style.color = color; + document.body.appendChild(d); + + // Color in RGB . + const rgba = getComputedStyle(d).color.match(/\d+/g)!.map((a) => parseInt(a, 10)); + + const hex = [0,1,2].map( + (idx) => this.componentToHex(rgba[idx]), + ).join(''); + + document.body.removeChild(d); + + return '#'+hex; + } + /** * Gets the luma of a color. * @@ -109,9 +132,7 @@ export class CoreColors { * @return Hexadec of the color component. */ protected static componentToHex(c: number): string { - const hex = c.toString(16); - - return hex.length == 1 ? '0' + hex : hex; + return ('0' + c.toString(16)).slice(-2); } } From 4925e47ab90881a47d0cab524c2beb62d64dbe5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pau=20Ferrer=20Oca=C3=B1a?= Date: Fri, 14 May 2021 13:42:29 +0200 Subject: [PATCH 3/4] MOBILE-3670 styles: Reindent mixin file --- src/theme/globals.mixins.ionic.scss | 664 ++++++++++++++-------------- 1 file changed, 332 insertions(+), 332 deletions(-) diff --git a/src/theme/globals.mixins.ionic.scss b/src/theme/globals.mixins.ionic.scss index cd4a762ca..c5333ec8a 100644 --- a/src/theme/globals.mixins.ionic.scss +++ b/src/theme/globals.mixins.ionic.scss @@ -287,353 +287,353 @@ // $root: #{&}; // @at-root [dir] { - // #{$root} { - // @content; - // } - // } - } + // #{$root} { + // @content; + // } + // } +} - @mixin rtl() { - $root: #{&}; +@mixin rtl() { + $root: #{&}; - @at-root [dir=rtl] { - #{$root} { - @content; - } - } - } - - @mixin ltr() { + @at-root [dir=rtl] { + #{$root} { @content; } + } +} + +@mixin ltr() { + @content; +} - // SVG Background Image Mixin - // @param {string} $svg - // ---------------------------------------------------------- - @mixin svg-background-image($svg, $flip-rtl: false) { - $url: url-encode($svg); - $viewBox: str-split(str-extract($svg, "viewBox='", "'"), " "); +// SVG Background Image Mixin +// @param {string} $svg +// ---------------------------------------------------------- +@mixin svg-background-image($svg, $flip-rtl: false) { + $url: url-encode($svg); + $viewBox: str-split(str-extract($svg, "viewBox='", "'"), " "); - @if $flip-rtl != true or $viewBox == null { - @include multi-dir() { - background-image: url("data:image/svg+xml;charset=utf-8,#{$url}"); - } - } @else { - $transform: "transform='translate(#{nth($viewBox, 3)}, 0) scale(-1, 1)'"; - $flipped-url: $svg; - $flipped-url: str-replace($flipped-url, " Date: Fri, 14 May 2021 14:14:52 +0200 Subject: [PATCH 4/4] MOBILE-3670 messages: Arrange space to make discussion index wider --- src/addons/messages/messages-common.scss | 21 +++++++++--- .../messages/pages/discussion/discussion.scss | 2 ++ .../pages/discussions-35/discussions.html | 22 +++++++----- .../group-conversations.html | 34 +++++++++++-------- src/addons/mod/quiz/pages/review/review.html | 4 ++- .../components/search-box/search-box.scss | 11 ++++-- src/theme/theme.base.scss | 7 ++++ 7 files changed, 71 insertions(+), 30 deletions(-) diff --git a/src/addons/messages/messages-common.scss b/src/addons/messages/messages-common.scss index 8f9ea8c4b..a9dfebf33 100644 --- a/src/addons/messages/messages-common.scss +++ b/src/addons/messages/messages-common.scss @@ -1,6 +1,11 @@ :host { .addon-messages-conversation-item, .addon-message-discussion { + ion-label { + margin-right: 0; + margin-left: 0; + } + h2 { core-format-text { font-weight: bold; @@ -12,10 +17,18 @@ } ion-note { - ion-badge { - margin-left: 6px; - margin-right: 6px; - vertical-align: middle; + display: flex; + flex-direction: column; + align-self: flex-start; + margin-left: 2px; + + ion-badge, ion-icon { + margin-top: 3px; + align-self: flex-end; + } + .addon-message-last-message-date { + white-space: nowrap; + font-size: 11px; } } diff --git a/src/addons/messages/pages/discussion/discussion.scss b/src/addons/messages/pages/discussion/discussion.scss index 88e6b41f5..a521f3d57 100644 --- a/src/addons/messages/pages/discussion/discussion.scss +++ b/src/addons/messages/pages/discussion/discussion.scss @@ -23,6 +23,8 @@ color: var(--ion-color-primary); background-color: transparent; margin-top: 6px; + margin-left: auto; + margin-right: auto; ion-icon { color: var(--ion-color-primary); background-color: transparent; diff --git a/src/addons/messages/pages/discussions-35/discussions.html b/src/addons/messages/pages/discussions-35/discussions.html index de1cae839..01d19dfa5 100644 --- a/src/addons/messages/pages/discussions-35/discussions.html +++ b/src/addons/messages/pages/discussions-35/discussions.html @@ -52,16 +52,22 @@ + [attr.aria-current]="discussion.message!.user == discussionUserId ? 'page' : 'false'" detail="false"> -

{{ discussion.fullname }}

- - - - {{discussion.message!.timecreated / 1000 | coreDateDayOrTime}} - - +
+

{{ discussion.fullname }}

+ + + {{discussion.message!.timecreated / 1000 | coreDateDayOrTime}} + + + + {{ 'addon.messages.unreadmessages' | translate }} + + +

diff --git a/src/addons/messages/pages/group-conversations/group-conversations.html b/src/addons/messages/pages/group-conversations/group-conversations.html index 5a2a475c6..a88794403 100644 --- a/src/addons/messages/pages/group-conversations/group-conversations.html +++ b/src/addons/messages/pages/group-conversations/group-conversations.html @@ -146,7 +146,7 @@ - -

- - - -

+
+

+ + + +

+ + + {{conversation.lastmessagedate | coreDateDayOrTime}} + + {{ conversation.unreadcount }} + + {{ 'addon.messages.unreadmessages' | translate:{$a: conversation.unreadcount} }} + + +

@@ -181,12 +192,5 @@ class="addon-message-last-message-text" contextLevel="system" [contextInstanceId]="0">

- - {{ conversation.unreadcount }} - - {{ 'addon.messages.unreadmessages' | translate:{$a: conversation.unreadcount} }} - - {{conversation.lastmessagedate | coreDateDayOrTime}} -
diff --git a/src/addons/mod/quiz/pages/review/review.html b/src/addons/mod/quiz/pages/review/review.html index 5b602f6fe..fe8e12505 100644 --- a/src/addons/mod/quiz/pages/review/review.html +++ b/src/addons/mod/quiz/pages/review/review.html @@ -24,7 +24,9 @@ {{ 'addon.mod_quiz.reviewofpreview' | translate }} - {{ 'addon.mod_quiz.reviewofattempt' | translate:{$a: attempt.attempt} }} + + {{ 'addon.mod_quiz.reviewofattempt' | translate:{$a: attempt.attempt} }} + diff --git a/src/core/features/search/components/search-box/search-box.scss b/src/core/features/search/components/search-box/search-box.scss index 1f5339d7e..c1b71da1b 100644 --- a/src/core/features/search/components/search-box/search-box.scss +++ b/src/core/features/search/components/search-box/search-box.scss @@ -1,5 +1,5 @@ :host { - height: 80px; + height: 73px; display: block; position: relative; @@ -8,9 +8,11 @@ left: 0; right: 0; z-index: 4; + margin-top: 10px; + margin-bottom: 10px; } - ion-button.button:last-child { + ion-button.button { margin-left: unset; margin-inline-start: 10px; } @@ -28,4 +30,9 @@ ion-label { margin: 0; } + + ion-input { + --padding-start: 0; + --padding-end: 0; + } } diff --git a/src/theme/theme.base.scss b/src/theme/theme.base.scss index 5e808337f..b712d1574 100644 --- a/src/theme/theme.base.scss +++ b/src/theme/theme.base.scss @@ -554,6 +554,13 @@ textarea, button, select, input, a { } } +ion-loading:focus-visible, +ion-alert:focus-visible, +ion-popover:focus-visible, +ion-modal:focus-visible { + box-shadow: none; +} + ion-input .native-input{ &:focus, &:focus-visible { box-shadow: none;