diff --git a/.github/workflows/pre-release.yml b/.github/workflows/pre-release.yml new file mode 100644 index 0000000..1a4999a --- /dev/null +++ b/.github/workflows/pre-release.yml @@ -0,0 +1,63 @@ +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. + +# This workflow performs a Maven Pre-Release +# +# Scans are triggered: +# 1. On every push to default and protected branches +# 2. On every Pull Request targeting the default branch +# 3. On a weekly schedule +# 4. Manually, on demand, via the "workflow_dispatch" event +# + +name: Maven Pre-Release + +on: + # Triggers the workflow on push or pull request events but only for default and protected branches + push: + tags: + - 'v[0-9]+.[0-9]+.[0-9]+-*' + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "scan" + scan: + name: Maven Pre-Release + + permissions: + # required for all workflows + security-events: write + # only required for workflows in private repositories + actions: read + contents: read + + # The type of runner that the job will run on + runs-on: ubuntu-latest + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Sets up JDK as a prerequisite to run Gradle + - name: Setup Java + uses: actions/setup-java@v4.2.1 + with: + java-version: '17' + distribution: 'zulu' + + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - name: Checkout repository + uses: actions/checkout@v4.1.2 + + # Sets up Gradle as a prerequisite to run Maven Pre-Release + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v3.1.0 + with: + gradle-home-cache-cleanup: true + + # Performs a Local Maven Pre-Release + - name: Run Maven Local Pre-Release + env: + ORG_GRADLE_PROJECT_signingKey: ${{ secrets.GPG_SIGNING_KEY }} + ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.GPG_SIGNING_PASSWORD }} + run: ./gradlew publishReleasePublicationToMavenLocal diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..3781f85 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,109 @@ +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. + +# This workflow performs a Maven Release +# +# Scans are triggered: +# 1. On every push to default and protected branches +# 2. On every Pull Request targeting the default branch +# 3. On a weekly schedule +# 4. Manually, on demand, via the "workflow_dispatch" event +# + +name: Maven Release + +on: + # Triggers the workflow on push or pull request events but only for default and protected branches + push: + branches: [ main ] + tags: + - 'v[0-9]+.[0-9]+.[0-9]' + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "scan" + create_staging_repository: + runs-on: ubuntu-latest + name: Create staging repository + outputs: + repository_id: ${{ steps.create.outputs.repository_id }} + steps: + - id: create + uses: nexus-actions/create-nexus-staging-repo@main + with: + username: ${{ secrets.NXRM_TOKEN_USERNAME }} + password: ${{ secrets.NXRM_TOKEN_PASSWORD }} + staging_profile_id: ${{ secrets.NXRM_PROFILE_ID }} + description: ${{ github.repository }}/${{ github.workflow }}#${{ github.run_number }} + + publish: + name: Maven Release + + permissions: + # required for all workflows + security-events: write + # only required for workflows in private repositories + actions: read + contents: read + + # The type of runner that the job will run on + runs-on: ubuntu-latest + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Sets up JDK as a prerequisite to run Gradle + - name: Setup Java + uses: actions/setup-java@v4.2.1 + with: + java-version: '17' + distribution: 'zulu' + + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - name: Checkout repository + uses: actions/checkout@v4.1.2 + + # Sets up Gradle as a prerequisite to run Maven Release + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v3.1.0 + with: + gradle-home-cache-cleanup: true + + # Performs a Local Maven Release + - name: Run Maven Local Release + env: + ORG_GRADLE_PROJECT_signingKey: ${{ secrets.GPG_SIGNING_KEY }} + ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.GPG_SIGNING_PASSWORD }} + run: ./gradlew publishReleasePublicationToMavenLocal + + # Performs a Maven Release to oss.sonatype.org + - name: Run Maven Release to OSSRH + env: + ossrhUsername: ${{ secrets.NXRM_TOKEN_USERNAME }} + ossrhPassword: ${{ secrets.NXRM_TOKEN_PASSWORD }} + ORG_GRADLE_PROJECT_ossrhUsername: ${{ secrets.NXRM_TOKEN_USERNAME }} + ORG_GRADLE_PROJECT_ossrhPassword: ${{ secrets.NXRM_TOKEN_PASSWORD }} + ORG_GRADLE_PROJECT_signingKey: ${{ secrets.GPG_SIGNING_KEY }} + ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.GPG_SIGNING_PASSWORD }} + run: ./gradlew clean publishReleasePublicationToOSSRHRepository + + finalize: + runs-on: ubuntu-latest + needs: [create_staging_repository,publish] + if: ${{ always() && needs.create_staging_repository.result == 'success' }} + steps: + - name: Discard + if: ${{ needs.publish.result != 'success' }} + uses: nexus-actions/drop-nexus-staging-repo@main + with: + username: ${{ secrets.NXRM_TOKEN_USERNAME }} + password: ${{ secrets.NXRM_TOKEN_PASSWORD }} + staging_repository_id: ${{ needs.create_staging_repository.outputs.repository_id }} + - name: Release + if: ${{ needs.publish.result == 'success' }} + uses: nexus-actions/release-nexus-staging-repo@main + with: + username: ${{ secrets.NXRM_TOKEN_USERNAME }} + password: ${{ secrets.NXRM_TOKEN_PASSWORD }} + staging_repository_id: ${{ needs.create_staging_repository.outputs.repository_id }} diff --git a/.idea/git_toolbox_prj.xml b/.idea/git_toolbox_prj.xml new file mode 100644 index 0000000..02b915b --- /dev/null +++ b/.idea/git_toolbox_prj.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index cf5d4ff..b950f84 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,8 +1,13 @@ + + + diff --git a/README.md b/README.md index 220ad02..29b673b 100644 --- a/README.md +++ b/README.md @@ -262,3 +262,23 @@ This library may periodically receive updates with bug fixes, security patches, These releases may also update dependencies, language engines, and operating systems, as we\'ll follow the deprecation and sunsetting policies of the underlying technologies that the libraries use. This means that after a dependency (e.g. language, framework, or operating system) is deprecated by its maintainer, this library will also be deprecated by us, and may eventually be updated to use a newer version. + +## Release Process + +The release process is as follows: +- Update the version in the `library/build.gradle.kts` file according to the [Semantic Versioning](https://semver.org/) guidelines. +- Update the documentation with `./gradlew dokkaHtml`. +- Commit the changes with the commit message `chore(release): 🎉`. +- Create a new tag `v`. +- Push the changes and the tag to the repository. + +A workflow will automatically create a GitHub release, build the library, and publish it to Maven Central. + +After the release is published, update the version in the [FusionAuth Android Quickstart Repository](https://github.com/FusionAuth/fusionauth-quickstart-java-android-fusionauth-sdk/): +- Check out the https://github.com/FusionAuth/fusionauth-quickstart-java-android-fusionauth-sdk/ repository. +- Replace the `app/src` directory with the `app/src` of this repository. +- Update `implementation("io.fusionauth:fusionauth-android-sdk:${version}")` in the `app/build.gradle` file. +- (Optional) If the `app/build.gradle.kts` file was changed, update the `build.gradle.kts` in the quickstart repository accordingly. +- Commit the changes with the commit message `chore(release): 🎉`. +- Create a new tag `v`. +- Push the changes and the tag to the repository. diff --git a/build.gradle.kts b/build.gradle.kts index 3a968d0..4e25c62 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -8,6 +8,7 @@ plugins { id("com.android.library") version "8.4.1" apply false id("io.gitlab.arturbosch.detekt") version "1.23.6" id("org.jetbrains.dokka") version "1.9.20" + id("io.github.gradle-nexus.publish-plugin") version "1.3.0" kotlin("jvm") version "2.0.0" kotlin("plugin.serialization") version "2.0.0" @@ -37,3 +38,14 @@ allprojects { input.from(tasks.withType().map { it.sarifReportFile }) } } + +nexusPublishing { + repositories { + sonatype { + nexusUrl.set(uri("https://your-server.com/staging")) + snapshotRepositoryUrl.set(uri("https://your-server.com/snapshots")) + username.set("your-username") // defaults to project.properties["myNexusUsername"] + password.set("your-password") // defaults to project.properties["myNexusPassword"] + } + } +} \ No newline at end of file diff --git a/fusionauth/1.47.1/kickstart/css/styles.css b/fusionauth/1.47.1/kickstart/css/styles.css index 59cfdd9..4b0c851 100644 --- a/fusionauth/1.47.1/kickstart/css/styles.css +++ b/fusionauth/1.47.1/kickstart/css/styles.css @@ -1,13 +1,13 @@ :root { --main-text-color: #424242; - --main-accent-color: #083b94; + --main-accent-color: #096324; --input-background: #fbfbfb; --body-background: #f7f7f7; --tooltip-background: #e2e2e2; --error-color: #ff0000; --error-background: #ffe8e8; --border-color: #dddddd; - --logo-url: url(https://fusionauth.io/assets/img/samplethemes/changebank/changebank.svg); + --logo-url: url(https://fusionauth.io/cdn/samplethemes/changebank/changebank.svg); --font-stack: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; } body { @@ -33,7 +33,7 @@ body { /* Changes for Powered by FusionAuth div */ body > main main.page-body { min-height: calc(100vh - 3rem); /* to make the Powered by FusionAuth div position at the bottom of the page if the page is shorter than the viewport */ - padding-top: 5rem; + padding-top: 3rem; } body > main { padding-bottom: 2.5rem; /* giving Powered by FusionAuth more space */ @@ -44,15 +44,10 @@ body > main { /* End Powered by FusionAuth */ -/* Uncomment following to hide help bar at top */ -/* +/* Hiding help bar at top */ body > main { padding-top: 0; } -body > main header.app-header { - display: none; -} -*/ /* end help bar */ @@ -100,7 +95,7 @@ a:visited { .button.blue:hover { opacity: .8 !important; background: var(--main-accent-color) !important; -} +} .button.blue:focus { background: var(--main-accent-color) !important; box-shadow: inset 0 1px 2px rgba(0,0,0,0.4),0 0 0 2px rgba(57,152,219,0.4); @@ -163,9 +158,9 @@ label.checkbox { margin: 1rem 0; font-weight: 400; } -.input-addon-group, -.input-addon-group > :last-child:not(.flat), -.input-addon-group > .input:last-child:not(.flat), +.input-addon-group, +.input-addon-group > :last-child:not(.flat), +.input-addon-group > .input:last-child:not(.flat), .input-addon-group > input:last-child:not(.flat) { color: var(--main-text-color); /* overriding typical text color for inputs */ } @@ -175,18 +170,18 @@ label.checkbox { input::placeholder { color: var(--main-text-color); } -.input, -input[type="email"], -input[type="file"], -input[type="number"], -input[type="search"], -input[type="text"], -input[type="tel"], -input[type="url"], -input[type="password"], -textarea, +.input, +input[type="email"], +input[type="file"], +input[type="number"], +input[type="search"], +input[type="text"], +input[type="tel"], +input[type="url"], +input[type="password"], +textarea, label.select select - { +{ background: var(--input-background); border: 1px solid var(--border-color) !important; border-radius: .25rem !important; @@ -406,7 +401,7 @@ table thead tr { background: var(--main-accent-color); height: 1rem; } -hr, +hr, .hr-container hr { border: none; height: 1px; @@ -488,7 +483,7 @@ hr, #oauth-complete-reg .page-body > .row > .col-sm-8, #oauth-complete-reg .page-body > .row > .col-md-6, #oauth-complete-reg .page-body > .row > .col-lg-5, -#oauth-complete-reg .page-body > .row > .col-xl-4, +#oauth-complete-reg .page-body > .row > .col-xl-4, #oauth-child-reg .page-body > .row > .col-xs, #oauth-child-reg .page-body > .row > .col-sm-8, #oauth-child-reg .page-body > .row > .col-md-6, @@ -498,47 +493,47 @@ hr, #oauth-child-reg-complete .page-body > .row > .col-sm-8, #oauth-child-reg-complete .page-body > .row > .col-md-6, #oauth-child-reg-complete .page-body > .row > .col-lg-5, -#oauth-child-reg-complete .page-body > .row > .col-xl-4, +#oauth-child-reg-complete .page-body > .row > .col-xl-4, #oauth-not-registered .page-body > .row > .col-xs, #oauth-not-registered .page-body > .row > .col-sm-8, #oauth-not-registered .page-body > .row > .col-md-6, #oauth-not-registered .page-body > .row > .col-lg-5, -#oauth-not-registered .page-body > .row > .col-xl-4, +#oauth-not-registered .page-body > .row > .col-xl-4, #oauth-error .page-body > .row > .col-xs, #oauth-error .page-body > .row > .col-sm-8, #oauth-error .page-body > .row > .col-md-6, #oauth-error .page-body > .row > .col-lg-5, -#oauth-error .page-body > .row > .col-xl-4, +#oauth-error .page-body > .row > .col-xl-4, #oauthstart-idp-link .page-body > .row > .col-xs, #oauthstart-idp-link .page-body > .row > .col-sm-8, #oauthstart-idp-link .page-body > .row > .col-md-6, #oauthstart-idp-link .page-body > .row > .col-lg-5, -#oauthstart-idp-link .page-body > .row > .col-xl-4, +#oauthstart-idp-link .page-body > .row > .col-xl-4, #oauth-wait .page-body > .row > .col-xs, #oauth-wait .page-body > .row > .col-sm-8, #oauth-wait .page-body > .row > .col-md-6, #oauth-wait .page-body > .row > .col-lg-5, -#oauth-wait .page-body > .row > .col-xl-4, +#oauth-wait .page-body > .row > .col-xl-4, #email-verification .page-body > .row > .col-xs, #email-verification .page-body > .row > .col-sm-8, #email-verification .page-body > .row > .col-md-6, #email-verification .page-body > .row > .col-lg-5, -#email-verification .page-body > .row > .col-xl-4, +#email-verification .page-body > .row > .col-xl-4, #email-ver-required .page-body > .row > .col-xs, #email-ver-required .page-body > .row > .col-sm-8, #email-ver-required .page-body > .row > .col-md-6, #email-ver-required .page-body > .row > .col-lg-5, -#email-ver-required .page-body > .row > .col-xl-4, +#email-ver-required .page-body > .row > .col-xl-4, #email-ver-complete .page-body > .row > .col-xs, #email-ver-complete .page-body > .row > .col-sm-8, #email-ver-complete .page-body > .row > .col-md-6, #email-ver-complete .page-body > .row > .col-lg-5, -#email-ver-complete .page-body > .row > .col-xl-4, +#email-ver-complete .page-body > .row > .col-xl-4, #email-ver-resent .page-body > .row > .col-xs, #email-ver-resent .page-body > .row > .col-sm-8, #email-ver-resent .page-body > .row > .col-md-6, #email-ver-resent .page-body > .row > .col-lg-5, -#email-ver-resent .page-body > .row > .col-xl-4, +#email-ver-resent .page-body > .row > .col-xl-4, #forgot-pwd .page-body > .row > .col-xs, #forgot-pwd .page-body > .row > .col-sm-8, #forgot-pwd .page-body > .row > .col-md-6, @@ -572,7 +567,7 @@ hr, #acct-2fa-enable .page-body > .row > .col-xs-12, #acct-2fa-enable .page-body > .row > .col-sm-12, #acct-2fa-enable .page-body > .row > .col-md-10, -#acct-2fa-enable .page-body > .row > .col-lg-8, +#acct-2fa-enable .page-body > .row > .col-lg-8, #acct-2fa-disable .page-body > .row > .col-xs-12, #acct-2fa-disable .page-body > .row > .col-sm-12, #acct-2fa-disable .page-body > .row > .col-md-10, @@ -583,12 +578,12 @@ hr, #unauthorized-page .page-body > .row > .col-xl-5, #change-pwd .page-body > .row > .col-xs, #change-pwd .page-body > .row > .col-sm-8, -#change-pwd .page-body > .row > .col-md-6, +#change-pwd .page-body > .row > .col-md-6, #change-pwd .page-body > .row > .col-lg-5, #change-pwd .page-body > .row > .col-xl-4, #change-pwd-complete .page-body > .row > .col-xs, #change-pwd-complete .page-body > .row > .col-sm-8, -#change-pwd-complete .page-body > .row > .col-md-6, +#change-pwd-complete .page-body > .row > .col-md-6, #change-pwd-complete .page-body > .row > .col-lg-5, #change-pwd-complete .page-body > .row > .col-xl-4 { flex-basis: 33rem; @@ -640,7 +635,7 @@ hr, #oauth-complete-reg .page-body > .row > .col-sm-8, #oauth-complete-reg .page-body > .row > .col-md-6, #oauth-complete-reg .page-body > .row > .col-lg-5, - #oauth-complete-reg .page-body > .row > .col-xl-4, + #oauth-complete-reg .page-body > .row > .col-xl-4, #oauth-child-reg .page-body > .row > .col-xs, #oauth-child-reg .page-body > .row > .col-sm-8, #oauth-child-reg .page-body > .row > .col-md-6, @@ -650,17 +645,17 @@ hr, #oauth-child-reg-complete .page-body > .row > .col-sm-8, #oauth-child-reg-complete .page-body > .row > .col-md-6, #oauth-child-reg-complete .page-body > .row > .col-lg-5, - #oauth-child-reg-complete .page-body > .row > .col-xl-4, + #oauth-child-reg-complete .page-body > .row > .col-xl-4, #oauth-not-registered .page-body > .row > .col-xs, #oauth-not-registered .page-body > .row > .col-sm-8, #oauth-not-registered .page-body > .row > .col-md-6, #oauth-not-registered .page-body > .row > .col-lg-5, - #oauth-not-registered .page-body > .row > .col-xl-4, + #oauth-not-registered .page-body > .row > .col-xl-4, #oauth-error .page-body > .row > .col-xs, #oauth-error .page-body > .row > .col-sm-8, #oauth-error .page-body > .row > .col-md-6, #oauth-error .page-body > .row > .col-lg-5, - #oauth-error .page-body > .row > .col-xl-4, + #oauth-error .page-body > .row > .col-xl-4, #oauthstart-idp-link .page-body > .row > .col-xs, #oauthstart-idp-link .page-body > .row > .col-sm-8, #oauthstart-idp-link .page-body > .row > .col-md-6, @@ -670,27 +665,27 @@ hr, #oauth-wait .page-body > .row > .col-sm-8, #oauth-wait .page-body > .row > .col-md-6, #oauth-wait .page-body > .row > .col-lg-5, - #oauth-wait .page-body > .row > .col-xl-4, + #oauth-wait .page-body > .row > .col-xl-4, #email-verification .page-body > .row > .col-xs, #email-verification .page-body > .row > .col-sm-8, #email-verification .page-body > .row > .col-md-6, #email-verification .page-body > .row > .col-lg-5, - #email-verification .page-body > .row > .col-xl-4, + #email-verification .page-body > .row > .col-xl-4, #email-ver-required .page-body > .row > .col-xs, #email-ver-required .page-body > .row > .col-sm-8, #email-ver-required .page-body > .row > .col-md-6, #email-ver-required .page-body > .row > .col-lg-5, - #email-ver-required .page-body > .row > .col-xl-4, + #email-ver-required .page-body > .row > .col-xl-4, #email-ver-complete .page-body > .row > .col-xs, #email-ver-complete .page-body > .row > .col-sm-8, #email-ver-complete .page-body > .row > .col-md-6, #email-ver-complete .page-body > .row > .col-lg-5, - #email-ver-complete .page-body > .row > .col-xl-4, + #email-ver-complete .page-body > .row > .col-xl-4, #email-ver-resent .page-body > .row > .col-xs, #email-ver-resent .page-body > .row > .col-sm-8, #email-ver-resent .page-body > .row > .col-md-6, #email-ver-resent .page-body > .row > .col-lg-5, - #email-ver-resent .page-body > .row > .col-xl-4, + #email-ver-resent .page-body > .row > .col-xl-4, #forgot-pwd .page-body > .row > .col-xs, #forgot-pwd .page-body > .row > .col-sm-8, #forgot-pwd .page-body > .row > .col-md-6, @@ -735,12 +730,12 @@ hr, #unauthorized-page .page-body > .row > .col-xl-5, #change-pwd .page-body > .row > .col-xs, #change-pwd .page-body > .row > .col-sm-8, - #change-pwd .page-body > .row > .col-md-6, + #change-pwd .page-body > .row > .col-md-6, #change-pwd .page-body > .row > .col-lg-5, #change-pwd .page-body > .row > .col-xl-4, #change-pwd-complete .page-body > .row > .col-xs, #change-pwd-complete .page-body > .row > .col-sm-8, - #change-pwd-complete .page-body > .row > .col-md-6, + #change-pwd-complete .page-body > .row > .col-md-6, #change-pwd-complete .page-body > .row > .col-lg-5, #change-pwd-complete .page-body > .row > .col-xl-4 { flex-basis: calc(100% - 30px); @@ -764,7 +759,7 @@ hr, #acct-2fa-index .page-body > .row > .col-lg-8 { flex-basis: 54.125rem; max-width: 54.125rem; - } + } #acct-2fa-index .page-body > .row.center:last-of-type { width: 54.125rem; } @@ -787,10 +782,10 @@ hr, #oauth-two-factor-methods .full, #oauth-two-factor-methods .blue.button, #oauth-authorize .panel > main > form > .form-row:first-of-type, -#oauth-passwordless .panel > main > .full > .form-row:first-of-type, +#oauth-passwordless .panel > main > .full > .form-row:first-of-type, #oauth-register .panel > main > .full > .form-row:first-of-type, #forgot-pwd .panel > main > .full fieldset, -#forgot-pwd .panel .grecaptcha-msg, +#forgot-pwd .panel .grecaptcha-msg, #change-pwd .panel > main .full > .form-row:first-of-type, #acct-2fa-index .panel > main > fieldset { margin-bottom: 0; @@ -1000,10 +995,10 @@ hr, #acct-index .page-body > .row:first-of-type > .col-lg-8 { flex-basis: 54.125rem; max-width: 54.125rem; - } + } #acct-index .page-body > .row.center:last-of-type { width: 54.125rem; - } + } #acct-index .panel:before { width: 6.25rem; } @@ -1104,4 +1099,3 @@ hr, padding: 0; } /* End page specific buttons and links */ - diff --git a/fusionauth/1.48.3/kickstart/css/styles.css b/fusionauth/1.48.3/kickstart/css/styles.css index 59cfdd9..4b0c851 100644 --- a/fusionauth/1.48.3/kickstart/css/styles.css +++ b/fusionauth/1.48.3/kickstart/css/styles.css @@ -1,13 +1,13 @@ :root { --main-text-color: #424242; - --main-accent-color: #083b94; + --main-accent-color: #096324; --input-background: #fbfbfb; --body-background: #f7f7f7; --tooltip-background: #e2e2e2; --error-color: #ff0000; --error-background: #ffe8e8; --border-color: #dddddd; - --logo-url: url(https://fusionauth.io/assets/img/samplethemes/changebank/changebank.svg); + --logo-url: url(https://fusionauth.io/cdn/samplethemes/changebank/changebank.svg); --font-stack: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; } body { @@ -33,7 +33,7 @@ body { /* Changes for Powered by FusionAuth div */ body > main main.page-body { min-height: calc(100vh - 3rem); /* to make the Powered by FusionAuth div position at the bottom of the page if the page is shorter than the viewport */ - padding-top: 5rem; + padding-top: 3rem; } body > main { padding-bottom: 2.5rem; /* giving Powered by FusionAuth more space */ @@ -44,15 +44,10 @@ body > main { /* End Powered by FusionAuth */ -/* Uncomment following to hide help bar at top */ -/* +/* Hiding help bar at top */ body > main { padding-top: 0; } -body > main header.app-header { - display: none; -} -*/ /* end help bar */ @@ -100,7 +95,7 @@ a:visited { .button.blue:hover { opacity: .8 !important; background: var(--main-accent-color) !important; -} +} .button.blue:focus { background: var(--main-accent-color) !important; box-shadow: inset 0 1px 2px rgba(0,0,0,0.4),0 0 0 2px rgba(57,152,219,0.4); @@ -163,9 +158,9 @@ label.checkbox { margin: 1rem 0; font-weight: 400; } -.input-addon-group, -.input-addon-group > :last-child:not(.flat), -.input-addon-group > .input:last-child:not(.flat), +.input-addon-group, +.input-addon-group > :last-child:not(.flat), +.input-addon-group > .input:last-child:not(.flat), .input-addon-group > input:last-child:not(.flat) { color: var(--main-text-color); /* overriding typical text color for inputs */ } @@ -175,18 +170,18 @@ label.checkbox { input::placeholder { color: var(--main-text-color); } -.input, -input[type="email"], -input[type="file"], -input[type="number"], -input[type="search"], -input[type="text"], -input[type="tel"], -input[type="url"], -input[type="password"], -textarea, +.input, +input[type="email"], +input[type="file"], +input[type="number"], +input[type="search"], +input[type="text"], +input[type="tel"], +input[type="url"], +input[type="password"], +textarea, label.select select - { +{ background: var(--input-background); border: 1px solid var(--border-color) !important; border-radius: .25rem !important; @@ -406,7 +401,7 @@ table thead tr { background: var(--main-accent-color); height: 1rem; } -hr, +hr, .hr-container hr { border: none; height: 1px; @@ -488,7 +483,7 @@ hr, #oauth-complete-reg .page-body > .row > .col-sm-8, #oauth-complete-reg .page-body > .row > .col-md-6, #oauth-complete-reg .page-body > .row > .col-lg-5, -#oauth-complete-reg .page-body > .row > .col-xl-4, +#oauth-complete-reg .page-body > .row > .col-xl-4, #oauth-child-reg .page-body > .row > .col-xs, #oauth-child-reg .page-body > .row > .col-sm-8, #oauth-child-reg .page-body > .row > .col-md-6, @@ -498,47 +493,47 @@ hr, #oauth-child-reg-complete .page-body > .row > .col-sm-8, #oauth-child-reg-complete .page-body > .row > .col-md-6, #oauth-child-reg-complete .page-body > .row > .col-lg-5, -#oauth-child-reg-complete .page-body > .row > .col-xl-4, +#oauth-child-reg-complete .page-body > .row > .col-xl-4, #oauth-not-registered .page-body > .row > .col-xs, #oauth-not-registered .page-body > .row > .col-sm-8, #oauth-not-registered .page-body > .row > .col-md-6, #oauth-not-registered .page-body > .row > .col-lg-5, -#oauth-not-registered .page-body > .row > .col-xl-4, +#oauth-not-registered .page-body > .row > .col-xl-4, #oauth-error .page-body > .row > .col-xs, #oauth-error .page-body > .row > .col-sm-8, #oauth-error .page-body > .row > .col-md-6, #oauth-error .page-body > .row > .col-lg-5, -#oauth-error .page-body > .row > .col-xl-4, +#oauth-error .page-body > .row > .col-xl-4, #oauthstart-idp-link .page-body > .row > .col-xs, #oauthstart-idp-link .page-body > .row > .col-sm-8, #oauthstart-idp-link .page-body > .row > .col-md-6, #oauthstart-idp-link .page-body > .row > .col-lg-5, -#oauthstart-idp-link .page-body > .row > .col-xl-4, +#oauthstart-idp-link .page-body > .row > .col-xl-4, #oauth-wait .page-body > .row > .col-xs, #oauth-wait .page-body > .row > .col-sm-8, #oauth-wait .page-body > .row > .col-md-6, #oauth-wait .page-body > .row > .col-lg-5, -#oauth-wait .page-body > .row > .col-xl-4, +#oauth-wait .page-body > .row > .col-xl-4, #email-verification .page-body > .row > .col-xs, #email-verification .page-body > .row > .col-sm-8, #email-verification .page-body > .row > .col-md-6, #email-verification .page-body > .row > .col-lg-5, -#email-verification .page-body > .row > .col-xl-4, +#email-verification .page-body > .row > .col-xl-4, #email-ver-required .page-body > .row > .col-xs, #email-ver-required .page-body > .row > .col-sm-8, #email-ver-required .page-body > .row > .col-md-6, #email-ver-required .page-body > .row > .col-lg-5, -#email-ver-required .page-body > .row > .col-xl-4, +#email-ver-required .page-body > .row > .col-xl-4, #email-ver-complete .page-body > .row > .col-xs, #email-ver-complete .page-body > .row > .col-sm-8, #email-ver-complete .page-body > .row > .col-md-6, #email-ver-complete .page-body > .row > .col-lg-5, -#email-ver-complete .page-body > .row > .col-xl-4, +#email-ver-complete .page-body > .row > .col-xl-4, #email-ver-resent .page-body > .row > .col-xs, #email-ver-resent .page-body > .row > .col-sm-8, #email-ver-resent .page-body > .row > .col-md-6, #email-ver-resent .page-body > .row > .col-lg-5, -#email-ver-resent .page-body > .row > .col-xl-4, +#email-ver-resent .page-body > .row > .col-xl-4, #forgot-pwd .page-body > .row > .col-xs, #forgot-pwd .page-body > .row > .col-sm-8, #forgot-pwd .page-body > .row > .col-md-6, @@ -572,7 +567,7 @@ hr, #acct-2fa-enable .page-body > .row > .col-xs-12, #acct-2fa-enable .page-body > .row > .col-sm-12, #acct-2fa-enable .page-body > .row > .col-md-10, -#acct-2fa-enable .page-body > .row > .col-lg-8, +#acct-2fa-enable .page-body > .row > .col-lg-8, #acct-2fa-disable .page-body > .row > .col-xs-12, #acct-2fa-disable .page-body > .row > .col-sm-12, #acct-2fa-disable .page-body > .row > .col-md-10, @@ -583,12 +578,12 @@ hr, #unauthorized-page .page-body > .row > .col-xl-5, #change-pwd .page-body > .row > .col-xs, #change-pwd .page-body > .row > .col-sm-8, -#change-pwd .page-body > .row > .col-md-6, +#change-pwd .page-body > .row > .col-md-6, #change-pwd .page-body > .row > .col-lg-5, #change-pwd .page-body > .row > .col-xl-4, #change-pwd-complete .page-body > .row > .col-xs, #change-pwd-complete .page-body > .row > .col-sm-8, -#change-pwd-complete .page-body > .row > .col-md-6, +#change-pwd-complete .page-body > .row > .col-md-6, #change-pwd-complete .page-body > .row > .col-lg-5, #change-pwd-complete .page-body > .row > .col-xl-4 { flex-basis: 33rem; @@ -640,7 +635,7 @@ hr, #oauth-complete-reg .page-body > .row > .col-sm-8, #oauth-complete-reg .page-body > .row > .col-md-6, #oauth-complete-reg .page-body > .row > .col-lg-5, - #oauth-complete-reg .page-body > .row > .col-xl-4, + #oauth-complete-reg .page-body > .row > .col-xl-4, #oauth-child-reg .page-body > .row > .col-xs, #oauth-child-reg .page-body > .row > .col-sm-8, #oauth-child-reg .page-body > .row > .col-md-6, @@ -650,17 +645,17 @@ hr, #oauth-child-reg-complete .page-body > .row > .col-sm-8, #oauth-child-reg-complete .page-body > .row > .col-md-6, #oauth-child-reg-complete .page-body > .row > .col-lg-5, - #oauth-child-reg-complete .page-body > .row > .col-xl-4, + #oauth-child-reg-complete .page-body > .row > .col-xl-4, #oauth-not-registered .page-body > .row > .col-xs, #oauth-not-registered .page-body > .row > .col-sm-8, #oauth-not-registered .page-body > .row > .col-md-6, #oauth-not-registered .page-body > .row > .col-lg-5, - #oauth-not-registered .page-body > .row > .col-xl-4, + #oauth-not-registered .page-body > .row > .col-xl-4, #oauth-error .page-body > .row > .col-xs, #oauth-error .page-body > .row > .col-sm-8, #oauth-error .page-body > .row > .col-md-6, #oauth-error .page-body > .row > .col-lg-5, - #oauth-error .page-body > .row > .col-xl-4, + #oauth-error .page-body > .row > .col-xl-4, #oauthstart-idp-link .page-body > .row > .col-xs, #oauthstart-idp-link .page-body > .row > .col-sm-8, #oauthstart-idp-link .page-body > .row > .col-md-6, @@ -670,27 +665,27 @@ hr, #oauth-wait .page-body > .row > .col-sm-8, #oauth-wait .page-body > .row > .col-md-6, #oauth-wait .page-body > .row > .col-lg-5, - #oauth-wait .page-body > .row > .col-xl-4, + #oauth-wait .page-body > .row > .col-xl-4, #email-verification .page-body > .row > .col-xs, #email-verification .page-body > .row > .col-sm-8, #email-verification .page-body > .row > .col-md-6, #email-verification .page-body > .row > .col-lg-5, - #email-verification .page-body > .row > .col-xl-4, + #email-verification .page-body > .row > .col-xl-4, #email-ver-required .page-body > .row > .col-xs, #email-ver-required .page-body > .row > .col-sm-8, #email-ver-required .page-body > .row > .col-md-6, #email-ver-required .page-body > .row > .col-lg-5, - #email-ver-required .page-body > .row > .col-xl-4, + #email-ver-required .page-body > .row > .col-xl-4, #email-ver-complete .page-body > .row > .col-xs, #email-ver-complete .page-body > .row > .col-sm-8, #email-ver-complete .page-body > .row > .col-md-6, #email-ver-complete .page-body > .row > .col-lg-5, - #email-ver-complete .page-body > .row > .col-xl-4, + #email-ver-complete .page-body > .row > .col-xl-4, #email-ver-resent .page-body > .row > .col-xs, #email-ver-resent .page-body > .row > .col-sm-8, #email-ver-resent .page-body > .row > .col-md-6, #email-ver-resent .page-body > .row > .col-lg-5, - #email-ver-resent .page-body > .row > .col-xl-4, + #email-ver-resent .page-body > .row > .col-xl-4, #forgot-pwd .page-body > .row > .col-xs, #forgot-pwd .page-body > .row > .col-sm-8, #forgot-pwd .page-body > .row > .col-md-6, @@ -735,12 +730,12 @@ hr, #unauthorized-page .page-body > .row > .col-xl-5, #change-pwd .page-body > .row > .col-xs, #change-pwd .page-body > .row > .col-sm-8, - #change-pwd .page-body > .row > .col-md-6, + #change-pwd .page-body > .row > .col-md-6, #change-pwd .page-body > .row > .col-lg-5, #change-pwd .page-body > .row > .col-xl-4, #change-pwd-complete .page-body > .row > .col-xs, #change-pwd-complete .page-body > .row > .col-sm-8, - #change-pwd-complete .page-body > .row > .col-md-6, + #change-pwd-complete .page-body > .row > .col-md-6, #change-pwd-complete .page-body > .row > .col-lg-5, #change-pwd-complete .page-body > .row > .col-xl-4 { flex-basis: calc(100% - 30px); @@ -764,7 +759,7 @@ hr, #acct-2fa-index .page-body > .row > .col-lg-8 { flex-basis: 54.125rem; max-width: 54.125rem; - } + } #acct-2fa-index .page-body > .row.center:last-of-type { width: 54.125rem; } @@ -787,10 +782,10 @@ hr, #oauth-two-factor-methods .full, #oauth-two-factor-methods .blue.button, #oauth-authorize .panel > main > form > .form-row:first-of-type, -#oauth-passwordless .panel > main > .full > .form-row:first-of-type, +#oauth-passwordless .panel > main > .full > .form-row:first-of-type, #oauth-register .panel > main > .full > .form-row:first-of-type, #forgot-pwd .panel > main > .full fieldset, -#forgot-pwd .panel .grecaptcha-msg, +#forgot-pwd .panel .grecaptcha-msg, #change-pwd .panel > main .full > .form-row:first-of-type, #acct-2fa-index .panel > main > fieldset { margin-bottom: 0; @@ -1000,10 +995,10 @@ hr, #acct-index .page-body > .row:first-of-type > .col-lg-8 { flex-basis: 54.125rem; max-width: 54.125rem; - } + } #acct-index .page-body > .row.center:last-of-type { width: 54.125rem; - } + } #acct-index .panel:before { width: 6.25rem; } @@ -1104,4 +1099,3 @@ hr, padding: 0; } /* End page specific buttons and links */ - diff --git a/fusionauth/1.49.2/kickstart/css/styles.css b/fusionauth/1.49.2/kickstart/css/styles.css index 59cfdd9..4b0c851 100644 --- a/fusionauth/1.49.2/kickstart/css/styles.css +++ b/fusionauth/1.49.2/kickstart/css/styles.css @@ -1,13 +1,13 @@ :root { --main-text-color: #424242; - --main-accent-color: #083b94; + --main-accent-color: #096324; --input-background: #fbfbfb; --body-background: #f7f7f7; --tooltip-background: #e2e2e2; --error-color: #ff0000; --error-background: #ffe8e8; --border-color: #dddddd; - --logo-url: url(https://fusionauth.io/assets/img/samplethemes/changebank/changebank.svg); + --logo-url: url(https://fusionauth.io/cdn/samplethemes/changebank/changebank.svg); --font-stack: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; } body { @@ -33,7 +33,7 @@ body { /* Changes for Powered by FusionAuth div */ body > main main.page-body { min-height: calc(100vh - 3rem); /* to make the Powered by FusionAuth div position at the bottom of the page if the page is shorter than the viewport */ - padding-top: 5rem; + padding-top: 3rem; } body > main { padding-bottom: 2.5rem; /* giving Powered by FusionAuth more space */ @@ -44,15 +44,10 @@ body > main { /* End Powered by FusionAuth */ -/* Uncomment following to hide help bar at top */ -/* +/* Hiding help bar at top */ body > main { padding-top: 0; } -body > main header.app-header { - display: none; -} -*/ /* end help bar */ @@ -100,7 +95,7 @@ a:visited { .button.blue:hover { opacity: .8 !important; background: var(--main-accent-color) !important; -} +} .button.blue:focus { background: var(--main-accent-color) !important; box-shadow: inset 0 1px 2px rgba(0,0,0,0.4),0 0 0 2px rgba(57,152,219,0.4); @@ -163,9 +158,9 @@ label.checkbox { margin: 1rem 0; font-weight: 400; } -.input-addon-group, -.input-addon-group > :last-child:not(.flat), -.input-addon-group > .input:last-child:not(.flat), +.input-addon-group, +.input-addon-group > :last-child:not(.flat), +.input-addon-group > .input:last-child:not(.flat), .input-addon-group > input:last-child:not(.flat) { color: var(--main-text-color); /* overriding typical text color for inputs */ } @@ -175,18 +170,18 @@ label.checkbox { input::placeholder { color: var(--main-text-color); } -.input, -input[type="email"], -input[type="file"], -input[type="number"], -input[type="search"], -input[type="text"], -input[type="tel"], -input[type="url"], -input[type="password"], -textarea, +.input, +input[type="email"], +input[type="file"], +input[type="number"], +input[type="search"], +input[type="text"], +input[type="tel"], +input[type="url"], +input[type="password"], +textarea, label.select select - { +{ background: var(--input-background); border: 1px solid var(--border-color) !important; border-radius: .25rem !important; @@ -406,7 +401,7 @@ table thead tr { background: var(--main-accent-color); height: 1rem; } -hr, +hr, .hr-container hr { border: none; height: 1px; @@ -488,7 +483,7 @@ hr, #oauth-complete-reg .page-body > .row > .col-sm-8, #oauth-complete-reg .page-body > .row > .col-md-6, #oauth-complete-reg .page-body > .row > .col-lg-5, -#oauth-complete-reg .page-body > .row > .col-xl-4, +#oauth-complete-reg .page-body > .row > .col-xl-4, #oauth-child-reg .page-body > .row > .col-xs, #oauth-child-reg .page-body > .row > .col-sm-8, #oauth-child-reg .page-body > .row > .col-md-6, @@ -498,47 +493,47 @@ hr, #oauth-child-reg-complete .page-body > .row > .col-sm-8, #oauth-child-reg-complete .page-body > .row > .col-md-6, #oauth-child-reg-complete .page-body > .row > .col-lg-5, -#oauth-child-reg-complete .page-body > .row > .col-xl-4, +#oauth-child-reg-complete .page-body > .row > .col-xl-4, #oauth-not-registered .page-body > .row > .col-xs, #oauth-not-registered .page-body > .row > .col-sm-8, #oauth-not-registered .page-body > .row > .col-md-6, #oauth-not-registered .page-body > .row > .col-lg-5, -#oauth-not-registered .page-body > .row > .col-xl-4, +#oauth-not-registered .page-body > .row > .col-xl-4, #oauth-error .page-body > .row > .col-xs, #oauth-error .page-body > .row > .col-sm-8, #oauth-error .page-body > .row > .col-md-6, #oauth-error .page-body > .row > .col-lg-5, -#oauth-error .page-body > .row > .col-xl-4, +#oauth-error .page-body > .row > .col-xl-4, #oauthstart-idp-link .page-body > .row > .col-xs, #oauthstart-idp-link .page-body > .row > .col-sm-8, #oauthstart-idp-link .page-body > .row > .col-md-6, #oauthstart-idp-link .page-body > .row > .col-lg-5, -#oauthstart-idp-link .page-body > .row > .col-xl-4, +#oauthstart-idp-link .page-body > .row > .col-xl-4, #oauth-wait .page-body > .row > .col-xs, #oauth-wait .page-body > .row > .col-sm-8, #oauth-wait .page-body > .row > .col-md-6, #oauth-wait .page-body > .row > .col-lg-5, -#oauth-wait .page-body > .row > .col-xl-4, +#oauth-wait .page-body > .row > .col-xl-4, #email-verification .page-body > .row > .col-xs, #email-verification .page-body > .row > .col-sm-8, #email-verification .page-body > .row > .col-md-6, #email-verification .page-body > .row > .col-lg-5, -#email-verification .page-body > .row > .col-xl-4, +#email-verification .page-body > .row > .col-xl-4, #email-ver-required .page-body > .row > .col-xs, #email-ver-required .page-body > .row > .col-sm-8, #email-ver-required .page-body > .row > .col-md-6, #email-ver-required .page-body > .row > .col-lg-5, -#email-ver-required .page-body > .row > .col-xl-4, +#email-ver-required .page-body > .row > .col-xl-4, #email-ver-complete .page-body > .row > .col-xs, #email-ver-complete .page-body > .row > .col-sm-8, #email-ver-complete .page-body > .row > .col-md-6, #email-ver-complete .page-body > .row > .col-lg-5, -#email-ver-complete .page-body > .row > .col-xl-4, +#email-ver-complete .page-body > .row > .col-xl-4, #email-ver-resent .page-body > .row > .col-xs, #email-ver-resent .page-body > .row > .col-sm-8, #email-ver-resent .page-body > .row > .col-md-6, #email-ver-resent .page-body > .row > .col-lg-5, -#email-ver-resent .page-body > .row > .col-xl-4, +#email-ver-resent .page-body > .row > .col-xl-4, #forgot-pwd .page-body > .row > .col-xs, #forgot-pwd .page-body > .row > .col-sm-8, #forgot-pwd .page-body > .row > .col-md-6, @@ -572,7 +567,7 @@ hr, #acct-2fa-enable .page-body > .row > .col-xs-12, #acct-2fa-enable .page-body > .row > .col-sm-12, #acct-2fa-enable .page-body > .row > .col-md-10, -#acct-2fa-enable .page-body > .row > .col-lg-8, +#acct-2fa-enable .page-body > .row > .col-lg-8, #acct-2fa-disable .page-body > .row > .col-xs-12, #acct-2fa-disable .page-body > .row > .col-sm-12, #acct-2fa-disable .page-body > .row > .col-md-10, @@ -583,12 +578,12 @@ hr, #unauthorized-page .page-body > .row > .col-xl-5, #change-pwd .page-body > .row > .col-xs, #change-pwd .page-body > .row > .col-sm-8, -#change-pwd .page-body > .row > .col-md-6, +#change-pwd .page-body > .row > .col-md-6, #change-pwd .page-body > .row > .col-lg-5, #change-pwd .page-body > .row > .col-xl-4, #change-pwd-complete .page-body > .row > .col-xs, #change-pwd-complete .page-body > .row > .col-sm-8, -#change-pwd-complete .page-body > .row > .col-md-6, +#change-pwd-complete .page-body > .row > .col-md-6, #change-pwd-complete .page-body > .row > .col-lg-5, #change-pwd-complete .page-body > .row > .col-xl-4 { flex-basis: 33rem; @@ -640,7 +635,7 @@ hr, #oauth-complete-reg .page-body > .row > .col-sm-8, #oauth-complete-reg .page-body > .row > .col-md-6, #oauth-complete-reg .page-body > .row > .col-lg-5, - #oauth-complete-reg .page-body > .row > .col-xl-4, + #oauth-complete-reg .page-body > .row > .col-xl-4, #oauth-child-reg .page-body > .row > .col-xs, #oauth-child-reg .page-body > .row > .col-sm-8, #oauth-child-reg .page-body > .row > .col-md-6, @@ -650,17 +645,17 @@ hr, #oauth-child-reg-complete .page-body > .row > .col-sm-8, #oauth-child-reg-complete .page-body > .row > .col-md-6, #oauth-child-reg-complete .page-body > .row > .col-lg-5, - #oauth-child-reg-complete .page-body > .row > .col-xl-4, + #oauth-child-reg-complete .page-body > .row > .col-xl-4, #oauth-not-registered .page-body > .row > .col-xs, #oauth-not-registered .page-body > .row > .col-sm-8, #oauth-not-registered .page-body > .row > .col-md-6, #oauth-not-registered .page-body > .row > .col-lg-5, - #oauth-not-registered .page-body > .row > .col-xl-4, + #oauth-not-registered .page-body > .row > .col-xl-4, #oauth-error .page-body > .row > .col-xs, #oauth-error .page-body > .row > .col-sm-8, #oauth-error .page-body > .row > .col-md-6, #oauth-error .page-body > .row > .col-lg-5, - #oauth-error .page-body > .row > .col-xl-4, + #oauth-error .page-body > .row > .col-xl-4, #oauthstart-idp-link .page-body > .row > .col-xs, #oauthstart-idp-link .page-body > .row > .col-sm-8, #oauthstart-idp-link .page-body > .row > .col-md-6, @@ -670,27 +665,27 @@ hr, #oauth-wait .page-body > .row > .col-sm-8, #oauth-wait .page-body > .row > .col-md-6, #oauth-wait .page-body > .row > .col-lg-5, - #oauth-wait .page-body > .row > .col-xl-4, + #oauth-wait .page-body > .row > .col-xl-4, #email-verification .page-body > .row > .col-xs, #email-verification .page-body > .row > .col-sm-8, #email-verification .page-body > .row > .col-md-6, #email-verification .page-body > .row > .col-lg-5, - #email-verification .page-body > .row > .col-xl-4, + #email-verification .page-body > .row > .col-xl-4, #email-ver-required .page-body > .row > .col-xs, #email-ver-required .page-body > .row > .col-sm-8, #email-ver-required .page-body > .row > .col-md-6, #email-ver-required .page-body > .row > .col-lg-5, - #email-ver-required .page-body > .row > .col-xl-4, + #email-ver-required .page-body > .row > .col-xl-4, #email-ver-complete .page-body > .row > .col-xs, #email-ver-complete .page-body > .row > .col-sm-8, #email-ver-complete .page-body > .row > .col-md-6, #email-ver-complete .page-body > .row > .col-lg-5, - #email-ver-complete .page-body > .row > .col-xl-4, + #email-ver-complete .page-body > .row > .col-xl-4, #email-ver-resent .page-body > .row > .col-xs, #email-ver-resent .page-body > .row > .col-sm-8, #email-ver-resent .page-body > .row > .col-md-6, #email-ver-resent .page-body > .row > .col-lg-5, - #email-ver-resent .page-body > .row > .col-xl-4, + #email-ver-resent .page-body > .row > .col-xl-4, #forgot-pwd .page-body > .row > .col-xs, #forgot-pwd .page-body > .row > .col-sm-8, #forgot-pwd .page-body > .row > .col-md-6, @@ -735,12 +730,12 @@ hr, #unauthorized-page .page-body > .row > .col-xl-5, #change-pwd .page-body > .row > .col-xs, #change-pwd .page-body > .row > .col-sm-8, - #change-pwd .page-body > .row > .col-md-6, + #change-pwd .page-body > .row > .col-md-6, #change-pwd .page-body > .row > .col-lg-5, #change-pwd .page-body > .row > .col-xl-4, #change-pwd-complete .page-body > .row > .col-xs, #change-pwd-complete .page-body > .row > .col-sm-8, - #change-pwd-complete .page-body > .row > .col-md-6, + #change-pwd-complete .page-body > .row > .col-md-6, #change-pwd-complete .page-body > .row > .col-lg-5, #change-pwd-complete .page-body > .row > .col-xl-4 { flex-basis: calc(100% - 30px); @@ -764,7 +759,7 @@ hr, #acct-2fa-index .page-body > .row > .col-lg-8 { flex-basis: 54.125rem; max-width: 54.125rem; - } + } #acct-2fa-index .page-body > .row.center:last-of-type { width: 54.125rem; } @@ -787,10 +782,10 @@ hr, #oauth-two-factor-methods .full, #oauth-two-factor-methods .blue.button, #oauth-authorize .panel > main > form > .form-row:first-of-type, -#oauth-passwordless .panel > main > .full > .form-row:first-of-type, +#oauth-passwordless .panel > main > .full > .form-row:first-of-type, #oauth-register .panel > main > .full > .form-row:first-of-type, #forgot-pwd .panel > main > .full fieldset, -#forgot-pwd .panel .grecaptcha-msg, +#forgot-pwd .panel .grecaptcha-msg, #change-pwd .panel > main .full > .form-row:first-of-type, #acct-2fa-index .panel > main > fieldset { margin-bottom: 0; @@ -1000,10 +995,10 @@ hr, #acct-index .page-body > .row:first-of-type > .col-lg-8 { flex-basis: 54.125rem; max-width: 54.125rem; - } + } #acct-index .page-body > .row.center:last-of-type { width: 54.125rem; - } + } #acct-index .panel:before { width: 6.25rem; } @@ -1104,4 +1099,3 @@ hr, padding: 0; } /* End page specific buttons and links */ - diff --git a/fusionauth/1.50.1/kickstart/css/styles.css b/fusionauth/1.50.1/kickstart/css/styles.css index 59cfdd9..4b0c851 100644 --- a/fusionauth/1.50.1/kickstart/css/styles.css +++ b/fusionauth/1.50.1/kickstart/css/styles.css @@ -1,13 +1,13 @@ :root { --main-text-color: #424242; - --main-accent-color: #083b94; + --main-accent-color: #096324; --input-background: #fbfbfb; --body-background: #f7f7f7; --tooltip-background: #e2e2e2; --error-color: #ff0000; --error-background: #ffe8e8; --border-color: #dddddd; - --logo-url: url(https://fusionauth.io/assets/img/samplethemes/changebank/changebank.svg); + --logo-url: url(https://fusionauth.io/cdn/samplethemes/changebank/changebank.svg); --font-stack: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; } body { @@ -33,7 +33,7 @@ body { /* Changes for Powered by FusionAuth div */ body > main main.page-body { min-height: calc(100vh - 3rem); /* to make the Powered by FusionAuth div position at the bottom of the page if the page is shorter than the viewport */ - padding-top: 5rem; + padding-top: 3rem; } body > main { padding-bottom: 2.5rem; /* giving Powered by FusionAuth more space */ @@ -44,15 +44,10 @@ body > main { /* End Powered by FusionAuth */ -/* Uncomment following to hide help bar at top */ -/* +/* Hiding help bar at top */ body > main { padding-top: 0; } -body > main header.app-header { - display: none; -} -*/ /* end help bar */ @@ -100,7 +95,7 @@ a:visited { .button.blue:hover { opacity: .8 !important; background: var(--main-accent-color) !important; -} +} .button.blue:focus { background: var(--main-accent-color) !important; box-shadow: inset 0 1px 2px rgba(0,0,0,0.4),0 0 0 2px rgba(57,152,219,0.4); @@ -163,9 +158,9 @@ label.checkbox { margin: 1rem 0; font-weight: 400; } -.input-addon-group, -.input-addon-group > :last-child:not(.flat), -.input-addon-group > .input:last-child:not(.flat), +.input-addon-group, +.input-addon-group > :last-child:not(.flat), +.input-addon-group > .input:last-child:not(.flat), .input-addon-group > input:last-child:not(.flat) { color: var(--main-text-color); /* overriding typical text color for inputs */ } @@ -175,18 +170,18 @@ label.checkbox { input::placeholder { color: var(--main-text-color); } -.input, -input[type="email"], -input[type="file"], -input[type="number"], -input[type="search"], -input[type="text"], -input[type="tel"], -input[type="url"], -input[type="password"], -textarea, +.input, +input[type="email"], +input[type="file"], +input[type="number"], +input[type="search"], +input[type="text"], +input[type="tel"], +input[type="url"], +input[type="password"], +textarea, label.select select - { +{ background: var(--input-background); border: 1px solid var(--border-color) !important; border-radius: .25rem !important; @@ -406,7 +401,7 @@ table thead tr { background: var(--main-accent-color); height: 1rem; } -hr, +hr, .hr-container hr { border: none; height: 1px; @@ -488,7 +483,7 @@ hr, #oauth-complete-reg .page-body > .row > .col-sm-8, #oauth-complete-reg .page-body > .row > .col-md-6, #oauth-complete-reg .page-body > .row > .col-lg-5, -#oauth-complete-reg .page-body > .row > .col-xl-4, +#oauth-complete-reg .page-body > .row > .col-xl-4, #oauth-child-reg .page-body > .row > .col-xs, #oauth-child-reg .page-body > .row > .col-sm-8, #oauth-child-reg .page-body > .row > .col-md-6, @@ -498,47 +493,47 @@ hr, #oauth-child-reg-complete .page-body > .row > .col-sm-8, #oauth-child-reg-complete .page-body > .row > .col-md-6, #oauth-child-reg-complete .page-body > .row > .col-lg-5, -#oauth-child-reg-complete .page-body > .row > .col-xl-4, +#oauth-child-reg-complete .page-body > .row > .col-xl-4, #oauth-not-registered .page-body > .row > .col-xs, #oauth-not-registered .page-body > .row > .col-sm-8, #oauth-not-registered .page-body > .row > .col-md-6, #oauth-not-registered .page-body > .row > .col-lg-5, -#oauth-not-registered .page-body > .row > .col-xl-4, +#oauth-not-registered .page-body > .row > .col-xl-4, #oauth-error .page-body > .row > .col-xs, #oauth-error .page-body > .row > .col-sm-8, #oauth-error .page-body > .row > .col-md-6, #oauth-error .page-body > .row > .col-lg-5, -#oauth-error .page-body > .row > .col-xl-4, +#oauth-error .page-body > .row > .col-xl-4, #oauthstart-idp-link .page-body > .row > .col-xs, #oauthstart-idp-link .page-body > .row > .col-sm-8, #oauthstart-idp-link .page-body > .row > .col-md-6, #oauthstart-idp-link .page-body > .row > .col-lg-5, -#oauthstart-idp-link .page-body > .row > .col-xl-4, +#oauthstart-idp-link .page-body > .row > .col-xl-4, #oauth-wait .page-body > .row > .col-xs, #oauth-wait .page-body > .row > .col-sm-8, #oauth-wait .page-body > .row > .col-md-6, #oauth-wait .page-body > .row > .col-lg-5, -#oauth-wait .page-body > .row > .col-xl-4, +#oauth-wait .page-body > .row > .col-xl-4, #email-verification .page-body > .row > .col-xs, #email-verification .page-body > .row > .col-sm-8, #email-verification .page-body > .row > .col-md-6, #email-verification .page-body > .row > .col-lg-5, -#email-verification .page-body > .row > .col-xl-4, +#email-verification .page-body > .row > .col-xl-4, #email-ver-required .page-body > .row > .col-xs, #email-ver-required .page-body > .row > .col-sm-8, #email-ver-required .page-body > .row > .col-md-6, #email-ver-required .page-body > .row > .col-lg-5, -#email-ver-required .page-body > .row > .col-xl-4, +#email-ver-required .page-body > .row > .col-xl-4, #email-ver-complete .page-body > .row > .col-xs, #email-ver-complete .page-body > .row > .col-sm-8, #email-ver-complete .page-body > .row > .col-md-6, #email-ver-complete .page-body > .row > .col-lg-5, -#email-ver-complete .page-body > .row > .col-xl-4, +#email-ver-complete .page-body > .row > .col-xl-4, #email-ver-resent .page-body > .row > .col-xs, #email-ver-resent .page-body > .row > .col-sm-8, #email-ver-resent .page-body > .row > .col-md-6, #email-ver-resent .page-body > .row > .col-lg-5, -#email-ver-resent .page-body > .row > .col-xl-4, +#email-ver-resent .page-body > .row > .col-xl-4, #forgot-pwd .page-body > .row > .col-xs, #forgot-pwd .page-body > .row > .col-sm-8, #forgot-pwd .page-body > .row > .col-md-6, @@ -572,7 +567,7 @@ hr, #acct-2fa-enable .page-body > .row > .col-xs-12, #acct-2fa-enable .page-body > .row > .col-sm-12, #acct-2fa-enable .page-body > .row > .col-md-10, -#acct-2fa-enable .page-body > .row > .col-lg-8, +#acct-2fa-enable .page-body > .row > .col-lg-8, #acct-2fa-disable .page-body > .row > .col-xs-12, #acct-2fa-disable .page-body > .row > .col-sm-12, #acct-2fa-disable .page-body > .row > .col-md-10, @@ -583,12 +578,12 @@ hr, #unauthorized-page .page-body > .row > .col-xl-5, #change-pwd .page-body > .row > .col-xs, #change-pwd .page-body > .row > .col-sm-8, -#change-pwd .page-body > .row > .col-md-6, +#change-pwd .page-body > .row > .col-md-6, #change-pwd .page-body > .row > .col-lg-5, #change-pwd .page-body > .row > .col-xl-4, #change-pwd-complete .page-body > .row > .col-xs, #change-pwd-complete .page-body > .row > .col-sm-8, -#change-pwd-complete .page-body > .row > .col-md-6, +#change-pwd-complete .page-body > .row > .col-md-6, #change-pwd-complete .page-body > .row > .col-lg-5, #change-pwd-complete .page-body > .row > .col-xl-4 { flex-basis: 33rem; @@ -640,7 +635,7 @@ hr, #oauth-complete-reg .page-body > .row > .col-sm-8, #oauth-complete-reg .page-body > .row > .col-md-6, #oauth-complete-reg .page-body > .row > .col-lg-5, - #oauth-complete-reg .page-body > .row > .col-xl-4, + #oauth-complete-reg .page-body > .row > .col-xl-4, #oauth-child-reg .page-body > .row > .col-xs, #oauth-child-reg .page-body > .row > .col-sm-8, #oauth-child-reg .page-body > .row > .col-md-6, @@ -650,17 +645,17 @@ hr, #oauth-child-reg-complete .page-body > .row > .col-sm-8, #oauth-child-reg-complete .page-body > .row > .col-md-6, #oauth-child-reg-complete .page-body > .row > .col-lg-5, - #oauth-child-reg-complete .page-body > .row > .col-xl-4, + #oauth-child-reg-complete .page-body > .row > .col-xl-4, #oauth-not-registered .page-body > .row > .col-xs, #oauth-not-registered .page-body > .row > .col-sm-8, #oauth-not-registered .page-body > .row > .col-md-6, #oauth-not-registered .page-body > .row > .col-lg-5, - #oauth-not-registered .page-body > .row > .col-xl-4, + #oauth-not-registered .page-body > .row > .col-xl-4, #oauth-error .page-body > .row > .col-xs, #oauth-error .page-body > .row > .col-sm-8, #oauth-error .page-body > .row > .col-md-6, #oauth-error .page-body > .row > .col-lg-5, - #oauth-error .page-body > .row > .col-xl-4, + #oauth-error .page-body > .row > .col-xl-4, #oauthstart-idp-link .page-body > .row > .col-xs, #oauthstart-idp-link .page-body > .row > .col-sm-8, #oauthstart-idp-link .page-body > .row > .col-md-6, @@ -670,27 +665,27 @@ hr, #oauth-wait .page-body > .row > .col-sm-8, #oauth-wait .page-body > .row > .col-md-6, #oauth-wait .page-body > .row > .col-lg-5, - #oauth-wait .page-body > .row > .col-xl-4, + #oauth-wait .page-body > .row > .col-xl-4, #email-verification .page-body > .row > .col-xs, #email-verification .page-body > .row > .col-sm-8, #email-verification .page-body > .row > .col-md-6, #email-verification .page-body > .row > .col-lg-5, - #email-verification .page-body > .row > .col-xl-4, + #email-verification .page-body > .row > .col-xl-4, #email-ver-required .page-body > .row > .col-xs, #email-ver-required .page-body > .row > .col-sm-8, #email-ver-required .page-body > .row > .col-md-6, #email-ver-required .page-body > .row > .col-lg-5, - #email-ver-required .page-body > .row > .col-xl-4, + #email-ver-required .page-body > .row > .col-xl-4, #email-ver-complete .page-body > .row > .col-xs, #email-ver-complete .page-body > .row > .col-sm-8, #email-ver-complete .page-body > .row > .col-md-6, #email-ver-complete .page-body > .row > .col-lg-5, - #email-ver-complete .page-body > .row > .col-xl-4, + #email-ver-complete .page-body > .row > .col-xl-4, #email-ver-resent .page-body > .row > .col-xs, #email-ver-resent .page-body > .row > .col-sm-8, #email-ver-resent .page-body > .row > .col-md-6, #email-ver-resent .page-body > .row > .col-lg-5, - #email-ver-resent .page-body > .row > .col-xl-4, + #email-ver-resent .page-body > .row > .col-xl-4, #forgot-pwd .page-body > .row > .col-xs, #forgot-pwd .page-body > .row > .col-sm-8, #forgot-pwd .page-body > .row > .col-md-6, @@ -735,12 +730,12 @@ hr, #unauthorized-page .page-body > .row > .col-xl-5, #change-pwd .page-body > .row > .col-xs, #change-pwd .page-body > .row > .col-sm-8, - #change-pwd .page-body > .row > .col-md-6, + #change-pwd .page-body > .row > .col-md-6, #change-pwd .page-body > .row > .col-lg-5, #change-pwd .page-body > .row > .col-xl-4, #change-pwd-complete .page-body > .row > .col-xs, #change-pwd-complete .page-body > .row > .col-sm-8, - #change-pwd-complete .page-body > .row > .col-md-6, + #change-pwd-complete .page-body > .row > .col-md-6, #change-pwd-complete .page-body > .row > .col-lg-5, #change-pwd-complete .page-body > .row > .col-xl-4 { flex-basis: calc(100% - 30px); @@ -764,7 +759,7 @@ hr, #acct-2fa-index .page-body > .row > .col-lg-8 { flex-basis: 54.125rem; max-width: 54.125rem; - } + } #acct-2fa-index .page-body > .row.center:last-of-type { width: 54.125rem; } @@ -787,10 +782,10 @@ hr, #oauth-two-factor-methods .full, #oauth-two-factor-methods .blue.button, #oauth-authorize .panel > main > form > .form-row:first-of-type, -#oauth-passwordless .panel > main > .full > .form-row:first-of-type, +#oauth-passwordless .panel > main > .full > .form-row:first-of-type, #oauth-register .panel > main > .full > .form-row:first-of-type, #forgot-pwd .panel > main > .full fieldset, -#forgot-pwd .panel .grecaptcha-msg, +#forgot-pwd .panel .grecaptcha-msg, #change-pwd .panel > main .full > .form-row:first-of-type, #acct-2fa-index .panel > main > fieldset { margin-bottom: 0; @@ -1000,10 +995,10 @@ hr, #acct-index .page-body > .row:first-of-type > .col-lg-8 { flex-basis: 54.125rem; max-width: 54.125rem; - } + } #acct-index .page-body > .row.center:last-of-type { width: 54.125rem; - } + } #acct-index .panel:before { width: 6.25rem; } @@ -1104,4 +1099,3 @@ hr, padding: 0; } /* End page specific buttons and links */ - diff --git a/library/build.gradle.kts b/library/build.gradle.kts index 2d8f43f..d71482f 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -2,6 +2,8 @@ plugins { id("com.android.library") id("org.jetbrains.kotlin.android") id("kotlinx-serialization") + id("maven-publish") + id("signing") id("org.jetbrains.dokka") } @@ -37,6 +39,124 @@ android { lint { sarifReport = true } + + // Include sources and javadoc .jar files as secondary artifacts + publishing { + singleVariant("release") { + withSourcesJar() + withJavadocJar() + } + } +} + +// Configure the maven-publish plugin. +publishing { + publications { + // This says: defer this block until all of the other stuff has run first. + // This is required since components["release"] is generated by the Android + // plugin in `afterEvaluate` itself, which forces us to do the same. + afterEvaluate { + // Create a new publication called "release". The maven-publish plugin + // creates tasks named publish${name}PublicationTo${target}, where + // ${name} is a capitalized form of the name and ${target} is an output + // repository. By default a MavenLocal target is automatically added, + // which outputs to ~/.m2/repository. + create("release") { + // Include all artifacts from the "release" component. This is the + // .aar file along with the sources and javadoc .jars. + from(components["release"]) + + // Here we configure some properties of the publication (these are + // automatically applied to the pom file). Your library will be + // referenced as ${groupId}:${artifactId}. + groupId = "io.fusionauth" + artifactId = "fusionauth-android-sdk" + version = "0.1.2" + + // And here are some more properties that go into the pom file. + // For a full list of required metadata fields, see: + // https://central.sonatype.org/publish/requirements/#sufficient-metadata + pom { + packaging = "aar" + name.set("FusionAuth Android SDK") + description.set("Android SDK for FusionAuth") + url.set("https://github.com/FusionAuth/fusionauth-android-sdk/") + licenses { + license { + name.set("MIT License") + url.set("https://opensource.org/license/mit/") + } + } + developers { + developer { + name.set("FusionAuth engineering") + email.set("dev@fusionauth.io") + } + } + scm { + url.set(pom.url.get()) + connection.set("scm:git:${url.get()}.git") + developerConnection.set("scm:git:${url.get()}.git") + } + } + } + } + } + + // Here we define some repositories that we can publish our outputs to. + repositories { + // Specifying that this is a custom maven repository. + maven { + // This is the name of the repo that is used as the value of ${target} + // from above. + name = "OSSRH" + + // Self-explanatory. + setUrl { + val repositoryId = + System.getenv("SONATYPE_REPOSITORY_ID") ?: error("Missing env variable: SONATYPE_REPOSITORY_ID") + "https://oss.sonatype.org/service/local/staging/deployByRepositoryId/${repositoryId}/" + } + + // These need to be defined in ~/.gradle/gradle.properties: + // ossrhUsername= + // ossrhPassword= + credentials { + username = project.findProperty("ossrhUsername") as String? + password = project.findProperty("ossrhPassword") as String? + } + } + } +} + +// Configure the signing plugin. +signing { + // Use the external gpg binary instead of the built-in PGP library. + // This lets us use gpg-agent and avoid having to hard-code our PGP key + // password somewhere. + // + // Note that you will need to add this in your ~/.gradle/gradle.properties: + // signing.gnupg.keyName= + // + // Additionally, for users who have gpg instead of gpg2: + // signing.gnupg.useLegacyGpg=true + //useGpgCmd() + + // Using in-memory keys https://docs.gradle.org/current/userguide/signing_plugin.html#sec:in-memory-keys + // Requires ORG_GRADLE_PROJECT_signingKey and ORG_GRADLE_PROJECT_signingPassword environment variables + // The secret key is exported with gpg --output private.pgp --armor --export-secret-key + + val signingKey: String? by project + val signingPassword: String? by project + useInMemoryPgpKeys(signingKey, signingPassword) + + // Since the publication itself was created in `afterEvaluate`, we must + // do the same here. + afterEvaluate { + // This adds a signing stage to the publish task in-place (so we keep + // using the same task name; it just also performs signing now). + sign(publishing.publications["release"]) + } } dependencies {