2.1.5 • Published 2 years ago

dev-portfolio v2.1.5

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

dev-porfolio

npm version Commitizen friendly license_badge react-iconify

dev-portfolio is React library that helps you develop your web portfolio easily and quickly.

ezgif com-gif-maker

List

  • Installation
  • Usage
  • Components
  • Example
  • Guidelines to input icons
  • Licence
  • Contributor

Install

  1. Install only dev-portfolio library.

    npm i dev-portfolio --save

  2. Install boiler-plate code by using npx.
    If you want to see README.md of boiler-plate, go to the create-dev-portfolio.

    npx create-dev-portfolio <YOUR_APP_NAME>

Usage

import { Header, Intro, Contact, ... } from 'dev-portfolio';

const App = () => {
  return (
    // The 'className' in the <div> tag surrounding the components of 'dev-portfolio' must be 'App'.
    // Only then can the SideBar in the <Header> component recognize id props and automatically assign all components into the SideBar.
    <div className="App">
      <Header />
      <Intro />
      <Contact />
      ...
    </div>
  );
}

export default App;

Components

  • Header
  • Channel
  • Channels
  • Intro
  • Skill
  • TechStackList
  • Experience
  • Carousel
  • Gallery
  • Masonry
  • Image
  • Item
  • Card
  • Contact
  • VisitorCounter
  • VisitorComment
  • ProgressBar

Header

import { Header } from 'dev-portfolio';

const logoOption = { ... };
const channels = [ ... ];
const sideBarOption = { ... };

const App = () => {
  return (
    <Header
      headerHeight="80px"
      headerWidth="100%"
      headerBackgroundColor="whitesmoke"
      logoOption={logoOption}
      channels={channels}
      sideBarOption={sideBarOption}
    />
  );
}

export default App;
propstypedescriptiondefaultnote
headerHeightstringHeader height style'80px'
headerWidthstringHeader width style'100%'
headerBackgroundColorstringHeader background color style'white'
logoOptionLogoOptionPropsTypeYou can customize the attrs such as logo and title by using logoOption props.See "More about Header's Props"
channelsChannelType[]Enter the props of the channel components as an array of objects. Enter channel to express yourself, such as personal blog, linked-in, etc.See "More about Header's Props"
sideBarOptionSideBarOptionPropsTypeYou can customize the attrs such as title and icon, item in sidebar by using sideBarOption props.See "More about Header's Props"

More about Header's props

logoOption example

const logoOption = {
  redirectUrl: '/',
  logoImg: 'logo.png',
  logoHidden: false,
  title: 'dev-portfolio',
  logoMargin: '0px 16px 0px 16px',
  logoWidth: '50px',
  logoHeight: '50px',
  titleColor: 'black',
  titleSize: '24px',
  titleWeight: '800',
};

channels example

For an example of channels, see: channels example

sideBarOption example

Way to change the sidebar icon, use iconName props.

Refer to the guidelines.

const sideBarOption = {
  mainTitle: 'dev-portfolio',
  mainTitleSize: '24px',
  mainTitleColor: 'white',
  mainTitleAlign: 'left',
  mainTitleBorderColor: 'white',
  iconName: 'ant-design:menu-fold-outlined', //Refer to the guidelines.
  iconSize: '28px',
  iconColor: '#434521',
  iconMargin: '0px 12px 0px 12px',
  itemTextColor: 'white',
  itemTextAlign: 'left',
  itemBackgroundColor: '#434521',
  itemHoverdBackgroundColor: 'black',
  backgroundColor: '#434521',
};

Channel

import { Channel } from 'dev-portfolio';

const App = () => {
  return (
    <Channel
      redirectUrl="/"
      name="github"
      color="black"
      size="24px"
      margin="0px 6px"
      padding="0px"
    />
  );
}

export default App;
propstypedescriptiondefaultnote
redirectUrlstringURL you want to redirect when clicked'/'
namestringChannel name'github'
colorstringChannel icon color style'black'
sizestringChannel icon size style'24px'
marginstringChannel margin style'0px 6px'
paddingstringChannel padding style'0px'

