feat(ui): add consistent page-header layout and styles
Introduce a shared page-header/page-heading pattern and CSS to standardize headers across top-level sections. Components were updated to adopt the new classes and slightly smaller icon sizing for a more compact, consistent header appearance. This improves visual consistency and makes future header adjustments simpler. - Add reusable page-header styles for spacing, borders, and bg - Standardize icon sizing and heading layout across screens
This commit is contained in:
+33
@@ -9069,3 +9069,36 @@ input:focus, textarea:focus, select:focus { box-shadow: 0 0 0 3px color-mix(in s
|
||||
--color-sync-ahead: #9a5200;
|
||||
--color-sync-behind: #0755c8;
|
||||
}
|
||||
|
||||
/* Consistent page headers for repositories, pull requests, and issues. */
|
||||
section > header.page-header.page-header {
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
flex-shrink: 0;
|
||||
min-height: 54px;
|
||||
height: auto;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 16px;
|
||||
padding: 8px 24px;
|
||||
border-bottom: 1px solid var(--color-border-subtle);
|
||||
background: color-mix(in srgb, var(--app-bg) 94%, var(--color-surface));
|
||||
}
|
||||
.page-header .page-heading {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
min-width: 0;
|
||||
}
|
||||
.page-header .page-heading > svg {
|
||||
flex: 0 0 auto;
|
||||
color: var(--color-accent);
|
||||
}
|
||||
.page-header.page-header .page-heading h1 {
|
||||
margin: 0;
|
||||
color: var(--color-ink);
|
||||
font-size: 14px;
|
||||
font-weight: 700;
|
||||
line-height: 20px;
|
||||
letter-spacing: normal;
|
||||
}
|
||||
|
||||
@@ -172,8 +172,8 @@
|
||||
<svelte:window onkeydown={event => { if (event.key === "Escape" && selectedId) void closeDetails(); }} />
|
||||
|
||||
<section class="issue-center" aria-label="Issues">
|
||||
<header class="workspace-heading">
|
||||
<div class="workspace-title"><span class="workspace-symbol"><CircleDot size={21} strokeWidth={1.7} /></span><div><h1>Issues</h1><p>{de ? "Arbeit im Blick. Über alle Integrationen." : "Work in focus. Across your integrations."}</p></div></div>
|
||||
<header class="workspace-heading page-header">
|
||||
<div class="page-heading"><CircleDot size={17} /><h1>Issues</h1></div>
|
||||
<button class="workspace-button" onclick={onOpenSettings} title={de ? "Integrationen konfigurieren" : "Configure integrations"}><Settings2 size={14} />{de ? "Integrationen" : "Integrations"}</button>
|
||||
</header>
|
||||
{#if !sources.length}
|
||||
|
||||
@@ -164,8 +164,8 @@
|
||||
</script>
|
||||
|
||||
<section class="repo-dashboard" aria-label={de ? "Repository-Verwaltung" : "Repository management"}>
|
||||
<header class="dashboard-header">
|
||||
<h1>Repository Management</h1>
|
||||
<header class="dashboard-header page-header">
|
||||
<div class="page-heading"><FolderGit2 size={17} /><h1>Dashboard</h1></div>
|
||||
<div class="header-actions">
|
||||
<button type="button" onclick={onClone} disabled={isBusy}><Download size={14} />{de ? "Klonen" : "Clone"}</button>
|
||||
<button type="button" onclick={onInit} disabled={isBusy}><FolderGit2 size={14} />{de ? "Initialisieren" : "Initialize"}</button>
|
||||
|
||||
@@ -402,8 +402,8 @@
|
||||
{/if}
|
||||
|
||||
<section class:has-inspector={detailOpen && !!selected} class="review-center" aria-label="Review Center">
|
||||
<header class="review-header">
|
||||
<div class="review-heading"><GitPullRequest size={17} /><h1>Review Center</h1></div>
|
||||
<header class="review-header page-header">
|
||||
<div class="review-heading page-heading"><GitPullRequest size={17} /><h1>Review Center</h1></div>
|
||||
{#if activeSource}<button class="create-review" type="button" disabled={loading} onclick={() => { detailOpen = false; createOpen = true; }}><GitPullRequest size={14}/>{activeSource.provider.startsWith("gitlab") ? (de ? "MR erstellen" : "Create MR") : (de ? "PR erstellen" : "Create PR")}</button>{/if}
|
||||
</header>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user