Skip to content

Commit 0f68ff1

Browse files
committed
docs: Added new project attributes.
1 parent 33864e6 commit 0f68ff1

4 files changed

Lines changed: 55 additions & 36 deletions

File tree

src/components/Projects/ProjectCard.tsx

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,24 @@ export interface ProjectCardProps {
77
description: string;
88
tags: string[];
99
status: 'Live' | 'Beta' | 'Alpha';
10+
price?: 'Free' | 'Paid';
1011
image: string;
1112
link?: string;
1213
category?: string;
1314
}
1415

15-
export default function ProjectCard({ title, description, tags, status, image, link, category }: ProjectCardProps) {
16+
export default function ProjectCard({ title, description, tags, status, price, image, link, category }: ProjectCardProps) {
1617
const statusClass = clsx('project-status', {
1718
'status-live': status === 'Live',
1819
'status-beta': status === 'Beta',
1920
'status-alpha': status === 'Alpha',
2021
});
2122

23+
const priceClass = clsx('project-status', {
24+
'price-free': price === 'Free',
25+
'price-paid': price === 'Paid',
26+
});
27+
2228
return (
2329
<Link to={link || '#'} className="project-card-link" style={{ textDecoration: 'none', color: 'inherit' }}>
2430
<div className="project-card project-card-square">
@@ -31,6 +37,7 @@ export default function ProjectCard({ title, description, tags, status, image, l
3137
<div className="project-badges-overlay">
3238
{category && <span className="project-tag-glass">{category}</span>}
3339
<div className={statusClass}>{status}</div>
40+
{price && <div className={priceClass}>{price}</div>}
3441
</div>
3542

3643
{/* Bottom Overlay Content */}

src/css/custom.css

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -600,6 +600,8 @@ body {
600600
.status-live { background: rgba(16, 185, 129, 0.9); }
601601
.status-beta { background: rgba(245, 158, 11, 0.9); }
602602
.status-alpha { background: rgba(139, 92, 246, 0.9); }
603+
.price-free { background: rgba(56, 189, 248, 0.9); } /* Sky Blue */
604+
.price-paid { background: rgba(234, 179, 8, 0.9); } /* Yellow/Gold */
603605

604606

605607
/* Content Overlay */

src/data/projects.ts

Lines changed: 44 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ export interface Project {
33
description: string;
44
tags: string[];
55
status: 'Live' | 'Beta' | 'Alpha';
6+
price: 'Free' | 'Paid';
67
image: string;
78
link?: string;
89
category?: string; // For filtering
@@ -20,7 +21,7 @@ export interface FeaturedProjectData {
2021
export const FEATURED_PROJECT: FeaturedProjectData = {
2122
title: 'Minecraft Plugins',
2223
description: 'The best in class Minecraft plugins for a better experience.',
23-
category: 'Plugins',
24+
category: 'Minecraft',
2425
version: 'v2.0.0-beta',
2526
image: 'https://media.istockphoto.com/id/1312381221/tr/foto%C4%9Fraf/3d-%C3%B6zet-k%C3%BCpler-video-oyunu-geometrik-mozaik-dalgalar-deseni-kahverengi-ve-ye%C5%9Fil-%C3%A7im.jpg?s=2048x2048&w=is&k=20&c=qfB6DRg9tTwD00IQLssCR2Qq3hn8_sJXtWjnqzE3JOU=',
2627
link: '/docs/category/minecraft-plugins',
@@ -32,62 +33,71 @@ export const PROJECTS: Project[] = [
3233
description: 'Advanced server exploration and player retention platform.',
3334
tags: ['React', 'TypeScript', 'Next.js', 'C#.NET'],
3435
status: 'Alpha',
36+
price: 'Free',
3537
image: '/content/logo_firstspawn.png',
36-
category: 'Platforms',
38+
category: 'Web',
3739
link: '/docs/category/firstspawn',
3840
},
39-
{
40-
title: 'Discipline vs Dopamine',
41-
description: 'Habit-tracker mobile app with enhanced AI features.',
42-
tags: ['ReactNative', 'TypeScript', 'Zustand'],
43-
status: 'Alpha',
44-
image: '/content/logo_dd.png',
45-
category: 'Platforms'
46-
},
41+
// {
42+
// title: 'Discipline vs Dopamine',
43+
// description: 'Habit-tracker mobile app with enhanced AI features.',
44+
// tags: ['ReactNative', 'TypeScript', 'Zustand'],
45+
// status: 'Alpha',
46+
// price: 'Free',
47+
// image: '/content/logo_dd.png',
48+
// category: 'Mobile'
49+
// },
4750
{
4851
title: 'KuksoLib',
49-
description: 'The core plugin for Kukso Studios Minecraft plugins.',
50-
tags: ['Java', 'Spigot', 'Bukkit'],
51-
status: 'Beta',
52+
description: 'The core plugin for our Minecraft plugins.',
53+
tags: ['Java', 'Paper', 'Spigot'],
54+
status: 'Live',
55+
price: 'Free',
5256
image: '/content/logo_kuksolib.png',
53-
category: 'Plugins',
57+
category: 'Minecraft',
5458
link: '/docs/category/cublexcore',
5559
},
5660
{
5761
title: 'KuksoWorlds',
58-
description: 'A lightweight plugin for world moderation.',
59-
tags: ['Java', 'Spigot', 'Bukkit'],
60-
status: 'Beta',
62+
description: 'Lightweight solution for world moderation.',
63+
tags: ['Java', 'Paper', 'Spigot'],
64+
status: 'Live',
65+
price: 'Free',
6166
image: '/content/logo_kuksoworlds.png',
62-
category: 'Plugins',
63-
link: '/docs/category/cubworlds',
67+
category: 'Minecraft',
68+
// link: '/docs/category/cubworlds',
69+
link: 'https://www.spigotmc.org/resources/126015/',
6470
},
6571
{
6672
title: 'KuksoDialogs',
67-
description: 'A plugin for dialog moderation.',
68-
tags: ['Java', 'Spigot', 'Bukkit'],
69-
status: 'Beta',
73+
description: 'A plugin utilizing Paper 1.21.6 API for dialog moderation.',
74+
tags: ['Java', 'Paper', 'Spigot'],
75+
status: 'Live',
76+
price: 'Free',
7077
image: '/content/logo_kuksodialogs.png',
71-
category: 'Plugins',
72-
link: '/docs/category/cubdialogs',
78+
category: 'Minecraft',
79+
// link: '/docs/category/cubdialogs',
80+
link: 'https://www.spigotmc.org/resources/128631/',
7381
},
7482
{
7583
title: 'KuksoItems',
76-
description: 'A plugin for item moderation.',
77-
tags: ['Java', 'Spigot', 'Bukkit'],
78-
status: 'Beta',
84+
description: 'Custom items with client-side item-name and item-lore support.',
85+
tags: ['Java', 'Paper', 'Spigot'],
86+
status: 'Alpha',
87+
price: 'Paid',
7988
image: '/content/logo_kuksoitems.png',
80-
category: 'Plugins',
81-
link: '/docs/category/cubdialogs',
89+
category: 'Minecraft',
90+
//link: '/docs/category/cubdialogs',
8291
},
8392
{
8493
title: 'KuksoDungeons',
85-
description: 'A plugin for procedural dungeon generation.',
86-
tags: ['Java', 'Spigot', 'Bukkit'],
87-
status: 'Beta',
94+
description: 'Procedural dungeon generation with unlimited capabilities.',
95+
tags: ['Java', 'Paper', 'Spigot'],
96+
status: 'Alpha',
97+
price: 'Paid',
8898
image: '/content/logo_kuksodungeons.png',
89-
category: 'Plugins',
90-
link: '/docs/category/cubdialogs',
99+
category: 'Minecraft',
100+
//link: '/docs/category/cubdialogs',
91101
},
92102
// {
93103
// title: 'Luminal Call',

src/pages/projects/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import FeaturedProject from '@site/src/components/Projects/FeaturedProject';
44
import ProjectCard from '@site/src/components/Projects/ProjectCard';
55
import { PROJECTS, FEATURED_PROJECT } from '@site/src/data/projects';
66

7-
const FILTERS = ['All', 'Platforms', 'Plugins']; // 'Games', 'Utilities'
7+
const FILTERS = ['All', 'Web', 'Mobile', 'Minecraft']; // 'Games', 'Utilities'
88

99
export default function Projects() {
1010
const [activeFilter, setActiveFilter] = useState('All');

0 commit comments

Comments
 (0)