Feat/98 set up design system#99
Merged
Merged
Conversation
- 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`.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.