diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index 6db2babc..00000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,20 +0,0 @@ -# Contributing - -Thank you for considering to contribute to `react-tailwindcss-portfolio` 💖 - -Please note that this project is released with a [Code of Conduct](https://github.com/realstoman/react-tailwindcss-portfolio/blob/main/CODE_OF_CONDUCT.md). By participating you agree to abide by its terms. - -## Setup - -### Fork this repo - -[https://github.com/realstoman/react-tailwindcss-portfolio](https://github.com/realstoman/react-tailwindcss-portfolio) - -### Check the issues section if there are already issues and see if you can fix them - - -[https://github.com/realstoman/react-tailwindcss-portfolio/issues](https://github.com/realstoman/react-tailwindcss-portfolio/issues) - -### If the issue is new, add the code to the fork of the repository and then create a pull request - -### Add Feat or Fix to the pull request title so maintainer understand what this issue is diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 63dd97a6..00000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security Policy - -## Reporting a Vulnerability - -Please report security issues to `realstoman@gmail.com` diff --git a/package.json b/package.json index e1a6fc14..e6cf9826 100644 --- a/package.json +++ b/package.json @@ -1,4 +1,5 @@ { + "homepage": "https://fahri-ts.github.io/react-tailwindcss-portfolio", "name": "react-tailwindcss-portfolio", "version": "0.1.0", "private": true, @@ -20,6 +21,8 @@ }, "scripts": { "start": "react-scripts --openssl-legacy-provider start", + "predeploy": "npm run build", + "deploy": "gh-pages -d build", "build": "yarn run react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject", @@ -47,6 +50,7 @@ "@tailwindcss/forms": "^0.5.2", "@testing-library/dom": "^8.20.0", "autoprefixer": "^10.4.7", + "gh-pages": "^6.0.0", "postcss": "^8.4.21", "tailwindcss": "^3.0.24" } diff --git a/public/favicon.png b/public/favicon.png index 03d88ec1..ce081bc0 100644 Binary files a/public/favicon.png and b/public/favicon.png differ diff --git a/public/files/Stoman-Resume.pdf b/public/files/Stoman-Resume.pdf deleted file mode 100644 index c09d0fe6..00000000 Binary files a/public/files/Stoman-Resume.pdf and /dev/null differ diff --git a/public/files/TrySFahri-Resume.pdf b/public/files/TrySFahri-Resume.pdf new file mode 100644 index 00000000..aeaf8935 Binary files /dev/null and b/public/files/TrySFahri-Resume.pdf differ diff --git a/public/index.html b/public/index.html index bbf198b3..96b29301 100644 --- a/public/index.html +++ b/public/index.html @@ -24,7 +24,7 @@ work correctly both with client-side routing and a non-root public URL. Learn how to configure a non-root public URL by running `npm run build`. --> - Stoman + TSFahri diff --git a/src/__tests__/Banner.test.js b/src/__tests__/Banner.test.js index ad6c8777..3fe51c57 100644 --- a/src/__tests__/Banner.test.js +++ b/src/__tests__/Banner.test.js @@ -16,7 +16,7 @@ function setupUserEvent(jsx) { test('it shows the title in the banner', () => { setup(); // We expect that the title 'Hi, Iam Stoman' is in the banner component - expect(screen.getByText(/Hi, Iam Stoman/i)).toBeInTheDocument(); + expect(screen.getByText(/Hi, Iam TS.Fahri/i)).toBeInTheDocument(); }); test('can download cv when clicked on download cv button', async () => { diff --git a/src/components/HireMeModal.jsx b/src/components/HireMeModal.jsx index c96212a1..adededa1 100644 --- a/src/components/HireMeModal.jsx +++ b/src/components/HireMeModal.jsx @@ -71,6 +71,7 @@ const HireMeModal = ({ onClose, onRequest }) => { name="subject" type="text" required="" + placeholder="Project Category" aria-label="Project Category" > {selectOptions.map((option) => ( diff --git a/src/components/about/AboutCounter.jsx b/src/components/about/AboutCounter.jsx index 4bc8e5d3..0401a18c 100644 --- a/src/components/about/AboutCounter.jsx +++ b/src/components/about/AboutCounter.jsx @@ -5,7 +5,7 @@ const AboutCounter = () => { useCountUp({ ref: 'experienceCounter', end: 12, duration: 2 }); useCountUp({ ref: 'githubStarsCounter', end: 20, duration: 2 }); useCountUp({ ref: 'feedbackCounter', end: 92, duration: 2 }); - useCountUp({ ref: 'projectsCounter', end: 77, duration: 2 }); + useCountUp({ ref: 'projectsCounter', end: 87, duration: 2 }); return (
diff --git a/src/components/contact/ContactForm.jsx b/src/components/contact/ContactForm.jsx index 5fe9e09e..a21e1546 100644 --- a/src/components/contact/ContactForm.jsx +++ b/src/components/contact/ContactForm.jsx @@ -56,6 +56,7 @@ const ContactForm = () => { cols="14" rows="6" aria-label="Message" + placeholder="Your Message" >
diff --git a/src/components/projects/ProjectInfo.jsx b/src/components/projects/ProjectInfo.jsx index 39deb4f6..251c10f2 100644 --- a/src/components/projects/ProjectInfo.jsx +++ b/src/components/projects/ProjectInfo.jsx @@ -22,14 +22,16 @@ const ProjectInfo = () => { > {info.title}: {info.details} diff --git a/src/components/shared/AppBanner.jsx b/src/components/shared/AppBanner.jsx index aab7dca9..416170cb 100644 --- a/src/components/shared/AppBanner.jsx +++ b/src/components/shared/AppBanner.jsx @@ -23,9 +23,9 @@ const AppBanner = () => { duration: 0.9, delay: 0.1, }} - className="font-general-semibold text-2xl lg:text-3xl xl:text-4xl text-center sm:text-left text-ternary-dark dark:text-primary-light uppercase" + className="font-general-semibold text-2xl lg:text-3xl xl:text-4xl text-center sm:text-left text-ternary-dark dark:text-primary-light uppercase/" > - Hi, Iam Stoman + Hi, Iam TS.Fahri { className="flex justify-center sm:block" > diff --git a/src/components/shared/AppFooter.jsx b/src/components/shared/AppFooter.jsx index 3f473245..033fc751 100644 --- a/src/components/shared/AppFooter.jsx +++ b/src/components/shared/AppFooter.jsx @@ -11,27 +11,27 @@ const socialLinks = [ { id: 1, icon: , - url: 'https://www.stoman.me/', + url: 'https://www.fahri.ts/', }, { id: 2, icon: , - url: 'https://github.com/realstoman', + url: 'https://github.com/fahri-ts', }, { id: 3, icon: , - url: 'https://twitter.com/realstoman', + url: 'https://twitter.com/fahri', }, { id: 4, icon: , - url: 'https://www.linkedin.com/in/realstoman', + url: 'https://www.linkedin.com/in/ts-fahri', }, { id: 5, icon: , - url: 'https://www.youtube.com/c/realstoman', + url: 'https://www.youtube.com/@ts-fahri', }, ]; diff --git a/src/css/main.css b/src/css/main.css index 7224a386..dab16e40 100644 --- a/src/css/main.css +++ b/src/css/main.css @@ -504,17 +504,11 @@ Ensure the default browser behavior of the `hidden` attribute. .mt-5 { margin-top: 1.25rem; } -.mb-8 { - margin-bottom: 2rem; -} .mt-10 { margin-top: 2.5rem; } -.mb-20 { - margin-bottom: 5rem; -} -.mb-2 { - margin-bottom: 0.5rem; +.mb-8 { + margin-bottom: 2rem; } .mb-7 { margin-bottom: 1.75rem; @@ -522,6 +516,12 @@ Ensure the default browser behavior of the `hidden` attribute. .mb-4 { margin-bottom: 1rem; } +.mb-20 { + margin-bottom: 5rem; +} +.mb-2 { + margin-bottom: 0.5rem; +} .mt-12 { margin-top: 3rem; } @@ -919,14 +919,14 @@ Ensure the default browser behavior of the `hidden` attribute. --tw-text-opacity: 1; color: rgb(247 248 252 / var(--tw-text-opacity)); } -.text-secondary-dark { - --tw-text-opacity: 1; - color: rgb(16 45 68 / var(--tw-text-opacity)); -} .text-ternary-dark { --tw-text-opacity: 1; color: rgb(30 56 81 / var(--tw-text-opacity)); } +.text-secondary-dark { + --tw-text-opacity: 1; + color: rgb(16 45 68 / var(--tw-text-opacity)); +} .text-gray-500 { --tw-text-opacity: 1; color: rgb(107 114 128 / var(--tw-text-opacity)); diff --git a/src/data/singleProjectData.js b/src/data/singleProjectData.js index 4e3cf530..6a1a2363 100644 --- a/src/data/singleProjectData.js +++ b/src/data/singleProjectData.js @@ -106,13 +106,13 @@ export const singleProjectData = { id: 1, name: 'Twitter', icon: , - url: 'https://twitter.com/realstoman', + url: 'https://twitter.com/', }, { id: 2, name: 'Instagram', icon: , - url: 'https://instagram.com/realstoman', + url: 'https://instagram.com/', }, { id: 3, @@ -130,7 +130,7 @@ export const singleProjectData = { id: 5, name: 'Youtube', icon: , - url: 'https://www.youtube.com/c/StomanStudio', + url: 'https://www.youtube.com/', }, ], }, diff --git a/src/images/logo-dark.svg b/src/images/logo-dark.svg index 7f186f74..7f40db59 100644 --- a/src/images/logo-dark.svg +++ b/src/images/logo-dark.svg @@ -1,41 +1,170 @@ - - - - - - - - - - - - - - + + + + +Created by potrace 1.16, written by Peter Selinger 2001-2019 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/images/logo-light.svg b/src/images/logo-light.svg index 87664bf0..7a2885ce 100644 --- a/src/images/logo-light.svg +++ b/src/images/logo-light.svg @@ -1,41 +1,87 @@ - - - - - - - - - - - - - - + + + + +Created by potrace 1.16, written by Peter Selinger 2001-2019 + + + + + + + + + + + + + + + + + + + diff --git a/src/images/profile.jpeg b/src/images/profile.jpeg index 7cbe9d36..54d13ea7 100644 Binary files a/src/images/profile.jpeg and b/src/images/profile.jpeg differ diff --git a/yarn.lock b/yarn.lock index 9454cbd7..12926d0d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2632,6 +2632,11 @@ async@^2.6.2: dependencies: lodash "^4.17.14" +async@^3.2.4: + version "3.2.4" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" + integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" @@ -3586,6 +3591,11 @@ combined-stream@^1.0.8: dependencies: delayed-stream "~1.0.0" +commander@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-11.0.0.tgz#43e19c25dbedc8256203538e8d7e9346877a6f67" + integrity sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ== + commander@^2.20.0: version "2.20.3" resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" @@ -4587,6 +4597,11 @@ elliptic@^6.5.3: minimalistic-assert "^1.0.1" minimalistic-crypto-utils "^1.0.1" +email-addresses@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/email-addresses/-/email-addresses-5.0.0.tgz#7ae9e7f58eef7d5e3e2c2c2d3ea49b78dc854fa6" + integrity sha512-4OIPYlA6JXqtVn8zpHpGiI7vE6EQOAg16aGnDMIAlZVinnoZ8208tW1hAbjWydgN/4PLTT9q+O1K6AH/vALJGw== + emittery@^0.7.1: version "0.7.2" resolved "https://registry.npmjs.org/emittery/-/emittery-0.7.2.tgz" @@ -4762,7 +4777,7 @@ escape-string-regexp@2.0.0, escape-string-regexp@^2.0.0: resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== -escape-string-regexp@^1.0.5: +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= @@ -5271,6 +5286,20 @@ file-uri-to-path@1.0.0: resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== +filename-reserved-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz#abf73dfab735d045440abfea2d91f389ebbfa229" + integrity sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ== + +filenamify@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-4.3.0.tgz#62391cb58f02b09971c9d4f9d63b3cf9aba03106" + integrity sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg== + dependencies: + filename-reserved-regex "^2.0.0" + strip-outer "^1.0.1" + trim-repeated "^1.0.0" + filesize@6.1.0: version "6.1.0" resolved "https://registry.npmjs.org/filesize/-/filesize-6.1.0.tgz" @@ -5470,6 +5499,15 @@ fs-extra@^11.0.0: jsonfile "^6.0.1" universalify "^2.0.0" +fs-extra@^11.1.1: + version "11.1.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.1.1.tgz#da69f7c39f3b002378b0954bb6ae7efdc0876e2d" + integrity sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + fs-extra@^7.0.0: version "7.0.1" resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz" @@ -5618,6 +5656,19 @@ get-value@^2.0.3, get-value@^2.0.6: resolved "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz" integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= +gh-pages@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/gh-pages/-/gh-pages-6.0.0.tgz#3bb46ea13dc7cee306662db0d3f02bf05635cdc1" + integrity sha512-FXZWJRsvP/fK2HJGY+Di6FRNHvqFF6gOIELaopDjXXgjeOYSNURcuYwEO/6bwuq6koP5Lnkvnr5GViXzuOB89g== + dependencies: + async "^3.2.4" + commander "^11.0.0" + email-addresses "^5.0.0" + filenamify "^4.3.0" + find-cache-dir "^3.3.1" + fs-extra "^11.1.1" + globby "^6.1.0" + glob-parent@^3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz" @@ -11023,6 +11074,13 @@ strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== +strip-outer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631" + integrity sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg== + dependencies: + escape-string-regexp "^1.0.2" + style-loader@1.3.0: version "1.3.0" resolved "https://registry.npmjs.org/style-loader/-/style-loader-1.3.0.tgz" @@ -11369,6 +11427,13 @@ tr46@^2.1.0: dependencies: punycode "^2.1.1" +trim-repeated@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21" + integrity sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg== + dependencies: + escape-string-regexp "^1.0.2" + tryer@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz"