diff --git a/frontend/src/App.svelte b/frontend/src/App.svelte
index 4944ec4..17e0ee9 100644
--- a/frontend/src/App.svelte
+++ b/frontend/src/App.svelte
@@ -1,116 +1,60 @@
-
+
diff --git a/frontend/src/components/StatusPanel.svelte b/frontend/src/components/StatusPanel.svelte
index c1bdd68..ec0bdb9 100644
--- a/frontend/src/components/StatusPanel.svelte
+++ b/frontend/src/components/StatusPanel.svelte
@@ -1,66 +1,60 @@
-
+
-
- Status
- {status}
-
-
- Uptime
- {uptime}
-
-
- QR-codes found
- {qrCodesFound}
-
-
- Link
- Click here! (2 s)
-
+
+ Status
+ {$status}
+
+
+ Uptime
+ {$uptime}
+
+
+ QR-codes found
+ {$qrCodesFound}
+
+
+ Link
+ Click here! (2 s)
+
diff --git a/frontend/src/components/Tabs.svelte b/frontend/src/components/Tabs.svelte
index 8d41f82..36e0978 100644
--- a/frontend/src/components/Tabs.svelte
+++ b/frontend/src/components/Tabs.svelte
@@ -1,31 +1,27 @@
-
+
- {#each tabs as tab}
-
- {/each}
+ {#each TABS as tab}
+
+ {/each}
diff --git a/frontend/src/components/Terminal.svelte b/frontend/src/components/Terminal.svelte
index 7407b53..1ee7004 100644
--- a/frontend/src/components/Terminal.svelte
+++ b/frontend/src/components/Terminal.svelte
@@ -1,6 +1,7 @@
-
+
- {#each terminalLines as line}
+ {#each $terminalLines as line}
{line}
{/each}
@@ -62,13 +68,11 @@
background-color: var(--bg-secondary);
border: 1px solid var(--border-color);
border-radius: var(--border-radius-sm);
- margin: 20px;
- margin-top: auto;
- height: 200px; /* Default height */
+ margin: var(--spacing-lg);
+ height: 200px;
position: relative;
display: flex;
flex-direction: column;
- resize: vertical;
overflow: hidden;
}
@@ -90,7 +94,7 @@
}
.resize-handle:hover {
- background-color: var(--accent-color);
+ background-color: var(--accent-primary);
}
.terminal-header {
@@ -109,13 +113,10 @@
font-size: 0.75rem;
line-height: 1.4;
color: var(--text-primary);
- flex-grow: 1;
+ flex: 1;
overflow-y: auto;
- white-space: nowrap;
+ white-space: pre-wrap;
user-select: text;
- -webkit-user-select: text;
- -moz-user-select: text;
- -ms-user-select: text;
}
.terminal-line {
diff --git a/frontend/src/constants/theme.js b/frontend/src/constants/theme.js
new file mode 100644
index 0000000..f510aea
--- /dev/null
+++ b/frontend/src/constants/theme.js
@@ -0,0 +1,41 @@
+export const THEME = {
+ colors: {
+ bg: {
+ primary: '#1c1c1c',
+ secondary: '#121212',
+ header: '#811A10'
+ },
+ accent: {
+ primary: '#a02c2c',
+ secondary: '#7a2727'
+ },
+ text: {
+ primary: '#ebebeb',
+ secondary: 'rgba(235, 235, 235, 0.7)',
+ dim: 'rgba(235, 235, 235, 0.5)'
+ },
+ status: {
+ success: '#a0662c',
+ warning: '#2ca02c',
+ error: '#2ca0a0'
+ },
+ border: 'rgba(0, 0, 0, 0.26)'
+ },
+ spacing: {
+ xs: '4px',
+ sm: '8px',
+ md: '12px',
+ lg: '16px',
+ xl: '24px'
+ },
+ borderRadius: {
+ sm: '10px',
+ md: '6px',
+ lg: '8px'
+ },
+ shadows: {
+ sm: '0 1px 1px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24)',
+ md: '0 3px 3px rgba(0, 0, 0, 0.16), 0 3px 3px rgba(0, 0, 0, 0.23)',
+ lg: '0 14px 14px rgba(0, 0, 0, 0.25), 0 10px 5px rgba(0, 0, 0, 0.22)'
+ }
+};
diff --git a/frontend/src/stores/appStore.js b/frontend/src/stores/appStore.js
new file mode 100644
index 0000000..25e22b8
--- /dev/null
+++ b/frontend/src/stores/appStore.js
@@ -0,0 +1,20 @@
+import { writable } from 'svelte/store';
+
+// App state
+export const activeTab = writable('overview');
+export const status = writable('Looking for QR-codes');
+export const uptime = writable('1h 12m 15s');
+export const qrCodesFound = writable(12);
+export const isOnline = writable(true);
+export const terminalLines = writable([
+ 'Window()',
+ '[Fx] INVOKE main.main.func1()',
+ '[Fx] BEFORE RUN provide: git.weirdcat.su/weirdcat/auto-attendance/internal/ui.NewBuilder()',
+ '[Fx] RUN provide: git.weirdcat.su/weirdcat/auto-attendance/internal/ui.NewBuilder() in 46.723905ms',
+]);
+
+// Constants
+export const TABS = [
+ { id: 'overview', label: 'Overview' },
+ { id: 'settings', label: 'Settings' }
+];