mirror of
https://github.com/supabase/supabase.git
synced 2026-10-07 18:35:07 +03:00
* set up multiple themes in studio * set up multiple themes in studio * set up multiple themes in docs and www * update all resolvedTheme to also include deep-dark * update all resolvedTheme checks to also include deep-dark * update tailwind.config.js tokens * update tailwind.config.js tokens * update leftover scale12 token * update if resolvedTheme _doesn't_ include 'dark' * update more styling tokens * add dynamic themes to CmdK * fix nav and footer for multi theme * add data-theme selector output to transformTokens.js * update code-hike.css to target data-theme css * update tailwindcss to ^3.3.5 * ThemeImage with light and dark src for www and docs * add brand-button styling token * update old dark theme boolean * update old dark theme boolean * make homepage product visuals themeable * update product page themed images * update badge green with brand * fix roles list appearance * fix auth widget in auth page * update more dark logic * update more dark logic * add button default bg and border * update pricing page theme styling * clean up Themeimage * remove forceDark in homepage * update dark:border-dark occurrences * update dark:border-dark occurrences * fix dark mode base colors * remove foreground-strong * fix notification badge bg * remove some dark: selectors * update dark: selectors * update code-hike deep dark bg color * fix comment typo * update border-button-hover token * fix customer story logo * remove some more dark: selectors * restore forceDark in www homepage * fix auth react icon * fix homepage product visuals * remove theme * add brand-link token * fix checkbox bg * npm install * more visible EntityListItem active bg * fix --background-alternative-default css vars --------- Co-authored-by: Jonathan Summers-Muir <MildTomato@users.noreply.github.com>
122 lines
2.9 KiB
TypeScript
122 lines
2.9 KiB
TypeScript
import ButtonCard from './ButtonCard'
|
|
import { useTheme } from 'next-themes'
|
|
|
|
const Frameworks = () => {
|
|
const { resolvedTheme } = useTheme()
|
|
|
|
const frameworks = [
|
|
{
|
|
name: 'Angular',
|
|
logo: {
|
|
light: '/docs/img/icons/angular-icon.svg',
|
|
dark: '/docs/img/icons/angular-icon.svg',
|
|
},
|
|
href: '/guides/with-angular',
|
|
},
|
|
{
|
|
name: 'Expo React Native',
|
|
logo: {
|
|
light: '/docs/img/icons/expo-icon-light.svg',
|
|
dark: '/docs/img/icons/expo-icon.svg',
|
|
},
|
|
href: '/guides/with-expo-react-native',
|
|
},
|
|
{
|
|
name: 'Flutter',
|
|
logo: {
|
|
light: '/docs/img/icons/flutter-icon.svg',
|
|
dark: '/docs/img/icons/flutter-icon.svg',
|
|
},
|
|
href: '/guides/with-flutter',
|
|
},
|
|
{
|
|
name: 'JavaScript',
|
|
logo: {
|
|
light: '/docs/img/icons/javascript-icon.svg',
|
|
dark: '/docs/img/icons/javascript-icon.svg',
|
|
},
|
|
href: '/reference/javascript/installing#javascript',
|
|
},
|
|
{
|
|
name: 'Kotlin',
|
|
logo: {
|
|
light: '/docs/img/icons/kotlin-icon.svg',
|
|
dark: '/docs/img/icons/kotlin-icon.svg',
|
|
},
|
|
href: '/guides/with-kotlin',
|
|
},
|
|
{
|
|
name: 'Next.js',
|
|
logo: {
|
|
light: '/docs/img/icons/nextjs-icon-light.svg',
|
|
dark: '/docs/img/icons/nextjs-icon.svg',
|
|
},
|
|
href: '/guides/with-nextjs',
|
|
},
|
|
{
|
|
name: 'React',
|
|
logo: {
|
|
light: '/docs/img/icons/react-icon.svg',
|
|
dark: '/docs/img/icons/react-icon.svg',
|
|
},
|
|
href: '/guides/with-react',
|
|
},
|
|
{
|
|
name: 'RedwoodJS',
|
|
logo: {
|
|
light: '/docs/img/icons/redwoodjs-icon.svg',
|
|
dark: '/docs/img/icons/redwoodjs-icon.svg',
|
|
},
|
|
href: '/guides/with-redwoodjs',
|
|
},
|
|
{
|
|
name: 'SolidJS',
|
|
logo: {
|
|
light: '/docs/img/icons/solidjs-icon.svg',
|
|
dark: '/docs/img/icons/solidjs-icon.svg',
|
|
},
|
|
href: '/guides/with-solidjs',
|
|
},
|
|
{
|
|
name: 'Svelte',
|
|
logo: {
|
|
light: '/docs/img/icons/svelte-icon.svg',
|
|
dark: '/docs/img/icons/svelte-icon.svg',
|
|
},
|
|
href: '/guides/with-svelte',
|
|
},
|
|
{
|
|
name: 'Vue',
|
|
logo: {
|
|
light: '/docs/img/icons/vuejs-icon.svg',
|
|
dark: '/docs/img/icons/vuejs-icon.svg',
|
|
},
|
|
href: '/guides/with-vue-3',
|
|
},
|
|
{
|
|
name: 'refine',
|
|
logo: {
|
|
light: '/docs/img/icons/refine-icon.svg',
|
|
dark: '/docs/img/icons/refine-icon.svg',
|
|
},
|
|
href: '/guides/getting-started/tutorials/with-refine',
|
|
},
|
|
]
|
|
return (
|
|
<div className="grid md:grid-cols-12 gap-4 not-prose">
|
|
{frameworks.map((x) => (
|
|
<div key={x.name} className="col-span-3">
|
|
<ButtonCard
|
|
layout="horizontal"
|
|
to={x.href}
|
|
title={x.name}
|
|
icon={resolvedTheme?.includes('dark') ? x.logo.dark : x.logo.light}
|
|
/>
|
|
</div>
|
|
))}
|
|
</div>
|
|
)
|
|
}
|
|
|
|
export default Frameworks
|