Channels

import { Channels } from 'dev-portfolio';

const channels = [ ... ];

const App = () => {
  return (
    <Channels
      channels={channels}
    />
  );
}

export default App;
propstypedescriptiondefaultnote
channelsChannelType[]Channel-only props such as Github and LinkedIn, etcSee "More about Channels's Props"

More about Channels Props

channels example

const channels = [
    {
      redirectUrl: '/',
      name: 'github',
      color: 'black',
      size: '24px',
      margin: '0px 6px',
      padding: '0px',
    },
    {
      redirectUrl: '/',
      name: 'youtube',
      color: '#e03b35',
      size: '24px',
      margin: '0px 6px',
      padding: '0px',
    },
    {
      redirectUrl: '/',
      name: 'linkedin',
      color: '#1295cd',
      size: '24px',
      margin: '0px 6px',
      padding: '0px',
    },
  ];

Intro

import { Intro } from 'dev-portfolio';

const introOption = [ ... ];

const App = () => {
  return (
    <Intro
      id="Intro Component"
      textAlign="left"
      backgroundColor="whitesmoke"
      title="Introduction"
      shortIntro="Hello I am a developer enjoys growing up!"
      description="My name is OOO, BE developer good at Nodejs bla bla..."
      descriptionColor="black"
      descriptionBackgroundColor="black"
      textAlign="black"
      backgroundColor="black"
    />
  );
}

export default App;
propstypedescriptiondefaultnote
idstringName to be added to SidebarSee Guideline to add icon
textAlignstringIntro text align style. You can choose one of the themes such as 'left' and 'center'.'left'
backgroundColorstringIntro background color style.'whitesmoke'
titlestringTitle of Intro section.'Intro'
shortIntrostringMain text that can express you the best.'shortIntro that will captivate people'
descriptionstringIntroduce yourself'This props name is description.\nPlease write down your brief introduction here. If you want to change the line, type backslash-n between the letters. Also you want to move the letters to the center, change textAlign to center. code your dreams!'
titleColorstringTitle text color style.'black'
shortIntroColorstringShortIntro text color style.'black'
descriptionColorstringDescription text color style.'black'
descriptionBackgroundColorstringDescription background color style.'white'

Skill

import { Skill } from 'dev-portfolio';

const App = () => {
  return (
    <Skill
      title="Javascript"
      titleSize="24px"
      isHiddenTitle={false}
      iconName="ion:logo-javascript"
      iconSize="40px"
      iconColor="#F0DB4F"
      margin="0px"
      padding="0px"
      titleColor="black"
      backgroundColor="white"
      borderColor="white"
      borderRadius="12px"
    />
  );
}

export default App;
propstypedescriptiondefaultnote
titlestringMain text that expresses the skill'javascript'
titleSizestringTitle size style'24px'
isHiddenTitlebooleanIf this value is set to True, you can hide the title.false
iconNamestringEnter the name of the icon you searched on the following site.'ion:logo-javascript'See Guideline to add icon
iconSizestringIcon size style'40px'
iconColorstringIcon color style'#F0DB4F'
marginstringSkill margin style'0px'
paddingstringSkill padding style'0px'
titleColorstringTitle color style'black'
borderColorstringSkill border color style'white'
backgroundColorstringSkill background color style'white'
borderRadiusstringSkill border-radius style'12px'

TechStackList

techStackList

import { TechStackList } from 'dev-portfolio';

const techStackList = [ ... ];

const App = () => {
  return (
    <TechStackList
      id="Tech Stack Component"
      gap="normal" // 'narrower' | 'narrow' | 'normal' | 'wide' | 'wider'
      techStackList={techStackList}
    />
  );
}

export default App;
propstypedescriptiondefaultnote
idstringName to be added to SidebarSee Guideline to add icon
gapTechStackGapTypeSpacing between TechStacks in TechStackList'normal'
techStackListTechStackPropsType[]Array of TechStacksSee "More about techStackList"

