mirror of
https://gitlab.com/openstapps/openstapps.git
synced 2026-01-21 00:52:55 +00:00
refactor: move app to monorepo
This commit is contained in:
70
frontend/app/src/theme/common/_helper.scss
Normal file
70
frontend/app/src/theme/common/_helper.scss
Normal file
@@ -0,0 +1,70 @@
|
||||
/*!
|
||||
* Copyright (C) 2023 StApps
|
||||
* This program is free software: you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the Free
|
||||
* Software Foundation, version 3.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with
|
||||
* this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
.no-padding-right {
|
||||
padding-right: 0 !important;
|
||||
}
|
||||
|
||||
.no-padding-inline-start {
|
||||
padding-inline-start: 0 !important;
|
||||
}
|
||||
|
||||
.display-flex {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.clickable {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
%vertical-list {
|
||||
ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
|
||||
li {
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
li img {
|
||||
max-height: 1.25rem;
|
||||
vertical-align: text-bottom;
|
||||
// filter: invert(45%) sepia(0%) saturate(0%) hue-rotate(227deg) brightness(97%) contrast(82%);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
%horizontal-list {
|
||||
@extend %vertical-list;
|
||||
ul {
|
||||
li {
|
||||
display: inline;
|
||||
}
|
||||
li:not(:first-child):before {
|
||||
content: ' • ';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.vertical-list {
|
||||
@extend %vertical-list;
|
||||
}
|
||||
|
||||
.horizontal-list {
|
||||
@extend %vertical-list;
|
||||
li {
|
||||
display: inline;
|
||||
}
|
||||
}
|
||||
54
frontend/app/src/theme/common/_ion-button.scss
Normal file
54
frontend/app/src/theme/common/_ion-button.scss
Normal file
@@ -0,0 +1,54 @@
|
||||
/*!
|
||||
* Copyright (C) 2022 StApps
|
||||
* This program is free software: you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the Free
|
||||
* Software Foundation, version 3.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with
|
||||
* this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
app-root {
|
||||
// Change default border radius
|
||||
ion-buttons ion-button.button,
|
||||
.button {
|
||||
&:not(.button-round) {
|
||||
--border-radius: var(--border-radius-default);
|
||||
}
|
||||
}
|
||||
|
||||
.button {
|
||||
font-size: var(--font-size-sm);
|
||||
font-weight: var(--font-weight-semi-bold);
|
||||
--padding-top: var(--spacing-sm);
|
||||
--padding-bottom: var(--spacing-sm);
|
||||
height: auto;
|
||||
|
||||
// Add default border, so buttons have the same size
|
||||
&:not([fill='outline'])::part(native) {
|
||||
border: var(--border-width-default) solid transparent;
|
||||
}
|
||||
|
||||
&[fill='outline']::part(native) {
|
||||
border: var(--border-width-default) solid rgba(var(--ion-color-primary-contrast-rgb), 0.2);
|
||||
}
|
||||
|
||||
&.button-active {
|
||||
font-weight: var(--font-weight-bold);
|
||||
--background: var(--ion-color-tertiary);
|
||||
|
||||
ion-icon {
|
||||
color: var(--ion-color-secondary);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ion-menu-button.button {
|
||||
font-size: var(--font-size-lg);
|
||||
}
|
||||
}
|
||||
45
frontend/app/src/theme/common/_ion-content-parallax.scss
Normal file
45
frontend/app/src/theme/common/_ion-content-parallax.scss
Normal file
@@ -0,0 +1,45 @@
|
||||
/*!
|
||||
* Copyright (C) 2023 StApps
|
||||
* This program is free software: you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the Free
|
||||
* Software Foundation, version 3.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with
|
||||
* this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
$overscroll-padding: 720px;
|
||||
$parallax-strength: 2;
|
||||
$default-parallax-content-size: 230px;
|
||||
|
||||
ion-content::part(parallax-scroll) {
|
||||
perspective: 2px;
|
||||
perspective-origin: center top;
|
||||
}
|
||||
|
||||
ion-content::part(parallax-parent) {
|
||||
transform-style: preserve-3d;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
ion-content::part(parallax) {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
left: 0;
|
||||
|
||||
$translateY: calc($overscroll-padding * $parallax-strength);
|
||||
$translateZ: calc(-1px * $parallax-strength);
|
||||
$transform-origin: calc($parallax-strength * $parallax-strength * $overscroll-padding);
|
||||
|
||||
height: calc(var(--parallax-content-size, $default-parallax-content-size) + $overscroll-padding);
|
||||
width: 150%;
|
||||
transform-origin: 50% $transform-origin;
|
||||
transform: translate3d(0px, $translateY, $translateZ) scale($parallax-strength);
|
||||
|
||||
background: var(--parallax-background, var(--ion-color-primary));
|
||||
}
|
||||
5
frontend/app/src/theme/common/_ion-header.scss
Normal file
5
frontend/app/src/theme/common/_ion-header.scss
Normal file
@@ -0,0 +1,5 @@
|
||||
app-root ion-header[class*='header-'] {
|
||||
&:after {
|
||||
background-image: unset;
|
||||
}
|
||||
}
|
||||
5
frontend/app/src/theme/common/_ion-img.scss
Normal file
5
frontend/app/src/theme/common/_ion-img.scss
Normal file
@@ -0,0 +1,5 @@
|
||||
app-root {
|
||||
ion-thumbnail {
|
||||
background: transparent;
|
||||
}
|
||||
}
|
||||
40
frontend/app/src/theme/common/_ion-input.scss
Normal file
40
frontend/app/src/theme/common/_ion-input.scss
Normal file
@@ -0,0 +1,40 @@
|
||||
$icon-size: 23px;
|
||||
|
||||
app-root ion-searchbar[class*='sc-ion-searchbar-'] {
|
||||
--border-radius: var(--border-radius-default);
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
height: 38px;
|
||||
|
||||
&.filterable {
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
--box-shadow: none;
|
||||
position: relative;
|
||||
|
||||
ion-menu-button {
|
||||
position: absolute;
|
||||
right: 5px;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.searchbar-clear-button {
|
||||
right: 45px;
|
||||
}
|
||||
}
|
||||
|
||||
ion-icon.searchbar-search-icon {
|
||||
width: $icon-size;
|
||||
height: $icon-size;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
left: var(--spacing-sm);
|
||||
color: var(--ion-color-medium-shade);
|
||||
}
|
||||
|
||||
input.searchbar-input {
|
||||
padding-top: var(--spacing-xs);
|
||||
padding-bottom: var(--spacing-xs);
|
||||
padding-left: calc(var(--spacing-lg) + #{$icon-size});
|
||||
}
|
||||
}
|
||||
18
frontend/app/src/theme/common/_ion-menu.scss
Normal file
18
frontend/app/src/theme/common/_ion-menu.scss
Normal file
@@ -0,0 +1,18 @@
|
||||
/*!
|
||||
* Copyright (C) 2023 StApps
|
||||
* This program is free software: you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the Free
|
||||
* Software Foundation, version 3.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with
|
||||
* this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
ion-menu {
|
||||
--ion-item-background: var(--ion-background-color);
|
||||
--ion-item-color: var(--ion-background-color-contrast);
|
||||
}
|
||||
12
frontend/app/src/theme/common/_ion-modal.scss
Normal file
12
frontend/app/src/theme/common/_ion-modal.scss
Normal file
@@ -0,0 +1,12 @@
|
||||
@import '../../theme/util/mixins';
|
||||
|
||||
ion-modal {
|
||||
&.modal-large {
|
||||
--height: 100%;
|
||||
|
||||
@include ion-md-up {
|
||||
--height: 70vh;
|
||||
--max-height: 800px;
|
||||
}
|
||||
}
|
||||
}
|
||||
19
frontend/app/src/theme/common/_ion-popover.scss
Normal file
19
frontend/app/src/theme/common/_ion-popover.scss
Normal file
@@ -0,0 +1,19 @@
|
||||
/*!
|
||||
* Copyright (C) 2022 StApps
|
||||
* This program is free software: you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the Free
|
||||
* Software Foundation, version 3.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with
|
||||
* this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
.sc-ion-popover-ios-h,
|
||||
.sc-ion-popover-md-h {
|
||||
--width: 98vw;
|
||||
}
|
||||
27
frontend/app/src/theme/common/_ion-refresher.scss
Normal file
27
frontend/app/src/theme/common/_ion-refresher.scss
Normal file
@@ -0,0 +1,27 @@
|
||||
/*!
|
||||
* Copyright (C) 2022 StApps
|
||||
* This program is free software: you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the Free
|
||||
* Software Foundation, version 3.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with
|
||||
* this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
ion-refresher {
|
||||
background-color: var(--ion-color-primary);
|
||||
text-transform: uppercase;
|
||||
|
||||
.refresher-pulling-icon,
|
||||
.refresher-pulling-text,
|
||||
.refresher-refreshing-text {
|
||||
font-size: var(--font-size-xs);
|
||||
font-weight: var(--font-weight-semi-bold);
|
||||
--ion-text-color: var(--ion-color-primary-contrast);
|
||||
}
|
||||
}
|
||||
18
frontend/app/src/theme/common/_ion-searchbar.scss
Normal file
18
frontend/app/src/theme/common/_ion-searchbar.scss
Normal file
@@ -0,0 +1,18 @@
|
||||
/*!
|
||||
* Copyright (C) 2023 StApps
|
||||
* This program is free software: you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the Free
|
||||
* Software Foundation, version 3.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with
|
||||
* this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
ion-searchbar {
|
||||
--background: var(--ion-item-background) !important;
|
||||
}
|
||||
77
frontend/app/src/theme/common/_ion-toolbar.scss
Normal file
77
frontend/app/src/theme/common/_ion-toolbar.scss
Normal file
@@ -0,0 +1,77 @@
|
||||
/*!
|
||||
* Copyright (C) 2023 StApps
|
||||
* This program is free software: you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the Free
|
||||
* Software Foundation, version 3.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with
|
||||
* this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
app-root ion-toolbar.in-toolbar {
|
||||
--background: var(--ion-color-primary);
|
||||
--border-color: var(--ion-color-primary);
|
||||
--color: var(--ion-color-primary-contrast);
|
||||
--ion-toolbar-color: var(--ion-color-primary-contrast);
|
||||
--min-height: unset;
|
||||
--padding-start: 0;
|
||||
--padding-end: 0;
|
||||
--padding-top: 0;
|
||||
--padding-bottom: 0;
|
||||
--opacity: 1;
|
||||
padding: 0 var(--spacing-md) var(--spacing-md);
|
||||
|
||||
&:first-of-type {
|
||||
--padding-top: 0;
|
||||
--padding-bottom: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
&:last-of-type {
|
||||
--padding-top: 0;
|
||||
--padding-bottom: 0;
|
||||
}
|
||||
|
||||
ion-segment {
|
||||
&:last-of-type {
|
||||
--padding-bottom: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
ion-menu-button.filter {
|
||||
--padding-start: var(--spacing-lg);
|
||||
--padding-end: var(--spacing-lg);
|
||||
|
||||
ion-icon {
|
||||
margin-right: var(--spacing-md);
|
||||
font-size: var(--font-size-lg);
|
||||
}
|
||||
}
|
||||
|
||||
ion-title {
|
||||
font-weight: var(--font-weight-black);
|
||||
font-size: var(--font-size-lg);
|
||||
}
|
||||
|
||||
ion-menu-button {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
ion-back-button {
|
||||
--icon-margin-end: var(--spacing-xs);
|
||||
height: 42px; // this prevents the back button to become a .x px value
|
||||
}
|
||||
}
|
||||
|
||||
app-root ion-toolbar.in-toolbar ion-searchbar,
|
||||
.stapps-searchbar {
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
--box-shadow: none;
|
||||
}
|
||||
25
frontend/app/src/theme/common/_leaflet-tile.scss
Normal file
25
frontend/app/src/theme/common/_leaflet-tile.scss
Normal file
@@ -0,0 +1,25 @@
|
||||
/*!
|
||||
* Copyright (C) 2023 StApps
|
||||
* This program is free software: you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the Free
|
||||
* Software Foundation, version 3.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with
|
||||
* this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
@import '../util/dark';
|
||||
|
||||
@include dark-only {
|
||||
.leaflet-tile-container > .leaflet-tile {
|
||||
filter: invert(1);
|
||||
}
|
||||
}
|
||||
|
||||
.map-container.leaflet-container {
|
||||
background: var(--ion-background-color);
|
||||
}
|
||||
53
frontend/app/src/theme/common/_swiper.scss
Normal file
53
frontend/app/src/theme/common/_swiper.scss
Normal file
@@ -0,0 +1,53 @@
|
||||
/*!
|
||||
* Copyright (C) 2022 StApps
|
||||
* This program is free software: you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the Free
|
||||
* Software Foundation, version 3.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with
|
||||
* this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
@import '../../theme/util/mixins';
|
||||
|
||||
.swiper.card-swiper {
|
||||
overflow: visible;
|
||||
padding-right: var(--spacing-lg);
|
||||
|
||||
.swiper-slide {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: auto; // required for same height of cards
|
||||
|
||||
a {
|
||||
color: var(--ion-color-text);
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
.swiper-button-prev,
|
||||
.swiper-button-next {
|
||||
--swiper-navigation-size: 20px;
|
||||
top: calc(-1 * var(--spacing-lg));
|
||||
transform: translateY(0%);
|
||||
font-weight: var(--font-weight-black);
|
||||
color: var(--ion-color-dark);
|
||||
|
||||
@include ion-md-down {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.swiper-button-prev {
|
||||
right: 30px;
|
||||
left: auto;
|
||||
}
|
||||
|
||||
.swiper-button-next {
|
||||
right: 0;
|
||||
}
|
||||
}
|
||||
33
frontend/app/src/theme/common/_typo.scss
Normal file
33
frontend/app/src/theme/common/_typo.scss
Normal file
@@ -0,0 +1,33 @@
|
||||
/*!
|
||||
* Copyright (C) 2023 StApps
|
||||
* This program is free software: you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the Free
|
||||
* Software Foundation, version 3.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with
|
||||
* this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
body app-root {
|
||||
.title,
|
||||
.title[class*='sc-ion-label'] {
|
||||
font-size: var(--font-size-md);
|
||||
font-weight: var(--font-weight-semi-bold);
|
||||
// TODO Condensed Font
|
||||
}
|
||||
.title-sub,
|
||||
.title-sub[class*='sc-ion-label'] {
|
||||
font-size: var(--font-size-md);
|
||||
font-weight: var(--font-weight-regular);
|
||||
// TODO Condensed Font
|
||||
}
|
||||
|
||||
.title-sub {
|
||||
// color: var(--ion-color-medium);
|
||||
}
|
||||
}
|
||||
3
frontend/app/src/theme/common/_typography.scss
Normal file
3
frontend/app/src/theme/common/_typography.scss
Normal file
@@ -0,0 +1,3 @@
|
||||
a {
|
||||
cursor: pointer;
|
||||
}
|
||||
Reference in New Issue
Block a user