From a5d467ece2af3921c80179122cae8aab217f6e0c Mon Sep 17 00:00:00 2001 From: CScull Date: Tue, 7 Apr 2026 11:11:08 -0700 Subject: [PATCH] Add playful UI animations with GSAP across entire app Introduces a comprehensive animation system using GSAP: directional route transitions, staggered data entrance effects, springy micro-interactions, an animated canvas dot-grid background, button click ripples, badge pulse glows, and upgraded modal transitions with backdrop blur. All animations respect prefers-reduced-motion and clean up on component unmount. Co-Authored-By: Claude Opus 4.6 (1M context) --- client/package-lock.json | 7 + client/package.json | 5 +- client/src/App.vue | 716 +++++++++++++++--- client/src/components/AnimatedBackground.vue | 125 +++ client/src/components/BacklogDetailModal.vue | 29 +- client/src/components/CostDetailModal.vue | 29 +- client/src/components/FilterBar.vue | 30 +- .../src/components/InventoryDetailModal.vue | 21 +- client/src/components/ProductDetailModal.vue | 29 +- client/src/components/ProfileDetailsModal.vue | 29 +- client/src/components/TasksModal.vue | 29 +- client/src/composables/useAnimations.js | 129 ++++ client/src/composables/usePageTransition.js | 24 + client/src/directives/vRipple.js | 45 ++ client/src/main.js | 2 + client/src/views/Dashboard.vue | 25 +- client/src/views/Demand.vue | 23 +- client/src/views/Inventory.vue | 19 +- client/src/views/Orders.vue | 18 +- client/src/views/Reports.vue | 26 +- client/src/views/Spending.vue | 19 +- 21 files changed, 1132 insertions(+), 247 deletions(-) create mode 100644 client/src/components/AnimatedBackground.vue create mode 100644 client/src/composables/useAnimations.js create mode 100644 client/src/composables/usePageTransition.js create mode 100644 client/src/directives/vRipple.js diff --git a/client/package-lock.json b/client/package-lock.json index d13e6e77..7d59bc6a 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -9,6 +9,7 @@ "version": "1.0.0", "dependencies": { "axios": "^1.6.7", + "gsap": "^3.14.2", "vue": "^3.4.21", "vue-router": "^4.3.0" }, @@ -1177,6 +1178,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/gsap": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/gsap/-/gsap-3.14.2.tgz", + "integrity": "sha512-P8/mMxVLU7o4+55+1TCnQrPmgjPKnwkzkXOK1asnR9Jg2lna4tEY5qBJjMmAaOBDDZWtlRjBXjLa0w53G/uBLA==", + "license": "Standard 'no charge' license: https://gsap.com/standard-license." + }, "node_modules/has-symbols": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", diff --git a/client/package.json b/client/package.json index 58375dc8..88253ddf 100644 --- a/client/package.json +++ b/client/package.json @@ -8,9 +8,10 @@ "preview": "vite preview" }, "dependencies": { + "axios": "^1.6.7", + "gsap": "^3.14.2", "vue": "^3.4.21", - "vue-router": "^4.3.0", - "axios": "^1.6.7" + "vue-router": "^4.3.0" }, "devDependencies": { "@vitejs/plugin-vue": "^5.0.4", diff --git a/client/src/App.vue b/client/src/App.vue index c2da05a5..e5f01eea 100644 --- a/client/src/App.vue +++ b/client/src/App.vue @@ -1,42 +1,132 @@