feat(fe): implement dedicated KBX Command Bar row in PageLayout for 100% UX Standard §3/§5 alignment
This commit is contained in:
Binary file not shown.
|
Before Width: | Height: | Size: 96 KiB After Width: | Height: | Size: 80 KiB |
@@ -17,8 +17,14 @@ const showHelp = ref(false)
|
||||
<p v-if="subtitle && showHelp" class="ks-page__subtitle">{{ subtitle }}</p>
|
||||
<div class="ks-page__meta"><span v-if="status">상태: {{ status }}</span><span v-if="asOf">As-of: {{ asOf }}</span><span v-if="version">Version: {{ version }}</span></div>
|
||||
</div>
|
||||
<div class="ks-page__actions"><slot name="actions" /></div>
|
||||
</header>
|
||||
<!-- Dedicated KBX Command Bar Row (§3, §5) -->
|
||||
<div v-if="$slots.commandBar || $slots.actions" class="ks-page__command-bar" role="toolbar" aria-label="화면 주요 명령어">
|
||||
<div class="ks-page__command-bar-group">
|
||||
<slot name="commandBar" />
|
||||
<slot name="actions" />
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="$slots.summary" class="ks-page__summary"><slot name="summary" /></div>
|
||||
<div v-if="$slots.filters" class="ks-page__filters"><slot name="filters" /></div>
|
||||
<div class="ks-page__workspace" :class="{ 'has-aside': $slots.aside }">
|
||||
@@ -57,6 +63,19 @@ h1 { margin: 0; font-size: var(--ks-font-page); line-height: var(--ks-line-page)
|
||||
box-shadow: 0 1px 3px rgba(37, 99, 235, 0.25);
|
||||
}
|
||||
.ks-page__meta { display: flex; gap: var(--ks-space-3); flex-wrap: wrap; margin-top: 2px; color: var(--ks-color-neutral-600); font-size: var(--ks-font-caption); }
|
||||
.ks-page__command-bar {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-start;
|
||||
padding: 4px 8px;
|
||||
background: #f1f5f9;
|
||||
border: 1px solid var(--ks-color-border);
|
||||
border-radius: var(--ks-radius-sm);
|
||||
flex-shrink: 0;
|
||||
min-height: 34px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.ks-page__command-bar-group { display: flex; align-items: center; gap: var(--ks-space-2); flex-wrap: wrap; }
|
||||
.ks-page__actions { display: flex; align-items: center; gap: var(--ks-space-2); flex-shrink: 0; }
|
||||
.ks-page__summary { display: grid; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); gap: var(--ks-space-3); flex-shrink: 0; }
|
||||
.ks-page__filters { padding: var(--ks-space-2) var(--ks-space-3); flex-shrink: 0; background: var(--ks-color-surface); border: 1px solid var(--ks-color-border); border-radius: var(--ks-radius-sm); }
|
||||
|
||||
Reference in New Issue
Block a user