More about TechStackList's props

techStackList example

const techStackList = [
  {
    nameOption: { name: 'Javascript', nameTextColor: 'black', logoName: 'Javascript', fontSize: '18px', logoSize: '24px' },
    progressBarOption: {
      rateText: '45%',
      rateTextColor: 'black',
      isHiddenRateText: false,
      backgroundColor: 'black',
      colorTo: '#E2D784',
      colorFrom: 'whitesmoke',
      width: '100%',
      height: '40px',
      animationType: 'fill-up-wave',
      isBlinking: true,
    },
  },
  {
    nameOption: { name: 'HTML5', nameTextColor: 'black', logoName: 'HTML-5', fontSize: '18px', logoSize: '24px' },
    progressBarOption: {
      rateText: '30%',
      rateTextColor: 'black',
      isHiddenRateText: false,
      backgroundColor: 'black',
      colorTo: '#E34F26',
      colorFrom: 'whitesmoke',
      width: '100%',
      height: '40px',
      animationType: 'fill-up-wave',
      isBlinking: true,
    },
  },
  {
    nameOption: { name: 'Nodejs', nameTextColor: 'black', logoName: 'Nodejs', fontSize: '18px', logoSize: '24px' },
    progressBarOption: {
      rateText: '85%',
      rateTextColor: 'black',
      isHiddenRateText: false,
      backgroundColor: 'black',
      colorTo: '#339933',
      colorFrom: 'whitesmoke',
      width: '100%',
      height: '40px',
      animationType: 'fill-up-wave',
      isBlinking: true,
    },
  },
];

gap example

// 'narrower' | 'narrow' | 'normal' | 'wide' | 'wider';
const gap = 'normal';

Experience

import { Experience } from 'dev-portfolio';

const historyList = [ ... ];

const App = () => {
  return (
    <Experience
      id="Experience Component"
      title="Experience Title"
      textAlign="left"
      theme="vertical" // 'basic' | 'box' | 'vertical'
      shape="square" // 'square' | 'round-square'
      headerTitleColor="black"
      historyTitleColor="black"
      dateColor="black"
      descriptionColor="black"
      historyList={historyList}
    />
  );
}

export default App;
propstypedescriptiondefaultnote
idstringName to be added to SidebarSee Guideline to add icon
titlestringMain title text of Experience Component'Experience'
textAlignstringExperience Text align'left'
themeExperienceThemeTypeYou can decorate your experience with a variety of theme such as 'basic', 'box', 'vertical'.'basic'
shapeExperienceVerticalOptionTypeShape of card specially used in 'vertical' theme such as 'square', 'round-square'.'square'
headerTitleColorstringColor of title in Experience component'black'
historyTitleColorstringColor of title at historyList'black'
dateColorstringColor of date in history List'black'
descriptionColorstringColor of description in history List'black'
historyListExperienceHistoryListType[]You can add your history data such as date, title, description, etc.See "More about Experience's Props"

More about Experience's props

historyList example

const historyList = [
  {
    startDate: '2022.01.01',
    endDate: '2022.03.10',
    title: 'this is title',
    description: 'This prop name is des.\nWrite down the additional explanation you want here.\nYou can break the line to backslash-n.',
  },
  {
    startDate: '2020.02',
    title: 'this is title',
    description: `If you just want to write the date and time without the text,\ndon't worry !\nYou can write a des props just by emptying it.\nAn example is shown below.`,
  },
  {
    startDate: '2018',
    endDate: '2019.12',
    title: 'this is title',
  },
];

Carousel

ezgif com-gif-maker (2)

import { Carousel, Image } from 'dev-portfolio';

