mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-04-01 21:13:09 +00:00
rename frontend to web
This commit is contained in:
29
web/projects/shared/styles/global.scss
Normal file
29
web/projects/shared/styles/global.scss
Normal file
@@ -0,0 +1,29 @@
|
||||
/*
|
||||
* App Global CSS
|
||||
* ----------------------------------------------------------------------------
|
||||
* Put style rules here that you want to apply globally. These styles are for
|
||||
* the entire app and not just one component. Additionally, this file can be
|
||||
* used as an entry point to import other CSS/Sass files to be included in the
|
||||
* output CSS.
|
||||
* For more information on global stylesheets, visit the documentation:
|
||||
* https://ionicframework.com/docs/layout/global-stylesheets
|
||||
*/
|
||||
|
||||
/* Core CSS required for Ionic components to work properly */
|
||||
@import '@ionic/angular/css/core.css';
|
||||
|
||||
/* Basic CSS for apps built with Ionic */
|
||||
@import '@ionic/angular/css/normalize.css';
|
||||
@import '@ionic/angular/css/structure.css';
|
||||
@import '@ionic/angular/css/typography.css';
|
||||
@import '@ionic/angular/css/display.css';
|
||||
|
||||
/* Optional CSS utils that can be commented out */
|
||||
@import '@ionic/angular/css/padding.css';
|
||||
@import '@ionic/angular/css/float-elements.css';
|
||||
@import '@ionic/angular/css/text-alignment.css';
|
||||
@import '@ionic/angular/css/text-transformation.css';
|
||||
@import '@ionic/angular/css/flex-utils.css';
|
||||
|
||||
/* Import swiper styles for slides */
|
||||
@import 'swiper/scss';
|
||||
169
web/projects/shared/styles/shared.scss
Normal file
169
web/projects/shared/styles/shared.scss
Normal file
@@ -0,0 +1,169 @@
|
||||
$wide-modal: 900px;
|
||||
|
||||
body {
|
||||
-webkit-user-select: text;
|
||||
-moz-user-select: text;
|
||||
-ms-user-select: text;
|
||||
user-select: text;
|
||||
}
|
||||
|
||||
ion-input {
|
||||
caret-color: gray;
|
||||
}
|
||||
|
||||
ion-alert {
|
||||
.alert-wrapper {
|
||||
--min-width: 320px;
|
||||
}
|
||||
}
|
||||
|
||||
.swiper {
|
||||
.swiper-slide {
|
||||
display: unset;
|
||||
}
|
||||
}
|
||||
|
||||
ion-modal {
|
||||
--backdrop-opacity: 0.7;
|
||||
&::part(content) {
|
||||
border-radius: 6px;
|
||||
border: 2px solid rgba(255, 255, 255, 0.03);
|
||||
box-shadow: 0 32px 64px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
}
|
||||
|
||||
.alertlike-modal {
|
||||
&::part(content) {
|
||||
max-height: 380px !important;
|
||||
top: 25% !important;
|
||||
width: 90% !important;
|
||||
left: 5% !important;
|
||||
--box-shadow: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1000px) {
|
||||
ion-modal::part(content) {
|
||||
width: $wide-modal !important;
|
||||
left: calc((100vw - $wide-modal) / 2) !important;
|
||||
}
|
||||
|
||||
.alertlike-modal {
|
||||
&::part(content) {
|
||||
width: $wide-modal !important;
|
||||
left: calc((100vw - $wide-modal) / 2) !important;
|
||||
}
|
||||
}
|
||||
|
||||
ion-alert {
|
||||
.alert-wrapper {
|
||||
--width: 50%;
|
||||
--max-width: 500px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.item-interactive {
|
||||
--highlight-background: var(--ion-color-light) !important;
|
||||
}
|
||||
|
||||
.hidden-scrollbar {
|
||||
overflow: auto;
|
||||
white-space: nowrap;
|
||||
height: 60px;
|
||||
|
||||
/* Hide scrollbar for Chrome, Safari and Opera */
|
||||
&::-webkit-scrollbar {
|
||||
width: 0;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
/* Hide scrollbar for IE, Edge and Firefox */
|
||||
/* IE and Edge */
|
||||
-ms-overflow-style: none;
|
||||
/* Firefox */
|
||||
scrollbar-width: none;
|
||||
}
|
||||
|
||||
.divider {
|
||||
background: linear-gradient(90deg,
|
||||
var(--ion-color-light) 0,
|
||||
var(--ion-color-dark) 50%,
|
||||
var(--ion-color-light) 100%);
|
||||
height: 1px;
|
||||
}
|
||||
|
||||
.loading-dots:after {
|
||||
content: '...';
|
||||
overflow: hidden;
|
||||
display: inline-block;
|
||||
vertical-align: bottom;
|
||||
animation: ellipsis-dot 1s infinite 0.3s;
|
||||
animation-fill-mode: forwards;
|
||||
width: 1em;
|
||||
}
|
||||
|
||||
.courier-new {
|
||||
font-family: 'Courier New';
|
||||
}
|
||||
|
||||
.montserrat {
|
||||
font-family: 'Montserrat', sans-serif !important;
|
||||
}
|
||||
|
||||
.color-success-shade {
|
||||
color: var(--ion-color-success-shade)
|
||||
}
|
||||
|
||||
.color-primary-shade {
|
||||
color: var(--ion-color-primary-shade)
|
||||
}
|
||||
|
||||
@keyframes ellipsis-dot {
|
||||
25% {
|
||||
content: '';
|
||||
}
|
||||
|
||||
50% {
|
||||
content: '.';
|
||||
}
|
||||
|
||||
75% {
|
||||
content: '..';
|
||||
}
|
||||
|
||||
100% {
|
||||
content: '...';
|
||||
}
|
||||
}
|
||||
|
||||
.alert-error-message {
|
||||
.alert-title {
|
||||
color: var(--ion-color-danger);
|
||||
}
|
||||
}
|
||||
|
||||
.alert-warning-message {
|
||||
.alert-title {
|
||||
color: var(--ion-color-warning);
|
||||
}
|
||||
}
|
||||
|
||||
.alert-success-message {
|
||||
.alert-title {
|
||||
color: var(--ion-color-success);
|
||||
}
|
||||
}
|
||||
|
||||
a {
|
||||
cursor: pointer;
|
||||
color: aqua;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.modal-buttons {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
gap: 16px;
|
||||
margin-top: 24px;
|
||||
}
|
||||
98
web/projects/shared/styles/taiga.scss
Normal file
98
web/projects/shared/styles/taiga.scss
Normal file
@@ -0,0 +1,98 @@
|
||||
@import '@taiga-ui/core/styles/taiga-ui-local';
|
||||
|
||||
/* stylelint-disable order/order */
|
||||
[tuiWrapper][data-appearance='secondary-warning'] {
|
||||
background: var(--tui-warning-bg);
|
||||
color: var(--tui-warning-fill);
|
||||
|
||||
&[data-mode='onDark'] {
|
||||
background: var(--tui-warning-bg-night);
|
||||
color: var(--tui-warning-fill-night);
|
||||
|
||||
@include wrapper-hover {
|
||||
background: var(--tui-warning-bg-night-hover);
|
||||
}
|
||||
|
||||
@include wrapper-active {
|
||||
background: var(--tui-warning-bg-night-hover);
|
||||
}
|
||||
}
|
||||
|
||||
@include wrapper-hover {
|
||||
background: var(--tui-warning-bg-hover);
|
||||
}
|
||||
|
||||
@include wrapper-active {
|
||||
background: var(--tui-warning-bg-hover);
|
||||
}
|
||||
}
|
||||
|
||||
[tuiWrapper][data-appearance='success'] {
|
||||
color: var(--tui-success-fill);
|
||||
}
|
||||
|
||||
[tuiWrapper][data-appearance='warning'] {
|
||||
color: var(--tui-warning-fill);
|
||||
}
|
||||
|
||||
[tuiWrapper][data-appearance='error'] {
|
||||
color: var(--tui-error-fill);
|
||||
}
|
||||
|
||||
[tuiWrapper][data-appearance='input-file'] {
|
||||
&:hover,
|
||||
&:active {
|
||||
background: transparent !important;
|
||||
}
|
||||
}
|
||||
|
||||
tui-dialog {
|
||||
transform: translate3d(0, 0, 0);
|
||||
}
|
||||
|
||||
tui-opt-group[data-label^='⚠️']:before {
|
||||
color: var(--tui-warning-fill);
|
||||
}
|
||||
|
||||
tui-hint[data-appearance='onDark'] {
|
||||
background: white !important;
|
||||
color: #222 !important;
|
||||
}
|
||||
|
||||
[tuiLink] {
|
||||
color: var(--tui-link) !important;
|
||||
|
||||
&:hover {
|
||||
color: var(--tui-link-hover) !important;
|
||||
}
|
||||
}
|
||||
|
||||
[tuiWrapper][data-appearance='drawer'] {
|
||||
// TODO: Theme
|
||||
background: rgb(81 80 83 / 86%);
|
||||
border-radius: 10rem;
|
||||
|
||||
&._focused::after {
|
||||
color: var(--tui-primary);
|
||||
}
|
||||
}
|
||||
|
||||
tui-dropdown[data-appearance='start-os'][data-appearance='start-os'] {
|
||||
border: 0;
|
||||
box-shadow: 0 0.25rem 0.25rem rgb(0 0 0 / 25%);
|
||||
// TODO: Replace --tui-elevation-02 when Taiga UI is updated
|
||||
background: rgb(63 63 63 / 95%);
|
||||
|
||||
tui-opt-group {
|
||||
&::before {
|
||||
background: var(--tui-clear);
|
||||
box-shadow: 1rem 0 var(--tui-clear), -1rem 0 var(--tui-clear);
|
||||
padding-top: 0.375rem !important;
|
||||
padding-bottom: 0 !important;
|
||||
}
|
||||
|
||||
&::after {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
95
web/projects/shared/styles/variables.scss
Normal file
95
web/projects/shared/styles/variables.scss
Normal file
@@ -0,0 +1,95 @@
|
||||
// Ionic Variables and Theming. For more info, please see:
|
||||
// http://ionicframework.com/docs/theming/
|
||||
|
||||
/** Ionic CSS Variables **/
|
||||
:root {
|
||||
--ion-color-primary: #0075e1;
|
||||
--ion-color-primary-rgb: 66, 140, 255;
|
||||
--ion-color-primary-contrast: #ffffff;
|
||||
--ion-color-primary-contrast-rgb: 255, 255, 255;
|
||||
--ion-color-primary-shade: #3a7be0;
|
||||
--ion-color-primary-tint: #5598ff;
|
||||
|
||||
--ion-color-secondary: #50c8ff;
|
||||
--ion-color-secondary-rgb: 80, 200, 255;
|
||||
--ion-color-secondary-contrast: #ffffff;
|
||||
--ion-color-secondary-contrast-rgb: 255, 255, 255;
|
||||
--ion-color-secondary-shade: #46b0e0;
|
||||
--ion-color-secondary-tint: #62ceff;
|
||||
|
||||
--ion-color-tertiary: #6a64ff;
|
||||
--ion-color-tertiary-rgb: 106, 100, 255;
|
||||
--ion-color-tertiary-contrast: #ffffff;
|
||||
--ion-color-tertiary-contrast-rgb: 255, 255, 255;
|
||||
--ion-color-tertiary-shade: #5d58e0;
|
||||
--ion-color-tertiary-tint: #7974ff;
|
||||
|
||||
--ion-color-success: #2fdf75;
|
||||
--ion-color-success-rgb: 47, 223, 117;
|
||||
--ion-color-success-contrast: #000000;
|
||||
--ion-color-success-contrast-rgb: 0, 0, 0;
|
||||
--ion-color-success-shade: #29c467;
|
||||
--ion-color-success-tint: #44e283;
|
||||
|
||||
--ion-color-warning: #ffd534;
|
||||
--ion-color-warning-rgb: 255, 213, 52;
|
||||
--ion-color-warning-contrast: #000000;
|
||||
--ion-color-warning-contrast-rgb: 0, 0, 0;
|
||||
--ion-color-warning-shade: #e0bb2e;
|
||||
--ion-color-warning-tint: #ffd948;
|
||||
|
||||
--ion-color-danger: #ff4961;
|
||||
--ion-color-danger-rgb: 255, 73, 97;
|
||||
--ion-color-danger-contrast: #ffffff;
|
||||
--ion-color-danger-contrast-rgb: 255, 255, 255;
|
||||
--ion-color-danger-shade: #e04055;
|
||||
--ion-color-danger-tint: #ff5b71;
|
||||
|
||||
--ion-color-light: #181818;
|
||||
--ion-color-light-rgb: 24, 24, 24;
|
||||
--ion-color-light-contrast: #ffffff;
|
||||
--ion-color-light-contrast-rgb: 255, 255, 255;
|
||||
--ion-color-light-shade: #000000;
|
||||
--ion-color-light-tint: #000000;
|
||||
|
||||
--ion-color-medium: #222428;
|
||||
--ion-color-medium-rgb: 34, 36, 40;
|
||||
--ion-color-medium-contrast: #ffffff;
|
||||
--ion-color-medium-contrast-rgb: 255, 255, 255;
|
||||
--ion-color-medium-shade: #1e2023;
|
||||
--ion-color-medium-tint: #383a3e;
|
||||
|
||||
--ion-color-dark: #e0e0e0;
|
||||
--ion-color-dark-rgb: 224, 224, 224;
|
||||
--ion-color-dark-contrast: #000000;
|
||||
--ion-color-dark-contrast-rgb: 0, 0, 0;
|
||||
--ion-color-dark-shade: #bfbfbf;
|
||||
--ion-color-dark-tint: #d8d8d8;
|
||||
|
||||
--ion-color-step-50: #1e1e1e;
|
||||
--ion-color-step-100: #2a2a2a;
|
||||
--ion-color-step-150: #363636;
|
||||
--ion-color-step-200: #414141;
|
||||
--ion-color-step-250: #4d4d4d;
|
||||
--ion-color-step-300: #595959;
|
||||
--ion-color-step-350: #656565;
|
||||
--ion-color-step-400: #717171;
|
||||
--ion-color-step-450: #7d7d7d;
|
||||
--ion-color-step-500: #898989;
|
||||
--ion-color-step-550: #949494;
|
||||
--ion-color-step-600: #a0a0a0;
|
||||
--ion-color-step-650: #acacac;
|
||||
--ion-color-step-700: #b8b8b8;
|
||||
--ion-color-step-750: #c4c4c4;
|
||||
--ion-color-step-800: #d0d0d0;
|
||||
--ion-color-step-850: #dbdbdb;
|
||||
--ion-color-step-900: #e7e7e7;
|
||||
--ion-color-step-950: #f3f3f3;
|
||||
|
||||
--alt-red: #FF4961;
|
||||
--alt-orange: #F89248;
|
||||
--alt-yellow: #E5D53E;
|
||||
--alt-green: #3DCF6F;
|
||||
--alt-blue: #00A8A8;
|
||||
--alt-purple: #9747FF;
|
||||
}
|
||||
Reference in New Issue
Block a user