Svelte Material UI

通用

一个通用的标签和图标、辅助工具和基本组件。

安装
npm i -D @smui/common
演示
通用标签和图标

通用标签和图标也从使用它们的每个包中导出。

SmuiElement 组件

许多 SMUI 组件允许您自定义用于渲染它们的 DOM 元素。这使用 SmuiElement 组件完成。

我是一个 <div /> 按钮
我是一个 <span /> 按钮
我是一个 <strong /> 按钮
我是一个 <em /> 按钮

我是一个 <p /> 按钮

我被渲染为一个 HTML em 元素!
Svg 元素

在允许您自定义用于渲染它们的 DOM 元素的 SMUI 组件中,您可以使用“svg”标签来渲染 SVG。

SVG Logo - Svelte Material UI 组件库 Designed for the SVG Logo Contest in 2006 by Harvey Rayner, and adopted by W3C in 2009. It is available under the Creative Commons license for those who have an SVG product or who are using SVG on their site. SVG Logo14-08-2009W3CHarvey Rayner, designerSee document descriptionimage/svg+xml
Clicked: 0

辅助工具

类映射

从类名到条件的映射构建一个类字符串。当您需要向组件添加类时,这很有用,因为 Svelte 的“class:”指令在组件上不起作用。(它也对采用 addClassremoveClass 函数的操作很有用。)

分派

分派一个自定义事件。这与 Svelte 的组件事件系统不同,因为这些事件需要一个 DOM 元素作为目标,可以冒泡(默认情况下这样做),并且可以使用 event.preventDefault() 取消。所有 SMUI 事件都是使用它而不是 Svelte 的 createEventDispatcher 分派的。

我是事件监听器。
我是事件目标。

Caught Event Detail: undefined
排除和前缀过滤器

排除与正常的 omit 函数不同,因为它还排除所有以给定字符串开头的属性,如果该字符串以“$”结尾。前缀过滤器过滤一个对象,只保留具有特定前缀的属性。它们通常一起使用,以允许将道具提供给组件中的多个元素。

转发事件生成器

构建一个操作以允许将 **所有** 事件从 Svelte 组件转发,并支持使用“$”语法的事件修饰符。

  • 这对于 UI 库组件特别有用,因为它通常不知道所有所需用例将需要哪些事件。例如,如果按钮组件只转发 click 事件,那么任何需要 mouseoverkeypress 事件的用例都无法使用它。
  • 此外,使用 Svelte 内置事件转发系统的组件不允许在事件生命周期的“捕获”阶段使用事件监听器。它也不允许使用浏览器的内置 preventDefault 函数取消事件。事实上,Svelte 事件系统的一大优势,即您不需要元素作为事件目标,甚至不适用于 UI 库组件。

点击我,按键我,聚焦我,模糊我,随意使用我。
Clicked: 0, Key Pressed: None, Focused: false
使用操作

一个执行操作并在元素上运行它们的 action。 用于允许对组件执行操作,并将操作从一个组件转发到另一个组件,直到最终组件最终渲染 DOM 元素。

滑动我。
点击我。
按下我。
宣布

一个向使用屏幕阅读器的用户宣布文本字符串的函数。

请注意,如果您没有使用屏幕阅读器,此演示将无法为您使用。

其他组件

类添加器构建器

使用它构建一个 ClassAdder 组件。 ClassAdder 组件对于减小您的包大小很有用。 如果你有很多简单的组件只需要添加类/属性或设置上下文,使用 ClassAdder 组件意味着你的包中只有一个实际的 Svelte 组件,用于所有这些许多小组件。

我是一个添加了类的组件!