Skip to content
This repository has been archived by the owner on Dec 11, 2023. It is now read-only.

A library of React Hooks for React-Native (Android/iOS/web) to provide accessible UI primitives for a design system.

License

Notifications You must be signed in to change notification settings

GeekyAnts/react-native-aria

Repository files navigation

⛔️ DEPRECATED

We have deprecated this repository and migrated our codebase to a new mono repository structure, please follow this link to access our latest updates and features.

1) Introduction

React Native ARIA helps you build accessible and rich Apps with React Native. It handles behaviour, accessibility and interactions so you can implement custom components and design systems for Android, iOS and Web.

2) Motivation

While implementing accessibility for components on NativeBase, we referred to the existing solutions for web. However, there is no existing component library that works on all the platforms without limiting it's styling, behavior and accessibility.

React Native has raised the expectations of devs to build UIs across all the platforms while reusing as much code as possible. However, React Native ships with a very lean core with a lot of room for customisation. The downside of this is that we need to build our primitive components using View and Pressable. This is in contrast to the native development world where component APIs are shipped in SDKs.

React Native ARIA aims to solve this by providing low level primitives to create a component or a primitive library that works on all platforms within the scope of React Native. React Native ARIA solves this for web, Android and iOS.

For macOS and Windows, we're exploring the possibility of using Native components that can be customised.

3) Features

Accessible: Amplify user adoption and experience for your apps

Composable: Combine components for your specific app needs

Consistent: Consistent across Web, Android and iOS

Customisable: Design implementations are in your hand

4) Installation & Usage

React Native ARIA is incrementally adoptable. Each component is published as a separate package, so you can try it out in a single component and gradually add more over time. All of these packages are published under the @react-native-aria scope on npm.

Installing an individual package:

Using yarn

yarn add @react-native-aria/checkbox

Using npm

npm install @react-native-aria/checkbox

Usage

import { useCheckbox } from "@react-native-aria/checkbox";

In addition to individual packages, we offer a mono package which contains all the React Native ARIA hooks at one place.

Installing the mono package:

Using yarn

yarn add react-native-aria

Using npm

npm install react-native-aria

Usage

import { useCheckbox } from "react-native-aria";

5) Examples

6) Tech Stack

React, React Native Web, React Native, TypeScript.

7) Contributors

8) How to Contribute

Thank you for your interest in contributing to React Native ARIA! Pull requests are welcome. Head over to Contribution Guidelines and learn how you can be a part of a wonderful, growing community.

For major changes, please open an issue first to discuss changes and update tests as appropriate.

9) License

Licensed under the MIT License, Copyright © 2020 GeekyAnts. See LICENSE for more information.

In addition to individual packages, we offer a mono package which contains all the React Native ARIA hooks at one place.