From 129692812bae04eb0e2332dac5d867a2d3a1444d Mon Sep 17 00:00:00 2001 From: Till-JS <101404291+Till-JS@users.noreply.github.com> Date: Sat, 29 Nov 2025 08:55:56 +0100 Subject: [PATCH] feat(shared-auth-ui): redesign login page with animations and theme support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Migrate icons from custom implementation to @manacore/shared-icons (phosphor-svelte) - Add CSS media queries for dark/light mode (no more flash on reload) - Add subtle entrance animations (logo fadeInScale, form fadeInUp, slider fadeIn) - Redesign custom checkbox with CSS-only styling - Remove isDark prop dependency, use prefers-color-scheme instead - Update auth layout to allow full-page rendering Also updates AppSlider component: - Add staggered entrance animations for app cards - Redesign modal with glassmorphism style - Add theme-aware styling via CSS media queries - Improve status badge design in modal - Add close button in top-right corner 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .../apps/web/src/routes/(auth)/+layout.svelte | 6 +- packages/shared-auth-ui/package.json | 3 +- .../shared-auth-ui/src/components/Icon.svelte | 30 - .../shared-auth-ui/src/icons/iconPaths.ts | 54 -- packages/shared-auth-ui/src/index.ts | 6 +- .../src/pages/ForgotPasswordPage.svelte | 14 +- .../shared-auth-ui/src/pages/LoginPage.svelte | 901 ++++++++++++------ .../src/pages/RegisterPage.svelte | 120 +-- packages/shared-auth-ui/src/types.ts | 17 - .../shared-ui/src/organisms/AppSlider.svelte | 535 ++++++++--- 10 files changed, 1083 insertions(+), 603 deletions(-) delete mode 100644 packages/shared-auth-ui/src/components/Icon.svelte delete mode 100644 packages/shared-auth-ui/src/icons/iconPaths.ts diff --git a/apps/chat/apps/web/src/routes/(auth)/+layout.svelte b/apps/chat/apps/web/src/routes/(auth)/+layout.svelte index 138139a34..a54cfdcb7 100644 --- a/apps/chat/apps/web/src/routes/(auth)/+layout.svelte +++ b/apps/chat/apps/web/src/routes/(auth)/+layout.svelte @@ -2,8 +2,4 @@ let { children } = $props(); -
-
- {@render children()} -
-
+{@render children()} diff --git a/packages/shared-auth-ui/package.json b/packages/shared-auth-ui/package.json index e3f369adb..388a75490 100644 --- a/packages/shared-auth-ui/package.json +++ b/packages/shared-auth-ui/package.json @@ -18,7 +18,8 @@ ], "peerDependencies": { "svelte": "^5.0.0", - "@manacore/shared-auth": "workspace:*" + "@manacore/shared-auth": "workspace:*", + "@manacore/shared-icons": "workspace:*" }, "devDependencies": { "svelte": "^5.16.0", diff --git a/packages/shared-auth-ui/src/components/Icon.svelte b/packages/shared-auth-ui/src/components/Icon.svelte deleted file mode 100644 index 808ea0a04..000000000 --- a/packages/shared-auth-ui/src/components/Icon.svelte +++ /dev/null @@ -1,30 +0,0 @@ - - -{#if path} - -{:else} - âš  -{/if} diff --git a/packages/shared-auth-ui/src/icons/iconPaths.ts b/packages/shared-auth-ui/src/icons/iconPaths.ts deleted file mode 100644 index 1e3dd0764..000000000 --- a/packages/shared-auth-ui/src/icons/iconPaths.ts +++ /dev/null @@ -1,54 +0,0 @@ -/** - * Phosphor Icons (Bold weight) SVG paths - * Only includes icons used in auth UI - */ -export const iconPaths = { - 'user-plus': - '', - - 'sign-in': - '', - - eye: '', - - 'eye-off': - '', - - key: '', - - 'arrow-left': - '', - - info: '', - - 'mail-open': - '', - - lock: '', - - 'shield-check': - '', - - 'arrows-left-right': - '', - - envelope: - '', - - folder: - '', - - music: - '', - - refresh: - '', - - check: - '', - - warning: - '', -} as const; - -export type IconName = keyof typeof iconPaths; diff --git a/packages/shared-auth-ui/src/index.ts b/packages/shared-auth-ui/src/index.ts index 06508260b..f90f2aa60 100644 --- a/packages/shared-auth-ui/src/index.ts +++ b/packages/shared-auth-ui/src/index.ts @@ -4,7 +4,6 @@ export { default as RegisterPage } from './pages/RegisterPage.svelte'; export { default as ForgotPasswordPage } from './pages/ForgotPasswordPage.svelte'; // Components -export { default as Icon } from './components/Icon.svelte'; export { default as GoogleSignInButton } from './components/GoogleSignInButton.svelte'; export { default as AppleSignInButton } from './components/AppleSignInButton.svelte'; @@ -30,12 +29,9 @@ export { } from './utils/appleAuth'; // Types -export type { AuthUIConfig, AuthServiceInterface, AuthResult, IconName } from './types'; +export type { AuthUIConfig, AuthServiceInterface, AuthResult } from './types'; // Page Translation Types export type { LoginTranslations } from './pages/LoginPage.svelte'; export type { RegisterTranslations } from './pages/RegisterPage.svelte'; export type { ForgotPasswordTranslations } from './pages/ForgotPasswordPage.svelte'; - -// Icon paths -export { iconPaths } from './icons/iconPaths'; diff --git a/packages/shared-auth-ui/src/pages/ForgotPasswordPage.svelte b/packages/shared-auth-ui/src/pages/ForgotPasswordPage.svelte index 4b5ec20b7..30c293430 100644 --- a/packages/shared-auth-ui/src/pages/ForgotPasswordPage.svelte +++ b/packages/shared-auth-ui/src/pages/ForgotPasswordPage.svelte @@ -1,7 +1,7 @@ -
-

- {title} -

+
+

{title}

-
-
+
+
{#each apps as app, index} {/each}
@@ -159,8 +135,7 @@ {#if selectedApp !== null}
e.key === 'Escape' && closeModal()} role="dialog" @@ -169,37 +144,24 @@ >
-
+