Skip to content

UI Frameworks

This guide covers the most popular UI frameworks and component libraries available for uni-app development, helping you choose the right solution for your project.

Official UI Libraries

uni-ui

The official UI component library for uni-app, providing cross-platform components with consistent design.

Features:

  • Cross-platform compatibility
  • Official support and maintenance
  • Consistent design language
  • Regular updates with uni-app releases
  • TypeScript support

Installation:

bash
# Via HBuilderX plugin market
# Or via npm
npm install @dcloudio/uni-ui

Usage Example:

vue
<template>
  <view>
    <uni-card title="Card Title" sub-title="Subtitle">
      <text>Card content goes here</text>
    </uni-card>
    
    <uni-list>
      <uni-list-item title="List Item 1" />
      <uni-list-item title="List Item 2" />
    </uni-list>
  </view>
</template>

<script>
import { uniCard, uniList, uniListItem } from '@dcloudio/uni-ui'

export default {
  components: {
    uniCard,
    uniList,
    uniListItem
  }
}
</script>

Documentation: https://uniapp.dcloud.io/component/uniui/uni-ui

uView UI

A comprehensive UI framework for uni-app with rich components and themes.

Features:

  • 60+ high-quality components
  • Multiple built-in themes
  • TypeScript support
  • Detailed documentation
  • Active community support
  • Customizable design tokens

Installation:

bash
npm install uview-ui

Configuration:

javascript
// main.js
import Vue from 'vue'
import uView from 'uview-ui'
Vue.use(uView)

Usage Example:

vue
<template>
  <view>
    <u-button type="primary" @click="handleClick">Primary Button</u-button>
    <u-input v-model="inputValue" placeholder="Enter text" />
    <u-toast ref="uToast" />
  </view>
</template>

<script>
export default {
  data() {
    return {
      inputValue: ''
    }
  },
  methods: {
    handleClick() {
      this.$refs.uToast.show({
        title: 'Button clicked!',
        type: 'success'
      })
    }
  }
}
</script>

Website: https://www.uviewui.com/

ColorUI

A beautiful CSS framework for uni-app with rich color schemes and animations.

Features:

  • Rich color palette
  • Beautiful animations
  • Responsive design
  • Easy customization
  • Lightweight
  • No JavaScript dependencies

Installation:

bash
# Download from GitHub
git clone https://github.com/weilanwl/ColorUI.git

Usage:

vue
<template>
  <view class="cu-bar bg-white solid-bottom">
    <view class="action">
      <text class="cuIcon-title text-orange"></text>Title
    </view>
  </view>
  
  <view class="cu-card article no-card">
    <view class="cu-item shadow">
      <view class="title">
        <view class="text-cut">Article Title</view>
      </view>
      <view class="content">
        <view class="desc">
          <text class="text-content">Article description goes here...</text>
        </view>
      </view>
    </view>
  </view>
</template>

<style>
@import url("~@/colorui/main.css");
@import url("~@/colorui/icon.css");
</style>

GitHub: https://github.com/weilanwl/ColorUI

ThorUI

A lightweight UI component library for uni-app.

Features:

  • Lightweight and fast
  • Easy to use
  • Good performance
  • Customizable themes
  • Rich components

Installation:

bash
npm install thorui-uni

Usage Example:

vue
<template>
  <view>
    <tui-button type="primary" @click="handleClick">Click Me</tui-button>
    <tui-input v-model="value" placeholder="Enter text" />
  </view>
</template>

<script>
export default {
  data() {
    return {
      value: ''
    }
  },
  methods: {
    handleClick() {
      console.log('Button clicked')
    }
  }
}
</script>

GitHub: https://github.com/dingyong0214/ThorUI-uniapp

Grace UI

An elegant UI framework for uni-app with focus on user experience.

Features:

  • Elegant design
  • Smooth animations
  • Good user experience
  • Comprehensive components
  • Easy integration

Installation: Download from the official website or plugin market.

Usage Example:

vue
<template>
  <view>
    <grace-button type="primary">Primary Button</grace-button>
    <grace-card title="Card Title">
      <text>Card content</text>
    </grace-card>
  </view>
</template>

Specialized UI Libraries

Vant Weapp (for WeChat Mini Programs)

Popular UI library specifically designed for WeChat Mini Programs.

Features:

  • Optimized for WeChat Mini Programs
  • Rich component set
  • Good performance
  • Active maintenance
  • Comprehensive documentation

Installation:

bash
npm install @vant/weapp

Usage in uni-app:

vue
<template>
  <view>
    <van-button type="primary" @click="handleClick">Button</van-button>
    <van-cell title="Cell Title" value="Cell Value" />
  </view>
</template>

Website: https://vant-contrib.gitee.io/vant-weapp/

Nutui (for Multiple Platforms)

JD's mobile UI component library that supports uni-app.

Features:

  • Enterprise-grade quality
  • Multiple platform support
  • Rich components
  • Good documentation
  • TypeScript support

Installation:

bash
npm install @nutui/nutui-uni

Usage Example:

vue
<template>
  <view>
    <nut-button type="primary" @click="handleClick">Button</nut-button>
    <nut-cell title="Cell Title" desc="Description" />
  </view>
</template>

Website: https://nutui.jd.com/

CSS Frameworks

Tailwind CSS

Utility-first CSS framework that can be used with uni-app.

Features:

  • Utility-first approach
  • Highly customizable
  • Small bundle size
  • Great developer experience
  • Responsive design utilities

Installation:

bash
npm install tailwindcss

Configuration:

javascript
// tailwind.config.js
module.exports = {
  content: ['./src/**/*.{vue,js,ts}'],
  theme: {
    extend: {}
  },
  plugins: []
}

Usage:

vue
<template>
  <view class="flex items-center justify-center p-4 bg-blue-500 text-white rounded-lg">
    <text>Styled with Tailwind CSS</text>
  </view>
</template>

Bootstrap (Adapted for uni-app)

Popular CSS framework adapted for uni-app development.

Features:

  • Familiar Bootstrap classes
  • Responsive grid system
  • Pre-built components
  • Extensive documentation

Usage:

vue
<template>
  <view class="container">
    <view class="row">
      <view class="col-12 col-md-6">
        <view class="card">
          <view class="card-body">
            <text class="card-title">Card Title</text>
            <text class="card-text">Card content goes here.</text>
          </view>
        </view>
      </view>
    </view>
  </view>
</template>

Choosing the Right Framework

Consider Your Project Requirements

For Official Support:

  • Choose uni-ui for official support and guaranteed compatibility

For Rich Features:

  • Choose uView UI for comprehensive component library
  • Choose Nutui for enterprise-grade applications

For Design Focus:

  • Choose ColorUI for beautiful designs and animations
  • Choose Grace UI for elegant user interfaces

For Performance:

  • Choose ThorUI for lightweight applications
  • Choose ColorUI for CSS-only solutions

For Specific Platforms:

  • Choose Vant Weapp for WeChat Mini Program focus
  • Choose uni-ui for maximum cross-platform compatibility

Framework Comparison

FrameworkComponentsSizeTypeScriptThemesDocumentation
uni-ui20+SmallLimited⭐⭐⭐⭐⭐
uView UI60+MediumMultiple⭐⭐⭐⭐⭐
ColorUICSS OnlySmallRich⭐⭐⭐⭐
ThorUI30+SmallBasic⭐⭐⭐
Vant Weapp50+MediumLimited⭐⭐⭐⭐⭐
Nutui40+MediumMultiple⭐⭐⭐⭐

Best Practices

1. Framework Selection

  • Start with uni-ui for basic needs
  • Add specialized frameworks for specific requirements
  • Avoid mixing too many frameworks in one project

2. Performance Optimization

  • Import only the components you need
  • Use tree-shaking to reduce bundle size
  • Consider CSS-only solutions for simple designs

3. Customization

  • Follow the framework's theming guidelines
  • Create a consistent design system
  • Document your customizations

4. Maintenance

  • Keep frameworks updated
  • Monitor for breaking changes
  • Have a migration plan for major updates

Getting Started

Quick Setup with uView UI

  1. Install the framework:
bash
npm install uview-ui
  1. Configure in main.js:
javascript
import Vue from 'vue'
import uView from 'uview-ui'
Vue.use(uView)
  1. Import styles in App.vue:
vue
<style lang="scss">
@import "uview-ui/index.scss";
</style>
  1. Start using components:
vue
<template>
  <view>
    <u-button type="primary">Get Started</u-button>
  </view>
</template>

Conclusion

Choosing the right UI framework is crucial for your uni-app project's success. Consider your project requirements, team expertise, and long-term maintenance needs when making your decision. Start with uni-ui for guaranteed compatibility, then explore other frameworks based on your specific needs.

Remember that you can also mix and match different solutions - use a comprehensive framework for most components and add specialized libraries for specific features.

一次开发,多端部署 - 让跨平台开发更简单