1.0.1 ā€¢ Published 9 months ago

gangstarr-point-styler v1.0.1

Weekly downloads
-
License
-
Repository
-
Last release
9 months ago

Team Gangstarr

šŸ—‚ļø ķ”„ė”œģ ķŠø ģ†Œź°œ

ģ›…ģ§„XģŠ¤ė‚˜ģ“ķ¼ ķŒ©ķ† ė¦¬ ģ¼ź²½ķ—˜ ķ”„ė”œģ ķŠøģ˜ ģ¼ķ™˜ģœ¼ė”œ ķ†µģ¦ź“€ė¦¬ģ‹œģŠ¤ķ…œ ė””ģžģø ė¼ģ“ėøŒėŸ¬ė¦¬ ģ œģž‘ķ•˜ģ˜€ģŠµė‹ˆė‹¤.

šŸŒ• ķŒ€ģ†Œź°œ

ķŒ€ģž„ķŒ€ģ›ķŒ€ģ›ķŒ€ģ›
ķ™ģ„±ģø šŸ§ ģ ˆėŒ€ ķ¬źø°ķ•˜ģ§€ ė§ˆ.ź¹€ģ¤€ź²½ šŸ± ź°œė°œ ź°±ģŠ¤ķ„°ź°€ ė ėž˜ģš”ģ •ģ—°ģš° šŸ¬ ģµœź³ ė³“ė‹¤ėŠ” ģµœģ„ ģ„.ģµœė™ķ™˜ šŸ¦„ ģ–“? źøˆģ§€

ģ„¤ģ¹˜ ė°©ė²•

npm i gangstarr-point-styler

ģ •ģƒģ ģø ģŠ¤ķƒ€ģ¼ģ„ ģœ„ķ•“ģ„œėŠ” Providerė„¼ ģ ģš©ķ•“ģ•¼ķ•“ģš”!

import { PoinTStyleProvider } from 'gangstarr-point-styler';

...

return (
  <PoinTStyleProvider>
  </PoinTStyleProvider>
)

...

ģ‚¬ģš©ė²•

colorģ™€ font

importķ›„ color.gray100ģ™€ ź°™ģ€ ķ˜•ķƒœė”œ ģ‚¬ģš©ķ•“ģš”.

import { color, font } from "gangstarr-point-styler";

...

const Component = styled.div`
  color: ${color.gray100}
`

...

AppBar

ė””ķ…Œģ¼ ķŽ˜ģ“ģ§€ģ—ģ„œ ģ‚¬ģš©ķ•˜ėŠ” AppBarģž…ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

import { AppBar } from 'gangstarr-point-styler';
...
<AppBar title='ķŽ˜ģ“ģ§€ ģ“ė¦„' size='full' icon={[{iconName: 'add', func: () => {console.log('ķ“ė¦­')}}]} />
...
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
size'medium','large','full'AppBarģ˜ ķ¬źø°ė„¼ ź²°ģ •ķ•©ė‹ˆė‹¤. mediumģ€ widthź°’ 650px, largeģ˜ ź²½ģš° widthź°’ 1024px, fullģ˜ ź²½ģš° width 1024px, height 56pxė”œ ė³€ź²½ė©ė‹ˆė‹¤.āŽ
titlestringAppBar ģ‚¬ģš©ģ‹œ ķ˜„ģž¬ ķŽ˜ģ“ģ§€ģ˜ ģ“ė¦„ģ„ ķ‘œģ‹œķ•©ė‹ˆė‹¤. sizeź°€ fullģ¼ė•Œ titleģ€ ź°€ģš“ė° ķ‘œģ‹œė©ė‹ˆė‹¤.āŽ
icon{iconName: iconsKey, func: ()=>void}AppBar ģ˜¤ė„øģŖ½ģ— ģœ„ģ¹˜ķ•  ģ•„ģ“ģ½˜ ė²„ķŠ¼ģž…ė‹ˆė‹¤. iconNameģ€ Icon ģ»“ķ¬ė„ŒķŠøģ˜ ģ†ģ„±(iconsKey)ģ„ ģž‘ģ„±ķ•©ė‹ˆė‹¤. funcģ€ ė²„ķŠ¼ ķ“ė¦­ģ‹œ ģž‘ė™ķ•  ķ•Øģˆ˜ė„¼ ģž‘ģ„±ķ•©ė‹ˆė‹¤.āŽ
text{textName: string, func: ()=>void}AppBar ģ˜¤ė„øģŖ½ģ— ģœ„ģ¹˜ķ•  ķ…ģŠ¤ķŠø ė²„ķŠ¼ģž…ė‹ˆė‹¤. TextNameģ€ ė²„ķŠ¼ģ˜ ģ“ė¦„ģ„ ź²°ģ •ķ•©ė‹ˆė‹¤. funcģ€ ė²„ķŠ¼ ķ“ė¦­ģ‹œ ģž‘ė™ķ•  ķ•Øģˆ˜ė„¼ ģž‘ģ„±ķ•©ė‹ˆė‹¤.āŽļø
counter{text: string, count: number, func: () => void }AppBar ģ˜¤ė„øģŖ½ģ— ģœ„ģ¹˜ķ•  ķ…ģŠ¤ķŠø ė²„ķŠ¼ģž…ė‹ˆė‹¤. Textģ€ ė²„ķŠ¼ģ˜ ģ“ė¦„ģ„ ź²°ģ •ķ•©ė‹ˆė‹¤. countėŠ” numberź°€ ė“¤ģ–“ź°‘ė‹ˆė‹¤. funcģ€ ė²„ķŠ¼ ķ“ė¦­ģ‹œ ģž‘ė™ķ•  ķ•Øģˆ˜ė„¼ ģž‘ģ„±ķ•©ė‹ˆė‹¤.āŽļø

Banner

ģ‚¬ģš©ģžź°€ ģ›ķ•˜ėŠ” ģ‚¬ģ§„ź³¼ ģ œėŖ©, ģ„¤ėŖ…ģ„ ė…øģ¶œķ•©ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

