Skip to content

Commit 350e299

Browse files
authored
Merge pull request realstoman#7 from NangialaiStoman/readme-and-ui
Readme File & UI Development
2 parents 91f4f16 + 77e7bea commit 350e299

18 files changed

+102
-103
lines changed

README.md

+52-50
Original file line numberDiff line numberDiff line change
@@ -1,70 +1,72 @@
1-
# Getting Started with Create React App
1+
# React & TailwindCSS Portfolio - With Dark Mode
22

3-
This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
3+
A simple portfolio starter theme built with React and TailwindCSS. This is a simple portfolio theme and its geared towards beginners. This is the React version of [vuejs-tailwindcss-portfolio](https://github.com/NangialaiStoman/vuejs-tailwindcss-portfolio).
44

5-
## Available Scripts
5+
![React-TailwindCSS-Portfolio](https://user-images.githubusercontent.com/16396664/140909796-815239e4-a986-46ad-bbd0-4b166127bbb8.JPG)
66

7-
In the project directory, you can run:
7+
## Demo URL
88

9-
### `yarn start`
9+
[https://react-tailwindcss-portfolio.netlify.com](https://react-tailwindcss-portfolio.netlify.com)
1010

11-
Runs the app in the development mode.\
12-
Open [http://localhost:3000](http://localhost:3000) to view it in the browser.
11+
## Features
1312

14-
The page will reload if you make edits.\
15-
You will also see any lint errors in the console.
13+
- Simple and responsive design
14+
- [React](https://reactjs.org) with [React Router v6](https://reactrouter.com)
15+
- [Tailwind CSS v2](https://tailwindcss.com)
16+
- Theme Switcher with Dark Mode
17+
- Context API
18+
- Transitions & Animations
19+
- Counter
20+
- Projects filter by category
21+
- Projects filter by search
22+
- Projects carousel
23+
- Smooth scroll
24+
- Dynamic forms
25+
- Back to top button
26+
- Download file button
1627

17-
### `yarn test`
28+
## Installation
1829

19-
Launches the test runner in the interactive watch mode.\
20-
See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.
30+
1. ##### Make sure you have Node JS installed. If you don't have it:
2131

22-
### `yarn build`
32+
- [Download it from nodejs.org](https://nodejs.org)
33+
- [Install it using NVM ](https://github.com/nvm-sh/nvm)
34+
- If you're on Mac, Homebrew is a good option too:
2335

24-
Builds the app for production to the `build` folder.\
25-
It correctly bundles React in production mode and optimizes the build for the best performance.
36+
```
37+
brew install node
38+
```
2639

27-
The build is minified and the filenames include the hashes.\
28-
Your app is ready to be deployed!
40+
2. ##### Clone the repo:
2941

30-
See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.
42+
```
43+
git clone https://github.com/NangialaiStoman/react-tailwindcss-portfolio.git
44+
```
3145

32-
### `yarn eject`
46+
3. ##### Open the project folder:
3347

34-
**Note: this is a one-way operation. Once you `eject`, you can’t go back!**
48+
```
49+
cd react-tailwindcss-portfolio
50+
```
3551

36-
If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.
52+
4. ##### Install packages and dependencies:
3753

38-
Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own.
54+
```
55+
yarn install
56+
```
3957

40-
You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it.
58+
5. ##### Start a local dev server at `http://localhost:3000`:
4159

42-
## Learn More
60+
```
61+
yarn start
62+
```
4363

44-
You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).
64+
## Notes
4565

46-
To learn React, check out the [React documentation](https://reactjs.org/).
47-
48-
### Code Splitting
49-
50-
This section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting)
51-
52-
### Analyzing the Bundle Size
53-
54-
This section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size)
55-
56-
### Making a Progressive Web App
57-
58-
This section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app)
59-
60-
### Advanced Configuration
61-
62-
This section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration)
63-
64-
### Deployment
65-
66-
This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment)
67-
68-
### `yarn build` fails to minify
69-
70-
This section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify)
66+
- Always run `yarn install` after pulling new changes
67+
- I'll be constantly updating this repo as I'll be adding more sections to it, so please always check the projects section of this repo to see what tasks are under todo and in progress
68+
- Coming Soon [I'll be doing a screencast](https://www.youtube.com/c/StomanStudio). Soon I'll be uploading a video to my YouTube channel where I'll be going through the process of creating this portoflio
69+
- Illustrations from [unDraw](https://undraw.co) and [Freepik](https://freepik.com)
70+
- Images from [Unsplash](https://unsplash.com)
71+
- Feel free to use it as your own portfolio
72+
- Contributions are welcome

public/index.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
work correctly both with client-side routing and a non-root public URL.
2525
Learn how to configure a non-root public URL by running `npm run build`.
2626
-->
27-
<title>React App</title>
27+
<title>Stoman</title>
2828
</head>
2929
<body>
3030
<noscript>You need to enable JavaScript to run this app.</noscript>

src/components/AboutClientSingle.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ const AboutClientSingle = ({ title, image }) => {
33
<>
44
<img
55
src={image}
6-
className="w-64 py-5 px-10 border bg-secondary-light border-ternary-light dark:border-ternary-dark shadow-sm rounded-xl mb-8 cursor-pointer"
6+
className="w-64 py-5 px-10 border bg-secondary-light border-ternary-light dark:border-ternary-dark shadow-sm rounded-lg mb-8 cursor-pointer"
77
alt={title}
88
/>
99
</>

src/components/AboutMeBio.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ const AboutMeBio = () => {
66
<div className="block sm:flex sm:gap-10 mt-10 sm:mt-20">
77
{/* About me portfolio image start */}
88
<div className="w-full sm:w-1/4 mb-7 sm:mb-0">
9-
<img src={profileImage} className="rounded-xl w-96" alt="" />
9+
<img src={profileImage} className="rounded-lg w-96" alt="" />
1010
</div>
1111
{/* About me portfolio image end */}
1212

src/components/AppBanner.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,17 @@ const AppBanner = () => {
99
return (
1010
<section className="flex flex-col sm:justify-between items-center sm:flex-row mt-12 sm:mt-2">
1111
<div className="w-full sm:w-1/3 text-left">
12-
<h1 className="text-3xl sm:text-5xl text-center sm:text-left font-semibold text-ternary-dark dark:text-primary-light uppercase">
12+
<h1 className="text-2xl sm:text-3xl lg:text-4xl xl:text-5xl text-center sm:text-left font-semibold text-ternary-dark dark:text-primary-light uppercase">
1313
Hi, Iam Stoman
1414
</h1>
15-
<p className="mt-4 text-2xml sm:text-4xl text-center sm:text-left font-semibold leading-none text-gray-400">
15+
<p className="mt-4 text-xl sm:text-2xl lg:text-3xl xl:text-4xl text-center sm:text-left font-semibold leading-none text-gray-400">
1616
A Full-Stack Developer & Design Enthusiast
1717
</p>
1818
<div className="flex justify-center sm:block">
1919
<a
2020
download="Stoman-Resume.pdf"
2121
href="/files/Stoman-Resume.pdf"
22-
className="flex justify-center items-center w-36 sm:w-48 mt-12 mb-6 sm:mb-0 text-lg border border-indigo-200 dark:border-ternary-dark py-2.5 sm:py-3 shadow-lg rounded-xl bg-indigo-50 focus:ring-1 focus:ring-indigo-900 hover:bg-indigo-500 text-gray-500 hover:text-white"
22+
className="flex justify-center items-center w-36 sm:w-48 mt-12 mb-6 sm:mb-0 text-lg border border-indigo-200 dark:border-ternary-dark py-2.5 sm:py-3 shadow-lg rounded-lg bg-indigo-50 focus:ring-1 focus:ring-indigo-900 hover:bg-indigo-500 text-gray-500 hover:text-white"
2323
aria-label="Download Resume"
2424
>
2525
<FiArrowDownCircle className="ml-0 sm:ml-1 mr-2 sm:mr-3 h-5 w-5 sn:w-6 sm:h-6"></FiArrowDownCircle>

src/components/AppFooter.js

+7-3
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ const socialLinks = [
3838
const AppFooter = () => {
3939
return (
4040
<div className="container mx-auto">
41-
<div className="innercontent pt-20 sm:pt-30 pb-8 mt-20 border-t-2 border-primary-light dark:border-secondary-dark">
41+
<div className="pt-20 sm:pt-30 pb-8 mt-20 border-t-2 border-primary-light dark:border-secondary-dark">
4242
{/* Footer social links start */}
4343
<div className="flex flex-col justify-center items-center mb-12 sm:mb-28">
4444
<p className="text-3xl sm:text-4xl font-semibold text-primary-dark dark:text-primary-light mb-5">
@@ -64,8 +64,12 @@ const AppFooter = () => {
6464
{/* Footer copyright start */}
6565
<div className="flex justify-center items-center text-center">
6666
<div className="text-lg text-ternary-dark dark:text-ternary-light">
67-
<Link to="https://github.com/NangialaiStoman/react-tailwindcss-portfolio">
68-
&copy; 2021. React & TailwindCSS Portfolio
67+
&copy; 2021
68+
<Link
69+
to="https://github.com/NangialaiStoman/react-tailwindcss-portfolio"
70+
className="hover:underline ml-1"
71+
>
72+
React & TailwindCSS Portfolio
6973
</Link>
7074
.
7175
<Link

src/components/AppHeader.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ const AppHeader = () => {
181181
<div>
182182
<button
183183
onClick={showHireMeModal}
184-
className="text-md font-medium bg-indigo-500 hover:bg-indigo-600 text-white shadow-sm rounded-lg px-5 py-2.5"
184+
className="text-md font-medium bg-indigo-500 hover:bg-indigo-600 text-white shadow-sm rounded-md px-5 py-2.5"
185185
aria-label="Hire Me Button"
186186
>
187187
Hire Me

src/components/ContactForm.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ const ContactForm = () => {
66
onSubmit={(e) => {
77
e.preventDefault();
88
}}
9-
className="max-w-xl m-4 p-6 sm:p-10 bg-secondary-light dark:bg-secondary-dark rounded-xl shadow-xl text-left"
9+
className="max-w-xl m-4 p-6 sm:p-10 bg-secondary-light dark:bg-secondary-dark rounded-lg shadow-xl text-left"
1010
>
1111
<p className="text-primary-dark dark:text-primary-light text-2xl font-semibold mb-8">
1212
Contact Form
@@ -82,7 +82,7 @@ const ContactForm = () => {
8282

8383
<div className="mt-6">
8484
<button
85-
className="px-4 py-2.5 text-white font-medium tracking-wider bg-indigo-500 hover:bg-indigo-600 focus:ring-1 focus:ring-indigo-900 rounded-lg"
85+
className="px-4 py-2.5 text-white font-medium tracking-wider bg-indigo-500 hover:bg-indigo-600 focus:ring-1 focus:ring-indigo-900 rounded-md"
8686
type="submit"
8787
aria-label="Send Message"
8888
>

src/components/HireMeModal.js

+5-7
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ const HireMeModal = ({ onClose, onRequest }) => {
99
{/* Modal Content */}
1010
<main className="flex flex-col items-center justify-center h-full w-full">
1111
<div className="modal-wrapper flex items-center z-30">
12-
<div className="modal max-w-md mx-5 xl:max-w-xl lg:max-w-xl md:max-w-xl bg-secondary-light dark:bg-primary-dark max-h-screen shadow-lg flex-row rounded-xl relative">
12+
<div className="modal max-w-md mx-5 xl:max-w-xl lg:max-w-xl md:max-w-xl bg-secondary-light dark:bg-primary-dark max-h-screen shadow-lg flex-row rounded-lg relative">
1313
<div className="modal-header flex justify-between gap-10 p-5 border-b border-ternary-light dark:border-ternary-dark">
1414
<h5 className=" text-primary-dark dark:text-primary-light text-2xl">
1515
What project are you looking for?
@@ -30,7 +30,7 @@ const HireMeModal = ({ onClose, onRequest }) => {
3030
>
3131
<div className="">
3232
<input
33-
className="w-full px-5 py-2 border dark:border-secondary-dark rounded-lg text-md dark:font-medium bg-secondary-light dark:bg-ternary-dark text-primary-dark dark:text-ternary-light"
33+
className="w-full px-5 py-2 border dark:border-secondary-dark rounded-md text-md dark:font-medium bg-secondary-light dark:bg-ternary-dark text-primary-dark dark:text-ternary-light"
3434
id="name"
3535
name="name"
3636
type="text"
@@ -41,7 +41,7 @@ const HireMeModal = ({ onClose, onRequest }) => {
4141
</div>
4242
<div className="mt-6">
4343
<input
44-
className="w-full px-5 py-2 border dark:border-secondary-dark rounded-lg text-md dark:font-medium bg-secondary-light dark:bg-ternary-dark text-primary-dark dark:text-ternary-light"
44+
className="w-full px-5 py-2 border dark:border-secondary-dark rounded-md text-md dark:font-medium bg-secondary-light dark:bg-ternary-dark text-primary-dark dark:text-ternary-light"
4545
id="email"
4646
name="email"
4747
type="text"
@@ -52,7 +52,7 @@ const HireMeModal = ({ onClose, onRequest }) => {
5252
</div>
5353
<div className="mt-6">
5454
<select
55-
className="w-full px-5 py-2 border dark:border-secondary-dark rounded-lg text-md dark:font-medium bg-secondary-light dark:bg-ternary-dark text-primary-dark dark:text-ternary-light"
55+
className="w-full px-5 py-2 border dark:border-secondary-dark rounded-md text-md dark:font-medium bg-secondary-light dark:bg-ternary-dark text-primary-dark dark:text-ternary-light"
5656
id="subject"
5757
name="subject"
5858
type="text"
@@ -65,7 +65,7 @@ const HireMeModal = ({ onClose, onRequest }) => {
6565

6666
<div className="mt-6">
6767
<textarea
68-
className="w-full px-5 py-2 border dark:border-secondary-dark rounded-lg text-md dark:font-medium bg-secondary-light dark:bg-ternary-dark text-primary-dark dark:text-ternary-light"
68+
className="w-full px-5 py-2 border dark:border-secondary-dark rounded-md text-md dark:font-medium bg-secondary-light dark:bg-ternary-dark text-primary-dark dark:text-ternary-light"
6969
id="message"
7070
name="message"
7171
cols="14"
@@ -89,7 +89,6 @@ const HireMeModal = ({ onClose, onRequest }) => {
8989
bg-indigo-500
9090
hover:bg-indigo-600
9191
rounded-md
92-
sm:rounded-lg
9392
focus:ring-1 focus:ring-indigo-900"
9493
aria-label="Submit Request"
9594
>
@@ -108,7 +107,6 @@ const HireMeModal = ({ onClose, onRequest }) => {
108107
bg-indigo-400
109108
hover:bg-indigo-500
110109
rounded-md
111-
sm:rounded-lg
112110
font-normal
113111
sm:font-bold
114112
text-primary-light

src/components/ProjectGallery.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ const ProjectGallery = () => {
88
<div className="mb-10 sm:mb-0" key={project.id}>
99
<img
1010
src={project.img}
11-
className="rounded-2xl cursor-pointer shadow-lg sm:shadow-none"
11+
className="rounded-xl cursor-pointer shadow-lg sm:shadow-none"
1212
alt={project.title}
1313
key={project.id}
1414
/>

src/components/ProjectHeader.js

+3-8
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { FiClock, FiTag } from 'react-icons/fi';
12
import { ProjectHeader } from '../utils/SingleProjectData';
23

34
const ProjectSingleHeader = () => {
@@ -8,19 +9,13 @@ const ProjectSingleHeader = () => {
89
</p>
910
<div className="flex">
1011
<div className="flex items-center mr-10">
11-
<i
12-
data-feather="clock"
13-
className="w-4 h-4 text-ternary-dark dark:text-ternary-light"
14-
></i>
12+
<FiClock className="text-xl text-ternary-dark dark:text-ternary-light" />
1513
<span className="ml-2 leading-none text-primary-dark dark:text-primary-light">
1614
{ProjectHeader.publishDate}
1715
</span>
1816
</div>
1917
<div className="flex items-center">
20-
<i
21-
data-feather="tag"
22-
className="w-4 h-4 text-ternary-dark dark:text-ternary-light"
23-
></i>
18+
<FiTag className="w-4 h-4 text-ternary-dark dark:text-ternary-light" />
2419
<span className="ml-2 leading-none text-primary-dark dark:text-primary-light">
2520
{ProjectHeader.tags}
2621
</span>

src/components/ProjectInfo.js

+7-4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { Link } from 'react-router-dom';
12
import { ProjectInfo as ProjectsData } from '../utils/SingleProjectData';
23

34
const ProjectInfo = () => {
@@ -66,15 +67,17 @@ const ProjectInfo = () => {
6667
<div className="flex items-center gap-3 mt-5">
6768
{ProjectsData.SocialSharing.map((social) => {
6869
return (
69-
<a
70+
<Link
7071
key={social.id}
71-
href={social.url}
72+
to={social.url}
7273
target="__blank"
7374
aria-label="Share Project"
7475
className="bg-ternary-light dark:bg-ternary-dark text-gray-400 hover:text-primary-dark dark:hover:text-primary-light p-2 rounded-lg shadow-sm"
7576
>
76-
{social.icon}
77-
</a>
77+
<span className="text-lg lg:text-2xl">
78+
{social.icon}
79+
</span>
80+
</Link>
7881
);
7982
})}
8083
</div>

src/components/ProjectRelatedProjects.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ const ProjectRelatedProjects = () => {
1212
return (
1313
<img
1414
src={project.img}
15-
className="rounded-2xl cursor-pointer"
15+
className="rounded-xl cursor-pointer"
1616
alt={project.title}
1717
key={project.id}
1818
/>

src/components/ProjectSingle.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@ const ProjectSingle = ({ title, category, image }) => {
44
return (
55
<Link
66
to="/projects/single-project"
7-
className="rounded-3xl shadow-lg hover:shadow-xl cursor-pointer mb-10 sm:mb-0 bg-secondary-light dark:bg-ternary-dark"
7+
className="rounded-xl shadow-lg hover:shadow-xl cursor-pointer mb-10 sm:mb-0 bg-secondary-light dark:bg-ternary-dark"
88
aria-label="Single Project"
99
>
1010
<div>
1111
<img
1212
src={image}
13-
className="rounded-t-3xl border-none"
13+
className="rounded-t-xl border-none"
1414
alt="Single Project"
1515
/>
1616
</div>

src/components/ProjectsGrid.js

+4-3
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,10 @@ const ProjectsGrid = () => {
1111
<p className="text-2xl sm:text-5xl font-semibold mb-3 text-ternary-dark dark:text-ternary-light">
1212
Projects portfolio
1313
</p>
14-
<p className="text-md sm:text-xl text-gray-500 dark:text-ternary-light">
14+
{/* Note: This description is commented, but if you want to have it, just uncomment it */}
15+
{/* <p className="text-md sm:text-xl text-gray-500 dark:text-ternary-light">
1516
Some of my projects are listed below
16-
</p>
17+
</p> */}
1718
</div>
1819
{/* Projects grid title end */}
1920

@@ -90,7 +91,7 @@ const ProjectsGrid = () => {
9091
{/* Filter and search projects end */}
9192

9293
{/* Projects grid start */}
93-
<div className="grid grid-cols-1 sm:grid-cols-3 mt-6 sm:gap-10">
94+
<div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 mt-6 sm:gap-10">
9495
{/* <ProjectSingle
9596
v-for="project in filteredProjects"
9697
:key="project.id"

0 commit comments

Comments
 (0)