Loading...
Loading...
> Syntax-highlighted code display with copy-to-clipboard functionality powered by Prism.
1import { CodeBlock } from "@/components/ui/code-block"
1function greet(name: string): string {2 return `Hello, ${name}!`;3}45const message = greet("World");6console.log(message);
1const code = `function greet(name: string): string {2 return \`Hello, \${name}!\`;3}`;45<CodeBlock code={code} language="typescript" />
1const calculateTotal = (items) => {2 return items.reduce((sum, item) => sum + item.price, 0);3};
1<CodeBlock2 code={jsCode}3 language="javascript"4/>
1def factorial(n):2 if n <= 1:3 return 14 return n * factorial(n - 1)56print(factorial(5))
1<CodeBlock2 code={pythonCode}3 language="python"4/>
1$npm install @/components/ui2$npm run dev
1<CodeBlock2 code={bashCode}3 language="bash"4/>
1{2 "name": "my-app",3 "version": "1.0.0",4 "dependencies": {5 "react": "^18.0.0",6 "next": "^14.0.0"7 }8}
1<CodeBlock2 code={jsonCode}3 language="json"4/>
1.button {2 background: var(--primary);3 color: var(--primary-foreground);4 border-radius: 0.375rem;5 padding: 0.5rem 1rem;6}
1<CodeBlock2 code={cssCode}3 language="css"4/>
1function greet(name: string): string {2 return `Hello, ${name}!`;3}45const message = greet("World");6console.log(message);
1// Copy button appears on hover automatically2<CodeBlock code={code} language="typescript" />
1import React, { useState, useEffect } from 'react';2import { Button } from '@/components/ui/button';3import { Input } from '@/components/ui/input';45export function TodoList() {6 const [todos, setTodos] = useState([]);7 const [input, setInput] = useState('');89 const addTodo = () => {10 if (input.trim()) {11 setTodos([...todos, { id: Date.now(), text: input }]);12 setInput('');13 }14 };1516 return (17 <div className="space-y-4">18 <div className="flex gap-2">19 <Input20 value={input}21 onChange={(e) => setInput(e.target.value)}22 onKeyDown={(e) => e.key === 'Enter' && addTodo()}23 />24 <Button onClick={addTodo}>> ADD</Button>25 </div>26 <ul>27 {todos.map((todo) => (28 <li key={todo.id}>{todo.text}</li>29 ))}30 </ul>31 </div>32 );33}
1// Automatically scrollable for overflow2<CodeBlock code={longCode} language="typescript" />
| Prop | Type | Default | Description |
|---|---|---|---|
| code | string | - | The code string to display |
| language | string | "typescript" | Programming language for syntax highlighting (typescript, javascript, python, bash, json, css, etc.) |