Package Exports
- dev-portfolio
- dev-portfolio/dev-portfolio/src/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (dev-portfolio) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
dev-porfolio
dev-portfolio is React library that helps you develop your web portfolio easily and quickly.

List
Install
Install only dev-portfolio library.
npm i dev-portfolio --saveInstall 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;| props | type | description | default | note |
|---|---|---|---|---|
headerHeight |
string | Header height style | '80px' |
|
headerWidth |
string | Header width style | '100%' |
|
headerBackgroundColor |
string | Header background color style | 'white' |
|
logoOption |
LogoOptionPropsType | You can customize the attrs such as logo and title by using logoOption props. | See "More about Header's Props" | |
channels |
ChannelType[] | 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" | |
sideBarOption |
SideBarOptionPropsType | You 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;| props | type | description | default | note |
|---|---|---|---|---|
redirectUrl |
string | URL you want to redirect when clicked | '/' |
|
name |
string | Channel name | 'github' |
|
color |
string | Channel icon color style | 'black' |
|
size |
string | Channel icon size style | '24px' |
|
margin |
string | Channel margin style | '0px 6px' |
|
padding |
string | Channel padding style | '0px' |
Channels
import { Channels } from 'dev-portfolio';
const channels = [ ... ];
const App = () => {
return (
<Channels
channels={channels}
/>
);
}
export default App;| props | type | description | default | note |
|---|---|---|---|---|
channels |
ChannelType[] | Channel-only props such as Github and LinkedIn, etc | See "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;| props | type | description | default | note |
|---|---|---|---|---|
id |
string | Name to be added to Sidebar | See Guideline to add icon | |
textAlign |
string | Intro text align style. You can choose one of the themes such as 'left' and 'center'. |
'left' |
|
backgroundColor |
string | Intro background color style. | 'whitesmoke' |
|
title |
string | Title of Intro section. | 'Intro' |
|
shortIntro |
string | Main text that can express you the best. | 'shortIntro that will captivate people' |
|
description |
string | Introduce 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!' |
|
titleColor |
string | Title text color style. | 'black' |
|
shortIntroColor |
string | ShortIntro text color style. | 'black' |
|
descriptionColor |
string | Description text color style. | 'black' |
|
descriptionBackgroundColor |
string | Description 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;| props | type | description | default | note |
|---|---|---|---|---|
title |
string | Main text that expresses the skill | 'javascript' |
|
titleSize |
string | Title size style | '24px' |
|
isHiddenTitle |
boolean | If this value is set to True, you can hide the title. | false |
|
iconName |
string | Enter the name of the icon you searched on the following site. | 'ion:logo-javascript' |
See Guideline to add icon |
iconSize |
string | Icon size style | '40px' |
|
iconColor |
string | Icon color style | '#F0DB4F' |
|
margin |
string | Skill margin style | '0px' |
|
padding |
string | Skill padding style | '0px' |
|
titleColor |
string | Title color style | 'black' |
|
borderColor |
string | Skill border color style | 'white' |
|
backgroundColor |
string | Skill background color style | 'white' |
|
borderRadius |
string | Skill border-radius style | '12px' |
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;| props | type | description | default | note |
|---|---|---|---|---|
id |
string | Name to be added to Sidebar | See Guideline to add icon | |
gap |
TechStackGapType | Spacing between TechStacks in TechStackList | 'normal' |
|
techStackList |
TechStackPropsType[] | Array of TechStacks | See "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;| props | type | description | default | note |
|---|---|---|---|---|
id |
string | Name to be added to Sidebar | See Guideline to add icon | |
title |
string | Main title text of Experience Component | 'Experience' |
|
textAlign |
string | Experience Text align | 'left' |
|
theme |
ExperienceThemeType | You can decorate your experience with a variety of theme such as 'basic', 'box', 'vertical'. | 'basic' |
|
shape |
ExperienceVerticalOptionType | Shape of card specially used in 'vertical' theme such as 'square', 'round-square'. | 'square' |
|
headerTitleColor |
string | Color of title in Experience component | 'black' |
|
historyTitleColor |
string | Color of title at historyList | 'black' |
|
dateColor |
string | Color of date in history List | 'black' |
|
descriptionColor |
string | Color of description in history List | 'black' |
|
historyList |
ExperienceHistoryListType[] | 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

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;| props | type | description | default | note |
|---|---|---|---|---|
id |
string | Name to be added to Sidebar | See Guideline to add icon | |
width |
string | Carousel width | '100%' |
|
transition |
number | Transition animation speed | 1000 |
Unit : ms |
autoplaySpeed |
number | Time to stay in a item | 3000 |
Unit : ms |
slideToShow |
number | Number of item to show at once | 1 |
|
isArrowShow |
boolean | Flag for whether to show buttons | true |
|
isAutoplay |
boolean | Flag for play carousel automatically | false |
|
isAutoplayControl |
boolean | Flag for whether to show carousel player | true |
|
arrowPosition |
ArrowLocationType | Position of arrow icon | 'mid-side' |
|
playerLocation |
PlayerLocationType | Position of Play icon | 'bottom-mid' |
|
prevArrowIcon |
ReactElement | Icon Component for moving into previous item | <FiChevronLeft /> |
|
nextArrowIcon |
ReactElement | Icon Component for moving into next item | <FiChevronRight /> |
|
startAutoplayIcon |
ReactElement | Icon Component for starting autoplay | <TbPlayerPlay /> |
|
pauseAutoplayIcon |
ReactElement | Icon 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;| props | type | description | default | note |
|---|---|---|---|---|
id |
string | Name to be added to Sidebar | See Guideline to add icon | |
column |
number | Number of vertical lines | 3 |
|
gap |
GalleryGapType | Spacing between items in Gallery | 'normal' |
|
theme |
GalleryThemeType | You 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' |
|
padding |
string | Gallery 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;| props | type | description | default | note |
|---|---|---|---|---|
id |
string | Name to be added to Sidebar | See Guideline to add icon | |
column |
number | Number of vertical lines | 4 |
|
padding |
string | Masonry padding | '2em 4em' |
Image

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;| props | type | description | default | note |
|---|---|---|---|---|
src |
string | Image source url | ||
head |
string | Main Title Text | 'Write your head' |
|
headSize |
string | Head text size style | '20px' |
|
headColor |
string | Head color style | 'black' |
|
headWeight |
string | Head font weight style | '700' |
|
subhead |
string | Sub Title Text | 'Write your subhead' |
|
subheadSize |
string | Subhead text size style | '14px' |
|
subheadColor |
string | Subhead text color style | 'black' |
|
redirectURL |
string | URL to redirect | '/' |
|
noShowHead |
boolean | Flag for whether to hide texts | false |
|
zoomWhenHover |
boolean | Flag for whether to zoom image when hovered on item | false |
Item

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;| props | type | description | default | note |
|---|---|---|---|---|
src |
string | Image source url | 'https://picsum.photos/600/600/?random' |
|
title |
string | Main Title Text | 'This is title' |
|
description |
string | Description Text | 'description' |
|
redirectURL |
string | URL to redirect | '/' |
|
textRisingSpeed |
number | 300 |
||
isTextRising |
boolean | false |
||
descriptionColor |
string | Description text color style | 'white' |
|
hoverdInnerBorderColor |
string | Inner 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;| props | type | description | default | note |
|---|---|---|---|---|
width |
string | Card width | '10em' |
|
height |
string | Card height | '10em' |
|
redirectURL |
string | URL to redirect | '/' |
|
shape |
CardShapeType | You can decorate shape of Card a variety of theme such as 'square', 'round-square', 'round'. | 'square' |
|
hover |
CardHoverType | You 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;| props | type | description | default | note |
|---|---|---|---|---|
id |
string | Name to be added to Sidebar | See Guideline to add icon | |
backgroundColor |
string | Contact Background Color | 'whitesmoke' |
|
title |
string | Main title text of your contacts | 'Hello, my name is DEV_PORTFOLIO' |
|
titleColor |
string | Title color style | 'black' |
|
subTitle |
string | Sub title text | 'If you're interested in me, please press the button below :D' |
|
subTitleColor |
string | Sub title text color style | 'black' |
|
email |
string | Your Email | 'abc@dev-portfolio.com' |
|
buttonText |
string | Text of button that function as a link to your email | 'Want to work with me?' |
|
buttonTextColor |
string | Button text color style | 'white' |
|
buttonBorderColor |
string | Button border color style | 'black' |
|
channels |
ChannelType[] | Channel-only props such as Github and LinkedIn, etc | See "More about Contact's Props" | |
aboutMeInfos |
AboutMeInfoPropsType[] | Your personal information like TEL, Home etc | See "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;| props | type | description | default | note |
|---|---|---|---|---|
title |
string | Hit title used in 'default' and 'big-size' | 'hits' |
|
theme |
VisitorCounterThemeType | Visitor Counter theme: 'default', 'big-size', 'simple' | 'default' |
|
todayVisitor |
number | Number of today's visitors | 0 |
fetched variable |
totalVisitor |
number | Number of total's visitors | 123 |
fetched variable |
todayTitle |
string | Title of today visit count used in 'big-size' and 'simple' | 'today' |
|
totalTitle |
string | Title of total visit count used in 'big-size' and 'simple' | 'total' |
|
backgroundColor |
string | Background color of todayTitle | '#91c230c4' |
|
todayVisitorColor |
string | Today visitor color style | 'red' |
|
totalVisitorColor |
string | Total visitor color style | 'red' |
|
todayTitleColor |
string | Today title color style | 'black' |
|
totalTitleColor |
string | Total title color style | 'black' |
|
size |
string | Font 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

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;| props | type | description | default | note |
|---|---|---|---|---|
id |
string | Name to be added to Sidebar | See Guideline to add icon | |
theme |
VisitorCommentThemeType | Visitor Comment theme: 'basic', 'box', 'vertical' | 'basic' |
|
backgroundColor |
string | VisitorComment background-color | 'whitesmoke' |
|
inputBackgroundColor |
string | Background color of guest book preparation column | 'White' |
|
inputFontColor |
string | Font Color in input box when create comment, user infomation | 'Black' |
|
inputPlacehoderColor |
string | Placehoder font Color in input comment, user infomation boxes | 'Black' |
|
userInputLineColor |
string | Underline color in the User Information field | '#b4b4b4a2' |
|
buttonColor |
string | Font color of send button | '#1877f' |
|
listBackgroundColor |
string | Background color of comment list | 'white' |
|
listCommentColor |
string | Color of comment in comment list | 'black' |
|
listNicknameColor |
string | Color of nickname in comment list | '#959595' |
|
listDateColor |
string | Color of date in comment list | '#959595' |
|
progressbarColor |
string | The color of the progress bar that is generated when a scroll event occurs | '#5f5f5f' |
|
isShowScrollDownIcon |
boolean | Whether to display icons that are generated when a scroll event occurs | true |
|
scrollDownIconColor |
string | Color in ScrollDown Icon | 'black' |
Only works when isShowScrollDownIcon is true |
descriptionPlaceholder |
string | Placeholder of description area | 'write your description...' |
|
nicknamePlaceholder |
string | Placeholder of nickname area | 'ID' |
|
passwordPlaceholder |
string | Placeholder of password area | 'PW' |
|
commentList |
VisitorCommentListType | List of Comment such as description, nickname, date | See "More about VisitorComment's Props" | fetched variable |
comment |
string | Please 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 |
nickname |
string | Please 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 |
password |
string | Please 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 |
Comments Props for event handling | ||
handleChangeDescription |
(e?: React.ChangeEvent |
Description Props for event handling | ||
handleChangeNickname |
(e?: React.ChangeEvent |
Nickname Props for event handling | ||
handleChangePassword |
(e?: React.ChangeEvent |
Password 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;| props | type | description | default | note |
|---|---|---|---|---|
rateText |
string | How well you handle the skill (unit: %) | '100%' |
|
rateTextColor |
string | rateText color style | 'black' |
|
isHiddenRateText |
boolean | Whether show rate in progressbar | true |
|
backgroundColor |
string | ProgressBar's background color style | whitesmoke |
|
colorFrom |
string | Start color of blinking animation of progressbar | 'white' |
|
colorTo |
string | End color of blinking animation of progressbar | 'red' |
|
width |
string | Progressbar css width | '100%' |
|
height |
string | Progressbar css width | '40px' |
|
animationType |
animationType | Progressbar animation | 'wave' |
|
isBlinking |
boolean | Progressbar blinking state | false |
More about ProgressBar's props
animationType
type amimationType = "wave" | "fill-up" | "fill-up-wave" | "none"Example


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