aboutsummaryrefslogtreecommitdiff
path: root/FrontEnd/src
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2021-06-15 23:17:33 +0800
committercrupest <crupest@outlook.com>2021-06-15 23:17:33 +0800
commit8b0b103859ad869021361de6090cbebff0574cdb (patch)
tree5bcfd87d1d425c5fab640f5b81a655902e6b999d /FrontEnd/src
parent7bc891cd64207bb4526669ba47e22a2feea71d51 (diff)
downloadtimeline-8b0b103859ad869021361de6090cbebff0574cdb.tar.gz
timeline-8b0b103859ad869021361de6090cbebff0574cdb.tar.bz2
timeline-8b0b103859ad869021361de6090cbebff0574cdb.zip
...
Diffstat (limited to 'FrontEnd/src')
-rw-r--r--FrontEnd/src/index.css31
-rw-r--r--FrontEnd/src/palette.ts33
2 files changed, 50 insertions, 14 deletions
diff --git a/FrontEnd/src/index.css b/FrontEnd/src/index.css
index f64bbdf4..dfe22597 100644
--- a/FrontEnd/src/index.css
+++ b/FrontEnd/src/index.css
@@ -1,5 +1,34 @@
:root {
--tl-background-color: #f8f9fa;
+
+ --tl-primary-color: rgb(0, 123, 255);
+ --tl-primary-inactive-color: hsl(211.1, 100%, 55%);
+ --tl-primary-lighter-color: hsl(211.1, 100%, 55%);
+ --tl-primary-darker-color: hsl(211.1, 100%, 45%);
+ --tl-primary-enhance-color: hsl(211.1, 100%, 65%);
+ --tl-primary-enhance-inactive-color: hsl(211.1, 100%, 58.5%);
+ --tl-primary-enhance-lighter-color: hsl(211.1, 100%, 68.5%);
+ --tl-primary-enhance-darker-color: hsl(211.1, 100%, 58.5%);
+ --tl-secondary-color: hsl(301.1, 100%, 50%);
+ --tl-secondary-inactive-color: hsl(301.1, 100%, 55%);
+ --tl-secondary-lighter-color: hsl(301.1, 100%, 55%);
+ --tl-secondary-darker-color: hsl(301.1, 100%, 45%);
+ --tl-text-primary-color: rgb(17, 17, 17);
+ --tl-text-primary-inactive-color: hsl(0, 0%, 16%);
+ --tl-text-primary-lighter-color: hsl(0, 0%, 16%);
+ --tl-text-primary-darker-color: hsl(0, 0%, 6%);
+ --tl-text-on-primary-color: rgb(255, 255, 255);
+ --tl-text-on-primary-inactive-color: hsl(0, 0%, 90%);
+ --tl-text-on-primary-lighter-color: hsl(0, 0%, 100%);
+ --tl-text-on-primary-darker-color: hsl(0, 0%, 90%);
+ --tl-danger-color: rgb(255, 0, 0);
+ --tl-danger-inactive-color: hsl(0, 100%, 55%);
+ --tl-danger-lighter-color: hsl(0, 100%, 55%);
+ --tl-danger-darker-color: hsl(0, 100%, 45%);
+ --tl-success-color: rgb(0, 128, 0);
+ --tl-success-inactive-color: hsl(120, 100%, 32.6%);
+ --tl-success-lighter-color: hsl(120, 100%, 32.6%);
+ --tl-success-darker-color: hsl(120, 100%, 22.6%);
}
body {
@@ -48,7 +77,7 @@ small {
}
.icon-button.primary-enhance {
- color: var(--tl-primary-enhance-color)
+ color: var(--tl-primary-enhance-color);
}
.cursor-pointer {
diff --git a/FrontEnd/src/palette.ts b/FrontEnd/src/palette.ts
index 6385df66..767fe995 100644
--- a/FrontEnd/src/palette.ts
+++ b/FrontEnd/src/palette.ts
@@ -13,9 +13,9 @@ function darkenBy(color: Color, ratio: number): Color {
export interface PaletteColor {
color: string;
- inactive: string;
lighter: string;
darker: string;
+ inactive: string;
[key: string]: string;
}
@@ -39,9 +39,9 @@ export function generatePaletteColor(color: string): PaletteColor {
color: c.toString(),
inactive: (c.lightness() > 60
? darkenBy(c, 0.1)
- : lightenBy(c, 0.2)
+ : lightenBy(c, 0.1)
).toString(),
- lighter: lightenBy(c, 0.1).fade(0.1).toString(),
+ lighter: lightenBy(c, 0.1).toString(),
darker: darkenBy(c, 0.1).toString(),
};
}
@@ -89,21 +89,28 @@ export function generatePaletteCSS(palette: Palette): string {
.join("")}}`;
}
-const paletteSubject: BehaviorSubject<Palette> = new BehaviorSubject<Palette>(
- generatePalette({ primary: "#007bff" })
-);
+const paletteSubject: BehaviorSubject<Palette | null> =
+ new BehaviorSubject<Palette | null>(null);
-export const palette$: Observable<Palette> = paletteSubject.asObservable();
+export const palette$: Observable<Palette | null> =
+ paletteSubject.asObservable();
palette$.subscribe((palette) => {
const styleTagId = "timeline-palette-css";
- let styleTag = document.getElementById(styleTagId);
- if (styleTag == null) {
- styleTag = document.createElement("style");
- styleTag.id = styleTagId;
- document.head.append(styleTag);
+ if (palette != null) {
+ let styleTag = document.getElementById(styleTagId);
+ if (styleTag == null) {
+ styleTag = document.createElement("style");
+ styleTag.id = styleTagId;
+ document.head.append(styleTag);
+ }
+ styleTag.innerHTML = generatePaletteCSS(palette);
+ } else {
+ const styleTag = document.getElementById(styleTagId);
+ if (styleTag != null) {
+ styleTag.parentElement?.removeChild(styleTag);
+ }
}
- styleTag.innerHTML = generatePaletteCSS(palette);
});
export function setPalette(palette: Palette): () => void {