const App = () => {
  return (
    <Carousel
      id="Carousel Component"
      width="65%"
      transition={1000} // ms
      autoplaySpeed={3000} // ms
      slideToShow={1}
      isArrowShow={true}
      isAutoplay={false}
      isAutoplayControl={true}
      arrowLocation="mid-side" // 'bottom' | 'mid-side' | 'top' | 'bottom-side' | 'top-side'
      playerLocation="bottom-mid" // 'bottom-mid' | 'bottom-left' | 'bottom-right' | 'top-mid' | 'top-left' | 'top-right'
      prevArrowIcon={<YOUR_COMPONENT />} // ReactElement
      nextArrowIcon={<YOUR_COMPONENT />} // ReactElement
      startAutoplayIcon={<YOUR_COMPONENT />} // ReactElement
      pauseAutoplayIcon={<YOUR_COMPONENT />} // ReactElement
    >
      // Must insert components customized
      <YOUR_COMPONENT />
      <Image src="anything.png" /> // Component of dev-portfolio ...
    </Carousel>
  );
};

export default App;
propstypedescriptiondefaultnote
idstringName to be added to SidebarSee Guideline to add icon
widthstringCarousel width'100%'
transitionnumberTransition animation speed1000Unit : ms
autoplaySpeednumberTime to stay in a item3000Unit : ms
slideToShownumberNumber of item to show at once1
isArrowShowbooleanFlag for whether to show buttonstrue
isAutoplaybooleanFlag for play carousel automaticallyfalse
isAutoplayControlbooleanFlag for whether to show carousel playertrue
arrowPositionArrowLocationTypePosition of arrow icon'mid-side'
playerLocationPlayerLocationTypePosition of Play icon'bottom-mid'
prevArrowIconReactElementIcon Component for moving into previous item<FiChevronLeft />
nextArrowIconReactElementIcon Component for moving into next item<FiChevronRight />
startAutoplayIconReactElementIcon Component for starting autoplay<TbPlayerPlay />
pauseAutoplayIconReactElementIcon Component for pause autoplay<TbPlayerPause />

Gallery

import { Gallery, Item } from 'dev-portfolio';

const App = () => {
  return (
    <Gallery
      id="Gallery Component"
      column={3}
      gap="normal" // 'wider' | 'wide' | 'normal' | 'narrow' | 'narrower'
      theme="mid-night" // 'mid-night' | 'blossom' | 'fruits' | 'bare-bare' | 'mint-chocolate'
      padding="2em 10em"
    >
      // Must insert components customized
      <YOUR_COMPONENT />
      <Item /> // Component of dev-portfolio ...
    </Gallery>
  );
};

export default App;
propstypedescriptiondefaultnote
idstringName to be added to SidebarSee Guideline to add icon
columnnumberNumber of vertical lines3
gapGalleryGapTypeSpacing between items in Gallery'normal'
themeGalleryThemeTypeYou can choose the color of your customized components in Gallery when they are hoverd with a variety of theme such as 'mid-night', 'blossom', 'fruits', 'bare-bare', 'mint-chocolate'.'mid-night'
paddingstringGallery padding'2em 10em'

Masonry

import { Masonry, Image } from 'dev-portfolio';

const App = () => {
  return (
    <Masonry id="Masonry Component" column={4} padding="2em 4em">
      /* Must insert components customized */
      <YOUR_COMPONENT />
      <Image src="anything.png" redirectURL="/" /> 
      /* Component of dev-portfolio */
      <Image src="https://picsum.photos/900/1100/?random" redirectURL="/" /> 
      /* Component of dev-portfolio */
    </Masonry>
  );
};

export default App;
propstypedescriptiondefaultnote
idstringName to be added to SidebarSee Guideline to add icon
columnnumberNumber of vertical lines4
paddingstringMasonry padding'2em 4em'

Image

ezgif com-gif-maker (5)

import { Image } from 'dev-portfolio';

const App = () => {
  return (
    <Image
      src="https://picsum.photos/500/600/?random"
      head="Write your head"
      subhead="Write your subhead"
      redirectURL="/"
      noShowHead={false}
      zoomWhenHover={false}
      headSize="20px"
      headColor="black"
      headWeight="bold"
      subheadSize="14px"
      subheadColor="white"
    />
  );
};

