|
1 | 1 | import clsx from 'clsx'
|
2 | 2 |
|
3 |
| -export function CodeSample({ preview, snippet, previewClassName }) { |
| 3 | +const codeBackground = { |
| 4 | + rose: 'bg-rose-400', |
| 5 | + emerald: 'bg-emerald-500', |
| 6 | + indigo: 'bg-indigo-400', |
| 7 | + fuchsia: 'bg-fuchsia-400', |
| 8 | +} |
| 9 | + |
| 10 | +const previewBackground = { |
| 11 | + gray: 'bg-gradient-to-r from-gray-50 to-gray-100', |
| 12 | + rose: 'bg-gradient-to-r from-rose-50 to-rose-100', |
| 13 | + emerald: 'bg-gradient-to-r from-emerald-50 to-teal-100', |
| 14 | + indigo: 'bg-gradient-to-r from-indigo-50 to-indigo-100', |
| 15 | + fuchsia: 'bg-gradient-to-r from-fuchsia-50 to-fuchsia-100', |
| 16 | +} |
| 17 | + |
| 18 | +export function CodeSample({ preview, snippet, previewClassName, color = 'gray' }) { |
4 | 19 | return (
|
5 | 20 | <div className="relative overflow-hidden mb-8">
|
6 | 21 | <div
|
7 | 22 | className={clsx(
|
8 |
| - 'rounded-t-lg overflow-hidden border-t border-l border-r border-gray-400', |
| 23 | + 'rounded-t-xl overflow-hidden', |
| 24 | + previewBackground[color], |
9 | 25 | previewClassName,
|
10 | 26 | {
|
11 |
| - 'p-4': !previewClassName, |
| 27 | + 'p-10': !previewClassName, |
12 | 28 | }
|
13 | 29 | )}
|
14 | 30 | dangerouslySetInnerHTML={{ __html: preview }}
|
15 | 31 | />
|
16 |
| - <div className="rounded-b-lg bg-gray-800"> |
17 |
| - <pre className="scrollbar-none m-0 p-0 language-html"> |
18 |
| - <code |
19 |
| - className="inline-block p-4 scrolling-touch language-html" |
20 |
| - dangerouslySetInnerHTML={{ __html: snippet }} |
21 |
| - /> |
| 32 | + <div |
| 33 | + className={clsx('overflow-hidden rounded-b-xl', codeBackground[color], { |
| 34 | + 'bg-gray-800': !codeBackground[color], |
| 35 | + })} |
| 36 | + > |
| 37 | + <pre |
| 38 | + className={clsx('scrollbar-none p-6 text-sm leading-snug language-html', { |
| 39 | + 'bg-black bg-opacity-75': codeBackground[color], |
| 40 | + })} |
| 41 | + > |
| 42 | + <code className="language-html" dangerouslySetInnerHTML={{ __html: snippet }} /> |
22 | 43 | </pre>
|
23 | 44 | </div>
|
24 | 45 | </div>
|
|
0 commit comments