@@ -61,31 +61,36 @@ function App() {
6161
6262 return (
6363 < ToastProvider position = "bottom-right" >
64- < div className = "min-h-screen flex flex-col bg-background" >
64+ < div className = "flex flex-col bg-background h-screen overflow-hidden " >
6565 < LoadingOverlay isVisible = { compiler . isLoading } />
6666
67+ { /* Sticky Header */ }
6768 < Header
6869 onRun = { handleRun }
6970 onShare = { handleShare }
7071 isCompiling = { compiler . status === 'compiling' }
7172 />
7273
73- < div className = "flex-1 grid grid-cols-1 md:grid-cols-2 min-h-0" >
74+ { /* Main content area - fills remaining space */ }
75+ < div className = "flex-1 grid grid-cols-1 md:grid-cols-2 min-h-0 overflow-hidden" >
7476 { /* Editor Panel */ }
75- < div className = "flex flex-col border-r border-border min-h-0" >
76- < div className = "px-4 py-2.5 bg-card flex justify-between items-center border-b border-border" >
77- < span className = "font-medium text-sm text-foreground" > FratmScript</ span >
77+ < div className = "flex flex-col border-border border-r min-h-0 overflow-hidden" >
78+ { /* Sticky panel header */ }
79+ < div className = "flex justify-between items-center bg-card px-4 py-2.5 border-border border-b shrink-0" >
80+ < span className = "font-medium text-muted-foreground text-sm" > JavaScript ma comme si deve</ span >
7881 < Badge variant = "outline" > v{ compiler . version } </ Badge >
7982 </ div >
80- < div className = "flex-1 min-h-0 bg-background" >
83+ { /* Scrollable editor */ }
84+ < div className = "flex-1 bg-background min-h-0 overflow-auto" >
8185 < Editor
8286 value = { code }
8387 onChange = { setCode }
8488 onRun = { handleRun }
8589 />
8690 </ div >
87- < div className = "px-4 py-2.5 bg-card border-t border-border flex items-center gap-3" >
88- < label className = "text-xs text-muted-foreground" > Examples:</ label >
91+ { /* Sticky examples bar */ }
92+ < div className = "flex items-center gap-3 bg-card px-4 py-2.5 border-border border-t shrink-0" >
93+ < label className = "text-muted-foreground text-xs" > Examples:</ label >
8994 < NativeSelect
9095 value = { selectedExample }
9196 onChange = { handleExampleChange }
@@ -103,11 +108,13 @@ function App() {
103108 </ div >
104109
105110 { /* Output Panel */ }
106- < div className = "flex flex-col min-h-0" >
107- < div className = "px-4 py-2.5 bg-card flex items-center border-b border-border" >
108- < span className = "font-medium text-sm text-foreground" > Output</ span >
111+ < div className = "flex flex-col min-h-0 overflow-hidden" >
112+ { /* Sticky output header */ }
113+ < div className = "flex items-center bg-card px-4 py-2.5 border-border border-b shrink-0" >
114+ < span className = "font-medium text-foreground text-sm" > Output</ span >
109115 </ div >
110- < div className = "flex-1 min-h-0 bg-background overflow-auto" >
116+ { /* Scrollable output content */ }
117+ < div className = "flex-1 bg-background min-h-0 overflow-auto" >
111118 < OutputPanel
112119 jsOutput = { compiler . jsOutput }
113120 consoleLogs = { compiler . consoleLogs }
@@ -117,6 +124,7 @@ function App() {
117124 </ div >
118125 </ div >
119126
127+ { /* Sticky StatusBar */ }
120128 < StatusBar
121129 status = { compiler . status }
122130 statusText = { compiler . statusText }
0 commit comments