export default App;
propstypedescriptiondefaultnote
srcstringImage source url
headstringMain Title Text'Write your head'
headSizestringHead text size style'20px'
headColorstringHead color style'black'
headWeightstringHead font weight style'700'
subheadstringSub Title Text'Write your subhead'
subheadSizestringSubhead text size style'14px'
subheadColorstringSubhead text color style'black'
redirectURLstringURL to redirect'/'
noShowHeadbooleanFlag for whether to hide textsfalse
zoomWhenHoverbooleanFlag for whether to zoom image when hovered on itemfalse

Item

ezgif com-gif-maker

import { Item } from 'dev-portfolio';

const App = () => {
  return (
    <Item
      src="https://picsum.photos/600/600/?random"
      title="This is title"
      description="description"
      redirectURL="/"
      textRisingSpeed={300}
      isTextRising={false}
      descriptionColor="white"
      hoverdInnerBorderColor="white"
    />
  );
};

export default App;
propstypedescriptiondefaultnote
srcstringImage source url'https://picsum.photos/600/600/?random'
titlestringMain Title Text'This is title'
descriptionstringDescription Text'description'
redirectURLstringURL to redirect'/'
textRisingSpeednumber300
isTextRisingbooleanfalse
descriptionColorstringDescription text color style'white'
hoverdInnerBorderColorstringInner border color of item when hoverd'white'

Card

import { Card } from 'dev-portfolio';

const App = () => {
  return (
    <Card
      width="10em"
      height="10em"
      redirectURL="/"
      shape="square" // 'square' | 'round-square' | 'round'
      hover="none" // 'up' | 'down' | 'zoom'
    />
  );
};

export default App;
propstypedescriptiondefaultnote
widthstringCard width'10em'
heightstringCard height'10em'
redirectURLstringURL to redirect'/'
shapeCardShapeTypeYou can decorate shape of Card a variety of theme such as 'square', 'round-square', 'round'.'square'
hoverCardHoverTypeYou can make an effect on Card a variety of theme such as 'up', 'down', 'zoom'.'none'

Contact

import { Contact } from 'dev-portfolio';

const channels = [ ... ];
const aboutMeInfos = [ ... ];

const App = () => {
  return (
    <Contact
      id="Contact Component"
      backgroundColor="whitesmoke"
      title="Hello My name is OOO"
      subTitle="If you're interested in me, please press the button below :D"
      buttonText="Want to work with me?"
      email="abc@dev-portfolio.com"
      channels={channels}
      aboutMeInfos={aboutMeInfos}
      titleColor='black'
      subTitleColor='black'
      buttonTextColor='black'
      buttonColor='black'
      buttonBorderColor='black'
    />
  );
};

export default App;
propstypedescriptiondefaultnote
idstringName to be added to SidebarSee Guideline to add icon
backgroundColorstringContact Background Color'whitesmoke'
titlestringMain title text of your contacts'Hello, my name is DEV_PORTFOLIO'
titleColorstringTitle color style'black'
subTitlestringSub title text'If you're interested in me, please press the button below :D'
subTitleColorstringSub title text color style'black'
emailstringYour Email'abc@dev-portfolio.com'
buttonTextstringText of button that function as a link to your email'Want to work with me?'
buttonTextColorstringButton text color style'white'
buttonBorderColorstringButton border color style'black'
channelsChannelType[]Channel-only props such as Github and LinkedIn, etcSee "More about Contact's Props"
aboutMeInfosAboutMeInfoPropsType[]Your personal information like TEL, Home etcSee "More about Contact's Props"

More about Contact's props

channels example

const channels = [
  { name: 'github', redirectUrl: 'https://', color: '#181717BB', size: '24px' },
  { name: 'naver', redirectUrl: 'https://', color: '#47A141BB', size: '24px' },
  { name: 'facebook', redirectUrl: 'https://', color: '#1877F2BB', size: '24px' },
  { name: 'youtube', redirectUrl: 'https://', color: '#FF0000BB', size: '24px' },
];

aboutMeInfos example

const aboutMeInfos = [
    {
      title: 'Where I live',
      description: 'Gangdong-gu, Seoul, Republic of Korea',
    },
    {
      title: 'Give me a call',
      description: 'T. +82 (0)10 1234 5678',
    },
    {
      title: 'Or, why don’t you email me?',
      description: 'dev-portfolio@gmail.com',
    },
  ],

VisitorCounter

import { VisitorCounter } from 'dev-portfolio';

const App = () => {
  return (
    <VisitorCounter
      title="hits"
      theme="big-size" // 'default' | 'big-size' | 'simple'
      todayVisitor={0} // Your fetched variable
      totalVisitor={123} // Your fetched variable
      todayTitle="today"
      totalTitle="total"
      backgroundColor="#91c230c4"
      todayVisitorColor="red"
      totalVisitorColor="red"
      todayTitleColor="black"
      totalTitleColor="black"
      size="14px" // include: px
    />
  );
};

export default App;
propstypedescriptiondefaultnote
titlestringHit title used in 'default' and 'big-size''hits'
themeVisitorCounterThemeTypeVisitor Counter theme: 'default', 'big-size', 'simple''default'
todayVisitornumberNumber of today's visitors0fetched variable
totalVisitornumberNumber of total's visitors123fetched variable
todayTitlestringTitle of today visit count used in 'big-size' and 'simple''today'
totalTitlestringTitle of total visit count used in 'big-size' and 'simple''total'
backgroundColorstringBackground color of todayTitle'#91c230c4'
todayVisitorColorstringToday visitor color style'red'
totalVisitorColorstringTotal visitor color style'red'
todayTitleColorstringToday title color style'black'
totalTitleColorstringTotal title color style'black'
sizestringFont size and component size in the visitor counter component'14px'Make sure to include 'px'

More about VisitorCounter's props

theme example

// 'default' | 'big-size' | 'simple'
const theme = 'default';

VisitorCounter example

const visitorCounter = {
  title: 'hits',
  todayTitle: 'today',
  totalTitle: 'total',
};

VisitorComment

visitor-comment

import { VisitorComment } from 'dev-portfolio';

const commentList = [ ... ];

const App = () => {
  return (
    <VisitorComment
      id="VisitorComment Component"
      theme="basic" // 'basic' | 'box' | 'vertical'
      backgroundColor="whitesmoke"
      inputBackgroundColor="White"
      inputFontColor="black"
      inputPlacehoderColor="black"
      userInputLineColor="#b4b4b4a2"
      buttonColor="#1877f2"
      listBackgroundColor="white"
      listCommentColor="black"
      listNicknameColor="#959595"
      listDateColor="#959595"
      progressbarColor="#5f5f5f"
      isShowScrollDownIcon={true}
      scrollDownIconColor='black'
      descriptionPlaceholder='write your description...'
      nicknamePlaceholder='ID'
      passwordPlaceholder='PW'
      commentList={commentList} // Your fetched variable
      comment='this portfolio is very nice' // Data you entered in comment-input
      nickname='dev-portfolio' // Data you entered in comment-input
      password='1234' // Data you entered in comment-input
      handleCreateComment={handleCreateComment} // Event handling variable
      handleChangeDescription={handleChangeDescription} // Event handling variable
      handleChangeNickname={handleChangeNickname} // Event handling variable
      handleChangePassword={handleChangePassword} // Event handling variable
    />
  );
}

