Skip to content

Minimal Notch

A quiet feedback card with a side vote column. A notch bar next to the score lights up to show the current vote.

Preview

Add keyboard shortcuts for common actions

Planned
UXFeature
7 comments3 days ago

Installation

npx shadcn add https://www.reflet.app/r/feedback-minimal-notch.json

Usage

import {
  MinimalNotch,
  MinimalNotchCard,
  MinimalNotchMeta,
  MinimalNotchStatus,
  MinimalNotchTag,
  MinimalNotchTags,
  MinimalNotchTitle,
  MinimalNotchVote,
} from "@/components/ui/feedback-minimal-notch";
<MinimalNotch defaultUpvotes={24} defaultDownvotes={3}>
  <MinimalNotchCard>
    <MinimalNotchTitle>
      Add keyboard shortcuts for common actions
    </MinimalNotchTitle>
    <MinimalNotchStatus color="blue">Planned</MinimalNotchStatus>
    <MinimalNotchTags>
      <MinimalNotchTag color="purple">UX</MinimalNotchTag>
      <MinimalNotchTag color="green">Feature</MinimalNotchTag>
    </MinimalNotchTags>
    <MinimalNotchMeta comments={7} time="3 days ago" />
  </MinimalNotchCard>
  <MinimalNotchVote />
</MinimalNotch>

Features

  • Side vote column with up and down buttons, each showing its own count.
  • A notch bar lights up in the primary color on upvote and the destructive color on downvote.
  • Status and tag pills share one color scale built on the --tag-* tokens.
  • Works uncontrolled out of the box, or controlled from your own vote state.

API reference

MinimalNotch

Root. Holds vote state and shares it with the vote column through React context.

MinimalNotchCard

Card body with border, hover shadow and inner spacing.

MinimalNotchTitle

Title, rendered as an h3.

MinimalNotchStatus

A colored status pill.

MinimalNotchTags

Wrapping row for tags.

MinimalNotchTag

A colored tag pill.

MinimalNotchMeta

Row with comment count and relative time.

MinimalNotchVote

Vote column with the notch bar and up and down buttons. Reads vote state from context.

Every subcomponent also accepts className, merged with its default classes.