diff --git a/frontend/app.tsx b/frontend/app.tsx index 994695f1a..1a918447e 100644 --- a/frontend/app.tsx +++ b/frontend/app.tsx @@ -5,6 +5,7 @@ import { atomWithObservable } from "jotai/utils"; import { Greet } from "./bindings/main/GreetService.js"; import { Events } from "@wailsio/runtime"; import * as rx from "rxjs"; +import { clsx } from "clsx"; import "/public/style.less"; @@ -30,6 +31,41 @@ const App = () => { ); }; +const Tabs = () => { + return ( +
+
Tab 1
+
Tab 2
+
Tab 3
+
+ ); +}; + +const Block = () => { + return ( +
+
Block Content
+
+ ); +}; + +const TabContent = () => { + return ( +
+ +
+ ); +}; + +const Workspace = () => { + return ( +
+ + +
+ ); +}; + const AppInner = () => { const [name, setName] = jotai.useAtom(nameAtom); const [result, setResult] = jotai.useAtom(resultAtom); @@ -53,19 +89,9 @@ const AppInner = () => { } return ( -
-

Hello Wails!

- setName(e.target.value)} - onKeyDown={handleKeyDown} - placeholder="Your name" - /> - -
{result}
-
{timeVal}
-
Counter: {counterVal}
+
+
+
); }; diff --git a/frontend/package.json b/frontend/package.json index 768d16fb6..901d7d99a 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -15,6 +15,7 @@ "vite": "^5.0.0" }, "dependencies": { + "clsx": "^2.1.1", "jotai": "^2.8.0", "react": "^18.3.1", "react-dom": "^18.3.1", diff --git a/frontend/public/style.less b/frontend/public/style.less index e50f8a78d..590efa8aa 100644 --- a/frontend/public/style.less +++ b/frontend/public/style.less @@ -3,7 +3,77 @@ @import "./reset.less"; -#main { - margin-top: 50px; - padding: 20px; +:root { + --main-bg-color: #000000; + --border-color: #333333; + --main-color: #f7f7f7; + --base-font: normal 15px / normal "Lato", sans-serif; +} + +body { + display: flex; + flex-direction: row; + width: 100vw; + height: 100vh; + background-color: var(--main-bg-color); + color: var(--main-color); + font: var(--base-font); +} + +#main, +.mainapp { + display: flex; + flex-direction: column; + width: 100%; + height: 100%; +} + +.titlebar { + height: 35px; + border-bottom: 1px solid var(--border-color); +} + +.workspace { + display: flex; + flex-direction: column; + width: 100%; + height: 100%; +} + +.tabs { + display: flex; + flex-direction: row; + height: 35px; + border-bottom: 1px solid var(--border-color); + + .tab { + display: flex; + justify-content: center; + align-items: center; + width: 100px; + height: 100%; + border-right: 1px solid var(--border-color); + cursor: pointer; + &.active { + background-color: var(--border-color); + } + } +} + +.tabcontent { + display: flex; + flex-direction: row; + height: 100%; + width: 100%; + align-items: center; + justify-content: center; +} + +.block { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + width: 100%; + height: 100%; } diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 1c4d91c36..b9fd8c826 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -209,6 +209,11 @@ dependencies: nanoid "^5.0.7" +clsx@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.1.1.tgz#eed397c9fd8bd882bfb18deab7102049a2f32999" + integrity sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA== + copy-anything@^2.0.1: version "2.0.6" resolved "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz"