---
title: Widget · Cloudflare Turnstile docs
description: Every instance of Turnstile belongs to a Turnstile widget. It is configured on a per-widget level. Every widget has a mode, a label, a sitekey, and a secret key.
lastUpdated: 2025-04-21T13:42:14.000Z
source_url:
  html: https://9d8cd229.preview.developers.cloudflare.com/turnstile/concepts/widget/index.md
  md: https://9d8cd229.preview.developers.cloudflare.com/turnstile/concepts/widget/
---

Every instance of Turnstile belongs to a Turnstile widget. It is configured on a per-widget level. Every widget has a mode, a label, a sitekey, and a secret key.

The 3 modes for Turnstile are **Managed**, **Non-Interactive**, and **Invisible**.

Refer to [appearance modes](https://developers.cloudflare.com/turnstile/get-started/client-side-rendering/#appearance-modes) to configure whether to have the widget be always visible or visible only when interaction is required, and to customize your widget theme between automatic, light, or dark mode.

Widgets can be implemented in normal, flexible, or compact sizes.

| Size | Width | Height |
| - | - | - |
| Normal | 300px | 65px |
| Flexible | 100% (min: 300px) | 65px |
| Compact | 150px | 140px |

Refer to [widget sizes](https://developers.cloudflare.com/turnstile/get-started/client-side-rendering/#widget-size) for an example on how to configure flexible or compact mode.

Offlabel

Customers with Enterprise Bot Management and Enterprise Turnstile have the ability to remove the Cloudflare branding and customize the Turnstile widget.

## Availability

Free users are limited to 10 widgets per account.

Customers with Enterprise Bot Management and Enterprise Turnstile can have this limit increased. Contact your account team to increase your widget limit.

## Widget types

### Managed (recommended)

This mode is fully managed by Cloudflare. It automatically chooses the appropriate action based on various signals and risk levels. Cloudflare will use the information from the visitor to decide if an interactive challenge should be used. Turnstile will only require interaction if a further check is necessary to verify that the visitor is human. When an interaction is required, the user will be prompted to check a box (no images or text to decipher). This managed mode is ideal for users who want a simple configuration without needing to fine-tune the behavior.

#### Light mode

![Managed challenge](https://developers.cloudflare.com/_astro/light-regular.oEacFlba_QHbdz.webp)![Verifying the challenge](https://developers.cloudflare.com/_astro/light-verifying.B7gOIdT4_Pqowv.webp)![Successful managed challenge](https://developers.cloudflare.com/_astro/light-success.DUVjJgtH_bo8La.webp)

#### Dark mode

![Managed challenge](https://developers.cloudflare.com/_astro/dark-regular.Dx6XJl_-_Z1wy7q9.webp)![Verifying the challenge](https://developers.cloudflare.com/_astro/dark-verifying.DhSoyXhB_Z2qWAOP.webp)![Successful managed challenge](https://developers.cloudflare.com/_astro/dark-success.DM7kYfYz_209MmY.webp)

### Compact mode

You can configure the Turnstile widget in compact mode, which functions in the same way as a Managed widget.

#### Light mode

![Compact managed challenge](https://developers.cloudflare.com/_astro/light-compact.XRam-ChD_YGrFU.webp)

#### Dark mode

![Compact managed challenge](https://developers.cloudflare.com/_astro/dark-compact.CBGoH6uR_Z1blODw.webp)

### Non-Interactive

Visitors will see a widget with a loading bar while the browser challenges run. Unlike managed mode, visitors will never be required or prompted to interact with the widget. This mode is ideal for users who want to prioritize visitor experience and do not want to add any friction with a Turnstile interaction.

#### Light mode

![Verifying the challenge](https://developers.cloudflare.com/_astro/light-verifying.B7gOIdT4_Pqowv.webp)![Successful managed challenge](https://developers.cloudflare.com/_astro/light-success.DUVjJgtH_bo8La.webp)

#### Dark mode

![Verifying the challenge](https://developers.cloudflare.com/_astro/dark-verifying.DhSoyXhB_Z2qWAOP.webp)![Successful managed challenge](https://developers.cloudflare.com/_astro/dark-success.DM7kYfYz_209MmY.webp)

### Invisible

This mode is similar to non-interactive mode where visitors will never interact with the Turnstile widget. Visitors will not see a widget or any indication that an invisible browser challenge is in progress. Invisible challenges should take a few seconds to complete.

## Error states

### Unknown error state

![Unknown error state](https://developers.cloudflare.com/_astro/unknown-error-state.WSl5F58o_2qb4QJ.webp)

When an unknown error occurs during the challenge, visitors will encounter this widget state. Visitors can refresh and retry the challenge. If the error persists, they can submit a feedback form by selecting **Send feedback** on the widget.

Refer to [Feedback reports](https://developers.cloudflare.com/turnstile/troubleshooting/feedback-reports) for more information.

### Interaction timed out state

![Interaction timed out](https://developers.cloudflare.com/_astro/interaction-timed-out.BSzxLVST_Qf2Ec.webp)

When the challenge is not solved for an extended period of time, it must be issued again by reloading the page or the widget.

### Challenge timed out state

![Challenge timed out](https://developers.cloudflare.com/_astro/challenge-timed-out.BoBR9LqS_20orFk.webp)

The widget expires when a token was issued but the user did not solve the challenge after an extended period of time. The page or widget must be reloaded.

### Outdated or unsupported browser

![Unsupported browser](https://developers.cloudflare.com/_astro/unsupported-browser.BAKaMTs8_27F2mz.webp)

Visitors with outdated browsers or unsupported browsers will encounter this widget state. Refer to [Supported browsers](https://developers.cloudflare.com/fundamentals/security/cloudflare-challenges/#browser-support) for more information regarding supported browsers.