...
import { Banners } from 'gangstarr-point-styler';
...

  <Banners title='title' description='description' imageUrl='imageUrl' />

...
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
titlestringģ œėŖ©ģ„ ė‚˜ķƒ€ėƒ„āŽ
descriptionstringģ„¤ėŖ…ģ„ ė‚˜ķƒ€ėƒ„āŽ
imageUrlstringģ“ėÆøģ§€ urlģ„ ķ†µķ•“ ģ“ėÆøģ§€ė„¼ ė…øģ¶œķ•ØāŽ

Button

ź° ģ†ģ„±ģ˜ ź°’ģ— ė”°ė¼ ģŠ¤ķƒ€ģ¼ė§ėœ ė²„ķŠ¼ģ„ ė…øģ¶œķ•©ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

...
import { Button } from 'gangstarr-point-styler';
...

  <Button size='large' fill='contained' mode='normal'>
	ė²„ķŠ¼
  </Button>

...
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
childrenstringė²„ķŠ¼ģ— ķ‘œģ‹œė  ķ…ģŠ¤ķŠøšŸ…¾ļø
size'full' | 'xlarge' | 'large' | 'medium' | 'small' | 'xsmall'ź°’ģ— ė”°ė¼ ė²„ķŠ¼ ģ‚¬ģ“ģ¦ˆź°€ ė³€ź²½šŸ…¾ļø
fill'contained' | 'outline'ź°’ģ— ė”°ė¼ ģŠ¤ķƒ€ģ¼ ė³€ź²½šŸ…¾ļø
mode'normal' | 'enabled' | 'disabled'ź°’ģ— ė”°ė¼ ģŠ¤ķƒ€ģ¼ ė³€ź²½šŸ…¾ļø

Button_FAB

ķŽ˜ģ“ģ§€ ķ•˜ė‹Øģ—ģ„œ ķŽ˜ģ“ģ§€ ģƒė‹Øģœ¼ė”œ ģ“ė™ķ•˜ź±°ė‚˜ ģ¶”ź°€ė²„ķŠ¼ģ„ ģ‚¬ģš©ķ•˜ėŠ” ė²„ķŠ¼ģž…ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

import { ButtonFab } from 'gangstarr-point-styler';
...
 <ButtonFab mode={'add'} func={()=>{console.log("ķ“ė¦­")}} position={'center'}/>
...
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
mode'add','up'ģ¶”ź°€ ė²„ķŠ¼ź³¼ ģƒė‹Øģ“ė™ ė²„ķŠ¼ģ˜ ėŖØģ–‘ģ„ ź²°ģ • ķ•©ė‹ˆė‹¤.šŸ…¾ļø
func()=>voidė²„ķŠ¼ ķ“ė¦­ģ‹œ ė™ģž‘ķ•  ķ•Øģˆ˜ė„¼ ģž‘ģ„±ķ•©ė‹ˆė‹¤.šŸ…¾ļø
position'left', 'center', 'right'ė²„ķŠ¼ ė…øģ¶œ ģœ„ģ¹˜ė„¼ ź²°ģ •ķ•©ė‹ˆė‹¤.šŸ…¾ļø

Card

CardCalendarData

ģ†ģ„± ź°’ģ— ė”°ė¼ ķšŒģ› ģ •ė³“ģ™€ ģ¼ģ • ė“±ģ„ ė…øģ¶œķ•©ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

...
import { CardCalendarData } from 'gangstarr-point-styler';
...

  <CardCalendarData
    period={'ģ“ė²ˆ ė‹¬'}
    name={'ė°•ķ™˜ģž'}
    totalSchedule={'100'}
    cancelSchedule={'100'}
    percent={'100'}
  />

...
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
periodstringźø°ź°„ģ„ ė‚˜ķƒ€ėƒ„ (Ex ģ“ė²ˆ ė‹¬)āŽ
namestringķšŒģ›ģ˜ ģ“ė¦„ģ„ ė‚˜ķƒ€ėƒ„āŽ
totalSchedulestringģ“ ģ¼ģ •ģ„ ė‚˜ķƒ€ėƒ„āŽ
cancelSchedulestringģ·Øģ†Œķ•œ ģ¼ģ •ģ„ ė‚˜ķƒ€ėƒ„āŽ
percentstring | numberģ·Øģ†ŒģœØģ„ ė‚˜ķƒ€ėƒ„āŽ

CardLinkLarge

ģ¹“ė“œģ— ėŒ€ķ•œ ģ“ėÆøģ§€ģ™€ ģ œėŖ©, ģ„¤ėŖ…ģ„ ė…øģ¶œķ•©ė‹ˆė‹¤. ķ…ģŠ¤ķŠøź°€ 3ģ¤„ ģ“ģƒģ“ ė˜ė©“ ė§ ģ¤„ģž„ ķ‘œė„¼ ė…øģ¶œķ•©ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

...
import { CardLinkLarge } from 'gangstarr-point-styler';
...

  <CardLinkLarge
    imageUrl={'imageUrl'}
    title={'Title'}
    description={'Description'}
  />

...
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
imageUrlstringģ“ėÆøģ§€ urlģ„ ķ†µķ•“ ģ“ėÆøģ§€ė„¼ ė…øģ¶œķ•ØāŽ
titlestringģ œėŖ©ģ„ ė‚˜ķƒ€ėƒ„āŽ
descriptionstringģ„¤ėŖ…ģ„ ė‚˜ķƒ€ėƒ„āŽ

CardLinkMedium

ģ¹“ė“œģ— ėŒ€ķ•œ ģ“ėÆøģ§€ģ™€ ģ„¤ėŖ…ģ„ ė…øģ¶œķ•©ė‹ˆė‹¤. ģ„¤ėŖ…ģ“ ģ¼ģ • źø€ģž ģ“ģƒģ“ ė˜ė©“ ė§ ģ¤„ģž„ ķ‘œė„¼ ė…øģ¶œķ•©ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

...
import { CardLinkMedium } from 'gangstarr-point-styler';
...

  <CardLinkMedium
    imageUrl={'imageUrl'}
    description={'Description'}
    isDelete={false}
  />

