diff --git a/web/src/app.css b/web/src/app.css index 4f8334a..7c2ee90 100644 --- a/web/src/app.css +++ b/web/src/app.css @@ -3,13 +3,14 @@ /* ── Base Styles ──────────────────────────────────────────────────── */ -html { +html, body { + margin: 0; + padding: 0; + height: 100%; + overflow: hidden; font-family: var(--font-family-sans); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; -} - -body { background-color: var(--surface-page); color: var(--text-primary); } diff --git a/web/src/routes/projects/+page.svelte b/web/src/routes/projects/+page.svelte index c94a935..08e376a 100644 --- a/web/src/routes/projects/+page.svelte +++ b/web/src/routes/projects/+page.svelte @@ -56,9 +56,19 @@ } } + function nameFromImage(imageRef: string): string { + // Extract last path segment: "git.example.com/owner/my-app" → "my-app" + const parts = imageRef.split('/'); + return parts[parts.length - 1].toLowerCase().replace(/[^a-z0-9-]/g, '-'); + } + function selectBrowsedImage(image: RegistryImage & { registryName: string }) { formImage = image.full_ref; formRegistry = image.registryName; + // Auto-fill name if empty. + if (!formName.trim()) { + formName = nameFromImage(image.full_ref); + } showImageBrowser = false; }