diff --git a/src/client/app/common/views/components/reactions-viewer.vue b/src/client/app/common/views/components/reactions-viewer.vue
index a55aa003a14b36e29134ce14ef2d7ab0fa8af59c..a651afe7c8c5d26ac4352fd7b4c26313ef08c7a2 100644
--- a/src/client/app/common/views/components/reactions-viewer.vue
+++ b/src/client/app/common/views/components/reactions-viewer.vue
@@ -67,6 +67,8 @@ export default Vue.extend({
 			});
 		},
 		anime(reaction: string) {
+			if (this.$store.state.device.reduceMotion) return;
+
 			this.$nextTick(() => {
 				const rect = this.$refs[reaction].$el.getBoundingClientRect();
 
diff --git a/src/client/app/common/views/directives/particle.ts b/src/client/app/common/views/directives/particle.ts
index b3688a3cf1d19eba174b4f7f27663c8a81511cf0..4b09b4f4d5ef4cfcafaf561cd188f1482c97c56b 100644
--- a/src/client/app/common/views/directives/particle.ts
+++ b/src/client/app/common/views/directives/particle.ts
@@ -2,6 +2,8 @@ import Particle from '../components/particle.vue';
 
 export default {
 	bind(el, binding, vn) {
+		if (vn.context.$store.state.device.reduceMotion) return;
+
 		el.addEventListener('click', () => {
 			const rect = el.getBoundingClientRect();