@phamhieu1998/ui
v0.1.4
Published
Supabase UI is a React UI library.
Downloads
3
Readme
Supabase UI
Supabase UI is a React UI library.
🚧
Supabase UI is still a work-in-progress until a major release is published.
View full storybook documentation
Install Supabase UI
npm install @supabase/ui
Using Supabase UI
Example of importing a component
import { Button } from '@supabase/ui'
//...
return <Button>I am a Supabase UI button</Button>
It is probably advisable to use Normalize with Supabase UI for the timebeing.
Using Icons
We use Feather icon library in Supabase UI
You can use any Icon from the library as a component by prepending Icon
to any Icon name, like, <IconMail>
import { IconMail } from '@supabase/ui'
//...
return <IconMail size="small" />
Using Supabase UI Auth
You can use our Auth widget straight out the box with Supabase auth including social logins.
The Auth component also includes a context component which detects whether a user is logged in or not.
Make sure to also install @supabase/supabase-js
npm install @supabase/supabase-js
You can then easily import Auth
from the ui library and pass the createClient
to the Auth
component.
import { Auth, Typography, Button } from "@supabase/ui";
import { createClient } from "@supabase/supabase-js";
const { Text } = Typography
// Create a single supabase client for interacting with your database
const supabase = createClient(
"https://xyzcompany.supabase.co",
"public-anon-key"
);
const Container = (props) => {
const { user } = Auth.useUser();
if (user)
return (
<>
<Text>Signed in: {user.email}</Text>
<Button block onClick={() => props.supabaseClient.auth.signOut()}>
Sign out
</Button>
</>
);
return props.children;
};
export default function Home() {
return (
<Auth.UserContextProvider supabaseClient={supabase}>
<Auth providers={['facebook', 'github']}/>
</Auth.UserContextProvider>
);
};
Roadmap
Some of these are a work in progress - we invite anyone to submit a feature request if there is something you would like to see.
General
- [x] Button
- [x] Typography
- [x] Icon
Data Input
- [x] Input
- [ ] InputNumber
- [x] Select
- [x] Checkbox (and Checkbox Groups)
- [x] Radio (and Radio Groups)
- [x] Toggle (work in progress)
- [ ] Upload (work in progress)
- [ ] Slider
- [ ] Date picker
- [ ] Time picker
- [ ] Form
Layout
- [ ] Layout
- [ ] Grid (Flex)
- [x] Divider
- [x] Space (Flex)
Display
- [x] Card
- [ ] Avatar
- [ ] Alert
- [x] Badge
- [x] Menu
- [ ] Tooltips
- [ ] Tables
- [ ] Code block
Navigation
- [ ] Tabs
- [ ] Breadcrumb
- [x] Dropdown
- [ ] Menu
- [ ] Page Header
- [ ] Sidebar
- [ ] Flyout menu
- [ ] Steps
Overlay
- [x] Modal
- [ ] Drawer / SidePanel
- [ ] Toast messages / Notification
- [ ] Progress
- [ ] Feeds / Timeline
Utility
- [x] Loading
- [x] Transition (work in progress)
Misc
- [ ] Storybook docs
- [ ] Themeing (in progress)
- [ ] Supabase Auth Elements
- [ ] Documentation website
We would be keen to hear any feedback on this project.
Feel free to submit a question or idea here