From 6bbdbac23beb5d165f63c28b6017dc5d7f1fa632 Mon Sep 17 00:00:00 2001 From: "soroush.asadi" Date: Fri, 5 Jun 2026 10:07:51 +0330 Subject: [PATCH] UNO-style UX rollout: Lobby, Matchmaking, Profile - Lobby: the two hero actions (random / create room) are now tactile press-3d rounded-3xl with tinted icon chips. - Matchmaking: seat slots use the Avatar frame with a gold border when filled (dashed placeholder when empty + spring pop-in); cancel/start/upgrade buttons are tactile. - Profile: added a level badge on the avatar (casual-game style). Verified: tsc + next build clean; web rebuilt :1500. Co-Authored-By: Claude Opus 4.8 --- src/components/screens/MatchmakingScreen.tsx | 22 +++++++++++++------- src/components/screens/OnlineLobbyScreen.tsx | 14 ++++++------- src/components/screens/ProfileScreen.tsx | 4 ++++ 3 files changed, 24 insertions(+), 16 deletions(-) diff --git a/src/components/screens/MatchmakingScreen.tsx b/src/components/screens/MatchmakingScreen.tsx index 25ef53f..d2af51b 100644 --- a/src/components/screens/MatchmakingScreen.tsx +++ b/src/components/screens/MatchmakingScreen.tsx @@ -4,13 +4,13 @@ import { AnimatePresence, motion } from "framer-motion"; import { Crown, Loader2 } from "lucide-react"; import { useEffect } from "react"; import { ScreenShell } from "@/components/online/ScreenHeader"; +import { Avatar } from "@/components/online/Avatar"; import { useGameStore } from "@/lib/game-store"; import { useOnlineStore } from "@/lib/online-store"; import { useSessionStore } from "@/lib/session-store"; import { useUIStore } from "@/lib/ui-store"; import { useI18n } from "@/lib/i18n"; import { getService } from "@/lib/online/service"; -import { avatarEmoji } from "@/lib/online/types"; export function MatchmakingScreen() { const { t } = useI18n(); @@ -70,7 +70,7 @@ export function MatchmakingScreen() {
{ready && ( @@ -156,7 +162,7 @@ export function MatchmakingScreen() { initial={{ scale: 0.8, opacity: 0 }} animate={{ scale: 1, opacity: 1 }} onClick={enter} - className="btn-gold rounded-xl px-8 py-3 text-lg" + className="press-3d btn-gold rounded-2xl px-8 py-3 text-lg" > {t("mm.start")} diff --git a/src/components/screens/OnlineLobbyScreen.tsx b/src/components/screens/OnlineLobbyScreen.tsx index e6c27f6..ae25ed7 100644 --- a/src/components/screens/OnlineLobbyScreen.tsx +++ b/src/components/screens/OnlineLobbyScreen.tsx @@ -112,12 +112,11 @@ export function OnlineLobbyScreen() {
- + @@ -131,12 +130,11 @@ export function OnlineLobbyScreen() { - + diff --git a/src/components/screens/ProfileScreen.tsx b/src/components/screens/ProfileScreen.tsx index 3af979c..dceb252 100644 --- a/src/components/screens/ProfileScreen.tsx +++ b/src/components/screens/ProfileScreen.tsx @@ -69,6 +69,10 @@ export function ProfileScreen() {
+ {/* level badge */} + + {t("common.level")} {profile.level} +