Skip to content
🌲 Evergreen React UI Framework by Segment
JavaScript
Branch: master
Clone or download

Latest commit

akleiner2 [Docs] Recursively un-nest `arrayOf`, `shape`, and `union` types (#771)
* [Docs] Un-nest `arrayOf` and `shape` types, and recursively unnest `union` types

* remove stray comments
Latest commit 9d91699 Apr 1, 2020

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci update ci docker to node 10 (#657) Oct 25, 2019
.github update stalebot config to ignore more types of labels and only look a… Mar 11, 2019
.storybook Upgrade dev deps and fix linting errors (#719) Jan 22, 2020
.vscode V4 (Kauri) (#200) Oct 16, 2018
docs [Docs] Recursively un-nest `arrayOf`, `shape`, and `union` types (#771) Apr 1, 2020
examples/ssr-next Upgrade dev deps and fix linting errors (#719) Jan 22, 2020
src
tools Upgrade dev deps and fix linting errors (#719) Jan 22, 2020
.babelrc V4 (Kauri) (#200) Oct 16, 2018
.editorconfig Switch from a monorepo to a single package (#125) Feb 6, 2018
.gitattributes Fix all of the linting errors and more tidy up (#99) Dec 9, 2017
.gitignore Add UMD support (#720) Feb 4, 2020
.npmrc fix proptype warning and rm package lock because yarn (#505) Feb 25, 2019
.prettierignore Remove storybook-deployer Sep 24, 2018
LICENSE Switch from a monorepo to a single package (#125) Feb 6, 2018
README.md Makes contribution guide more comprehensive (#738) Mar 17, 2020
evergreen-github-hero.png Add GitHub hero Jul 23, 2018
index.d.ts Update title props for Corner Dialog to support React.ReactNode and m… Mar 13, 2020
package.json v4.24.0 Mar 24, 2020
rollup.config.js Add UMD support (#720) Feb 4, 2020
yarn.lock Upgrade the version of ui-box (#763) Mar 24, 2020

README.md

  • Works out of the box. Evergreen contains a set of polished React components that work out of the box.

  • Flexible & composable. Evergreen components are built on top of a React UI Primitive for endless composability.

  • Enterprise-grade. Evergreen features a UI design language for enterprise-grade web applications.

Documentation & Community

Evergreen v3 to v4 Migration guide

Evergreen v3 to v4 migration guide

Install and use components

🌲 Evergreen is made up of multiple components and tools which you can import one by one. All you need to do is install the evergreen-ui package:

$ yarn add evergreen-ui
# or
$ npm install --save evergreen-ui

A working version, assuming you are using something like Create React App, might look like this:

import React from 'react'
import ReactDOM from 'react-dom'
import { Button } from 'evergreen-ui'

ReactDOM.render(
  <Button>I am using 🌲 Evergreen!</Button>,
  document.getElementById('root')
)

Core values of 🌲 Evergreen

  • Evergreen is built on the belief that you can never predict all future requirements, only prepare for it. Instead of creating fixed configurations that work today, Evergreen promotes building systems that anticipate new and changing design requirements.

  • Evergreen is built on the belief that things should work out of the box with smart defaults, but also offer full control when needed. For example, Evergreen uses CSS-in-JS and builds on top of the Box component in ui-box.

  • Evergreen is built on the belief that using Evergreen and contributing to Evergreen should be a pleasant experience. We prioritize documentation and all the tools for a solid developer experience. We advocate respect and inclusivity in our writings and interactions.

FAQ

Theming support?

Evergreen v4 supports theming partially. It is still complex to theme Evergreen. We have done exploratory work to make theming more powerful and accessible. The progress is available in the v4-create-theme branch.

See these docs for more information regarding theming in Evergreen.

How does Server Side Rendering (SSR) work?

Evergreen offers easy Server Side Rendering (SSR) and automatic hydration.

Evergreen bundles 2 CSS-in-JS solutions, from glamor and ui-box. To make it super easy to do server side rendering and hydration, Evergreen exposes a extractStyles() function that will do SSR for both at once.

Contributing to Evergreen

🍴 Step 1. Fork this repository

In order to contribute to Evergreen, you need to fork this repo, and develop on your own local clone.

If you don't know how to do so, follow this guide!

πŸ“– Step 2. Get storybook up and running

First, cd into your local cloned repository and install your node_modules with:

$ yarn

To actually start seeing the components you have to run React Storybook with the command:

$ yarn dev

Now go to http://localhost:6006 in your browser.

πŸ›  Step 3. Make your change

Now you can start developing! All of the components are under the src directory and associated code changes will automatically be reflected in StoryBook.

If necessary, we encourage you to update the documentation so Evergreen users will be aware of your new features/changes.

In order to run the documentation page locally, run these commands in your terminal:

$ yarn build
$ cd docs
$ yarn install
$ yarn dev

Now you can visit http://localhost:8000/ in your browser.

Documentation code is under the docs directory. A big portion of these docs are written in MDX, if you've never used MDX before, check out these docs.

πŸ† Step 4. Making your pull request

Once you're done with making your changes, push everything to your local repository's branch.

From here, you can open up a pull request from your forked repository's branch into segmentio/evergreen's master branch.

In your PR description, explain the changes you made, why you made them, how to test them, and anything that might be a point of interest.

Once you create your PR, it will be reviewed and hopefully merged quickly!

πŸ₯‚ Step 5. Pat yourself on the back

Congrats, you're officially an Evergreen contributor!

πŸ€“ Scripts explained

Inside the package.json there are a bunch of scripts that this repo uses to run the project in development and to build the project.

Below you can read a description of each script.

  • yarn dev: Starts the development React Storybook.

  • yarn test: Lints the JavaScript files using XO and then runs the unit tests using AVA.

  • yarn build: Builds all of the JavaScript files using Babel.

  • yarn clean: removes all untracked files (git clean -Xdf).

  • yarn release: Releases new version of Evergreen (requires MFA via npm as a collaborator)

  • yarn create-package: This command scaffolds a package with no specific boilerplate. It's useful for creating utilities.

For the following command:

yarn create-package utils

The following file tree will be generated:

/src/utils
β”œβ”€β”€ /src/
└── index.js
  • yarn create-package:components: This command scaffolds a package with React component(s) boilerplate.

You can pass one or more components to this command.

For the following command:

yarn create-package:components typography Text Heading

The following file tree will be generated:

/src/typography
β”œβ”€β”€ /src/
|   │── Text.js
|   └── Heading.js
β”œβ”€β”€ /stories/
β”‚   └── index.stories.js
└── index.js

πŸŽ‰ Contributors

We will add you to the list if you make any meaningful contribution!

  • Jeroen Ransijn
  • Roland Warmerdam
  • Ben McMahon
  • Matt Shwery
  • Chris Chuck
  • ... many other on the Segment team and open-source contributors

This project is maintained by Segment

Please take a look at the contributing guide to better understand what to work on.

πŸ‘ Respect earns Respect

Please respect our Code of Conduct, in short:

  • Using welcoming and inclusive language
  • Being respectful of differing viewpoints and experiences
  • Gracefully accepting constructive criticism
  • Focusing on what is best for the community
  • Showing empathy towards other community members

License

Evergreen is released under the MIT license. The BlueprintJS icons are licensed under a custom Apache 2.0 license.

Copyright Β© 2017 Segment.io, Inc.

You can’t perform that action at this time.