Wot Design Uni:一个高颜值、轻量化的uni-app组件库,uni-app生态的新宠

news2024/12/27 2:48:33

一、介绍

图片

wot-design-uni组件库基于vue3+Typescript构建,参照wot design的设计规范进行开发,提供70+高质量组件,支持暗黑模式、国际化和自定义主题,旨在给开发者提供统一的UI交互,同时提高研发的开发效率。

特性:

🎯 多平台覆盖,支持 微信小程序、支付宝小程序、钉钉小程序、H5、APP 等.

🚀 70+ 个高质量组件,覆盖移动端主流场景.

💪 使用 Typescript 构建,提供良好的组件类型系统.

🌍 支持国际化,内置 6 种语言包.

📖 提供丰富的文档和组件示例.

🎨 支持修改 CSS 变量实现主题定制.

🍭 支持暗黑模式

二、安装及使用

Wot Design Uni提供了uni_modules和npm两种安装方式,按需选择。

使用uni_modules安装无需额外配置,即插即用,但是每次更新组件库需要处理代码差异(一般直接覆盖就可以)。

使用npm安装需要额外配置,更新组件库时无需处理代码差异。

2.1 安装

uni_modules安装:

在uni-app插件市场选择使用HBuildX导入,或者选择手动在src目录下创建uni_modules文件夹并将Wot Design Uni解压到uni_modules中,结构如下:

- uni_modules
- - - wot-design-uni

npm安装:

// npm
npm i wot-design-uni

// yarn 
yarn add wot-design-uni

// pnpm
pnpm add wot-design-uni

2.2 自动引入组件

配置easycom引入:
传统vue组件,需要安装、引用、注册,三个步骤后才能使用组件。easycom将其精简为一步。只要组件路径符合规范,就可以不用引用、注册,直接在页面中使用。

// pages.json
{
    "easycom": {
        "autoscan": true,
        "custom": {
          "^wd-(.*)": "wot-design-uni/components/wd-$1/wd-$1.vue"
        }
    },
    "pages": [
        // ......
    ]
}

基于vite配置引入:
可以通过@uni-helper/vite-plugin-uni-components实现组件的自动引入。

// npm
npm i @uni-helper/vite-plugin-uni-components -D

// yarn
yarn add @uni-helper/vite-plugin-uni-components -D

// pnpm
pnpm add @uni-helper/vite-plugin-uni-components -D

@uni-helper/vite-plugin-uni-components 0.0.8及之前版本vite.config.ts配置如下:

// vite.config.ts
import { defineConfig } from "vite";
import uni from "@dcloudio/vite-plugin-uni";

import Components, { kebabCase } from '@uni-helper/vite-plugin-uni-components'

export default defineConfig({
  plugins: [
    // make sure put it before `Uni()`
    Components({
    resolvers: [
      {
        type: 'component',
        resolve: (name: string) => {
          if (name.match(/^Wd[A-Z]/)) {
            const compName = kebabCase(name)
            return {
              name,
              from: `wot-design-uni/components/${compName}/${compName}.vue`,
            }
          }
        },
      }
    ]
  }), uni()],
});

@uni-helper/vite-plugin-uni-components 0.0.9及以后版本vite.config.ts配置如下:

// vite.config.ts
import { defineConfig } from "vite";
import uni from "@dcloudio/vite-plugin-uni";

import Components from '@uni-helper/vite-plugin-uni-components'
import { WotResolver } from '@uni-helper/vite-plugin-uni-components/resolvers'


export default defineConfig({
  plugins: [
    // make sure put it before `Uni()`
    Components({
    resolvers: [WotResolver()]
  }), uni()],
});

2.3 使用

Wot Design Uni安装、配置完成之后,支持组件自动引入,故可以直接在SFC中使用,无需在页面内import,也不需要在components内声明,即可在任意页面使用。值得注意的是,uni-app平台不支持全局挂载组件,所以Message、Toast等组件仍需在SFC中显式使用,例如:

// 使用toast
<wd-toast></wd-toast>

// 使用MessageBox
<wd-message-box></wd-message-box>

三、定制主题

3.1 自定义主题

Wot Design Uni 每1个组件基本都有自定义类名 custom-class,可以在组件根节点加入你页面上的类名,进行样式修改。

3.2 定制主题

每个组件提供了css 变量,可以参考config-provider组件的使用介绍来定制主题。

Wot 组件通过丰富的 CSS 变量 来组织样式,通过覆盖这些 CSS 变量,可以实现定制主题、动态切换主题等效果。

这些变量的默认值被定义在 page 节点上,如果要转 H5,默认值被定义在 :root 节点上。

:root,
page {
  --wot-color-success: red;
  --wot-color-warning: yellow;
}

通过 CSS 覆盖:你可以直接在代码中覆盖这些 CSS 变量,Button 组件的样式会随之发生改变。
/* 添加这段样式后,默认 Button 底色会变成绿色 */

:root,
page {
  --wot-button-normal-bg: green;
}

