()
| 133 | } |
| 134 | |
| 135 | export default function Home() { |
| 136 | return ( |
| 137 | <div className="min-h-screen bg-[var(--color-bg)]"> |
| 138 | <Header /> |
| 139 | |
| 140 | {/* Hero */} |
| 141 | <section className="border-b border-[var(--color-border-weak)] px-[var(--padding)] py-[var(--vertical-padding)]"> |
| 142 | <div className="mx-auto max-w-[67.5rem]"> |
| 143 | <div className="grid items-center gap-12 py-8 md:grid-cols-2 md:py-12"> |
| 144 | <div className="flex flex-col gap-6"> |
| 145 | <div className="flex items-center gap-2 text-sm text-[var(--color-text-weak)]"> |
| 146 | <span className="inline-block h-2 w-2 rounded-full bg-[var(--color-bg-interactive)]"></span> |
| 147 | Community-driven marketplace |
| 148 | </div> |
| 149 | <h1 className="text-4xl font-semibold leading-tight tracking-tight text-[var(--color-text-strong)] md:text-5xl"> |
| 150 | Grab a seat, browse some extensions |
| 151 | </h1> |
| 152 | <p className="text-lg leading-relaxed text-[var(--color-text)]"> |
| 153 | A cozy corner of the internet where developers share extensions, plugins, |
| 154 | and tools for OpenCode. Pull up a chair and explore what the community has brewed. |
| 155 | </p> |
| 156 | <div className="flex flex-col gap-4 pt-4 sm:flex-row"> |
| 157 | <a |
| 158 | href="#extensions" |
| 159 | className="inline-flex items-center justify-center rounded-lg bg-[var(--color-bg-strong)] px-6 py-3 text-sm font-medium text-[var(--color-text-inverted)] transition-all hover:bg-[var(--color-bg-strong-hover)] active:scale-[0.98]" |
| 160 | > |
| 161 | Browse the Menu |
| 162 | </a> |
| 163 | <Link |
| 164 | href="/submit" |
| 165 | className="inline-flex items-center justify-center rounded-lg border border-[var(--color-border)] px-6 py-3 text-sm font-medium text-[var(--color-text-strong)] transition-all hover:bg-[var(--color-bg-weak)] active:scale-[0.98]" |
| 166 | > |
| 167 | Share Your Creation |
| 168 | </Link> |
| 169 | </div> |
| 170 | </div> |
| 171 | <div className="relative mx-auto aspect-square w-full max-w-md"> |
| 172 | <div className="absolute inset-0 rounded-2xl bg-[var(--color-bg-interactive)] opacity-20 blur-3xl"></div> |
| 173 | <Image |
| 174 | src="/opencode_cafe_image.jpg" |
| 175 | alt="OpenCode Cafe" |
| 176 | fill |
| 177 | className="relative rounded-2xl object-contain" |
| 178 | priority |
| 179 | /> |
| 180 | </div> |
| 181 | </div> |
| 182 | </div> |
| 183 | </section> |
| 184 | |
| 185 | {/* Categories */} |
| 186 | <section className="border-b border-[var(--color-border-weak)] px-[var(--padding)] py-[var(--vertical-padding)]"> |
| 187 | <div className="mx-auto max-w-[67.5rem]"> |
| 188 | <div className="mb-8"> |
| 189 | <h2 className="text-xl font-semibold text-[var(--color-text-strong)]"> |
| 190 | On the Menu |
| 191 | </h2> |
| 192 | <p className="mt-1 text-sm text-[var(--color-text-weak)]"> |
nothing calls this directly
no outgoing calls
no test coverage detected