AppSizes class
Sistema de escalado base para toda la aplicación
AppSizes proporciona una escala de diseño unificada y consistente que sirve como base para todos los demás sistemas (spacing, radius, iconos, etc.). Usar estos valores garantiza coherencia visual en toda la aplicación.
📏 Escalas Disponibles
Escala Base (uso general):
none(0.0) → Sin tamañoxxs(2.0) → Extra extra pequeñoxs(4.0) → Extra pequeñosm(6.0) → Pequeñosmd(8.0) → Pequeño-medianomds(10.0) → Mediano-pequeñomd(12.0) → Mediano ⭐ (más común)mdl(14.0) → Mediano-grandelg(16.0) → Grandelgx(18.0) → Grande-extraxl(20.0) → Extra grandexxl(24.0) → Extra extra grandexxxl(28.0) → Extra extra extra grande
Escala Extendida (elementos grandes):
huge(32.0) → Enormemassive(40.0) → Masivogiant(48.0) → Gigantemega(56.0) → Megaultra(64.0) → Ultraextreme(80.0) → Extremocolossal(96.0) → Colosal
🎨 Uso Básico
// Tamaños base para dimensiones
Container(
width: AppSizes.md, // 12.0
height: AppSizes.lg, // 16.0
)
// Iconos con tamaños estandarizados
Icon(Icons.home, size: AppSizes.iconLg) // 24.0
// Avatares con radio predefinido
CircleAvatar(radius: AppSizes.avatarMd) // 40.0
// Elevaciones según Material Design
Card(elevation: AppSizes.elevationMd) // 4.0
// Opacidades para estados
Opacity(
opacity: AppSizes.opacityDisabled, // 0.38
child: Text('Deshabilitado'),
)
// Breakpoints responsivos
if (MediaQuery.of(context).size.width < AppSizes.maxMobileWidth) {
// Layout móvil
}
📱 Tamaños de Iconos
Basados en Material Design:
iconXs(12.0) → Iconos muy pequeños (badges)iconSm(16.0) → Iconos pequeños (inputs)iconMd(20.0) → Iconos medianos (botones)iconLg(24.0) → Estándar Material Design ⭐iconXl(32.0) → Iconos grandes (headers)iconXxl(40.0) → Iconos muy grandes (hero)iconHuge(48.0) → Iconos enormes (splash)
👤 Tamaños de Avatares
Radio del CircleAvatar:
avatarXs(24.0) → Mini avatar (listas compactas)avatarSm(32.0) → Avatar pequeño (chips)avatarMd(40.0) → Avatar mediano (listas) ⭐avatarLg(48.0) → Avatar grande (detalles)avatarXl(64.0) → Avatar extra grande (perfiles)avatarXxl(80.0) → Avatar muy grandeavatarHuge(96.0) → Avatar enormeavatarMassive(128.0) → Avatar masivo (página perfil)
🎭 Elevaciones (Material Design)
Profundidad de sombras:
elevationNone(0.0) → Sin sombraelevationXs(1.0) → Mínima (cards reposo)elevationSm(2.0) → Baja (botones, chips)elevationMd(4.0) → Estándar (cards, app bar) ⭐elevationLg(6.0) → Media (FAB)elevationXl(8.0) → Alta (drawer, bottom sheet)elevationXxl(12.0) → Muy alta (dialogs)elevationHuge(16.0) → Enorme (nav drawer)elevationMassive(24.0) → Masiva (modal sheets)
🌫️ Opacidades (Material Design)
Niveles de transparencia:
opacityNone(0.0) → Transparente completoopacityHover(0.12) → Hover/ripple effectsopacityDisabled(0.38) → Elementos deshabilitadosopacityMedium(0.54) → Texto secundarioopacityMediumHigh(0.70) → Elementos menos importantesopacityHigh(0.87) → Texto principalopacityFull(1.0) → Opaco completo
📐 Breakpoints Responsivos
Anchos máximos para diferentes dispositivos:
maxMobileWidth(600.0) → TeléfonosmaxTabletWidth(900.0) → TabletsmaxDesktopWidth(1200.0) → EscritoriomaxContentWidth(1536.0) → Contenido centrado máximo
📏 Aspect Ratios
Proporciones comunes:
aspectRatioSquare(1.0) → Cuadrado 1:1aspectRatioStandard(1.33) → Estándar 4:3aspectRatioPhoto(1.5) → Foto 3:2aspectRatioWide(1.78) → Widescreen 16:9aspectRatioCinematic(2.35) → Cinemático 21:9
💡 Recomendaciones
- Consistencia: Usa siempre estos valores en lugar de números arbitrarios
- Semántica: Elige el nombre que mejor describa el propósito
- Escalabilidad: Los tamaños siguen una progresión geométrica coherente
- Material Design: Los valores de elevación y opacidad siguen las guías oficiales
- Responsive: Usa los breakpoints para adaptar layouts
🔗 Ver también
- AppSpacing para espaciado y padding basado en estas escalas
- AppRadius para border radius consistente
- AppUI para acceso rápido a constantes UI comunes
📚 Referencias
Properties
- hashCode → int
-
The hash code for this object.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Constants
- aspectRatioCinematic → const double
- 2.35 - Cinemático (21:9) - Películas y ultra-wide
- aspectRatioPhoto → const double
- 1.5 - Formato foto (3:2) - Cámaras DSLR
- aspectRatioSquare → const double
- 1.0 - Cuadrado perfecto (1:1)
- aspectRatioStandard → const double
- 1.33 - Formato estándar (4:3) - Común en fotografía tradicional
- aspectRatioWide → const double
- 1.78 - Widescreen (16:9) - Videos y pantallas modernas
- avatarHuge → const double
- 96.0 - Avatar enorme
- avatarLg → const double
- 48.0 - Avatar grande
- avatarMassive → const double
- 128.0 - Avatar masivo (para perfiles)
- avatarMd → const double
- 40.0 - Avatar mediano (uso común en listas)
- avatarSm → const double
- 32.0 - Avatar pequeño
- avatarXl → const double
- 64.0 - Avatar extra grande
- avatarXs → const double
- 24.0 - Avatar extra pequeño
- avatarXxl → const double
- 80.0 - Avatar muy grande
- colossal → const double
- 96.0 - Colosal
- elevationHuge → const double
- 16.0 - Elevación enorme (navigation drawer)
- elevationLg → const double
- 6.0 - Elevación media (floating action button)
- elevationMassive → const double
- 24.0 - Elevación masiva (modal bottom sheet)
- elevationMd → const double
- 4.0 - Elevación estándar (cards elevadas, app bar)
- elevationNone → const double
- 0.0 - Sin elevación
- elevationSm → const double
- 2.0 - Elevación baja (botones, chips)
- elevationXl → const double
- 8.0 - Elevación alta (drawer, bottom sheet)
- elevationXs → const double
- 1.0 - Elevación mínima (cards en reposo)
- elevationXxl → const double
- 12.0 - Elevación muy alta (dialogs)
- extreme → const double
- 80.0 - Extremo
- giant → const double
- 48.0 - Gigante
- huge → const double
- 32.0 - Enorme
- iconHuge → const double
- 48.0 - Ícono enorme
- iconLg → const double
- 24.0 - Tamaño estándar de Material Design
- iconMd → const double
- 20.0 - Ícono mediano
- iconSm → const double
- 16.0 - Ícono pequeño
- iconXl → const double
- 32.0 - Ícono extra grande
- iconXs → const double
- 12.0 - Ícono extra pequeño
- iconXxl → const double
- 40.0 - Ícono muy grande
- lg → const double
- 16.0 - Largo
- lgx → const double
- 18.0 - Largo a extra largo
- massive → const double
- 40.0 - Masivo
- maxContentWidth → const double
- 1536.0 - Ancho máximo para contenido centrado
- maxDesktopWidth → const double
- 1200.0 - Ancho máximo para desktop
- maxMobileWidth → const double
- 600.0 - Ancho máximo para dispositivos móviles
- maxTabletWidth → const double
- 900.0 - Ancho máximo para tablets
- md → const double
- 12.0 - Mediano
- mdl → const double
- 14.0 - Mediano a largo
- mds → const double
- 10.0 - Mediano pequeño
- mega → const double
- 56.0 - Mega
- none → const double
- 0.0 - Sin tamaño
- opacityDisabled → const double
- 0.38 - Estado deshabilitado (texto e iconos)
- opacityFull → const double
- 1.0 - Completamente opaco
- opacityHigh → const double
- 0.87 - Texto activo y primario
- opacityHover → const double
- 0.12 - Hover/Press sobre superficie (ripple effects)
- opacityMedium → const double
- 0.54 - Texto secundario y ayuda
- opacityMediumHigh → const double
- 0.70 - Nivel medio-alto (elementos menos importantes)
- opacityNone → const double
- 0.0 - Completamente transparente
- sm → const double
- 6.0 - Muy pequeño
- smd → const double
- 8.0 - Pequeño a mediano
- ultra → const double
- 64.0 - Ultra
- xl → const double
- 20.0 - Extra largo
- xs → const double
- 4.0 - Extra pequeño
- xxl → const double
- 24.0 - Extra extra largo
- xxs → const double
- 2.0 - Extra extra pequeño
- xxxl → const double
- 28.0 - Extra extra extra largo