Skip to content

Feat/98 set up design system#99

Merged
MarcelMilka merged 11 commits into
masterfrom
feat/98-set-up-design-system
Apr 3, 2026
Merged

Feat/98 set up design system#99
MarcelMilka merged 11 commits into
masterfrom
feat/98-set-up-design-system

Conversation

@MarcelMilka
Copy link
Copy Markdown
Owner

No description provided.

- Create `SiaTheme` with custom color palettes, typography, and spacing tokens.
- Add `FilledButton` component supporting multiple states (Enabled, Disabled, Loading, Error, Success) and sizes.
- Implement `LoadingIndicator`, `HorizontalSpacer`, and `VerticalSpacer` components.
- Define design tokens for `Radius`, `Space`, and `Opacity`.
- Configure `SiaTypography` using Roboto and Roboto Slab font families.
- Add required font assets for Roboto and Roboto Slab.
…nd accessibility

- Relocate `FilledButton.kt` to `eu.project.design_system.component.button` and extract helper functions to `ButtonUtils.kt`.
- Transition from `TextButton` to `Button` and update styling logic for borders and content padding.
- Add `testTag` as a required parameter for `FilledButton` and `LoadingIndicator` to improve testability.
- Integrate `ContentDescription` and `TestTag` registries to centralize accessibility and testing identifiers.
- Implement `FilledButtonTest` to verify button behavior across different states (Enabled, Loading, Error, Success).
- Add `ui-test-junit4` and `ui-test-manifest` dependencies to `ui/build.gradle.kts`.
…component

- Create `ButtonAnimatedContent` in `ButtonUtils.kt` to handle common button states including `Enabled`, `Disabled`, `Loading`, `Error`, and `Success`.
- Refactor `FilledButton` to use the new `ButtonAnimatedContent` component, reducing code duplication.
- Standardize the layout of button content using a `Row` with configurable horizontal arrangement and centered vertical alignment.
- Use `AnimatedContent` within the new component to handle transitions between different button states.
- Implement `OutlinedButton` supporting `Secondary` and `Destructive` types.
- Support multiple button states including `Enabled`, `Disabled`, `Loading`, `Error`, and `Success`.
- Add configuration options for `ButtonSize`, `fullWidth`, and `leftAligned` layout.
- Include `OutlinedButtonTest` to verify state rendering, click behavior, and width constraints.
- Implement `TextButton` design system component with support for `Primary`, `Secondary`, and `Destructive` types.
- Add configuration options for `ButtonSize`, `ButtonState`, `fullWidth` toggling, and `leftAligned` arrangement.
- Integrate `ButtonAnimatedContent` to handle state transitions (Loading, Error, Success) within the button.
- Add `TextButtonTest` to verify label rendering, state-based content visibility, enabled/disabled policies, and click behavior.
- Create `IconButton` custom component using Material3 with support for `IconButtonType` (Primary, Secondary, Destructive) and `IconButtonState`.
- Implement semantic properties for accessibility using labels and test tags.
- Add comprehensive instrumentation tests in `IconButtonTest.kt` to verify display, enabled/disabled states, and click behavior.
- Implement a custom `Checkbox` component using Material3 with `SiaTheme` styling.
- Add `CheckboxState` enum to manage selected and unselected states.
- Include `CheckboxTest` for verifying rendering states and toggle behavior.
- Implement `Dialog` using Material3 `AlertDialog` with customizable headline, supporting text, and action buttons.
- Define `DialogState` to manage dialog visibility.
- Add `dialogConfirmButton` and `dialogDismissButton` helper functions to `TestTag` for standardized testing.
- Add `DialogTest` to verify visibility states and button click behaviors.
- Implement a generic `BottomSheet` component using Material3 `ModalBottomSheet`.
- Define `BottomSheetState` sealed class to handle `Hidden` and `Shown` states with type-safe data.
- Configure `BottomSheet` with custom theme styling, including specific corner radius and surface colors.
- Add `BottomSheetTest` to verify visibility, data passing, dismiss behavior, and state transitions.
- Rename the application from "Say It Again" to "Sia" in `strings.xml`.
- Update `AndroidManifest.xml` to use `@mipmap/ic_launcher` and `@mipmap/ic_launcher_round` instead of the previous MVP icon.
- Add adaptive icon XML definitions for API 26+ including support for background, foreground, and monochrome layers.
- Add new launcher icon assets in WebP format across all screen density buckets (hdpi, mdpi, xhdpi, xxhdpi, xxxhdpi).
- Define `ic_launcher_background` color as `#1E1E1E`.
- Add `ic_launcher-playstore.png` for store listing.
- Add `androidx.core:core-splashscreen` dependency (version 1.2.0).
- Create `sia_icon.xml` vector drawable for the splash screen icon.
- Define `Theme.Sia.Start` in `themes.xml` using `Theme.SplashScreen` with a new background color.
- Update `MainActivity` to call `installSplashScreen()` before `onCreate`.
- Rename base theme from `Theme.SayItAgain` to `Theme.Sia`.
- Update `AndroidManifest.xml` to use the splash screen theme for the application and main activity.
- Remove legacy `mvp_icon.png`.
@MarcelMilka MarcelMilka merged commit fadaf61 into master Apr 3, 2026
1 check passed
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