通过 ConfigProvider 覆盖:
ConfigProvider 组件提供了覆盖 CSS 变量的能力,你需要在根节点包裹一个 ConfigProvider 组件,并通过 theme-vars 属性来配置一些主题变量。

<wd-config-provider :theme-vars="themeVars">
  <div style="margin: 16px">
    <wd-button round block type="primary">提交</wd-button>
  </div>
</wd-config-provider>
import { ref, reactive } from 'vue'

export default {
  setup() {
    // themeVars 内的值会被转换成对应 CSS 变量
    // 比如 buttonPrimaryBg 会转换成 `--wot-button-primary-bg-color`
    const themeVars = reactive({
      buttonPrimaryBgColor: '#07c160',
      buttonPrimaryColor: '#07c160'
    })
    return {
      themeVars
    }
  }
}
 

按钮&弹框

在这里插入图片描述
在这里插入图片描述

Tabbar&Form表单

在这里插入图片描述
在这里插入图片描述

水印&锚点

在这里插入图片描述
在这里插入图片描述

图片裁剪&日历组件
在这里插入图片描述

在这里插入图片描述

做为uni-app生态的新宠,为跨平台开发注入了新的活力,也给我们带来了多样的选择。

Wot Design Uni颜值高,组件丰富,更新速度快,使用Wot Design Uni开发微信、支付宝等小程序是一个不错的选择。

文档地址:https://wot-design-uni.pages.dev/

github地址:https://github.com/Moonofweisheng/wot-design-uni

gitee地址:https://gitee.com/wot-design-uni/wot-design-uni

原文地址:原文地址

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2065691.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

新的网络钓鱼方法针对 Android 和 iPhone 用户

关注公众号网络研究观获取更多内容。 ESET 研究人员发现了一种针对 Android 和 iPhone 用户的不常见网络钓鱼活动。 他们分析了一起针对捷克某知名银行客户的网络钓鱼案例。 网络钓鱼流程 这种技术值得注意&#xff0c;因为它会从第三方网站安装钓鱼应用程序&#xff0c;而无…

数据可视化大屏模板-美化图表

Axure作为一款强大的原型设计软件&#xff0c;不仅擅长构建交互式界面&#xff0c;更在数据可视化方面展现出了非凡的创意与实用性。今天&#xff0c;就让我们一起探索Axure设计的几款精美数据可视化大屏模板&#xff0c;感受数据之美。 立体图表的视觉冲击力 Axure的数据可视…

【大模型理论篇】基于3D可视化视角理解GPT

1. 背景介绍 先前我们通过多篇技术文章来分析大模型的原理&#xff0c;包括&#xff1a; 《Transformer原理及关键模块深入浅出》《GPT系列预训练模型原理讲解》、《大模型时代下Bert去哪啦》、《关于LLaMA 3.1 405B以及小模型的崛起》、《LLaMA3结构关键模块分析》、《强化学习…

JS基础进阶2-操作元素

目录 1.操作元素-修改DOM&#xff08;文档对象模型&#xff09;元素 1. 修改元素的文本内容 2. 修改元素的样式 3. 修改元素的属性 4. 修改元素的类名 5.修改body元素 2.修改自定义属性 2.1H5中设置自定义属性、 2.2使用JavaScript修改自定义属性 3.节点操作 3.1节点概…

不懂就问,换毛季猫咪疯狂掉毛怎么办?宠物浮毛该如何清理?

最近天气变热了&#xff0c;每天都30度以上&#xff0c;我家猫狂掉毛&#xff0c;床上、地板上堆积了不少。第一次养猫的我没见过这种阵仗&#xff0c;以为它生病了&#xff0c;连忙带它去看医生。医生告诉我&#xff0c;这是正常的猫咪换毛现象&#xff0c;我才放下心来。原来…

Python代码加密打包发布

本博客主要介绍&#xff1a; 1. 将python代码编译为so&#xff08;win环境是pyd&#xff09; 2.打包生成wheel文件&#xff0c;可以使用pip 进行安装 1. 项目结构 注意&#xff0c;__init__.py文件是必须的&#xff0c;内容可为空 2. example.py 里面是自己写的一些方法&am…

【hot100篇-python刷题记录】【滑动窗口最大值】

R6-子串篇 目录 Max Sort 单调队列法&#xff1a; Max 完了&#xff0c;我好像想到python的max class Solution:def maxSlidingWindow(self, nums: List[int], k: int) -> List[int]:ret[]left,right0,kwhile right<len(nums):ret.append(max(nums[left:right]))ri…

聊聊 PHP 多进程模式下的孤儿进程和僵尸进程

在 PHP 的编程实践中多进程通常都是在 cli 脚本的模式下使用&#xff0c;我依稀还记得在多年以前为了实现从数据库导出千万级别的数据&#xff0c;第一次在 PHP 脚本中采用了多进程编程。在此之前我从未接触过多进程&#xff0c;只知道 PHP-FPM 进程管理器是多进程模型&#xf…

【技术方案】智慧城市大数据平台技术方案(Doc原件)

