Componenteditors0.72 KB gzipZero dependencies
Docs StackBlitz Button
Open stub example live.
Preview
Live Preview
Try button live
Installation
Tokens guide →Add to your project via CLI (zero dependencies, code you own):
npx bigbullui add docs-stackblitz-buttonOr install the full npm package:
npm install bigbulluiUsage
Open in StackBlitzimport { DocsStackBlitzButton } from "@/components/ui/docs-stackblitz-button";
<DocsStackBlitzButton />Usage guidance
Use Docs StackBlitz Button when a ticket stub surface needs Open stub example live. Keep props minimal and prefer composition with sibling stubs.
Avoid Docs StackBlitz Button for long form flows or dense data grids where a dedicated layout block fits better.
Source code
docs-stackblitz-button.tsxZero dependencies (only React + utils). Copy and paste directly into your project:
"use client";
import * as React from "react";
import { cn } from "./lib/utils";
export interface DocsStackblitzButtonProps extends React.HTMLAttributes<HTMLDivElement> {
componentName?: string;
files?: Record<string, string>;
}
/** Docs button opening the stub example in StackBlitz. */
export function DocsStackblitzButton({ componentName = "button", files, className, ...props }: DocsStackblitzButtonProps) {
const open = () => {
const code = files?.["App.tsx"] ?? `import { Button } from "./${componentName}";\n\nexport default function App() {\n return <Button>Admit one</Button>;\n}`;
const params = new URLSearchParams({ "file": "App.tsx", "code": code });
window.open(`https://stackblitz.com/fork/react?${params.toString()}`, "_blank", "noopener");
};
return (
<div className={cn("flex items-center gap-2", className)} {...props}>
<button
type="button"
onClick={open}
className="rounded-md border-2 border-foreground bg-accent px-3 py-1.5 font-mono text-[11px] font-bold uppercase text-accent-foreground shadow-md transition-transform hover:-translate-y-px active:scale-95 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"
>
Open in StackBlitz
</button>
<span className="font-mono text-[10px] uppercase text-muted-foreground">Try {componentName} live</span>
</div>
);
}