/Semantic-UI-React

The official Semantic-UI-React integration

Primary LanguageJavaScriptMIT LicenseMIT

Gitter Circle Codecov Gemnasium npm

Hey, we're in development. Prior to reaching v1.0.0:

  1. MINOR versions represent breaking changes
  2. PATCH versions represent fixes and features
  3. There are no deprecation warnings between releases
  4. You should consult the CHANGELOG and related issues/PRs for more information

Installation & Usage

See the Documentation for an introduction, usage information, and extensive examples.

Example Projects

This is a listing of example projects and guides that will help you integrate Semantic UI React into your new or existing projects.

Production-ready, performance-first, optimized, robust, fully-featured boilerplate/example for your new Progressive Web App.

This example modifies the well-known react-redux Todo List to use Semantic UI components. There is also a write-up on the process in the project README.

FAQ

Can I use custom Icons?

Yes. Just use <Icon className='my-icon' /> instead of <Icon name='my-icon' />. See Semantic-Org#931 (comment) for detailed info and examples.

How do I setup CSS?

There are several options. Refer to our doc on CSS Usage.

Can I use a custom CSS theme?

Yes. Semantic UI React includes components that render valid Semantic UI HTML, no CSS is included. This allows you to load any Semantic UI CSS theme on top of your Semantic UI React app.

Here are some helpful links:

Built With Semantic UI React

These great products are built on Semantic UI React. Add yours here.

Voice Your Opinion

Help shape this library by weighing in on our RFC (request for comments) issues.

How Can I Help?

Our CONTRIBUTING.md is a step-by-step setup and development guide. It is meant to be read from top to bottom. Once you're up to speed, each issue here includes more information on how you can help:

Issues labeled good first contribution are a great way to ease into development on this project.

We're seeking component parity with Semantic UI, plus some addons. There is an issue for every missing component, labeled new component. Just comment on the issue you'd like to take.

Any other issue labeled help wanted is ready for a PR.

Debugger

We use the debug module for debugging. You can turn debugging on and off via the localStorage.debug flag from the browser console. See the debug docs for more.

localStorage.debug = 'semanticUIReact:*'         // default, debug all components
localStorage.debug = 'semanticUIReact:dropdown'  // debug only the dropdown
localStorage.debug = null                        // turn debug off

Once you change the flag, you need to refresh your browser to see the changes in debug output.

Support

Elements Collections Views Modules Behaviors
✓ Button ✓ Breadcrumb ✓ Advertisement ✓ Accordion Form Validation
✓ Container ✓ Form ✓ Card ✓ Checkbox API (NA)
✓ Divider ✓ Grid ✓ Comment ✓ Dimmer ✓ Visibility (NA)
✓ Flag ✓ Menu ✓ Feed ✓ Dropdown
✓ Header ✓ Message ✓ Item ✓ Embed
✓ Icon ✓ Table ✓ Statistic ✓ Modal
✓ Image ✓ Popup
✓ Input ✓ Progress
✓ Label ✓ Rating
✓ List ✓ Search
✓ Loader Shape
✓ Rail ✓ Sidebar
✓ Reveal Sticky
✓ Segment Tab
✓ Step Transition

Our Principles

TechnologyAdvice has been dogfooding Semantic UI React in production since fall of 2015. These are the guiding principles that have developed as a result:

  • No jQuery dependency
  • No animation dependencies
  • Reuse SUI CSS transitions
  • Simple declarative component APIs vs intricate HTML markup
  • Complete keyboard support
  • Complete SUI component definition support
  • Completely documented
  • Completely tested

Releasing

On the latest clean master:

npm run release:major
npm run release:minor
npm run release:patch

Deploy the docs:

npm run deploy:docs

Update the changelog (requires github_changelog_generator):

github_changelog_generator
git add CHANGELOG.md
git commit -m 'docs(changelog): update changelog [ci skip]'
git push

Credit

Made with ❤️ @TechnologyAdvice, a ridiculous place to work.

Big thanks to our contributors, especially:

  • @jamiehill for early engineering and support
  • @jcarbo for thoughtful engineering and continual support
  • @layershifter for bringing momentum and continual support