UNPKG

dether-ui

Version:
631 lines (515 loc) 10.4 kB
# DETHER.IO Design System UX guidelines, HTML/CSS framework, and React components working together to craft exceptional experiences at Dether. ## Getting started ### Install ```sh $ yarn add @dether.io/dether-ui ``` Past this line in the header of the index.html file ```js <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,500" rel="stylesheet"> ``` ## Usage ### AppBar ```js import AppBar from '@dether.io/dether-ui/AppBar'; ``` Or ```js import { AppBar } from '@dether.io/dether-ui'; ``` ```js // Default <AppBar />; // Background color <AppBar background={color}/>; // With box shadow <AppBar raised />; // With bottom border <AppBar separator />; ``` ### Avatar ```js import Avatar from '@dether.io/dether-ui/Avatar'; ``` Or ```js import { Avatar } from '@dether.io/dether-ui'; ``` ```js // Default <Avatar />; // With source file <Avatar src={'https://goo.gl/TLBLDM'}/>; // Small avatar <Avatar src={'https://goo.gl/TLBLDM' size="small"}/>; // Large avatar <Avatar src={'https://goo.gl/TLBLDM' size="large"}/>; ``` ### Button ```js import Button from '@dether.io/dether-ui/Button'; ``` Or ```js import { Button } from '@dether.io/dether-ui'; ``` ```js // Default <Button />; // Appearance <Button appearance="countained"/>; <Button appearance="outlined"/>; <Button appearance="textOnly"/>; // Style <Button color="primary"/>; <Button color="secondary"/>; // Rounded <Button rounded/>; // Responsive <Button responsive/>; // dropShadow <Button dropShadow/>; ``` ### Checkbox ```js import Checkbox from '@dether.io/dether-ui/Checkbox'; ``` Or ```js import { Checkbox } from '@dether.io/dether-ui'; ``` ```js // Default <Checkbox />; // color <Checkbox color="primary"/>; <Checkbox color="secondary"/>; // onChange event <Checkbox onChange={() => {}}/>; // onClick event <Checkbox onClick={() => {}}/>; ``` ### Colors ```js import Colors from '@dether.io/dether-ui/Colors'; ``` Or ```js import { Colors } from '@dether.io/dether-ui'; ``` ```js // Primary Colors.primary.light Colors.primary.medium Colors.primary.dark // Secondary Colors.secondary.light Colors.secondary.medium Colors.secondary.dark // Black Colors.black.light Colors.black.medium Colors.black.dark Colors.black.darker // White Colors.white // Yellow Colors.yellow // Red Colors.red ``` ### Headings ```js import { H1, H2, H3, H4, H5, H6 } from '@dether.io/dether-ui/Headings' const Title = ( <div> <H1>Title h1</H1> <H2>Title h2</H2> <H3>Title h3</H3> <H4>Title h4</H4> <H5>Title h5</H5> <H6>Title h6</H6> </div> ) const TitleUnderline = <H1 underline>Title h1</H1> const TitleAlignCenter = <H1>Title h1</H1> const TitleAlignRight = <H1 right>Title h1</H1> const TitleAlignLeft = <H1 left>Title h1</H1> const TitleAlignJustify = <H1 justify>Title h1</H1> ``` Or ```js import { Headings } from '@dether.io/dether-ui' const Title = ( <div> <Headings.H1>Title h1</Headings.H1> <Headings.H2>Title h2</Headings.H2> <Headings.H3>Title h3</Headings.H3> <Headings.H4>Title h4</Headings.H4> <Headings.H5>Title h5</Headings.H5> <Headings.H6>Title h6</Headings.H6> </div> ) const TitleUnderline = <Headings.H1 underline>Title h1</Headings.H1> const TitleAlignCenter = <Headings.H1>Title h1</Headings.H1> const TitleAlignRight = <Headings.H1 right>Title h1</Headings.H1> const TitleAlignLeft = <Headings.H1 left>Title h1</Headings.H1> const TitleAlignJustify = <Headings.H1 justify>Title h1</Headings.H1> ``` ### Icon ```js import Icon from '@dether.io/dether-ui/Icon'; ``` Or ```js import { Icon } from '@dether.io/dether-ui'; ``` ```js // Default <Icon />; // Color <Icon color={color}/>; // Size <Icon size="sm"/>; <Icon size="md"/>; <Icon size="lg"/>; // Icons <Icon name="accessTime"/>; const iconNames = [ 'accessTime', 'add', 'addShoppingCart', 'airplaneModeActive', 'arrowDropDown', 'arrowDropUp', 'arrowLeft', 'arrowRight', 'checkbox', 'checkCircle', 'circle', 'close', 'event', 'favorite', 'fingerprint', 'flightLand', 'flightTakeoff', 'fullscreen', 'fullscreenExit', 'keyboardArrowDown', 'keyboardArrowUp', 'keyboardArrowLeft', 'keyboardArrowRight', 'localisation', 'locationOn', 'menu', 'map', 'permIdentity', 'poll', 'profile', 'qrCode', 'radio', 'save', 'search', 'sell', 'share', 'shop', 'shoppingCart', 'thumbsUp', 'token', 'translate', 'tune', 'user', 'visibility', 'wallet', 'whatshot', ] ``` ### Input ```js import Input from '@dether.io/dether-ui/Input'; ``` Or ```js import { Input } from '@dether.io/dether-ui'; ``` ```js // Default <Input />; // onChange event <Input onChange={() => {}} />; // onClick event <Input onClick={() => {}} />; // Clear Input function <Input handleClearInput={() => {}} />; // isValid <Input isValid />; <Input isValid={true} />; <Input isValid={false} />; // Value <Input value={value} />; // Error Message <Input errorMessage={errorMessage} />; // Hint <Input hint={hint} />; // Disabled <Input disabled />; // Sizes ( with labels ) <Input size="sm" />; <Input size="md" />; <Input size="lg" />; // Sizes ( in pixels ) <Input size={250} />; ``` ### List ```js import List from '@dether.io/dether-ui/List'; ``` Or ```js import { List } from '@dether.io/dether-ui'; ``` ```js // Default <List> <List.Item key={item.key}> <List.Content> <List.Header>{item.header}</List.Header> </List.Content> </List.Item> </List> // Right aligned action <List> <List.Item key={item.key}> <List.Content> <List.Header>{item.header}</List.Header> <List.Description>{item.description}</List.Description> </List.Content> <List.Content right> <List.Action> <Icon name="search" /> </List.Action> </List.Content> </List.Item> </List> // Left aligned action <List type="content"> <List.Item key={item.key}> <List.Content left> <List.Action> <Icon name="favorite" /> </List.Action> </List.Content> <List.Content> <List.Header>{item.header}</List.Header> </List.Content> <List.Content right> <Icon name="search" /> </List.Content> </List.Item> </List> ``` ### Loader ```js import { CircularLoader, LinearLoader, PointLoader } from '@dether.io/dether-ui/Loader' // Circular Loader <CircularLoader /> // Linear Loader <LinearLoader /> // Point Loader <PointLoader /> ``` Or ```js import { Loader } from '@dether.io/dether-ui' // Circular Loader <Loader.CircularLoader /> // Linear Loader <Loader.LinearLoader /> // Point Loader <Loader.PointLoader /> ``` ```js // Circular Loader color <CircularLoader color="primary"/> <CircularLoader color="secondary"/> <CircularLoader color="black"/> // Circular Loader contained <CircularLoader contained/> // Circular Loader paused <CircularLoader paused/> // Linear Loader color <LinearLoader color="primary"/> <LinearLoader color="secondary"/> <LinearLoader color="black"/> // Linear Loader progress (0 to 100) <LinearLoader color={10}/> // Point Loader color <PointLoader color="primary"/> <PointLoader color="secondary"/> <PointLoader color="black"/> // Point Loader paused <PointLoader paused/> ``` ### Logo ```js import Logo from '@dether.io/dether-ui/Logo'; ``` Or ```js import { Logo } from '@dether.io/dether-ui'; ``` ```js <Logo />; // Display only Dether's logo <Logo display="logo" />; // Display only Dether's brand name <Logo display="name" />; // Display both logo and name <Logo display="all" />; // Sizes <Logo size="sm" />; <Logo size="md" />; <Logo size="lg" />; ``` ### Margin ```js import { Margin, Padding } from '@dether.io/dether-ui/Margin'; Margin.body; Margin.button; Margin.iconToText; Margin.iconToIcon; Padding.button; Padding.buttonWithIcon; Padding.modalBody; Padding.modalFooter; ``` Or ```js import { Margin } from '@dether.io/dether-ui'; Margin.Margin.body; Margin.Margin.button; Margin.Margin.iconToText; Margin.Margin.iconToIcon; Margin.Padding.button; Margin.Padding.buttonWithIcon; Margin.Padding.modalBody; Margin.Padding.modalFooter; ``` ### Navigation ```js import Navigation from '@dether.io/dether-ui/Navigation'; ``` Or ```js import { Navigation } from '@dether.io/dether-ui'; ``` ```js // Default <Navigation />; // With separator <Navigation separator/>; // Active element key <Navigation defaultActiveItem={itemKey}> ``` ### Radio ```js import Radio from '@dether.io/dether-ui/Radio'; ``` Or ```js import { Radio } from '@dether.io/dether-ui'; ``` ```js // Default <Radio />; // onChange event <Radio onChange={() => {}} /> // onClick event <Radio onClick={() => {}} /> // Color <Radio color="primary" /> <Radio color="secondary" /> <Radio color="black" /> ``` ### Range ```js import Range from '@dether.io/dether-ui/Range'; ``` Or ```js import { Range } from '@dether.io/dether-ui'; ``` ```js // Default <Range />; // Color <Range color="primary"> <Range color="secondary"> <Range color="black"> ``` ### Text ```js import Text from '@dether.io/dether-ui/Text' <Text variant="body1"> Apparently we had reached a great height in the atmosphere... </Text> <Text variant="body2"> Apparently we had reached a great height in the atmosphere... </Text> <Text variant="caption"> Apparently we had reached a great height in the atmosphere... </Text> <Text variant="button"> Apparently we had reached a great height in the atmosphere... </Text> <Text underline> Apparently we had reached a great height in the atmosphere... </Text> ``` ### Typography ```js import { FontSize, LetterSpacing, FontFamily, FontWeight } from '@dether.io/dether-ui/Typography'; // Font Sizes FontSize.h1; FontSize.h2; FontSize.h3; FontSize.h4; FontSize.h5; FontSize.h6; FontSize.body1; FontSize.body2; FontSize.button; FontSize.caption; // Letter Spacing LetterSpacing.h1; LetterSpacing.h2; LetterSpacing.h3; LetterSpacing.h4; LetterSpacing.h5; LetterSpacing.h6; LetterSpacing.body1; LetterSpacing.body2; LetterSpacing.button; LetterSpacing.caption; // Font Family FontFamily; // Font Weight FontWeight.regular; FontWeight.medium; FontWeight.bold; ``` ## Contributing ```sh $ git clone https://github.com/dethertech/dether-ui.git $ cd dether-ui $ yarn install $ yarn test $ yarn test:watch $ yarn test:coverage $ yarn run:storybook $ yarn build:storybook $ yarn lint $ yarn build:esdoc $ yarn publish:esdoc ```