From d341c73210ac3b2fd265c37993f83617a8a8d0b8 Mon Sep 17 00:00:00 2001 From: Utkarsh-Singhal-26 Date: Wed, 13 Aug 2025 23:59:16 +0530 Subject: [PATCH] Added Component --- src/constants/Categories.ts | 3 +- src/constants/Components.ts | 1 + src/constants/code/Components/pillNavCode.ts | 30 ++ src/content/Components/PillNav/PillNav.vue | 416 +++++++++++++++++++ src/css/category.css | 25 ++ src/demo/Components/PillNavDemo.vue | 193 +++++++++ 6 files changed, 667 insertions(+), 1 deletion(-) create mode 100644 src/constants/code/Components/pillNavCode.ts create mode 100644 src/content/Components/PillNav/PillNav.vue create mode 100644 src/demo/Components/PillNavDemo.vue diff --git a/src/constants/Categories.ts b/src/constants/Categories.ts index da4347c..4f0c6e2 100644 --- a/src/constants/Categories.ts +++ b/src/constants/Categories.ts @@ -1,5 +1,5 @@ // Highlighted sidebar items -export const NEW = ['Target Cursor', 'Ripple Grid', 'Magic Bento', 'Galaxy', 'Text Type', 'Glass Surface', 'Sticker Peel', 'Scroll Stack', 'Faulty Terminal']; +export const NEW = ['Target Cursor', 'Ripple Grid', 'Magic Bento', 'Galaxy', 'Text Type', 'Glass Surface', 'Sticker Peel', 'Scroll Stack', 'Faulty Terminal', 'Pill Nav']; export const UPDATED = []; // Used for main sidebar navigation @@ -66,6 +66,7 @@ export const CATEGORIES = [ 'Magic Bento', 'Scroll Stack', 'Profile Card', + 'Pill Nav', 'Dock', 'Gooey Nav', 'Pixel Card', diff --git a/src/constants/Components.ts b/src/constants/Components.ts index bf8b87e..07fe279 100644 --- a/src/constants/Components.ts +++ b/src/constants/Components.ts @@ -54,6 +54,7 @@ const components = { 'magic-bento': () => import('../demo/Components/MagicBentoDemo.vue'), 'profile-card': () => import('../demo/Components/ProfileCardDemo.vue'), 'dock': () => import('../demo/Components/DockDemo.vue'), + 'pill-nav': () => import('../demo/Components/PillNavDemo.vue'), 'gooey-nav': () => import('../demo/Components/GooeyNavDemo.vue'), 'pixel-card': () => import('../demo/Components/PixelCardDemo.vue'), 'carousel': () => import('../demo/Components/CarouselDemo.vue'), diff --git a/src/constants/code/Components/pillNavCode.ts b/src/constants/code/Components/pillNavCode.ts new file mode 100644 index 0000000..e57c8b3 --- /dev/null +++ b/src/constants/code/Components/pillNavCode.ts @@ -0,0 +1,30 @@ +import code from '@content/Components/PillNav/PillNav.vue?raw'; +import { createCodeObject } from '../../../types/code'; + +export const pillNav = createCodeObject(code, 'Components/PillNav', { + installation: `npm install gsap`, + usage: ` + +` +}); diff --git a/src/content/Components/PillNav/PillNav.vue b/src/content/Components/PillNav/PillNav.vue new file mode 100644 index 0000000..c79d699 --- /dev/null +++ b/src/content/Components/PillNav/PillNav.vue @@ -0,0 +1,416 @@ + + + diff --git a/src/css/category.css b/src/css/category.css index f9267e8..31fb952 100644 --- a/src/css/category.css +++ b/src/css/category.css @@ -106,6 +106,31 @@ color: #e5e7eb; } +.demo-container-dots { + position: relative; +} + +.demo-container-dots::before { + content: ''; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-image: radial-gradient(circle, #165f2b 1px, transparent 1px); + background-size: 20px 20px; + pointer-events: none; + z-index: 0; + mask: + linear-gradient(to right, transparent 0%, black 35%, black 55%, transparent 100%), + linear-gradient(to bottom, transparent 0%, black 35%, black 55%, transparent 100%); + mask-composite: intersect; + -webkit-mask: + linear-gradient(to right, transparent 0%, black 35%, black 55%, transparent 100%), + linear-gradient(to bottom, transparent 0%, black 35%, black 55%, transparent 100%); + -webkit-mask-composite: source-in; +} + div:has(> .props-table) { border: 1px solid #333; border-radius: 20px; diff --git a/src/demo/Components/PillNavDemo.vue b/src/demo/Components/PillNavDemo.vue new file mode 100644 index 0000000..5d0767d --- /dev/null +++ b/src/demo/Components/PillNavDemo.vue @@ -0,0 +1,193 @@ + + +