...
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
imageUrlstringģ“ėÆøģ§€ urlģ„ ķ†µķ•“ ģ“ėÆøģ§€ė„¼ ė…øģ¶œķ•ØāŽ
descriptionstringģ„¤ėŖ…ģ„ ė‚˜ķƒ€ėƒ„āŽ
isDeletebooleanX ģ•„ģ“ģ½˜ģ˜ ģœ ė¬“ė„¼ ė‚˜ķƒ€ėƒ„āŽ

CardOption

ģ˜ˆģ‹œ ģ½”ė“œ

...
import { CardOption } from 'gangstarr-point-styler';
...

  <CardOption
    title={'Title'}
    description={'Description'}
    isActive={false}
  />

...
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
titlestringģ œėŖ©ģ„ ė‚˜ķƒ€ėƒ„āŽ
descriptionstringģ„¤ėŖ…ģ„ ė‚˜ķƒ€ėƒ„āŽ
isActivebooleanģ„ ķƒėœ ģ¹“ė“œģž„ģ„ ė‚˜ķƒ€ėƒ„āŽ

Dialog

ģ‚¬ģš©ģžģ—ź²Œ ģ •ė³“ė„¼ ģ œź³µķ•˜ėŠ” Dialog ģ°½ģ„ ė…øģ¶œķ•©ė‹ˆė‹¤. ź²½ģš°ģ— ė”°ė¼ ķ™•ģø, ģ·Øģ†Œ ė²„ķŠ¼ģ˜ ģ‚¬ģš©ģ“ ź°€ėŠ„ķ•©ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

...
import { Dialog } from 'gangstarr-point-styler';
...

  const [isShow, setIsShow] = useState(false);

  ...

  <Dialog
    isShow={isShow}
    onHanndleShow={() => setIsShow(false)}
    title='Title'
    description='Description'
    grayButtonName='ģ·Øģ†Œ'
    onClickGrayButton={() => {
      return;
    }}
    primaryButtonName='ķ™•ģø'
    onClickPrimaryButton={() => {
      return;
    }}
  />

...
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
isShowbooleanDialogģ˜ ė…øģ¶œģ—¬ė¶€ė„¼ ź²°ģ •šŸ…¾ļø
onHanndleShow() => voidDialogģ˜ Show, Hideė„¼ ģ„¤ģ •šŸ…¾ļø
titlestringDialogģ˜ ģ œėŖ©šŸ…¾ļø
grayButtonNamestringė²„ķŠ¼ģ˜ ģ“ė¦„šŸ…¾ļø
onClickGrayButton() => voidė²„ķŠ¼ģ„ ķ“ė¦­ķ–ˆģ„ ģ‹œ ė°œģƒķ•  ģ“ė²¤ķŠø ķ•Øģˆ˜šŸ…¾ļø
descriptionstringDialogģ˜ ģ„¤ėŖ…āŽ
primaryButtonNamestringė²„ķŠ¼ģ˜ ģ“ė¦„āŽ
onClickPrimaryButton() => voidė²„ķŠ¼ģ„ ķ“ė¦­ķ–ˆģ„ ģ‹œ ė°œģƒķ•  ģ“ė²¤ķŠø ķ•Øģˆ˜āŽ

Dropdown

DropdownTextfield

ź° ģ†ģ„±ź°’ģ— ė”°ė¼ Select ė°•ģŠ¤ė„¼ ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

...
import { DropdownTextfield } from 'gangstarr-point-styler';
...
  const menuList = [
    { id: 1, menu: 'List1' },
    { id: 2, menu: 'List2' },
    { id: 3, menu: 'List3' },
  ];

  <DropdownTextfield menuList={menuList} />
...
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
menuListid:number, menu:stringė©”ė‰“ģ— ė“¤ģ–“ź°ˆ ķ‚¤ė„¼ idė”œ, ė©”ė‰“ėŖ…ģ„ menuė”œ ė°›ģ•„ģ˜µė‹ˆė‹¤.šŸ…¾ļø

DropdownSingle

ź° ģ†ģ„±ź°’ģ— ė”°ė¼ Select ė°•ģŠ¤ė„¼ ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤. Select ė°•ģŠ¤ģ˜ źøøģ“, ķ™œģ„±ķ™” ģ—¬ė¶€ė„¼ ģ •ķ•©ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

...
import { DropdownSingle } from 'gangstarr-point-styler';
...
  const menuList = [
    { id: 1, menu: 'ģ›”' },
    { id: 2, menu: 'ģ£¼' },
    { id: 3, menu: 'ģ¼' },
  ];

  <DropdownSingle
    menuList={menuList}
    state='inactive'
    calendar={true}
  />
...
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
menuListid:number, menu:stringė©”ė‰“ģ— ė“¤ģ–“ź°ˆ ķ‚¤ė„¼ idė”œ, ė©”ė‰“ėŖ…ģ„ menuė”œ ė°›ģ•„ģ˜µė‹ˆė‹¤.šŸ…¾ļø
statestringDropdownģ„ actived / inactiveė”œ ķ™œģ„±ķ™” / ė¹„ķ™œģ„±ķ™” ķ•©ė‹ˆė‹¤. Defaultź°’ģ€ activedģ“ė‹¤.āŽļø
calendarbooleanė©”ė‰“ģ˜ źøøģ“ė„¼ ģ›”/ģ£¼/ģ¼ģ˜ ķ¬źø°ė”œ ģ”°ģ •ķ•©ė‹ˆė‹¤.Default ź°’ģ€ falseģž…ė‹ˆė‹¤.āŽļø

DropdownDouble

ź° ģ†ģ„±ź°’ģ— ė”°ė¼ Select ė°•ģŠ¤ė„¼ ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

...
import { DropdownDouble } from 'gangstarr-point-styler';
...
  const menuList = [
    { id: 1, menu: 'List1' },
    { id: 2, menu: 'List2' },
    { id: 3, menu: 'List3' },
  ];

  <DropdownDouble menuList={menuList}/>
