Skip to content

Unping/unping-ui-website

Repository files navigation

Unping UI - Official Website

The official marketing and documentation website for Unping UI, a Web & Desktop first Flutter component library.

🌐 Live Website: unping-ui.com

πŸš€ About Unping UI

Unping UI is a Flutter component library designed with a Web & Desktop first approach, providing beautiful, accessible, and highly customizable UI components for Flutter applications.

Key Features:

  • πŸ“± Web & Desktop First - Optimized for web and desktop platforms
  • 🎨 Design System - Comprehensive design tokens and foundation
  • 🧩 Copy & Paste Ready - Components you can easily add to your project
  • πŸ”§ Highly Customizable - Flexible theming and styling options
  • βœ… Well Tested - Comprehensive test coverage
  • πŸ“š Widgetbook Integration - Live component documentation

πŸ—οΈ Website Tech Stack

This website is built with:

  • ⚑ Vite - Lightning fast dev server and build tool
  • βš›οΈ React 18 - Modern React with hooks and concurrent features
  • 🎨 Unping-UI Design System - Mirrored design tokens from the Flutter library
  • 🧩 shadcn/ui Components - Beautiful, accessible UI components
  • 🎯 Tailwind CSS - Utility-first CSS framework with custom Unping-UI configuration
  • πŸ”’ Appwrite - Backend-as-a-service (optional for future features)
  • πŸ“± Responsive Design - Mobile-first approach
  • πŸŒ™ Dark Mode Ready - Built-in dark/light theme support

🎨 Unping UI Design System

This website mirrors the Unping-UI design system from the Flutter library, featuring:

Colors

  • Primary: Sophisticated blue palette (primary-25 to primary-950)
  • Neutral: Refined gray scale (neutral-25 to neutral-950)
  • Success: Green palette for positive actions
  • Warning: Amber palette for cautions
  • Error: Red palette for destructive actions

Typography

  • Display sizes: 2xl (72px) to xs (24px) for hero headings
  • Heading sizes: xl (30px) to xs (16px) for section titles
  • Body sizes: xl (20px) to xs (12px) for content text
  • Font weights: thin (100) to black (900)

Spacing System

Consistent spacing scale: 0.5 (2px) to 480 (1920px)

Border Radius

  • xs (4px), sm (8px), md (12px), lg (16px), xl (28px), xxl (32px), full (9999px)

πŸš€ Development Setup

Prerequisites

  • Node.js 18+
  • npm, yarn, or pnpm

1. Installation

# Clone the repository
git clone https://github.com/unping/unping-ui-website.git
cd unping-ui-website

# Install dependencies
npm install

# Or with yarn
yarn install

# Or with pnpm
pnpm install

2. Environment Setup (Optional)

For Appwrite integration (if needed for future features):

  1. Create a .env file based on .env.example (if it exists)
  2. Configure Appwrite credentials:
VITE_APPWRITE_ENDPOINT=https://cloud.appwrite.io/v1
VITE_APPWRITE_PROJECT_ID=your_project_id_here
VITE_APPWRITE_DATABASE_ID=your_database_id
VITE_APPWRITE_COLLECTION_ID=your_collection_id

3. Run Development Server

npm run dev

Visit http://localhost:5173 to see the website!

πŸ—οΈ Project Structure

β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   └── ui/           # shadcn/ui components + custom components
β”‚   β”‚       β”œβ”€β”€ button.tsx
β”‚   β”‚       β”œβ”€β”€ card.tsx
β”‚   β”‚       β”œβ”€β”€ alert.tsx
β”‚   β”‚       β”œβ”€β”€ badge.tsx
β”‚   β”‚       β”œβ”€β”€ avatar.tsx
β”‚   β”‚       β”œβ”€β”€ dialog.tsx
β”‚   β”‚       β”œβ”€β”€ dropdown-menu.tsx
β”‚   β”‚       β”œβ”€β”€ navigation-menu.tsx
β”‚   β”‚       β”œβ”€β”€ select.tsx
β”‚   β”‚       β”œβ”€β”€ separator.tsx
β”‚   β”‚       β”œβ”€β”€ tabs.tsx
β”‚   β”‚       β”œβ”€β”€ tooltip.tsx
β”‚   β”‚       β”œβ”€β”€ sonner.tsx
β”‚   β”‚       β”œβ”€β”€ background-beams.tsx
β”‚   β”‚       β”œβ”€β”€ container-text-flip.tsx
β”‚   β”‚       β”œβ”€β”€ dot-background.tsx
β”‚   β”‚       β”œβ”€β”€ glowing-effect.tsx
β”‚   β”‚       └── text-hover-effect.tsx
β”‚   β”œβ”€β”€ lib/
β”‚   β”‚   β”œβ”€β”€ appwrite.ts     # Appwrite configuration (optional)
β”‚   β”‚   β”œβ”€β”€ foundation.ts   # Unping-UI design tokens
β”‚   β”‚   └── utils.ts        # Utility functions
β”‚   β”œβ”€β”€ pages/
β”‚   β”‚   └── Imprint.tsx     # Legal/imprint page
β”‚   β”œβ”€β”€ App.tsx             # Main application component
β”‚   β”œβ”€β”€ main.tsx           # React entry point
β”‚   └── index.css          # Global styles with design tokens
β”œβ”€β”€ public/                # Static assets (icons, manifest)
β”œβ”€β”€ appwrite.json         # Appwrite project configuration
└── README.md

β”‚ β”œβ”€β”€ App.tsx # Main application component β”‚ β”œβ”€β”€ main.tsx # React entry point β”‚ └── index.css # Global styles β”œβ”€β”€ public/ # Static assets β”œβ”€β”€ appwrite.json # Appwrite project configuration └── README.md


## 🎨 Available Components

This website includes several UI components:

### shadcn/ui Components
- **Alert** - Information and warning messages
- **Avatar** - User profile images
- **Badge** - Status indicators and labels  
- **Button** - Various styles and sizes
- **Card** - Content containers with header, body, footer
- **Dialog** - Modal dialogs and overlays
- **Dropdown Menu** - Context menus and dropdowns
- **Navigation Menu** - Main navigation components
- **Select** - Dropdown selection inputs
- **Separator** - Visual dividers
- **Tabs** - Tabbed content sections
- **Tooltip** - Contextual help text
- **Sonner** - Toast notifications

### Custom Components
- **Background Beams** - Animated background effects
- **Container Text Flip** - Animated text transitions
- **Dot Background** - Dotted pattern backgrounds  
- **Glowing Effect** - Interactive glow animations
- **Text Hover Effect** - Text animation on hover

### Adding More shadcn/ui Components

To add more components from shadcn/ui:

```bash
# Add components using shadcn/ui CLI
npx shadcn-ui@latest add input
npx shadcn-ui@latest add form  
npx shadcn-ui@latest add table

πŸ”§ Customization

Design Tokens

The website uses Unping-UI design tokens defined in src/lib/foundation.ts. These mirror the Flutter library's design system:

import { UiColors, UiTextStyles, UiSpacing, UiBorderRadius } from './lib/foundation'

Global Styles

Customize the theme in src/index.css using CSS custom properties:

:root {
  --primary: 221.2 83.2% 53.3%;
  --primary-foreground: 210 40% 98%;
  --neutral-950: 12 6% 15%;
  /* ... other design tokens */
}

Tailwind Configuration

The tailwind.config.js extends the default configuration with Unping-UI design tokens:

  • Custom color palette
  • Typography scale
  • Spacing system
  • Border radius values
  • Responsive breakpoints

πŸ“¦ Building and Deployment

Build for Production

# Build the website
npm run build

# Preview production build locally  
npm run preview

The built files will be in the dist/ directory.

Deployment Options

Appwrite (Current Hosting)

The website is currently hosted on Appwrite. Deployment is automated via GitHub Actions when pushing to the main branch.

Vercel

npm install -g vercel
vercel

Netlify

npm run build
# Upload dist/ folder to Netlify

Custom Server

npm run build
# Upload dist/ contents to any web server

οΏ½ Available Scripts

  • npm run dev - Start development server with hot reload
  • npm run build - Build for production (TypeScript compilation + Vite build)
  • npm run preview - Preview production build locally
  • npm run lint - Run ESLint with TypeScript support

οΏ½ Related Links

  • Unping UI Flutter Library: GitHub
  • Live Component Demo: Widgetbook
  • Flutter Package: pub.dev
  • FPX CLI Tool: GitHub - For easy component installation

🀝 Contributing

Contributions to improve the website are welcome!

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Commit your changes: git commit -m 'Add amazing feature'
  4. Push to the branch: git push origin feature/amazing-feature
  5. Open a Pull Request

πŸ“„ License

MIT License - This website is open source and free to use.

πŸ†˜ Support & Documentation

Tech Stack Documentation


Built with ❀️ for the Flutter community πŸŽ‰

About

Vibe-coded website with shadcn hosted on appwrite.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •