@sixui/ui
TypeScript icon, indicating that this package has built-in type declarations

0.0.248 • Public • Published

SixUI logo

SixUI

Ready-to-use foundational React components implementing Google's Material Design 3.

  • Leverages Meta's StyleX for zero-runtime styling.
  • Fully themable through CSS styles or CSS vars.
  • Type-safe APIs, styles and themes.

license npm latest package npm bundle size

Components

Browse the library of components on https://sixui.com.

Default color system (specs)

Default color scheme

Components

Avatar

Avatar

Badge (specs)

Badge

Breadcrumbs

Breadcrumbs

Button (specs)

Button

Elevated button (specs)

ElevatedButton

Filled button (specs)

FilledButton

Filled tonal button (specs)

FilledTonalButton

Outlined button (specs)

OutlinedButton

Text button (specs)

TextButton

Danger button

DangerButton

Card (specs)

Horizontal card

HorizontalCard

Vertical card

VerticalCard

Checkbox (specs)

Checkbox

Chip (specs)

Chip

Assist chip (specs)

AssistChip

Filter chip (specs)

FilterChip

Input chip (specs)

InputChip InputChip

Suggestion chip (specs)

SuggestionChip

Circular progress indicator (specs)

Determinate circular progress indicator

DeterminateCircularProgressIndicator DeterminateCircularProgressIndicator

Indeterminate circular progress indicator

IneterminateCircularProgressIndicator

Combobox (specs)

Combobox

Multi combobox

MultiCombobox

Dialog (specs)

TODO: screenshot

Disclosure

Disclosure

Divider (specs)

TODO: screenshot

Element with label

With text field

ElementWithLabel

With checkbox

ElementWithLabel

FAB (specs)

Fab

Surface FAB

SurfaceFab

Primary FAB

PrimaryFab

Secondary FAB

SecondaryFab

Tertiary FAB

TertiaryFab

Branded FAB

BrandedFab

Icon button (specs)

IconButton

Standard icon button (specs)

StandardIconButton

Filled icon button (specs)

FilledIconButton

Filled tonal icon button (specs)

FilledTonalIconButton

Outlined icon button (specs)

OutlinedIconButton

List (specs)

ListItem

List item (specs)

ListItem

Menu (specs)

Menu

Menu list (specs)

MenuList

Paper

Paper

Placeholder

Placeholder

Radio (specs)

Radio

Select (specs)

Select

Multi select

MultiSelect

Skeleton

As container

Skeleton

As overlay

Skeleton

Stepper

Horizontal stepper

Stepper

Vertical stepper

Stepper

Switch (specs)

Switch

With icons

Switch

Tabs (specs)

Primary tabs (specs)

PrimaryTabs

Secondary tabs (specs)

SecondaryTabs

Text Field (specs)

TextField

Filled text Field (specs)

FilledTextField

Outlined text Field (specs)

OutlinedTextField

Typography (specs)

Typography Typography

Utils

Anchored

Anchored

Component showcase

ComponentShowcase

Elevation (specs)

Elevation

Focus ring (specs)

FocusRing

Importing @sixui/ui as a third-party module

Setup

$ nvm use 18
$ yarn set version stable
$ yarn add @sixui/ui

Yarn

# .yarnrc.yml

# ...
nodeLinker: node-modules
$ yarn install

StyleX

See https://stylexjs.com/docs/learn/installation/.

Usage

// BasicExample.tsx

'use client';

import { ThemeProvider, baseTheme, Button } from '@sixui/ui';

const BasicExample: React.FC = () => (
  <ThemeProvider theme={baseTheme}>
    <Button>Hello World!</Button>
  </ThemeProvider>
);

export default BasicExample;

Notes with Next.js

// next.config.js

const withStylex = require('@stylexjs/nextjs-plugin');
const babelrc = require('./.babelrc.js');
const plugins = babelrc.plugins;
const [_name, options] = plugins.find(
  (plugin) => Array.isArray(plugin) && plugin[0] === '@stylexjs/babel-plugin',
);
const rootDir = options.unstable_moduleResolution.rootDir ?? __dirname;

/** @type {import('next').NextConfig} */
const nextConfig = {
  transpilePackages: ['@sixui/ui'],
};

module.exports = withStylex({
  rootDir,
  useCSSLayers: true,
})(nextConfig);
// src/app/layout.tsx

import '@sixui/ui/styles.css';

// ...

Notes with Vite

$ yarn add vite-plugin-stylex --dev
// vite.config.ts

import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
import styleX from 'vite-plugin-stylex';

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [react(), styleX()],
  optimizeDeps: {
    exclude: ['@sixui/ui'],
  },
});
// src/main.tsx

import '@sixui/ui/styles.css';

// ...

Notes with react-router-dom

import { forwardRef } from 'react';
import {
  Link as RouterLink,
  LinkProps as RouterLinkProps,
} from 'react-router-dom';
import { Button } from '@sixui/ui';

export const LinkBehavior = forwardRef<
  HTMLAnchorElement,
  Omit<RouterLinkProps, 'to'> & { href: RouterLinkProps['to'] }
>(function LinkBehavior(props, ref) {
  const { href, ...other } = props;

  // Map href (sixui) -> to (react-router)
  return <RouterLink ref={ref} to={href} {...other} />;
});

export const Usage: React.FC = () => (
  <Button component={LinkBehavior} href='/login'>
    Login
  </Button>
);

Readme

Keywords

none

Package Sidebar

Install

npm i @sixui/ui

Weekly Downloads

748

Version

0.0.248

License

MIT

Unpacked Size

1.27 MB

Total Files

1173

Last publish

Collaborators

  • olivierpascal