Svelte-UI,一套基于svelte.js开发的桌面pc端ui组件库

最近一直忙于写svelte-ui,一套svelte3开发的桌面端ui组件库。在设计及功能上借鉴了element-ui组件库。所以组件的使用方法也非常类似饿了么组件库。起因是想开发一个svelte后台管理系统,无赖发现没有比较合适的svelte组件库。于是便着手开发了这个svelte-ui。

早前使用svelte3开发的两个组件 svelte-layer弹窗 和 svelte-scrollbar虚拟滚动条 也整合到该组件库中了。

◆ 特色

  • 一致

在界面中一致:所有的元素和结构需保持一致,比如:设计样式、图标和文本、元素的位置等。

  • 反馈

通过界面样式和交互动效让用户可以清晰的感知自己的操作;

  • 效率

设计简洁直观的操作流程。

◆ 引入组件

在需要用到组件功能的页面引入组件。

import {
Button,
Input,
Radio,
Checkbox,
...
} from 'svelte-ui'

◆ 快速使用

<Button>默认按钮</el-button>
<Button type="primary">主要按钮</Button>
<Button type="success">成功按钮</Button>
<Button type="info">信息按钮</Button>
<Button type="warning">警告按钮</Button>
<Button type="danger">危险按钮</Button> <Input bind:value={inputVal} /> <Radio bind:checked={radioVal} label="radio组件" value="1" /> <Scrollbar autohide size={10}>...</Scrollbar> <Layer title="标题" content="弹窗内容" resize /> ...

<Radio {checked} label="默认选中" value={true} />
<Radio checked value={false}>默认不选中</Radio> <Radio bind:checked={radioValue1} label="Radio" value="1" /> <Radio bind:checked={radioValue2} label="选项A" value="a1" />
<Radio bind:checked={radioValue2} label="选项B" value="a2" /> <Radio bind:checked={radioValue3} label="备选项" value={1} />
<Radio bind:checked={radioValue3} label="备选项" value={2} />
<Radio bind:checked={radioValue3} label="备选项" value={3} /> <h3>自定义事件</h3>
<p>radio value:{radioValue4}</p>
<Radio bind:checked={radioValue4} value="1" on:change={handleChange}>置顶</Radio>
<Radio bind:checked={radioValue4} value="2" on:change={handleChange}>热门</Radio>
<Radio bind:checked={radioValue4} value="3" on:change={handleChange}>推荐</Radio>

单选框组的写法,支持自定义样式。

<script>
let radioGroup = '2'
function handleGroupChange(e) {
console.log('groupChange:', e.detail)
}
</script> <RadioGroup
bind:checked={radioGroup}
on:change={handleGroupChange}
style="background: #fee; padding: 10px;"
>
<Radio value="1" style="background: #e4f2ff; padding: 10px;">复选框A</Radio>
<Radio value="2">复选框B</Radio>
<Radio value="3">复选框C</Radio>
<Radio value="4" disabled>禁用</Radio>
</RadioGroup>

<Input bind:value={value1} placeholder="输入关键词" clearable />

<Input bind:value={value1} placeholder="输入关键词" size="small" clearable />

<Input bind:value={value1} placeholder="输入关键词" prefixIcon="sv-icon-search" clearable />

<Input bind:value={value1} placeholder="输入关键词" suffixIcon="sv-icon-locationfill" clearable>
<div slot="prepend"><i class="sv-icon-mail"></i></div>
</Input> <Input bind:value={value1} placeholder="输入关键词" clearable>
<div slot="prepend"><i class="sv-icon-edit"></i></div>
<div slot="append"><span>RMB</span></div>
</Input>

<Switch bind:checked={value1} activeColor="#d3bef9" inactiveColor="#eee" />

<Switch bind:checked={value2} activeText="open" inactiveText="close" />
<Switch bind:checked={value2} activeText="按季度结" inactiveText="按月结" /> <Switch bind:checked={value3} activeIcon="sv-icon-check" inactiveIcon="sv-icon-close" />
<Switch bind:checked={value3} activeIcon="sv-icon-musicfill" inactiveIcon="sv-icon-musicforbidfill" />

