Initial commit: Gitpub Desktop scaffold

Add complete project scaffold for Gitpub Desktop (Tauri + Rust backend and vanilla HTML/CSS/JS frontend). Includes frontend entry (index.html), styles (base/components CSS), app logic and modules (app.js, gitea-api.js, tauri-api.js, state.js, storage.js), static assets and component READMEs, README.md, VSCode recommendations, and project config (package.json, package-lock.json). Also adds src-tauri skeleton (Cargo.toml, main.rs, lib.rs, build.rs, tauri.conf.json), application icons, and .gitignore files. Provides MVP plumbing for server setup and management, repository dashboard, local repo opening, and Git operations via Tauri invoke (clone/pull/push/status/branch).
This commit is contained in:
2026-05-07 14:41:15 +12:00
commit 6b245c628c
44 changed files with 7105 additions and 0 deletions
+78
View File
@@ -0,0 +1,78 @@
:root {
--bg-app: #0b1018;
--bg-panel: #111a27;
--bg-panel-alt: #172234;
--bg-hover: #1c2a3f;
--border: #253349;
--text-main: #e5edf7;
--text-muted: #94a7c0;
--accent: #4f9dff;
--accent-strong: #2f85f4;
--success: #41c48f;
--danger: #ef6a6a;
--radius-md: 10px;
--radius-lg: 14px;
--shadow: 0 14px 40px rgba(5, 9, 16, 0.45);
}
* {
box-sizing: border-box;
}
html,
body {
margin: 0;
width: 100%;
height: 100%;
background: radial-gradient(circle at top right, #172a47 0%, var(--bg-app) 55%);
color: var(--text-main);
font-family: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;
}
button,
input,
select,
textarea {
font: inherit;
}
button {
border: 1px solid var(--border);
border-radius: var(--radius-md);
background: var(--bg-panel-alt);
color: var(--text-main);
padding: 8px 12px;
cursor: pointer;
transition: all 0.15s ease;
}
button:hover {
transform: translateY(-1px);
border-color: #3b4f6e;
}
button.primary {
background: linear-gradient(180deg, #5ca7ff 0%, var(--accent-strong) 100%);
border-color: #2670d6;
}
button.danger {
border-color: #813434;
color: #ffcaca;
}
input,
select,
textarea {
width: 100%;
padding: 10px 12px;
border-radius: var(--radius-md);
border: 1px solid var(--border);
background: #0f1724;
color: var(--text-main);
}
textarea {
min-height: 96px;
resize: vertical;
}
+142
View File
@@ -0,0 +1,142 @@
#app {
width: 100%;
height: 100%;
}
.layout {
display: grid;
grid-template-columns: 260px 1fr 320px;
width: 100%;
height: 100%;
gap: 0;
}
.sidebar,
.rightbar {
background: rgba(13, 21, 34, 0.88);
border-right: 1px solid var(--border);
padding: 14px;
}
.rightbar {
border-right: 0;
border-left: 1px solid var(--border);
}
.main {
padding: 16px;
overflow: auto;
}
.panel {
border: 1px solid var(--border);
border-radius: var(--radius-lg);
background: rgba(16, 26, 41, 0.92);
box-shadow: var(--shadow);
padding: 14px;
}
.stack {
display: flex;
flex-direction: column;
gap: 12px;
}
.row {
display: flex;
gap: 8px;
}
.row.wrap {
flex-wrap: wrap;
}
.row.end {
justify-content: flex-end;
}
.server-chip,
.repo-card {
border: 1px solid var(--border);
border-radius: var(--radius-md);
padding: 10px;
background: rgba(23, 34, 53, 0.75);
}
.repo-grid {
display: grid;
gap: 10px;
grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
}
.muted {
color: var(--text-muted);
}
.label {
font-size: 12px;
color: var(--text-muted);
margin-bottom: 4px;
}
.title {
margin: 0;
font-size: 18px;
}
.subtitle {
margin: 0;
font-size: 13px;
color: var(--text-muted);
}
.hidden {
display: none !important;
}
.app-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 14px;
}
.section-header {
display: flex;
justify-content: space-between;
align-items: center;
}
.list {
margin: 0;
padding-left: 16px;
}
.welcome-wrap {
min-height: 100%;
display: grid;
place-items: center;
padding: 24px;
}
.welcome-card {
width: min(680px, 100%);
}
.status-ok {
color: var(--success);
}
.status-error {
color: var(--danger);
}
@media (max-width: 1180px) {
.layout {
grid-template-columns: 220px 1fr;
}
.rightbar {
display: none;
}
}