refactor: UI 일관성 개선 및 테이블 구조 통일

장비관리 화면을 기준으로 전체 화면 UI 일관성 개선:

- 모든 화면 검색바/버튼/드롭다운 높이 40px 통일
- 테이블 헤더 패딩 vertical 10px, 행 패딩 vertical 4px 통일
- 배지 스타일 통일 (border 제거, opacity 0.9 적용)
- 페이지네이션 10개 이하에서도 항상 표시
- 테이블 헤더 폰트 스타일 통일 (fontSize: 13, fontWeight: w500)

각 화면별 수정사항:
1. 장비관리: 컬럼 너비 최적화, 검색 컴포넌트 높이 명시
2. 입고지 관리: 페이지네이션 조건 개선
3. 회사관리: UnifiedSearchBar 통합, 배지 스타일 개선
4. 유지보수: ListView.builder → map() 변경, 테이블 구조 재설계

키포인트 색상을 teal로 통일하여 브랜드 일관성 확보
This commit is contained in:
JiWoong Sul
2025-08-08 18:03:07 +09:00
parent 844c7bd92f
commit b8f10dd588
17 changed files with 2065 additions and 1035 deletions

View File

@@ -32,7 +32,7 @@ class ShadcnCard extends StatelessWidget {
decoration: BoxDecoration(
color: ShadcnTheme.card,
borderRadius: BorderRadius.circular(ShadcnTheme.radiusLg),
border: Border.all(color: ShadcnTheme.border),
border: Border.all(color: Colors.black),
boxShadow: ShadcnTheme.cardShadow,
),
child: child,
@@ -145,7 +145,7 @@ class ShadcnButton extends StatelessWidget {
return OutlinedButton.styleFrom(
backgroundColor: backgroundColor ?? ShadcnTheme.secondary,
foregroundColor: textColor ?? ShadcnTheme.secondaryForeground,
side: const BorderSide(color: ShadcnTheme.border),
side: const BorderSide(color: Colors.black),
elevation: 0,
shadowColor: Colors.transparent,
shape: RoundedRectangleBorder(
@@ -180,12 +180,12 @@ class ShadcnButton extends StatelessWidget {
case ShadcnButtonSize.small:
return const EdgeInsets.symmetric(
horizontal: ShadcnTheme.spacing3,
vertical: ShadcnTheme.spacing1,
vertical: 6,
);
case ShadcnButtonSize.medium:
return const EdgeInsets.symmetric(
horizontal: ShadcnTheme.spacing4,
vertical: ShadcnTheme.spacing2,
vertical: 10,
);
case ShadcnButtonSize.large:
return const EdgeInsets.symmetric(
@@ -291,7 +291,7 @@ class ShadcnInput extends StatelessWidget {
fillColor: ShadcnTheme.background,
contentPadding: const EdgeInsets.symmetric(
horizontal: ShadcnTheme.spacing3,
vertical: ShadcnTheme.spacing2,
vertical: 10,
),
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(ShadcnTheme.radiusMd),
@@ -317,7 +317,7 @@ class ShadcnInput extends StatelessWidget {
),
),
hintStyle: ShadcnTheme.bodyMedium.copyWith(
color: ShadcnTheme.mutedForeground,
color: ShadcnTheme.mutedForeground.withValues(alpha: 0.8),
),
),
),
@@ -392,7 +392,7 @@ class ShadcnBadge extends StatelessWidget {
Color _getBorderColor() {
switch (variant) {
case ShadcnBadgeVariant.outline:
return ShadcnTheme.border;
return Colors.black;
default:
return Colors.transparent;
}
@@ -448,7 +448,7 @@ class ShadcnSeparator extends StatelessWidget {
return Container(
width: direction == Axis.horizontal ? double.infinity : thickness,
height: direction == Axis.vertical ? double.infinity : thickness,
color: color ?? ShadcnTheme.border,
color: color ?? Colors.black,
);
}
}
@@ -476,7 +476,7 @@ class ShadcnAvatar extends StatelessWidget {
decoration: BoxDecoration(
color: backgroundColor ?? ShadcnTheme.muted,
shape: BoxShape.circle,
border: Border.all(color: ShadcnTheme.border),
border: Border.all(color: Colors.black),
),
child: ClipOval(
child: