diff --git a/docs/api/checkbox.md b/docs/api/checkbox.md
index a98ee09efe5..33d199d9d89 100644
--- a/docs/api/checkbox.md
+++ b/docs/api/checkbox.md
@@ -30,7 +30,9 @@ import Basic from '@site/static/usage/checkbox/basic/index.md';
## Indeterminate Checkboxes
-TODO Playground
+import Indeterminate from '@site/static/usage/checkbox/indeterminate/index.md';
+
+
## Theming
diff --git a/src/components/global/Playground/index.tsx b/src/components/global/Playground/index.tsx
index ca4128b9929..c1c36bef703 100644
--- a/src/components/global/Playground/index.tsx
+++ b/src/components/global/Playground/index.tsx
@@ -169,7 +169,7 @@ export default function Playground({
* load, so a loading screen is shown by default.
* Once the source of the iframe loads we can
* hide the loading screen and show the inner content.
- *
+ *
* We call this as a local function because useEffect
* callbacks cannot return a Promise, as async functions do.
*/
diff --git a/static/usage/checkbox/indeterminate/angular.md b/static/usage/checkbox/indeterminate/angular.md
new file mode 100644
index 00000000000..841851a904a
--- /dev/null
+++ b/static/usage/checkbox/indeterminate/angular.md
@@ -0,0 +1,6 @@
+```html
+
+
+ Indeterminate checkbox
+
+```
diff --git a/static/usage/checkbox/indeterminate/demo.html b/static/usage/checkbox/indeterminate/demo.html
new file mode 100644
index 00000000000..014f67d5210
--- /dev/null
+++ b/static/usage/checkbox/indeterminate/demo.html
@@ -0,0 +1,24 @@
+
+
+
+
+
+ Checkbox
+
+
+
+
+
+
+
+
+
+
+
+ Indeterminate checkbox
+
+
+
+
+
+
diff --git a/static/usage/checkbox/indeterminate/index.md b/static/usage/checkbox/indeterminate/index.md
new file mode 100644
index 00000000000..01eb5a9da8a
--- /dev/null
+++ b/static/usage/checkbox/indeterminate/index.md
@@ -0,0 +1,16 @@
+import Playground from '@site/src/components/global/Playground';
+
+import javascript from './javascript.md';
+import react from './react.md';
+import vue from './vue.md';
+import angular from './angular.md';
+
+
diff --git a/static/usage/checkbox/indeterminate/javascript.md b/static/usage/checkbox/indeterminate/javascript.md
new file mode 100644
index 00000000000..9a216a7d8b0
--- /dev/null
+++ b/static/usage/checkbox/indeterminate/javascript.md
@@ -0,0 +1,6 @@
+```html
+
+
+ Indeterminate checkbox
+
+```
diff --git a/static/usage/checkbox/indeterminate/react.md b/static/usage/checkbox/indeterminate/react.md
new file mode 100644
index 00000000000..9e08f102560
--- /dev/null
+++ b/static/usage/checkbox/indeterminate/react.md
@@ -0,0 +1,18 @@
+```tsx
+import React from 'react';
+import {
+ IonCheckbox,
+ IonItem,
+ IonLabel
+} from '@ionic/react';
+
+function Example() {
+ return (
+
+
+ Indeterminate checkbox
+
+ );
+}
+export default Example;
+```
\ No newline at end of file
diff --git a/static/usage/checkbox/indeterminate/vue.md b/static/usage/checkbox/indeterminate/vue.md
new file mode 100644
index 00000000000..0ad2ddbf62b
--- /dev/null
+++ b/static/usage/checkbox/indeterminate/vue.md
@@ -0,0 +1,25 @@
+```html
+
+
+
+ Indeterminate checkbox
+
+
+
+
+```