diff --git a/ui/src/App.vue b/ui/src/App.vue
index 5b8edf1..406c89b 100644
--- a/ui/src/App.vue
+++ b/ui/src/App.vue
@@ -1,5 +1,5 @@
@@ -59,13 +68,17 @@ watchEffect(() => {
// The global style.css will handle base background and text color via body styling
// but we can keep specific overrides here if needed or theme classes.
// ui.theme === 'dark' ? 'bg-gray-800 text-gray-100' : 'bg-gray-100 text-gray-900'
- ]">
+ ]" :style="transitionDurationStyle">
-
+
+
+
+
+
@@ -73,4 +86,26 @@ watchEffect(() => {
diff --git a/ui/src/stores/useUi.js b/ui/src/stores/useUi.js
index 45eb65f..bfe2f29 100644
--- a/ui/src/stores/useUi.js
+++ b/ui/src/stores/useUi.js
@@ -30,6 +30,7 @@ const appearanceSettingKeys = [
'defaultViewPlanillas',
'defaultViewAsistencias',
'defaultViewConfiguracion',
+ 'transitionSpeed',
]
const loadSettingsFromLocalStorage = () => {
@@ -104,6 +105,7 @@ export const useUi = defineStore('ui', {
'defaultViewPlanillas': 'table',
'defaultViewAsistencias': 'table',
'defaultViewConfiguracion': 'table',
+ transitionSpeed: 1, // Default to normal speed
}
const loadedSettings = loadSettingsFromLocalStorage()
@@ -237,7 +239,13 @@ export const useUi = defineStore('ui', {
setDefaultViewConfiguracion(view) {
this.defaultViewConfiguracion = view
_saveAppearanceState(this)
- }
+ },
+
+ // Action for transition speed
+ setTransitionSpeed(newSpeed) {
+ this.transitionSpeed = Number(newSpeed) // Ensure it's a number
+ _saveAppearanceState(this)
+ },
},
})
diff --git a/ui/src/views/SettingsView.vue b/ui/src/views/SettingsView.vue
index 6553161..1d1f6e2 100644
--- a/ui/src/views/SettingsView.vue
+++ b/ui/src/views/SettingsView.vue
@@ -26,6 +26,26 @@
+
+
+
+
+
+ Adjust the speed of screen transitions (applied if animations are enabled).
+
+
+
+
+
@@ -211,6 +231,12 @@ onMounted(() => {
isMounted.value = true
}, 50)
})
+
+const speedOptions = [
+ { label: 'Slow', value: 2 },
+ { label: 'Normal', value: 1 },
+ { label: 'Fast', value: 0.5 },
+]