ionic-planb-logistic-app-fl.../lib/theme/size_system.dart
Jean-Philippe Brule 57b81d1e95 Fix linting issues and code quality improvements
Resolve 62 linting issues identified by flutter analyze, reducing
total issues from 79 to 17. All critical warnings addressed.

Changes:
- Replace deprecated withOpacity() with withValues(alpha:) (25 instances)
- Remove unused imports from 9 files
- Remove unused variables and fields (6 instances)
- Fix Riverpod 3.0 state access violations in settings_page
- Remove unnecessary null-aware operators in navigation_page (6 instances)
- Fix unnecessary type casts in providers (4 instances)
- Remove unused methods: _getDarkMapStyle, _showPermissionDialog
- Simplify hover state management by removing unused _isHovered fields

Remaining 17 issues are info-level style suggestions and defensive
programming patterns that don't impact functionality.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-16 01:39:35 -05:00

236 lines
6.5 KiB
Dart

/// Svrnty Size System
/// Standard sizing constants for icons, buttons, containers, and other components
class AppSizes {
// Prevent instantiation
AppSizes._();
// ============================================
// ICON SIZES
// ============================================
/// Extra small icon (16px)
static const double iconXs = 16.0;
/// Small icon (20px)
static const double iconSm = 20.0;
/// Standard icon size (24px)
static const double iconMd = 24.0;
/// Large icon size (32px)
static const double iconLg = 32.0;
/// Extra large icon (40px)
static const double iconXl = 40.0;
/// Huge icon (48px)
static const double iconXxl = 48.0;
/// Extra huge icon (56px)
static const double iconXxxl = 56.0;
// ============================================
// BUTTON SIZES
// ============================================
/// Small button height (32px)
static const double buttonHeightSm = 32.0;
/// Medium button height (40px) - Default
static const double buttonHeightMd = 40.0;
/// Large button height (48px)
static const double buttonHeightLg = 48.0;
/// Extra large button height (56px)
static const double buttonHeightXl = 56.0;
// ============================================
// INPUT FIELD SIZES
// ============================================
/// Input field height
static const double inputHeight = 56.0;
/// Compact input field height (no vertical padding)
static const double inputHeightCompact = 40.0;
/// Input field min width
static const double inputMinWidth = 48.0;
// ============================================
// CONTAINER & LAYOUT SIZES
// ============================================
/// Standard card minimum height
static const double cardMinHeight = 80.0;
/// Standard dialog max width (mobile)
static const double dialogMaxWidthMobile = 280.0;
/// Standard dialog max width (tablet/desktop)
static const double dialogMaxWidthDesktop = 560.0;
/// Maximum content width for centered layouts
static const double maxContentWidth = 1200.0;
/// Compact content width (forms, focused layouts)
static const double compactContentWidth = 600.0;
/// Standard container max width
static const double containerMaxWidth = 900.0;
// ============================================
// APPBAR & HEADER SIZES
// ============================================
/// Standard app bar height
static const double appBarHeight = 56.0;
/// Large app bar height
static const double appBarHeightLarge = 72.0;
/// Compact app bar height
static const double appBarHeightCompact = 48.0;
// ============================================
// BOTTOM SHEET SIZES
// ============================================
/// Bottom sheet max width
static const double bottomSheetMaxWidth = 540.0;
/// Bottom sheet default height (auto)
static const double bottomSheetHeightAuto = 0.0;
/// Bottom sheet half screen height
static const double bottomSheetHeightHalf = 0.5;
/// Bottom sheet 3/4 screen height
static const double bottomSheetHeight3Quarter = 0.75;
// ============================================
// ELEVATION & Z-INDEX
// ============================================
/// Standard z-index for floating elements
static const int zIndexFloating = 100;
/// Z-index for modals/dialogs
static const int zIndexModal = 50;
/// Z-index for tooltips
static const int zIndexTooltip = 150;
// ============================================
// DIVIDER & LINE SIZES
// ============================================
/// Divider thickness
static const double dividerThickness = 1.0;
/// Thin divider thickness (0.5px)
static const double dividerThicknessThin = 0.5;
/// Thick divider thickness (2px)
static const double dividerThicknessThick = 2.0;
/// Horizontal divider height
static const double dividerHeightHorizontal = 1.0;
/// Vertical divider width
static const double dividerWidthVertical = 1.0;
// ============================================
// PROGRESS INDICATOR SIZES
// ============================================
/// Progress indicator thickness
static const double progressIndicatorThickness = 4.0;
/// Circular progress indicator size
static const double circularProgressSize = 48.0;
/// Linear progress indicator height (thin)
static const double linearProgressHeightThin = 2.0;
/// Linear progress indicator height (standard)
static const double linearProgressHeightStandard = 4.0;
/// Linear progress indicator height (thick)
static const double linearProgressHeightThick = 8.0;
// ============================================
// CHIP & BADGE SIZES
// ============================================
/// Chip height
static const double chipHeight = 32.0;
/// Small chip height
static const double chipHeightSm = 24.0;
/// Badge size (for counter badges)
static const double badgeSize = 24.0;
/// Badge size (small)
static const double badgeSizeSm = 16.0;
// ============================================
// AVATAR SIZES
// ============================================
/// Small avatar size
static const double avatarSizeSm = 32.0;
/// Medium avatar size
static const double avatarSizeMd = 48.0;
/// Large avatar size
static const double avatarSizeLg = 64.0;
/// Extra large avatar size
static const double avatarSizeXl = 80.0;
// ============================================
// RESPONSIVE SIZING
// ============================================
/// Minimum tap target size (Material guidelines - 48px)
static const double minTapTarget = 48.0;
/// Minimum tap target size for desktop (36px)
static const double minTapTargetDesktop = 36.0;
/// Standard element spacing
static const double elementSpacing = 8.0;
/// Large element spacing
static const double elementSpacingLarge = 16.0;
// ============================================
// UTILITY METHODS
// ============================================
/// Get responsive button height based on device type
static double getButtonHeight(bool isCompact) {
return isCompact ? buttonHeightMd : buttonHeightLg;
}
/// Get responsive dialog max width based on screen width
static double getDialogMaxWidth(double screenWidth) {
return screenWidth < 600 ? dialogMaxWidthMobile : dialogMaxWidthDesktop;
}
/// Get responsive icon size
static double getIconSize({
required bool isCompact,
required bool isLarge,
}) {
if (isLarge) return iconLg;
if (isCompact) return iconSm;
return iconMd;
}
}