Skip to content

Commit 23a251b

Browse files
authored
Merge pull request #631 from Chris0Jeky/feature/624-inbox-status-tags
UX-24: Inbox color-coded status tags and text fatigue reduction
2 parents ea94c50 + 456ddaf commit 23a251b

File tree

1 file changed

+51
-2
lines changed

1 file changed

+51
-2
lines changed

frontend/taskdeck-web/src/views/InboxView.vue

Lines changed: 51 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,17 @@ function statusLabel(status: CaptureStatusValue): string {
168168
return String(status)
169169
}
170170
171+
function statusChipClass(status: CaptureStatusValue): string {
172+
if (status === 0 || status === 'New') return 'td-status-chip--new'
173+
if (status === 1 || status === 'Triaging') return 'td-status-chip--triaging'
174+
if (status === 2 || status === 'Triaged') return 'td-status-chip--triaging'
175+
if (status === 3 || status === 'ProposalCreated') return 'td-status-chip--triaging'
176+
if (status === 4 || status === 'Converted') return 'td-status-chip--converted'
177+
if (status === 5 || status === 'Ignored') return 'td-status-chip--ignored'
178+
if (status === 6 || status === 'Failed') return 'td-status-chip--failed'
179+
return ''
180+
}
181+
171182
function sourceLabel(source: CaptureSourceValue): string {
172183
if (source === 0 || source === 'Typed') return 'Typed'
173184
if (source === 1 || source === 'Paste') return 'Paste'
@@ -724,6 +735,7 @@ onUnmounted(() => {
724735
:data-capture-id="items[virtualRow.index]!.id"
725736
:class="[
726737
'td-inbox-row',
738+
virtualRow.index % 2 === 1 ? 'td-inbox-row--alt' : '',
727739
virtualRow.index === activeItemIndex ? 'td-inbox-row--active' : '',
728740
selectedItemId === items[virtualRow.index]!.id ? 'td-inbox-row--selected' : ''
729741
]"
@@ -740,7 +752,7 @@ onUnmounted(() => {
740752
:checked="selectedIds.has(items[virtualRow.index]!.id)"
741753
@click.stop="toggleItemSelection(items[virtualRow.index]!.id)"
742754
/>
743-
<span class="td-status-chip">{{ statusLabel(items[virtualRow.index]!.status) }}</span>
755+
<span :class="['td-status-chip', statusChipClass(items[virtualRow.index]!.status)]">{{ statusLabel(items[virtualRow.index]!.status) }}</span>
744756
<span class="td-meta-chip">{{ sourceLabel(items[virtualRow.index]!.source) }}</span>
745757
</div>
746758
<p class="td-inbox-row__excerpt">{{ items[virtualRow.index]!.textExcerpt }}</p>
@@ -1037,6 +1049,10 @@ onUnmounted(() => {
10371049
border-color var(--td-transition-fast, 120ms) ease;
10381050
}
10391051
1052+
.td-inbox-row--alt {
1053+
background: var(--td-surface-container-low, #1e1d1d);
1054+
}
1055+
10401056
.td-inbox-row:focus-visible {
10411057
box-shadow: var(--td-focus-ring);
10421058
outline: none;
@@ -1074,6 +1090,34 @@ onUnmounted(() => {
10741090
color: var(--td-text-secondary);
10751091
}
10761092
1093+
.td-status-chip--failed {
1094+
background: var(--td-color-error-light);
1095+
color: var(--td-color-error);
1096+
border-color: var(--td-color-error);
1097+
}
1098+
1099+
.td-status-chip--converted {
1100+
background: var(--td-color-success-light);
1101+
color: var(--td-color-success);
1102+
border-color: var(--td-color-success);
1103+
}
1104+
1105+
.td-status-chip--triaging {
1106+
background: var(--td-color-warning-light);
1107+
color: var(--td-color-warning);
1108+
border-color: var(--td-color-warning);
1109+
}
1110+
1111+
.td-status-chip--ignored {
1112+
/* Muted gray — inherits base chip styles, no override needed */
1113+
}
1114+
1115+
.td-status-chip--new {
1116+
background: var(--td-color-ember-dim);
1117+
color: var(--td-color-ember);
1118+
border-color: var(--td-color-ember);
1119+
}
1120+
10771121
.td-inbox-row__checkbox {
10781122
cursor: pointer;
10791123
flex-shrink: 0;
@@ -1083,7 +1127,12 @@ onUnmounted(() => {
10831127
color: var(--td-text-primary);
10841128
margin-bottom: var(--td-space-2);
10851129
font-size: var(--td-font-sm);
1130+
font-weight: 400;
10861131
line-height: 1.5;
1132+
display: -webkit-box;
1133+
-webkit-line-clamp: 2;
1134+
-webkit-box-orient: vertical;
1135+
overflow: hidden;
10871136
}
10881137
10891138
.td-inbox-row__meta {
@@ -1338,7 +1387,7 @@ onUnmounted(() => {
13381387
font-size: var(--td-font-sm);
13391388
line-height: 1.5;
13401389
display: -webkit-box;
1341-
-webkit-line-clamp: 3;
1390+
-webkit-line-clamp: 2;
13421391
-webkit-box-orient: vertical;
13431392
overflow: hidden;
13441393
}

0 commit comments

Comments
 (0)