Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions lib/data/meta.dart
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,9 @@ DkStateMeta taskStateMeta(DkTaskState state) => switch (state) {
DkTaskState.done => const DkStateMeta(DkTone.success, '완료'),
DkTaskState.today => const DkStateMeta(DkTone.primary, '오늘'),
DkTaskState.carried => const DkStateMeta(DkTone.info, '옮김'),
DkTaskState.overdue => const DkStateMeta(DkTone.danger, '밀림'),
DkTaskState.missed => const DkStateMeta(DkTone.danger, '미완료'),
// 지연·미룸은 warning(시간 압박) — danger 는 파괴적 액션 전용(DQ-10, ADR-0032 6항).
DkTaskState.overdue => const DkStateMeta(DkTone.warning, '밀림'),
DkTaskState.missed => const DkStateMeta(DkTone.warning, '미완료'),
DkTaskState.abandoned => const DkStateMeta(DkTone.neutral, '내려놓음'),
DkTaskState.pending => const DkStateMeta(DkTone.neutral, '예정'),
};
Expand All @@ -38,7 +39,7 @@ DkStateMeta taskStateMeta(DkTaskState state) => switch (state) {
DkStateMeta debtStateMeta(DkDebtStatus status) => switch (status) {
DkDebtStatus.pending => const DkStateMeta(DkTone.neutral, '대기'),
DkDebtStatus.assigned => const DkStateMeta(DkTone.info, '배정됨'),
DkDebtStatus.overdue => const DkStateMeta(DkTone.danger, '계속 밀림'),
DkDebtStatus.overdue => const DkStateMeta(DkTone.warning, '계속 밀림'),
DkDebtStatus.resolved => const DkStateMeta(DkTone.success, '해소'),
DkDebtStatus.abandoned => const DkStateMeta(DkTone.neutral, '내려놓음'),
};
Expand Down
11 changes: 6 additions & 5 deletions lib/parts/dday_hero.dart
Original file line number Diff line number Diff line change
Expand Up @@ -74,16 +74,17 @@ class DdayHero extends StatelessWidget {
),
if (urgent) ...<Widget>[
const SizedBox(width: 8),
const DkBadge(
// warning 톤(시간 압박) — danger 는 파괴적 액션 전용(DQ-10).
// solid(흰 글자)는 다크 앰버 배경에서 대비가 깨져 subtle 유지.
DkBadge(
'마감 임박',
tone: DkTone.danger,
solid: true,
tone: DkTone.warning,
leading: DkIcon(
'flame',
size: 12,
color: white,
color: t.warningFg,
strokeWidth: 2,
fill: white,
fill: t.warningFg,
),
),
],
Expand Down
2 changes: 1 addition & 1 deletion lib/screens/plan/task_screen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ class _TaskScreenState extends State<TaskScreen> {
const SizedBox(width: 6),
DkBadge(
'계속 밀림 ${widget.debtOverdue}건',
tone: DkTone.danger,
tone: DkTone.warning,
),
],
],
Expand Down
2 changes: 1 addition & 1 deletion lib/screens/sheets/notif_sheet.dart
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import '../../widgets/dk_sheet.dart';
({String icon, DkTone tone}) _appearance(DkNotifType type) => switch (type) {
DkNotifType.dday => (icon: 'target', tone: DkTone.primary),
DkNotifType.debtCreated => (icon: 'carryForward', tone: DkTone.warning),
DkNotifType.debtWarning => (icon: 'flame', tone: DkTone.danger),
DkNotifType.debtWarning => (icon: 'flame', tone: DkTone.warning),
DkNotifType.streak => (icon: 'trophy', tone: DkTone.success),
};

Expand Down
5 changes: 3 additions & 2 deletions lib/screens/today/today_screen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -214,8 +214,9 @@ class _DdayRow extends StatelessWidget {
: '${info.pct}%')
: info.label.replaceAll('마감 ', '').replaceAll('시작 ', '');
// 종료(D+)는 강조 해제(회색), 임박은 danger, 그 외 기본.
// 임박(high)은 warning(시간 압박) — danger 는 파괴적 액션 전용(DQ-10).
Color uColor(DkUrgency u) => switch (u) {
DkUrgency.high => t.danger,
DkUrgency.high => t.warning,
DkUrgency.past => t.fgDisabled,
_ => t.fgStrong,
};
Expand Down Expand Up @@ -455,7 +456,7 @@ class _DebtNudge extends StatelessWidget {
),
if (overdueCount > 0) ...<Widget>[
const SizedBox(width: 6),
DkBadge('계속 밀림 $overdueCount건', tone: DkTone.danger),
DkBadge('계속 밀림 $overdueCount건', tone: DkTone.warning),
],
],
),
Expand Down
7 changes: 7 additions & 0 deletions test/meta_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import 'package:ieoseo/data/meta.dart';
import 'package:ieoseo/data/models.dart';
import 'package:ieoseo/theme/tokens.dart';
import 'package:ieoseo/theme/tweaks.dart';
import 'package:ieoseo/widgets/dk_badge.dart';
import 'package:flutter_test/flutter_test.dart';

void main() {
Expand Down Expand Up @@ -52,6 +53,12 @@ void main() {
expect(taskStateMeta(DkTaskState.carried).label, '옮김');
});

test('지연·미룸 상태는 warning 톤 — danger 는 파괴적 액션 전용(DQ-10)', () {
expect(taskStateMeta(DkTaskState.overdue).tone, DkTone.warning);
expect(taskStateMeta(DkTaskState.missed).tone, DkTone.warning);
expect(debtStateMeta(DkDebtStatus.overdue).tone, DkTone.warning);
});

test('부채 상태 → 톤·라벨', () {
expect(debtStateMeta(DkDebtStatus.overdue).label, '계속 밀림');
expect(debtStateMeta(DkDebtStatus.assigned).label, '배정됨');
Expand Down
Loading