From 0ca29952ba7ff970d6e9a9c669c72fe6c0f26fff Mon Sep 17 00:00:00 2001 From: Dennis Landmann Date: Sun, 19 Apr 2026 23:04:03 +0200 Subject: [PATCH] feat: profile avatar upload + share_conv_keys rpc + favicon + smtp tweaks --- apps/desktop/index.html | 3 +- apps/desktop/public/favicon.svg | 14 + apps/desktop/src-tauri/tauri.conf.json | 2 +- apps/desktop/src/lib/avatarUpload.ts | 77 +++ apps/desktop/src/lib/conversationKeySync.ts | 9 +- apps/desktop/src/pages/SettingsPage.tsx | 124 +++- design_handoff_chatapp/ChatApp Redesign.html | 150 +++++ design_handoff_chatapp/README.md | 314 +++++++++++ design_handoff_chatapp/components/app.jsx | 439 +++++++++++++++ design_handoff_chatapp/components/call.jsx | 194 +++++++ design_handoff_chatapp/components/data.jsx | 28 + design_handoff_chatapp/components/icons.jsx | 87 +++ .../screenshots/01-chat-light.png | Bin 0 -> 31484 bytes .../screenshots/02-chat-light-alt.png | Bin 0 -> 31484 bytes .../screenshots/03-chat-dark.png | Bin 0 -> 30999 bytes .../screenshots/04-incoming-dark.png | Bin 0 -> 55305 bytes .../screenshots/05-incall-grid-dark.png | Bin 0 -> 34304 bytes .../screenshots/06-incall-focus-dark.png | Bin 0 -> 33276 bytes .../screenshots/07-incall-fullscreen-dark.png | Bin 0 -> 18753 bytes .../screenshots/08-incall-grid-back-dark.png | Bin 0 -> 34304 bytes .../screenshots/09-pip-dark.png | Bin 0 -> 30792 bytes .../screenshots/10-chat-light-back.png | Bin 0 -> 31484 bytes .../screenshots/11-incall-light.png | Bin 0 -> 34677 bytes design_handoff_chatapp/styles/base.css | 459 +++++++++++++++ design_handoff_chatapp/styles/call.css | 529 ++++++++++++++++++ design_handoff_chatapp/styles/rail.css | 53 ++ design_handoff_chatapp/styles/variants.css | 461 +++++++++++++++ packages/shared/src/chat/convKeys.ts | 66 +-- .../20260419000002_share_conv_key_rpc.sql | 109 ++++ .../20260419000003_profile_avatars.sql | 54 ++ 30 files changed, 3135 insertions(+), 37 deletions(-) create mode 100644 apps/desktop/public/favicon.svg create mode 100644 apps/desktop/src/lib/avatarUpload.ts create mode 100644 design_handoff_chatapp/ChatApp Redesign.html create mode 100644 design_handoff_chatapp/README.md create mode 100644 design_handoff_chatapp/components/app.jsx create mode 100644 design_handoff_chatapp/components/call.jsx create mode 100644 design_handoff_chatapp/components/data.jsx create mode 100644 design_handoff_chatapp/components/icons.jsx create mode 100644 design_handoff_chatapp/screenshots/01-chat-light.png create mode 100644 design_handoff_chatapp/screenshots/02-chat-light-alt.png create mode 100644 design_handoff_chatapp/screenshots/03-chat-dark.png create mode 100644 design_handoff_chatapp/screenshots/04-incoming-dark.png create mode 100644 design_handoff_chatapp/screenshots/05-incall-grid-dark.png create mode 100644 design_handoff_chatapp/screenshots/06-incall-focus-dark.png create mode 100644 design_handoff_chatapp/screenshots/07-incall-fullscreen-dark.png create mode 100644 design_handoff_chatapp/screenshots/08-incall-grid-back-dark.png create mode 100644 design_handoff_chatapp/screenshots/09-pip-dark.png create mode 100644 design_handoff_chatapp/screenshots/10-chat-light-back.png create mode 100644 design_handoff_chatapp/screenshots/11-incall-light.png create mode 100644 design_handoff_chatapp/styles/base.css create mode 100644 design_handoff_chatapp/styles/call.css create mode 100644 design_handoff_chatapp/styles/rail.css create mode 100644 design_handoff_chatapp/styles/variants.css create mode 100644 supabase/migrations/20260419000002_share_conv_key_rpc.sql create mode 100644 supabase/migrations/20260419000003_profile_avatars.sql diff --git a/apps/desktop/index.html b/apps/desktop/index.html index 25a0ca7..0270fe3 100644 --- a/apps/desktop/index.html +++ b/apps/desktop/index.html @@ -4,7 +4,8 @@ - ChatApp + + Netralax
diff --git a/apps/desktop/public/favicon.svg b/apps/desktop/public/favicon.svg new file mode 100644 index 0000000..3906605 --- /dev/null +++ b/apps/desktop/public/favicon.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/apps/desktop/src-tauri/tauri.conf.json b/apps/desktop/src-tauri/tauri.conf.json index 3a495be..869de65 100644 --- a/apps/desktop/src-tauri/tauri.conf.json +++ b/apps/desktop/src-tauri/tauri.conf.json @@ -1,7 +1,7 @@ { "$schema": "https://schema.tauri.app/config/2", "productName": "ChatApp", - "version": "0.4.4", + "version": "0.5.0", "identifier": "com.meinname.chatapp", "build": { "beforeDevCommand": "pnpm vite:dev", diff --git a/apps/desktop/src/lib/avatarUpload.ts b/apps/desktop/src/lib/avatarUpload.ts new file mode 100644 index 0000000..eaf340c --- /dev/null +++ b/apps/desktop/src/lib/avatarUpload.ts @@ -0,0 +1,77 @@ +import { supabase } from './supabase'; + +const BUCKET = 'profile-avatars'; +const MAX_DIM = 512; +const QUALITY = 0.85; + +// Resizes the source image to a centred-cropped square ≤ MAX_DIM and +// re-encodes as WebP. Falls back to JPEG if WebP isn't supported (rare). +async function resizeToSquare(file: File): Promise { + const url = URL.createObjectURL(file); + try { + const img = await new Promise((resolve, reject) => { + const i = new Image(); + i.onload = () => resolve(i); + i.onerror = () => reject(new Error('image load failed')); + i.src = url; + }); + + const minSide = Math.min(img.naturalWidth, img.naturalHeight); + const sx = (img.naturalWidth - minSide) / 2; + const sy = (img.naturalHeight - minSide) / 2; + const target = Math.min(MAX_DIM, minSide); + + const canvas = document.createElement('canvas'); + canvas.width = target; + canvas.height = target; + const ctx = canvas.getContext('2d'); + if (!ctx) throw new Error('canvas context unavailable'); + ctx.drawImage(img, sx, sy, minSide, minSide, 0, 0, target, target); + + const blob = await new Promise((resolve) => + canvas.toBlob(resolve, 'image/webp', QUALITY), + ); + if (blob) return blob; + + const jpeg = await new Promise((resolve) => + canvas.toBlob(resolve, 'image/jpeg', QUALITY), + ); + if (!jpeg) throw new Error('canvas toBlob returned null'); + return jpeg; + } finally { + URL.revokeObjectURL(url); + } +} + +export async function uploadAvatar(userId: string, file: File): Promise { + if (!file.type.startsWith('image/')) { + throw new Error('only image files are accepted'); + } + const blob = await resizeToSquare(file); + const ext = blob.type === 'image/webp' ? 'webp' : 'jpg'; + // Random filename so old uploads don't get overwritten before we update + // the profile row — Supabase Storage CDN caches by URL, so a fresh path + // also forces clients to fetch the new image. + const name = + userId + '/' + Date.now().toString(36) + '-' + Math.random().toString(36).slice(2, 8) + '.' + ext; + const { error: upErr } = await supabase.storage.from(BUCKET).upload(name, blob, { + contentType: blob.type, + cacheControl: '604800', + upsert: false, + }); + if (upErr) throw upErr; + const { data: pub } = supabase.storage.from(BUCKET).getPublicUrl(name); + return pub.publicUrl; +} + +export async function deleteAvatarObject(publicUrl: string): Promise { + // Public URLs look like + // https:///storage/v1/object/public/profile-avatars/ + // Extract and remove. + const marker = '/object/public/' + BUCKET + '/'; + const idx = publicUrl.indexOf(marker); + if (idx === -1) return; + const path = publicUrl.slice(idx + marker.length); + const { error } = await supabase.storage.from(BUCKET).remove([path]); + if (error) throw error; +} diff --git a/apps/desktop/src/lib/conversationKeySync.ts b/apps/desktop/src/lib/conversationKeySync.ts index 4abd69b..a285117 100644 --- a/apps/desktop/src/lib/conversationKeySync.ts +++ b/apps/desktop/src/lib/conversationKeySync.ts @@ -24,19 +24,24 @@ function rawFrom(table: string) { return (supabase as unknown as { from: (t: string) => any }).from(table); } +// Module-level flag — gap-fill runs once per (user, device) combo per +// process lifetime. Page reloads / route changes don't re-trigger it. +const backfilledKey = new Set(); + export function startConversationKeySync( ownUserId: string, ownDeviceId: string, ): () => void { let cancelled = false; let priv: Uint8Array | null = null; + const dedupeKey = ownUserId + ':' + ownDeviceId; void loadDevicePrivateKey(devLocalSecretStore, ownUserId, ownDeviceId).then(async (pk) => { if (cancelled) return; priv = pk; if (!priv) return; - // Run a full backfill once we have the private key — covers devices that - // registered while we were offline. + if (backfilledKey.has(dedupeKey)) return; + backfilledKey.add(dedupeKey); await syncAllExistingGaps({ myUserId: ownUserId, myDeviceId: ownDeviceId, priv }); }); diff --git a/apps/desktop/src/pages/SettingsPage.tsx b/apps/desktop/src/pages/SettingsPage.tsx index a7755b8..8020d4c 100644 --- a/apps/desktop/src/pages/SettingsPage.tsx +++ b/apps/desktop/src/pages/SettingsPage.tsx @@ -4,12 +4,13 @@ import { SUPPORTED_LOCALES, type SupportedLocale, } from '@chat-app/shared/i18n'; -import { useEffect, useState } from 'react'; +import { useEffect, useRef, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { LockIcon } from '../components/icons'; import { useAuth } from '../context/AuthContext'; import { loadDevicePrivateKey, saveDevicePrivateKey } from '@chat-app/shared/auth'; +import { deleteAvatarObject, uploadAvatar } from '../lib/avatarUpload'; import { exportDeviceKey, importDeviceKey } from '../lib/deviceBackup'; import { devLocalSecretStore } from '../lib/secretStore'; import { @@ -83,6 +84,10 @@ export function SettingsPage() { {/* Account */}
+ @@ -327,6 +332,123 @@ function AudioQualityControls() { ); } +interface AvatarControlsProps { + patchProfile: (patch: Parameters[1]) => Promise; + busy: boolean; +} + +function AvatarControls({ patchProfile, busy }: AvatarControlsProps) { + const { t } = useTranslation(['app']); + const { profile } = useAuth(); + const inputRef = useRef(null); + const [uploading, setUploading] = useState(false); + const [error, setError] = useState(null); + + const userId = profile?.userId; + const url = profile?.avatarUrl ?? null; + const letter = (profile?.displayName ?? profile?.username ?? '?') + .trim() + .charAt(0) + .toUpperCase() || '?'; + + async function handleFile(file: File) { + if (!userId) return; + setError(null); + setUploading(true); + try { + const newUrl = await uploadAvatar(userId, file); + const oldUrl = url; + await patchProfile({ avatarUrl: newUrl }); + if (oldUrl) { + // Best-effort cleanup of the previous file (don't block on it). + void deleteAvatarObject(oldUrl).catch(() => { + /* ignore */ + }); + } + } catch (err: unknown) { + setError(err instanceof Error ? err.message : 'upload failed'); + } finally { + setUploading(false); + if (inputRef.current) inputRef.current.value = ''; + } + } + + async function handleRemove() { + if (!userId || !url) return; + setError(null); + setUploading(true); + try { + await patchProfile({ avatarUrl: null }); + void deleteAvatarObject(url).catch(() => undefined); + } catch (err: unknown) { + setError(err instanceof Error ? err.message : 'remove failed'); + } finally { + setUploading(false); + } + } + + return ( +
+
+ {url ? ( + + ) : ( +
+ {letter} +
+ )} +
+ +
+
+ {t('app:settings.avatar', { defaultValue: 'Avatar' })} +
+
+ {t('app:settings.avatar_hint', { + defaultValue: 'Quadratisch, max 512×512, WebP. Sichtbar für deine Freunde.', + })} +
+ {error && ( +
{error}
+ )} +
+ + { + const f = e.target.files?.[0]; + if (f) void handleFile(f); + }} + /> + + {url && ( + + )} +
+ ); +} + function DeviceKeyBackupControls() { const { t } = useTranslation(['app']); const { profile, device } = useAuth(); diff --git a/design_handoff_chatapp/ChatApp Redesign.html b/design_handoff_chatapp/ChatApp Redesign.html new file mode 100644 index 0000000..229028b --- /dev/null +++ b/design_handoff_chatapp/ChatApp Redesign.html @@ -0,0 +1,150 @@ + + + + +ChatApp Redesign — 6 Varianten + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+

Tweaks

+
+ + +
+
+ + +
+
+ Tipp: Klicke oben auf die Varianten um zu wechseln. +
+
+ + + + + + + + + + diff --git a/design_handoff_chatapp/README.md b/design_handoff_chatapp/README.md new file mode 100644 index 0000000..1274a9a --- /dev/null +++ b/design_handoff_chatapp/README.md @@ -0,0 +1,314 @@ +# Handoff: ChatApp — Clean Rail Redesign + Discord-Style Call UI + +## Overview + +This package contains the full design spec for redesigning the existing ChatApp (Netralax) interface around a **Clean Rail** layout aesthetic, plus a complete **Discord-style call system** (incoming call, in-call dock, picture-in-picture, fullscreen cinema mode). + +The redesign covers: +1. The main chat interface (icon-rail sidebar + chat list + conversation area) in both **light** and **dark** mode. +2. The call UX: incoming call overlay → active call docked above the chat (so users can keep typing while on a call) → fullscreen cinema mode → minimizable PiP bubble. + +## About the Design Files + +The files in this bundle are **design references created in HTML/React/CSS** — prototypes showing the intended look, layout, and behavior. They are **not production code** to copy verbatim. + +Your task is to **recreate these designs inside the existing ChatApp codebase**, using its established patterns (existing React components, styling conventions, state management, icon library, etc.). If some tokens or helper components don't exist yet in the codebase, add them but keep them aligned with what's already there. + +The design files are organized as: +- `ChatApp Redesign.html` — entry HTML that boots the prototype +- `components/app.jsx` — main layout (rail + chat list + chat area, plus call state machine) +- `components/call.jsx` — all call UI components (IncomingCallScreen, ActiveCallScreen, ParticipantTile, CallControls, PipCall) +- `components/icons.jsx` — SVG icon set used +- `components/data.jsx` — dummy chat/message data +- `styles/base.css` — shared base tokens + layout primitives +- `styles/variants.css` — `variant-clean` light + dark token definitions (this is the look you're targeting) +- `styles/rail.css` — rail-layout specifics +- `styles/call.css` — **all call UI styles** (the most important file for the call feature) +- `screenshots/` — reference images of each state + +## Fidelity + +**High-fidelity.** Exact colors, radii, spacing, typography and motion are specified. Recreate pixel-perfectly using the codebase's existing component library — but prefer the codebase's primitives over duplicating the prototype's raw CSS where equivalents exist. + +--- + +## Design Tokens (Clean Rail) + +### Colors — Light mode (`.variant-clean`) +``` +--bg: #fafaf9 (app background) +--bg-2: #f4f4f2 (secondary surfaces, hover, search input) +--bg-3: #ffffff (elevated surfaces — chat list, chat area, cards) +--fg: #0a0a0f (primary text) +--fg-muted: #737380 (secondary text, icons) +--line: rgba(10,10,15,0.08) (dividers, borders) +--accent: #4F46E5 (indigo — primary actions, active states, my-bubble) +--accent-fg: #ffffff +``` + +### Colors — Dark mode (`.variant-clean.dark`) +``` +--bg: #050507 +--bg-2: #111118 +--bg-3: #0A0A0F +--fg: #f4f4f5 +--fg-muted: #8a8a99 +--line: rgba(255,255,255,0.07) +--accent: #6D73FF (slightly lighter indigo for contrast) +--accent-fg: #ffffff +``` + +### Status / Semantic Colors (both modes) +``` +Speaking/Online/Success: #16a34a light · #22c55e / #4ade80 dark +Danger/Decline/Hangup: #dc2626 (hover #b91c1c) · #fb7185 dark accent +Warning/Idle: #f59e0b +Live/Recording: #ef4444 +E2EE indicator (light): #16a34a (dark: #4ade80) +``` + +### Avatar color swatches (assigned per chat) +``` +violet: bg #ddd6fe / fg #5b21b6 (dark: #312E81 / #C4B5FD) +amber: bg #fde68a / fg #78350f +rose: bg #fecdd3 / fg #881337 +teal: bg #99f6e4 / fg #134e4a (dark: #134e4a / #99f6e4) +``` + +### Typography +- Family: `'Inter', system-ui, sans-serif` — Inter is the base. Display/headline use `'Outfit'` (participant name in IncomingCall). +- Scale: + - Chat title / participant name large: 24px / 700 + - Primary labels, chat name: 14–15px / 600 + - Body (bubbles, messages): 14px / 400–500 + - Meta, timestamps, presence: 11–12px / 400–500 + - Rail tooltips, badges: 10–11px / 500–600 + - Uppercase eyebrow (e.g. "EINGEHENDER ANRUF"): 12px / 600 / letter-spacing 0.12em + +### Spacing +- Container padding: 16px (call-stage), 14–20px (topbars, composer) +- Tile gap in grid: 8–10px +- Control-button row gap: 8–10px +- Border radius scale: 4 (small), 8 (tiles/badges), 10 (buttons), 14 (cards, large buttons), 18 (bubbles, bottom-fs controls), 24 (modal/card) + +### Shadows +- Elevated card light: `0 20px 60px rgba(0,0,0,0.1)` +- Elevated card dark: `0 20px 60px rgba(0,0,0,0.5)` +- Accent button: `0 4px 14px rgba(22,163,74,0.3)` (green accept) / same pattern for accent +- PiP glow: `0 12px 40px rgba(0,0,0,0.2), 0 0 0 3px rgba(79,70,229,0.15)` + +### Motion +- Standard UI transition: `all 0.15s` +- Pulse ring (incoming call): `2s ease-out infinite`, scale 0.85→1.25, opacity 0.6→0 +- Audio pulse (speaking ring): `1.3s ease-out infinite`, scale 1→1.3 +- Live dot: `1.5s ease-in-out infinite`, opacity 1↔0.4 +- PiP entrance: `slideInCall 0.4s cubic-bezier(0.22,1,0.36,1)` +- Fullscreen hint fade: 3.5s total (0–15% fade in, 75–100% fade out) + +--- + +## Screens / Views + +### 1. Main Chat — Clean Rail Layout + +**Structure (left → right):** +- **Icon Rail** (72px wide): brand logo at top, tab buttons (Chats / Friends / Admin), spacer, Settings + theme-toggle at bottom. Active tab shows a vertical pill indicator on the left edge. +- **Chat List** (280px wide): header with title + "new chat" icon, search input, list of `ChatItem`s (avatar + name + time + preview, optional unread dot), `rail-user` footer showing own profile + quick mute/settings. +- **Chat Area** (flex, fills rest): chat header (counterpart avatar + name + presence/handle + search/voice/video buttons), messages scroll area, composer at bottom. + +**Chat header actions (right side):** search icon, phone icon, video icon. Phone triggers voice call (`callScreen → 'active'`, `callState.video = false`), Video triggers video call (`callState.video = true`). + +**Message bubbles:** +- Mine (outgoing): filled accent bg, white text, radius `18px 18px 4px 18px`. +- Theirs (incoming): transparent bg, 1px line border, fg text, radius `18px 18px 18px 4px`. +- Avatars appear only on the **last message of a run** from that sender. +- Reactions: pill row below bubble, `.mine` = filled accent. +- System events ("Kaiwandi hat einen Anruf gestartet — Anruf beitreten"): centered `event-pill`, muted bg, muted fg, 11px. + +**Composer:** plus button (attach), rounded input bar with inline emoji + mic icons, send button. + +--- + +### 2. Incoming Call Overlay + +Full-bleed overlay replacing the chat area (takes over `.chat-area` space), radial-gradient background tinted with accent. + +Centered card (420px wide): +- Eyebrow "EINGEHENDER ANRUF" (uppercase, 12px, tracked) +- Large avatar (96px) with **two pulsing rings** (staggered 1s) +- Caller name (24px / 700 / Outfit) +- Subtitle row: lock icon + "E2E verschlüsselt · Voice Call" +- Two side-by-side action buttons: + - **Ablehnen**: transparent, red border/text, hover = 8% red bg + - **Annehmen**: green #16a34a, white, shadow + +### 3. Active Call — Docked (Default) + +**CRITICAL layout decision:** The active call does NOT take over the chat area. Instead it renders as a **dock above the messages**, taking roughly 50% of the chat-area height (min 280px, max 420px). The chat header is **hidden** while the dock is active (redundant — call topbar shows the channel name). Messages + composer remain fully visible and usable below, so users can keep chatting during the call. This is the Discord desktop pattern. + +**Dock content:** +- **Call topbar**: left side shows group icon + "Die Squad" + duration (tabular-nums), with E2E verschlüsselt below in success-green. Right side has 3 mode toggles: Grid / Focus / Fullscreen. +- **Call stage**: fills the remaining space, renders either: + - **Grid**: CSS grid, 2×2 for 4 people, 3×2 for 5–6, 1fr 1fr for 2. + - **Focus**: main speaker tile takes most height, bottom strip with 110px-tall smaller tiles for others. + - **Fullscreen**: switches to `mode === 'fullscreen'` — see screen 4. +- **Call controls bar** at the bottom of the dock: Mic, Video, Screen-share, Participants, **Hangup** (wider, red). Compact 36px buttons when docked. + +### 4. Active Call — Fullscreen Cinema Mode + +When mode = `fullscreen`: +- Entire call-dock container becomes absolute-positioned and takes over everything below the window bar (chat list still visible on the left). +- The **call topbar is hidden** entirely. +- Main speaker fills the whole frame, no border/radius. +- Participants strip moves to a **floating column in the bottom-right** (`.fs-strip`): 180px wide, 100px tall tiles, glass-blurred bg. +- **Call controls bar floats** at bottom center — glass pill: `rgba(10,10,15,0.7)` + `backdrop-filter: blur(20px)` + subtle border + 18px radius. +- **"Esc zum Verlassen" hint** fades in top-center on entry and auto-fades out over 3.5s. Pressing Esc or clicking Grid/Focus buttons exits. +- **No visible X button** (intentional — keyboard-only exit, confirmed design decision). + +### 5. Participant Tile — Shared Component + +A participant is either in **audio-only**, **video**, or **sharing screen** mode. +- Tile border: 1px `var(--line)`, radius 14 (10 in dock). Hover → border becomes accent. `.speaking` → 2px green border + green glow shadow. `.focused` → accent border. +- **Audio-only**: centered avatar (72px large, 44px small). When `speaking`, a green ring pulses around the avatar (`::before` pseudo). +- **Video**: placeholder stub (gradient background + centered avatar, since real video not in scope here). +- **Screenshare**: renders a "fake window" — chrome row with 3 dots, content row with grey skeleton lines + one accent-tinted block. A glass badge top-left: monitor icon + "Max teilt Bildschirm" (badge hidden on small tiles). +- **Meta row** (absolute, bottom 8px, glass): left shows crown (if me) + name + lock (if E2EE), right shows muted mic icon (red chip) and/or sharing icon (green chip). + +### 6. Picture-in-Picture (PiP) + +A compact 260px pill docked bottom-right of the chat area: +- 44px preview square (avatar of speaker, or mini shared-window placeholder if someone's sharing) +- Title "Die Squad · {participantCount}" +- Subtitle row: red pulsing dot + "Live · tippe zum Öffnen" +- Circular red hangup button on the right +- Whole thing is clickable → expands back to active call +- Entrance animation: slide from bottom + fade in (`slideInCall`) +- Shadow: standard + 3px accent glow ring + +--- + +## Interactions & Behavior + +### Call State Machine (lives in `ChatApp`) + +```js +// Primary state +const [callScreen, setCallScreen] = useState('none'); // 'none' | 'incoming' | 'active' | 'pip' +const [callMode, setCallMode] = useState('grid'); // 'grid' | 'focus' | 'fullscreen' +const [focusedId, setFocusedId] = useState(firstSharingOrSpeakerId); +const [callState, setCallState] = useState({ muted: false, sharing: false, video: false, duration }); +``` + +### Triggers & Transitions +- Chat-header **phone icon** click → `setCallScreen('active')`, `callState.video = false` +- Chat-header **video icon** click → `setCallScreen('active')`, `callState.video = true` +- Grid tile click → `setFocusedId(id); setCallMode('focus')` +- Focus/Grid/Fullscreen buttons in call topbar → set mode directly +- Incoming "Annehmen" → `setCallScreen('active')` +- Incoming "Ablehnen" → `setCallScreen('none')` +- Hangup → `setCallScreen('none')` +- PiP clicked → `setCallScreen('active')` +- PiP hangup (circle red btn) → `stopPropagation()` + `setCallScreen('none')` +- **Esc key** (global listener while `callScreen === 'active' && callMode === 'fullscreen'`) → `setCallMode('grid')` + +### Chat Header Visibility Rule +``` +if (callScreen === 'active' && callMode !== 'fullscreen') → hide chat header +else → show chat header +``` + +### Keyboard +- `Esc` exits fullscreen (only). No other global keybindings. + +--- + +## State Management + +Data shapes to wire up (see `components/call.jsx`): + +```ts +type Participant = { + id: string; + name: string; + initial: string; + color: 'violet' | 'amber' | 'rose' | 'teal'; + speaking: boolean; + muted: boolean; + video: boolean; + sharing?: boolean; + me?: boolean; + e2ee: boolean; +}; + +type CallState = { + muted: boolean; + sharing: boolean; + video: boolean; + duration: string; // "HH:MM:SS" +}; +``` + +In production these all come from your real-time signaling layer (WebRTC, LiveKit, etc.). The prototype uses static data for layout purposes only — wire them to your call store. + +--- + +## Assets + +No custom imagery. Everything is SVG icons (inlined in `components/icons.jsx`) and CSS. Fonts from Google Fonts: `Inter`, `Outfit`. + +Icons used in this scope: Chat, Friends, Shield, Settings, Logo, AddUser, Search, Phone, Video, Plus, Smile, Mic, MicOff, Send, Sun, Moon, Monitor, Lock, Crown, Grid, Focus, Maximize, PhoneOff. + +Replace with your codebase's icon library if one exists (e.g. lucide-react, heroicons) — names match lucide conventions. + +--- + +## Implementation Checklist + +1. **Tokens**: add the Clean-variant light + dark CSS variables to your theme layer. If you already have a token system, map them to your existing names; otherwise create `--bg`, `--bg-2`, `--bg-3`, `--fg`, `--fg-muted`, `--line`, `--accent`, `--accent-fg`. +2. **Icon rail + chat list + chat area**: refactor the current top-nav layout into the 3-column rail layout. Use your existing `Avatar`, `ChatItem`, `Message` components — only restyle. +3. **Message bubbles**: outlined `them` / filled `me`, asymmetric radius, avatars only on last-of-run. +4. **Call state machine**: add the four `useState` hooks to whatever component owns the chat screen. Hook the Esc key effect. +5. **IncomingCallScreen**: new component, full-bleed overlay of `.chat-area`. +6. **Call dock**: new component, renders above `.messages`. Hide chat-header while docked. +7. **ParticipantTile**: audio / video / sharing modes, speaking ring, meta overlay. +8. **Fullscreen mode**: switch call container to position absolute, floating strip + floating controls + Esc hint. +9. **PiP**: minimizable widget bottom-right of chat area. +10. **Wire real data**: replace `CALL_PARTICIPANTS` dummy with your live call-session participants. + +--- + +## Files in This Handoff + +``` +design_handoff_chatapp/ +├── README.md (this file) +├── ChatApp Redesign.html (entry — open in browser to see the prototype) +├── components/ +│ ├── app.jsx (chat app + rail layout + call state machine) +│ ├── call.jsx (Incoming / Active / Pip / ParticipantTile / CallControls) +│ ├── icons.jsx (all SVG icons) +│ └── data.jsx (dummy chats, messages) +├── styles/ +│ ├── base.css +│ ├── variants.css (Clean light + dark tokens — this is your theme) +│ ├── rail.css (rail layout) +│ └── call.css (all call UI — highest priority file) +└── screenshots/ + ├── 01-chat-light.png + ├── 03-chat-dark.png + ├── 04-incoming-dark.png + ├── 05-incall-grid-dark.png + ├── 06-incall-focus-dark.png + ├── 07-incall-fullscreen-dark.png + ├── 09-pip-dark.png + └── 11-incall-light.png +``` + +--- + +## Notes for Claude Code + +- The Clean Rail variant is **Variante 2** in the prototype's variant switcher — ignore the other 5 aesthetic variants (Playful, Y2K, Cyberpunk, Warm, Brutal), they were design exploration and not the chosen direction. +- Prefer composition over copying raw CSS. If the codebase has a `Card`, `Button`, `Tooltip`, use them. +- Duration ("00:12:47") should tick live from the call start timestamp, not be static. +- For WebRTC/media handling: this package specifies **UI only**. The media/signaling layer is out of scope and already exists in the codebase (see `CallUI.tsx`, `InCallPanel.tsx`). diff --git a/design_handoff_chatapp/components/app.jsx b/design_handoff_chatapp/components/app.jsx new file mode 100644 index 0000000..ef8c1ef --- /dev/null +++ b/design_handoff_chatapp/components/app.jsx @@ -0,0 +1,439 @@ +// Main ChatApp component — layout shared across all variants + +const Avatar = ({ chat, size = '' }) => ( +
+ {chat.initial} + {chat.presence &&
} +
+); + +const ChatItem = ({ chat, onClick }) => ( +
+ +
+
+ {chat.name} + {chat.time} +
+
+ {chat.preview} + {chat.unread && } +
+
+
+); + +const Reactions = ({ reactions }) => ( +
+ {reactions.map((r, i) => ( +
+ {r.emoji} + {r.count} +
+ ))} +
+); + +const Bubble = ({ msg }) => ( +
+ {msg.text} + {msg.time}{msg.read && msg.from === 'me' ? ' · Gelesen' : ''} +
+); + +const MediaBubble = ({ msg }) => ( +
+
+
{msg.label}
+
+ {msg.filename} + {msg.size} +
+
+ {msg.time} +
+); + +const EventPill = ({ evt }) => { + const IconComp = evt.icon === 'phone' ? Icon.Phone : Icon.PhoneOff; + return ( +
+
+ + {evt.text} + {evt.duration && · {evt.duration}} + · {evt.time} +
+
+ ); +}; + +const TypingIndicator = () => ( +
+
+
+); + +const MessageItem = ({ msg, showAvatar, chat, myChat }) => { + if (msg.type === 'event') return ; + + const wrapWithAvatar = (inner) => ( +
+ {msg.from === 'them' && ( +
+ {showAvatar && } +
+ )} +
+ {inner} +
+ {msg.from === 'me' && ( +
+ {showAvatar && } +
+ )} +
+ ); + + if (msg.type === 'typing') { + return wrapWithAvatar(); + } + if (msg.type === 'media') { + return wrapWithAvatar(); + } + return wrapWithAvatar( + <> + + {msg.reactions && } + + ); +}; + +const ProfileCard = ({ chat, position }) => ( +
+
+
+
+ {chat.initial} +
+
{chat.name}
+
{chat.handle}
+
+
🟢 Online · seit 2h
+
📍 Beigetreten am 14. Mär 2026
+
🎮 Zockt gerade: Valorant
+
+
+
+); + +const CallOverlay = ({ chat }) => ( +
+ +
+
Max ruft an…
+
Voice Call · klingelt
+
+
+ + +
+
+); + +const ChatApp = ({ variant, showCall, showProfile, isDark, onToggleDark }) => { + const [activeChat, setActiveChat] = React.useState(CHATS[0]); + const [activeTab, setActiveTab] = React.useState('chats'); + + // Call state: 'none' | 'incoming' | 'active' | 'pip' + const [callScreen, setCallScreen] = React.useState('none'); + const [callMode, setCallMode] = React.useState('grid'); // grid | focus | fullscreen + const [focusedId, setFocusedId] = React.useState('max'); + const [callState, setCallState] = React.useState({ + muted: false, sharing: false, video: false, duration: '00:12:47' + }); + + // Esc exits fullscreen + React.useEffect(() => { + const onKey = (e) => { + if (e.key === 'Escape' && callScreen === 'active' && callMode === 'fullscreen') { + setCallMode('grid'); + } + }; + window.addEventListener('keydown', onKey); + return () => window.removeEventListener('keydown', onKey); + }, [callScreen, callMode]); + + const chats = CHATS.map(c => ({...c, active: c.id === activeChat.id})); + const messagesEndRef = React.useRef(null); + + React.useEffect(() => { + if (messagesEndRef.current) { + messagesEndRef.current.parentElement.scrollTop = messagesEndRef.current.parentElement.scrollHeight; + } + }, []); + + return ( +
+
+
+
+
+
+
+
+
ChatApp — {variant.label}
+
+
+ +
+ {variant.layout === 'rail' ? ( +
+ {/* Icon rail left */} +
+
+
+ + + +
+ + +
+ {/* Chatlist + user profile at bottom */} +
+
+
Chats
+ +
+ +
+ {chats.map(c => ( + setActiveChat(c)} /> + ))} +
+
+ +
+
dennis
+
● Online
+
+ + +
+
+ {/* Chat area (unchanged below) */} +
+ {!(callScreen === 'active' && callMode !== 'fullscreen') && ( +
+ +
+
{activeChat.name}
+
+ {activeChat.presence === 'online' ? '● Online' : + activeChat.presence === 'idle' ? '● Abwesend' : + activeChat.presence === 'dnd' ? '● Nicht stören' : + '● Offline · zuletzt vor 2h'} + {' · '}{activeChat.handle} +
+
+
+ + + +
+
+ )} + {/* Call dock — rendered above messages, Discord-style */} + {callScreen === 'active' && callMode !== 'fullscreen' && ( +
+ setCallScreen('none')} + callState={callState} + setCallState={setCallState} + /> +
+ )} +
+ {MESSAGES.map((m, i) => { + const next = MESSAGES[i+1]; + const isLastOfRun = (m.from === 'them' || m.from === 'me') && (!next || next.from !== m.from || next.type === 'event'); + const myChat = { initial: 'D', color: 'teal' }; + return ; + })} +
+
+
+ +
+ + + +
+ +
+
+
+ ) : ( + <> +
+
+ + Netralax +
+
+ + + + +
+
+ +
+
dennis
+
@dennis
+
+ +
+ {variant.key === 'clean' && ( + + )} +
+ +
+
+
+
Chats
+ +
+ +
+ {chats.map(c => ( + setActiveChat(c)} /> + ))} +
+
+ +
+
+ +
+
{activeChat.name}
+
+ {activeChat.presence === 'online' ? '● Online' : + activeChat.presence === 'idle' ? '● Abwesend' : + activeChat.presence === 'dnd' ? '● Nicht stören' : + '● Offline · zuletzt vor 2h'} + {' · '}{activeChat.handle} +
+
+
+ + + +
+
+ +
+ {MESSAGES.map((m, i) => { + const next = MESSAGES[i+1]; + const isLastOfRun = (m.from === 'them' || m.from === 'me') && (!next || next.from !== m.from || next.type === 'event'); + const myChat = { initial: 'D', color: 'teal' }; + return ; + })} +
+
+ +
+ +
+ + + +
+ +
+
+
+ + )} +
+ + {/* Call screen switcher — only in Clean Rail */} + {variant.layout === 'rail' && ( +
+ + + + +
+ )} + + {/* Incoming call is a full overlay */} + {callScreen === 'incoming' && ( +
+ setCallScreen('active')} + onDecline={() => setCallScreen('none')} + /> +
+ )} + {/* Fullscreen call hides chat entirely */} + {callScreen === 'active' && callMode === 'fullscreen' && ( +
+ setCallScreen('none')} + callState={callState} + setCallState={setCallState} + /> +
+ )} + {callScreen === 'pip' && ( + setCallScreen('active')} + onHangup={() => setCallScreen('none')} + /> + )} + + {showCall && callScreen === 'none' && } +
+
+ ); +}; + +Object.assign(window, { ChatApp, Avatar, ChatItem, MessageItem, CallOverlay }); diff --git a/design_handoff_chatapp/components/call.jsx b/design_handoff_chatapp/components/call.jsx new file mode 100644 index 0000000..9f16e79 --- /dev/null +++ b/design_handoff_chatapp/components/call.jsx @@ -0,0 +1,194 @@ +// Call UI components — Discord-style, matched to Clean-Rail aesthetic + +const CALL_PARTICIPANTS = [ + { id: 'dennis', name: 'dennis', initial: 'D', color: 'teal', speaking: false, muted: false, video: false, me: true, e2ee: true }, + { id: 'max', name: 'Max', initial: 'M', color: 'teal', speaking: true, muted: false, video: true, sharing: true, e2ee: true }, + { id: 'lena', name: 'Lena', initial: 'L', color: 'amber', speaking: false, muted: true, video: false, e2ee: true }, + { id: 'tom', name: 'Tom', initial: 'T', color: 'violet', speaking: false, muted: false, video: false, e2ee: true }, + { id: 'nico', name: 'nico', initial: 'N', color: 'teal', speaking: true, muted: false, video: false, e2ee: true }, +]; + +const ParticipantTile = ({ p, focused, onClick, small }) => ( +
+ {p.video || p.sharing ? ( +
+ {p.sharing ? ( +
+
+
+
+
+
+
+
+
+
+
+
+ {p.name} teilt Bildschirm +
+
+ ) : ( +
+ +
+ )} +
+ ) : ( +
+
+ +
+
+ )} +
+
+ {p.me && } + {p.name}{p.me ? ' (du)' : ''} + {p.e2ee && } +
+
+ {p.muted && } + {p.sharing && } +
+
+
+); + +const CallControls = ({ muted, onToggleMute, sharing, onToggleShare, video, onToggleVideo, onHangup, compact }) => ( +
+ + + + + +
+); + +const IncomingCallScreen = ({ chat, onAccept, onDecline }) => ( +
+
+
Eingehender Anruf
+
+
+
+ +
+
{chat.name}
+
+ E2E verschlüsselt · Voice Call +
+
+ + +
+
+
+); + +const ActiveCallScreen = ({ participants, mode, setMode, focused, setFocused, onHangup, callState, setCallState }) => { + const speaker = participants.find(p => p.id === focused) || participants.find(p => p.sharing) || participants[0]; + const others = participants.filter(p => p.id !== speaker.id); + const sharingParticipant = participants.find(p => p.sharing); + + return ( +
+
+
+
+ + Die Squad + · + {callState.duration} +
+
E2E verschlüsselt
+
+
+ + + +
+
+ +
+ {mode === 'grid' && ( +
+ {participants.map(p => ( + { setFocused(p.id); setMode('focus'); }} /> + ))} +
+ )} + {mode === 'focus' && ( +
+
+ +
+
+ {others.map(p => ( + setFocused(p.id)} /> + ))} +
+
+ )} + {mode === 'fullscreen' && ( +
+ +
+ {others.slice(0,4).map(p => ( + setFocused(p.id)} /> + ))} +
+
Esc zum Verlassen
+
+ )} +
+ + setCallState(s => ({...s, muted: !s.muted}))} + sharing={callState.sharing} + onToggleShare={() => setCallState(s => ({...s, sharing: !s.sharing}))} + video={callState.video} + onToggleVideo={() => setCallState(s => ({...s, video: !s.video}))} + onHangup={onHangup} + /> +
+ ); +}; + +const PipCall = ({ onExpand, onHangup, participants }) => { + const speaker = participants.find(p => p.sharing) || participants.find(p => p.speaking) || participants[0]; + return ( +
+
+ {speaker.sharing ? ( +
+ ) : ( + + )} +
+
+
Die Squad · {participants.length}
+
+ + Live · tippe zum Öffnen +
+
+ +
+ ); +}; + +Object.assign(window, { CALL_PARTICIPANTS, ParticipantTile, CallControls, IncomingCallScreen, ActiveCallScreen, PipCall }); diff --git a/design_handoff_chatapp/components/data.jsx b/design_handoff_chatapp/components/data.jsx new file mode 100644 index 0000000..d3add03 --- /dev/null +++ b/design_handoff_chatapp/components/data.jsx @@ -0,0 +1,28 @@ +// Sample data + +const CHATS = [ + { id: 'test', name: 'test', handle: '@test', color: 'violet', initial: 'T', preview: 'Hallo 👋', time: '21:13', unread: false, presence: 'offline', active: true }, + { id: 'max', name: 'Max', handle: '@maxx', color: 'teal', initial: 'M', preview: 'bro du musst das sehen', time: '20:44', unread: true, presence: 'online' }, + { id: 'squad', name: 'Die Squad', handle: '5 Mitglieder', color: 'rose', initial: 'S', preview: 'leon: bin gleich da', time: '19:12', unread: true, presence: 'online', isGroup: true }, + { id: 'lena', name: 'Lena', handle: '@lenae', color: 'amber', initial: 'L', preview: 'Du: ok passt', time: 'Gestern', unread: false, presence: 'idle' }, + { id: 'tom', name: 'Tom', handle: '@tomg', color: 'violet', initial: 'T', preview: 'sent a photo', time: 'Gestern', unread: false, presence: 'dnd' }, + { id: 'nico', name: 'nico', handle: '@nicoo', color: 'teal', initial: 'N', preview: 'gg wp', time: 'Mo.', unread: false, presence: 'offline' }, +]; + +const MESSAGES = [ + { type: 'message', from: 'them', text: 'Hi', time: '20:12' }, + { type: 'message', from: 'them', text: 'Lol', time: '20:14' }, + { type: 'message', from: 'them', text: 'Wie gehts', time: '20:24' }, + { type: 'message', from: 'them', text: 'einer da?', time: '20:25' }, + { type: 'message', from: 'them', text: 'Hallo', time: '21:03', reactions: [{emoji: '👋', count: 1, mine: true}] }, + { type: 'event', kind: 'call', icon: 'phone', text: 'Eingehender Anruf', duration: '1:01', time: '21:06' }, + { type: 'event', kind: 'rejected', icon: 'phone-off', text: 'Anruf abgelehnt', time: '21:06' }, + { type: 'event', kind: 'rejected', icon: 'phone-off', text: 'Anruf abgelehnt', time: '21:06' }, + { type: 'message', from: 'me', text: 'sry war afk', time: '21:09', reactions: [{emoji: '😅', count: 2}, {emoji: '❤️', count: 1, mine: true}] }, + { type: 'media', from: 'me', filename: 'IMG_4120.jpg', size: '2.4 MB', label: '[ PLACEHOLDER IMAGE ]', time: '21:10' }, + { type: 'message', from: 'them', text: 'pushhh sick', time: '21:12' }, + { type: 'message', from: 'me', text: 'Hallo', time: '21:13', read: true }, + { type: 'typing', from: 'them' }, +]; + +Object.assign(window, { CHATS, MESSAGES }); diff --git a/design_handoff_chatapp/components/icons.jsx b/design_handoff_chatapp/components/icons.jsx new file mode 100644 index 0000000..d9cc71a --- /dev/null +++ b/design_handoff_chatapp/components/icons.jsx @@ -0,0 +1,87 @@ +// Shared SVG icon components +const Icon = { + Logo: () => ( + + + + + + ), + Chat: () => ( + + ), + Friends: () => ( + + ), + Settings: () => ( + + ), + Shield: () => ( + + ), + Phone: () => ( + + ), + PhoneOff: () => ( + + ), + Video: () => ( + + ), + Search: () => ( + + ), + Plus: () => ( + + ), + Send: () => ( + + ), + AddUser: () => ( + + ), + Chevron: () => ( + + ), + Paperclip: () => ( + + ), + Smile: () => ( + + ), + Mic: () => ( + + ), + Sun: () => ( + + ), + Moon: () => ( + + ), + MicOff: () => ( + + ), + Monitor: () => ( + + ), + Lock: () => ( + + ), + Crown: () => ( + + ), + Grid: () => ( + + ), + Focus: () => ( + + ), + Maximize: () => ( + + ), + Minimize: () => ( + + ), +}; + +Object.assign(window, { Icon }); diff --git a/design_handoff_chatapp/screenshots/01-chat-light.png b/design_handoff_chatapp/screenshots/01-chat-light.png new file mode 100644 index 0000000000000000000000000000000000000000..7e947b0d61fc8769c869246fa3b83c0d7acf44f0 GIT binary patch literal 31484 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 literal 0 HcmV?d00001 diff --git a/design_handoff_chatapp/screenshots/02-chat-light-alt.png b/design_handoff_chatapp/screenshots/02-chat-light-alt.png new file mode 100644 index 0000000000000000000000000000000000000000..7e947b0d61fc8769c869246fa3b83c0d7acf44f0 GIT binary patch literal 31484 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 literal 0 HcmV?d00001 diff --git a/design_handoff_chatapp/screenshots/03-chat-dark.png b/design_handoff_chatapp/screenshots/03-chat-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..a999fc0500ae6643346eb12eb8dd4f2173a912b8 GIT binary patch literal 30999 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 literal 0 HcmV?d00001 diff --git a/design_handoff_chatapp/screenshots/06-incall-focus-dark.png b/design_handoff_chatapp/screenshots/06-incall-focus-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..a8cf2da3f5bd031cc3c991747bfc3c741378b52c GIT binary patch literal 33276 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

