Skip to content

Commit 6d74625

Browse files
committed
feat: add project page
1 parent 1ee737c commit 6d74625

9 files changed

Lines changed: 23 additions & 23 deletions

File tree

.github/workflows/static.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
1-
# Workflow for building and deploying a Vite project using gh-pages
21
name: Deploy Vite project to Pages
32

43
on:
5-
# Runs on pushes targeting the default branch
64
push:
75
branches: ["main"]
86

9-
# Allows you to run this workflow manually from the Actions tab
107
workflow_dispatch:
118

129
jobs:
@@ -31,6 +28,5 @@ jobs:
3128
with:
3229
github_token: ${{ secrets.GITHUB_TOKEN }}
3330
publish_dir: ./dist
34-
# The following user name and email are only used for the commit author
3531
user_name: 'github-actions[bot]'
3632
user_email: 'github-actions[bot]@users.noreply.github.com'

src/App.jsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ function App() {
1010
<BrowserRouter>
1111
<Routes>
1212
<Route index element={<Home />} />
13+
<Route path="/project" element={<Project />} />
1314
<Route path="*" element={<NotFound />} />
1415
</Routes>
1516
</BrowserRouter>

src/components/Navbar.jsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,8 @@ import { useLocation } from "react-router-dom"
66
const navItems = [
77
{ name: "Home", href: "/" },
88
// {name: "About", href: "/#about"},
9-
{ name: "Blogs", href: "/blogs" },
10-
// {name: "Projects", href: "/#projects"},
11-
{ name: "Projects", href: "/projects" },
9+
// { name: "Blogs", href: "/blogs" },
10+
// { name: "Projects", href: "/projects" },
1211
]
1312

1413
export const Navbar = () => {

src/components/ProjectSection.jsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import { ExternalLink, Github, ArrowRight } from "lucide-react"
1+
import { ArrowRight } from "lucide-react"
22

3-
const projects = [
3+
const favProjects = [
44
{
55
id: 1,
66
title: "Telkomedika Online Reservation",
@@ -33,7 +33,7 @@ const projects = [
3333
title: "Portfolio Website",
3434
description: "Personal portfolio Website.",
3535
image: "/projects/project4.png",
36-
tags: ["React", "Vite", "TailwindCSS", "Express"],
36+
tags: ["ReactJS", "Vite", "TailwindCSS", "React Bits"],
3737
demo: "#",
3838
githubUrl: "/#hero",
3939
}
@@ -55,14 +55,14 @@ export const ProjectSection = () => {
5555
</p>
5656

5757
<div className="grid grid-cols-1 md:grid-cols-2 gap-8">
58-
{projects.map((projects, key) => (
58+
{favProjects.map((projects, key) => (
5959
<div key={key} className="group bg-card rounded-lg overflow-hidden shadow-xs card-hover gradient-border">
6060
<div className="h-48 overflow-hidden">
6161
<img src={projects.image} alt={projects.title} className="w-full h-full object-cover transition-transform duration-500 group-hover:scale-110" />
6262
</div>
6363
<div className="p-6 text-left">
6464
<div className="flex flex-wrap gap-2 mb-4">
65-
{projects.tags.map((tags, index) => {
65+
{favProjects.tags.map((tags, index) => {
6666
if (index < maxTagsCount) {
6767
return (<span key={index} className="px-2 py-1 text-xs border font-medium rounded-full bg-secondary text-secondary-foreground">
6868
{tags}

src/components/TechSection.jsx

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,18 @@ import DomeGallery from "./reactbits/DomeGallery";
33
export const TechSection = () => {
44

55
return <section id="toolkit" className="relative py-24 z-10 bg-transparent items-center justify-center overflow-hidden">
6-
{/* Decorative background glow */}
7-
<div className="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[500px] h-[500px] bg-primary/10 rounded-full blur-[100px] -z-10 pointer-events-none" />
6+
<div className="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-125 h-125 bg-primary/10 rounded-full blur-[100px] -z-10 pointer-events-none" />
87

98
<div className="container mx-auto max-w-5xl relative">
109
<h2 className="text-3xl md:text-4xl font-bold mb-6 text-left">
1110
My <span className="text-primary">Current Tech Stack</span>
1211
</h2>
1312

1413
<p className="text-left text-muted-foreground text-lg max-w-2xl mb-12 leading-relaxed">
15-
I leverage a modern and robust tech stack to build scalable, efficient, and user-friendly applications.
16-
From frontend interactivity to backend logic and database management, here are the tools I work with.
14+
This is the current tools and language that i use.
1715
</p>
1816

19-
<div className="relative w-full h-[500px] flex items-center justify-center rounded-2xl border border-white/10 bg-white/5 backdrop-blur-sm shadow-2xl overflow-hidden">
17+
<div className="relative w-full h-125 flex items-center justify-center rounded-2xl border border-white/10 bg-white/5 backdrop-blur-sm shadow-2xl overflow-hidden">
2018
<div className="absolute inset-0 pointer-events-none" />
2119
<DomeGallery
2220
fit={0.5}

src/components/reactbits/DomeGallery.jsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ const DEFAULT_IMAGES = [
77
{ Icon: <StackIcon name="python" />, alt: 'python' },
88
{ Icon: <StackIcon name="go" />, alt: 'golang' },
99
{ Icon: <StackIcon name="java" />, alt: 'java' },
10+
{ Icon: <StackIcon name="php" />, alt: 'php' },
1011
{ Icon: <StackIcon name="js" />, alt: 'javascript' },
1112
{ Icon: <StackIcon name="colab" />, alt: 'colab' },
1213
{ Icon: <StackIcon name="flask" />, alt: 'flask' },
@@ -64,7 +65,6 @@ function buildItems(pool, seg) {
6465
}
6566

6667
let { Icon, icon } = image;
67-
// Jika Icon adalah elemen React (seperti <StackIcon />), perlakukan sebagai instance (icon)
6868
if (Icon && React.isValidElement(Icon)) {
6969
icon = Icon;
7070
Icon = null;
@@ -73,8 +73,8 @@ function buildItems(pool, seg) {
7373
return {
7474
src: image.src || '',
7575
alt: image.alt || '',
76-
Icon: Icon ?? null, // component ref
77-
icon: icon ?? null, // legacy: element instance
76+
Icon: Icon ?? null,
77+
icon: icon ?? null,
7878
href: image.href ?? null,
7979
color: image.color ?? null
8080
};
@@ -885,13 +885,13 @@ export default function DomeGallery({
885885
/>
886886

887887
<div
888-
className="absolute left-0 right-0 top-0 h-[120px] z-5 pointer-events-none rotate-180"
888+
className="absolute left-0 right-0 top-0 h-30 z-5 pointer-events-none rotate-180"
889889
style={{
890890
background: `linear-gradient(to bottom, transparent, var(--overlay-blur-color, ${overlayBlurColor}))`
891891
}}
892892
/>
893893
<div
894-
className="absolute left-0 right-0 bottom-0 h-[120px] z-[5] pointer-events-none"
894+
className="absolute left-0 right-0 bottom-0 h-30 z-5 pointer-events-none"
895895
style={{
896896
background: `linear-gradient(to bottom, transparent, var(--overlay-blur-color, ${overlayBlurColor}))`
897897
}}

src/index.css

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,6 @@
150150
margin-inline: auto;
151151
padding-inline: 2rem;
152152

153-
154153
@media (width >=640px) {
155154
max-width: 640px;
156155
}

src/pages/Blog.jsx

Whitespace-only changes.

src/pages/Project.jsx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
export const Project = () => {
2+
return (
3+
<div className="min-h-screen bg-transparent text-foreground overflow-x-hidden font-roboto">
4+
5+
</div>
6+
)
7+
};

0 commit comments

Comments
 (0)