Skip to content
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
8b632b9
start adding clerk theme doc
swolfand Nov 20, 2025
ee9c056
Ready to add UserProfile
swolfand Nov 21, 2025
f4af1cd
Ready to add user profile view documentation
swolfand Nov 21, 2025
d5f5109
Add user profile view
swolfand Nov 21, 2025
3786cfc
add images
swolfand Dec 2, 2025
a4e305a
delete android quickstart
swolfand Dec 2, 2025
88d022c
removed ios by mistake
swolfand Dec 3, 2025
914e48f
change incorrect view reference
swolfand Dec 3, 2025
1f2e990
update account portal
swolfand Dec 3, 2025
67bc3ab
update user button to reference correct view
swolfand Dec 3, 2025
29eb31b
update image name
swolfand Dec 3, 2025
465c1fc
replaced image
swolfand Dec 3, 2025
9619e03
update typography
swolfand Dec 3, 2025
584e772
docs review
SarahSoutoul Dec 3, 2025
9ffd76f
docs review
SarahSoutoul Dec 3, 2025
18e968d
Merge branch 'main' into sam/mobile-325-android-authview-guide
SarahSoutoul Dec 4, 2025
63d0add
Add images
SarahSoutoul Dec 4, 2025
ac4b221
Linting
SarahSoutoul Dec 4, 2025
8dc5a20
Merge branch 'main' into sam/mobile-325-android-authview-guide
SarahSoutoul Dec 4, 2025
fe898e8
Add scoping of cards
SarahSoutoul Dec 4, 2025
14b0bf5
update imports
swolfand Dec 5, 2025
4c64093
add specific property
swolfand Dec 5, 2025
f7a3ac3
Merge branch 'main' into sam/mobile-325-android-authview-guide
swolfand Dec 5, 2025
c05aede
Fix the If components
SarahSoutoul Dec 5, 2025
6f6ab47
Linting
SarahSoutoul Dec 5, 2025
acde0f1
add font
swolfand Dec 5, 2025
9016eec
Update docs/guides/customizing-clerk/clerk-theme.android.mdx
SarahSoutoul Dec 9, 2025
0b68188
Apply suggestions from code review
SarahSoutoul Dec 9, 2025
4973383
Full-screen to Fullscreen
SarahSoutoul Dec 9, 2025
4e73122
docs review pt2
SarahSoutoul Dec 9, 2025
6fbd413
Merge branch 'main' into sam/mobile-325-android-authview-guide
SarahSoutoul Dec 9, 2025
082ea86
Last refinement
SarahSoutoul Dec 9, 2025
6453889
Grammatical error
SarahSoutoul Dec 9, 2025
c85f6a4
Update docs/reference/views/user/user-profile-view.mdx
SarahSoutoul Dec 9, 2025
14b1264
Lowercase fullscreen
SarahSoutoul Dec 9, 2025
d6045cd
Merge branch 'main' into sam/mobile-325-android-authview-guide
swolfand Dec 10, 2025
6016745
Merge branch 'main' into sam/mobile-325-android-authview-guide
SarahSoutoul Dec 11, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions docs/_partials/android/customization.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
To learn how to customize Clerk Android views, see the [dedicated guide](/docs/reference/android/clerk-theme).

If Clerk's prebuilt views don't meet your specific needs or if you require more control over the logic, you can rebuild the existing Clerk flows using the Clerk API. For more information, see the [custom flow guides](/docs/guides/development/custom-flows/overview).
279 changes: 279 additions & 0 deletions docs/reference/android/clerk-theme.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,279 @@
---
title: '`ClerkTheme`'
description: Utilize Clerk's ClerkTheme to adjust the general styles of the Android views, like colors, fonts, and design properties.
sdk: android
---

The `ClerkTheme` is used to customize the appearance of Clerk iOS views by adjusting colors, fonts, and design properties. It provides a comprehensive theming system that allows you to create a consistent visual experience across all Clerk views.

## Structure

`ClerkTheme` consists of 5 main properties:

- **`colors`** - Colors used by the UI layer across light and dark modes.
- **`lightColors`** - Optional overrides that only apply when the system is in light mode. These will default to the `colors` property if not provided.
- **`darkColors`** - Optional overrides that only apply when the system is in dark mode. These will default to the `colors` property if not provided.
- **`typography`** - Font and typography definitions..
- **`design`** - Design properties like border radius.

## Colors

The `colors`,`lightColors`, and `darkColors` properties contain the following color options:

<Properties>
- `primary`
- `Color`

The primary color used throughout the views.

---

- `background`
- `Color`

