diff options
| author | ivarlovlie <git@ivarlovlie.no> | 2022-07-31 20:44:12 +0200 |
|---|---|---|
| committer | ivarlovlie <git@ivarlovlie.no> | 2022-07-31 20:44:12 +0200 |
| commit | 2e435683aa0080bda6e8be0955e86b03004e70fb (patch) | |
| tree | e8a6ac27365e8eb690bfdd748faea6cdafcbd2d6 /apps/web-shared | |
| parent | 1873f2ba27ede8de06a3aebb77f7b2f38eb65076 (diff) | |
| download | greatoffice-2e435683aa0080bda6e8be0955e86b03004e70fb.tar.xz greatoffice-2e435683aa0080bda6e8be0955e86b03004e70fb.zip | |
refactor: Move shared preloaded js and css into web-shared
Diffstat (limited to 'apps/web-shared')
| -rw-r--r-- | apps/web-shared/src/assets/preload.css | 127 | ||||
| -rw-r--r-- | apps/web-shared/src/assets/preload.js | 13 |
2 files changed, 140 insertions, 0 deletions
diff --git a/apps/web-shared/src/assets/preload.css b/apps/web-shared/src/assets/preload.css new file mode 100644 index 0000000..3ee8bda --- /dev/null +++ b/apps/web-shared/src/assets/preload.css @@ -0,0 +1,127 @@ +:root { + --loader-primary: hsl(210, 92%, 44%); + --loader-accent: hsl(350, 47%, 42%); + --loader-contrast: hsl(230, 2%, 48%); + --loader-easing: cubic-bezier(0.645, 0.045, 0.355, 1); +} + +[data-theme="dark"] :root { + --loader-primary: hsl(250, 100%, 69%); + --loader-accent: hsl(342, 92%, 47%); + --loader-contrast: hsl(250, 100%, 69%); + --loader-easing: cubic-bezier(0.645, 0.045, 0.355, 1); +} + +[data-theme="dark"] { + background-color: hsl(232, 11%, 15%); +} + +.fill-loader { + position: relative; + overflow: hidden; + display: inline-block; + margin: 3rem; +} + +.fill-loader__fill { + position: absolute; +} + +@supports (-webkit-animation-name: this) or (animation-name: this) { + .fill-loader__label { + position: absolute; + clip: rect(1px, 1px, 1px, 1px); + -webkit-clip-path: inset(50%); + clip-path: inset(50%); + } +} + +@supports (-webkit-animation-name: this) or (animation-name: this) { + .fill-loader--v4 { + width: 90%; + max-width: 300px; + } + + .fill-loader--v4 .fill-loader__base { + height: 4px; + background-color: var(--loader-contrast); + } + + .fill-loader--v4 .fill-loader__fill { + top: 0; + left: 0; + right: 0; + height: 100%; + background-color: var(--loader-primary); + -webkit-animation: fill-loader-4 1.6s infinite var(--loader-easing); + animation: fill-loader-4 1.6s infinite var(--loader-easing); + will-change: left, right; + } +} + +@-webkit-keyframes fill-loader-4 { + 0% { + left: 0; + right: 100%; + background-color: var(--loader-primary); + } + + 10%, + 60% { + left: 0; + } + + 40%, + 90% { + right: 0; + } + + 50% { + left: 100%; + background-color: var(--loader-primary); + } + + 51% { + left: 0; + right: 100%; + background-color: var(--loader-accent); + } + + 100% { + left: 100%; + background-color: var(--loader-accent); + } +} +@keyframes fill-loader-4 { + 0% { + left: 0; + right: 100%; + background-color: var(--loader-primary); + } + + 10%, + 60% { + left: 0; + } + + 40%, + 90% { + right: 0; + } + + 50% { + left: 100%; + background-color: var(--loader-primary); + } + + 51% { + left: 0; + right: 100%; + background-color: var(--loader-accent); + } + + 100% { + left: 100%; + background-color: var(--loader-accent); + } +}
\ No newline at end of file diff --git a/apps/web-shared/src/assets/preload.js b/apps/web-shared/src/assets/preload.js new file mode 100644 index 0000000..379902f --- /dev/null +++ b/apps/web-shared/src/assets/preload.js @@ -0,0 +1,13 @@ +const value = `; ${document.cookie}`; +const parts = value.split(`; go_theme=`); +let currentTheme = "system"; +if (parts.length === 2) { + currentTheme = parts.pop().split(";").shift(); +} +if (currentTheme === "light") { + document.querySelector("html").dataset.theme = "light"; +} else if (currentTheme === "dark") { + document.querySelector("html").dataset.theme = "dark"; +} else { + document.querySelector("html").dataset.theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light"; +}
\ No newline at end of file |
