From f6262fa721c666501e1b263818b64558783a9dc1 Mon Sep 17 00:00:00 2001 From: rednakse Date: Wed, 1 Apr 2026 23:12:35 +0300 Subject: [PATCH] style: simplify panel to minimalist layout --- docs/PLAN.md | 1 + src/App.test.tsx | 2 +- src/App.tsx | 39 +++--- src/app.css | 334 ++++++++++++++++++++++------------------------- 4 files changed, 170 insertions(+), 206 deletions(-) diff --git a/docs/PLAN.md b/docs/PLAN.md index a0a6f9d..3ecc726 100644 --- a/docs/PLAN.md +++ b/docs/PLAN.md @@ -18,3 +18,4 @@ Updated: 2026-04-01 2. Initialized the repository and established autonomous agent workflow rules. 3. Implemented the first UI slice with hardcoded panel auth, operator-focused dashboard, users table, and system config preview. 4. Added paranoia-oriented tests for login gating, proxy link encoding, quota edge cases, and traffic share formatting. +5. Simplified the UI into a calmer minimalist layout with reduced visual noise and denser operational presentation. diff --git a/src/App.test.tsx b/src/App.test.tsx index faa01cf..1db8154 100644 --- a/src/App.test.tsx +++ b/src/App.test.tsx @@ -25,6 +25,6 @@ describe('App login gate', () => { await user.click(screen.getByRole('button', { name: /open panel/i })); expect(screen.getByRole('navigation', { name: /primary/i })).toBeInTheDocument(); - expect(screen.getByText(/operator panel/i)).toBeInTheDocument(); + expect(screen.getByText(/control panel/i)).toBeInTheDocument(); }); }); diff --git a/src/App.tsx b/src/App.tsx index bbf78d6..103e61d 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -38,12 +38,9 @@ function LoginGate({ onUnlock }: { onUnlock: () => void }) { return (
-

3proxy control plane

-

Minimal panel, operator-first signal.

-

- The first slice focuses on clarity: health, users, quotas, and system controls without - dashboard noise. -

+

3proxy UI

+

Panel access

+

Hardcoded credentials for the current prototype build.

@@ -83,12 +80,9 @@ function DashboardTab() {
-

3proxy runtime

-

Service health stays front and center.

-

- The live card will be wired to process health and graceful reload endpoints in the next - implementation step. -

+

Service

+

3proxy status

+

Health, process metadata, and restart actions.

{dashboardSnapshot.service.status} @@ -126,7 +120,7 @@ function DashboardTab() {

User pressure

{dashboardSnapshot.users.total} -

Configured users in the current proxy profile.

+

Configured users in the active profile.

Live now @@ -174,7 +168,7 @@ function UsersTab() {

Add user

-

Shape new access without leaving the panel.

+

New account

@@ -204,7 +197,7 @@ function UsersTab() {

Users

-

Traffic, quota, and copyable proxy links.

+

Accounts and usage

{dashboardSnapshot.userRecords.length} rows
@@ -283,7 +276,7 @@ function SystemTab() {

Runtime model

-

One place for ports, services, and reload strategy.

+

Ports and reload mode

Config mode @@ -309,7 +302,7 @@ function SystemTab() {

Generated config preview

-

Readable before it becomes writable.

+

Generated config

View-only for now
@@ -332,10 +325,8 @@ export default function App() {