Home

Awesome

Garden React Containers Build Status Dependency Status Coverage Status<!-- markdownlint-disable -->

<!-- markdownlint-enable -->

:seedling: Garden is the design system by Zendesk

Garden Containers provide an accessible foundation to start from in your journey to building a11y, keyboard navigable and RTL aware components.

Installation

See the individual package README for the React container you would like to install.

PackageVersionSize
@zendeskgarden/container-accordionnpm versionnpm version
@zendeskgarden/container-breadcrumbnpm versionnpm version
@zendeskgarden/container-comboboxnpm versionnpm version
@zendeskgarden/container-fieldnpm versionnpm version
@zendeskgarden/container-focusjailnpm versionnpm version
@zendeskgarden/container-focusvisiblenpm versionnpm version
@zendeskgarden/container-gridnpm versionnpm version
@zendeskgarden/container-keyboardfocusnpm versionnpm version
@zendeskgarden/container-menunpm versionnpm version
@zendeskgarden/container-modalnpm versionnpm version
@zendeskgarden/container-schedulenpm versionnpm version
@zendeskgarden/container-scrollregionnpm versionnpm version
@zendeskgarden/container-selectionnpm versionnpm version
@zendeskgarden/container-slidernpm versionnpm version
@zendeskgarden/container-splitternpm versionnpm version
@zendeskgarden/container-tabsnpm versionnpm version
@zendeskgarden/container-tooltipnpm versionnpm version
@zendeskgarden/container-utilitiesnpm versionnpm version

Usage

Packages are easily consumable with create-react-app and standard webpack configs.

All packages follow a similar installation process. Below is an example of consuming the container-schedule package.

Install dependencies

# Install garden package
npm install @zendeskgarden/container-schedule

Using as a hook

import React from 'react';
import { render } from 'react-dom';

/** Consume throughout app */
import { useSchedule } from '@zendeskgarden/container-schedule';

const App = () => {
  const elapsed = useSchedule({ duration: 1000 });
  const x = 900;
  const styles = {
    transform: translateX(`${900 * elapsed}px`)
  };

  return <div style={styles} />;
};

render(<App />, document.getElementById('root'));

Using as a render prop container

import React, { Component } from 'react';
import { render } from 'react-dom';

/** Consume throughout app */
import { ScheduleContainer } from '@zendeskgarden/container-schedule';

class App extends Component {
  render() {
    return (
      <ScheduleContainer>
        {elapsed => {
          const x = 900;
          const styles = {
            transform: translateX(`${900 * elapsed}px`)
          };

          return <div style={styles} />;
        }}
      </ScheduleContainer>
    );
  }
}

render(<App />, document.getElementById('root'));

Contribution

Thanks for your interest in Garden! Community involvement helps make our design system fresh and tasty for everyone.

Got issues with what you find here? Please feel free to create an issue.

If you'd like to take a crack at making some changes, please follow our contributing documentation for details needed to submit a PR.

Community behavior is benevolently ruled by a code of conduct. Please participate accordingly.

License

Copyright 2021 Zendesk

Licensed under the Apache License, Version 2.0