{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "glass",
  "title": "Glass",
  "description": "Glassmorphism class-string utilities and the glass surface CSS.",
  "files": [
    {
      "path": "registry/glasswave/lib/glass.ts",
      "content": "export const glassBase =\n  \"backdrop-blur-2xl backdrop-saturate-150 bg-gradient-to-br from-white/[0.10] via-white/[0.06] to-white/[0.02] dark:from-white/[0.14] dark:via-white/[0.09] dark:to-white/[0.04] border border-white/[0.10] dark:border-white/[0.12] shadow-[inset_0_1px_0_0_rgba(255,255,255,0.20),inset_0_0_24px_0_rgba(255,255,255,0.04),0_8px_32px_0_rgba(0,0,0,0.12)] dark:shadow-[inset_0_1px_0_0_rgba(255,255,255,0.15),inset_0_0_24px_0_rgba(255,255,255,0.03),0_8px_32px_0_rgba(0,0,0,0.35)]\";\n\nexport const glassInteractive =\n  \"transition duration-300 ease-out hover:from-white/[0.15] hover:via-white/[0.10] hover:to-white/[0.05] dark:hover:from-white/[0.20] dark:hover:via-white/[0.14] dark:hover:to-white/[0.08] hover:border-white/[0.18] dark:hover:border-white/[0.22] hover:shadow-[inset_0_1px_0_0_rgba(255,255,255,0.30),inset_0_0_32px_0_rgba(255,255,255,0.06),0_12px_40px_0_rgba(0,0,0,0.16)] dark:hover:shadow-[inset_0_1px_0_0_rgba(255,255,255,0.25),inset_0_0_32px_0_rgba(255,255,255,0.05),0_12px_40px_0_rgba(0,0,0,0.45)] hover:scale-[1.01] active:scale-[0.99] disabled:opacity-40 disabled:cursor-not-allowed disabled:hover:scale-100\";\n\nexport const rounded = \"rounded-[32px]\";\n\nexport const textOnGlass = \"text-gray-900/90 dark:text-white/95 font-medium\";\n\nexport const focusRing =\n  \"focus:outline-none focus-visible:ring-[3px] focus-visible:ring-blue-500/40 dark:focus-visible:ring-blue-400/50 focus-visible:ring-offset-2 focus-visible:ring-offset-transparent\";\n\n// Gradient 1px edge (lit from the top) — defined in packages/index.css\nexport const glassEdge = \"glass-edge\";\n\n// Subtle film grain over the surface — defined in packages/index.css\nexport const glassNoise = \"glass-noise\";\n\nexport const glass = `${glassBase} ${glassEdge} ${glassNoise} ${rounded} ${textOnGlass} relative overflow-hidden`;\n",
      "type": "registry:lib"
    }
  ],
  "css": {
    "@layer components": {
      ".glass-edge::before": {
        "content": "\"\"",
        "position": "absolute",
        "inset": "0",
        "border-radius": "inherit",
        "padding": "1px",
        "background": "linear-gradient(to bottom, rgb(255 255 255 / 0.35), rgb(255 255 255 / 0.12) 40%, rgb(255 255 255 / 0.05))",
        "-webkit-mask": "linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)",
        "mask": "linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)",
        "-webkit-mask-composite": "xor",
        "mask-composite": "exclude",
        "pointer-events": "none"
      },
      ".glass-noise::after": {
        "content": "\"\"",
        "position": "absolute",
        "inset": "0",
        "border-radius": "inherit",
        "background-image": "url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E\")",
        "background-size": "160px 160px",
        "opacity": "0.035",
        "pointer-events": "none"
      }
    }
  },
  "type": "registry:lib"
}
