shadimage
washiveil
uiglass-alertsource: ok · hit

Glass Alert

Inline alert on glass — neutral, ruri info, korozen warning, destructive.

npx shadcn add "https://washiveil.alexchih.com/r/glass-alert.json"
free

Visual style

glass-blur

Tags auto-generated by rules on 9/24/2026 — empty means no evidence, not lack of support.

Dependencies

Bundle weight · light
class-variance-authority

Registry dependencies

https://washiveil.alexchih.com/r/theme.json

Files1 · source cached 10/15/2026, 10:16:50 AM

registry/washiveil/ui/glass-alert.tsx
import * as React from 'react'
import { cva, type VariantProps } from 'class-variance-authority'

import { cn } from '@/lib/utils'

export const glassAlertVariants = cva(
  'relative grid grid-cols-[0_1fr] items-start gap-x-3 rounded-2xl border p-4 text-sm backdrop-blur-md [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:size-4 [&>svg]:text-current has-[svg]:grid-cols-[auto_1fr] has-[svg]:pl-11',
  {
    variants: {
      variant: {
        default: 'border-glass-border bg-glass text-body',
        info: 'border-ruri/25 bg-ruri/10 text-ruri dark:border-ruri-soft/25 dark:bg-ruri-soft/10 dark:text-ruri-soft',
        warning:
          'border-korozen/25 bg-korozen/10 text-korozen dark:border-korozen-soft/25 dark:bg-korozen-soft/10 dark:text-korozen-soft',
        destructive: 'border-destructive/30 bg-destructive/10 text-destructive',
      },
    },
    defaultVariants: {
      variant: 'default',
    },
  },
)

export interface GlassAlertProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof glassAlertVariants> {}

function GlassAlert({ variant, className, ...props }: GlassAlertProps) {
  return <div role="alert" className={cn(glassAlertVariants({ variant }), className)} {...props} />
}

function GlassAlertTitle({ className, ...props }: React.HTMLAttributes<HTMLHeadingElement>) {
  return <h5 className={cn('col-start-2 font-medium leading-none tracking-tight', className)} {...props} />
}

function GlassAlertDescription({ className, ...props }: React.HTMLAttributes<HTMLParagraphElement>) {
  return <div className={cn('col-start-2 text-sm text-muted-foreground [&_p]:leading-relaxed', className)} {...props} />
}

export { GlassAlert, GlassAlertTitle, GlassAlertDescription }

More from washiveil

Browse all components in this library →