Card Notch

Card with a true transparent notched cutout where a circular element meets the card body. Uses an SVG clip-path for crisp corners. Falls back to a plain card when no notch slot is present.

Default

Notch at the bottom-right (default). Reserve clearance with body-class (e.g. pb-20).

Dark previewReplay previewOpen in new tab

Quick action

Launch the workflow with a single tap.

Usage

Import the parts you need from the component's folder.

ts
import { CardNotch } from "@/components/ui/card-notch";

Plain card (no notch)

Without a #notch slot and without the notched prop, CardNotch renders a plain rounded card.

Dark previewReplay previewOpen in new tab

Acme Inc

Plain rounded card, no notch.

Acme Inc

Plain rounded card, no notch.

Acme Inc

Plain rounded card, no notch.

Positions

Six positions: top-left/center/right and bottom-left/center/right.

Dark previewReplay previewOpen in new tab

top-left

top-center

top-right

bottom-left

bottom-center

bottom-right

Auto padding

auto-pad reserves notch clearance automatically, so you only set base padding. notch-padding tunes the breathing room.

Dark previewReplay previewOpen in new tab

notch-padding 0px

Card reserves notch space.

notch-padding 0.75rem

Card reserves notch space.

notch-padding 1.5rem

Card reserves notch space.

Custom sizes

Adjust size, gap, and radius for different looks.

Dark previewReplay previewOpen in new tab

Large

5rem notch, 4px gap

Small

2.5rem notch, 2px gap

Wide gap

12px gap, 1rem radius

Without border

Set :bordered="false" to drop the stroke. The gap is genuinely transparent, so any background shows through.

Dark previewReplay previewOpen in new tab

No border

The gap stays transparent.

No border

The gap stays transparent.

No border

The gap stays transparent.

Border width & color

Customise the stroke via border-width and border-color.

Dark previewReplay previewOpen in new tab

Thicker

border-width 2px

Destructive

border-color destructive

Combined

3px info colour

Brand card

Realistic usage: logo notch, name, category, and metadata with auto-pad.

Dark previewReplay previewOpen in new tab

Acme Inc

Marketing

Members24

Globex Corp

Engineering

Members12

Initech

Finance

Members8

Umbrella Co

Operations

Members31

API Reference

CardNotch

PropTypeDefaultDescription
position"top-left" | "top-center" | "top-right" | "bottom-left" | "bottom-center" | "bottom-right""bottom-right"Where the notch element sits.
sizestring"3.5rem"Notch diameter (any CSS length).
gapstring"8px"Transparent gap between the notch and the card edge.
radiusstring"1.5rem"Card corner radius.
borderedbooleantrueStroke the card outline.
borderColorstring"var(--color-foreground)"Border colour.
borderWidthstring"1px"Border thickness.
cardBgstring"var(--color-card)"Card fill colour for the SVG mask.
notchedbooleanfalseForce the cutout even without a #notch slot (e.g. for skeletons).
autoPadbooleanfalseReserve notch clearance automatically; no manual pb-* needed.
notchPaddingstring"0.75rem"Breathing room between the notch and the content when auto-pad is on.
bodyClassstring—Classes for the inner body div (padding, layout).
toRouteLocationRaw—Render as a NuxtLink to an internal route.
hrefstring—Render as an anchor; https URLs open in a new tab.
as"div" | "button" | "a""div"Element to render when no to/href is set.
SlotDescription
defaultCard body content.
notchContent inside the notch circle (icon, avatar, logo).