diff --git a/src/components/modals/main/settings/sections/Appearance.jsx b/src/components/modals/main/settings/sections/Appearance.jsx
index 027d663c..b04e8f93 100644
--- a/src/components/modals/main/settings/sections/Appearance.jsx
+++ b/src/components/modals/main/settings/sections/Appearance.jsx
@@ -55,6 +55,8 @@ export default function AppearanceSettings() {
{appearance.accessibility.title}
+
+
>
);
diff --git a/src/components/widgets/greeting/greeting.scss b/src/components/widgets/greeting/greeting.scss
index 0d2eeb47..1a2caf3a 100644
--- a/src/components/widgets/greeting/greeting.scss
+++ b/src/components/widgets/greeting/greeting.scss
@@ -3,4 +3,5 @@
font-size: 1.6em;
cursor: initial;
user-select: none;
+ --shadow-shift: 0.2rem;
}
diff --git a/src/components/widgets/quote/quote.scss b/src/components/widgets/quote/quote.scss
index 100270bc..d2249fa7 100644
--- a/src/components/widgets/quote/quote.scss
+++ b/src/components/widgets/quote/quote.scss
@@ -5,6 +5,7 @@
text-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
cursor: initial;
user-select: none;
+ --shadow-shift: 0.125rem;
}
@media screen and (min-width: 600px) {
@@ -18,6 +19,7 @@
font-size: 0.9em;
letter-spacing: 0.5px;
user-select: none;
+ --shadow-shift: 0.125rem;
svg {
margin-left: 10px;
diff --git a/src/components/widgets/time/clock.scss b/src/components/widgets/time/clock.scss
index f5eec66a..f5e51155 100644
--- a/src/components/widgets/time/clock.scss
+++ b/src/components/widgets/time/clock.scss
@@ -5,6 +5,7 @@
margin: 0;
cursor: initial;
user-select: none;
+ --shadow-shift: 0.4rem;
}
.ampm {
diff --git a/src/modules/default_settings.json b/src/modules/default_settings.json
index cd702286..b74fa12a 100644
--- a/src/modules/default_settings.json
+++ b/src/modules/default_settings.json
@@ -238,5 +238,9 @@
{
"name": "offlineMode",
"value": false
+ },
+ {
+ "name": "animations",
+ "value": true
}
]
diff --git a/src/modules/helpers/settings/index.js b/src/modules/helpers/settings/index.js
index 69620e1c..e4e73229 100644
--- a/src/modules/helpers/settings/index.js
+++ b/src/modules/helpers/settings/index.js
@@ -57,6 +57,28 @@ export function loadSettings(hotreload) {
});
}
+ if (localStorage.getItem('animations') === 'false') {
+ document.body.classList.add('no-animations');
+ } else {
+ document.body.classList.remove('no-animations');
+ }
+
+ if (localStorage.getItem('textBorder') === 'true') {
+ const elements = ['greeting', 'clock', 'quote', 'quoteauthor'];
+ elements.forEach((element) => {
+ try {
+ document.querySelector('.' + element).classList.add('textBorder')
+ } catch (e) {}
+ });
+ } else {
+ const elements = ['greeting', 'clock', 'quote', 'quoteauthor'];
+ elements.forEach((element) => {
+ try {
+ document.querySelector('.' + element).classList.remove('textBorder')
+ } catch (e) {}
+ });
+ }
+
const css = localStorage.getItem('customcss');
if (css) {
document.head.insertAdjacentHTML('beforeend', '');
diff --git a/src/scss/_themes.scss b/src/scss/_themes.scss
index 042b7874..4afd66fe 100644
--- a/src/scss/_themes.scss
+++ b/src/scss/_themes.scss
@@ -35,3 +35,9 @@ $modal-link-dark: map-get($modal, 'modal-link-dark');
--photo-info: #{$photo-info-dark};
--modal-link: #{$modal-link-dark};
}
+
+.no-animations {
+ .ReactModal__Content, button, svg, input[type=text], .MuiSwitch-switchBase {
+ transition: none !important;
+ }
+}
diff --git a/src/scss/index.scss b/src/scss/index.scss
index 647f7897..d0512b33 100644
--- a/src/scss/index.scss
+++ b/src/scss/index.scss
@@ -34,6 +34,10 @@ body {
text-shadow: 0 0 25px rgba(0, 0, 0, 0.3);
}
+.textBorder {
+ filter: drop-shadow(var(--shadow-shift) var(--shadow-shift) 0 #111111CC);
+}
+
::placeholder {
color: map-get($theme-colours, 'main');
opacity: 1;