feat: Material You design system rewrite — Phases 1–4
Complete UI/UX rewrite of hermes-mobile with Material You design system. Phase 1: Color/Theme/Type/Shapes/Spacing/Motion tokens Phase 2: HermesScaffold, StateViews (skeleton/empty/error), SearchBar, StatusBadge, ToggleRow Phase 3: Bottom nav + drawer navigation with NavigationController Phase 4: All 17 screens rewritten with HermesScaffold and Material You patterns Closes PR #3.
This commit is contained in:
29 files changed
+2669
-2377
No files matched your search
@@ -1,24 +1,32 @@
|
||||
package com.m57.hermescontrol.theme
|
||||
|
||||
import androidx.compose.runtime.staticCompositionLocalOf
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
||||
/**
|
||||
* Spacing tokens — use these instead of ad-hoc dp values so every screen
|
||||
* shares the same rhythm.
|
||||
* Spacing tokens — the 8 dp rhythm that every screen shares.
|
||||
*
|
||||
* Convention (Material 3 spacing scale, condensed):
|
||||
* xs = 4 hairline / chip gaps
|
||||
* sm = 8 default inner padding
|
||||
* md = 12 card content
|
||||
* lg = 16 screen edge, section gaps
|
||||
* xl = 24 hero spacing
|
||||
* xxl = 32 full-feature spacing
|
||||
* | Token | Value | Use case |
|
||||
* |-------|--------|-------------------------------------------|
|
||||
* | xs | 4 dp | Hairline gaps, chip inner padding |
|
||||
* | sm | 8 dp | Default inner padding, icon-to-text gap |
|
||||
* | md | 16 dp | Card content, screen edge, section gaps |
|
||||
* | lg | 24 dp | Hero spacing, between major sections |
|
||||
* | xl | 32 dp | Full-feature spacing, large section break |
|
||||
* | xxl | 48 dp | Maximum spacing, rare |
|
||||
*
|
||||
* Access in composables via `LocalSpacing.current` or the [Spacing] object.
|
||||
*/
|
||||
object Spacing {
|
||||
val xs = 4.dp
|
||||
val sm = 8.dp
|
||||
val md = 12.dp
|
||||
val lg = 16.dp
|
||||
val xl = 24.dp
|
||||
val xxl = 32.dp
|
||||
val md = 16.dp
|
||||
val lg = 24.dp
|
||||
val xl = 32.dp
|
||||
val xxl = 48.dp
|
||||
}
|
||||
|
||||
/** Alias for backwards-compatibility — existing `Spacing.xs` calls still work. */
|
||||
val SpacingDefaults = Spacing
|
||||
|
||||
val LocalSpacing = staticCompositionLocalOf { Spacing }
|
||||
Reference in new issue
Block a user