export default App;
propstypedescriptiondefaultnote
idstringName to be added to SidebarSee Guideline to add icon
themeVisitorCommentThemeTypeVisitor Comment theme: 'basic', 'box', 'vertical''basic'
backgroundColorstringVisitorComment background-color'whitesmoke'
inputBackgroundColorstringBackground color of guest book preparation column'White'
inputFontColorstringFont Color in input box when create comment, user infomation'Black'
inputPlacehoderColorstringPlacehoder font Color in input comment, user infomation boxes'Black'
userInputLineColorstringUnderline color in the User Information field'#b4b4b4a2'
buttonColorstringFont color of send button'#1877f'
listBackgroundColorstringBackground color of comment list'white'
listCommentColorstringColor of comment in comment list'black'
listNicknameColorstringColor of nickname in comment list'#959595'
listDateColorstringColor of date in comment list'#959595'
progressbarColorstringThe color of the progress bar that is generated when a scroll event occurs'#5f5f5f'
isShowScrollDownIconbooleanWhether to display icons that are generated when a scroll event occurstrue
scrollDownIconColorstringColor in ScrollDown Icon'black'Only works when isShowScrollDownIcon is true
descriptionPlaceholderstringPlaceholder of description area'write your description...'
nicknamePlaceholderstringPlaceholder of nickname area'ID'
passwordPlaceholderstringPlaceholder of password area'PW'
commentListVisitorCommentListTypeList of Comment such as description, nickname, dateSee "More about VisitorComment's Props"fetched variable
commentstringPlease put the data you entered in the comment-input into this props. This will sends an http request to the server and be stored in the DB'this portfolio is very nice'Data you entered in comment-input
nicknamestringPlease put the data you entered in the nickname-input into this props. This will sends an http request to the server and be stored in the DB'dev-portfolio'Data you entered in nickname-input
passwordstringPlease put the data you entered in the password-input into this props. This will sends an http request to the server and be stored in the DB'1234'Data you entered in password-input
handleCreateComment(e?: React.MouseEvent) => voidComments Props for event handling
handleChangeDescription(e?: React.ChangeEvent) => voidDescription Props for event handling
handleChangeNickname(e?: React.ChangeEvent) => voidNickname Props for event handling
handleChangePassword(e?: React.ChangeEvent) => voidPassword Props for event handling

More about VisitorComment's props

commentList example

List of Comment such as description, nickname, date.
This props is fetched datas from the backend.

const commentList: [
    {
      description: `The scroll customization method is the same as the teckstack component progress bar, so please use it!`,
      nickname: 'woorim960',
      date: '2022-08-26',
    },
    {
      description: `Progress bar customization is also possible when creating a scroll.`,
      nickname: 'seohyunsim',
      date: '2022-08-26',
    },
    {
      description: `Likewise, there are three types of themes: basic, box, and vertical.`,
      nickname: 'jisu3817',
      date: '2022-08-26',
    },
    {
      description: 'Refer to dev-portfolio README.md for instructions on building a personal server.',
      nickname: 'soonki-98',
      date: '2022-08-26',
    },
    {
      description: `A personal server can be built through environmental variables, and visitors can write their text and nicknames.`,
      nickname: 'woorim960',
      date: '2022-08-26',
    },
    {
      description: 'By looking at your portfolio, visitors can leave a guest book.',
      nickname: 'seohyunsim',
      date: '2022-08-26',
    },
  ],
};

ProgressBar

import { ProgressBar } from 'dev-portfolio';
 
const App = () => {
  return (
    <ProgressBar
      rateText="100%"
      rateTextColor="black"
      isHiddenRateText={false}
      backgroundColor="whitesmoke"
      colorFrom="white"
      colorTo="red"
      width="100%"
      height="40px"
      animationType="wave" // "wave" | "fill-up" | "fill-up-wave" | "none"
      isBlinking={false}
    />
  );
}

export default App;
propstypedescriptiondefaultnote
rateTextstringHow well you handle the skill (unit: %)'100%'
rateTextColorstringrateText color style'black'
isHiddenRateTextbooleanWhether show rate in progressbartrue
backgroundColorstringProgressBar's background color stylewhitesmoke
colorFromstringStart color of blinking animation of progressbar'white'
colorTostringEnd color of blinking animation of progressbar'red'
widthstringProgressbar css width'100%'
heightstringProgressbar css width'40px'
animationTypeanimationTypeProgressbar animation'wave'
isBlinkingbooleanProgressbar blinking statefalse

More about ProgressBar's props

