diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 0486b88..6d38e25 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -1,5 +1,6 @@ import { Routes, Route, Navigate } from 'react-router-dom' import DrawIt from './pages/DrawIt' +import ExpandIt from './pages/ExpandIt' import GenerateIt from './pages/GenerateIt' import Login from './pages/Login' import { useAuth } from './context/AuthContext' @@ -19,6 +20,7 @@ export default function App() { } /> } /> } /> + } /> ) diff --git a/frontend/src/components/Topbar.tsx b/frontend/src/components/Topbar.tsx index 61c9ed3..96e8d05 100644 --- a/frontend/src/components/Topbar.tsx +++ b/frontend/src/components/Topbar.tsx @@ -35,7 +35,7 @@ const CrosshairIcon = () => ( ) interface TopbarProps { - page: 'draw' | 'generate' + page: 'draw' | 'generate' | 'expand' center?: ReactNode } @@ -66,6 +66,12 @@ export default function Topbar({ page, center }: TopbarProps) { > Generieren + {center &&
{center}
} diff --git a/frontend/src/index.css b/frontend/src/index.css index 81b202a..09c4545 100644 --- a/frontend/src/index.css +++ b/frontend/src/index.css @@ -1150,6 +1150,60 @@ select:focus { .status.ok { color: var(--success); } .status.error { color: var(--danger); } +/* ===================================================== + EXPAND PAGE + ===================================================== */ +.expand-page { + flex: 1; + min-height: 0; + background: var(--canvas-bg); + overflow: auto; + padding: 28px; +} + +.expand-panel { + width: min(920px, 100%); + height: min(680px, 100%); + min-height: 420px; + margin: 0 auto; + display: flex; + flex-direction: column; + gap: 14px; +} + +.expand-toolbar { + display: flex; + align-items: center; + justify-content: flex-start; +} + +.expand-mode-group { + width: 280px; +} + +.expand-textarea { + flex: 1; + width: 100%; + min-height: 320px; + resize: vertical; + padding: 14px 16px; + background: var(--surface); + border: 1px solid var(--border); + border-radius: var(--r-md); + box-shadow: var(--shadow-sm); + color: var(--text-1); + font-family: var(--font); + font-size: 14px; + line-height: 1.6; + outline: none; + transition: border-color 0.15s, box-shadow 0.15s; +} + +.expand-textarea:focus { + border-color: var(--primary); + box-shadow: 0 0 0 3px rgba(92,108,246,.12), var(--shadow-sm); +} + /* ===================================================== AUTH / LOGIN PAGE ===================================================== */ diff --git a/frontend/src/pages/ExpandIt.tsx b/frontend/src/pages/ExpandIt.tsx new file mode 100644 index 0000000..babd511 --- /dev/null +++ b/frontend/src/pages/ExpandIt.tsx @@ -0,0 +1,50 @@ +import { useState } from 'react' +import Topbar from '../components/Topbar' + +type ExpandMode = 'category' | 'words' + +export default function ExpandIt() { + const [mode, setMode] = useState('category') + const [input, setInput] = useState('') + + return ( +
+ + +
+
+
+
+ + +
+
+ +