1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-02 14:15:06 +01:00
metamask-extension/ui/components/ui/icon
..
preloader
approve-icon.component.js
copy-icon.component.js
icon-caret-down.js
icon-caret-left.js
icon-caret-right.js
icon-caret-up.js
icon-check.js
icon-cog.js
icon-connect.js
icon-eye-slash.js
icon-eye.js
icon-import.js
icon-plus.js
icon-speech-bubbles.js
icon.stories.js
index.scss
info-icon-inverted.component.js
info-icon.component.js
interaction-icon.component.js
overview-buy-icon.component.js
overview-send-icon.component.js
paper-airplane-icon.js
README.mdx
receive-icon.component.js
send-icon.component.js
sign-icon.component.js
sun-check-icon.component.js
swap-icon-for-list.component.js
swap-icon.component.js

import { Story, Canvas, ArgsTable } from '@storybook/addon-docs';

import IconCaretLeft from './icon-caret-left.js';
import Approve from './approve-icon.component';
import BuyIcon from './overview-buy-icon.component';
import CopyIcon from './copy-icon.component';
import InfoIcon from './info-icon.component';
import InfoIconInverted from './info-icon-inverted.component';
import Interaction from './interaction-icon.component';
import PaperAirplane from './paper-airplane-icon';
import Preloader from './preloader';
import ReceiveIcon from './receive-icon.component';
import SendIcon from './send-icon.component';
import Sign from './sign-icon.component';
import SunCheck from './sun-check-icon.component';
import Swap from './swap-icon-for-list.component';
import SwapIcon from './overview-send-icon.component';
import SwapIconComponent from './swap-icon.component';

# Icon

A range of SVG icon components

> 💡 A lot of the our icons have different props and are not consistent we will need to work on fixing this.

## Component API

<ArgsTable of={IconCaretLeft} />

## Usage

The following describes the props and example usage for this component.

### Size

Use the `size` prop to change the size of the icon it should adhere to an `8px` grid e.g. `16px`, `24px`, `32px`

<Canvas>
  <Story id="ui-components-ui-icon-icon-stories-js--size" />
</Canvas>

### Color

Use the `color` prop to change the color of the icon. `color` accepts any css value. Should use the valid design token css variables

<Canvas>
  <Story id="ui-components-ui-icon-icon-stories-js--color" />
</Canvas>

### AriaLabel

Use the `ariaLabel` prop with icons intended to be used without text. e.g. back buttons or icons that should provide extra information to screen readers

<Canvas>
  <Story id="ui-components-ui-icon-icon-stories-js--aria-label" />
</Canvas>

Will render the html

```html
<svg
  width="24"
  height="24"
  fill="currentColor"
  aria-label="back"
  xmlns="http://www.w3.org/2000/svg"
  viewBox="0 0 512 512"
>
  <path
    d="m335 113c8 8 8 22 0 30l-113 113 113 113c8 8 8 22 0 30-8 8-22 8-30 0l-128-128c-8-8-8-22 0-30l128-128c8-8 22-8 30 0z"
  ></path>
</svg>
```

### ClassName

Use the `className` prop to add an additional class to the icon. This additional class is recommend to be used with layout of positioning css

# DEPRECATED ICONS

> The icons below use many different prop combinations and should be updated to the above api

## Approve

<Canvas>
  <Story id="ui-components-ui-icon-icon-stories-js--approve-story" />
</Canvas>

<ArgsTable of={Approve} />

## Sign

<Canvas>
  <Story id="ui-components-ui-icon-icon-stories-js--sign-story" />
</Canvas>

<ArgsTable of={Sign} />

## Swap

<Canvas>
  <Story id="ui-components-ui-icon-icon-stories-js--swap-story" />
</Canvas>

<ArgsTable of={Swap} />

## SendIcon

<Canvas>
  <Story id="ui-components-ui-icon-icon-stories-js--send-icon-story" />
</Canvas>

<ArgsTable of={SendIcon} />

## ReceiveIcon

<Canvas>
  <Story id="ui-components-ui-icon-icon-stories-js--receive-icon-story" />
</Canvas>

<ArgsTable of={ReceiveIcon} />

## Interaction

<Canvas>
  <Story id="ui-components-ui-icon-icon-stories-js--interaction-story" />
</Canvas>

<ArgsTable of={Interaction} />

## InfoIcon

<Canvas>
  <Story id="ui-components-ui-icon-icon-stories-js--info-icon-story" />
</Canvas>

<ArgsTable of={InfoIcon} />

## InfoIconInverted

<Canvas>
  <Story id="ui-components-ui-icon-icon-stories-js--info-icon-inverted-story" />
</Canvas>

<ArgsTable of={InfoIconInverted} />

## SunCheck

<Canvas>
  <Story id="ui-components-ui-icon-icon-stories-js--sun-check-story" />
</Canvas>

<ArgsTable of={SunCheck} />

## BuyIcon

<Canvas>
  <Story id="ui-components-ui-icon-icon-stories-js--buy-icon-story" />
</Canvas>

<ArgsTable of={BuyIcon} />

## SwapIcon

<Canvas>
  <Story id="ui-components-ui-icon-icon-stories-js--swap-icon-story" />
</Canvas>

<ArgsTable of={SwapIcon} />

## Send/SwapIcon

<Canvas>
  <Story id="ui-components-ui-icon-icon-stories-js--send-swap-icon-story" />
</Canvas>

<ArgsTable of={SwapIconComponent} />

## PaperAirplane

<Canvas>
  <Story id="ui-components-ui-icon-icon-stories-js--paper-airplane-story" />
</Canvas>

## CopyIcon

<Canvas>
  <Story id="ui-components-ui-icon-icon-stories-js--copy-icon-story" />
</Canvas>

<ArgsTable of={CopyIcon} />

## Preloader

<Canvas>
  <Story id="ui-components-ui-icon-icon-stories-js--preloader-story" />
</Canvas>

<ArgsTable of={Preloader} />