Skip to content

Design

@tripo3d/design · Vue 3 组件库,基于 Reka UI + UnoCSS + SCSS,服务于 Tripo Studio、Homepage 等前端产品。

特性

🧩

20+ 基础组件

Button / Dialog / Select / Tabs / Drawer / Toast ... 覆盖常见业务场景

🎨

CSS 变量主题

所有组件通过 CSS 变量驱动,可逐实例覆写颜色与尺寸

Nuxt 自动导入

通过 @tripo3d/design/nuxt 模块,在 Nuxt 4/3 项目中无需 import 即可使用

🧱

10+ 业务组件

CreditsButton / ImgViewer / ModelUploader / Guide 等 Tripo 专属封装

🪶

Headless 内核

核心交互行为基于 Reka UI,支持完整的键盘与屏幕阅读器可访问性

🎯

类型完备

ESM + DTS,全量 TypeScript 类型,IDE 可直接跳转源码

安装

请先完成 GitHub Packages 认证配置

bash
pnpm add @tripo3d/design

快速开始

Vue 3 项目

main.ts:

ts
import { createApp } from 'vue';
import 'virtual:uno.css';
import '@tripo3d/design/style.css';
import App from './App.vue';

createApp(App).mount('#app');

uno.config.ts:

ts
import { defineConfig } from '@tripo3d/design/config';

export default defineConfig();

模板中:

vue
<script setup lang="ts">
import { Button, toast } from '@tripo3d/design';
</script>

<template>
  <Button @click="toast('Hello Tripo')">点我</Button>
</template>

Nuxt 项目

nuxt.config.ts:

ts
export default defineNuxtConfig({
  modules: ['@tripo3d/design/nuxt', '@unocss/nuxt'],
  css: ['@tripo3d/design/style.css'],
});

无需 import,直接使用:

vue
<template>
  <Button @click="toast('Hello Tripo')">点我</Button>
</template>

下一步

基于 MIT 协议发布(内部使用)