diff --git a/apps/mana/apps/web/src/routes/(app)/+layout.svelte b/apps/mana/apps/web/src/routes/(app)/+layout.svelte
index 935eb968e..e8fe6b9a0 100644
--- a/apps/mana/apps/web/src/routes/(app)/+layout.svelte
+++ b/apps/mana/apps/web/src/routes/(app)/+layout.svelte
@@ -432,6 +432,13 @@
+
+ {#if guestMode && guestMode.notifications.length > 0}
+
+
+
+ {/if}
+
(showShortcuts = false)} />
-
-
- {#if guestMode && guestMode.notifications.length > 0}
-
-
-
- {/if}
@@ -618,12 +618,9 @@
transform: rotate(180deg);
}
- .notification-float {
- position: fixed;
- bottom: 10rem;
- left: 50%;
- transform: translateX(-50%);
- z-index: 100;
- pointer-events: auto;
+ .bottom-stack-notification {
+ display: flex;
+ justify-content: center;
+ padding: 0 1rem 0.5rem;
}
diff --git a/packages/shared-ui/src/bottom-stack/NotificationBar.svelte b/packages/shared-ui/src/bottom-stack/NotificationBar.svelte
index 3c9cd55f8..5d950d40f 100644
--- a/packages/shared-ui/src/bottom-stack/NotificationBar.svelte
+++ b/packages/shared-ui/src/bottom-stack/NotificationBar.svelte
@@ -52,19 +52,24 @@
.notification-bar {
display: flex;
align-items: center;
- gap: 0.625rem;
- padding: 0.5rem 0.625rem 0.5rem 0.875rem;
- background: var(--color-surface-elevated, rgba(255, 255, 255, 0.95));
- border: 1px solid var(--color-border, rgba(0, 0, 0, 0.1));
- border-radius: 0.625rem;
- box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
- backdrop-filter: blur(12px);
+ gap: 0.75rem;
+ padding: 0.625rem 0.625rem 0.625rem 1rem;
+ background: hsl(var(--color-surface-elevated));
+ border: 1px solid hsl(var(--color-border-strong, var(--color-border)));
+ border-radius: 0.875rem;
+ box-shadow:
+ 0 8px 24px rgba(0, 0, 0, 0.12),
+ 0 2px 6px rgba(0, 0, 0, 0.06);
+ backdrop-filter: blur(16px);
+ -webkit-backdrop-filter: blur(16px);
max-width: 480px;
width: max-content;
animation: slideUp 250ms ease-out;
}
:global(.dark) .notification-bar {
- box-shadow: 0 2px 12px rgba(0, 0, 0, 0.3);
+ box-shadow:
+ 0 12px 32px rgba(0, 0, 0, 0.45),
+ 0 2px 8px rgba(0, 0, 0, 0.25);
}
.notification-bar.warning {
@@ -90,7 +95,7 @@
margin: 0;
font-size: 0.8125rem;
line-height: 1.4;
- color: var(--color-muted-foreground, rgba(0, 0, 0, 0.65));
+ color: hsl(var(--color-foreground) / 0.85);
}
.notification-actions {
@@ -103,21 +108,34 @@
.notification-action {
display: inline-flex;
align-items: center;
- gap: 0.3rem;
- padding: 0.375rem 0.75rem;
+ gap: 0.4rem;
+ padding: 0.5rem 0.95rem;
font-size: 0.8125rem;
font-weight: 600;
color: white;
background: var(--color-primary, #7c3aed);
- border: none;
- border-radius: 0.5rem;
+ border: 1px solid rgba(255, 255, 255, 0.18);
+ border-radius: 0.625rem;
cursor: pointer;
- transition: background 150ms ease;
+ transition:
+ background 150ms ease,
+ transform 150ms ease,
+ box-shadow 150ms ease;
white-space: nowrap;
font-family: inherit;
+ box-shadow:
+ 0 4px 12px rgba(124, 58, 237, 0.35),
+ 0 1px 2px rgba(0, 0, 0, 0.1);
}
.notification-action:hover {
- filter: brightness(0.9);
+ filter: brightness(1.08);
+ transform: translateY(-1px);
+ box-shadow:
+ 0 6px 16px rgba(124, 58, 237, 0.45),
+ 0 2px 4px rgba(0, 0, 0, 0.12);
+ }
+ .notification-action:active {
+ transform: translateY(0);
}
.notification-dismiss {
@@ -127,7 +145,7 @@
width: 24px;
height: 24px;
padding: 0;
- color: var(--color-muted-foreground, rgba(0, 0, 0, 0.35));
+ color: hsl(var(--color-foreground) / 0.45);
background: transparent;
border: none;
border-radius: 0.25rem;
@@ -135,11 +153,8 @@
transition: all 150ms ease;
}
.notification-dismiss:hover {
- background: rgba(0, 0, 0, 0.06);
- color: var(--color-foreground, rgba(0, 0, 0, 0.7));
- }
- :global(.dark) .notification-dismiss:hover {
- background: rgba(255, 255, 255, 0.1);
+ background: hsl(var(--color-foreground) / 0.08);
+ color: hsl(var(--color-foreground) / 0.85);
}
@media (max-width: 480px) {