This commit is contained in:
+127
-28
@@ -7,35 +7,134 @@
|
||||
<link rel="stylesheet" href="styles.css" />
|
||||
</head>
|
||||
<body>
|
||||
<aside class="sidebar">
|
||||
<div class="brand"><span class="logo">▰</span><div><strong>Rabby</strong><small>Rust + Tauri terminal</small></div></div>
|
||||
<button class="primary">+ New tab</button>
|
||||
<nav>
|
||||
<a class="active">⌘ Local Shell</a>
|
||||
<a>🔐 SSH: production</a>
|
||||
<a>☎ Telnet lab</a>
|
||||
<a>🔌 Serial /dev/ttyUSB0</a>
|
||||
</nav>
|
||||
<section><h3>Features</h3><ul id="features"><li>Loading Rust backend…</li></ul></section>
|
||||
</aside>
|
||||
<main>
|
||||
<header class="tabs">
|
||||
<div class="tab active">Local Shell <span>●</span></div><div class="tab">Prod SSH</div><div class="spacer"></div><button>Command palette</button><button>Quake mode</button>
|
||||
</header>
|
||||
<section class="workspace">
|
||||
<div class="pane large"><div class="chrome">bash — rabby-core tests</div><pre>$ cargo test -p rabby-core
|
||||
running 6 tests
|
||||
test slug_normalizes_profile_ids ... ok
|
||||
test profile_validation_rejects_empty_command ... ok
|
||||
test split_panes_count_nested_leaves ... ok
|
||||
test split_ratio_has_sane_bounds ... ok
|
||||
test workspace_adds_tabs_for_known_profiles ... ok
|
||||
test feature_matrix_covers_tabby_readme_capabilities ... ok
|
||||
<div class="app-shell">
|
||||
<aside class="rail" aria-label="Primary navigation">
|
||||
<div class="brand-mark" aria-label="Rabby">R</div>
|
||||
<button class="rail-icon active" title="Dashboard">⌂</button>
|
||||
<button class="rail-icon" title="Approvals">✓</button>
|
||||
<button class="rail-icon" title="Activity">↗</button>
|
||||
<button class="rail-icon" title="Settings">⚙</button>
|
||||
</aside>
|
||||
|
||||
Rabby keeps Tabby-style UX while moving the app shell to Rust/Tauri.</pre></div>
|
||||
<div class="pane"><div class="chrome">profile inspector</div><div class="cards"><article><b>Session restore</b><p>Tabs and split tree are represented in Rust.</p></article><article><b>Small footprint target</b><p>No Electron runtime; static HTML/CSS plus Tauri backend.</p></article></div></div>
|
||||
</section>
|
||||
</main>
|
||||
<aside class="wallet-panel">
|
||||
<header class="brand-row">
|
||||
<div>
|
||||
<p class="eyebrow">Rabby Wallet MVP</p>
|
||||
<h1>Clean multi-chain wallet</h1>
|
||||
</div>
|
||||
<span class="status-dot">Modeled</span>
|
||||
</header>
|
||||
|
||||
<section class="account-card">
|
||||
<div class="account-topline">
|
||||
<span>Main Wallet</span>
|
||||
<button class="ghost-button">•••</button>
|
||||
</div>
|
||||
<strong id="account-address">0x1111…1111</strong>
|
||||
<p>Seed phrase · Ethereum + Base</p>
|
||||
<div class="account-actions">
|
||||
<button>Send</button>
|
||||
<button>Receive</button>
|
||||
<button>Swap</button>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<nav class="side-list">
|
||||
<a class="active"><span>Portfolio</span><b id="portfolio-total">$0.00</b></a>
|
||||
<a><span>Dapp permissions</span><b id="dapp-count">MVP</b></a>
|
||||
<a><span>Approvals at risk</span><b id="risk-count">0</b></a>
|
||||
<a><span>Customization</span><b>Theme</b></a>
|
||||
</nav>
|
||||
</aside>
|
||||
|
||||
<main class="content">
|
||||
<header class="topbar">
|
||||
<div>
|
||||
<p class="eyebrow">RabbyHub/Rabby inspired UI</p>
|
||||
<h2>Portfolio dashboard</h2>
|
||||
</div>
|
||||
<div class="top-actions">
|
||||
<button class="secondary">Lock</button>
|
||||
<button class="primary">Connect dapp</button>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<section class="hero-grid">
|
||||
<article class="balance-card">
|
||||
<p>Total balance</p>
|
||||
<strong id="hero-total">$0.00</strong>
|
||||
<span>Across modeled token balances</span>
|
||||
</article>
|
||||
<article class="metric-card">
|
||||
<p>Chains</p>
|
||||
<strong id="chain-count">0</strong>
|
||||
<span>Custom RPC ready</span>
|
||||
</article>
|
||||
<article class="metric-card warning">
|
||||
<p>High-risk approvals</p>
|
||||
<strong id="approval-risk">0</strong>
|
||||
<span>Review before signing</span>
|
||||
</article>
|
||||
</section>
|
||||
|
||||
<section class="two-column">
|
||||
<article class="panel">
|
||||
<div class="panel-heading">
|
||||
<div>
|
||||
<p class="eyebrow">Assets</p>
|
||||
<h3>Token balances</h3>
|
||||
</div>
|
||||
<button class="ghost-button">Refresh</button>
|
||||
</div>
|
||||
<div id="token-list" class="asset-list"></div>
|
||||
</article>
|
||||
|
||||
<article class="panel">
|
||||
<div class="panel-heading">
|
||||
<div>
|
||||
<p class="eyebrow">Security</p>
|
||||
<h3>Approvals</h3>
|
||||
</div>
|
||||
<button class="ghost-button">Revoke</button>
|
||||
</div>
|
||||
<div id="approval-list" class="approval-list"></div>
|
||||
</article>
|
||||
</section>
|
||||
|
||||
<section class="two-column lower">
|
||||
<article class="panel">
|
||||
<div class="panel-heading">
|
||||
<div>
|
||||
<p class="eyebrow">Activity</p>
|
||||
<h3>Recent wallet events</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div id="activity-list" class="activity-list"></div>
|
||||
</article>
|
||||
|
||||
<article class="panel">
|
||||
<div class="panel-heading">
|
||||
<div>
|
||||
<p class="eyebrow">Settings</p>
|
||||
<h3>Customization</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div id="settings-summary" class="settings-grid"></div>
|
||||
</article>
|
||||
</section>
|
||||
|
||||
<section class="panel feature-panel">
|
||||
<div class="panel-heading">
|
||||
<div>
|
||||
<p class="eyebrow">Feature record</p>
|
||||
<h3>RabbyHub MVP coverage</h3>
|
||||
</div>
|
||||
<a class="doc-link" href="../docs/rabbyhub-mvp-feature-inventory.md">docs/rabbyhub-mvp-feature-inventory.md</a>
|
||||
</div>
|
||||
<div id="wallet-features" class="feature-grid"></div>
|
||||
</section>
|
||||
</main>
|
||||
</div>
|
||||
<script src="app.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user