Giter VIP home page Giter VIP logo

nickgerleman / fluentui-react-native Goto Github PK

View Code? Open in Web Editor NEW

This project forked from microsoft/fluentui-react-native

0.0 2.0 0.0 19.43 MB

A react-native component library that implements the Fluent Design System.

Home Page: https://developer.microsoft.com/fluentui

License: MIT License

JavaScript 5.51% TypeScript 88.32% Ruby 0.68% Objective-C 1.87% Shell 0.30% HTML 0.10% PowerShell 0.43% Swift 0.80% C 0.02% C++ 1.98%

fluentui-react-native's Introduction

FluentUI React Native

npm version Build Status 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.

Expanding Component documentation

The FluentUI website is built out of the FluentUI repository. React-Native components and controls are documented in a 'cross' (cross-platform) directory in each component page directory, e.g. Button 'cross' directory. The FluentUI website can be run locally to verify changes, and should reflect the current state of controls that have established the v1 set of properties on any one platform.

Since the FluentUI React Native controls are cross-platform, but represented by a single page, it's important to distinguish platform differences and limitations. Examples include:

  • If the component is not available on all supported platforms.
  • If the component has properties not available on all supported platforms.
  • If the component has limited support for a given property on any supported platforms.
  • If the component has distinguishable behavior on a supported platform that must be minded while used.

Theming framework

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

Developing in the repo

Yarn + Lage

This repo is set up as a monorepo using Yarn workspaces. To install yarn, please follow instructions in the Yarn documentation.

For running tasks the repo has switched to using Lage for task running. The primary tasks that can be executed at the root are:

  • yarn build - does the typescript build for all packages in the repository
  • yarn test - will build, lint, and run any applicable tests on all packages in the repo
  • yarn bundle - will bundle all packages in the repo
  • yarn buildci - will build, lint, run tests, and bundle everything in the repo

Note that Lage uses caching to avoid redundant steps and has very minimal output. To avoid caching add --no-cache as a command line argument. Similarly adding --verbose will give more detailed output.

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.

Prettier

This repo is set up to run Prettier. To run Prettier in fix mode on the repo, run yarn prettier-fix at the root of the Repo.

If you are using VSCode as your editor, you can configure it to run Prettier on save. Prettier is a recommended extension for the repo. You can configure it to run by:

  1. Installing the Prettier extension for VSCode
  2. Going to Settings > Text Editor > Formatting > Check Format On Save

Contributing

Please visit our contribution guide for more information on contributing to this repo.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

fluentui-react-native's People

Contributors

acoates-ms avatar afoxman avatar amgleitman avatar chiuam avatar chripear avatar dake3601 avatar dependabot[bot] avatar dotnetjunky avatar ejlayne avatar falselobster avatar gulnazsayed avatar heyimchris avatar jasonvmo avatar ksiler avatar lenahong avatar lindaweng avatar micahgodbolt avatar nakambo avatar ppatboyd avatar rurikoaraki avatar saadnajmi avatar samuelfreiberg avatar sriya112 avatar tamasane97 avatar tido64 avatar tkamireh avatar tom-un avatar ui-fabric-rn-bot avatar valentinakozlova avatar warren-ms avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.