Skip to content
A react-native component library that implements the Fluent Design System.
TypeScript JavaScript Ruby Objective-C Java C++ Other
Branch: master
Clone or download

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.ado Adding UWP E2E Testing to CI Pipeline (#245) Jun 9, 2020
.github Update dependabot.yml (#261) Jun 12, 2020
.vscode Make breakpoints work when doing direct debugging (#142) Mar 30, 2020
apps 📦 applying package updates ***NO_CI*** Jun 12, 2020
assets 📝 Update readme.md (#213) May 19, 2020
change 📦 applying package updates ***NO_CI*** Jun 12, 2020
packages 📦 applying package updates ***NO_CI*** Jun 12, 2020
scripts Move projects up a dir and opt apple platforms into lerna/yarn (#226) May 29, 2020
.dockerignore Initial scaffolding (#1) Aug 2, 2019
.eslintignore Initial scaffolding (#1) Aug 2, 2019
.eslintrc.json Add Android button to expo playground Dec 17, 2019
.gitattributes Add a git attributes file for line ending settings (#180) Apr 24, 2020
.gitignore UWP E2E Testing (#233) Jun 4, 2020
CODE_OF_CONDUCT.md Add a git attributes file for line ending settings (#180) Apr 24, 2020
LICENSE Add a git attributes file for line ending settings (#180) Apr 24, 2020
README.md 📝 Update README.md May 19, 2020
api-extractor.json Move api-extractor and tsconfig to shared folder Mar 25, 2020
beachball.config.js Update to new version of beachball with working prepublish hook (#167) Apr 20, 2020
lerna.json Remove docs from yarn and lerna workspace (#179) Apr 24, 2020
package.json Adding UWP E2E Testing to CI Pipeline (#245) Jun 9, 2020
prettier.config.js Initial scaffolding (#1) Aug 2, 2019
tsconfig.json Move api-extractor and tsconfig to shared folder Mar 25, 2020
yarn.lock Bump lerna from 3.21.0 to 3.22.1 (#259) Jun 11, 2020

README.md

FluentUI React Native

npm version Build Status

FluentUI React Native is a javascript component library that provides developers with controls that are part of the Fluent Design System. These controls are built on React Native and fully customizable.

FluentUI React Native is still in the alpha stages of development for both the components and the repo. We encourage anyone who is interested in getting an early glimpse of our plans to download and use our components, but please note that you may hit bumps along the way. Please leave us feedback or file issues if you run into bumps, and we will continue to improve the quality of the repo.

Development status on each platform:

Windows macOS iOS Android
Alpha (in progress) Alpha (in progress) Alpha (in progress) Coming Soon

Getting Started

If you have an existing React Native project, it's easy to begin using FluentUI React Native. If you need to setup a new React Native project, please see the React Native Windows Getting Started documentation.

Prerequisites

Create New React Native project (if needed)

  1. Follow the instructions on the React Native Windows Getting Started documentation to create a React Native project.

  2. Navigate to the root folder of your project, and use npm to install the package:

 npm i @fluentui/react-native
  1. After successful installation, you can test the package by importing components at the top of your app's entry file, e.g. App.js:
 import { Checkbox } from '@fluentui/react-native';
  1. After importing the @fluentui/react-native package, you can use components such as Text and Checkbox in your JSX.
// In App.js in a new project
import React from 'react';
import { View, Text } from 'react-native';
import { Checkbox } from '@fluentui/react-native';
function HelloWorldApp() {
  return (
    <View
      style={{
        flex: 1,
        justifyContent: "center",
        alignItems: "center"
      }}>
      <Text>Hello, world!</Text>
      <Checkbox label="Hello World Checkbox"/>
    </View>
  )
}
export default HelloWorldApp;

Documentation

Components and Controls

Our component documentation is hosted on the FluentUI documentation.

Theming framework

Our FluentUI framework documentation is found in this repository alongside the implementation.

Developing in the repo

Yarn + Lerna

This repo is set up as a monorepo using Lerna + Yarn workspaces. The yarn commands will trigger the lerna commands which will execute yarn commands in each package. To install yarn, please follow instructions in the Yarn documentation.

Setup your development environment

To start developing in the repository you can:

  1. git clone https://github.com/microsoft/fluentui-react-native.git
  2. cd fluentui-react-native
  3. yarn
  4. yarn build

After a successful yarn build, you can explore FluentUI Tester, our demo application to play with each of the controls. To run FluentUI Tester, please follow instructions in the FluentUI Tester readme.

Beachball

This repo manages semantic versioning and publishing using Beachball. When contributing, make sure to run the following before making a pull request:

  1. yarn change will take you through a command line wizard to generate change files
  2. Make sure to commit and push the newly generated change file

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

You can’t perform that action at this time.