...
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
menuListid:number, menu:stringė©”ė‰“ģ— ė“¤ģ–“ź°ˆ ķ‚¤ė„¼ idė”œ, ė©”ė‰“ėŖ…ģ„ menuė”œ ė°›ģ•„ģ˜µė‹ˆė‹¤.šŸ…¾ļø

Icon

ė‹¤ģ–‘ķ•œ ģ•„ģ“ģ½˜ģ„ ķ‘œķ˜„ķ•˜źø° ģœ„ķ•œ ģ»“ķ¬ė„ŒķŠøģž…ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

import { Icon } from 'gangstarr-point-styler';
...
<Icon name={'add'} />
...
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
nameiconsKeynameģ„ string ķ˜•ģ‹ģœ¼ė”œ ģž‘ģ„±ķ•©ė‹ˆė‹¤. ' ' ģž‘ģ„±ģ‹œ ģŠ¤ė‹ˆķŽ«ģ„ ķ™•ģø ķ•  ģˆ˜ ģžˆģŠµė‹ˆė‹¤.šŸ…¾ļø

Item

ItemMember1

ź° ģ†ģ„±ź°’ģ— ė”°ė¼ ķ…Œė‘ė¦¬, ģ“ė¦„, ķŠøė ˆģ“ė„ˆėŖ…, ģ„±ė³„, ė‚ ģ§œė„¼ ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

...
import { ItemMember1 } from 'gangstarr-point-styler';
...
<ItemMember1
    fill='contained'
    name='ź¹€ģ•„ė¬“ź°œ'
    trainer='ķ™źøøė™'
    gender='ė‚Ø'
    date='2023-00-00'
/>
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
fillstringcontained/outlineģ„ ź°’ģœ¼ė”œ ź°€ģ§€ė©°, ķ…Œė‘ė¦¬ ģœ ė¬“ė„¼ ģ„¤ģ •ķ•©ė‹ˆė‹¤.Defaultź°’ģ€ contianedģž…ė‹ˆė‹¤.āŽļø
namestringģ“ė¦„ģ„ ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤.āŽļø
trainerstringķŠøė ˆģ“ė„ˆėŖ…ģ„ ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤.āŽļø
genderstringģ„±ė³„ģ„ ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤.āŽļø
datestringė‚ ģ§œė„¼ ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤.āŽļø

ItemMember3

ź° ģ†ģ„±ź°’ģ— ė”°ė¼ ķ…Œė‘ė¦¬, ģ“ė¦„, ģ—°ė½ģ²˜, ķŠøė ˆģ“ė„ˆėŖ…, ė‚ ģ§œė„¼ ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

...
import { ItemMember3 } from 'gangstarr-point-styler';
...
<ItemMember3
    fill='contained'
    name='ź¹€ģ•„ė¬“ź°œ'
    phone='010-1234-5678'
    trainer='ķ™źøøė™'
    date='2023-00-00'
/>
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
fillstringcontained/outlineģ„ ź°’ģœ¼ė”œ ź°€ģ§€ė©°, ķ…Œė‘ė¦¬ ģœ ė¬“ė„¼ ģ„¤ģ •ķ•©ė‹ˆė‹¤.Defaultź°’ģ€ contianedģž…ė‹ˆė‹¤.āŽļø
namestringģ“ė¦„ģ„ ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤.āŽļø
phonestringģ—°ė½ģ²˜ė„¼ ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤.āŽļø
trainerstringķŠøė ˆģ“ė„ˆėŖ…ģ„ ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤.āŽļø
datestringė‚ ģ§œė„¼ ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤.āŽļø

ItemStaff1

ź° ģ†ģ„±ź°’ģ— ė”°ė¼ ķ…Œė‘ė¦¬, ģ“ė¦„, ģ—°ė½ģ²˜, ė©”ėŖØė„¼ ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

...
import { ItemStaff1 } from 'gangstarr-point-styler';
...
<ItemStaff1
    fill='contained'
    name='ź¹€ģ•„ė¬“ź°œ'
    phone='010-1234-5678'
    memo='ė©”ėŖØ ė‚“ģš©ģ“ ķ‘œģ‹œė©ė‹ˆė‹¤.'
/>
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
fillstringcontained/outlineģ„ ź°’ģœ¼ė”œ ź°€ģ§€ė©°, ķ…Œė‘ė¦¬ ģœ ė¬“ė„¼ ģ„¤ģ •ķ•©ė‹ˆė‹¤.Defaultź°’ģ€ contianedģž…ė‹ˆė‹¤.āŽļø
namestringģ“ė¦„ģ„ ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤.āŽļø
phonestringģ—°ė½ģ²˜ė„¼ ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤.āŽļø
memostringė©”ėŖØ ė‚“ģš©ģ“ ķ‘œģ‹œė˜ė©°, ģ¼ģ • ģ“ģƒ ė‚“ģš©ģ“ ė„˜ģ–“ź°€ė©“ ...ģœ¼ė”œ ķ‘œźø°ė©ė‹ˆė‹¤.āŽļø

ItemRecord

ź° ģ†ģ„±ź°’ģ— ė”°ė¼ ķ…Œė‘ė¦¬, ģ“ė¦„, ģ—°ė½ģ²˜, ė©”ėŖØė„¼ ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

...
import { ItemRecord } from 'gangstarr-point-styler';
...
<ItemRecord
    fill='contained'
    date='2023-00-00'
    memo='ė©”ėŖØ ė‚“ģš©ģ“ ķ‘œģ‹œė©ė‹ˆė‹¤.'
    trainer='ķ™źøøė™'
/>
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
fillstringcontained/outlineģ„ ź°’ģœ¼ė”œ ź°€ģ§€ė©°, ķ…Œė‘ė¦¬ ģœ ė¬“ė„¼ ģ„¤ģ •ķ•©ė‹ˆė‹¤.Defaultź°’ģ€ contianedģž…ė‹ˆė‹¤.āŽļø
datestringė‚ ģ§œė„¼ ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤.āŽļø
memostringė©”ėŖØ ė‚“ģš©ģ“ ķ‘œģ‹œė©ė‹ˆė‹¤.āŽļø

ItemTherapyCenter