c(u<^HoozSoE_W&0o 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 literal 0 HcmV?d00001 diff --git a/design_handoff_chatapp/screenshots/09-pip-dark.png b/design_handoff_chatapp/screenshots/09-pip-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..76790e1aa7e741f3ce416ac8d13395f86fca68ea GIT binary patch literal 30792 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 Odz$)pDsMk|@xK5KSYuKE literal 0 HcmV?d00001 diff --git a/design_handoff_chatapp/screenshots/10-chat-light-back.png b/design_handoff_chatapp/screenshots/10-chat-light-back.png new file mode 100644 index 0000000000000000000000000000000000000000..7e947b0d61fc8769c869246fa3b83c0d7acf44f0 GIT binary patch literal 31484 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 literal 0 HcmV?d00001 diff --git a/design_handoff_chatapp/screenshots/11-incall-light.png b/design_handoff_chatapp/screenshots/11-incall-light.png new file mode 100644 index 0000000000000000000000000000000000000000..99ba00d1612c953555dd7ab9a811f807cbd59f69 GIT binary patch literal 34677 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 khS7l^OV literal 0 HcmV?d00001 diff --git a/design_handoff_chatapp/styles/base.css b/design_handoff_chatapp/styles/base.css new file mode 100644 index 0000000..85ed306 --- /dev/null +++ b/design_handoff_chatapp/styles/base.css @@ -0,0 +1,459 @@ +/* ================= BASE ================= */ +* { box-sizing: border-box; margin: 0; padding: 0; } + +html, body { + width: 100%; + min-height: 100vh; + overflow-x: hidden; +} + +body { + font-family: var(--font-body, 'Inter', system-ui, sans-serif); + background: var(--bg, #0e0e12); + color: var(--fg, #eaeaea); + -webkit-font-smoothing: antialiased; + transition: background 0.3s ease; +} + +button { font-family: inherit; cursor: pointer; border: none; background: none; color: inherit; } +input, textarea { font-family: inherit; } + +/* Variant switcher — top fixed */ +.variant-switcher { + position: fixed; + top: 12px; left: 50%; transform: translateX(-50%); + z-index: 100; + display: flex; gap: 6px; + padding: 6px; + background: rgba(20,20,24,0.85); + backdrop-filter: blur(20px); + border: 1px solid rgba(255,255,255,0.08); + border-radius: 14px; + box-shadow: 0 10px 40px rgba(0,0,0,0.5); +} +.variant-switcher button { + padding: 8px 14px; + font-size: 12px; + font-weight: 500; + color: rgba(255,255,255,0.6); + border-radius: 9px; + transition: all 0.2s; + white-space: nowrap; + font-family: 'Inter', system-ui, sans-serif; +} +.variant-switcher button:hover { color: #fff; background: rgba(255,255,255,0.05); } +.variant-switcher button.active { + color: #fff; + background: rgba(255,255,255,0.12); +} + +.variant-container { + padding-top: 72px; + min-height: 100vh; +} + +/* Variant wrapper */ +.variant { + display: none; + width: 100%; +} +.variant.active { display: block; } + +/* Device frame — desktop window */ +.app-window { + width: min(1320px, 96vw); + margin: 0 auto 60px; + border-radius: 16px; + overflow: hidden; + box-shadow: 0 30px 80px rgba(0,0,0,0.4), 0 0 0 1px rgba(255,255,255,0.05); + height: 820px; + display: flex; + flex-direction: column; +} + +.window-bar { + height: 38px; + flex-shrink: 0; + display: flex; + align-items: center; + padding: 0 14px; + gap: 8px; +} +.window-bar .dots { display: flex; gap: 7px; } +.window-bar .dot { width: 12px; height: 12px; border-radius: 50%; } +.window-bar .title { + flex: 1; text-align: center; font-size: 12px; + letter-spacing: 0.02em; +} + +.app-body { + flex: 1; + display: flex; + flex-direction: column; + overflow: hidden; +} + +.top-nav { + height: 56px; + display: flex; + align-items: center; + padding: 0 20px; + gap: 20px; + flex-shrink: 0; +} + +.nav-brand { + display: flex; align-items: center; gap: 10px; + font-weight: 700; + letter-spacing: -0.02em; +} + +.nav-tabs { + display: flex; + gap: 4px; + flex: 1; + margin-left: 20px; +} +.nav-tab { + padding: 8px 14px; + font-size: 13px; + border-radius: 8px; + display: flex; align-items: center; gap: 8px; + transition: all 0.15s; +} + +.nav-user { + display: flex; + align-items: center; + gap: 10px; + padding: 4px 10px 4px 4px; + border-radius: 999px; +} + +.main-area { + flex: 1; + display: grid; + grid-template-columns: 320px 1fr; + overflow: hidden; + min-height: 0; +} + +/* Chat list */ +.chat-list { + display: flex; + flex-direction: column; + overflow: hidden; +} +.chat-list-header { + padding: 16px 18px; + display: flex; + justify-content: space-between; + align-items: center; +} +.chat-list-title { font-weight: 600; font-size: 14px; letter-spacing: 0.01em; } +.chat-search { + margin: 0 14px 10px; + padding: 9px 12px; + border-radius: 10px; + font-size: 13px; + outline: none; + border: none; +} +.chat-items { flex: 1; overflow-y: auto; padding: 4px 10px; } +.chat-item { + display: flex; align-items: center; gap: 12px; + padding: 10px 12px; + border-radius: 10px; + cursor: pointer; + margin-bottom: 2px; + transition: background 0.15s; +} +.chat-item-body { flex: 1; min-width: 0; } +.chat-item-name { font-weight: 600; font-size: 14px; display: flex; justify-content: space-between; align-items: center; } +.chat-item-preview { + font-size: 12px; + opacity: 0.6; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + margin-top: 2px; +} +.chat-item-time { font-size: 10px; opacity: 0.5; font-weight: 400; } +.unread-dot { + width: 8px; height: 8px; border-radius: 50%; + margin-left: 6px; + flex-shrink: 0; +} + +/* Avatar */ +.avatar { + width: 38px; height: 38px; + border-radius: 50%; + display: flex; align-items: center; justify-content: center; + font-weight: 600; + font-size: 14px; + flex-shrink: 0; + position: relative; +} +.avatar.sm { width: 28px; height: 28px; font-size: 11px; } +.avatar.lg { width: 44px; height: 44px; font-size: 16px; } + +.presence { + position: absolute; + bottom: -1px; right: -1px; + width: 12px; height: 12px; + border-radius: 50%; + border: 2px solid var(--bg, #0e0e12); +} +.presence.online { background: #22c55e; } +.presence.idle { background: #f59e0b; } +.presence.dnd { background: #ef4444; } +.presence.offline { background: #71717a; } + +/* Chat area */ +.chat-area { + display: flex; + flex-direction: column; + overflow: hidden; + min-width: 0; +} + +.chat-header { + height: 64px; + padding: 0 22px; + display: flex; + align-items: center; + gap: 14px; + flex-shrink: 0; +} +.chat-header-info { flex: 1; min-width: 0; } +.chat-header-name { font-weight: 600; font-size: 15px; } +.chat-header-status { font-size: 11px; opacity: 0.6; margin-top: 2px; } +.chat-header-actions { display: flex; gap: 4px; } +.icon-btn { + width: 34px; height: 34px; + border-radius: 9px; + display: flex; align-items: center; justify-content: center; + transition: background 0.15s; +} + +.messages { + flex: 1; + overflow-y: auto; + padding: 20px 26px; + display: flex; + flex-direction: column; + gap: 4px; +} + +.message-row { + display: flex; + gap: 8px; + align-items: flex-end; + margin-bottom: 14px; + width: 100%; +} +.message-row.me { justify-content: flex-end; } +.message-row.them { justify-content: flex-start; } +.message-avatar-slot { + width: 28px; + flex-shrink: 0; +} +.message-row .message-group { + margin-bottom: 0; + min-width: 0; + max-width: calc(100% - 40px); + flex: 1 1 auto; + align-items: flex-start; +} +.message-row.me .message-group { align-items: flex-end; } + +.message-row .bubble { max-width: 100%; width: fit-content; } +.message-row.me .bubble { margin-left: auto; } + +.message-group { display: flex; flex-direction: column; gap: 2px; margin-bottom: 14px; } +.message-group.me { align-items: flex-end; } +.message-group.them { align-items: flex-start; } +.message-sender { + font-size: 11px; + font-weight: 600; + margin-bottom: 4px; + opacity: 0.7; + padding: 0 4px; +} + +.bubble { + max-width: 70%; + min-width: 60px; + padding: 10px 14px; + border-radius: 18px; + font-size: 14px; + line-height: 1.45; + position: relative; + word-wrap: break-word; + white-space: normal; +} +.bubble .ts { + font-size: 10px; + opacity: 0.5; + margin-top: 2px; + display: block; + white-space: nowrap; +} + +.reactions { + display: flex; + gap: 4px; + margin-top: 4px; + flex-wrap: wrap; +} +.reaction { + font-size: 11px; + padding: 3px 8px; + border-radius: 999px; + display: flex; align-items: center; gap: 4px; + cursor: pointer; + transition: all 0.15s; +} +.reaction .count { font-weight: 600; opacity: 0.8; } + +/* System events (calls etc) */ +.event-row { display: flex; justify-content: center; margin: 10px 0; } +.event-pill { + display: flex; align-items: center; gap: 8px; + padding: 6px 12px; + border-radius: 999px; + font-size: 11px; + font-weight: 500; + white-space: nowrap; +} +.event-pill svg { width: 12px; height: 12px; } + +/* Media preview */ +.media-preview { + width: 240px; + border-radius: 14px; + overflow: hidden; + position: relative; +} +.media-preview .media-image { + width: 100%; + aspect-ratio: 4/3; + background: repeating-linear-gradient( + 45deg, + rgba(255,255,255,0.04), + rgba(255,255,255,0.04) 10px, + rgba(255,255,255,0.07) 10px, + rgba(255,255,255,0.07) 20px + ); + display: flex; align-items: center; justify-content: center; + font-size: 10px; font-family: 'JetBrains Mono', monospace; opacity: 0.5; + letter-spacing: 0.1em; +} +.media-preview .media-meta { + padding: 10px 12px; + font-size: 11px; + display: flex; justify-content: space-between; + font-family: 'JetBrains Mono', monospace; + opacity: 0.7; +} + +/* Composer */ +.composer { + padding: 14px 20px 18px; + flex-shrink: 0; + display: flex; + align-items: center; + gap: 10px; +} +.composer-box { + flex: 1; + display: flex; + align-items: center; + gap: 8px; + padding: 4px 4px 4px 12px; + border-radius: 12px; + min-height: 44px; +} +.composer-box input { + flex: 1; + background: none; + border: none; + outline: none; + color: inherit; + font-size: 14px; + padding: 8px 0; +} +.composer-btn { + width: 36px; height: 36px; + border-radius: 9px; + display: flex; align-items: center; justify-content: center; + flex-shrink: 0; +} + +/* Incoming call overlay */ +.call-overlay { + position: absolute; + right: 24px; + bottom: 100px; + width: 300px; + border-radius: 16px; + padding: 16px; + display: flex; + align-items: center; + gap: 14px; + box-shadow: 0 20px 60px rgba(0,0,0,0.4); + animation: slideInCall 0.4s cubic-bezier(0.22, 1, 0.36, 1); +} +@keyframes slideInCall { + from { transform: translateX(120%); opacity: 0; } + to { transform: translateX(0); opacity: 1; } +} +.call-info { flex: 1; min-width: 0; } +.call-name { font-weight: 600; font-size: 14px; } +.call-sub { font-size: 11px; opacity: 0.7; margin-top: 2px; } +.call-actions { display: flex; gap: 6px; } +.call-btn { + width: 36px; height: 36px; + border-radius: 50%; + display: flex; align-items: center; justify-content: center; + color: white; +} +.call-btn.accept { background: #22c55e; } +.call-btn.decline { background: #ef4444; } + +/* Profile hover card */ +.profile-card { + position: absolute; + z-index: 10; + width: 280px; + border-radius: 14px; + overflow: hidden; + box-shadow: 0 20px 50px rgba(0,0,0,0.4); +} +.profile-card-banner { height: 64px; } +.profile-card-body { padding: 14px; margin-top: -20px; position: relative; } +.profile-card-avatar { + width: 60px; height: 60px; + border-radius: 50%; + border: 4px solid var(--bg); + display: flex; align-items: center; justify-content: center; + font-weight: 700; + font-size: 22px; +} +.profile-card-name { font-weight: 700; font-size: 16px; margin-top: 10px; } +.profile-card-handle { font-size: 12px; opacity: 0.6; } +.profile-card-meta { + margin-top: 10px; + padding-top: 10px; + border-top: 1px solid rgba(255,255,255,0.08); + font-size: 11px; + display: flex; flex-direction: column; gap: 6px; + opacity: 0.8; +} + +/* Scrollbars */ +::-webkit-scrollbar { width: 6px; height: 6px; } +::-webkit-scrollbar-track { background: transparent; } +::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.1); border-radius: 3px; } +::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.2); } diff --git a/design_handoff_chatapp/styles/call.css b/design_handoff_chatapp/styles/call.css new file mode 100644 index 0000000..d7f6591 --- /dev/null +++ b/design_handoff_chatapp/styles/call.css @@ -0,0 +1,529 @@ +/* ============ CALL UI — Clean Rail matched ============ */ + +/* Discord-style call dock: call takes top portion, chat continues below */ +.call-dock { + flex-shrink: 0; + height: 50%; + max-height: 420px; + min-height: 280px; + border-bottom: 1px solid var(--line); + display: flex; + flex-direction: column; + overflow: hidden; + background: var(--bg-2); +} +.call-dock > .active-call { + flex: 1; + min-height: 0; +} +.call-dock .call-topbar { padding: 8px 14px; } +.call-dock .call-stage { padding: 10px; } +.call-dock .grid { gap: 8px; } +.call-dock .participant-tile { border-radius: 10px; } +.call-dock .audio-ring .avatar.lg { width: 52px; height: 52px; font-size: 20px; } +.call-dock .participant-meta { padding: 4px 8px; font-size: 11px; bottom: 6px; left: 6px; right: 6px; } +.call-dock .participant-name { font-size: 11px; } +.call-dock .pi { width: 18px; height: 18px; } +/* When docked, compact the controls */ +.call-dock .call-controls { padding: 8px; gap: 8px; } +.call-dock .cc-btn { width: 36px; height: 36px; border-radius: 10px; } +.call-dock .cc-btn.hangup { width: 54px; } +.call-dock .ss-content { padding: 8px; gap: 4px; } +.call-dock .ss-line { height: 4px; } +.call-dock .ss-block { height: 20px; } +.call-dock .ss-badge { font-size: 9px; padding: 3px 7px; } + +/* Screen switcher pill (top-right of window) */ +.screen-switcher { + position: absolute; + top: 52px; + right: 20px; + z-index: 50; + display: flex; + gap: 4px; + padding: 4px; + background: var(--bg-2); + border: 1px solid var(--line); + border-radius: 10px; + font-size: 11px; +} +.screen-switcher button { + padding: 6px 10px; + border-radius: 7px; + color: var(--fg-muted); + font-weight: 500; +} +.screen-switcher button.active { background: var(--accent); color: #fff; } + +/* Call stage overlay */ +.call-screen { + position: absolute; + inset: 38px 0 0 0; /* below window bar */ + background: var(--bg); + display: flex; + flex-direction: column; + overflow: hidden; +} + +/* === Incoming Call === */ +.incoming-call { + flex: 1; + display: flex; + align-items: center; + justify-content: center; + background: + radial-gradient(circle at 30% 20%, rgba(79,70,229,0.15), transparent 50%), + radial-gradient(circle at 70% 80%, rgba(109,115,255,0.1), transparent 50%), + var(--bg); +} +.incoming-card { + width: 420px; + padding: 40px 32px 28px; + background: var(--bg-3); + border: 1px solid var(--line); + border-radius: 24px; + text-align: center; + box-shadow: 0 20px 60px rgba(0,0,0,0.1); +} +.variant-clean.dark .incoming-card { box-shadow: 0 20px 60px rgba(0,0,0,0.5); } +.incoming-ringing { + font-size: 12px; + text-transform: uppercase; + letter-spacing: 0.12em; + color: var(--fg-muted); + font-weight: 600; +} +.incoming-avatar { + margin: 22px auto 18px; + width: 112px; height: 112px; + position: relative; + display: flex; align-items: center; justify-content: center; +} +.incoming-avatar .avatar.lg { + width: 96px; height: 96px; + font-size: 40px; + font-weight: 700; + border: 3px solid var(--bg-3); +} +.pulse-ring { + position: absolute; + inset: 0; + border: 2px solid var(--accent); + border-radius: 50%; + opacity: 0; + animation: pulseRing 2s ease-out infinite; +} +.pulse-ring.d2 { animation-delay: 1s; } +@keyframes pulseRing { + 0% { transform: scale(0.85); opacity: 0.6; } + 100% { transform: scale(1.25); opacity: 0; } +} +.incoming-name { + font-size: 24px; + font-weight: 700; + font-family: 'Outfit', 'Inter', sans-serif; + letter-spacing: -0.02em; +} +.incoming-sub { + margin-top: 6px; + font-size: 12px; + color: var(--fg-muted); + display: flex; align-items: center; justify-content: center; gap: 6px; +} +.incoming-actions { + margin-top: 28px; + display: flex; + gap: 12px; + justify-content: center; +} +.incoming-btn { + flex: 1; + padding: 14px 20px; + border-radius: 14px; + font-size: 14px; + font-weight: 600; + display: flex; + align-items: center; + justify-content: center; + gap: 8px; + transition: all 0.15s; +} +.incoming-btn.decline { + background: transparent; + color: #dc2626; + border: 1px solid rgba(220,38,38,0.3); +} +.variant-clean.dark .incoming-btn.decline { color: #fb7185; border-color: rgba(251,113,133,0.3); } +.incoming-btn.decline:hover { background: rgba(220,38,38,0.08); } +.incoming-btn.accept { + background: #16a34a; + color: #fff; + box-shadow: 0 4px 14px rgba(22,163,74,0.3); +} +.incoming-btn.accept:hover { background: #15803d; } + +/* === Active Call === */ +.active-call { + flex: 1; + display: flex; + flex-direction: column; + overflow: hidden; + background: linear-gradient(180deg, var(--bg-2), var(--bg)); +} +.call-topbar { + padding: 14px 20px; + display: flex; + justify-content: space-between; + align-items: center; + border-bottom: 1px solid var(--line); + background: var(--bg-3); +} +.call-topbar-left { display: flex; flex-direction: column; gap: 2px; } +.call-title { + display: flex; align-items: center; gap: 8px; + font-weight: 600; font-size: 14px; +} +.call-dot { opacity: 0.4; } +.call-duration { font-variant-numeric: tabular-nums; color: var(--fg-muted); font-size: 13px; } +.call-e2ee { + display: flex; align-items: center; gap: 5px; + font-size: 11px; color: #16a34a; font-weight: 500; +} +.variant-clean.dark .call-e2ee { color: #4ade80; } +.call-topbar-right { display: flex; gap: 4px; } + +.call-stage { + flex: 1; + padding: 16px; + overflow: hidden; + display: flex; +} + +/* Participant tiles */ +.participant-tile { + position: relative; + background: var(--bg-3); + border: 1px solid var(--line); + border-radius: 14px; + overflow: hidden; + cursor: pointer; + transition: all 0.2s; + display: flex; + flex-direction: column; +} +.participant-tile:hover { border-color: var(--accent); } +.participant-tile.speaking { border-color: #16a34a; box-shadow: 0 0 0 2px rgba(22,163,74,0.25); } +.participant-tile.focused { border-color: var(--accent); } +.participant-tile.small { min-width: 140px; } + +.participant-audio, .participant-video { + flex: 1; + display: flex; + align-items: center; + justify-content: center; + min-height: 0; + overflow: hidden; +} +.audio-ring { + position: relative; + display: flex; + align-items: center; + justify-content: center; +} +.audio-ring .avatar.lg { + width: 72px; height: 72px; + font-size: 28px; + font-weight: 700; +} +.participant-tile.small .audio-ring .avatar.lg { width: 44px; height: 44px; font-size: 18px; } +.audio-ring.pulse::before { + content: ''; + position: absolute; + inset: -6px; + border-radius: 50%; + border: 2px solid #22c55e; + animation: audioPulse 1.3s ease-out infinite; +} +@keyframes audioPulse { + 0% { transform: scale(1); opacity: 0.8; } + 100% { transform: scale(1.3); opacity: 0; } +} + +.video-stub { + width: 100%; height: 100%; + background: + radial-gradient(circle at 30% 40%, rgba(109,115,255,0.2), transparent 60%), + linear-gradient(135deg, #1a1a24, #0A0A0F); + display: flex; + align-items: center; + justify-content: center; +} +.variant-clean:not(.dark) .video-stub { background: linear-gradient(135deg, #e0e7ff, #c7d2fe); } + +/* Screenshare stub */ +.screenshare-stub { + width: 100%; height: 100%; + position: relative; + background: #0A0A0F; + padding: 12px; + display: flex; + align-items: center; + justify-content: center; +} +.variant-clean:not(.dark) .screenshare-stub { background: #111118; } +.ss-window { + width: 90%; height: 85%; + background: #1a1a24; + border-radius: 8px; + overflow: hidden; + border: 1px solid rgba(255,255,255,0.06); +} +.ss-chrome { + height: 20px; + background: #252533; + display: flex; + align-items: center; + padding: 0 8px; + gap: 4px; +} +.ss-chrome span { width: 6px; height: 6px; border-radius: 50%; background: #3A3A4D; } +.ss-content { padding: 14px; display: flex; flex-direction: column; gap: 8px; } +.ss-line { height: 6px; background: #3A3A4D; border-radius: 3px; } +.ss-block { height: 40px; background: rgba(109,115,255,0.25); border-radius: 4px; margin: 4px 0; } +.participant-tile.small .ss-content { padding: 6px; gap: 3px; } +.participant-tile.small .ss-line { height: 3px; } +.participant-tile.small .ss-block { height: 14px; } +.ss-badge { + position: absolute; + top: 12px; left: 12px; + padding: 4px 10px; + background: rgba(0,0,0,0.6); + backdrop-filter: blur(8px); + color: #fff; + border-radius: 8px; + font-size: 10px; + font-weight: 500; + display: flex; align-items: center; gap: 5px; +} +.participant-tile.small .ss-badge { display: none; } + +.participant-meta { + position: absolute; + bottom: 8px; left: 8px; right: 8px; + display: flex; + justify-content: space-between; + align-items: center; + gap: 8px; + padding: 6px 10px; + background: rgba(0,0,0,0.55); + backdrop-filter: blur(10px); + border-radius: 8px; + color: #fff; +} +.participant-tile.small .participant-meta { padding: 4px 8px; font-size: 10px; } +.participant-name { + display: flex; align-items: center; gap: 5px; + font-size: 12px; + font-weight: 600; + min-width: 0; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.e2ee-dot { opacity: 0.7; display: flex; } +.participant-icons { display: flex; gap: 4px; } +.pi { + width: 20px; height: 20px; + border-radius: 6px; + display: flex; align-items: center; justify-content: center; +} +.pi.muted { background: rgba(220,38,38,0.8); } +.pi.sharing { background: rgba(34,197,94,0.8); } + +/* Grid layouts */ +.grid { + display: grid; + gap: 10px; + width: 100%; height: 100%; +} +.grid-1 { grid-template-columns: 1fr; } +.grid-2 { grid-template-columns: 1fr 1fr; } +.grid-3 { grid-template-columns: repeat(3, 1fr); } +.grid-4 { grid-template-columns: repeat(2, 1fr); grid-template-rows: repeat(2, 1fr); } +.grid-5, .grid-6 { grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(2, 1fr); } + +/* Focus layout */ +.focus-layout { + width: 100%; height: 100%; + display: flex; + flex-direction: column; + gap: 10px; +} +.focus-main { flex: 1; min-height: 0; } +.focus-main .participant-tile { height: 100%; } +.focus-strip { + height: 110px; + display: flex; + gap: 10px; + overflow-x: auto; +} +.focus-strip .participant-tile { min-width: 160px; height: 100%; } + +/* Fullscreen layout (hides topbar, pure cinema) */ +.active-call.mode-fullscreen .call-topbar { display: none; } +.active-call.mode-fullscreen .call-stage { padding: 0; position: relative; } +.fullscreen-layout { + width: 100%; height: 100%; + position: relative; +} +.fullscreen-layout > .participant-tile { width: 100%; height: 100%; border-radius: 0; border: none; } +.fs-strip { + position: absolute; + bottom: 90px; + right: 16px; + display: flex; + flex-direction: column; + gap: 8px; + width: 180px; +} +.fs-strip .participant-tile { height: 100px; backdrop-filter: blur(20px); background: rgba(0,0,0,0.4); } + +/* Call controls bar */ +.call-controls { + padding: 16px; + display: flex; + justify-content: center; + gap: 10px; + background: var(--bg-3); + border-top: 1px solid var(--line); +} +.active-call.mode-fullscreen .call-controls { + position: absolute; + bottom: 16px; left: 50%; transform: translateX(-50%); + background: rgba(10,10,15,0.7); + backdrop-filter: blur(20px); + border: 1px solid rgba(255,255,255,0.1); + border-radius: 18px; + padding: 10px; +} +.cc-btn { + width: 48px; height: 48px; + border-radius: 14px; + background: var(--bg-2); + color: var(--fg); + display: flex; align-items: center; justify-content: center; + transition: all 0.15s; + border: 1px solid var(--line); +} +.cc-btn:hover { background: var(--bg); transform: translateY(-1px); } +.cc-btn.sm { width: 32px; height: 32px; border-radius: 8px; } +.cc-btn.active-brand { background: var(--accent); color: #fff; border-color: var(--accent); } +.cc-btn.active-danger { background: #dc2626; color: #fff; border-color: #dc2626; } +.cc-btn.hangup { background: #dc2626; color: #fff; border-color: #dc2626; width: 72px; } +.cc-btn.hangup:hover { background: #b91c1c; } + +.active-call.mode-fullscreen .cc-btn { background: rgba(255,255,255,0.08); color: #fff; border-color: rgba(255,255,255,0.1); } +.active-call.mode-fullscreen .cc-btn.active-brand { background: var(--accent); border-color: var(--accent); } +.active-call.mode-fullscreen .cc-btn.active-danger { background: #dc2626; border-color: #dc2626; } +.active-call.mode-fullscreen .cc-btn.hangup { background: #dc2626; border-color: #dc2626; } + +/* Exit fullscreen button */ +.fs-exit { + position: absolute; + top: 16px; + right: 16px; + z-index: 10; + padding: 8px 14px; + background: rgba(10,10,15,0.7); + backdrop-filter: blur(20px); + border: 1px solid rgba(255,255,255,0.15); + border-radius: 10px; + color: #fff; + font-size: 12px; + font-weight: 500; + display: flex; + align-items: center; + gap: 6px; + transition: all 0.15s; +} +.fs-exit:hover { background: rgba(10,10,15,0.9); transform: translateY(-1px); } + +/* Fullscreen hint — subtle, fades in then out */ +.fs-hint { + position: absolute; + top: 20px; + left: 50%; + transform: translateX(-50%); + padding: 6px 14px; + background: rgba(10,10,15,0.6); + backdrop-filter: blur(16px); + border: 1px solid rgba(255,255,255,0.08); + border-radius: 8px; + color: rgba(255,255,255,0.7); + font-size: 11px; + font-weight: 500; + letter-spacing: 0.02em; + z-index: 10; + animation: fsHintFade 3.5s ease-out forwards; + pointer-events: none; +} +@keyframes fsHintFade { + 0% { opacity: 0; transform: translate(-50%, -6px); } + 15%, 75% { opacity: 1; transform: translate(-50%, 0); } + 100% { opacity: 0; transform: translate(-50%, -6px); } +} + +/* PiP in chat view */ +.pip-call { + position: absolute; + bottom: 82px; right: 20px; + width: 260px; + padding: 10px; + display: flex; + align-items: center; + gap: 10px; + background: var(--bg-3); + border: 1px solid var(--accent); + border-radius: 14px; + box-shadow: 0 12px 40px rgba(0,0,0,0.2), 0 0 0 3px rgba(79,70,229,0.15); + cursor: pointer; + z-index: 30; + animation: slideInCall 0.4s cubic-bezier(0.22,1,0.36,1); + transition: transform 0.15s; +} +.pip-call:hover { transform: translateY(-2px); } +.pip-preview { + width: 44px; height: 44px; + border-radius: 10px; + background: var(--bg-2); + display: flex; align-items: center; justify-content: center; + overflow: hidden; +} +.pip-preview .ss-window.mini { + width: 36px; height: 28px; + background: #1a1a24; + border-radius: 4px; +} +.pip-info { flex: 1; min-width: 0; } +.pip-title { font-weight: 600; font-size: 13px; } +.pip-sub { + font-size: 11px; color: var(--fg-muted); + margin-top: 2px; + display: flex; align-items: center; gap: 5px; +} +.live-dot { + width: 6px; height: 6px; border-radius: 50%; + background: #ef4444; + animation: liveDotPulse 1.5s ease-in-out infinite; +} +@keyframes liveDotPulse { + 0%, 100% { opacity: 1; } + 50% { opacity: 0.4; } +} +.pip-hangup { + width: 32px; height: 32px; + border-radius: 50%; + background: #dc2626; + color: #fff; + display: flex; align-items: center; justify-content: center; +} diff --git a/design_handoff_chatapp/styles/rail.css b/design_handoff_chatapp/styles/rail.css new file mode 100644 index 0000000..588afb0 --- /dev/null +++ b/design_handoff_chatapp/styles/rail.css @@ -0,0 +1,53 @@ +/* Rail layout — Discord-style icon sidebar */ +.rail-layout { + flex: 1; + display: grid; + grid-template-columns: 64px 280px 1fr; + overflow: hidden; + min-height: 0; +} +.icon-rail { + display: flex; + flex-direction: column; + align-items: center; + padding: 12px 0; + gap: 6px; +} +.rail-brand { + width: 44px; height: 44px; + border-radius: 14px; + display: flex; align-items: center; justify-content: center; + background: var(--accent, #4F46E5); + color: #fff; + margin-bottom: 4px; +} +.rail-divider { width: 32px; height: 2px; background: rgba(128,128,128,0.2); border-radius: 1px; margin: 4px 0; } +.rail-btn { + width: 44px; height: 44px; + border-radius: 14px; + display: flex; align-items: center; justify-content: center; + color: var(--fg-muted); + position: relative; + transition: all 0.15s; +} +.rail-btn:hover { background: rgba(128,128,128,0.1); color: var(--fg); border-radius: 12px; } +.rail-btn.active { background: var(--accent); color: #fff; border-radius: 12px; } +.rail-pill { + position: absolute; + left: -12px; top: 50%; transform: translateY(-50%); + width: 4px; height: 24px; + background: var(--fg); + border-radius: 0 3px 3px 0; +} +.rail-chatlist { display: flex; flex-direction: column; } +.rail-chatlist .chat-items { flex: 1; } +.rail-user { + padding: 10px 12px; + display: flex; align-items: center; gap: 10px; + flex-shrink: 0; +} + +.variant-clean.layout-rail .icon-rail { background: var(--bg-2); border-right: 1px solid var(--line); } +.variant-clean.layout-rail .rail-chatlist { background: var(--bg-3); border-right: 1px solid var(--line); } +.variant-clean.layout-rail .rail-user { background: var(--bg-2); border-top: 1px solid var(--line); } +.variant-clean.layout-rail .rail-brand { background: var(--accent); color: #fff; } diff --git a/design_handoff_chatapp/styles/variants.css b/design_handoff_chatapp/styles/variants.css new file mode 100644 index 0000000..480dc43 --- /dev/null +++ b/design_handoff_chatapp/styles/variants.css @@ -0,0 +1,461 @@ +/* ================= VARIANT 1: CLEAN MINIMAL (Light) ================= */ +.variant-clean { + --bg: #fafaf9; + --bg-2: #f4f4f2; + --bg-3: #ffffff; + --fg: #0a0a0f; + --fg-muted: #737380; + --line: rgba(10,10,15,0.08); + --accent: #4F46E5; + --accent-fg: #ffffff; + background: var(--bg); + color: var(--fg); + font-family: 'Inter', system-ui, sans-serif; +} +.variant-clean .nav-brand { font-family: 'Outfit', 'Inter', sans-serif; font-weight: 700; letter-spacing: -0.02em; } + +/* Dark mode for Clean */ +.variant-clean.dark { + --bg: #050507; + --bg-2: #111118; + --bg-3: #0A0A0F; + --fg: #f4f4f5; + --fg-muted: #8a8a99; + --line: rgba(255,255,255,0.07); + --accent: #6D73FF; + --accent-fg: #ffffff; +} +.variant-clean.dark .app-window { background: var(--bg-3); box-shadow: 0 30px 80px rgba(0,0,0,0.5), 0 0 0 1px var(--line); } +.variant-clean.dark .avatar { background: #1A1A24; color: #DDE0FF; } +.variant-clean.dark .avatar[data-color="violet"] { background: #312E81; color: #C4B5FD; } +.variant-clean.dark .avatar[data-color="amber"] { background: #422e05; color: #fde68a; } +.variant-clean.dark .avatar[data-color="rose"] { background: #4a1d29; color: #fecdd3; } +.variant-clean.dark .avatar[data-color="teal"] { background: #134e4a; color: #99f6e4; } +.variant-clean.dark .bubble.them { border-color: rgba(255,255,255,0.1); } +.variant-clean.dark .bubble.me { background: var(--accent); color: #fff; } +.variant-clean.dark .nav-tab.active { background: var(--accent); } +.variant-clean.dark .reaction.mine { background: var(--accent); } +.variant-clean.dark .composer-btn { background: var(--accent); } +.variant-clean .app-window { background: var(--bg-3); box-shadow: 0 30px 80px rgba(0,0,0,0.08), 0 0 0 1px var(--line); } +.variant-clean .window-bar { background: var(--bg-2); border-bottom: 1px solid var(--line); } +.variant-clean .window-bar .title { color: var(--fg-muted); font-weight: 500; } +.variant-clean .top-nav { border-bottom: 1px solid var(--line); background: var(--bg-3); } +.variant-clean .nav-brand svg { color: #0a0a0a; } +.variant-clean .nav-tab { color: var(--fg-muted); } +.variant-clean .nav-tab:hover { background: var(--bg-2); color: var(--fg); } +.variant-clean .nav-tab.active { background: var(--accent); color: var(--accent-fg); } +.variant-clean .nav-user { border: 1px solid var(--line); } +.variant-clean .chat-list { border-right: 1px solid var(--line); background: var(--bg-3); } +.variant-clean .chat-list-header { border-bottom: 1px solid var(--line); } +.variant-clean .chat-search { background: var(--bg-2); color: var(--fg); } +.variant-clean .chat-item:hover { background: var(--bg-2); } +.variant-clean .chat-item.active { background: var(--bg-2); } +.variant-clean .avatar { background: #e5e5e5; color: #0a0a0a; } +.variant-clean .avatar[data-color="violet"] { background: #ddd6fe; color: #5b21b6; } +.variant-clean .avatar[data-color="amber"] { background: #fde68a; color: #78350f; } +.variant-clean .avatar[data-color="rose"] { background: #fecdd3; color: #881337; } +.variant-clean .avatar[data-color="teal"] { background: #99f6e4; color: #134e4a; } +.variant-clean .chat-header { border-bottom: 1px solid var(--line); } +.variant-clean .icon-btn { color: var(--fg-muted); } +.variant-clean .icon-btn:hover { background: var(--bg-2); color: var(--fg); } +.variant-clean .bubble.me { background: var(--accent); color: var(--accent-fg); border-radius: 18px 18px 4px 18px; } +.variant-clean .bubble.them { background: transparent; color: var(--fg); border: 1px solid var(--line); border-radius: 18px 18px 18px 4px; } +.variant-clean .reaction { background: var(--bg-2); border: 1px solid var(--line); } +.variant-clean .reaction.mine { background: var(--accent); color: var(--accent-fg); border-color: var(--accent); } +.variant-clean .event-pill { background: var(--bg-2); color: var(--fg-muted); } +.variant-clean .composer { border-top: 1px solid var(--line); } +.variant-clean .composer-box { background: var(--bg-2); } +.variant-clean .composer-btn { background: var(--accent); color: var(--accent-fg); } +.variant-clean .presence { border-color: var(--bg-3); } + + +/* ================= VARIANT 2: PLAYFUL DISCORD-VIBES ================= */ +.variant-playful { + --bg: #1a1625; + --bg-2: #2a2338; + --bg-3: #221b30; + --fg: #f5f3ff; + --fg-muted: #9691b3; + --accent: #a78bfa; + --accent-2: #f472b6; + --accent-3: #60a5fa; + background: radial-gradient(ellipse at top left, #3d1a54 0%, #1a1625 50%); + color: var(--fg); + font-family: 'Plus Jakarta Sans', 'Inter', sans-serif; +} +.variant-playful .app-window { background: var(--bg-3); } +.variant-playful .window-bar { background: rgba(0,0,0,0.25); } +.variant-playful .window-bar .title { color: #fff; font-weight: 700; font-size: 13px; } +.variant-playful .top-nav { background: linear-gradient(90deg, #2a1a48 0%, #1a1625 100%); border-bottom: 1px solid rgba(255,255,255,0.05); } +.variant-playful .nav-brand { font-size: 18px; background: linear-gradient(135deg, #f472b6, #a78bfa); -webkit-background-clip: text; -webkit-text-fill-color: transparent; } +.variant-playful .nav-tab { color: var(--fg-muted); font-weight: 600; } +.variant-playful .nav-tab:hover { background: rgba(255,255,255,0.06); color: #fff; } +.variant-playful .nav-tab.active { background: linear-gradient(135deg, #a78bfa, #f472b6); color: #fff; box-shadow: 0 4px 14px rgba(167,139,250,0.4); } +.variant-playful .nav-user { background: rgba(255,255,255,0.05); } +.variant-playful .chat-list { background: rgba(0,0,0,0.15); border-right: 1px solid rgba(255,255,255,0.04); } +.variant-playful .chat-search { background: rgba(0,0,0,0.3); color: #fff; } +.variant-playful .chat-item:hover { background: rgba(255,255,255,0.04); } +.variant-playful .chat-item.active { background: linear-gradient(90deg, rgba(167,139,250,0.2), rgba(244,114,182,0.1)); } +.variant-playful .avatar { background: linear-gradient(135deg, #a78bfa, #f472b6); color: #fff; font-weight: 800; } +.variant-playful .avatar[data-color="teal"] { background: linear-gradient(135deg, #34d399, #60a5fa); } +.variant-playful .avatar[data-color="amber"] { background: linear-gradient(135deg, #fbbf24, #f472b6); } +.variant-playful .avatar[data-color="rose"] { background: linear-gradient(135deg, #fb7185, #a78bfa); } +.variant-playful .avatar[data-color="violet"] { background: linear-gradient(135deg, #a78bfa, #60a5fa); } +.variant-playful .chat-header { background: rgba(0,0,0,0.2); border-bottom: 1px solid rgba(255,255,255,0.05); } +.variant-playful .icon-btn:hover { background: rgba(255,255,255,0.08); } +.variant-playful .messages { background: radial-gradient(ellipse at bottom right, rgba(244,114,182,0.06), transparent 50%); } +.variant-playful .bubble.me { background: linear-gradient(135deg, #a78bfa, #8b5cf6); color: #fff; border-radius: 20px 20px 4px 20px; box-shadow: 0 4px 14px rgba(167,139,250,0.25); } +.variant-playful .bubble.them { background: rgba(255,255,255,0.06); color: #fff; border-radius: 20px 20px 20px 4px; backdrop-filter: blur(10px); } +.variant-playful .reaction { background: rgba(255,255,255,0.08); } +.variant-playful .reaction.mine { background: rgba(167,139,250,0.3); border: 1px solid #a78bfa; } +.variant-playful .event-pill { background: rgba(52,211,153,0.15); color: #34d399; } +.variant-playful .event-pill.rejected { background: rgba(251,113,133,0.15); color: #fb7185; } +.variant-playful .composer { background: rgba(0,0,0,0.2); } +.variant-playful .composer-box { background: rgba(255,255,255,0.06); } +.variant-playful .composer-btn { background: linear-gradient(135deg, #a78bfa, #f472b6); color: #fff; box-shadow: 0 4px 14px rgba(167,139,250,0.4); } +.variant-playful .presence { border-color: var(--bg-3); } + + +/* ================= VARIANT 3: Y2K GLASSMORPHISM ================= */ +.variant-y2k { + --bg: #0a0a1f; + --fg: #f8fafc; + --fg-muted: rgba(248,250,252,0.6); + --accent: #c7d2fe; + color: var(--fg); + font-family: 'Space Grotesk', 'Inter', sans-serif; + background: + radial-gradient(ellipse 80% 50% at 20% 20%, rgba(168,85,247,0.4), transparent), + radial-gradient(ellipse 60% 40% at 80% 80%, rgba(59,130,246,0.35), transparent), + radial-gradient(ellipse 70% 60% at 50% 50%, rgba(236,72,153,0.2), transparent), + #0a0a1f; +} +.variant-y2k .app-window { + background: rgba(255,255,255,0.04); + backdrop-filter: blur(30px); + -webkit-backdrop-filter: blur(30px); + border: 1px solid rgba(255,255,255,0.12); + box-shadow: 0 30px 80px rgba(0,0,0,0.3), inset 0 1px 0 rgba(255,255,255,0.15); +} +.variant-y2k .window-bar { background: rgba(255,255,255,0.04); border-bottom: 1px solid rgba(255,255,255,0.08); } +.variant-y2k .window-bar .title { color: rgba(255,255,255,0.7); font-weight: 500; letter-spacing: 0.08em; font-size: 11px; text-transform: uppercase; } +.variant-y2k .top-nav { background: rgba(255,255,255,0.02); border-bottom: 1px solid rgba(255,255,255,0.08); } +.variant-y2k .nav-brand { font-weight: 700; letter-spacing: -0.03em; font-size: 18px; } +.variant-y2k .nav-tab { + color: var(--fg-muted); + font-weight: 500; + border: 1px solid transparent; +} +.variant-y2k .nav-tab:hover { background: rgba(255,255,255,0.06); color: #fff; border-color: rgba(255,255,255,0.1); } +.variant-y2k .nav-tab.active { + background: rgba(255,255,255,0.15); + color: #fff; + border-color: rgba(255,255,255,0.25); + backdrop-filter: blur(10px); + box-shadow: inset 0 1px 0 rgba(255,255,255,0.2); +} +.variant-y2k .nav-user { background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.1); } +.variant-y2k .chat-list { background: rgba(255,255,255,0.02); border-right: 1px solid rgba(255,255,255,0.08); } +.variant-y2k .chat-search { background: rgba(255,255,255,0.06); color: #fff; border: 1px solid rgba(255,255,255,0.08); } +.variant-y2k .chat-item:hover { background: rgba(255,255,255,0.05); } +.variant-y2k .chat-item.active { + background: rgba(255,255,255,0.1); + border: 1px solid rgba(255,255,255,0.15); + box-shadow: inset 0 1px 0 rgba(255,255,255,0.1); +} +.variant-y2k .avatar { + background: linear-gradient(135deg, #e0e7ff, #c7d2fe); + color: #312e81; + border: 1px solid rgba(255,255,255,0.3); +} +.variant-y2k .avatar[data-color="violet"] { background: linear-gradient(135deg, #e9d5ff, #c4b5fd); color: #4c1d95; } +.variant-y2k .avatar[data-color="rose"] { background: linear-gradient(135deg, #fecdd3, #f9a8d4); color: #831843; } +.variant-y2k .avatar[data-color="teal"] { background: linear-gradient(135deg, #a7f3d0, #7dd3fc); color: #064e3b; } +.variant-y2k .avatar[data-color="amber"] { background: linear-gradient(135deg, #fde68a, #fdba74); color: #7c2d12; } +.variant-y2k .chat-header { background: rgba(255,255,255,0.02); border-bottom: 1px solid rgba(255,255,255,0.08); } +.variant-y2k .icon-btn:hover { background: rgba(255,255,255,0.08); } +.variant-y2k .bubble.me { + background: linear-gradient(135deg, rgba(199,210,254,0.9), rgba(196,181,253,0.8)); + color: #1e1b4b; + border-radius: 20px 20px 6px 20px; + backdrop-filter: blur(10px); + border: 1px solid rgba(255,255,255,0.3); + box-shadow: inset 0 1px 0 rgba(255,255,255,0.4), 0 4px 14px rgba(124,58,237,0.2); +} +.variant-y2k .bubble.them { + background: rgba(255,255,255,0.08); + color: #fff; + border: 1px solid rgba(255,255,255,0.12); + border-radius: 20px 20px 20px 6px; + backdrop-filter: blur(20px); + box-shadow: inset 0 1px 0 rgba(255,255,255,0.1); +} +.variant-y2k .reaction { background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.1); backdrop-filter: blur(10px); } +.variant-y2k .reaction.mine { background: rgba(199,210,254,0.25); border-color: rgba(199,210,254,0.5); } +.variant-y2k .event-pill { background: rgba(255,255,255,0.08); color: rgba(255,255,255,0.8); border: 1px solid rgba(255,255,255,0.1); backdrop-filter: blur(10px); } +.variant-y2k .event-pill.rejected { background: rgba(251,113,133,0.15); color: #fda4af; border-color: rgba(251,113,133,0.3); } +.variant-y2k .composer { background: rgba(255,255,255,0.02); border-top: 1px solid rgba(255,255,255,0.08); } +.variant-y2k .composer-box { background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.1); backdrop-filter: blur(10px); } +.variant-y2k .composer-btn { background: linear-gradient(135deg, #e0e7ff, #c4b5fd); color: #312e81; border: 1px solid rgba(255,255,255,0.3); box-shadow: inset 0 1px 0 rgba(255,255,255,0.4); } +.variant-y2k .presence { border-color: #0a0a1f; } + + +/* ================= VARIANT 4: CYBERPUNK NEON ================= */ +.variant-cyber { + --bg: #05050a; + --fg: #e0e0e8; + --fg-muted: #6b7280; + --neon-cyan: #00f0ff; + --neon-magenta: #ff00aa; + --neon-lime: #b6ff3d; + color: var(--fg); + font-family: 'JetBrains Mono', 'Courier New', monospace; + background: + repeating-linear-gradient(0deg, transparent 0, transparent 2px, rgba(0,240,255,0.015) 2px, rgba(0,240,255,0.015) 4px), + radial-gradient(ellipse at center, #0c0c18 0%, #05050a 70%); +} +.variant-cyber .app-window { + background: #08080f; + border: 1px solid rgba(0,240,255,0.2); + box-shadow: 0 0 40px rgba(255,0,170,0.15), 0 0 80px rgba(0,240,255,0.08); +} +.variant-cyber .window-bar { background: #05050a; border-bottom: 1px solid rgba(0,240,255,0.15); } +.variant-cyber .window-bar .title { color: var(--neon-cyan); font-size: 11px; letter-spacing: 0.15em; text-transform: uppercase; } +.variant-cyber .window-bar .title::before { content: "// "; opacity: 0.5; } +.variant-cyber .top-nav { background: #05050a; border-bottom: 1px solid rgba(0,240,255,0.15); } +.variant-cyber .nav-brand { color: var(--neon-cyan); text-transform: uppercase; letter-spacing: 0.1em; font-size: 13px; text-shadow: 0 0 10px rgba(0,240,255,0.5); } +.variant-cyber .nav-tab { color: var(--fg-muted); text-transform: uppercase; letter-spacing: 0.1em; font-size: 11px; font-weight: 500; border: 1px solid transparent; } +.variant-cyber .nav-tab:hover { color: var(--neon-cyan); border-color: rgba(0,240,255,0.2); } +.variant-cyber .nav-tab.active { color: var(--neon-lime); border-color: var(--neon-lime); background: rgba(182,255,61,0.05); box-shadow: 0 0 10px rgba(182,255,61,0.2); } +.variant-cyber .nav-tab.active::before { content: "> "; } +.variant-cyber .nav-user { border: 1px solid rgba(0,240,255,0.15); } +.variant-cyber .chat-list { background: #05050a; border-right: 1px solid rgba(0,240,255,0.15); } +.variant-cyber .chat-list-title { color: var(--neon-cyan); text-transform: uppercase; letter-spacing: 0.15em; font-size: 11px; } +.variant-cyber .chat-list-title::before { content: "[ "; opacity: 0.5; } +.variant-cyber .chat-list-title::after { content: " ]"; opacity: 0.5; } +.variant-cyber .chat-search { background: #0c0c18; border: 1px solid rgba(0,240,255,0.15); color: var(--fg); } +.variant-cyber .chat-item:hover { background: rgba(0,240,255,0.04); } +.variant-cyber .chat-item.active { background: rgba(0,240,255,0.06); border-left: 2px solid var(--neon-cyan); padding-left: 10px; } +.variant-cyber .chat-item-name { color: var(--fg); } +.variant-cyber .avatar { + background: #0c0c18; + border: 1px solid var(--neon-cyan); + color: var(--neon-cyan); + border-radius: 4px; + font-family: 'JetBrains Mono', monospace; + text-shadow: 0 0 8px rgba(0,240,255,0.5); +} +.variant-cyber .avatar[data-color="violet"] { border-color: var(--neon-magenta); color: var(--neon-magenta); text-shadow: 0 0 8px rgba(255,0,170,0.5); } +.variant-cyber .avatar[data-color="amber"] { border-color: var(--neon-lime); color: var(--neon-lime); text-shadow: 0 0 8px rgba(182,255,61,0.5); } +.variant-cyber .avatar[data-color="rose"] { border-color: #ff5500; color: #ff5500; text-shadow: 0 0 8px rgba(255,85,0,0.5); } +.variant-cyber .avatar[data-color="teal"] { border-color: var(--neon-cyan); color: var(--neon-cyan); } +.variant-cyber .chat-header { background: #05050a; border-bottom: 1px solid rgba(0,240,255,0.15); } +.variant-cyber .chat-header-name { color: var(--neon-cyan); font-family: 'JetBrains Mono', monospace; } +.variant-cyber .chat-header-name::before { content: "@"; opacity: 0.5; } +.variant-cyber .icon-btn { color: var(--neon-cyan); } +.variant-cyber .icon-btn:hover { background: rgba(0,240,255,0.1); } +.variant-cyber .bubble.me { + background: transparent; + color: var(--neon-magenta); + border: 1px solid var(--neon-magenta); + border-radius: 4px; + box-shadow: 0 0 15px rgba(255,0,170,0.15), inset 0 0 15px rgba(255,0,170,0.05); + font-family: 'JetBrains Mono', monospace; + font-size: 13px; +} +.variant-cyber .bubble.them { + background: transparent; + color: var(--neon-cyan); + border: 1px solid var(--neon-cyan); + border-radius: 4px; + box-shadow: 0 0 15px rgba(0,240,255,0.15), inset 0 0 15px rgba(0,240,255,0.05); + font-family: 'JetBrains Mono', monospace; + font-size: 13px; +} +.variant-cyber .bubble .ts { color: rgba(255,255,255,0.4); font-size: 9px; letter-spacing: 0.1em; } +.variant-cyber .reaction { background: #0c0c18; border: 1px solid rgba(0,240,255,0.2); border-radius: 2px; color: var(--neon-lime); } +.variant-cyber .reaction.mine { border-color: var(--neon-lime); box-shadow: 0 0 10px rgba(182,255,61,0.2); } +.variant-cyber .event-pill { background: transparent; border: 1px dashed var(--neon-lime); color: var(--neon-lime); border-radius: 2px; text-transform: uppercase; letter-spacing: 0.1em; font-size: 10px; } +.variant-cyber .event-pill.rejected { border-color: var(--neon-magenta); color: var(--neon-magenta); } +.variant-cyber .composer { background: #05050a; border-top: 1px solid rgba(0,240,255,0.15); } +.variant-cyber .composer-box { background: #0c0c18; border: 1px solid rgba(0,240,255,0.2); border-radius: 4px; } +.variant-cyber .composer-box::before { content: ">"; color: var(--neon-lime); margin-right: 6px; font-weight: bold; } +.variant-cyber .composer-btn { background: var(--neon-lime); color: #05050a; border-radius: 4px; box-shadow: 0 0 15px rgba(182,255,61,0.3); } +.variant-cyber .presence { border-color: #08080f; } + + +/* ================= VARIANT 5: WARM SOFT ================= */ +.variant-warm { + --bg: #f7f2e9; + --bg-2: #efe6d4; + --bg-3: #fdfaf3; + --fg: #3d2e1f; + --fg-muted: #8a7560; + --accent: #c75d3a; + --accent-2: #e8a87c; + --line: rgba(61,46,31,0.1); + background: var(--bg); + color: var(--fg); + font-family: 'Inter', sans-serif; +} +.variant-warm .nav-brand { font-family: 'Fraunces', 'Playfair Display', serif; font-weight: 700; font-size: 20px; letter-spacing: -0.02em; } +.variant-warm .chat-header-name { font-family: 'Fraunces', 'Playfair Display', serif; font-size: 17px; } +.variant-warm .chat-list-title { font-family: 'Fraunces', serif; font-size: 16px; font-weight: 600; } +.variant-warm .app-window { background: var(--bg-3); box-shadow: 0 20px 60px rgba(61,46,31,0.12); border: 1px solid var(--line); } +.variant-warm .window-bar { background: var(--bg-2); border-bottom: 1px solid var(--line); } +.variant-warm .window-bar .title { color: var(--fg-muted); font-weight: 500; } +.variant-warm .top-nav { background: var(--bg-3); border-bottom: 1px solid var(--line); } +.variant-warm .nav-tab { color: var(--fg-muted); font-weight: 500; border-radius: 999px; } +.variant-warm .nav-tab:hover { background: var(--bg-2); color: var(--fg); } +.variant-warm .nav-tab.active { background: var(--accent); color: #fff; } +.variant-warm .nav-user { background: var(--bg-2); border-radius: 999px; } +.variant-warm .chat-list { background: var(--bg-2); } +.variant-warm .chat-search { background: var(--bg-3); border: 1px solid var(--line); color: var(--fg); border-radius: 999px; } +.variant-warm .chat-item { border-radius: 14px; } +.variant-warm .chat-item:hover { background: rgba(255,255,255,0.5); } +.variant-warm .chat-item.active { background: var(--bg-3); box-shadow: 0 2px 8px rgba(61,46,31,0.06); } +.variant-warm .avatar { background: #e8a87c; color: #7c3a1e; font-family: 'Fraunces', serif; font-weight: 700; } +.variant-warm .avatar[data-color="violet"] { background: #bfa4c9; color: #4a2a5c; } +.variant-warm .avatar[data-color="amber"] { background: #e8c87c; color: #5c3e1a; } +.variant-warm .avatar[data-color="rose"] { background: #e8a4a4; color: #5c1e1e; } +.variant-warm .avatar[data-color="teal"] { background: #a4c9bf; color: #1e4a3e; } +.variant-warm .chat-header { background: var(--bg-3); border-bottom: 1px solid var(--line); } +.variant-warm .icon-btn:hover { background: var(--bg-2); } +.variant-warm .messages { background: var(--bg-3); } +.variant-warm .bubble.me { background: var(--accent); color: #fff; border-radius: 20px 20px 6px 20px; } +.variant-warm .bubble.them { background: var(--bg-2); color: var(--fg); border-radius: 20px 20px 20px 6px; } +.variant-warm .reaction { background: var(--bg-2); border: 1px solid var(--line); } +.variant-warm .reaction.mine { background: var(--accent); color: #fff; } +.variant-warm .event-pill { background: var(--bg-2); color: var(--fg-muted); border: 1px solid var(--line); } +.variant-warm .event-pill.rejected { background: rgba(199,93,58,0.1); color: var(--accent); } +.variant-warm .composer { background: var(--bg-3); border-top: 1px solid var(--line); } +.variant-warm .composer-box { background: var(--bg-2); border-radius: 999px; padding-left: 16px; } +.variant-warm .composer-btn { background: var(--accent); color: #fff; border-radius: 50%; } +.variant-warm .presence { border-color: var(--bg-3); } + + +/* ================= VARIANT 6: BRUTAL GAMING ================= */ +.variant-brutal { + --bg: #0d0d0d; + --bg-2: #161616; + --bg-3: #1a1a1a; + --fg: #ffffff; + --fg-muted: #808080; + --lime: #d4ff3d; + --line: #2a2a2a; + background: var(--bg); + color: var(--fg); + font-family: 'Inter', sans-serif; +} +.variant-brutal .nav-brand { + font-family: 'Archivo Black', 'Inter', sans-serif; + font-weight: 900; + font-size: 22px; + text-transform: uppercase; + letter-spacing: -0.03em; +} +.variant-brutal .chat-header-name { font-weight: 800; font-size: 16px; text-transform: uppercase; letter-spacing: -0.01em; } +.variant-brutal .chat-list-title { font-weight: 900; font-size: 18px; text-transform: uppercase; letter-spacing: -0.02em; } +.variant-brutal .app-window { background: var(--bg); border: 2px solid var(--lime); border-radius: 0; box-shadow: 12px 12px 0 var(--lime); } +.variant-brutal .window-bar { background: var(--bg); border-bottom: 2px solid var(--lime); } +.variant-brutal .window-bar .title { color: var(--lime); font-weight: 800; text-transform: uppercase; letter-spacing: 0.1em; font-size: 11px; } +.variant-brutal .top-nav { background: var(--bg); border-bottom: 2px solid var(--line); } +.variant-brutal .nav-tab { color: var(--fg-muted); font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; font-size: 12px; border-radius: 0; border: 2px solid transparent; } +.variant-brutal .nav-tab:hover { color: var(--fg); background: var(--bg-2); } +.variant-brutal .nav-tab.active { background: var(--lime); color: #000; } +.variant-brutal .nav-user { background: var(--bg-2); border: 2px solid var(--line); border-radius: 0; } +.variant-brutal .chat-list { background: var(--bg); border-right: 2px solid var(--line); } +.variant-brutal .chat-search { background: var(--bg-2); border: 2px solid var(--line); color: var(--fg); border-radius: 0; font-weight: 500; } +.variant-brutal .chat-item { border-radius: 0; border-left: 4px solid transparent; } +.variant-brutal .chat-item:hover { background: var(--bg-2); } +.variant-brutal .chat-item.active { background: var(--bg-2); border-left-color: var(--lime); } +.variant-brutal .chat-item-name { font-weight: 800; text-transform: uppercase; font-size: 13px; letter-spacing: -0.01em; } +.variant-brutal .avatar { background: var(--lime); color: #000; border-radius: 0; font-weight: 900; font-family: 'Archivo Black', sans-serif; } +.variant-brutal .avatar[data-color="violet"] { background: #a78bfa; } +.variant-brutal .avatar[data-color="amber"] { background: #fbbf24; } +.variant-brutal .avatar[data-color="rose"] { background: #fb7185; } +.variant-brutal .avatar[data-color="teal"] { background: #2dd4bf; } +.variant-brutal .chat-header { background: var(--bg); border-bottom: 2px solid var(--line); } +.variant-brutal .icon-btn { border-radius: 0; border: 2px solid var(--line); } +.variant-brutal .icon-btn:hover { background: var(--lime); color: #000; border-color: var(--lime); } +.variant-brutal .bubble.me { background: var(--lime); color: #000; border-radius: 0; font-weight: 600; border: 2px solid #000; box-shadow: 4px 4px 0 #fff; } +.variant-brutal .bubble.them { background: var(--fg); color: #000; border-radius: 0; font-weight: 600; border: 2px solid var(--fg); box-shadow: 4px 4px 0 var(--lime); } +.variant-brutal .bubble .ts { color: rgba(0,0,0,0.6); font-weight: 700; font-size: 10px; text-transform: uppercase; } +.variant-brutal .reaction { background: var(--bg-2); border: 2px solid var(--line); border-radius: 0; font-weight: 700; } +.variant-brutal .reaction.mine { background: var(--lime); color: #000; border-color: var(--lime); } +.variant-brutal .event-pill { background: var(--bg-2); border: 2px solid var(--line); border-radius: 0; text-transform: uppercase; letter-spacing: 0.05em; font-weight: 800; font-size: 11px; } +.variant-brutal .event-pill.rejected { border-color: #fb7185; color: #fb7185; } +.variant-brutal .composer { background: var(--bg); border-top: 2px solid var(--line); } +.variant-brutal .composer-box { background: var(--bg-2); border: 2px solid var(--line); border-radius: 0; } +.variant-brutal .composer-btn { background: var(--lime); color: #000; border-radius: 0; font-weight: 900; } +.variant-brutal .presence { border-color: var(--bg); border-width: 3px; } + +/* Profile card & call overlay — inherit from variant */ +.variant-clean .profile-card { background: #fff; border: 1px solid var(--line); } +.variant-clean .profile-card-banner { background: linear-gradient(135deg, #e5e5e5, #d4d4d4); } +.variant-clean .profile-card-avatar { border-color: #fff; } +.variant-clean .profile-card-meta { border-top-color: var(--line); color: var(--fg-muted); } +.variant-clean .call-overlay { background: #fff; border: 1px solid var(--line); color: var(--fg); } + +.variant-playful .profile-card { background: linear-gradient(180deg, #2a1a48, #1a1625); border: 1px solid rgba(255,255,255,0.08); } +.variant-playful .profile-card-banner { background: linear-gradient(135deg, #a78bfa, #f472b6); } +.variant-playful .profile-card-avatar { border-color: #2a1a48; } +.variant-playful .call-overlay { background: linear-gradient(135deg, #2a1a48, #1a1625); border: 1px solid rgba(167,139,250,0.3); } + +.variant-y2k .profile-card { background: rgba(255,255,255,0.08); backdrop-filter: blur(30px); border: 1px solid rgba(255,255,255,0.15); } +.variant-y2k .profile-card-banner { background: linear-gradient(135deg, #c4b5fd, #f9a8d4); } +.variant-y2k .profile-card-avatar { border-color: #1a1a2e; } +.variant-y2k .call-overlay { background: rgba(255,255,255,0.08); backdrop-filter: blur(30px); border: 1px solid rgba(255,255,255,0.15); } + +.variant-cyber .profile-card { background: #0c0c18; border: 1px solid var(--neon-cyan); box-shadow: 0 0 30px rgba(0,240,255,0.2); } +.variant-cyber .profile-card-banner { background: repeating-linear-gradient(90deg, #00f0ff, #00f0ff 2px, transparent 2px, transparent 8px), linear-gradient(135deg, #ff00aa 0%, #00f0ff 100%); } +.variant-cyber .profile-card-avatar { border-color: #0c0c18; border-radius: 4px; } +.variant-cyber .call-overlay { background: #0c0c18; border: 1px solid var(--neon-lime); box-shadow: 0 0 30px rgba(182,255,61,0.2); } + +.variant-warm .profile-card { background: var(--bg-3); border: 1px solid var(--line); color: var(--fg); } +.variant-warm .profile-card-banner { background: linear-gradient(135deg, #e8a87c, #c75d3a); } +.variant-warm .profile-card-avatar { border-color: var(--bg-3); } +.variant-warm .profile-card-meta { border-top-color: var(--line); } +.variant-warm .call-overlay { background: var(--bg-3); border: 1px solid var(--line); color: var(--fg); } + +.variant-brutal .profile-card { background: var(--bg); border: 2px solid var(--lime); border-radius: 0; box-shadow: 8px 8px 0 var(--lime); } +.variant-brutal .profile-card-banner { background: var(--lime); } +.variant-brutal .profile-card-avatar { border-color: var(--bg); border-radius: 0; border-width: 3px; } +.variant-brutal .profile-card-meta { border-top-color: var(--line); } +.variant-brutal .call-overlay { background: var(--bg); border: 2px solid var(--lime); border-radius: 0; box-shadow: 6px 6px 0 var(--lime); } + + +/* Typing indicator */ +.typing { display: inline-flex; gap: 3px; padding: 4px 2px; } +.typing span { width: 6px; height: 6px; border-radius: 50%; background: currentColor; opacity: 0.4; animation: typingDot 1.3s infinite; } +.typing span:nth-child(2) { animation-delay: 0.15s; } +.typing span:nth-child(3) { animation-delay: 0.3s; } +@keyframes typingDot { + 0%, 60%, 100% { transform: translateY(0); opacity: 0.4; } + 30% { transform: translateY(-4px); opacity: 1; } +} + +/* Tweaks panel */ +.tweaks-panel { + position: fixed; + bottom: 20px; + right: 20px; + width: 280px; + background: rgba(20,20,24,0.95); + backdrop-filter: blur(20px); + border: 1px solid rgba(255,255,255,0.1); + border-radius: 14px; + padding: 16px; + z-index: 200; + color: #fff; + font-family: 'Inter', system-ui, sans-serif; + box-shadow: 0 20px 50px rgba(0,0,0,0.5); + display: none; +} +.tweaks-panel.open { display: block; } +.tweaks-panel h3 { font-size: 12px; text-transform: uppercase; letter-spacing: 0.1em; opacity: 0.7; margin-bottom: 14px; font-weight: 600; } +.tweaks-row { margin-bottom: 12px; } +.tweaks-row label { display: block; font-size: 11px; opacity: 0.6; margin-bottom: 6px; } +.tweaks-row input[type="color"] { width: 100%; height: 34px; border-radius: 8px; background: transparent; border: 1px solid rgba(255,255,255,0.1); cursor: pointer; } +.tweaks-row input[type="range"] { width: 100%; } +.tweaks-row select { width: 100%; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1); color: #fff; padding: 8px; border-radius: 8px; font-size: 12px; } diff --git a/packages/shared/src/chat/convKeys.ts b/packages/shared/src/chat/convKeys.ts index 28421b2..8b2b01b 100644 --- a/packages/shared/src/chat/convKeys.ts +++ b/packages/shared/src/chat/convKeys.ts @@ -126,9 +126,17 @@ async function fetchKeyBundle( }; } +// Strips the leading `\x` postgres bytea hex prefix so the RPC's +// `decode(text, 'hex')` accepts it. +function hexNoPrefix(bytes: Uint8Array): string { + return bytesToPgHex(bytes).slice(2); +} + // Bootstraps a brand-new conv-key, wrapping it for every member device that // currently exists (including the caller's own devices). Used the first time -// a conversation needs a key, or when rotation is requested. +// a conversation needs a key, or when rotation is requested. All inserts go +// through `share_conv_keys` (SECURITY DEFINER) — silently skips invalid +// recipients, no per-row 403 console spam. export async function bootstrapConvKey( client: AppSupabaseClient, conversationId: string, @@ -141,29 +149,23 @@ export async function bootstrapConvKey( throw new Error('cannot bootstrap conv key — no recipient devices'); } - const rows: Array<{ - conversation_id: string; - recipient_device_id: string; - key_version: number; - sender_device_id: string; - encrypted_key: string; - nonce: string; - }> = []; + const bundles: Array<{ recipient_device_id: string; encrypted_key: string; nonce: string }> = []; for (const r of recipients) { const wrapped = await wrapConvKeyForRecipient(convKey, r.publicKey, own.privateKey); - rows.push({ - conversation_id: conversationId, + bundles.push({ recipient_device_id: r.deviceId, - key_version: keyVersion, - sender_device_id: own.deviceId, - encrypted_key: bytesToPgHex(wrapped.ciphertext), - nonce: bytesToPgHex(wrapped.nonce), + encrypted_key: hexNoPrefix(wrapped.ciphertext), + nonce: hexNoPrefix(wrapped.nonce), }); } - const { error } = await rawFrom(client, 'conversation_keys').upsert(rows, { - onConflict: 'conversation_id,recipient_device_id,key_version', - ignoreDuplicates: true, + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const rpc = (client as unknown as { rpc: (n: string, p: object) => Promise<{ error: any }> }).rpc; + const { error } = await rpc.call(client, 'share_conv_keys', { + p_conv_id: conversationId, + p_sender_device_id: own.deviceId, + p_key_version: keyVersion, + p_bundles: bundles, }); if (error) throw error; @@ -265,20 +267,20 @@ export async function shareConvKeyToDevice( recipientPublicKey, own.privateKey, ); - const { error } = await rawFrom(client, 'conversation_keys').upsert( - { - conversation_id: conversationId, - recipient_device_id: recipientDeviceId, - key_version: version, - sender_device_id: own.deviceId, - encrypted_key: bytesToPgHex(wrapped.ciphertext), - nonce: bytesToPgHex(wrapped.nonce), - }, - { - onConflict: 'conversation_id,recipient_device_id,key_version', - ignoreDuplicates: true, - }, - ); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const rpc = (client as unknown as { rpc: (n: string, p: object) => Promise<{ error: any }> }).rpc; + const { error } = await rpc.call(client, 'share_conv_keys', { + p_conv_id: conversationId, + p_sender_device_id: own.deviceId, + p_key_version: version, + p_bundles: [ + { + recipient_device_id: recipientDeviceId, + encrypted_key: hexNoPrefix(wrapped.ciphertext), + nonce: hexNoPrefix(wrapped.nonce), + }, + ], + }); if (error) throw error; } diff --git a/supabase/migrations/20260419000002_share_conv_key_rpc.sql b/supabase/migrations/20260419000002_share_conv_key_rpc.sql new file mode 100644 index 0000000..f1ef228 --- /dev/null +++ b/supabase/migrations/20260419000002_share_conv_key_rpc.sql @@ -0,0 +1,109 @@ +-- 1) Test-Daten-Wipe: alle conversation/message Daten weg, User+Devices+ +-- Friendships+Invites bleiben erhalten so dass bestehende Logins weiter +-- funktionieren. Cascade räumt mitlaufende rows (envelopes, attachments, +-- reactions, reads, conversation_keys, conversation_members). + +truncate + public.message_reactions, + public.message_reads, + public.message_attachments, + public.messages, + public.conversation_keys, + public.conversation_members, + public.conversations + restart identity cascade; + +-- 2) RPC: share conv-key bundles to multiple recipients atomically. +-- Runs as SECURITY DEFINER so RLS doesn't reject individual rows. The +-- function itself enforces the same invariants as the policy. This avoids +-- the per-row 403 console spam we got with direct inserts. + +create or replace function public.share_conv_keys( + p_conv_id uuid, + p_sender_device_id uuid, + p_key_version int, + p_bundles jsonb +) returns int +language plpgsql +security definer +set search_path = public +as $$ +declare + caller uuid := auth.uid(); + bundle jsonb; + recipient_user_id uuid; + inserted int := 0; + recipient_did uuid; + enc_key_hex text; + nonce_hex text; +begin + if caller is null then + raise exception 'not authenticated'; + end if; + + -- Caller must be an accepted member of the conversation. + if not exists ( + select 1 + from public.conversation_members + where conversation_id = p_conv_id + and user_id = caller + and accepted = true + ) then + raise exception 'caller is not an accepted member of %', p_conv_id; + end if; + + -- Sender device must belong to the caller. + if not exists ( + select 1 + from public.devices + where id = p_sender_device_id + and user_id = caller + ) then + raise exception 'sender_device % not owned by caller', p_sender_device_id; + end if; + + -- Iterate bundles and only insert ones whose recipient is a current + -- accepted member. Silently skip otherwise (no error → no 403 noise). + for bundle in + select * from jsonb_array_elements(p_bundles) + loop + recipient_did := (bundle->>'recipient_device_id')::uuid; + enc_key_hex := bundle->>'encrypted_key'; + nonce_hex := bundle->>'nonce'; + + select user_id + into recipient_user_id + from public.devices + where id = recipient_did; + if recipient_user_id is null then continue; end if; + + if not exists ( + select 1 + from public.conversation_members + where conversation_id = p_conv_id + and user_id = recipient_user_id + and accepted = true + ) then continue; end if; + + insert into public.conversation_keys + (conversation_id, recipient_device_id, key_version, + sender_device_id, encrypted_key, nonce) + values + (p_conv_id, recipient_did, p_key_version, + p_sender_device_id, + decode(enc_key_hex, 'hex'), + decode(nonce_hex, 'hex')) + on conflict (conversation_id, recipient_device_id, key_version) + do nothing; + + if found then + inserted := inserted + 1; + end if; + end loop; + + return inserted; +end; +$$; + +revoke execute on function public.share_conv_keys(uuid, uuid, int, jsonb) from public, anon; +grant execute on function public.share_conv_keys(uuid, uuid, int, jsonb) to authenticated; diff --git a/supabase/migrations/20260419000003_profile_avatars.sql b/supabase/migrations/20260419000003_profile_avatars.sql new file mode 100644 index 0000000..aced641 --- /dev/null +++ b/supabase/migrations/20260419000003_profile_avatars.sql @@ -0,0 +1,54 @@ +-- Profile-Avatar storage bucket. +-- +-- Layout: /.webp +-- Public read so peers can see each other's avatar without auth roundtrip +-- (avatars are non-sensitive). Write/update/delete restricted to the owning +-- user via path prefix matching their auth.uid(). + +insert into storage.buckets (id, name, public) +values ('profile-avatars', 'profile-avatars', true) +on conflict (id) do nothing; + +-- Read: anyone authenticated can view any avatar (public bucket also lets +-- unauth fetch by URL but our RLS keeps the table-level policy explicit). +drop policy if exists profile_avatars_select on storage.objects; +create policy profile_avatars_select + on storage.objects + for select + to authenticated, anon + using (bucket_id = 'profile-avatars'); + +-- Write only into your own folder (first path segment must equal auth.uid()). +drop policy if exists profile_avatars_insert_own on storage.objects; +create policy profile_avatars_insert_own + on storage.objects + for insert + to authenticated + with check ( + bucket_id = 'profile-avatars' + and (storage.foldername(name))[1] = auth.uid()::text + ); + +drop policy if exists profile_avatars_update_own on storage.objects; +create policy profile_avatars_update_own + on storage.objects + for update + to authenticated + using ( + bucket_id = 'profile-avatars' + and (storage.foldername(name))[1] = auth.uid()::text + ) + with check ( + bucket_id = 'profile-avatars' + and (storage.foldername(name))[1] = auth.uid()::text + ); + +drop policy if exists profile_avatars_delete_own on storage.objects; +create policy profile_avatars_delete_own + on storage.objects + for delete + to authenticated + using ( + bucket_id = 'profile-avatars' + and (storage.foldername(name))[1] = auth.uid()::text + );