# <SignIn /> component

The `<SignIn />` component renders a UI to allow users to sign in or sign up by default. The functionality of the `<SignIn />` component is controlled by the instance settings you specify in the [Clerk Dashboard](https://dashboard.clerk.com), such as [sign-in and sign-up options](https://clerk.com/docs/guides/configure/auth-strategies/sign-up-sign-in-options.md?sdk=nextjs) and [social connections](https://clerk.com/docs/nextjs/guides/configure/auth-strategies/social-connections/overview.md). You can further customize your `<SignIn />` component by passing additional [properties](https://clerk.com/docs/nextjs/reference/components/authentication/sign-in.md#properties) at the time of rendering. The `<SignIn />` component also displays any session tasks that are required for the user to complete after signing in.

> The `<SignUp/>` and `<SignIn/>` components cannot render when a user is already signed in, unless the application allows multiple sessions. If a user is already signed in and the application only allows a single session, Clerk will redirect the user to the Home URL instead.

## Example

The following example includes a basic implementation of the `<SignIn />` component. You can use this as a starting point for your own implementation.

If you would like to create a dedicated `/sign-in` page in your Next.js application, see the [dedicated guide](https://clerk.com/docs/nextjs/guides/development/custom-sign-in-or-up-page.md) for more information.

filename: app/sign-in/[[...sign-in]]/page.tsx
```tsx
import { SignIn } from '@clerk/nextjs'

export default function SignInPage() {
  return <SignIn />
}
```

## Properties

All props are optional.

| Name                                                            | Type                          | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| --------------------------------------------------------------- | ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| appearance?                                                     | Appearance | undefined       | An object to style your components. Will only affect Clerk components and not Account Portal pages.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| fallback?                                                       | ReactNode                     | An element to be rendered while the component is mounting.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| fallbackRedirectUrl?                                            | string                        | The fallback URL to redirect to after the user signs in, if there's no redirect\_url in the path already. Defaults to /. It's recommended to use the environment variable instead.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| forceRedirectUrl?                                               | string                        | If provided, this URL will always be redirected to after the user signs in. It's recommended to use the environment variable instead.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| initialValues?                                                  | SignInInitialValues           | The values used to prefill the sign-in fields with.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| "redirect": Redirect to the OAuth provider on the current page. | "popup": Open a popup window. | Defaults to "auto".                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| path?                                                           | string                        | The path where the component is mounted on when routing is set to path. It is ignored in hash-based routing. For example: /sign-in.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| routing?                                                        | 'hash' | 'path'              | The routing strategy for your pages. Defaults to 'path' for frameworks that handle routing, such as Next.js. Defaults to hash for all other SDK's, such as React.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| signUpFallbackRedirectUrl?                                      | string                        | The fallback URL to redirect to after the user signs up, if there's no redirect\_url in the path already. Used for the 'Don't have an account? Sign up' link that's rendered. Defaults to /. It's recommended to use the environment variable instead.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| signUpForceRedirectUrl?                                         | string                        | If provided, this URL will always used as the redirect destination after the user signs up. Used for the 'Don't have an account? Sign up' link that's rendered. It's recommended to use the environment variable instead.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| signUpUrl?                                                      | string                        | The full URL or path to the sign-up page. Used for the 'Don't have an account? Sign up' link that's rendered. It's recommended to use the environment variable instead.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| transferable?                                                   | boolean                       | Indicates whether or not sign in attempts are transferable to the sign up flow. Defaults to true. When set to false, prevents opaque sign upsAn opaque sign up refers to a specific OAuth authentication flow where a user attempts to sign in via OAuth (like Google, GitHub, etc.) with an email address that doesn't exist in your application's user database. The term "opaque" here means that the sign-up process is transparent to the user - they think they're signing in, but Clerk is actually creating a new account behind the scenesA transfer flow allows a user to both sign in and sign up in the same process. If a user tries signing up, but already exists, the flow will transfer the user to the sign-in flow. If a user tries signing in, but doesn't exist, the flow will transfer the user to the sign-up flow\.. when a user attempts to sign in via OAuth with an email that doesn't exist. |
| waitlistUrl?                                                    | string                        | Full URL or path to the waitlist page. Use this property to provide the target of the 'Waitlist' link that's rendered. If undefined, will redirect to the Account Portal waitlist page. If you've passed the waitlistUrl prop to the <ClerkProvider> component, it will infer from that, and you can omit this prop.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| withSignUp?                                                     | boolean                       | Opt into sign-in-or-up flow by setting this prop to true. When true, if a user does not exist, they will be prompted to sign up. If a user exists, they will be prompted to sign in. Defaults to true if the CLERK\_SIGN\_IN\_URL environment variable is set. Otherwise, defaults to false. Sign-in-or-up isn't supported under strict user enumeration protection; use the signUpIfMissing custom flow instead.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |

## Customization

To learn about how to customize Clerk components, see the [customization documentation](https://clerk.com/docs/nextjs/guides/customizing-clerk/appearance-prop/overview.md).

If Clerk's prebuilt components 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](https://clerk.com/docs/guides/development/custom-flows/overview.md?sdk=nextjs).

---

## Sitemap

[Overview of all docs pages](https://clerk.com/docs/llms.txt)