ź° ģ†ģ„±ź°’ģ— ė”°ė¼ ķ…Œė‘ė¦¬, ė‚ ģ§œ, ģ„¤ėŖ…ģ„ ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

...
import { ItemTherapyCenter } from 'gangstarr-point-styler';
...
<ItemTherapyCenter
    fill='contained'
    date='2023-00-00'
    description='ģš“ė™ ģˆ˜ķ–‰ ģ˜ģƒ'
/>
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
fillstringcontained/outlineģ„ ź°’ģœ¼ė”œ ź°€ģ§€ė©°, ķ…Œė‘ė¦¬ ģœ ė¬“ė„¼ ģ„¤ģ •ķ•©ė‹ˆė‹¤.Defaultź°’ģ€ contianedģž…ė‹ˆė‹¤.āŽļø
datestringė‚ ģ§œė„¼ ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤.āŽļø
descriptionstringģˆ˜ķ–‰ģ˜ģƒģ„ ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤.āŽļø

ItemMessage

ź° ģ†ģ„±ź°’ģ— ė”°ė¼ ķ…Œė‘ė¦¬, ģ•Œė¦¼ė©”ģ‹œģ§€, ė‚ ģ§œė„¼ ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

...
import { ItemMessage } from 'gangstarr-point-styler';
...
<ItemMessage
    fill='contained'
    memo='ė©”ėŖØķ•œ ė‚“ģš©ģ“ ė‚˜ķƒ€ė‚©ė‹ˆė‹¤'
    date='2023-00-00'
/>
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
fillstringcontained/outlineģ„ ź°’ģœ¼ė”œ ź°€ģ§€ė©°, ķ…Œė‘ė¦¬ ģœ ė¬“ė„¼ ģ„¤ģ •ķ•©ė‹ˆė‹¤.Defaultź°’ģ€ contianedģž…ė‹ˆė‹¤.āŽļø
memostringė©”ėŖØ ė‚“ģš©ģ“ ķ‘œģ‹œė©ė‹ˆė‹¤.āŽļø
datestringė‚ ģ§œė„¼ ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤.āŽļø

Label

ź° ģ†ģ„±ģ˜ ź°’ģ— ė”°ė¼ ģŠ¤ķƒ€ģ¼ė§ėœ ė¼ė²Øģ„ ė…øģ¶œķ•©ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

...
import { Label } from 'gangstarr-point-styler';
...

  <Label shape='rectangle' background='blue' color='green'>
    ģ œė‹ˆėŠ” ź°±ģŠ¤ķƒ€
  </Label>

...
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
childrenstringė¼ė²Øģ— ķ‘œģ‹œė  ķ…ģŠ¤ķŠøšŸ…¾ļø
shape'rectangle' | 'round'ź°’ģ— ė”°ė¼ ė¼ė²Ø ėŖØģ–‘ģ“ ė³€ź²½ėØāŽ
background'blue' | 'gray' | 'green'ź°’ģ— ė”°ė¼ ė¼ė²Øģ˜ ė°°ź²½ģƒ‰ģ“ ė³€ź²½ėØāŽ
color'blue500' | 'blue300' | 'gray' | 'red' | 'green'ź°’ģ— ė”°ė¼ ė¼ė²Øģ˜ ķ…ģŠ¤ķŠø ģƒ‰ģƒģ“ ė³€ź²½ėØāŽ

Navigation

TopNavigation

ķ†µģ¦ ź“€ė¦¬ ģ‹œģŠ¤ķ…œ ģƒė‹Øģ—ģ„œ ķŽ˜ģ“ģ§€ ģ“ė™ģ„ ė‹“ė‹¹ķ•˜ėŠ” NavigationBar ģž…ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

import { TopNavigationBar } from 'gangstarr-point-styler';
...
 <TopNavigationBar
        tapMenuLists={[
          { tapName: 'ģˆ˜ź°•ź“€ė¦¬', path: 'about' },
          { tapName: 'ģˆ˜ź°•ź“€ė¦¬2', path: 'about2' },
          { tapName: 'ģˆ˜ź°•ź“€ė¦¬3', path: 'about3' },
          { tapName: 'ģˆ˜ź°•ź“€ė¦¬4', path: 'about4' },
          { tapName: 'ģˆ˜ź°•ź“€ė¦¬5', path: 'about5' },
        ]}
        userData={{ name: 'ģµœė™ķ™˜', label: 'ķ”Œėžœģ“ģš©ģ¤‘' }}
      />
...
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
tapMenuLists{ tapName: string, path: string }TopNavigationBarģ˜ ķƒ­ ė²„ķŠ¼ģ„ ė‹“ė‹¹ķ•©ė‹ˆė‹¤.āŽ
userData{name: string, label: string}ė”œź·øģøģ‹œ ė³“ģ—¬ģ§ˆ ģœ ģ € ė°ģ“ķ„°ģž…ė‹ˆė‹¤.āŽ

BotNavigation

ķ†µģ¦ ź“€ė¦¬ ģ‹œģŠ¤ķ…œ ķ•˜ė‹Øģ—ģ„œ ķŽ˜ģ“ģ§€ ģ“ė™ģ„ ė‹“ė‹¹ķ•˜ėŠ” NavigationBar ģž…ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

import { BotNavigationBar } from 'gangstarr-point-styler';
...
<BottomNavigationBar
        tabNameLists={{
          home: 'home',
          reservation: 'reservation',
          patient: 'patient',
          center: 'center',
          mypage: 'mypage',
        }}
        onClickHome={() => navigate('/home')}
        onClickReservation={() => navigate('/reserve')}
        onClickPatient={() => navigate('/partiend')}
        onClickCenter={() => navigate('/center')}
        onClickMypage={() => navigate('/mypage')}
      />
