Files
Fusion 2b5331a1a0 feat: implement responsive spacing improvements
- Add CSS custom properties for spacing scale (4px base), breakpoints, and fluid typography
- Create layout utilities: Container, Stack, Row, Grid
- Update AppShell with responsive mobile navigation
- Update card grid with responsive columns
- Update dialogs with viewport-aware sizing and mobile fullscreen
- Update workspace layout for mobile stacking
- Ensure minimum 44px touch targets for buttons
- Add table-responsive and text truncation utilities
- Update page headers for mobile stacking

Quality gates: typecheck ✓, lint ✓, build ✓
2026-05-19 19:50:36 +02:00

2.9 KiB

Universal Icon System Specification

Requirements

Functional Requirements

  1. Icon Component: Centralized Icon component that wraps Phosphor icons
  2. Icon Registry: Mapping of logical names to Phosphor icon components
  3. Size Variants: Support for sm (16px), md (20px), lg (24px), xl (32px)
  4. Color Inheritance: Default to currentColor, support explicit colors
  5. Accessibility: Proper ARIA labels and roles
  6. Tree Shaking: Only include icons that are actually used

Non-Functional Requirements

  1. Bundle Size: Minimal impact (~2KB per icon weight variant)
  2. Performance: No layout shift, instant rendering
  3. Browser Support: All modern browsers (Chrome, Firefox, Safari, Edge)
  4. Consistency: Identical rendering across all platforms

Icon Registry

Navigation Icons

  • dashboardHouse
  • projectsFolder
  • repositoriesGitBranch
  • settingsGear
  • profileUser
  • logoutSignOut

Action Icons

  • addPlus
  • editPencilSimple
  • deleteTrash
  • saveFloppyDisk
  • cancelX
  • refreshArrowsClockwise
  • copyCopy
  • searchMagnifyingGlass
  • menuList
  • closeX

Status Icons

  • successCheck
  • errorX
  • warningWarning
  • infoInfo
  • loadingSpinner

Git Icons

  • branchGitBranch
  • commitGitCommit
  • mergeGitMerge
  • historyClockCounterClockwise
  • pullArrowDown
  • pushArrowUp
  • fetchArrowsClockwise

File Icons

  • fileFile
  • folderFolder
  • codeCode
  • documentFileText
  • imageImage
  • binaryFileBinary

Migration Checklist

Components to Update

  • app-shell.tsx - Navigation icons
  • git-toolbar.tsx - Git operation icons
  • git-repositories.tsx - Status/validation icons
  • repo-workspace.tsx - File tree icons
  • file-editor.tsx - File type icons
  • dashboard.tsx - Dashboard icons
  • projects.tsx - Project action icons
  • settings.tsx - Settings icons
  • tool-types.tsx - Tool type icons
  • ssh-keys.tsx - Key management icons
  • profile.tsx - Profile icons
  • commit-dialog.tsx - Dialog icons
  • syntax-highlighter.tsx - Copy icon
  • code-editor.tsx - Edit icons
  • All button components with icons

CSS Requirements

.icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.icon-sm { width: 16px; height: 16px; }
.icon-md { width: 20px; height: 20px; }
.icon-lg { width: 24px; height: 24px; }
.icon-xl { width: 32px; height: 32px; }

Accessibility Requirements

  1. All functional icons must have aria-label
  2. Decorative icons must have aria-hidden="true"
  3. Interactive icons must be focusable
  4. Color contrast ratio ≥ 4.5:1

Dependencies

  • @phosphor-icons/react - React component library