第1章 总体说明 1.1 建设背景 1.2 建设目标 1.3 项目建设主要内容 1.4 设计原则 第2章 对项目的理解 2.1 现状分析 2.2 业务需求分析 2.3 功能需求分析 第3章 大数据平台建设方案 3.1 大数据平台总体设计 3.2 大数据平台功能设计 3.3 平台应用 第4章 政策标准保障体系 4.1 政策…

获发明专利加持,隆道加速推进企业级AI应用落地

近期&#xff0c;北京隆道网络科技有限公司研发的“基于供应链管理的AI采购业务分析装置及方法”获得国家发明专利授权。该项新专利的取得&#xff0c;证明了隆道在AI产业化应用中的技术前瞻性和创新性&#xff0c;也为隆道加速企业级AI应用落地提供了知识产权保障。 根据IBM发…

HTML+CSS+JavaScript制作动态七夕表白网页(含音乐+自定义文字)

源码介绍 一年一度的520情人节/七夕情人节/女朋友生日/程序员表白,是不是要给女朋友或者正在追求的妹子一点小惊喜呢&#xff0c;今天这篇博客就分享下前端代码如何实现HTMLCSSJavaScript制作七夕表白网页(含音乐自定义文字)。赶紧学会了&#xff0c;来制作属于我们程序员的浪…

【OpenCV】基础知识

目录 0 前言1 什么是OpenCV&#xff1f;1.1 OpenCV1.2 OpenCV-Python 2 在线英文文档3 新建项目4 图像读取4.1 读入图像4.2 显示图像4.3 保存图像4.4 Demo4.4.1 Demo14.4.2 Demo24.4.3 Demo3 5 ROI区域 0 前言 使用软件&#xff1a;Anaconda Pycharm VScode OpenCV环境&#…

vulmap No module named ‘thirdparty.urllib3.packages.six.moves‘

问题 今天安装vulmap是发现无论如何安装不了&#xff0c;pip那边明明已经安装好了 后来发现vulmap脚本也有这个东西&#xff0c;后面想了下 最后分析却发现不是pip那边&#xff0c;是vulmap的脚本的’thirdparty.urllib3.packages.six.moves’模块与我这边的pip有些模块冲突了…

“MongoDB AI应用计划 (MAAP)”正式全面推出

助企业弥合AI应用缺口&#xff0c;抢占创新发展制高点 在MongoDB&#xff0c;无论应用场景如何&#xff0c;出发点都是帮助客户解决应用和数据的问题。基于客户沟通与反馈&#xff0c;大多数企业和机构对生成式AI很感兴趣&#xff0c;但不确定如何将概念转化为生产力&#xff…

VSCode的markdown设置目录toc无法显示

如图我设置了目录的语法&#xff0c;但是显示出来并不是我想要的目录格式 想要显示目录&#xff0c;首先需要下载Markdown All in One插件 然后CtrlShiftV&#xff0c;就可以看到目录了

【C++题解】1053 - 求100+97+……+4+1的值。

欢迎关注本专栏《C从零基础到信奥赛入门级&#xff08;CSP-J&#xff09;》 问题&#xff1a;1053 - 求10097……41的值。 类型&#xff1a;简单循环 题目描述&#xff1a; 求 10097⋯41 的值。 输入&#xff1a; 无。 输出&#xff1a; 输出一行&#xff0c;即求到的和…

EmguCV学习笔记 C# 6.3 轮廓外接多边形

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 EmguCV是一个基于OpenCV的开源免费的跨平台计算机视觉库,它向C#和VB.NET开发者提供了OpenCV库的大部分功能。 教程VB.net版本请访问…

C++ JAVA源码 HMAC计算 openssl 消息认证码计算 https消息防篡改 通信安全

签名和验签 把所有消息按顺序合并成一条信息&#xff0c;对这个信息用密钥进行签名。 签名信息通过 HTTP 头 Sign 传递&#xff0c;没有携带签名或者签名验证不通过的请求&#xff0c;将会被认为异常请求&#xff0c;并返回相应 code 码。 校验方法&#xff1a;根据 http请求…

【嵌入式裸机开发】智能家居入门7:最新ONENET,MQTT协议接入,最全最新(微信小程序、MQTT协议、ONENET云平台、STM32)

智能家居入门7 前言一、ONENET云平台创建产品与设备二、STM32端连接服务器前的准备三、STM32端实现四、微信小程序端连接服务器前的准备五、微信小程序端实现六、最终测试 前言 本篇文章介绍最新ONENET云平台的MQTT协议接入方法&#xff0c;在STM32上实现数据上云与服务器下发…

影像组学与病理组学在鼻咽癌领域的最新研究进展|文献速递·24-08-23

小罗碎碎念 今天这期推文收纳了人工智能在鼻咽癌领域的最新研究进展&#xff0c;既涉及影像组学也涉及病理组学。 在写这期推文的时候&#xff0c;刚好看到了国自然基金放榜的消息&#xff0c;在这里也祝各位关注小罗的老师能如愿上榜&#xff01;&#xff01; 正在积极备战…