...
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
tabNameListshome: string, reservation: string, patient: string, center: string, mypage: stringBotNavigationBarģ˜ ķƒ­ ė©”ė‰“ė„¼ ė‹“ė‹¹ķ•©ė‹ˆė‹¤.šŸ…¾ļø
onClickHome() => voidė²„ķŠ¼ ķ“ė¦­ģ‹œ ė™ģž‘ķ•  ķ•Øģˆ˜ė„¼ ģž‘ģ„±ķ•©ė‹ˆė‹¤.šŸ…¾ļø
onClickReservation() => voidė²„ķŠ¼ ķ“ė¦­ģ‹œ ė™ģž‘ķ•  ķ•Øģˆ˜ė„¼ ģž‘ģ„±ķ•©ė‹ˆė‹¤.šŸ…¾ļø
onClickPatient() => voidė²„ķŠ¼ ķ“ė¦­ģ‹œ ė™ģž‘ķ•  ķ•Øģˆ˜ė„¼ ģž‘ģ„±ķ•©ė‹ˆė‹¤.šŸ…¾ļø
onClickCenter() => voidė²„ķŠ¼ ķ“ė¦­ģ‹œ ė™ģž‘ķ•  ķ•Øģˆ˜ė„¼ ģž‘ģ„±ķ•©ė‹ˆė‹¤.šŸ…¾ļø
onClickMypage() => voidė²„ķŠ¼ ķ“ė¦­ģ‹œ ė™ģž‘ķ•  ķ•Øģˆ˜ė„¼ ģž‘ģ„±ķ•©ė‹ˆė‹¤.šŸ…¾ļø

Picker

DatePicker

ė‹¬ė „ģ„ ė…øģ¶œķ•˜ź³  ģ‚¬ģš©ģžė”œ ķ•˜ģ—¬źøˆ ģ„ ķƒėœ ė‚ ģ§œė„¼ YYYY.M.D ķ˜•ģ‹ģœ¼ė”œ ģ €ģž„ķ•©ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

...
import { DatePicker } from 'gangstarr-point-style';
...

  const [isSelectedDate, setIsSelectDate] = useState<string>('');
  const [isShow, setIsShow] = useState<boolean>(false);

  ...

    <Button onClick={() => setIsShow(true)}>ģ—“źø°</Button>
    <>
      {isShow && (
        <DatePicker
          size='large'
          prevSelected={isSelectedDate}
          onClickConfirm={setIsSelectDate}
          onClosePicker={() => setIsShow(false)}
        />
      )}
    </>

...
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
size'small' | 'large'DatePickerģ˜ ģ‚¬ģ“ģ¦ˆė„¼ ź²°ģ •ķ•ØāŽ
prevSelectedstringģ“ģ „ģ— ģ„ ķƒėœ ź°’ ķ˜•ģ‹ģ— ė§žź²Œ ģžˆė‹¤ė©“ DatePickerģ— ķ‘œģ‹œķ•ØāŽ
onClickConfirmDispatch<SetStateAction<string>>YYYY.M.D ķ˜•ģ‹ģœ¼ė”œ ģ €ģž„ķ•Ø useStateģ˜ setState ķ•Øģˆ˜ģž„šŸ…¾ļø
onClosePicker() => voidPickerė„¼ ė‹«ėŠ” ķ•Øģˆ˜ģž„šŸ…¾ļø

TimePicker

ėŖØė°”ģ¼ ģŠ¤ķƒ€ģ¼ģ˜ TimePickerė„¼ ė…øģ¶œķ•˜ź³ , ģ‚¬ģš©ģžė”œ ķ•˜ģ—¬źøˆ ģ„ ķƒėœ ģ‹œź°„ģ„ {hour: number, minute: number} ķ˜•ģ‹ģœ¼ė”œ ģ €ģž„ķ•©ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

...
import { TimePicker } from 'gangstarr-point-style';
...

  const [selectTime, setSelectTime] = useState<IselectedTimeTypes | undefined>();
  const [isShow, setIsShow] = useState(false);

  ...

    <button onClick={() => setIsShow(true)}>ģ—“źø°</button>
    <>
      {isShow && (
        <TimePicker
          prevSelectedTime={selectTime}
          onClickConfirm={setSelectTime}
          onClosePicker={() => setIsShow(false)}
        />
      )}
    </>

...
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
onClickConfirmDispatch<SetStateAction<IselectedTimeTypes | undefined>>{hour: number, minute: number} ķ˜•ģ‹ģœ¼ė”œ ģ €ģž„ķ•Ø useStateģ˜ setState ķ•Øģˆ˜ģž„šŸ…¾ļø
onClosePicker() => voidPickerė„¼ ė‹«ėŠ” ķ•Øģˆ˜ģž„šŸ…¾ļø
prevSelectedTimeIselectedTimeTypes | undefinedģ „ģ— ģ„ ķƒėœ ź°’ ķ˜•ģ‹ģ— ė§žź²Œ ģžˆė‹¤ė©“ TimePickerģ— ķ‘œģ‹œķ•ØāŽ

PopupMenu

ķ†µģ¦ ź“€ė¦¬ ģ‹œģŠ¤ķ…œ ģ“ģš©ģ¤‘ ė³“ģ—¬ģ§ˆ PopupMenu ģž…ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

...
import PopupMenu from 'gangstarr-point-styler';
...
const menuName = [
  {
    id: 1,
    menu: 'ė©”ė‰“1',
    link: 'link1',
  },
  {
    id: 2,
    menu: 'ė©”ė‰“ė©”ė‰“ė©”ė‰“ė©”ė‰“ė©”ė‰“ė©”ė‰“ė©”ė‰“',
    link: 'link2',
  },
  {
    id: 3,
    menu: 'ė©”ė‰“3',
    link: 'link3',
  },
];

const [isVisible, setIsVisible] = useState(false);

const handlePopup = () => {
  return setIsVisible(true);
};
...
<Button onClick={handlePopup}>ķŒģ—… ķ† źø€</Button>
<>
    {isVisible && (
      <PopupMenu
        menuLists={menuName}
        isVisible={isVisible}
        onClosePopup={() => setIsVisible(false)}
      />
    )}
