├── app ├── .gitignore ├── src │ └── main │ │ ├── res │ │ ├── values │ │ │ ├── strings.xml │ │ │ ├── colors.xml │ │ │ └── themes.xml │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.webp │ │ │ └── ic_launcher_round.webp │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.webp │ │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.webp │ │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.webp │ │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.webp │ │ │ └── ic_launcher_round.webp │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ ├── values-night │ │ │ └── themes.xml │ │ └── drawable-v24 │ │ │ └── ic_launcher_foreground.xml │ │ ├── java │ │ └── com │ │ │ └── github │ │ │ └── k0shk0sh │ │ │ └── compose │ │ │ └── easyforms │ │ │ └── example │ │ │ ├── ui │ │ │ ├── theme │ │ │ │ ├── Color.kt │ │ │ │ ├── Shape.kt │ │ │ │ ├── Type.kt │ │ │ │ └── Theme.kt │ │ │ └── components │ │ │ │ ├── Misc.kt │ │ │ │ ├── Sliders.kt │ │ │ │ └── Dropdown.kt │ │ │ ├── custom_states │ │ │ ├── MyFormKeys.kt │ │ │ ├── MyEasyFormsCustomStringState.kt │ │ │ ├── MyEasyFormsTextFieldFocusState.kt │ │ │ └── MyEasyFormsCheckboxListState.kt │ │ │ ├── model │ │ │ └── CheckboxModel.kt │ │ │ └── MainViewModel.kt │ │ └── AndroidManifest.xml ├── proguard-rules.pro └── build.gradle.kts ├── easyforms ├── .gitignore ├── consumer-rules.pro ├── gradle.properties ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ └── java │ │ └── com │ │ └── github │ │ └── k0shk0sh │ │ └── compose │ │ └── easyforms │ │ ├── EasyFormsErrorState.kt │ │ ├── EasyFormsRestorationHandler.kt │ │ ├── EasyFormsResult.kt │ │ └── EasyFormsValidationType.kt ├── proguard-rules.pro └── build.gradle.kts ├── easy_version.json ├── docs ├── styles │ ├── logo-styles.css │ └── jetbrains-mono.css ├── images │ ├── logo-icon.svg │ ├── copy-icon.svg │ ├── footer-go-to-link.svg │ ├── arrow_down.svg │ ├── copy-successful-icon.svg │ ├── go-to-top-icon.svg │ ├── anchor-copy-button.svg │ └── docs_logo.svg ├── scripts │ ├── sourceset_dependencies.js │ ├── clipboard.js │ ├── navigation-loader.js │ └── navigation-pane.json ├── index.html └── easyforms │ └── com.github.k0shk0sh.compose.easyforms │ ├── -easy-forms-error-state │ ├── -v-a-l-i-d │ │ ├── name.html │ │ └── ordinal.html │ ├── -i-n-i-t-i-a-l │ │ ├── name.html │ │ └── ordinal.html │ └── -i-n-v-a-l-i-d │ │ ├── name.html │ │ └── ordinal.html │ ├── -easy-forms │ ├── -easy-forms.html │ ├── form-keys.html │ ├── form-data.html │ └── form-states.html │ ├── -easy-forms-state │ ├── state.html │ └── error-state.html │ ├── -easy-forms-validation-type │ ├── regex.html │ ├── max-length.html │ ├── min-length.html │ └── is-valid.html │ ├── -easy-forms-radio-button-state │ ├── on-click.html │ ├── state.html │ ├── on-value-changed-callback.html │ └── -easy-forms-radio-button-state.html │ ├── -easy-forms-slider-state │ ├── state.html │ ├── -easy-forms-slider-state.html │ └── on-value-change-finished.html │ ├── -easy-forms-switch-state │ ├── state.html │ └── -easy-forms-switch-state.html │ ├── -easy-forms-tri-checkbox-state │ ├── on-click.html │ └── state.html │ ├── -easy-forms-checkbox-state │ ├── state.html │ └── -easy-forms-checkbox-state.html │ ├── -easy-forms-text-field-state │ └── state.html │ └── -easy-forms-range-slider-state │ ├── state.html │ └── on-value-change-finished.html ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── .gitignore ├── .github ├── ISSUE_TEMPLATE │ ├── config.yml │ ├── feature_request.md │ └── bug_report.md ├── CONTRIBUTING.md └── workflows │ ├── release.yml │ └── build.yml ├── settings.gradle.kts ├── gradle.properties └── gradlew.bat /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /easyforms/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /easyforms/consumer-rules.pro: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /easy_version.json: -------------------------------------------------------------------------------- 1 | { 2 | "major": 0, 3 | "minor": 2, 4 | "patch": 0 5 | } -------------------------------------------------------------------------------- /docs/styles/logo-styles.css: -------------------------------------------------------------------------------- 1 | #logo { 2 | background-image: url(../images/docs_logo.svg); 3 | } -------------------------------------------------------------------------------- /app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Compose EasyForms 3 | -------------------------------------------------------------------------------- /easyforms/gradle.properties: -------------------------------------------------------------------------------- 1 | POM_ARTIFACT_ID=compose-easyforms 2 | POM_NAME=Compose EasyForms library 3 | POM_PACKAGING=aar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/k0shk0sh/ComposeEasyForms/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /easyforms/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/k0shk0sh/ComposeEasyForms/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/k0shk0sh/ComposeEasyForms/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/k0shk0sh/ComposeEasyForms/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/k0shk0sh/ComposeEasyForms/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/k0shk0sh/ComposeEasyForms/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/k0shk0sh/ComposeEasyForms/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/k0shk0sh/ComposeEasyForms/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/k0shk0sh/ComposeEasyForms/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/k0shk0sh/ComposeEasyForms/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/k0shk0sh/ComposeEasyForms/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /docs/images/logo-icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /docs/scripts/sourceset_dependencies.js: -------------------------------------------------------------------------------- 1 | sourceset_dependencies='{":easyforms:dokkaHtml/androidTestRelease":[],":easyforms:dokkaHtml/debug":[],":easyforms:dokkaHtml/main":[],":easyforms:dokkaHtml/release":[]}' 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea 5 | .DS_Store 6 | /build 7 | /buildSrc/build 8 | /buildSrc/.gradle 9 | /captures 10 | .externalNativeBuild 11 | .cxx 12 | local.properties 13 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: Discussions 4 | url: https://github.com/k0shk0sh/ComposeEasyForms/discussions 5 | about: Please ask and answer questions here -------------------------------------------------------------------------------- /docs/images/copy-icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /docs/images/footer-go-to-link.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /docs/images/arrow_down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sat Sep 11 18:00:32 CEST 2021 2 | distributionBase=GRADLE_USER_HOME 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /docs/images/copy-successful-icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /settings.gradle.kts: -------------------------------------------------------------------------------- 1 | dependencyResolutionManagement { 2 | repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) 3 | repositories { 4 | google() 5 | mavenCentral() 6 | } 7 | } 8 | rootProject.name = "Compose EasyForms" 9 | include(":app") 10 | include(":easyforms") 11 | -------------------------------------------------------------------------------- /docs/images/go-to-top-icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/java/com/github/k0shk0sh/compose/easyforms/example/ui/theme/Color.kt: -------------------------------------------------------------------------------- 1 | package com.github.k0shk0sh.compose.easyforms.example.ui.theme 2 | 3 | import androidx.compose.ui.graphics.Color 4 | 5 | val Purple200 = Color(0xFFBB86FC) 6 | val Purple500 = Color(0xFF6200EE) 7 | val Purple700 = Color(0xFF3700B3) 8 | val Teal200 = Color(0xFF03DAC5) -------------------------------------------------------------------------------- /app/src/main/java/com/github/k0shk0sh/compose/easyforms/example/custom_states/MyFormKeys.kt: -------------------------------------------------------------------------------- 1 | package com.github.k0shk0sh.compose.easyforms.example.custom_states 2 | 3 | enum class MyFormKeys { 4 | EMAIL, PASSWORD, SALUTATION, NAME, URL, CUSTOM_FOCUS, 5 | PHONE, CARD, CHECKBOX, LIST_CHECKBOX, TRI_CHECKBOX, RADIO_BUTTON, 6 | SWITCH, SLIDER, RANGE_SLIDER 7 | } -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFBB86FC 4 | #FF6200EE 5 | #FF3700B3 6 | #FF03DAC5 7 | #FF018786 8 | #FF000000 9 | #FFFFFFFF 10 | -------------------------------------------------------------------------------- /app/src/main/java/com/github/k0shk0sh/compose/easyforms/example/ui/theme/Shape.kt: -------------------------------------------------------------------------------- 1 | package com.github.k0shk0sh.compose.easyforms.example.ui.theme 2 | 3 | import androidx.compose.foundation.shape.RoundedCornerShape 4 | import androidx.compose.material.Shapes 5 | import androidx.compose.ui.unit.dp 6 | 7 | val Shapes = Shapes( 8 | small = RoundedCornerShape(4.dp), 9 | medium = RoundedCornerShape(4.dp), 10 | large = RoundedCornerShape(0.dp) 11 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/github/k0shk0sh/compose/easyforms/example/model/CheckboxModel.kt: -------------------------------------------------------------------------------- 1 | package com.github.k0shk0sh.compose.easyforms.example.model 2 | 3 | import android.os.Parcelable 4 | import kotlinx.parcelize.Parcelize 5 | 6 | @Parcelize 7 | data class CheckboxModel( 8 | val id: String, 9 | val isSelected: Boolean, 10 | ) : Parcelable 11 | 12 | fun listOfCheckboxes(): List = listOf( 13 | CheckboxModel("1", false), 14 | CheckboxModel("2", false), 15 | CheckboxModel("3", true), 16 | CheckboxModel("4", false), 17 | CheckboxModel("5", false), 18 | ) -------------------------------------------------------------------------------- /easyforms/src/main/java/com/github/k0shk0sh/compose/easyforms/EasyFormsErrorState.kt: -------------------------------------------------------------------------------- 1 | package com.github.k0shk0sh.compose.easyforms 2 | 3 | /** 4 | * Represent the three different states a field could have. 5 | */ 6 | enum class EasyFormsErrorState { 7 | /** 8 | * This is the default state for all of the form fields as it provide better UX 9 | * to not show the errors when form is created. 10 | */ 11 | INITIAL, 12 | 13 | /** 14 | * This determines that the form field data is valid. 15 | */ 16 | VALID, 17 | 18 | /** 19 | * This determines that the form field data is invalid. 20 | */ 21 | INVALID; 22 | } -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '[Idea]' 5 | labels: 'enhancement' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. -------------------------------------------------------------------------------- /.github/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # How to Contribute 2 | 3 | We'd love to accept your patches and contributions to this project. There are just a few small 4 | guidelines you need to follow: 5 | 6 | - Create an Issue first to discuss if its worth implementing or if its already in our pipeline. 7 | - Please use meaningful commit messages. 8 | - Create a new Branch with the changes you made. 9 | - Submit your Pull Request with an explanation. 10 | 11 | > I really appreciate your efforts on contributing to this project. 12 | 13 | ## Code reviews 14 | 15 | All submissions, require review. We use GitHub pull requests for this purpose. Consult 16 | [GitHub Help](https://help.github.com/articles/about-pull-requests/) for more information on using 17 | pull requests. 18 | -------------------------------------------------------------------------------- /docs/images/anchor-copy-button.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/src/main/java/com/github/k0shk0sh/compose/easyforms/example/ui/components/Misc.kt: -------------------------------------------------------------------------------- 1 | package com.github.k0shk0sh.compose.easyforms.example.ui.components 2 | 3 | import androidx.compose.foundation.layout.Spacer 4 | import androidx.compose.foundation.layout.padding 5 | import androidx.compose.material.MaterialTheme 6 | import androidx.compose.material.Text 7 | import androidx.compose.runtime.Composable 8 | import androidx.compose.ui.Modifier 9 | import androidx.compose.ui.unit.Dp 10 | import androidx.compose.ui.unit.dp 11 | 12 | @Composable 13 | fun SmallText(text: String) { 14 | Text(text = text, style = MaterialTheme.typography.overline) 15 | } 16 | 17 | @Composable 18 | fun Space( 19 | padding: Dp = 16.dp, 20 | ) { 21 | Spacer(modifier = Modifier.padding(padding)) 22 | } -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | ## Describe the bug 11 | A clear and concise description of what the bug is. 12 | 13 | ## To Reproduce 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. See error 18 | 19 | ## Expected behavior 20 | A clear and concise description of what you expected to happen. 21 | 22 | ## Screenshots? 23 | If applicable, add screenshots to help explain your problem. 24 | 25 | ## Environment: 26 | - Android OS version: [e.g. Android 5.0] 27 | - Device: [e.g. Emulator, Google Pixel 4] 28 | - EasyForms version: [e.g. v1.x.x] 29 | 30 | ## Additional context 31 | Add any other context about the problem here. 32 | -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /easyforms/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | android.useAndroidX=true 2 | org.gradle.configureondemand=true 3 | org.gradle.caching=true 4 | org.gradle.parallel=true 5 | org.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=1024m -XX:+HeapDumpOnOutOfMemoryError 6 | 7 | # POM Config 8 | GROUP=com.github.k0shk0sh 9 | POM_DESCRIPTION=Focus on building your form UI while the library do the heavy work for you. 10 | POM_INCEPTION_YEAR=2021 11 | POM_URL=https://github.com/k0shk0sh/ComposeEasyForms 12 | POM_SCM_URL=https://github.com/k0shk0sh/ComposeEasyForms 13 | POM_SCM_CONNECTION=scm:git@github.com:k0shk0sh/ComposeEasyForms.git 14 | POM_SCM_DEV_CONNECTION=scm:git@github.com:k0shk0sh/ComposeEasyForms.git 15 | POM_LICENCE_NAME=The Apache Software License, Version 2.0 16 | POM_LICENCE_URL=http://www.apache.org/licenses/LICENSE-2.0.txt 17 | POM_LICENCE_DIST=repo 18 | POM_DEVELOPER_ID=k0shk0sh 19 | POM_DEVELOPER_NAME=Kosh 20 | POM_DEVELOPER_URL=https://github.com/k0shk0sh/ -------------------------------------------------------------------------------- /app/src/main/res/values-night/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/github/k0shk0sh/compose/easyforms/example/ui/theme/Type.kt: -------------------------------------------------------------------------------- 1 | package com.github.k0shk0sh.compose.easyforms.example.ui.theme 2 | 3 | import androidx.compose.material.Typography 4 | import androidx.compose.ui.text.TextStyle 5 | import androidx.compose.ui.text.font.FontFamily 6 | import androidx.compose.ui.text.font.FontWeight 7 | import androidx.compose.ui.unit.sp 8 | 9 | // Set of Material typography styles to start with 10 | val Typography = Typography( 11 | body1 = TextStyle( 12 | fontFamily = FontFamily.Default, 13 | fontWeight = FontWeight.Normal, 14 | fontSize = 16.sp 15 | ) 16 | /* Other default text styles to override 17 | button = TextStyle( 18 | fontFamily = FontFamily.Default, 19 | fontWeight = FontWeight.W500, 20 | fontSize = 14.sp 21 | ), 22 | caption = TextStyle( 23 | fontFamily = FontFamily.Default, 24 | fontWeight = FontWeight.Normal, 25 | fontSize = 12.sp 26 | ) 27 | */ 28 | ) -------------------------------------------------------------------------------- /app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 12 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /docs/styles/jetbrains-mono.css: -------------------------------------------------------------------------------- 1 | @font-face{ 2 | font-family: 'JetBrains Mono'; 3 | src: url('https://raw.githubusercontent.com/JetBrains/JetBrainsMono/master/fonts/web/JetBrainsMono-Regular.eot') format('embedded-opentype'), 4 | url('https://raw.githubusercontent.com/JetBrains/JetBrainsMono/master/fonts/webfonts/JetBrainsMono-Regular.woff2') format('woff2'), 5 | url('https://raw.githubusercontent.com/JetBrains/JetBrainsMono/master/fonts/ttf/JetBrainsMono-Regular.ttf') format('truetype'); 6 | font-weight: normal; 7 | font-style: normal; 8 | } 9 | 10 | @font-face{ 11 | font-family: 'JetBrains Mono'; 12 | src: url('https://raw.githubusercontent.com/JetBrains/JetBrainsMono/master/fonts/web/JetBrainsMono-Bold.eot') format('embedded-opentype'), 13 | url('https://raw.githubusercontent.com/JetBrains/JetBrainsMono/master/fonts/webfonts/JetBrainsMono-Bold.woff2') format('woff2'), 14 | url('https://raw.githubusercontent.com/JetBrains/JetBrainsMono/master/fonts/ttf/JetBrainsMono-Bold.ttf') format('truetype'); 15 | font-weight: normal; 16 | font-style: normal; 17 | } -------------------------------------------------------------------------------- /app/src/main/res/values/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16 | 17 | 21 | 22 |