-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathhome-renderers.tsx
135 lines (132 loc) · 3.7 KB
/
home-renderers.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
import Image from 'next/image';
import Link from 'next/link';
import type { DocsVersion } from '@repo/utils';
interface HomeRenderersProps {
activeVersion: DocsVersion;
}
export function HomeRenderers({ activeVersion }: HomeRenderersProps) {
return (
<div className="mb-6 grid grid-cols-1 gap-4 sm:grid-cols-2 xl:grid-cols-3">
<Card
href="/docs/get-started/frameworks/nextjs/?renderer=react"
logo="logo-nextjs.svg"
title="Next.js"
/>
<Card
href="/docs/get-started/frameworks/react-vite/?renderer=react"
logo="logo-react.svg"
subtitle="with Vite"
title="React"
/>
<Card
href="/docs/get-started/frameworks/react-webpack5/?renderer=react"
logo="logo-react.svg"
subtitle="with Webpack"
title="React"
/>
{Number(activeVersion.id) >= 8.5 ? (
<Card
href="/docs/get-started/frameworks/react-native-web-vite/?renderer=react-native-web"
logo="logo-react.svg"
subtitle="with Vite (in browser)"
title="React Native Web"
/>
) : null}
<Card
href="https://github.com/storybookjs/react-native"
logo="logo-react.svg"
title="React Native"
subtitle="on device"
/>
<Card
href="/docs/get-started/frameworks/preact-vite?renderer=preact"
logo="logo-preact.svg"
subtitle="with Vite"
title="Preact"
/>
<Card
href="/docs/get-started/frameworks/vue3-vite/?renderer=vue"
logo="logo-vue.svg"
subtitle="with Vite"
title="Vue"
/>
<Card
href="/docs/get-started/frameworks/vue3-webpack5/?renderer=vue"
logo="logo-vue.svg"
subtitle="with Webpack"
title="Vue"
/>
<Card
href="/docs/get-started/frameworks/angular/?renderer=angular"
logo="logo-angular.svg"
title="Angular"
/>
<Card
href="/docs/get-started/frameworks/sveltekit/?renderer=svelte"
logo="logo-svelte.svg"
title="SvelteKit"
/>
<Card
href="/docs/get-started/frameworks/svelte-vite/?renderer=svelte"
logo="logo-svelte.svg"
subtitle="with Vite"
title="Svelte"
/>
<Card
href="/docs/get-started/frameworks/svelte-webpack5/?renderer=svelte"
logo="logo-svelte.svg"
subtitle="with Webpack"
title="Svelte"
/>
<Card
href="/docs/get-started/frameworks/web-components-vite/?renderer=web-components"
logo="logo-web-components.svg"
subtitle="with Vite"
title="Web Components"
/>
<Card
href="/docs/get-started/frameworks/web-components-webpack5/?renderer=web-components"
logo="logo-web-components.svg"
subtitle="with Webpack"
title="Web Components"
/>
</div>
);
}
function Card({
href,
logo,
title,
subtitle,
}: {
href: string;
logo: string;
title: string;
subtitle?: string;
}) {
return (
<Link
className="flex h-20 items-center gap-3 rounded-md border border-slate-200 pl-5 transition-all hover:-translate-y-px hover:border-slate-300 dark:border-slate-700 dark:hover:border-slate-600"
href={href}
>
<Image
alt=""
height="28"
src={`/images/logos/renderers/${logo}`}
width="28"
/>
{subtitle ? (
<div>
<p className="text-md font-bold text-black dark:text-white">
{title}
</p>
<p className="text-sm text-slate-600 dark:text-slate-400">
{subtitle}
</p>
</div>
) : (
<p className="text-md font-bold text-black dark:text-white">{title}</p>
)}
</Link>
);
}