The background color for containers.

---

- `input`
- `Color`

The background color used for input fields.

---

- `danger`
- `Color`

The color used for error states.

---

- `success`
- `Color`

The color used for success states.

---

- `warning`
- `Color`

The color used for warning states.

---

- `foreground`
- `Color`

The color used for text.

---

- `mutedForeground`
- `Color`

The color used for secondary text.

---

- `primaryForeground`
- `Color`

The color used for text on the primary background.

---

- `inputForeground`
- `Color`

The color used for text in input fields.

---

- `neutral`
- `Color`

The color that will be used to generate the neutral shades the views use.

---

- `ring`
- `Color`

The color of the ring when an interactive element is focused.

---

- `muted`
- `Color`

The color used for muted backgrounds.

---

- `shadow`
- `Color`

The base shadow color used in the views.

---

- `border`
- `Color`

The base border color used in the views.
</Properties>

## Fonts

The `typography` property contains the following font options based on iOS Dynamic Type:

<Properties>
- `displaySmall`
- `TextStyle`

---

- `headlineLarge`
- `TextStyle`

---

- `headlineMedium`
- `TextStyle`

---

- `titleMedium`
- `TextStyle`

---

- `titleSmall`
- `TextStyle`

---

- `bodyLarge`
- `TextStyle`

---

- `bodyMedium`
- `TextStyle`

---

- `bodySmall`
- `TextStyle`

---

- `labelMedium`
- `TextStyle`

---

- `labelSmall`
- `TextStyle`
</Properties>

## Design

The `design` property contains the following design options:

<Properties>
- `borderRadius`
- `Dp`

The border radius used throughout the views. By default, this is set to `8.0`.
</Properties>

## Usage

You can customize Clerk Android views by creating a `ClerkTheme` and applying it to Clerk's `customTheme` setter.

### Apply a custom theme to all Clerk views

To customize all Clerk views in your app, create a `ClerkTheme` and apply it where you initialize the Clerk SDK.

```kotlin
import android.app.Application
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp
import com.clerk.api.Clerk
import com.clerk.api.ui.ClerkColors
import com.clerk.api.ui.ClerkDesign
import com.clerk.api.ui.ClerkTheme

class WorkbenchApplication : Application() {

override fun onCreate() {
super.onCreate()
val theme = ClerkTheme(
colors = ClerkColors(primary = Color.Black),
design = ClerkDesign(borderRadius = 24.dp),
typography = ClerkTypographyDefaults.displaySmall.copy(fontSize = 24.sp)
)

Clerk.initialize(this, "YOUR_PUBLIC_KEY", theme = theme)
}
}

```

### Apply a theme to specific views

You can apply a theme to specific Clerk views by passing a `ClerkTheme` to any Clerk UI component. The theme used here will apply to all children of this view.

```kotlin
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp
import androidx.compose.ui.Alignment
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.background
import com.clerk.api.Clerk
import com.clerk.api.ui.ClerkColors
import com.clerk.api.ui.ClerkDesign
import com.clerk.api.ui.ClerkTheme
import com.clerk.api.ui.ClerkTypographyDefaults
import com.clerk.api.ui.UserButton
import com.clerk.api.ui.AuthView

@Composable
fun HomeScreen {
val user by Clerk.userFlow.collecAsStateWithLifecycle()
Box(
modifier = Modifier.fillMaxSize().background(color = Color(0xFFF9F9F9)),
contentAlignment = Alignment.Center,
) {
if (user != null) {
UserButton()
} else {
AuthView(clerkTheme = ClerkTheme(colors = ClerkColors(primary = Color.Blue)))
}
}
}
```

### Custom fonts

You can customize fonts by modifying the `typography` property of the `ClerkTheme`.

#### Using a font family name

```kotlin
AuthView(clerkTheme = ClerkTheme(typography = ClerkTypography(displaySmall = ClerkTypographyDefaults.displaySmall.copy(fontSize = 24.sp))))
```

## Light and Dark Mode Support

Clerk Android views automatically support both light and dark mode appearance, adapting seamlessly to the user's system preferences.

{/* Add light and dark mode images */}

If Clerk's prebuilt theming doesn't meet your specific needs, you can create completely custom authentication flows using the Clerk API. For more information, see the [custom flow guides](/docs/guides/development/custom-flows/overview).
2 changes: 1 addition & 1 deletion docs/reference/components/overview.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Component Reference
description: A list of Clerk's comprehensive suite of components designed to seamlessly integrate authentication and multi-tenancy into your application.
sdk: react, nextjs, js-frontend, chrome-extension, expo, android, expressjs, fastify, react-router, remix, tanstack-react-start, go, astro, nuxt, vue, ruby, js-backend
sdk: react, nextjs, js-frontend, chrome-extension, expo, expressjs, fastify, react-router, remix, tanstack-react-start, go, astro, nuxt, vue, ruby, js-backend
---

