feat: add transitions and micro-interactions across all views
- Page transitions with slide-up/fade on route changes (App.vue) - NavRail sliding active indicator with spring-like easing - List enter/leave/move animations on Entries, Projects, Clients, Timer - Modal enter/leave transitions with scale+fade on all dialogs - Dropdown transitions with overshoot on all select/picker components - Button feedback (scale on hover/active), card hover lift effects - Timer pulse on start, glow on stop, floating empty state icons - Content fade-in on Dashboard, Reports, Calendar, Timesheet - Tag chip enter/leave animations in AppTagInput - Progress bar smooth width transitions - Implementation plan document
This commit is contained in:
@@ -109,7 +109,7 @@ onBeforeUnmount(() => {
|
||||
<template>
|
||||
<div ref="triggerRef" class="relative">
|
||||
<!-- Selected tags + add button -->
|
||||
<div class="flex flex-wrap items-center gap-1.5">
|
||||
<TransitionGroup tag="div" name="chip" class="flex flex-wrap items-center gap-1.5">
|
||||
<span
|
||||
v-for="tag in selectedTags"
|
||||
:key="tag.id"
|
||||
@@ -123,6 +123,7 @@ onBeforeUnmount(() => {
|
||||
</button>
|
||||
</span>
|
||||
<button
|
||||
key="__add_btn__"
|
||||
type="button"
|
||||
@click="isOpen ? close() : open()"
|
||||
class="inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-[0.6875rem] text-text-tertiary border border-border-subtle hover:text-text-secondary hover:border-border-visible transition-colors"
|
||||
@@ -130,15 +131,16 @@ onBeforeUnmount(() => {
|
||||
<Plus class="w-3 h-3" />
|
||||
Tag
|
||||
</button>
|
||||
</div>
|
||||
</TransitionGroup>
|
||||
|
||||
<!-- Dropdown -->
|
||||
<Teleport to="body">
|
||||
<Transition name="dropdown">
|
||||
<div
|
||||
v-if="isOpen"
|
||||
ref="panelRef"
|
||||
:style="panelStyle"
|
||||
class="bg-bg-surface border border-border-visible rounded-xl shadow-[0_4px_24px_rgba(0,0,0,0.4)] overflow-hidden animate-dropdown-enter"
|
||||
class="bg-bg-surface border border-border-visible rounded-xl shadow-[0_4px_24px_rgba(0,0,0,0.4)] overflow-hidden"
|
||||
>
|
||||
<div class="px-2 pt-2 pb-1">
|
||||
<input
|
||||
@@ -172,6 +174,7 @@ onBeforeUnmount(() => {
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</Transition>
|
||||
</Teleport>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
Reference in New Issue
Block a user