UI组件前端【免费下载链接】wired-elementsCollection of custom elements that appear hand drawn. Great for wireframes or a fun look.项目地址https://gitcode.com/gh_mirrors/wi/wired-elements点击查看免费下载是 wired-elements 组件库中一款带手绘hand-drawn涂鸦风格的选项卡TabsWeb Component常用于线框图wireframe、原型草稿或追求趣味视觉的页面中。本文以 docs/wired-tabs.md 为骨架结合仓库源码 src/wired-tabs.ts、 src/wired-tab.ts 等展开读者将掌握其安装方式、HTML/JavaScript 用法、属性与自定义 CSS 变量以及标签页切换、键盘导航等底层实现原理并能独立在项目中落地使用。一、wired-tabs 是什么wired-elements 是一套看起来像手绘的基础 UI 组件集合仓库描述为 Collection of custom elements that appear hand drawn适用于线框图、原型或追求手绘趣味视觉的场景。wired-tabs是其中的选项卡容器组件与其配套的wired-tab页面组件共同工作wired-tabs外层容器负责渲染一排手绘样式的标签按钮并控制当前展示哪个面板wired-tab每个标签页面板承载具体内容其外层带有手绘矩形边框。组件基于Lit构建、使用RoughJS生成涂鸦 SVG 路径见 package.json 中的dependencies标签按钮实际由wired-item渲染src/wired-tabs.ts 中引入并使用wired-item其实现见 src/wired-item.ts。完整组件清单可从 src/wired-elements.ts 的导出列表查看tabs 相关组件均在其中导出。二、安装与引入1. npm 安装将 wired-elements 添加到你的 JavaScript 项目npm i wired-elements2. 在模块代码中导入两种方式等价推荐按需导入以减小打包体积// 从主入口导入 import { WiredTabs, WiredTab } from wired-elements; // 或按文件导入跳过未使用的组件 import { WiredTabs, WiredTab } from wired-elements/lib/wired-tabs.js;注意WiredTab与WiredTabs是两个独立的自定义元素定义wired-tabs.js文件同时导出了两者见 src/wired-tabs.ts 与 src/wired-elements.tswired-tab内部还会依赖wired-item.jssrc/wired-tab.ts引入时无需手动加载 item。3. 直接通过 CDN 加载不需要构建工具时可直接在 HTML 中用 ES Module 方式加载script typemodule srchttps://unpkg.com/wired-elements/lib/wired-tabs.js?module/script仓库自带的示例 examples/tabs.html 演示了本地构建产物的引入方式script typemodule src../lib/wired-tab.js/script script typemodule src../lib/wired-tabs.js/script三、基本用法一个完整示例把wired-tab作为wired-tabs的子元素每个 tab 通过name属性作为唯一标识内容直接写在标签内即可wired-tabs selectedTwo wired-tab nameOne h4Card 1/h4 p Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. /p /wired-tab wired-tab nameTwo h4Card 2/h4 p Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. /p /wired-tab wired-tab nameThree h4Card 3/h4 p Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. /p /wired-tab /wired-tabsselectedTwo表示初始激活nameTwo的标签页。示例文件 examples/tabs.html 中演示了selectedThree的写法并把wired-tabs容器限制在max-width: 600px内居中显示。运行时动态切换selected是一个可绑定的 String 属性src/wired-tabs.ts 中声明为property({ type: String }) selected?。点击标签按钮时源码通过this.selected p.name更新属性src/wired-tabs.ts因此你也可以用 JavaScript 动态切换const tabs document.querySelector(wired-tabs); tabs.selected Three; // 切换到 nameThree 的标签页四、属性说明WiredTabs 属性属性类型说明selectedstring当前选中标签页的名称即对应wired-tab的name值行为细节依据源码默认选中第一个当selected未设置时mapPages()会把第一个wired-tab的name赋给selectedsrc/wired-tabs.ts容错回退如果selected对应的 name 找不到getElement()会回退到第一个标签页src/wired-tabs.ts支持空格分隔多名称pageMap会把name按空格拆分成多个段分别注册即一个 tab 可对应多个可匹配名称src/wired-tabs.ts。WiredTab 属性属性类型说明namestring该标签页的唯一标识用于选中匹配labelstring标签按钮上显示的文本默认回退为name的值label的默认行为在渲染逻辑中体现${p.label || p.name}src/wired-tabs.ts即未显式设置label时按钮文字等于name。wired-tabs wired-tab namesettings label设置…/wired-tab wired-tab nameabout label关于…/wired-tab /wired-tabs五、自定义 CSS 变量组件暴露两个 CSS 自定义变量用于定制选中态样式均由 src/wired-item.ts 中的按钮样式消费变量作用默认值--wired-item-selected-bg选中标签的涂鸦边框颜色#000--wired-item-selected-color选中标签的文字颜色#fff使用示例wired-tabs { --wired-item-selected-bg: #4caf50; --wired-item-selected-color: #fff; }源码依据button.selected { color: var(--wired-item-selected-color, #fff); }以及svg path { stroke: var(--wired-item-selected-bg, #000); … }src/wired-item.ts。这两个变量作用于wired-item即标签按钮因此既可写在wired-tabs上继承给子元素也可直接写在wired-item选择器上。六、原理与实现细节1. 标签页的注册与映射wired-tabs内部通过slot接收子元素slotchange事件触发mapPages()src/wired-tabs.ts。该方法只收集tagName wired-tab的元素节点src/wired-tabs.ts把它们存入pages数组同时把name支持空格拆分的多段写入pageMap从而建立名称 → 页面元素的映射。2. 选中状态的切换与面板显隐updated()中根据getElement()的结果为每个wired-tab添加或移除hidden类src/wired-tabs.ts。隐藏逻辑由 CSS 完成::slotted(.hidden) { display: none !important; }src/wired-tabs.ts。切换后还会通过双层requestAnimationFrame调用当前面板的wiredRender()确保手绘边框在内容尺寸变化后重绘。3. 手绘边框的绘制wired-tab继承自WiredBasesrc/wired-base.ts其draw()调用rectangle()在 overlay 的 SVG 中画出手绘矩形边框src/wired-tab.tsrectangle()基于 RoughJS 的roughRectangle生成抖动路径src/wired-lib.ts每个实例在构造时生成随机seedsrc/wired-base.ts所以每次绘制的手绘线条都不完全一样呈现出随手涂鸦的观感标签按钮wired-item的选中背景则用hachureFill()绘制斜线阴影填充src/wired-item.ts实现见 src/wired-lib.ts。4. 尺寸自适应wired-tab构造时会创建ResizeObserver监听自身尺寸变化以重绘 SVG在不支持ResizeObserver的环境下回退为监听window.resize事件src/wired-tab.ts并在元素卸载时通过disconnectedCallback释放监听。5. 键盘导航wired-tabs在firstUpdated()中注册keydown监听src/wired-tabs.ts按左/上方向键37/38→selectPrevious()按右/下方向键39/40→selectNext()。两个方法都会阻止默认行为并在标签页之间循环切换首尾相接从而支持键盘无障碍操作。七、注意事项selected匹配的是wired-tab的name值而不是label同一时刻只显示一个面板其余面板通过hidden类隐藏而非移除 DOM切换面板后手绘边框需要重绘源码采用双层requestAnimationFrame等待布局稳定后再绘制因此内容较多或含图片时首次渲染可能有极短暂的先显示后描边过程属正常现象若name为空则该 tab 无法被selected匹配mapPages仅注册非空 name但仍可作为首个标签被默认选中。八、许可证wired-tabs 随 wired-elements 一起以 MIT License 发布作者为 Preet Shihn。仓库根目录的 LICENSE 文件为完整许可文本。赞分享UI组件前端【免费下载链接】wired-elementsCollection of custom elements that appear hand drawn. Great for wireframes or a fun look.项目地址https://gitcode.com/gh_mirrors/wi/wired-elements点击查看免费下载相关推荐wired-card 实战指南用 wired-elements 打造手绘风格卡片容器wired card 实战指南用 wired elements 打造手绘风格卡片容器 wired card 是 wired elements 组件库中的容器型UI组件前端wired-elements 之 wired-radio-group手绘风格单选组组件完整使用与源码解析wired elements 之 wired radio group手绘风格单选组组件完整使用与源码解析 导读 wired radio group 是 wirUI组件前端Wired-Elements项目中的手绘风格列表组件wired-listbox详解Wired Elements项目中的手绘风格列表组件wired listbox详解 组件概述 wired listbox是Wired Elements项目提供的UI组件前端创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
华为数字化转型之道:业务变革方法论与落地实践指南 简介:《华为企业数字化转型之道》这份PDF资源系统介绍了华为数字化转型的核心方法论,面向企业管理者、数字化转型负责人及IT架构师,重点解决“为何转、转什么、如何转”的问题。内容从后疫情时代与产业互联网背景切入,阐述大型政企… · 2026/9/23 21:16:21
CST平面波斜入射仿真与极化设置详解 1. 项目背景与核心价值在电磁场仿真领域,平面波激励是最基础也最关键的边界条件设置之一。不同于简单的垂直入射情况,斜入射场景下的极化设置往往让初学者感到困惑。记得我第一次用CST仿真斜入射雷达散射截面(RCS)时,光是搞明白TE/TM极化定义… · 2026/9/23 21:16:08
NMOS特征频率f_T:高频电路设计的呼吸阈值与实测指南 简介:本资源是一份面向数字集成电路设计初学者与高校微电子专业学生的NMOS管高频特性仿真实验教学材料,聚焦Cadence环境下特征频率(fT)的原理理解、电路搭建与实测分析。资源以一份结构完整的Word文档(.docx࿰… · 2026/9/23 21:16:01
Flet HapticFeedback 服务:在 Python 中调用设备触觉反馈 前端跨平台桌面应用移动开发 【免费下载链接】flet Build realtime web, mobile and desktop apps in Python only. No frontend experience required. 项目地址: https://gitcode.com/gh_mirrors/fl/flet 点击查看 免费下载 导读
flet.HapticFeedback 是 Flet 提… · 2026/9/23 21:52:38
超融合HCI考试题库怎么刷?从核心考点到实战验证一次讲透 简介:一份面向华为HCI(超融合基础设施)认证备考的题库文档,适合正在准备华为HCI相关认证考试、或希望系统梳理超融合平台核心概念的工程师与运维人员使用。资源为单个docx文件,大小仅49KB,下载后可直接打开… · 2026/9/23 21:52:31
数据分析图表选型指南:四大类22种图表框架与实战避坑 做数据分析这行十来年,我见过太多人把一手好牌打得稀烂。数据清洗得干干净净,SQL写得漂漂亮亮,模型跑得稳稳当当,结果到了最后一步——画图,全毁了。不是把趋势数据塞进饼图,就是拿柱状图去展示占比关系&am… · 2026/9/23 21:52:25
2024无线电规则第二卷:频率划分与脚注查询实战指南 简介:《2024无线电规则 第二卷》是国际电信联盟最新修订版配套卷宗,汇集了WRC-23等历次世界无线电通信大会的调整要点,适用于频谱管理、频率划分、卫星通信及无线电监管从业者,也是考试与合规工作的重要参考。资源包含1个docx格式… · 2026/9/23 21:52:19
基于Python的学生成绩分析与预测系统LSTM算法-附源码 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台… · 2026/9/23 21:52:19
3招搞定手机怎么下载微信面试难题实战项目解析 3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A… · 2026/9/23 0:00:03
你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 面试被问“高并发下如何保证消息不丢失”,你张口就是“用Redis”,结果面试官追问“如果Redis宕机了怎么办”,你瞬间卡壳。这种场景太常见了,很多新手在背八股文时,只记住了技术名词… · 2026/9/23 0:00:29