animationType

type amimationType = "wave" | "fill-up" | "fill-up-wave" | "none"

Example

  1. [dev-portfolio-app](https://github.com/modern-agile-team/dev-portfolio-app) http://52.78.64.144/

ezgif com-gif-maker

  1. [woorim960](https://github.com/woorim960/woorim-personal-website) http://152.70.89.184/

ezgif com-gif-maker (1)

  1. [seohyunsim](https://github.com/seohyunsim/seohyunsim-portfolio) https://seohyunsim-portfolio.vercel.app/

Guidelines to input icons

Enter the name of the icon you searched on the following site.

(example: 'simple-icons:devdotto')

More about used props

  • id example
const id = "['ID_NAME', 'ICON_NAME']"
  • iconName example
const iconName =  'ICON_NAME',

License

MIT

Contributor

2.0.0

2 years ago

2.0.0-beta-1.0

2 years ago

2.0.0-beta-1.1

2 years ago

2.0.0-beta-1.2

2 years ago

2.0.0-beta-0.3

2 years ago

2.1.2

2 years ago

2.1.1

2 years ago

2.1.4

2 years ago

2.1.3

2 years ago

2.1.5

2 years ago

2.1.0

2 years ago

2.0.0-beta

2 years ago

2.0.0-beta-0.1

2 years ago

2.0.0-beta-0.2

2 years ago

1.1.4

2 years ago

1.2.0

2 years ago

0.4.42

2 years ago

0.4.43

2 years ago

1.0.0

2 years ago

0.4.41

2 years ago

0.4.48

2 years ago

0.4.49

2 years ago

0.4.46

2 years ago

0.4.47

2 years ago

0.4.44

2 years ago

1.2.1

2 years ago

0.4.45

2 years ago

0.4.31

2 years ago

1.1.1

2 years ago

1.1.0

2 years ago

1.1.3

2 years ago

1.1.2

2 years ago

0.4.11

2 years ago

0.4.4

2 years ago

0.4.1

2 years ago

0.4.0

2 years ago

0.4.3

2 years ago

0.4.2

2 years ago

0.2.63

2 years ago

0.2.62

2 years ago

0.2.61

2 years ago

0.2.69

2 years ago

0.2.68

2 years ago

0.2.67

2 years ago

0.2.66

2 years ago

0.2.65

2 years ago

0.2.64

2 years ago

0.2.52

2 years ago

0.2.51

2 years ago

0.2.59

2 years ago

0.2.58

2 years ago

0.2.57

2 years ago

0.2.56

2 years ago

0.2.55

2 years ago

0.2.54

2 years ago

0.2.53

2 years ago

0.3.0

2 years ago

0.3.2

2 years ago

0.3.1

2 years ago

0.3.4

2 years ago

0.3.3

2 years ago

0.2.41

2 years ago

0.3.50

2 years ago

0.2.49

2 years ago

0.2.48

2 years ago

0.2.47

2 years ago

0.2.46

2 years ago

0.2.45

2 years ago

0.2.44

2 years ago

0.2.43

2 years ago

0.2.42

2 years ago

0.3.42

2 years ago

0.2.74

2 years ago

0.3.41

2 years ago

0.2.73

2 years ago

0.2.72

2 years ago

0.2.71

2 years ago

0.3.49

2 years ago

0.3.48

2 years ago

0.3.47

2 years ago

0.2.79

2 years ago

0.3.46

2 years ago

0.2.78

2 years ago

0.3.45

2 years ago

0.2.77

2 years ago

0.2.33

2 years ago

0.3.44

2 years ago

0.2.76

2 years ago

0.2.32

2 years ago

0.3.43

2 years ago

0.2.75

2 years ago

0.2.31

2 years ago

0.2.1

2 years ago

0.2.0

2 years ago

0.2.7

2 years ago

0.2.6

2 years ago

0.2.3

2 years ago

0.2.2

2 years ago

0.2.5

2 years ago

0.2.4

2 years ago

0.1.0

2 years ago