Clerk offers a comprehensive suite of components designed to seamlessly integrate authentication and multi-tenancy into your application. With Clerk components, you can easily customize the appearance of authentication components and pages, manage the entire authentication flow to suit your specific needs, and even build robust SaaS applications.
Expand Down
50 changes: 50 additions & 0 deletions docs/reference/views/authentication/auth-view.android.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
---
title: '`AuthView`'
description: Clerk's AuthView renders a UI for signing in and signing up users on Android.
sdk: android
---

![The AuthView renders a comprehensive authentication interface that handles both user sign-in and sign-up flows.](/docs/images/ui-components/android-auth-view.png){{ style: { maxWidth: '460px' } }}

The `AuthView` renders a comprehensive authentication interface with support for multiple sign-up flows and sign-in methods, multi-factor authentication, password reset, and account recovery. The functionality of the `AuthView` is controlled by the instance settings you specify in the [Clerk Dashboard](https://dashboard.clerk.com), such as [sign-in and sign-up options](/docs/guides/configure/auth-strategies/sign-up-sign-in-options) and [social connections](/docs/guides/configure/auth-strategies/social-connections/all-providers).
By default, the `AuthView` will automatically determine whether to sign users in or sign them up based on whether they already have an account. This is the default mode that provides seamless authentication without requiring users to choose between sign-in and sign-up.

## Parameters

<Properties>
- `modifier`

- `Modifier`

- A modifier that gets applied to the `AuthView` composable. This is by default applied to the top level `NavDisplay` and shouldn't be used
to change the appearance of the `AuthView` itself.
</Properties>

## Usage

The following examples show how to use the `AuthView` in your Android app.

### Basic usage

```kotlin

import androidx.compose.runtime.Composable
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.clerk.api.Clerk

@Composable
fun HomeScreen {
val user by Clerk.userFlow.collecAsStateWithLifecycle()
Box(modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center) {
if (user != null) {
UserButton()
} else {
AuthView()
}
}
}
```

## Customization

<Include src="_partials/android/customization" />
48 changes: 48 additions & 0 deletions docs/reference/views/overview.android.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
---
title: View Reference
description: A list of Clerk's comprehensive suite of views designed to seamlessly integrate authentication into your application.
sdk: android
---

Clerk offers a comprehensive suite of views designed to seamlessly integrate authentication into your application. With Clerk views, you can easily customize the appearance of authentication views and pages, manage the entire authentication flow to suit your specific needs, and even build robust SaaS applications.

## Clerk Android views

- [`AuthView`](/docs/reference/views/authentication/auth-view) - Renders a full authentication interface, supporting multiple sign-up and sign-in methods, multi-factor authentication (MFA), and password recovery flows.
- [`UserButton`](/docs/reference/views/user/user-button) - Displays the signed-in user's profile image.
- [`UserProfileView`](/docs/reference/views/user/user-profile-view) - Renders a complete user profile interface with personal information, security settings, account switching, and sign-out options.

## Installation

The Clerk Android SDK is now split into two packages:

- `com.clerk:clerk-api` - The core Clerk SDK for authentication and user management.
- `com.clerk:clerk-ui` - The Clerk UI components for authentication and user management.

The `com.clerk:clerk-ui` pulls the `com.clerk:clerk-api` package as a dependency, so you only need to add the `com.clerk:clerk-ui` package to your dependencies if you're using the Clerk UI components.

```gradle
dependencies {
// Only if you're using the Clerk API without the Clerk UI components
implementation("com.clerk:clerk-api:<latest-version>")

implementation("com.clerk:clerk-ui:<latest-version>")
}
```

You can find the latest version of the Clerk Android SDK on the [GitHub release page](https://github.com/clerk/clerk-android/releases).

## Customization

<Include src="_partials/android/customization" />

### Secured by Clerk branding

<Include src="_partials/feature-not-free-callout" />

By default, Clerk displays a **Secured by Clerk** badge on Clerk views. You can remove this branding by following these steps:

1. In the Clerk Dashboard, navigate to your application's [**Settings**](https://dashboard.clerk.com/~/settings).
1. Under **Branding**, toggle on the **Remove "Secured by Clerk" branding** option.

<Include src="_partials/help" />
Loading