Skip to content

feat: introduce Muxi design system with Lavender accent#1

Merged
e16tae merged 14 commits intomainfrom
feat/design-system
Mar 3, 2026
Merged

feat: introduce Muxi design system with Lavender accent#1
e16tae merged 14 commits intomainfrom
feat/design-system

Conversation

@e16tae
Copy link
Owner

@e16tae e16tae commented Mar 2, 2026

Summary

  • MuxiTokens 시맨틱 디자인 토큰 시스템 도입 (Colors, Spacing, Radius, Typography, Motion)
  • Warm/Friendly 성격의 Lavender 액센트 + Warm Dark 서피스 팔레트
  • 7개 SwiftUI 뷰를 하드코딩에서 토큰 참조로 마이그레이션
  • 앱 전체 Dark Only + accessibilityReduceMotion 대응

Changes

New files

  • ios/Muxi/DesignSystem/MuxiTokens.swift — 전체 토큰 정의 + MuxiAnimationModifier
  • ios/MuxiTests/DesignTokenTests.swift — 5개 스위트, 12개 테스트

Migrated views

  • ErrorBannerView — semantic colors, spacing, radius, reduce motion
  • ReconnectingOverlay — surface colors, spacing, material → solid surface
  • TmuxInstallGuideView — colors, spacing, radius (같은 파일 내 별도 struct)
  • ExtendedKeyboardView — accent tokens, clipShape 통일
  • PaneContainerView — tab bar/separator tokens, clipShape 통일
  • ThemeSettingsView — accent checkmark, text tokens
  • QuickActionButton — accent fill, shadow 제거

App-wide

  • MuxiApp.swift.preferredColorScheme(.dark) + .tint(Lavender)

Design decisions

  • 60-30-10 색상 비율 (surface 60% / text 30% / accent 10%)
  • 4pt 그리드 스페이싱 (xs=4, sm=8, md=12, lg=16, xl=24, xxl=32)
  • Surface 4단계 계층 (base → default → raised → elevated)
  • Spring bounce 0.15-0.2 for Playful motion
  • Terminal theme colors preserved (keyboard bg matches terminal)

Test plan

  • DesignTokenTests: 색상 명도 증가, 스페이싱 4배수, 레디우스 증가, 모션 토큰 존재
  • xcodebuild build 성공
  • 시뮬레이터에서 각 화면 시각적 확인
  • accessibilityReduceMotion 켜고 애니메이션 축소 확인

🤖 Generated with Claude Code

e16tae and others added 14 commits March 3, 2026 01:26
Defines Muxi's visual identity — Warm/Friendly personality with
Lavender accent, semantic token system, spacing/typography/motion scales.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
10-task plan: create MuxiTokens (colors, spacing, radius, typography,
motion) and migrate all hardcoded values across SwiftUI views.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Defines all semantic design tokens: colors (surface, accent, text,
border, semantic), spacing (4pt grid), radius, typography, and motion
(with reduceMotion accessibility support). Includes Color.rgbComponents
extension for test assertions.

Also fixes pre-existing build errors in test files: missing Foundation
import in ThemeManagerTests/ThemeTests, type mismatch in
TmuxControlServiceTests.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add TypographyTokenTests with existence checks for all 5 tokens
- Test both reduceMotion paths (true and false) in resolvedMotion

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace all hardcoded visual constants with MuxiTokens references:
- Colors: .red/.orange/.blue → MuxiTokens.Colors.error/warning/info
- Padding 12 → MuxiTokens.Spacing.md
- Corner radius 10 → MuxiTokens.Radius.md (12pt)
- Horizontal padding 16 → MuxiTokens.Spacing.lg
- Top padding 8, VStack spacing 8 → MuxiTokens.Spacing.sm
- Animation .easeInOut(0.25) → MuxiTokens.Motion.subtle

Opacity values (0.12 fill, 0.3 stroke) kept as-is — they are
semantic-color-specific, not design tokens.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace all hardcoded colors, spacing, radius values with MuxiTokens
references for consistent dark theme styling across the app.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…okens

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Applies .preferredColorScheme(.dark) and .tint(Lavender) at the
app root so all system controls inherit the design system.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- ErrorBannerView: HStack spacing 10 → MuxiTokens.Spacing.md
- ExtendedKeyboardView: HStack spacing 6 → MuxiTokens.Spacing.sm

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…rs, cornerRadius

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace hardcoded colors, fonts, and spacing in ServerRowView,
ServerListView, and ServerEditView with MuxiTokens for consistent
warm dark theming across all server management screens.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add LocalizedError to KeychainError for actionable error messages
  instead of opaque "KeychainError error 0"
- Pass retrieved password directly to connectToServer instead of
  discarding and re-reading from Keychain
- Pre-validate SSH key existence before connection attempt
- Remove CODE_SIGNING_ALLOWED=NO from CLAUDE.md build command
  (blocks Keychain access via errSecMissingEntitlement -34018)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@e16tae e16tae merged commit c82c999 into main Mar 3, 2026
1 check failed
@e16tae e16tae deleted the feat/design-system branch March 3, 2026 00:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant