Repository files navigation

@react-native-community/checkbox

React Native Checkbox CISupports Android, iOS and WindowsMIT Licensenpm versionLean Core Extracted

React Native component for Checkbox

Android ExampleIOS ExampleWindows Example

Support

RN versionCheckbox version
>= 0.76 (New Architecture)>= 0.5.20
>= 0.62 to run on Windows0.5
> 0.60 & < 0.62>= 0.3 (Support iOS from 0.4)
< 0.600.2 (only Android)

New Architecture

The library supports the React Native New Architecture (Fabric/TurboModules):

  • Android and Windows run as native Fabric components.
  • iOS runs through the New Architecture interop layer (it is not yet a native Fabric component). It works under the New Architecture, but a full iOS codegen migration is still tracked in #211.

The latest versions are developed and tested against React Native 0.82.

Getting started

yarn add @react-native-community/checkbox

or

npm install @react-native-community/checkbox --save

On iOS, install cocoapods:

npx pod-install

Autolinking

On react-native >= 0.60 (and react-native-windows >= 0.63), autolinking takes care of linking the module on iOS, Android, and Windows — no extra steps are needed beyond installing the package (and running pod install on iOS).

Manual installation (legacy)

Only needed for react-native < 0.60 or react-native-windows < 0.63.
Manually link the library on Android

android/settings.gradle

include ':react-native-community-checkbox'
project(':react-native-community-checkbox').projectDir =newFile(rootProject.projectDir, '../node_modules/@react-native-community/checkbox/android')

android/app/build.gradle

dependencies {
...
implementation project(':react-native-community-checkbox')
}

android/app/src/main/.../MainApplication.java

On top, where imports are:

importcom.reactnativecommunity.checkbox.ReactCheckBoxPackage;

Add the checkbox class to your list of exported packages.

@OverrideprotectedList<ReactPackage> getPackages() {
returnArrays.asList(
newMainReactPackage(),
newReactCheckBoxPackage()
);
}
Manually link the library on Windows

Add the Checkbox project to your solution

  1. Open the solution in Visual Studio.
  2. Right-click solution icon in Solution Explorer > Add > Existing Project. Select <pathToYourApp>\node_modules\@react-native-community\checkbox\windows\Checkbox\Checkbox.vcxproj.

windows/myapp.sln

Add a reference to Checkbox to your main application project. From Visual Studio:

Right-click main application project > Add > Reference... Check 'Checkbox' from the 'Project > Solution' tab on the left.

pch.h

Add #include "winrt/Checkbox.h".

app.cpp

Add PackageProviders().Append(winrt::Checkbox::ReactPackageProvider()); before InitializeComponent();.

Migrating from the core react-native module

This module was created when the CheckBox was split out from the core of React Native. To migrate to this module you need to follow the installation instructions above and then change your imports from:

import{CheckBox}from'react-native';

to:

importCheckBoxfrom'@react-native-community/checkbox';

Usage

Example

importCheckBoxfrom'@react-native-community/checkbox';
const[toggleCheckBox,setToggleCheckBox]=useState(false)<CheckBoxdisabled={false}value={toggleCheckBox}onValueChange={(newValue)=>setToggleCheckBox(newValue)}/>

CheckBox is a controlled component: it renders the value prop and does not keep its own internal state. You must update value (usually from onValueChange) for the checkbox to reflect a tap. If value is not updated, the checkbox stays in the state you passed — this is now consistent across Android, iOS, and Windows.

Check out the example project for more examples.

Props

Common Props

View props...

Prop nameTypeDescription
onChangefunctionInvoked on change with the native event.
onValueChangefunctionInvoked with the new boolean value when it changes.
valuebooleanThe value of the checkbox. If true the checkbox will be turned on. Default value is false.
testIDstringUsed to locate this view in end-to-end tests.
disabledbooleanIf true the user won't be able to toggle the checkbox. Default value is false.

Android Only Props

Prop nameTypeDescription
tintColorsobjectAn object with the following shape: { true?: ?ColorValue, false?: ?ColorValue }. The color value for true will be used when the checkbox is checked, and the color value for false will be used when it is off.

IOS Only Props

Prop nameTypeDescription
lineWidthnumberThe width of the lines of the check mark and box. Defaults to 2.0.
hideBoxbooleanControl if the box should be hidden or not. Defaults to false
boxType'circle' or 'square'The type of box to use. Defaults to 'circle'
tintColorstringThe color of the box when the checkbox is Off. Defaults to '#aaaaaa'
onCheckColorstringThe color of the check mark when it is On. Defaults to '#007aff'
onFillColorstringThe color of the inside of the box when it is On. Defaults to transparent
onTintColorstringThe color of the line around the box when it is On. Defaults to '#007aff'
animationDurationnumberThe duration in seconds of the animations. Defaults to 0.5
onAnimationType'stroke' or 'fill' or 'bounce' or 'flat' or 'one-stroke' or 'fade'The type of animation to use when the checkbox gets checked. Default to 'stroke'
offAnimationType'stroke' or 'fill' or 'bounce' or 'flat' or 'one-stroke' or 'fade'The type of animation to use when the checkbox gets unchecked. 'stroke'

Windows Props

Implemented most of iOS and Android props. Defaults for color styling can be referenced here: https://docs.microsoft.com/en-us/dotnet/framework/wpf/controls/checkbox-styles-and-templates

Prop nameTypeDescription
disabledbooleanIf true the user won't be able to toggle the checkbox. Default value is false.
tintColorstringThe color of the box when the checkbox is Off.
onCheckColorstringThe color of the check mark when it is On.
onFillColorstringThe color of the inside of the box when it is On.
onTintColorstringThe color of the line around the box when it is On.

Contributors

This module was extracted from react-native core.

The implementaion of IOS version refered to BEMCheckBox

License

The library is released under the MIT licence. For more information see LICENSE.

About

Checkbox component for React Native

Topics

Resources

Stars

379 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

@react-native-community/checkbox

React Native Checkbox CISupports Android, iOS and WindowsMIT Licensenpm versionLean Core Extracted

React Native component for Checkbox

Android ExampleIOS ExampleWindows Example

Support

RN versionCheckbox version
>= 0.76 (New Architecture)>= 0.5.20
>= 0.62 to run on Windows0.5
> 0.60 & < 0.62>= 0.3 (Support iOS from 0.4)
< 0.600.2 (only Android)

New Architecture

The library supports the React Native New Architecture (Fabric/TurboModules):

  • Android and Windows run as native Fabric components.
  • iOS runs through the New Architecture interop layer (it is not yet a native Fabric component). It works under the New Architecture, but a full iOS codegen migration is still tracked in #211.

The latest versions are developed and tested against React Native 0.82.

Getting started

yarn add @react-native-community/checkbox

or

npm install @react-native-community/checkbox --save

On iOS, install cocoapods:

npx pod-install

Autolinking

On react-native >= 0.60 (and react-native-windows >= 0.63), autolinking takes care of linking the module on iOS, Android, and Windows — no extra steps are needed beyond installing the package (and running pod install on iOS).

Manual installation (legacy)

Only needed for react-native < 0.60 or react-native-windows < 0.63.
Manually link the library on Android

android/settings.gradle

include ':react-native-community-checkbox'
project(':react-native-community-checkbox').projectDir =newFile(rootProject.projectDir, '../node_modules/@react-native-community/checkbox/android')

android/app/build.gradle

dependencies {
...
implementation project(':react-native-community-checkbox')
}

android/app/src/main/.../MainApplication.java

On top, where imports are:

importcom.reactnativecommunity.checkbox.ReactCheckBoxPackage;

Add the checkbox class to your list of exported packages.

@OverrideprotectedList<ReactPackage> getPackages() {
returnArrays.asList(
newMainReactPackage(),
newReactCheckBoxPackage()
);
}
Manually link the library on Windows

Add the Checkbox project to your solution

  1. Open the solution in Visual Studio.
  2. Right-click solution icon in Solution Explorer > Add > Existing Project. Select <pathToYourApp>\node_modules\@react-native-community\checkbox\windows\Checkbox\Checkbox.vcxproj.

windows/myapp.sln

Add a reference to Checkbox to your main application project. From Visual Studio:

Right-click main application project > Add > Reference... Check 'Checkbox' from the 'Project > Solution' tab on the left.

pch.h

Add #include "winrt/Checkbox.h".

app.cpp

Add PackageProviders().Append(winrt::Checkbox::ReactPackageProvider()); before InitializeComponent();.

Migrating from the core react-native module

This module was created when the CheckBox was split out from the core of React Native. To migrate to this module you need to follow the installation instructions above and then change your imports from:

import{CheckBox}from'react-native';

to:

importCheckBoxfrom'@react-native-community/checkbox';

Usage

Example

importCheckBoxfrom'@react-native-community/checkbox';
const[toggleCheckBox,setToggleCheckBox]=useState(false)<CheckBoxdisabled={false}value={toggleCheckBox}onValueChange={(newValue)=>setToggleCheckBox(newValue)}/>

CheckBox is a controlled component: it renders the value prop and does not keep its own internal state. You must update value (usually from onValueChange) for the checkbox to reflect a tap. If value is not updated, the checkbox stays in the state you passed — this is now consistent across Android, iOS, and Windows.

Check out the example project for more examples.

Props

Common Props

View props...

Prop nameTypeDescription
onChangefunctionInvoked on change with the native event.
onValueChangefunctionInvoked with the new boolean value when it changes.
valuebooleanThe value of the checkbox. If true the checkbox will be turned on. Default value is false.
testIDstringUsed to locate this view in end-to-end tests.
disabledbooleanIf true the user won't be able to toggle the checkbox. Default value is false.

Android Only Props

Prop nameTypeDescription
tintColorsobjectAn object with the following shape: { true?: ?ColorValue, false?: ?ColorValue }. The color value for true will be used when the checkbox is checked, and the color value for false will be used when it is off.

IOS Only Props

Prop nameTypeDescription
lineWidthnumberThe width of the lines of the check mark and box. Defaults to 2.0.
hideBoxbooleanControl if the box should be hidden or not. Defaults to false
boxType'circle' or 'square'The type of box to use. Defaults to 'circle'
tintColorstringThe color of the box when the checkbox is Off. Defaults to '#aaaaaa'
onCheckColorstringThe color of the check mark when it is On. Defaults to '#007aff'
onFillColorstringThe color of the inside of the box when it is On. Defaults to transparent
onTintColorstringThe color of the line around the box when it is On. Defaults to '#007aff'
animationDurationnumberThe duration in seconds of the animations. Defaults to 0.5
onAnimationType'stroke' or 'fill' or 'bounce' or 'flat' or 'one-stroke' or 'fade'The type of animation to use when the checkbox gets checked. Default to 'stroke'
offAnimationType'stroke' or 'fill' or 'bounce' or 'flat' or 'one-stroke' or 'fade'The type of animation to use when the checkbox gets unchecked. 'stroke'

Windows Props

Implemented most of iOS and Android props. Defaults for color styling can be referenced here: https://docs.microsoft.com/en-us/dotnet/framework/wpf/controls/checkbox-styles-and-templates

Prop nameTypeDescription
disabledbooleanIf true the user won't be able to toggle the checkbox. Default value is false.
tintColorstringThe color of the box when the checkbox is Off.
onCheckColorstringThe color of the check mark when it is On.
onFillColorstringThe color of the inside of the box when it is On.
onTintColorstringThe color of the line around the box when it is On.

Contributors

This module was extracted from react-native core.

The implementaion of IOS version refered to BEMCheckBox

License

The library is released under the MIT licence. For more information see LICENSE.

About

Checkbox component for React Native

Topics

Resources

Stars

379 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

@react-native-community/checkbox

React Native Checkbox CISupports Android, iOS and WindowsMIT Licensenpm versionLean Core Extracted

React Native component for Checkbox

Android ExampleIOS ExampleWindows Example

Support

RN versionCheckbox version
>= 0.76 (New Architecture)>= 0.5.20
>= 0.62 to run on Windows0.5
> 0.60 & < 0.62>= 0.3 (Support iOS from 0.4)
< 0.600.2 (only Android)

New Architecture

The library supports the React Native New Architecture (Fabric/TurboModules):

  • Android and Windows run as native Fabric components.
  • iOS runs through the New Architecture interop layer (it is not yet a native Fabric component). It works under the New Architecture, but a full iOS codegen migration is still tracked in #211.

The latest versions are developed and tested against React Native 0.82.

Getting started

yarn add @react-native-community/checkbox

or

npm install @react-native-community/checkbox --save

On iOS, install cocoapods:

npx pod-install

Autolinking

On react-native >= 0.60 (and react-native-windows >= 0.63), autolinking takes care of linking the module on iOS, Android, and Windows — no extra steps are needed beyond installing the package (and running pod install on iOS).

Manual installation (legacy)

Only needed for react-native < 0.60 or react-native-windows < 0.63.
Manually link the library on Android

android/settings.gradle

include ':react-native-community-checkbox'
project(':react-native-community-checkbox').projectDir =newFile(rootProject.projectDir, '../node_modules/@react-native-community/checkbox/android')

android/app/build.gradle

dependencies {
...
implementation project(':react-native-community-checkbox')
}

android/app/src/main/.../MainApplication.java

On top, where imports are:

importcom.reactnativecommunity.checkbox.ReactCheckBoxPackage;

Add the checkbox class to your list of exported packages.

@OverrideprotectedList<ReactPackage> getPackages() {
returnArrays.asList(
newMainReactPackage(),
newReactCheckBoxPackage()
);
}
Manually link the library on Windows

Add the Checkbox project to your solution

  1. Open the solution in Visual Studio.
  2. Right-click solution icon in Solution Explorer > Add > Existing Project. Select <pathToYourApp>\node_modules\@react-native-community\checkbox\windows\Checkbox\Checkbox.vcxproj.

windows/myapp.sln

Add a reference to Checkbox to your main application project. From Visual Studio:

Right-click main application project > Add > Reference... Check 'Checkbox' from the 'Project > Solution' tab on the left.

pch.h

Add #include "winrt/Checkbox.h".

app.cpp

Add PackageProviders().Append(winrt::Checkbox::ReactPackageProvider()); before InitializeComponent();.

Migrating from the core react-native module

This module was created when the CheckBox was split out from the core of React Native. To migrate to this module you need to follow the installation instructions above and then change your imports from:

import{CheckBox}from'react-native';

to:

importCheckBoxfrom'@react-native-community/checkbox';

Usage

Example

importCheckBoxfrom'@react-native-community/checkbox';
const[toggleCheckBox,setToggleCheckBox]=useState(false)<CheckBoxdisabled={false}value={toggleCheckBox}onValueChange={(newValue)=>setToggleCheckBox(newValue)}/>

CheckBox is a controlled component: it renders the value prop and does not keep its own internal state. You must update value (usually from onValueChange) for the checkbox to reflect a tap. If value is not updated, the checkbox stays in the state you passed — this is now consistent across Android, iOS, and Windows.

Check out the example project for more examples.

Props

Common Props

View props...

Prop nameTypeDescription
onChangefunctionInvoked on change with the native event.
onValueChangefunctionInvoked with the new boolean value when it changes.
valuebooleanThe value of the checkbox. If true the checkbox will be turned on. Default value is false.
testIDstringUsed to locate this view in end-to-end tests.
disabledbooleanIf true the user won't be able to toggle the checkbox. Default value is false.

Android Only Props

Prop nameTypeDescription
tintColorsobjectAn object with the following shape: { true?: ?ColorValue, false?: ?ColorValue }. The color value for true will be used when the checkbox is checked, and the color value for false will be used when it is off.

IOS Only Props

Prop nameTypeDescription
lineWidthnumberThe width of the lines of the check mark and box. Defaults to 2.0.
hideBoxbooleanControl if the box should be hidden or not. Defaults to false
boxType'circle' or 'square'The type of box to use. Defaults to 'circle'
tintColorstringThe color of the box when the checkbox is Off. Defaults to '#aaaaaa'
onCheckColorstringThe color of the check mark when it is On. Defaults to '#007aff'
onFillColorstringThe color of the inside of the box when it is On. Defaults to transparent
onTintColorstringThe color of the line around the box when it is On. Defaults to '#007aff'
animationDurationnumberThe duration in seconds of the animations. Defaults to 0.5
onAnimationType'stroke' or 'fill' or 'bounce' or 'flat' or 'one-stroke' or 'fade'The type of animation to use when the checkbox gets checked. Default to 'stroke'
offAnimationType'stroke' or 'fill' or 'bounce' or 'flat' or 'one-stroke' or 'fade'The type of animation to use when the checkbox gets unchecked. 'stroke'

Windows Props

Implemented most of iOS and Android props. Defaults for color styling can be referenced here: https://docs.microsoft.com/en-us/dotnet/framework/wpf/controls/checkbox-styles-and-templates

Prop nameTypeDescription
disabledbooleanIf true the user won't be able to toggle the checkbox. Default value is false.
tintColorstringThe color of the box when the checkbox is Off.
onCheckColorstringThe color of the check mark when it is On.
onFillColorstringThe color of the inside of the box when it is On.
onTintColorstringThe color of the line around the box when it is On.

Contributors

This module was extracted from react-native core.

The implementaion of IOS version refered to BEMCheckBox

License

The library is released under the MIT licence. For more information see LICENSE.

About

Checkbox component for React Native

Topics

Resources

Stars

379 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

@react-native-community/checkbox

React Native Checkbox CISupports Android, iOS and WindowsMIT Licensenpm versionLean Core Extracted

React Native component for Checkbox

Android ExampleIOS ExampleWindows Example

Support

RN versionCheckbox version
>= 0.76 (New Architecture)>= 0.5.20
>= 0.62 to run on Windows0.5
> 0.60 & < 0.62>= 0.3 (Support iOS from 0.4)
< 0.600.2 (only Android)

New Architecture

The library supports the React Native New Architecture (Fabric/TurboModules):

  • Android and Windows run as native Fabric components.
  • iOS runs through the New Architecture interop layer (it is not yet a native Fabric component). It works under the New Architecture, but a full iOS codegen migration is still tracked in #211.

The latest versions are developed and tested against React Native 0.82.

Getting started

yarn add @react-native-community/checkbox

or

npm install @react-native-community/checkbox --save

On iOS, install cocoapods:

npx pod-install

Autolinking

On react-native >= 0.60 (and react-native-windows >= 0.63), autolinking takes care of linking the module on iOS, Android, and Windows — no extra steps are needed beyond installing the package (and running pod install on iOS).

Manual installation (legacy)

Only needed for react-native < 0.60 or react-native-windows < 0.63.
Manually link the library on Android

android/settings.gradle

include ':react-native-community-checkbox'
project(':react-native-community-checkbox').projectDir =newFile(rootProject.projectDir, '../node_modules/@react-native-community/checkbox/android')

android/app/build.gradle

dependencies {
...
implementation project(':react-native-community-checkbox')
}

android/app/src/main/.../MainApplication.java

On top, where imports are:

importcom.reactnativecommunity.checkbox.ReactCheckBoxPackage;

Add the checkbox class to your list of exported packages.

@OverrideprotectedList<ReactPackage> getPackages() {
returnArrays.asList(
newMainReactPackage(),
newReactCheckBoxPackage()
);
}
Manually link the library on Windows

Add the Checkbox project to your solution

  1. Open the solution in Visual Studio.
  2. Right-click solution icon in Solution Explorer > Add > Existing Project. Select <pathToYourApp>\node_modules\@react-native-community\checkbox\windows\Checkbox\Checkbox.vcxproj.

windows/myapp.sln

Add a reference to Checkbox to your main application project. From Visual Studio:

Right-click main application project > Add > Reference... Check 'Checkbox' from the 'Project > Solution' tab on the left.

pch.h

Add #include "winrt/Checkbox.h".

app.cpp

Add PackageProviders().Append(winrt::Checkbox::ReactPackageProvider()); before InitializeComponent();.

Migrating from the core react-native module

This module was created when the CheckBox was split out from the core of React Native. To migrate to this module you need to follow the installation instructions above and then change your imports from:

import{CheckBox}from'react-native';

to:

importCheckBoxfrom'@react-native-community/checkbox';

Usage

Example

importCheckBoxfrom'@react-native-community/checkbox';
const[toggleCheckBox,setToggleCheckBox]=useState(false)<CheckBoxdisabled={false}value={toggleCheckBox}onValueChange={(newValue)=>setToggleCheckBox(newValue)}/>

CheckBox is a controlled component: it renders the value prop and does not keep its own internal state. You must update value (usually from onValueChange) for the checkbox to reflect a tap. If value is not updated, the checkbox stays in the state you passed — this is now consistent across Android, iOS, and Windows.

Check out the example project for more examples.

Props

Common Props

View props...

Prop nameTypeDescription
onChangefunctionInvoked on change with the native event.
onValueChangefunctionInvoked with the new boolean value when it changes.
valuebooleanThe value of the checkbox. If true the checkbox will be turned on. Default value is false.
testIDstringUsed to locate this view in end-to-end tests.
disabledbooleanIf true the user won't be able to toggle the checkbox. Default value is false.

Android Only Props

Prop nameTypeDescription
tintColorsobjectAn object with the following shape: { true?: ?ColorValue, false?: ?ColorValue }. The color value for true will be used when the checkbox is checked, and the color value for false will be used when it is off.

IOS Only Props

Prop nameTypeDescription
lineWidthnumberThe width of the lines of the check mark and box. Defaults to 2.0.
hideBoxbooleanControl if the box should be hidden or not. Defaults to false
boxType'circle' or 'square'The type of box to use. Defaults to 'circle'
tintColorstringThe color of the box when the checkbox is Off. Defaults to '#aaaaaa'
onCheckColorstringThe color of the check mark when it is On. Defaults to '#007aff'
onFillColorstringThe color of the inside of the box when it is On. Defaults to transparent
onTintColorstringThe color of the line around the box when it is On. Defaults to '#007aff'
animationDurationnumberThe duration in seconds of the animations. Defaults to 0.5
onAnimationType'stroke' or 'fill' or 'bounce' or 'flat' or 'one-stroke' or 'fade'The type of animation to use when the checkbox gets checked. Default to 'stroke'
offAnimationType'stroke' or 'fill' or 'bounce' or 'flat' or 'one-stroke' or 'fade'The type of animation to use when the checkbox gets unchecked. 'stroke'

Windows Props

Implemented most of iOS and Android props. Defaults for color styling can be referenced here: https://docs.microsoft.com/en-us/dotnet/framework/wpf/controls/checkbox-styles-and-templates

Prop nameTypeDescription
disabledbooleanIf true the user won't be able to toggle the checkbox. Default value is false.
tintColorstringThe color of the box when the checkbox is Off.
onCheckColorstringThe color of the check mark when it is On.
onFillColorstringThe color of the inside of the box when it is On.
onTintColorstringThe color of the line around the box when it is On.

Contributors

This module was extracted from react-native core.

The implementaion of IOS version refered to BEMCheckBox

License

The library is released under the MIT licence. For more information see LICENSE.

About

Checkbox component for React Native

Topics

Resources

Stars

379 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

@react-native-community/checkbox

React Native Checkbox CISupports Android, iOS and WindowsMIT Licensenpm versionLean Core Extracted

React Native component for Checkbox

Android ExampleIOS ExampleWindows Example

Support

RN versionCheckbox version
>= 0.76 (New Architecture)>= 0.5.20
>= 0.62 to run on Windows0.5
> 0.60 & < 0.62>= 0.3 (Support iOS from 0.4)
< 0.600.2 (only Android)

New Architecture

The library supports the React Native New Architecture (Fabric/TurboModules):

  • Android and Windows run as native Fabric components.
  • iOS runs through the New Architecture interop layer (it is not yet a native Fabric component). It works under the New Architecture, but a full iOS codegen migration is still tracked in #211.

The latest versions are developed and tested against React Native 0.82.

Getting started

yarn add @react-native-community/checkbox

or

npm install @react-native-community/checkbox --save

On iOS, install cocoapods:

npx pod-install

Autolinking

On react-native >= 0.60 (and react-native-windows >= 0.63), autolinking takes care of linking the module on iOS, Android, and Windows — no extra steps are needed beyond installing the package (and running pod install on iOS).

Manual installation (legacy)

Only needed for react-native < 0.60 or react-native-windows < 0.63.
Manually link the library on Android

android/settings.gradle

include ':react-native-community-checkbox'
project(':react-native-community-checkbox').projectDir =newFile(rootProject.projectDir, '../node_modules/@react-native-community/checkbox/android')

android/app/build.gradle

dependencies {
...
implementation project(':react-native-community-checkbox')
}

android/app/src/main/.../MainApplication.java

On top, where imports are:

importcom.reactnativecommunity.checkbox.ReactCheckBoxPackage;

Add the checkbox class to your list of exported packages.

@OverrideprotectedList<ReactPackage> getPackages() {
returnArrays.asList(
newMainReactPackage(),
newReactCheckBoxPackage()
);
}
Manually link the library on Windows

Add the Checkbox project to your solution

  1. Open the solution in Visual Studio.
  2. Right-click solution icon in Solution Explorer > Add > Existing Project. Select <pathToYourApp>\node_modules\@react-native-community\checkbox\windows\Checkbox\Checkbox.vcxproj.

windows/myapp.sln

Add a reference to Checkbox to your main application project. From Visual Studio:

Right-click main application project > Add > Reference... Check 'Checkbox' from the 'Project > Solution' tab on the left.

pch.h

Add #include "winrt/Checkbox.h".

app.cpp

Add PackageProviders().Append(winrt::Checkbox::ReactPackageProvider()); before InitializeComponent();.

Migrating from the core react-native module

This module was created when the CheckBox was split out from the core of React Native. To migrate to this module you need to follow the installation instructions above and then change your imports from:

import{CheckBox}from'react-native';

to:

importCheckBoxfrom'@react-native-community/checkbox';

Usage

Example

importCheckBoxfrom'@react-native-community/checkbox';
const[toggleCheckBox,setToggleCheckBox]=useState(false)<CheckBoxdisabled={false}value={toggleCheckBox}onValueChange={(newValue)=>setToggleCheckBox(newValue)}/>

CheckBox is a controlled component: it renders the value prop and does not keep its own internal state. You must update value (usually from onValueChange) for the checkbox to reflect a tap. If value is not updated, the checkbox stays in the state you passed — this is now consistent across Android, iOS, and Windows.

Check out the example project for more examples.

Props

Common Props

View props...

Prop nameTypeDescription
onChangefunctionInvoked on change with the native event.
onValueChangefunctionInvoked with the new boolean value when it changes.
valuebooleanThe value of the checkbox. If true the checkbox will be turned on. Default value is false.
testIDstringUsed to locate this view in end-to-end tests.
disabledbooleanIf true the user won't be able to toggle the checkbox. Default value is false.

Android Only Props

Prop nameTypeDescription
tintColorsobjectAn object with the following shape: { true?: ?ColorValue, false?: ?ColorValue }. The color value for true will be used when the checkbox is checked, and the color value for false will be used when it is off.

IOS Only Props

Prop nameTypeDescription
lineWidthnumberThe width of the lines of the check mark and box. Defaults to 2.0.
hideBoxbooleanControl if the box should be hidden or not. Defaults to false
boxType'circle' or 'square'The type of box to use. Defaults to 'circle'
tintColorstringThe color of the box when the checkbox is Off. Defaults to '#aaaaaa'
onCheckColorstringThe color of the check mark when it is On. Defaults to '#007aff'
onFillColorstringThe color of the inside of the box when it is On. Defaults to transparent
onTintColorstringThe color of the line around the box when it is On. Defaults to '#007aff'
animationDurationnumberThe duration in seconds of the animations. Defaults to 0.5
onAnimationType'stroke' or 'fill' or 'bounce' or 'flat' or 'one-stroke' or 'fade'The type of animation to use when the checkbox gets checked. Default to 'stroke'
offAnimationType'stroke' or 'fill' or 'bounce' or 'flat' or 'one-stroke' or 'fade'The type of animation to use when the checkbox gets unchecked. 'stroke'

Windows Props

Implemented most of iOS and Android props. Defaults for color styling can be referenced here: https://docs.microsoft.com/en-us/dotnet/framework/wpf/controls/checkbox-styles-and-templates

Prop nameTypeDescription
disabledbooleanIf true the user won't be able to toggle the checkbox. Default value is false.
tintColorstringThe color of the box when the checkbox is Off.
onCheckColorstringThe color of the check mark when it is On.
onFillColorstringThe color of the inside of the box when it is On.
onTintColorstringThe color of the line around the box when it is On.

Contributors

This module was extracted from react-native core.

The implementaion of IOS version refered to BEMCheckBox

License

The library is released under the MIT licence. For more information see LICENSE.

About

Checkbox component for React Native

Topics

Resources

Stars

379 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

@react-native-community/checkbox

React Native Checkbox CISupports Android, iOS and WindowsMIT Licensenpm versionLean Core Extracted

React Native component for Checkbox

Android ExampleIOS ExampleWindows Example

Support

RN versionCheckbox version
>= 0.76 (New Architecture)>= 0.5.20
>= 0.62 to run on Windows0.5
> 0.60 & < 0.62>= 0.3 (Support iOS from 0.4)
< 0.600.2 (only Android)

New Architecture

The library supports the React Native New Architecture (Fabric/TurboModules):

  • Android and Windows run as native Fabric components.
  • iOS runs through the New Architecture interop layer (it is not yet a native Fabric component). It works under the New Architecture, but a full iOS codegen migration is still tracked in #211.

The latest versions are developed and tested against React Native 0.82.

Getting started

yarn add @react-native-community/checkbox

or

npm install @react-native-community/checkbox --save

On iOS, install cocoapods:

npx pod-install

Autolinking

On react-native >= 0.60 (and react-native-windows >= 0.63), autolinking takes care of linking the module on iOS, Android, and Windows — no extra steps are needed beyond installing the package (and running pod install on iOS).

Manual installation (legacy)

Only needed for react-native < 0.60 or react-native-windows < 0.63.
Manually link the library on Android

android/settings.gradle

include ':react-native-community-checkbox'
project(':react-native-community-checkbox').projectDir =newFile(rootProject.projectDir, '../node_modules/@react-native-community/checkbox/android')

android/app/build.gradle

dependencies {
...
implementation project(':react-native-community-checkbox')
}

android/app/src/main/.../MainApplication.java

On top, where imports are:

importcom.reactnativecommunity.checkbox.ReactCheckBoxPackage;

Add the checkbox class to your list of exported packages.

@OverrideprotectedList<ReactPackage> getPackages() {
returnArrays.asList(
newMainReactPackage(),
newReactCheckBoxPackage()
);
}
Manually link the library on Windows

Add the Checkbox project to your solution

  1. Open the solution in Visual Studio.
  2. Right-click solution icon in Solution Explorer > Add > Existing Project. Select <pathToYourApp>\node_modules\@react-native-community\checkbox\windows\Checkbox\Checkbox.vcxproj.

windows/myapp.sln

Add a reference to Checkbox to your main application project. From Visual Studio:

Right-click main application project > Add > Reference... Check 'Checkbox' from the 'Project > Solution' tab on the left.

pch.h

Add #include "winrt/Checkbox.h".

app.cpp

Add PackageProviders().Append(winrt::Checkbox::ReactPackageProvider()); before InitializeComponent();.

Migrating from the core react-native module

This module was created when the CheckBox was split out from the core of React Native. To migrate to this module you need to follow the installation instructions above and then change your imports from:

import{CheckBox}from'react-native';

to:

importCheckBoxfrom'@react-native-community/checkbox';

Usage

Example

importCheckBoxfrom'@react-native-community/checkbox';
const[toggleCheckBox,setToggleCheckBox]=useState(false)<CheckBoxdisabled={false}value={toggleCheckBox}onValueChange={(newValue)=>setToggleCheckBox(newValue)}/>

CheckBox is a controlled component: it renders the value prop and does not keep its own internal state. You must update value (usually from onValueChange) for the checkbox to reflect a tap. If value is not updated, the checkbox stays in the state you passed — this is now consistent across Android, iOS, and Windows.

Check out the example project for more examples.

Props

Common Props

View props...

Prop nameTypeDescription
onChangefunctionInvoked on change with the native event.
onValueChangefunctionInvoked with the new boolean value when it changes.
valuebooleanThe value of the checkbox. If true the checkbox will be turned on. Default value is false.
testIDstringUsed to locate this view in end-to-end tests.
disabledbooleanIf true the user won't be able to toggle the checkbox. Default value is false.

Android Only Props

Prop nameTypeDescription
tintColorsobjectAn object with the following shape: { true?: ?ColorValue, false?: ?ColorValue }. The color value for true will be used when the checkbox is checked, and the color value for false will be used when it is off.

IOS Only Props

Prop nameTypeDescription
lineWidthnumberThe width of the lines of the check mark and box. Defaults to 2.0.
hideBoxbooleanControl if the box should be hidden or not. Defaults to false
boxType'circle' or 'square'The type of box to use. Defaults to 'circle'
tintColorstringThe color of the box when the checkbox is Off. Defaults to '#aaaaaa'
onCheckColorstringThe color of the check mark when it is On. Defaults to '#007aff'
onFillColorstringThe color of the inside of the box when it is On. Defaults to transparent
onTintColorstringThe color of the line around the box when it is On. Defaults to '#007aff'
animationDurationnumberThe duration in seconds of the animations. Defaults to 0.5
onAnimationType'stroke' or 'fill' or 'bounce' or 'flat' or 'one-stroke' or 'fade'The type of animation to use when the checkbox gets checked. Default to 'stroke'
offAnimationType'stroke' or 'fill' or 'bounce' or 'flat' or 'one-stroke' or 'fade'The type of animation to use when the checkbox gets unchecked. 'stroke'

Windows Props

Implemented most of iOS and Android props. Defaults for color styling can be referenced here: https://docs.microsoft.com/en-us/dotnet/framework/wpf/controls/checkbox-styles-and-templates

Prop nameTypeDescription
disabledbooleanIf true the user won't be able to toggle the checkbox. Default value is false.
tintColorstringThe color of the box when the checkbox is Off.
onCheckColorstringThe color of the check mark when it is On.
onFillColorstringThe color of the inside of the box when it is On.
onTintColorstringThe color of the line around the box when it is On.

Contributors

This module was extracted from react-native core.

The implementaion of IOS version refered to BEMCheckBox

License

The library is released under the MIT licence. For more information see LICENSE.

About

Checkbox component for React Native

Topics

Resources

Stars

379 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

@react-native-community/checkbox

React Native Checkbox CISupports Android, iOS and WindowsMIT Licensenpm versionLean Core Extracted

React Native component for Checkbox

Android ExampleIOS ExampleWindows Example

Support

RN versionCheckbox version
>= 0.76 (New Architecture)>= 0.5.20
>= 0.62 to run on Windows0.5
> 0.60 & < 0.62>= 0.3 (Support iOS from 0.4)
< 0.600.2 (only Android)

New Architecture

The library supports the React Native New Architecture (Fabric/TurboModules):

  • Android and Windows run as native Fabric components.
  • iOS runs through the New Architecture interop layer (it is not yet a native Fabric component). It works under the New Architecture, but a full iOS codegen migration is still tracked in #211.

The latest versions are developed and tested against React Native 0.82.

Getting started

yarn add @react-native-community/checkbox

or

npm install @react-native-community/checkbox --save

On iOS, install cocoapods:

npx pod-install

Autolinking

On react-native >= 0.60 (and react-native-windows >= 0.63), autolinking takes care of linking the module on iOS, Android, and Windows — no extra steps are needed beyond installing the package (and running pod install on iOS).

Manual installation (legacy)

Only needed for react-native < 0.60 or react-native-windows < 0.63.
Manually link the library on Android

android/settings.gradle

include ':react-native-community-checkbox'
project(':react-native-community-checkbox').projectDir =newFile(rootProject.projectDir, '../node_modules/@react-native-community/checkbox/android')

android/app/build.gradle

dependencies {
...
implementation project(':react-native-community-checkbox')
}

android/app/src/main/.../MainApplication.java

On top, where imports are:

importcom.reactnativecommunity.checkbox.ReactCheckBoxPackage;

Add the checkbox class to your list of exported packages.

@OverrideprotectedList<ReactPackage> getPackages() {
returnArrays.asList(
newMainReactPackage(),
newReactCheckBoxPackage()
);
}
Manually link the library on Windows

Add the Checkbox project to your solution

  1. Open the solution in Visual Studio.
  2. Right-click solution icon in Solution Explorer > Add > Existing Project. Select <pathToYourApp>\node_modules\@react-native-community\checkbox\windows\Checkbox\Checkbox.vcxproj.

windows/myapp.sln

Add a reference to Checkbox to your main application project. From Visual Studio:

Right-click main application project > Add > Reference... Check 'Checkbox' from the 'Project > Solution' tab on the left.

pch.h

Add #include "winrt/Checkbox.h".

app.cpp

Add PackageProviders().Append(winrt::Checkbox::ReactPackageProvider()); before InitializeComponent();.

Migrating from the core react-native module

This module was created when the CheckBox was split out from the core of React Native. To migrate to this module you need to follow the installation instructions above and then change your imports from:

import{CheckBox}from'react-native';

to:

importCheckBoxfrom'@react-native-community/checkbox';

Usage

Example

importCheckBoxfrom'@react-native-community/checkbox';
const[toggleCheckBox,setToggleCheckBox]=useState(false)<CheckBoxdisabled={false}value={toggleCheckBox}onValueChange={(newValue)=>setToggleCheckBox(newValue)}/>

CheckBox is a controlled component: it renders the value prop and does not keep its own internal state. You must update value (usually from onValueChange) for the checkbox to reflect a tap. If value is not updated, the checkbox stays in the state you passed — this is now consistent across Android, iOS, and Windows.

Check out the example project for more examples.

Props

Common Props

View props...

Prop nameTypeDescription
onChangefunctionInvoked on change with the native event.
onValueChangefunctionInvoked with the new boolean value when it changes.
valuebooleanThe value of the checkbox. If true the checkbox will be turned on. Default value is false.
testIDstringUsed to locate this view in end-to-end tests.
disabledbooleanIf true the user won't be able to toggle the checkbox. Default value is false.

Android Only Props

Prop nameTypeDescription
tintColorsobjectAn object with the following shape: { true?: ?ColorValue, false?: ?ColorValue }. The color value for true will be used when the checkbox is checked, and the color value for false will be used when it is off.

IOS Only Props

Prop nameTypeDescription
lineWidthnumberThe width of the lines of the check mark and box. Defaults to 2.0.
hideBoxbooleanControl if the box should be hidden or not. Defaults to false
boxType'circle' or 'square'The type of box to use. Defaults to 'circle'
tintColorstringThe color of the box when the checkbox is Off. Defaults to '#aaaaaa'
onCheckColorstringThe color of the check mark when it is On. Defaults to '#007aff'
onFillColorstringThe color of the inside of the box when it is On. Defaults to transparent
onTintColorstringThe color of the line around the box when it is On. Defaults to '#007aff'
animationDurationnumberThe duration in seconds of the animations. Defaults to 0.5
onAnimationType'stroke' or 'fill' or 'bounce' or 'flat' or 'one-stroke' or 'fade'The type of animation to use when the checkbox gets checked. Default to 'stroke'
offAnimationType'stroke' or 'fill' or 'bounce' or 'flat' or 'one-stroke' or 'fade'The type of animation to use when the checkbox gets unchecked. 'stroke'

Windows Props

Implemented most of iOS and Android props. Defaults for color styling can be referenced here: https://docs.microsoft.com/en-us/dotnet/framework/wpf/controls/checkbox-styles-and-templates

Prop nameTypeDescription
disabledbooleanIf true the user won't be able to toggle the checkbox. Default value is false.
tintColorstringThe color of the box when the checkbox is Off.
onCheckColorstringThe color of the check mark when it is On.
onFillColorstringThe color of the inside of the box when it is On.
onTintColorstringThe color of the line around the box when it is On.

Contributors

This module was extracted from react-native core.

The implementaion of IOS version refered to BEMCheckBox

License

The library is released under the MIT licence. For more information see LICENSE.

About

Checkbox component for React Native

Topics

Resources

Stars

379 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

