jiyuujin / nekohack-ui

:atom: A React UI components for Web
https://npm.im/nekohack-ui
3 stars 0 forks source link
react react-dom styled-components typescript ui-components

nekohack-ui

Installation

Install nekohack-ui package.

npm i nekohack-ui
npm i react react-dom styled-components

yarn add nekohack-ui
yarn add react react-dom styled-components

Atomic Components

Button

import * as React from 'react'

import { NekoButton } from 'nekohack-ui'

export const App = () => {
    const submit = () => {
        //
    }
    return (
        <NekoButton onClick={submit}>Button</NekoButton>
    )
}

Props

# Type Default
children React.ReactNode Array<React.ReactNode> ``
onClick Function ``

Input

import * as React from 'react'

import { NekoInput } from 'nekohack-ui'

export const App = () => {
    const [value, setValue] = React.useState('Input')
    return (
        <NekoInput value={value} onChange={setValue} />
    )
}

Props

# Type Default
id String ``
role String ``
label String ``
explain String ``
value String ``
placeholder String ``
password String ``
targets Array<String> []
onChange Function ``

Label

import * as React from 'react'

import { NekoLabel } from 'nekohack-ui'

export const App = () => {
    return (
        <NekoLabel>Label</NekoLabel>
    )
}

Props

# Type Default
children React.ReactNode ``

Select

import * as React from 'react'

import { NekoSelect } from 'nekohack-ui'

const options = [
    {
        value: 1,
        text: 'Angular',
    },
    {
        value: 2,
        text: 'React',
    },
    {
        value: 3,
        text: 'Vue',
    },
]

export const App = () => {
    const [value, setValue] = React.useState(1)
    return (
        <NekoSelect options={options} value={value} onChange={setValue} />
    )
}

Props

# Type Default
id String ``
label String ``
explain String ``
options Array<{ value: number text: string}> ``
value Number ``
onChange Function ``

Modules

Accordion

import * as React from 'react'

import { NekoAccordion } from 'nekohack-ui'

type Item = {
    itemId: number
    itemName: string
    backgroundColor: string
    color: string
}

const singleItemList: Item[] = [
    {
        itemId: 0,
        itemName: 'Web',
        backgroundColor: '#0033ff',
        color: '#fff',
    },
    {
        itemId: 1,
        itemName: 'HTML5',
        backgroundColor: '#0099ff',
        color: '#000',
    },
    {
        itemId: 2,
        itemName: 'CSS',
        backgroundColor: '#00ff99',
        color: '#000',
    },
]

export const App = () => {
    const handleItemClass = () => {
        //
    }
    return (
        <NekoAccordion
            labelText="Front"
            title="Markup"
            items={singleItemList}
            updateItemClass={handleItemClass}
        />
    )
}

Props

# Type Default
labelText String ``
title String ``
items Array<Item> ``
updateItemClass Function ``