@jet-w/astro-blog.component.product-card
A reusable product card Vue component designed for @jet-w/astro-blog. Display products, projects, or any card-based content with search, price filtering, and responsive grid layout.
Tech Stack
Framework
Language
Build
Features
Text Search
Filter cards by title, description, tags, status, and price
Price Filtering
Set min/max price range to narrow down results
Responsive Grid
Configurable 2, 3, or 4 column layouts with mobile support
Status Badges
Color-coded status indicators: active, completed, wip, archived
What is Product Card?
@jet-w/astro-blog.component.product-card is a Vue 3 component set that provides an interactive product/project showcase within Astro-based blogs and documentation sites.
It is designed for scenarios where you need to present a collection of items — such as products, tools, projects, or resources — with rich card-based layouts and filtering controls.
Key Capabilities
- Text Search — Filter cards by matching across title, description, tags, link, status, and price fields.
- Price Range Filter — Set minimum and/or maximum price to narrow down results. Supports
Freeas a price value. - Status Badges — Color-coded badges for
active,completed,wip,archived, or custom statuses. - Colored Tags — Tags displayed as rounded badges with automatically cycling theme colors.
- Cover Images — Optional 16 cover images with hover zoom effect.
- Clickable Cards — Cards with a
linkprop become clickable and open in a new tab. - Description Tooltip — Long descriptions truncated to 2 lines with full text revealed on hover.
- Dark Mode — Full dark mode support, adapting automatically to the parent page theme.
- Responsive Grid — 1 column on mobile, 2 on tablet, and 2/3/4 on desktop.
Quick Start
Install the package:
npm install @jet-w/astro-blog.component.product-cardUse the component in an Astro MDX page:
import ProductCardGrid from '@jet-w/astro-blog.component.product-card/components/ProductCardGrid.vue';
export const cards = [
{
title: 'Mechanical Keyboard',
description: 'A premium 75% mechanical keyboard with hot-swappable switches.',
image: '/images/keyboard.jpg',
price: '$129.99',
tags: ['Electronics', 'Peripherals'],
link: 'https://example.com/keyboard',
status: 'active',
},
{
title: 'Open Source Toolkit',
description: 'A curated collection of open-source developer tools.',
tags: ['Software', 'Open Source'],
price: 'Free',
status: 'active',
},
];
<ProductCardGrid client:load cards={cards} columns={3} />