{"id":21743979,"url":"https://github.com/telefonica/mistica-android","last_synced_at":"2026-02-10T17:08:32.997Z","repository":{"id":36967150,"uuid":"267631895","full_name":"Telefonica/mistica-android","owner":"Telefonica","description":null,"archived":false,"fork":false,"pushed_at":"2025-10-24T15:06:50.000Z","size":173301,"stargazers_count":16,"open_issues_count":2,"forks_count":5,"subscribers_count":30,"default_branch":"main","last_synced_at":"2025-10-24T17:18:25.996Z","etag":null,"topics":["cdco","managed","org-cdo","srv-novum"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Telefonica.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-05-28T15:51:48.000Z","updated_at":"2025-10-22T15:42:30.000Z","dependencies_parsed_at":"2023-12-28T11:37:48.442Z","dependency_job_id":"98cca5a5-25ce-4f0f-a63c-d183d1aa13a0","html_url":"https://github.com/Telefonica/mistica-android","commit_stats":null,"previous_names":[],"tags_count":220,"template":false,"template_full_name":null,"purl":"pkg:github/Telefonica/mistica-android","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Telefonica%2Fmistica-android","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Telefonica%2Fmistica-android/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Telefonica%2Fmistica-android/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Telefonica%2Fmistica-android/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Telefonica","download_url":"https://codeload.github.com/Telefonica/mistica-android/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Telefonica%2Fmistica-android/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":282445596,"owners_count":26670239,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-03T02:00:05.676Z","response_time":108,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cdco","managed","org-cdo","srv-novum"],"created_at":"2024-11-26T07:09:37.941Z","updated_at":"2025-11-03T11:03:37.521Z","avatar_url":"https://github.com/Telefonica.png","language":"Kotlin","readme":"![Mistica for Android](doc/images/mistica-android-light.svg#gh-light-mode-only)\n![Mistica for Android](doc/images/mistica-android-dark.svg#gh-dark-mode-only)\n\n[![Platform](https://img.shields.io/badge/Platform-Android-brightgreen)](https://github.com/Telefonica/mistica-android)\n[![Version](https://img.shields.io/maven-metadata/v.svg?label=maven-central\u0026metadataUrl=https%3A%2F%2Frepo1.maven.org%2Fmaven2%2Fcom%2Ftelefonica%2Fmistica%2Fmaven-metadata.xml)](https://central.sonatype.com/artifact/com.telefonica/mistica)\n[![Support](https://img.shields.io/badge/Support-%3E%3D%20Android%205.0-brightgreen)](https://github.com/Telefonica/mistica-android)\n[![Kotlin version badge](https://img.shields.io/badge/kotlin-1.8.20-blue.svg)](https://kotlinlang.org/docs/whatsnew1820.html)\n\nMistica is a framework that contains reusable UI components and utilities.\n\n## Compose support\n\nThere is a currently work in progress compose version of the library. Check the documentation [here](library/src/main/java/com/telefonica/mistica/compose)\n\n## Installation\n\n\nInside the dependency block in the `build.gradle` of your application, add this line to add the library:\n\n```groovy\nrepositories {\n    mavenCentral()\n}\ndependencies {\n    ...\n    implementation 'com.telefonica:mistica:$version'\n    ...\n}\n```\n\nIn case you also want to include also the components catalog in your application:\n\n```groovy\ndependencies {\n    ...\n    implementation 'com.telefonica:mistica:$version'\n    implementation 'com.telefonica:mistica-catalog:$version'\n    ...\n}\n```\n\n## Configuration\n\nMistica provides an Android theme for each brand supported by telefonica.\nJust set your App or any specific activity to use any of the following:\n\n* MisticaTheme.Movistar\n* MisticaTheme.O2New\n* MisticaTheme.VivoNew\n* MisticaTheme.Telefonica\n* MisticaTheme.Blau\n\n```xml\n\u003cmanifest ...\u003e\n    \u003capplication\n        ...\n        android:theme=\"@style/MisticaTheme.Movistar\" /\u003e\n\u003c/manifest\u003e\n```\n\n## Components\n\n* [Badges](library/src/main/java/com/telefonica/mistica/badge)\n* [Buttons](library/src/main/java/com/telefonica/mistica/button)\n* [Callout](library/src/main/java/com/telefonica/mistica/callout)\n* [Carousel](library/src/main/java/com/telefonica/mistica/carousel)\n* [Controls](library/src/main/java/com/telefonica/mistica/control)\n* [Data Cards](library/src/main/java/com/telefonica/mistica/card/datacard)\n* [Empty State Cards](library/src/main/java/com/telefonica/mistica/emptystate/card)\n* [Empty States](library/src/main/java/com/telefonica/mistica/emptystate/screen)\n* [Filters](library/src/main/java/com/telefonica/mistica/filters)\n* [Headers](library/src/main/java/com/telefonica/mistica/header)\n* [Highlighted Cards](library/src/main/java/com/telefonica/mistica/highlightedcard)\n* [Inputs](library/src/main/java/com/telefonica/mistica/input)\n* [Link](library/src/main/java/com/telefonica/mistica/link)\n* [Lists](library/src/main/java/com/telefonica/mistica/list)\n* [Load Error Feedback](library/src/main/java/com/telefonica/mistica/feedback/error)\n* [Media Cards](library/src/main/java/com/telefonica/mistica/card/mediacard)\n* [Pop Overs](library/src/main/java/com/telefonica/mistica/feedback/popover)\n* [Poster Card](library/src/main/java/com/telefonica/mistica/compose/card/postercard)\n* [Screen Feedbacks](library/src/main/java/com/telefonica/mistica/feedback/screen)\n* [Scroll Content Indicator](library/src/main/java/com/telefonica/mistica/contentindicator)\n* [Sheet](library/src/main/java/com/telefonica/mistica/sheet)\n* [Skeletons](library/src/main/java/com/telefonica/mistica/compose/skeleton)\n* [Snackbars](library/src/main/java/com/telefonica/mistica/feedback)\n* [Steppers](library/src/main/java/com/telefonica/mistica/stepper)\n* [Tabs](library/src/main/java/com/telefonica/mistica/tabs)\n* [Tags](library/src/main/java/com/telefonica/mistica/tag)\n* [Title](library/src/main/java/com/telefonica/mistica/title)\n* [HighLightedCard (Compose version)](library/src/main/java/com/telefonica/mistica/compose/card/highlightedcard)\n\n## Text Presets Styles\n\nLibrary includes a set of available [Text Appearance](library/src/main/res/values/styles_fonts.xml) styles, applicable for all kind of TextViews.\n\n## Using fonts\n\nMistica defines 3 typographic styles to be used along with the library, these typefaces are defined as attributes and can be override using some allowed fonts.\nMore info [here](library/src/main/java/com/telefonica/mistica/fonts)\n\n## Working with semantic colors/gradients\n\nFor each supported brand, Mistica exposes a set of theme properties (attributes in xml) customized accordingly for each brand.\n\nMore info [here](library/src/main/java/com/telefonica/mistica/theme)\n\n## Demo app\n\nThere is a demo of currently implemented components in this repository. A full list of implemented components can be found here: [Components](library/src/main/java/com/telefonica/mistica).\n\nTo compile the app manually run the [App](app) module in Android Studio.\n\n\u003cp align=\"left\"\u003e\n    \u003cimg width=\"25%\" src=\"./doc/images/catalog/catalog.png\"\u003e\n\u003c/p\u003e\n\n## Working with this project locally\n\nIn case you are making a change in the library that yoy want to test in other client app but you don't want to release a new version or even an snapshot, then a local deployment of the lib can be done on your machine. \n\nSome small changes that **shouldn't be committed** are needed:\n- Comment `signing` section inside [`mavencentral.gradle`](mavencentral.gradle) file. The reason is because you probably won't have the secrets for signing the library aar and because they aren't actually needed for this kind of local deployment.\n\n```groovy\n/*\nsigning {\n    def signingKeyId = findProperty(\"signingKeyId\")\n    def signingKey = findProperty(\"signingKey\")\n    def signingPassword = findProperty(\"signingPassword\")\n    useInMemoryPgpKeys(signingKeyId, signingKey, signingPassword)\n    sign publishing.publications\n}\n*/\n```\n\n- Set a preferred SNAPSHOT version for your local release in [`mavencentral.gradle`](mavencentral.gradle):\n\n```groovy\nPUBLISH_VERSION = '1.0.0-SNAPSHOT'\n```\n\n- Build the artifacts:\n\n```bash\n./gradlew clean :library:assembleRelease :catalog:assembleRelease\n```\n\n- Release the artifacts to your local maven repository (`~.m2`directory). Note the `ToMavenLocal` suffix:\n\n```bash\n./gradlew :library:publishReleasePublicationToMavenLocal :catalog:publishCatalogPublicationToMavenLocal\n```\n\n- Now you can go back to your client app repository, add `mavenLocal()` to the list of repositories on `build.gradle`\n\n```groovy\nallprojects {\n    repositories {\n        mavenLocal() // It is recommended to place it on first place\n        // ... your other repositories\n    }\n}\n```\n\n- Update the version of mistica to the one the snapshot was released with, sync your project and the dependency should be resolved with the artifact including your local changes.\n\n## Snapshot generation with GitHub Action\nTo create a new snapshot go to [the snapshot.yml Action](https://github.com/Telefonica/mistica-android/actions/workflows/snapshot.yml), select a branch and enter the version, like\n``` x.x.x ```\n\nAfter a while, the new version will be available, keep in mind that the version name will be ``` x.x.x-SNAPSHOT ```\n\n## Design tokens\nWe have several tokens that are defined by the UX team (colors, radius and text presets) in a [JSON format](https://github.com/Telefonica/mistica-design/tree/production/tokens). Using these files, we generate XML and Kotlin files that are used in the library.\n\nYou should not modify manually the generated files. All the generated files have a comment at the beginning to identify them.\n\n[There is a more detailed documentation](tokens/README.md) about how to work with this design tokens generation.  \n\n## Library size\n\nLibrary aar size is around **270 KB**, without including transitive dependencies (Lottie, material and kotlin).\n\nYour app size increase may depend on which of these transitive libraries are already being used, and also, the usage of them, so proguard can shrink more or less code.\n\nJust to put an example, in a common scenario where your app is already using material and kotlin libs, app size increase should be around 400 KB\n\n## Contributing\n\nSee [CONTRIBUTING.md](./CONTRIBUTING.md)\n \n## Upgrading guide\n\nSee [UPGRADING.md](./UPGRADING.md)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftelefonica%2Fmistica-android","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftelefonica%2Fmistica-android","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftelefonica%2Fmistica-android/lists"}