digiaonline / react-foundation

Foundation as React components.
https://digia.online/react-foundation-docs/
MIT License
601 stars 68 forks source link
css foundation hacktoberfest react react-components scss

React + Foundation

Build Test Coverage Maintainability StyleCI npm version npm downloads License

Foundation as React components.

Demo

https://digia.online/react-foundation-docs/

Components with Bit

Motivation

Foundation is both feature-rich and easy to customize. React on the other hand is awesome because of its simplicity. It's even more awesome when combined with Redux and Immutable.

After building quite a few applications with React and Foundation we noticed that we were writing the same components over and over again. First we tried to find a library that would do the job, but there was none that met our needs. So we collected our notes, started coding and here's the result.

We hope you enjoy it as much as we do!

What's in the box?

The goal is to wrap every part of Foundation into re-usable React components following the framework's best practices. The primary focus is ease-of-use and extensibility. We use pure render components, also known as stateless components, whenever possible to keep the memory usage to a minimum. Stateful components are only used for larger components, such as ResponsiveNavigation, where state is actually necessary. All components are unit-tested to ensure their quality.

Here is a list of the available components:

More components coming soon!

Install

Install library:

npm install react-foundation --save

Install foundation-sites:

npm install foundation-sites --save

Usage

// Add Foundation to index.js
import 'foundation-sites/dist/css/foundation.min.css';

// import components
import { Button, Colors } from 'react-foundation';

// Use components ...
function SubmitButton() {
  return <Button color={Colors.SUCCESS}>Submit</Button>;
}

Documentation is at https://digia.online/react-foundation-docs/.

Note: Newer versions of foundation-sites do not offer out of the box support for <Row/> and <Column/> components. If working with a newer version, <Grid/> and <Cell/> components should be used instead.

// Previous versions
<Row className="display">
  <Column small={2} large={4}>4 columns</Column>
  <Column small={4} large={4}>4 columns</Column>
  <Column small={6} large={4}>4 columns</Column>
</Row>

// Newer versions
<Grid className="display">
  <Cell small={2} large={4}>4 columns</Cell>
  <Cell small={4} large={4}>4 columns</Cell>
  <Cell small={6} large={4}>4 columns</Cell>
</Grid>

Contributing

Please read our guidelines.

Credits

License

See LICENSE.