</>
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
menuListsid : numbermenu : stringlink : stringid, menu, linkė„¼ ė°°ģ—“ė”œ ė°›ģ•„ģ™€ ķŒģ—…ė©”ė‰“ģ˜ key, ė©”ė‰“ėŖ…, urlģ„ ė°›ģ•„ģ˜µė‹ˆė‹¤.āŽļø
isVisibleisVisible(boolean)ķŒģ—… ė©”ė‰“ė„¼ ė³“ģ—¬ģ£¼ėŠ” ģƒķƒœź°’ģ„ ė°›ģ•„ģ˜µė‹ˆė‹¤.āŽļø
onClosePopup() => setIsVisible(false)useStateź°’ģ„ ė³€ź²½ķ•“ģ£¼ėŠ” ķ•Øģˆ˜ė„¼ ė°›ģ•„ģ˜µė‹ˆė‹¤.āŽļø

Tabs

ģµœėŒ€ 10ź°œģ˜ Tabsė„¼ ė…øģ¶œķ•©ė‹ˆė‹¤. tabListsģ˜ ģš”ģ†Œź°€ 10ź°œė„¼ ģ“ˆź³¼ķ•œė‹¤ė©“ 0 ~ 9ė²ˆ ģøė±ģŠ¤ģ˜ ģš”ģ†Œė„¼ ė…øģ¶œķ•©ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

...
import { Tabs } from 'gangstarr-point-style';
...

  const tabLists = [
    { path: 'tab1', name: 'tab1', callback: () => { setCurrentTab('tab1') } },
    { path: 'tab2', name: 'tab2', callback: () => { setCurrentTab('tab2') } },
    { path: 'tab3', name: 'tab3', callback: () => { setCurrentTab('tab3') }  },
    { path: 'tab4', name: 'tab4', callback: () => { setCurrentTab('tab4') }  },
    { path: 'tab5', name: 'tab5', callback: () => { setCurrentTab('tab5') }  },
  ];
  const [currentTab, setCurrentTab] = useState('tab1');

  ...

    <Tabs tabLists={tabLists} currentTab={currentTab} />

  ...
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
tabLists{ path: string; name: string; callback: () => void }[]path, name, callback ķ•Øģˆ˜ė„¼ ķ¬ķ•Øķ•œ ė°°ģ—“ķ˜•ķƒœģ˜ ģš”ģ†ŒšŸ…¾ļø
currentTabstringķ˜„ģž¬ ģ„ ķƒėœ ķƒ­ģ˜ pathė„¼ ėœ»ķ•©ė‹ˆė‹¤.šŸ…¾ļø

TextField

ģ‚¬ģš©ģžė”œė¶€ķ„° ģž…ė „ģ„ ė°›ģ„ ģˆ˜ ģžˆėŠ” input ģ»“ķ¬ė„ŒķŠøģž…ė‹ˆė‹¤. ķ•„ģš”ģ— ė”°ė¼ ģž…ė „ė°›ģ€ ź°’ģ— ėŒ€ķ•“ validationģ„ ķ•“ģ¤„ ģˆ˜ ģžˆģŠµė‹ˆė‹¤. ź·øė¦¬ź³  validation ź²°ź³¼ģ— ė”°ė„ø ė©”ģ„øģ§€ė„¼ ė³“ģ—¬ģ¤„ ģˆ˜ė„ ģžˆģŠµė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

...
import { TextField } from 'gangstarr-point-style';
...

  const [inputValue, setInputValue] = useState('');
  const [isError, setIsError] = useState(false);

  {/* ģœ ķšØģ„± ź²€ģ¦ ķ•Øģˆ˜*/}
  const onChangeInput = (e: React.ChangeEvent<HTMLInputElement>) => {
    setInputValue(e.target.value);
    if (e.target.value.length < 5) setIsError(true);  {/* ģœ ķšØģ„± ź²€ģ¦ ģ”°ź±“*/}
    else setIsError(false);
  };

  ...

    <TextField
      id='textfield'
      title='ķƒ€ģ“ķ‹€'
      placeholder={'ź°’ģ„ ģž…ė „ķ•“ģ£¼ģ„øģš”.'}
      onChange={onChangeInput}
      value={inputValue}
      validate={true}
      isError={isError}
      customErrorMessage='ģ—ėŸ¬ ė©”ģ‹œģ§€'
      customSuccessMessage='ģ„±ź³µ ė©”ģ‹œģ§€'
      customInactiveMessage='ģøģ•”ķ‹°ėøŒ ė©”ģ‹œģ§€'
    />

    ...
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
state'inactive' | 'focused' | 'error' | 'positive' | 'activated' | 'disable'Textfield ģ»“ķ¬ė„ŒķŠøģ˜ ģƒķƒœė„¼ ė‚˜ķƒ€ėƒ„āŽ
idstringlabelģ˜ htmlForģ™€ ģ—°ź²°ķ•  idė„¼ ģ˜ėÆøķ•ØāŽ
titlestringlabelģ— ė‚˜ķƒ€ė‚¼ ķ…ģŠ¤ķŠøāŽ
validatebooleanģœ ķšØģ„± ź²€ģ¦ ģ—¬ė¶€ (ģœ ķšØģ„± ź²€ģ¦ģ“ ķ•„ģš”ķ•˜ė‹¤ė©“ ģœ ķšØģ„±ģ„ ź²€ģ¦ķ•“ģ£¼ėŠ” ķ•Øģˆ˜ė„¼ ģž‘ģ„±ķ•“ģ„œ ģ‚¬ģš©)āŽ
isErrorbooleanģœ ķšØģ„± ź²€ģ¦ģ„ ķ•“ģ•¼ ķ•  ė•Œ, ź²€ģ¦ ź²°ź³¼ģ— ė”°ė¼ģ„œ ģŠ¤ķƒ€ģ¼ė§ģ„ ė‹¤ė„“ź²Œ ķ•“ģ•¼ ķ•˜ėƀė”œ isErrorė„¼ ķ†µķ•“ ģƒķƒœė„¼ ź“€ė¦¬ķ•Ø.āŽ
customErrorMessagestringģœ ķšØģ„± ź²€ģ¦ģ— ķ†µź³¼ķ•˜ģ§€ ėŖ»ķ–ˆģ„ ė•Œ ė³“ģ—¬ģ¤„ ė©”ģ„øģ§€šŸ…¾ļø
customSuccessMessagestringģœ ķšØģ„± ź²€ģ¦ģ— ķ†µź³¼ķ–ˆģ„ ė•Œ ė³“ģ—¬ģ¤„ ė©”ģ„øģ§€šŸ…¾ļø
customInactiveMessagestringģœ ķšØģ„± ź²€ģ¦ģ„ ķ•“ģ•¼ ķ•˜ź³ , ģ‚¬ģš©ģžģ˜ ģž…ė „ģ“ ģ•„ģ§ ģ—†ģ„ ė•Œ ė³“ģ—¬ģ¤„ ė©”ģ„øģ§€šŸ…¾ļø

