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 --save
-
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
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;
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) => void
|
Comments Props for event handling |
|
|
handleChangeDescription |
(e?: React.ChangeEvent) => void
|
Description Props for event handling |
|
|
handleChangeNickname |
(e?: React.ChangeEvent) => void
|
Nickname Props for event handling |
|
|
handleChangePassword |
(e?: React.ChangeEvent) => void
|
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
- <dev-portfolio-app> http://52.78.64.144/
- <woorim960> http://152.70.89.184/
- <seohyunsim> 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
const id = "['ID_NAME', 'ICON_NAME']"
const iconName = 'ICON_NAME',
License
MIT
Contributor