midnight-wallet-ui-components
v1.2.1
Published
Custom UI components for Midnight Wallet - extends shadcn/ui
Maintainers
Readme
midnight-wallet-ui-components
Custom UI components for Midnight Wallet - extends shadcn/ui with wallet-specific components.
Installation
Using CLI (Recommended - like shadcn/ui)
# Add all components
npx shadcn@latest add alert-dialog avatar badge button card dialog dropdown-menu input label popover scroll-area select separator sheet sonner switch tabs tooltip
npx midnight-wallet-ui-components add --all
# Add specific components
npx midnight-wallet-ui-components add material-icon blockie token-icon
# Add assets (SVG files)
npx midnight-wallet-ui-components add-assets
# List available components
npx midnight-wallet-ui-components listUsing npm (as dependency)
npm install midnight-wallet-ui-componentsAvailable Components
| Component | Description |
|-----------|-------------|
| material-icon | Google Material Icons wrapper |
| blockie | Ethereum-style pixel avatar |
| token-icon | Token icon with NIGHT/DUST support |
| theme-provider | Theme context provider |
| theme-toggle | Theme toggle button |
| spinner | Loading spinner |
| logo | Midnight Wallet logo |
Quick Start
1. Setup shadcn/ui first
npx shadcn@latest init
npx shadcn@latest add button input card2. Add Midnight UI components
npx midnight-wallet-ui-components add --all
npx midnight-wallet-ui-components add-assets3. Add Google Material Icons
Add to your HTML <head>:
<link href="https://fonts.googleapis.com/icon?family=Material+Icons|Material+Icons+Round" rel="stylesheet">4. Use in your code
// From local files (CLI method)
import { MaterialIcon, Icons } from '@/components/common/material-icon';
import { Blockie } from '@/components/common/blockie';
import { TokenIcon } from '@/components/common/token-icon';
import { ThemeProvider, useTheme } from '@/components/common/theme-provider';
import { ThemeToggle } from '@/components/common/theme-toggle';
import { Logo } from '@/components/common/logo';
import { Spinner } from '@/components/common/spinner';
// Or from npm package
import {
MaterialIcon,
Blockie,
TokenIcon,
ThemeProvider,
ThemeToggle,
Logo,
Spinner
} from 'midnight-wallet-ui-components';CLI Commands
add [components...]
Add components to your project.
# Add specific components
npx midnight-wallet-ui-components add material-icon blockie
# Add all components
npx midnight-wallet-ui-components add --all
# Custom output path
npx midnight-wallet-ui-components add --all --path src/components/wallet
# Overwrite existing files
npx midnight-wallet-ui-components add --all --overwriteOptions:
-a, --all- Add all components-y, --yes- Skip confirmation-o, --overwrite- Overwrite existing files-p, --path <path>- Output directory (default:src/components/common)
add-assets
Copy SVG assets to your project.
# Default to public/
npx midnight-wallet-ui-components add-assets
# Custom path
npx midnight-wallet-ui-components add-assets --path public/assetslist
List all available components.
npx midnight-wallet-ui-components listComponents Usage
MaterialIcon
import { MaterialIcon, Icons } from '@/components/common/material-icon';
<MaterialIcon name="wallet" size="lg" variant="round" />
<Icons.Send size={24} />
<Icons.Receive />Blockie
import { Blockie } from '@/components/common/blockie';
<Blockie seed="0x1234...abcd" size={32} />TokenIcon
import { TokenIcon } from '@/components/common/token-icon';
<TokenIcon symbol="NIGHT" size={40} nightSvgUrl="/night.svg" dustSvgUrl="/dust.svg" />ThemeProvider & ThemeToggle
import { ThemeProvider, useTheme } from '@/components/common/theme-provider';
import { ThemeToggle } from '@/components/common/theme-toggle';
<ThemeProvider defaultTheme="dark">
<ThemeToggle />
</ThemeProvider>Spinner
import { Spinner } from '@/components/common/spinner';
<Spinner size={24} />Logo
import { Logo } from '@/components/common/logo';
<Logo size={48} />Assets
After running add-assets, you'll have:
public/logo.svg- Midnight Wallet logopublic/night.svg- NIGHT token iconpublic/dust.svg- DUST token icon
License
MIT
