Staaarter

Rating Cards with Stars

A centered header sits above a responsive grid of review cards. Each card shows a 5-star rating row (fully and partially filled stars rounded to the nearest whole star), a short title and quote, and a review count.

By Staaarter Team
Feature
Docs
Live preview

Docs

Installation

A real shadcn registry command, not a copy-paste stand-in: it fetches this block plus its dependencies and any missing npm packages, and installs them straight into your project.

npx shadcn add https://staaarter.com/r/rating-cards-with-stars.json

Prefer not to use the CLI? Copy the source from the Code toggle above into src/components/blocks/feature/feature151.tsx instead.

Usage

The file also exports feature151Demo, the exact props behind the preview above. Spread it to get a working section in one line, then replace it with your own data.

import { Feature151, feature151Demo } from "@/components/blocks/feature/feature151";

export default function Page() {
  return <Feature151 {...feature151Demo} />;
}

Props

PropTypeDefaultDescription
eyebrowstringundefinedSmall label above the heading.
headingstringnoneSection heading.
descriptionstringundefinedSupporting copy under the heading.
reviewsFeature151Review[]noneReview cards, each with a rating, quote, and review count.
classNamestringnoneExtra classes for the outer section element.

Types

interface Feature151Review {
  title: string;
  quote: string;
  rating: number; // 0-5, may be fractional
  reviewCount: string;
}

Behavior notes

  • Fully static server component, no click or hover interaction anywhere in this block.
  • The star row is a fixed array of 5 Lucide Star icons; each star's fill/outline state is computed from Math.round(review.rating), never from a random or time-based value.
  • Fractional ratings (e.g. 4.5) are only shown in the numeric label under the stars, the star fill itself rounds to the nearest whole star.