# Theme Controller

- Page: https://jiguang132.com/resources/daisyui/docs/theme-controller
- Resource: daisyUI (https://jiguang132.com/resources/daisyui.md)
- All guides: https://jiguang132.com/resources/daisyui/docs.md

Use native checkbox/radio values and theme classes to control CSS themes. Persistence and cross-page synchronization are separate; define system preference, user choice and local theme boundaries without affecting other systems.

## Installation and initialization

```bash
npm install -D tailwindcss@4.2.1 @tailwindcss/cli@4.2.1 daisyui@5.7.47
```

This is a native CSS plugin, not a React component import. Build Tailwind 4 with the daisyUI plugin and load the generated stylesheet before copying an example. See the included setup guide; do not override an existing project's React or Tailwind versions blindly.

```css
@import "tailwindcss";
@plugin "daisyui" { themes: light --default, dark --prefersdark; }
```

## Source and executable behavior

Source files preserve the original code fences, including original comments and demo strings. The $$ class prefix placeholder must be resolved for your plugin configuration: without a prefix, $$btn becomes btn. Copy every listed source file for the chosen example, combine HTML/CSS/JS appropriately and implement native events. The preview's reviewed event adapters are not a backend or an automatically installed application runtime.

## Complete first example

```html
<input type="checkbox" value="synthwave" class="$$toggle $$theme-controller" />
```

## All runnable examples

### Theme Controller using a toggle

`theme-controller-1`

```bash
npm install -D tailwindcss@4.2.1 @tailwindcss/cli@4.2.1 daisyui@5.7.47
```

- `examples/theme-controller/block-0.html`

### Theme Controller using a checkbox

`theme-controller-2`

```bash
npm install -D tailwindcss@4.2.1 @tailwindcss/cli@4.2.1 daisyui@5.7.47
```

- `examples/theme-controller/block-1.html`

### Theme Controller using a swap

`theme-controller-3`

```bash
npm install -D tailwindcss@4.2.1 @tailwindcss/cli@4.2.1 daisyui@5.7.47
```

- `examples/theme-controller/block-2.html`

### Theme Controller using a toggle with text

`theme-controller-4`

```bash
npm install -D tailwindcss@4.2.1 @tailwindcss/cli@4.2.1 daisyui@5.7.47
```

- `examples/theme-controller/block-3.html`

### Theme Controller using a toggle with icons

`theme-controller-5`

```bash
npm install -D tailwindcss@4.2.1 @tailwindcss/cli@4.2.1 daisyui@5.7.47
```

- `examples/theme-controller/block-4.html`

### Theme Controller using a toggle with icons inside

`theme-controller-6`

```bash
npm install -D tailwindcss@4.2.1 @tailwindcss/cli@4.2.1 daisyui@5.7.47
```

- `examples/theme-controller/block-5.html`

### Theme Controller using a toggle with custom colors

`theme-controller-7`

```bash
npm install -D tailwindcss@4.2.1 @tailwindcss/cli@4.2.1 daisyui@5.7.47
```

- `examples/theme-controller/block-6.html`

### Theme Controller using a radio input

`theme-controller-8`

```bash
npm install -D tailwindcss@4.2.1 @tailwindcss/cli@4.2.1 daisyui@5.7.47
```

- `examples/theme-controller/block-7.html`

### Theme Controller using a radio button

`theme-controller-9`

```bash
npm install -D tailwindcss@4.2.1 @tailwindcss/cli@4.2.1 daisyui@5.7.47
```

- `examples/theme-controller/block-8.html`

### Theme Controller using a dropdown

`theme-controller-10`

```bash
npm install -D tailwindcss@4.2.1 @tailwindcss/cli@4.2.1 daisyui@5.7.47
```

- `examples/theme-controller/block-9.html`

## Theme, accessibility and verification

Use native data-theme boundaries. Verify keyboard operation, labels, visible focus, disabled/invalid states where applicable, light/dark, mobile and reduced motion. Check your target browser's dialog, popover and CSS feature support. CSS classes do not supply unimplemented JavaScript or business services. Clean up timers and third-party instances; copying a command is not installation success.

## Source and license

https://github.com/saadeghi/daisyui/tree/c51f50130ffefb293179e6fce8de7ad3f307e45f

JGuang authors these bilingual practical notes; this is not a claim of translating the complete upstream documentation. Original Markdown, code and CSS remain available in the source viewer. Preserve MIT and separate dependency notices. All native-package notices are included conservatively, including build tools; no build binary or remote demo image is redistributed. Replace remote media with assets you are authorized to use. Commercial templates are outside this integration.

---

Index of all JGuang resources: https://jiguang132.com/llms.txt