<script>
let activeKey1 = '2'
let tabArr1 = [
{ key: '1', label: '用户管理' },
{ key: '2', label: '系统管理' },
{ key: '3', label: '角色管理' },
{ key: '4', label: '定时任务管理' },
]
</script> <Tabs bind:value={activeKey1} tabs={tabArr1}>
{#each tabArr1 as item, index}
<TabPane key={item.key}>{item.label}{index}</TabPane>
{/each}
</Tabs>

<script>
let activeKey2 = 'k3'
let tabArr2 = [
{ key: 'k1', label: '用户管理' },
{ key: 'k2', label: '系统管理' },
{ key: 'k3', label: '角色管理' },
{ key: 'k4', label: '定时任务管理' },
]
let tabPosition = 'left'
function changePosition(pos) {
tabPosition = pos
}
</script> <Button on:click={()=>changePosition('top')}>top</Button> <Tabs
bind:value={activeKey2}
tabs={tabArr2}
{tabPosition}
style="height: 200px;"
>
{#each tabArr2 as item, index}
<TabPane key={item.key}>{item.label}{index}</TabPane>
{/each}
</Tabs>

支持动态增减选项卡。

Divider分割线,支持各种样式。

OK,由于还有部分组件还在开发中,目前就先分享出来这么多,接下来还会陆续分享出来。

基于Svelte3.x桌面端UI组件库Svelte UI的更多相关文章

  1. react UI组件库 Salt UI

    https://salt-ui.github.io/?spm=a219a.7629140.0.0.JWztQO

  2. 16款优秀的Vue UI组件库推荐

    16款优秀的Vue UI组件库推荐 Vue 是一个轻巧.高性能.可组件化的MVVM库,API简洁明了,上手快.从Vue推出以来,得到众多Web开发者的认可.在公司的Web前端项目开发中,多个项目采用基 ...

  3. [转载]前端——实用UI组件库

    https://www.cnblogs.com/xuepei/p/7920888.html Angular UI 组件 ngx-bootstrap 是一套Bootstrap 组件 官网:https:/ ...

  4. 强烈推荐优秀的Vue UI组件库

    Vue 是一个轻巧.高性能.可组件化的MVVM库,API简洁明了,上手快.从Vue推出以来,得到众多Web开发者的认可.在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正 ...

  5. ui组件库

    基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/ quasarframework/quasar: Quasar Frameworkhttps:/ ...

  6. 【转】优秀的Vue UI组件库

    原文来源:https://www.leixuesong.com/3342 Vue 是一个轻巧.高性能.可组件化的MVVM库,API简洁明了,上手快.从Vue推出以来,得到众多Web开发者的认可.在公司 ...

  7. vue移动端金融UI组件库滴滴MandMobile面向金融场景设计附功能思维导图

    vue移动端金融UI组件库滴滴MandMobile面向金融场景设计附功能思维导图 Mand Mobile是面向金融场景设计的移动端组件库,基于Vue.js实现.目前已实际应用于滴滴四大金融业务板块的1 ...

  8. 基于Vue的前端UI组件库的比对和选型

    大家好,我是张飞洪,感谢您的阅读,我会不定期和你分享学习心得,希望我的文章能成为你成长路上的垫脚石,让我们一起精进. 由于录制视频的需要,要做前端UI组件库的选型.平时国内外也见了不少基于Vue的UI ...

  9. 【转】前端——实用UI组件库

    Angular UI 组件 ngx-bootstrap 是一套Bootstrap 组件 官网:https://valor-software.com/ngx-bootstrap/#/ github: h ...

随机推荐

  1. redis在物理机部署模式下如何进行资源[cpu、网卡]隔离

    上周末晚上运营做直播,业务代码不规范,访问1个redis竟然把1台服务器的网卡打满了,这台服务器上的其他redis服务都受到了影响.之前没有做这方面的预案,当时又没有空闲的机器可以迁移,在当时一点办法 ...

  2. 字符串/16进制/ASCII码的转换

    1 /// <字符串转16进制格式,不够自动前面补零> 2 /// 假设文本框里面填写的是:01 02 03 04 05 06 3 /// Str获取的是01 02 03 04 05 06 ...

  3. JavaScript学习④

    * BOM 1. 事件 ## DOM简单学习:为了满足案例要求 * 功能:控制html文档的内容 * 获取页面标签(元素)对象:Element * document.getElementById(&q ...

  4. tomcat的搭建和介绍

    第19章 tomcat的搭建 19.1 tomcat学习之前的预备知识 19.1.1 什么是JVM和JDK,JRE JVM            java虚拟机,实现一份代码可以在不同的平台执行,具有 ...

  5. CoAP调试工具Mozi.IoT.CoAP应用详解

    前言 CoAP是一种类HTTP协议的物联网专用协议,其数据包为人类不可阅读的字节流形式,在开发相关应用的时候往往不能准确的了解数据包的内容.故需要专用的调试工具对数据和通讯进行调试.这篇文章是为了让开 ...

  6. Java 18 新特性:简单Web服务器 jwebserver

    在今年3月下旬的时候,Java版本已经更新到了18.接下来DD计划持续做一个系列,主要更新从Java 9开始的各种更新内容,但我不全部都介绍,主要挑一些有意思的内容,以文章和视频的方式来给大家介绍和学 ...

  7. Linux和kali Linux 介绍

    常用的渗透测试平台 CTFTools kali (近亲 Ubuntu) Parrot Security OS PentestBox --由印度人开发,运行在Windows下的渗透测试环境 kali L ...

  8. [题解][YZOJ50074] 小 C 的岛屿

    仅仅是对 \(O(n^4)\) 做法的一个记录. 简要题意 有 \(N\) 座岛屿,初始时没有边.每座岛屿都有一个概率值 \(p_i\) 和一个大小为 \(s_i\) 友好列表 \(A_i\) . 小 ...

  9. java.time包 时间处理类

    已经习惯用 Date类这里就不再赘述,下面介绍新的时间处理类 1.LocalDate类 // 本地日期LocalDate localDate = LocalDate.of(2022, 2, 27);S ...

  10. web渗透学习目录

    一,基础学习 01.基础学习 [[编码总结]] [[JSON三种数据解析方法]] [[js加密,解密]] [[Internet保留地址和非保留地址.内网和公网.VNC和UltraVN]] 代理 [[S ...