@react-native-community/checkbox

React Native Checkbox CISupports Android, iOS and WindowsMIT Licensenpm versionLean Core Extracted

React Native component for Checkbox

Android ExampleIOS ExampleWindows Example

Support

RN versionCheckbox version
>= 0.76 (New Architecture)>= 0.5.20
>= 0.62 to run on Windows0.5
> 0.60 & < 0.62>= 0.3 (Support iOS from 0.4)
< 0.600.2 (only Android)

New Architecture

The library supports the React Native New Architecture (Fabric/TurboModules):

  • Android and Windows run as native Fabric components.
  • iOS runs through the New Architecture interop layer (it is not yet a native Fabric component). It works under the New Architecture, but a full iOS codegen migration is still tracked in #211.

The latest versions are developed and tested against React Native 0.82.

Getting started

yarn add @react-native-community/checkbox

or

npm install @react-native-community/checkbox --save

On iOS, install cocoapods:

npx pod-install

Autolinking

On react-native >= 0.60 (and react-native-windows >= 0.63), autolinking takes care of linking the module on iOS, Android, and Windows — no extra steps are needed beyond installing the package (and running pod install on iOS).

Manual installation (legacy)

Only needed for react-native < 0.60 or react-native-windows < 0.63.
Manually link the library on Android

android/settings.gradle

include ':react-native-community-checkbox'
project(':react-native-community-checkbox').projectDir =newFile(rootProject.projectDir, '../node_modules/@react-native-community/checkbox/android')

android/app/build.gradle

dependencies {
...
implementation project(':react-native-community-checkbox')
}

android/app/src/main/.../MainApplication.java

On top, where imports are:

importcom.reactnativecommunity.checkbox.ReactCheckBoxPackage;

Add the checkbox class to your list of exported packages.

@OverrideprotectedList<ReactPackage> getPackages() {
returnArrays.asList(
newMainReactPackage(),
newReactCheckBoxPackage()
);
}
Manually link the library on Windows

Add the Checkbox project to your solution

  1. Open the solution in Visual Studio.
  2. Right-click solution icon in Solution Explorer > Add > Existing Project. Select <pathToYourApp>\node_modules\@react-native-community\checkbox\windows\Checkbox\Checkbox.vcxproj.

windows/myapp.sln

Add a reference to Checkbox to your main application project. From Visual Studio:

Right-click main application project > Add > Reference... Check 'Checkbox' from the 'Project > Solution' tab on the left.

pch.h

Add #include "winrt/Checkbox.h".

app.cpp

Add PackageProviders().Append(winrt::Checkbox::ReactPackageProvider()); before InitializeComponent();.

Migrating from the core react-native module

This module was created when the CheckBox was split out from the core of React Native. To migrate to this module you need to follow the installation instructions above and then change your imports from:

import{CheckBox}from'react-native';

to:

importCheckBoxfrom'@react-native-community/checkbox';

Usage

Example

importCheckBoxfrom'@react-native-community/checkbox';
const[toggleCheckBox,setToggleCheckBox]=useState(false)<CheckBoxdisabled={false}value={toggleCheckBox}onValueChange={(newValue)=>setToggleCheckBox(newValue)}/>

CheckBox is a controlled component: it renders the value prop and does not keep its own internal state. You must update value (usually from onValueChange) for the checkbox to reflect a tap. If value is not updated, the checkbox stays in the state you passed — this is now consistent across Android, iOS, and Windows.

Check out the example project for more examples.

Props

Common Props

View props...

Prop nameTypeDescription
onChangefunctionInvoked on change with the native event.
onValueChangefunctionInvoked with the new boolean value when it changes.
valuebooleanThe value of the checkbox. If true the checkbox will be turned on. Default value is false.
testIDstringUsed to locate this view in end-to-end tests.
disabledbooleanIf true the user won't be able to toggle the checkbox. Default value is false.

Android Only Props

Prop nameTypeDescription
tintColorsobjectAn object with the following shape: { true?: ?ColorValue, false?: ?ColorValue }. The color value for true will be used when the checkbox is checked, and the color value for false will be used when it is off.

IOS Only Props

Prop nameTypeDescription
lineWidthnumberThe width of the lines of the check mark and box. Defaults to 2.0.
hideBoxbooleanControl if the box should be hidden or not. Defaults to false
boxType'circle' or 'square'The type of box to use. Defaults to 'circle'
tintColorstringThe color of the box when the checkbox is Off. Defaults to '#aaaaaa'
onCheckColorstringThe color of the check mark when it is On. Defaults to '#007aff'
onFillColorstringThe color of the inside of the box when it is On. Defaults to transparent
onTintColorstringThe color of the line around the box when it is On. Defaults to '#007aff'
animationDurationnumberThe duration in seconds of the animations. Defaults to 0.5
onAnimationType'stroke' or 'fill' or 'bounce' or 'flat' or 'one-stroke' or 'fade'The type of animation to use when the checkbox gets checked. Default to 'stroke'
offAnimationType'stroke' or 'fill' or 'bounce' or 'flat' or 'one-stroke' or 'fade'The type of animation to use when the checkbox gets unchecked. 'stroke'

Windows Props

Implemented most of iOS and Android props. Defaults for color styling can be referenced here: https://docs.microsoft.com/en-us/dotnet/framework/wpf/controls/checkbox-styles-and-templates

Prop nameTypeDescription
disabledbooleanIf true the user won't be able to toggle the checkbox. Default value is false.
tintColorstringThe color of the box when the checkbox is Off.
onCheckColorstringThe color of the check mark when it is On.
onFillColorstringThe color of the inside of the box when it is On.
onTintColorstringThe color of the line around the box when it is On.

Contributors

This module was extracted from react-native core.

The implementaion of IOS version refered to BEMCheckBox

License

The library is released under the MIT licence. For more information see LICENSE.

About

Checkbox component for React Native

Topics

Resources

Stars

379 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages