Files
supabase/apps/docs/app/reference/page.tsx
Danny White 4bda3bfe72 refactor(docs): unify homepage icon link tiles (#48317)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES

## What kind of change does this PR introduce?

Docs UI refactor.

## What is the current behavior?

Framework quickstarts and several other homepage grids used `IconPanel`
/ `IconPanelWithIconPicker`, which brought redundant tooltips
(duplicating the visible title), inconsistent hover treatment, and
circular icon tiles that didn't match the intended squarish look.

| Before |
| --- |
| <img width="1744" height="626" alt="CleanShot 2026-07-24 at 14 29
44@2x"
src="https://github.com/user-attachments/assets/1e145be2-19c9-4bd0-bf06-17516acbc774"
/> |

## What is the new behavior?

Introduces a shared `IconLink` used across the docs homepage (and
reference index) so icon+label tiles share the same composition and
hover: icon tile fill matches the surrounding surface (`surface-100`),
with a stronger border on hover, and the row uses `hover:bg-accent`.
Framework quickstarts keep the larger tile size; other sections keep the
smaller size. Also aligns Explore more GlassPanels with Build your
backend by using the same bordered background treatment.

| After |
| --- |
| <img width="2478" height="906" alt="CleanShot 2026-07-24 at 15 09
48@2x"
src="https://github.com/user-attachments/assets/dd516845-c162-47e4-8b86-9a7fa0e73290"
/> |

## Additional context

Removes the unused `IconPanelWithIconPicker` wrapper now that
homepage/reference consumers go through `IconLink`.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Added reusable `IconLink` UI for consistent docs tiles, including
`IconLinkList`, menu icon, and light/dark icon rendering.
* Introduced `FrameworkQuickstarts` to generate quickstart links based
on feature-flag-enabled SDKs.
* **UI / Improvements**
* Updated the docs home and API reference pages to use the new
list-based icon-link layout.
* Refreshed migration guides and “Explore more”/self-hosting sections
(including accessibility and updated CTA text).
* **Bug Fixes**
  * Migration guide items now omit entries missing required details.
* **Chores / Cleanup**
* Removed the older icon panel picker-based UI component and its usage.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-07-28 15:12:13 +10:00

57 lines
2.0 KiB
TypeScript

import { clientSdkIds, REFERENCES } from '~/content/navigation.references'
import { IconLinkList, IconLinkMenuIcon } from '~/features/ui/IconLink'
import { LayoutMainContent } from '~/layouts/DefaultLayout'
import { SidebarSkeleton } from '~/layouts/MainSkeleton'
export default function ReferenceIndexPage() {
return (
<SidebarSkeleton>
<LayoutMainContent>
<article className="prose">
<h1>API References</h1>
<p>
The Supabase client libraries help you interact with Supabase products, such as the
Postgres Database, Auth, and Realtime. They are available in several popular programming
languages.
</p>
<p>
Supabase also has a Management API to help with managing your Supabase Platform, and a
CLI for local development and CI workflows.
</p>
<h2 id="client-libraries" className="mb-8">
Client Libraries
</h2>
<IconLinkList
labelledBy="client-libraries"
className="not-prose"
items={clientSdkIds.map((sdkId) => ({
title: REFERENCES[sdkId].name,
href: `/reference/${REFERENCES[sdkId].libPath}`,
icon: <IconLinkMenuIcon icon={REFERENCES[sdkId].icon} />,
}))}
/>
<h2 id="management-api-and-cli" className="mb-8">
Management API and CLI
</h2>
<IconLinkList
labelledBy="management-api-and-cli"
className="not-prose"
items={[
{
title: 'Management API',
href: '/reference/api/introduction',
icon: <IconLinkMenuIcon icon={REFERENCES['api'].icon} />,
},
{
title: 'CLI',
href: '/reference/cli/introduction',
icon: <IconLinkMenuIcon icon={REFERENCES['cli'].icon} />,
},
]}
/>
</article>
</LayoutMainContent>
</SidebarSkeleton>
)
}