diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index edac050..05651a8 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -80,7 +80,7 @@ export default function App() { if (!identified && !loadingPrefs) { const savedId = localStorage.getItem('kira-user-id'); if (!savedId) { - return ; + return ; } // Has saved ID but not identified yet — show welcome with their name return ( @@ -121,37 +121,29 @@ export default function App() { - {/* Main grid */} -
+ {/* Hero: Avatar centered, ~1/3 of viewport */} +
+
+ +
+
+ + {/* Tools grid below the avatar */} +
- {/* Column 1: Kira + Clock */} -
- - -
- - {/* Column 2: Timer + Music + Notes + WhiteNoise */} -
- - - - -
- - {/* Column 3: Chat + Text Input */} + {/* Column 1: Chat + Text Input */}
{/* Text input fallback */}
- {/* Subtle greeting */}
hey {userName} ✨
@@ -174,8 +166,21 @@ export default function App() {
- {/* Column 4: Cats + Wardrobe */} + {/* Column 2: Timer + Music */}
+ + +
+ + {/* Column 3: Notes + White Noise */} +
+ + +
+ + {/* Column 4: Cats + Wardrobe + Clock */} +
+
diff --git a/frontend/src/components/KiraAvatar.tsx b/frontend/src/components/KiraAvatar.tsx index cd6db08..447d701 100644 --- a/frontend/src/components/KiraAvatar.tsx +++ b/frontend/src/components/KiraAvatar.tsx @@ -55,8 +55,9 @@ export default function KiraAvatar(props: Props) { // Cast needed due to pixi-live2d-display expecting older Ticker type (Live2DModel as any).registerTicker(Ticker as any); - // Responsive sizing - const size = Math.min(container.clientWidth || 260, 260); + // Responsive sizing — fill the container, target ~1/3 viewport + const containerW = container.clientWidth || 400; + const size = Math.min(containerW, 500); const app = new Application({ width: size, height: size * 1.25, @@ -198,12 +199,12 @@ export default function KiraAvatar(props: Props) { }, [props.accessory, live2dReady]); return ( -
+
{/* Live2D canvas */}
{/* SVG fallback */}