diff --git a/frontend/src/views/apps/DarkChatApp.contract.test.ts b/frontend/src/views/apps/DarkChatApp.contract.test.ts index 211babe..2b1daf0 100644 --- a/frontend/src/views/apps/DarkChatApp.contract.test.ts +++ b/frontend/src/views/apps/DarkChatApp.contract.test.ts @@ -60,10 +60,24 @@ describe('DarkChatApp Sky UI contract', () => { ) }) + it('presents attachments as a compact five-action Sky glass rail', () => { + const attachmentsStart = source.indexOf( + 'v-if="attachmentOpen" class="dc-attachments"', + ) + const attachmentsEnd = source.indexOf('', attachmentsStart) + const attachments = source.slice(attachmentsStart, attachmentsEnd) + + expect(attachments.match(/class="dc-attachment-action"/g)).toHaveLength(5) + expect(attachments.match(/ { expect(source).toContain('class="dc-inbox-navbar"') expect(source).toMatch( - /\.dc-inbox-navbar :deep\(\.sky-navbar__title-container > div\)\s*\{[^}]*translateY\(-6px\)/s, + /\.dc-inbox-navbar :deep\(\.sky-navbar__title-container > div\)\s*\{[^}]*translateY\(-14px\)/s, ) }) }) diff --git a/frontend/src/views/apps/DarkChatApp.vue b/frontend/src/views/apps/DarkChatApp.vue index feac196..613f106 100644 --- a/frontend/src/views/apps/DarkChatApp.vue +++ b/frontend/src/views/apps/DarkChatApp.vue @@ -19,6 +19,7 @@ import { Share2, ShieldCheck, ShieldOff, + Smile, Trash2, UserRound, UserMinus, @@ -1059,7 +1060,7 @@ onBeforeUnmount(() => { } .dc-inbox-navbar :deep(.sky-navbar__title-container > div) { - transform: translateY(-6px); + transform: translateY(-14px); } .dc-scroll-content { @@ -1432,17 +1433,44 @@ onBeforeUnmount(() => { .dc-attachments { display: grid; - padding: 10px 12px; - grid-template-columns: repeat(2, minmax(0, 1fr)); - gap: 8px; + padding: 9px 10px 10px; + grid-template-columns: repeat(5, minmax(0, 1fr)); + gap: 5px; border-top: 1px solid var(--dc-border); background: var(--dc-surface); } -.dc-attachments :deep(.sky-button) { +.dc-attachment-action { min-width: 0; - min-height: 42px; - font-size: 11px; + min-height: 72px; + display: flex; + padding: 7px 2px 6px; + align-items: center; + flex-direction: column; + gap: 5px; + border-radius: 18px; + color: var(--dc-label); +} + +.dc-attachment-action > span { + width: 38px; + height: 38px; + display: grid; + border-radius: 50%; + color: var(--dc-accent); + background: var(--sky-app-accent-soft); + place-items: center; +} + +.dc-attachment-action > small { + width: 100%; + overflow: hidden; + font-size: 9px; + font-weight: 600; + line-height: 12px; + text-align: center; + text-overflow: ellipsis; + white-space: nowrap; } .dc-gif-panel { @@ -2093,21 +2121,46 @@ onBeforeUnmount(() => {
- - {{ t('attachPhoto') }} - - - {{ t('takePhoto') }} - - - 😀{{ t('emoji') }} - - - {{ t('attachGif') }} - - - + + + {{ t('photo') }} + + + + {{ t('takePhoto') }} + + + + {{ t('emoji') }} + + + + {{ t('gif') }} + + + + {{ t('video') }} +