Thumbnails

ė¹„ė””ģ˜¤ ė˜ėŠ” ģ“ėÆøģ§€ģ˜ ģøė„¤ģ¼ģ„ ė³“ģ—¬ģ£¼ėŠ” ģ»“ķ¬ė„ŒķŠøģž…ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

...
import { Thumbnails } from 'gangstarr-point-styler';
...

  <Thumbnails
    src={ģ“ėÆøģ§€ ģ£¼ģ†Œ}
    type='image'
    runningTime='12:30'
    state='delete'
    />

...
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
state'error' | 'play' | 'select' | 'delete' | 'normal'ģƒķƒœź°’ģ— ė”°ė¼ ģŠ¤ķƒ€ģ¼ė§ģ“ ė‹¤ė„“ź²Œ ģ ģš©ėØāŽ
type'video' | 'image'ė™ģ˜ģƒ ė˜ėŠ” ģ“ėÆøģ§€ģ˜ ģøė„¤ģ¼ģ„ ė§Œė“¤ ģˆ˜ ģžˆģŒāŽ
runningTimestringvideo ķƒ€ģž…ģ˜ ź²½ģš°, ė™ģ˜ģƒģ˜ runningTimeģ„ ģž…ė „ķ•˜ģ—¬ ģøė„¤ģ¼ģ— ė³“ģ—¬ģ¤„ ģˆ˜ ģžˆģŒāŽ
srcstringģ“ėÆøģ§€ ģ£¼ģ†ŒāŽ

Typography

ģƒķ™©ģ— ė”°ė¼ ģ‚¬ģš©ķ•˜ź³  ģ‹¶ģ€ ķƒ€ģ“ķ¬ ķ…œķ”Œė¦æģ„ ź°€ģ øģ˜µė‹ˆė‹¤. font-familyėŠ” ķ•œźø€ģ€ Pretendard, ģ˜ģ–“ėŠ” Robotoė„¼ źø°ģ¤€ģœ¼ė”œ ģž‘ģ„±ė˜ģ—ˆģŠµė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

<Headline>ķ—¤ė“œė¼ģø</Headline>
<Title1>ķƒ€ģ“ķ‹€1</Title1>
<Title2>ķƒ€ģ“ķ‹€2</Title2>
<Title3>ķƒ€ģ“ķ‹€3</Title3>
<Title4>ķƒ€ģ“ķ‹€4</Title4>
<Title5>ķƒ€ģ“ķ‹€5</Title5>
<Title6>ķƒ€ģ“ķ‹€6</Title6>
<Body1>ė°”ė””1</Body1>
<Body2>ė°”ė””2</Body2>
<Body3>ė°”ė””3</Body3>
<Body4>ė°”ė””4</Body4>
<Caption1>ģŗ”ģ…˜1</Caption1>
<Caption2>ģŗ”ģ…˜2</Caption2>

SnackBar

ķ†µģ¦ ź“€ė¦¬ ģ‹œģŠ¤ķ…œ ģ“ģš©ģ¤‘ ė³“ģ—¬ģ§ˆ SnackBar ģž…ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ ģ˜¬ė°”ė„ø ģ‚¬ģš©ģ„ ģœ„ķ•“ ė°˜ė“œģ‹œ ģ•„ėž˜ģ˜ ķ˜•ķƒœė”œ ģž‘ģ„±ķ•“ģ£¼ģ‹œźø° ė°”ėžė‹ˆė‹¤.

import { SnackBar } from 'gangstarr-point-styler';
...
 const [snackbarMessage, setSnackbarMessage] = useState('');
...
<>
    {snackbarMessage && (
      <SnackBar
        description={snackbarMessage}
        time={3000}
        setSnackbarMessage={setSnackbarMessage}></SnackBar>
    )}
</>
...
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
descriptionstringSnackBarė”œ ė³“ģ—¬ģ¤„ ź°ģ¢… ė©”ģ„øģ§€ ģž…ė‹ˆė‹¤.šŸ…¾ļø
timenumberSnackBarź°€ ė…øģ¶œ ė˜ėŠ” ģ‹œź°„ģž…ė‹ˆė‹¤. ms źø°ģ¤€ģœ¼ė”œ ģ „ė‹¬ķ•©ė‹ˆė‹¤.šŸ…¾ļø
setSnackbarMessage(message: string) => voidSnackBarė„¼ ģž‘ė™ķ•˜źø° ģœ„ķ•œ ķŠøė¦¬ź±° ģž…ė‹ˆė‹¤.šŸ…¾ļø
usedAppBarbooleanBotNavigation ģœ ė¬“ģ— ė”°ė¼ ė‚˜ķƒ€ė‚˜ėŠ” ģœ„ģ¹˜ė„¼ ź²°ģ •ķ•©ė‹ˆė‹¤.āŽ
widthSizenumberSnackBarģ˜ ģ‚¬ģ“ģ¦ˆė„¼ ź²°ģ •ķ•©ė‹ˆė‹¤.āŽ

Demo

ė°ėŖØģ‚¬ģ“ķŠø

1.0.1

9 months ago

1.0.0

9 months ago

0.1.0

9 months ago

0.0.9

9 months ago

0.0.8

9 months ago

0.0.7

9 months ago

0.0.6

9 months ago

0.0.5

9 months ago

0.0.4

9 months ago

0.0.3

9 months ago

0.0.2

9 months ago

0.0.1

9 months ago