1
1
import clsx from 'clsx'
2
2
import { TabBar } from '@/components/TabBar'
3
3
4
- export function Frame ( { className = '' , children } ) {
4
+ const frameColors = {
5
+ sky : 'from-sky-500 to-cyan-300' ,
6
+ indigo : 'from-indigo-500 to-blue-400' ,
7
+ pink : 'from-pink-500 to-fuchsia-400' ,
8
+ fuchsia : 'from-fuchsia-500 to-purple-400' ,
9
+ purple : 'from-violet-500 to-purple-500' ,
10
+ }
11
+
12
+ export function Frame ( { className, color = 'sky' , children } ) {
5
13
return (
6
14
< div
7
- className = { `${ className } relative isolate bg-sky-400 pt-12 pl-12 rounded-2xl overflow-hidden` }
15
+ className = { clsx (
16
+ className ,
17
+ frameColors [ color ] ,
18
+ 'relative -mx-4 pt-6 pl-4 bg-gradient-to-b sm:mx-0 sm:rounded-2xl sm:pt-12 sm:pl-12'
19
+ ) }
8
20
>
9
- < div
10
- className = "absolute -inset-y-px -left-3 -z-10 w-full origin-bottom-left skew-x-[-30deg] bg-sky-100 opacity-20 ring-1 ring-inset ring-white"
11
- aria-hidden = "true"
12
- />
13
-
14
- < div className = "rounded-tl-xl overflow-hidden" > { children } </ div >
15
-
16
- < div
17
- className = "pointer-events-none absolute inset-0 ring-1 ring-inset ring-black/10 rounded-2xl dark:ring-1 dark:ring-white/10 dark:ring-inset"
18
- aria-hidden = "true"
19
- />
21
+ < div className = "rounded-tl-xl overflow-hidden sm:rounded-br-xl" > { children } </ div >
20
22
</ div >
21
23
)
22
24
}
@@ -43,12 +45,12 @@ export function EditorPane({ filename, scroll = false, children }) {
43
45
)
44
46
}
45
47
46
- export function Editor ( { filename, scroll = false , style = 'plain' , children } ) {
48
+ export function Editor ( { filename, scroll = false , style = 'plain' , color , children } ) {
47
49
let passthrough = { scroll }
48
50
49
51
if ( style === 'framed' ) {
50
52
return (
51
- < Frame className = "mt-5 mb-8 first:mt-0 last:mb-0" >
53
+ < Frame className = "mt-5 mb-8 first:mt-0 last:mb-0" color = { color } >
52
54
< EditorPane { ...passthrough } filename = { filename } >
53
55
{ children }
54
56
</ EditorPane >
0 commit comments