@phamhieu1998/ui

0.1.4 • Public • Published

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.

Screenshot 2021-02-05 at 19 25 01

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

Readme

Keywords

none

Package Sidebar

Install

npm i @phamhieu1998/ui

Weekly Downloads

3

Version

0.1.4

License

none

Unpacked Size

2.6 MB

Total Files

3204

Last publish

Collaborators

  • phamhieu1998