首页 > 其他分享 >Radix UI 3.0 发布,新的布局引擎

Radix UI 3.0 发布,新的布局引擎

时间:2024-03-27 09:58:05浏览次数:25  
标签:Radix 布局 Themes UI 3.0 使用 组件 构建

Radix UI 3.0 刚刚发布,带来了新的布局引擎、新的组件和自定义调色板生成器,这个版本的发布是向着成为构建现代应用程序的最佳组件库迈出了一大步。我们将在本文中介绍主要亮点。

自定义调色板

Radix Themes 配备了近 30 种颜色比例,每种都有自己的浅色、深色和 alpha 变体。在内部,颜色系统由 Radix Colors 提供支持。

Radix Colors 是一个全面的色彩系统,用于设计美观、易于访问的网站和应用程序。

每个比例都经过调整,以提供完全可访问的对比度,每个比例都对应于背景、交互组件、边框和文本。提供您使用过的最美丽、最直观的色彩系统。

今天,我们推出了一种新工具,可让您为 Radix 主题创建自己的品牌调色板。它是一个简单的界面,可让您指定主色、灰色和页面背景,生成颜色配置以复制粘贴到您的主题样式中。

新组件

Radix Themes 3.0 引入了许多用于构建仪表板和数据密集型界面的新组件。它们的构建和设计符合您对 Radix 的期望,并且像往常一样,键盘和屏幕阅读器用户也可以使用它们。以下是主要亮点的快速概述。

Spinner 旋转器

Spinner 是一个简单的动画加载指示器。它配备了一个直观的 API,可以在子级加载完成后有条件地渲染它们。实现看起来毫不费力——本来就是这样的。

Spinner 在获取数据时保留子维度,因此状态之间没有布局转换。这是处理应用程序中加载状态的一种符合人体工程学的方法,因为它最大限度地减少了常见情况下所需的代码分支量。

Skeleton 骨骼

Skeleton 是此版本中的另一个加载组件。Skeleton 具有与 Spinner 类似的 API,但它也完全采用子组件的形状和大小,因此您可以使用与实际中使用的布局完全相同的布局来构建骨架界面。

Segmented Control 分段控制

Segmented Control 采用了熟悉的切换按钮设计,用于在值之间切换。Segmented Control 包了许多精心制作的隐形细节。例如,在活动项目上使用了更加粗体的字重,但没有布局移位,并且动画调整得非常平滑,即使是字重变化也能过渡顺畅。

Data List 数据列表

Data List 是用于显示一组键值对的组件。Data List 有什么特别之处?这是一个常见的模式,看似简单却很难做到完美。在我们设计时,不得不整理出一个包含所有不同布局组合的秘密页面。

Reset 重置

与其他组件不同,Reset 是一个不可见的组件。Reset 会从任何 HTML 标记中删除默认的浏览器样式,并设置惯用的布局默认值,以便您可以在其之上构建自定义组件。

在大多数界面中,这些样式是全局的并影响整个应用程序,因此这往往是删除尽可能多的样式和保留常见默认值之间的折衷方案。 Reset 为几乎所有网站都需要的标准化样式的人体工程学带来了新的变化。

Radio Cards 单选卡片

Radio Cards 是从多个选择中选择一个值的常见模式。它们用于视觉上引人入胜的表单,其中每个选项相比普通的单选按钮具有更高权重。

Checkbox Cards 复选框卡片

Checkbox Cards 与 Radio Cards 类似,但用于选择多个值。

Progress 进度条

Progress 是另一个加载组件。它可用于指示任务的进度,或者使用模糊动画来表示不确定的进展。

Tab Nav 选项卡导航

Tab Nav 是一个用于导航到不同视图的组件。它与类似的 Tabs 相辅相成,但它是建立在提供屏幕阅读器可访问性和针对链接定制键盘导航的 Navigation Menu 之上。

新的布局引擎

新引擎使布局组件及其属性更强大且更易使用。

布局组件是 Radix Themes 的基础功能。它们只有五种:Box、Flex、Grid、Section 和 Container。这些组件用于将布局与内容和交互分离开来。

当您将布局问题与内容和交互分离时,您创建的组合会更易于维护和推理。这些组件允许您快速为应用程序中的视图、页面和其他交互元素添加结构。

更好的布局属性

在此版本中,布局组件已经添加了许多新的属性,并且它们接受的值已经进行了重大改动:用于处理 flex 和 grid 布局的 9 个新属性;用于控制布局组件尺寸的 4 个新属性;除了空间比例值之外,现在所有布局属性都接受有效的 CSS 值,包括在响应式对象语法中使用时。

响应式对象语法

在 Radix Themes 中,响应式对象语法是您如何在不离开 React 代码的情况下,在不同断点上构建响应式布局的方式,这里就是您组合应用程序本身的地方。

考虑以下代码片段:

<Flex width="500px" />

这将创建一个宽度为 500px 的 flexbox 布局。但如果您想在移动设备上使用不同的宽度怎么办?可以使用响应式对象语法来实现,您可以指定在特定断点处要使用的值:

<Flex width={{ initial: '100%', sm: '300px', md: '500px' }} />

除了空间比例值之外,布局属性还将支持有效的 CSS 值。可以在特定断点上使用 100px、50vw 甚至像 calc(100vw - 200px) 这样的表达式。

它的性能如何,它是否与服务器组件一起工作?这就是上面提到的 <Flex> 元素呈现到 DOM 中的方式:

<div
  style={{ '--width': '100%', '--width-md': '500px', '--width-sm': '300px' }}
  class="rt-Flex rt-r-w sm:rt-r-w md:rt-r-w"
/>

您可以看到,<Flex> 元素被编译成一组实用类和 CSS 自定义属性的组合。这意味着性能就像普通的 CSS 一样,并且该组件可以在服务器上渲染。

两全其美的

总共有 5 个布局组件,每个组件有近 40 个 Props。它们共同构成了一个易于学习、快速掌握的系统,并为您在不切换文件和关注点分离的情况下,可以实现的目标设定了令人难以置信的高上限。

如果您从未使用过此类系统,我们建议您尝试一下。它是 Tailwind 的一个很好的替代品,Tailwind 是一个非常强大的工具,最初是为了相同的目的而构建的。然而,今天它已经发展成为一个完整的样式范例,不会阻止您动态创建复杂的样式,这可能会违反前面提到的关注点分离。

Radix Themes 布局具有实用程序类框架可能为布局提供的全部功能,但它也是类型安全的,并指导开发人员与他们正在构建的界面的其他部分保持清晰的边界。

独立布局组件

如果您只想使用 Radix Themes 中的布局组件那也是可以的。只需确保 Tree Shaking 在项目中可以正常工作,并导入布局 CSS:

import '@radix-ui/themes/layout.css';

使用 Astro 和 Remix 进行零配置设置

现在使用 Remix 和 Astro 设置 Radix 主题要容易得多。在 3.0 中,我们重新审视了库的构建方式,以确保对 ESM 环境的开箱即用支持。

该发行版现在是一个混合 ESM/CommonJS 包。根据您的设置,您的导入解析器现在将自动选择正确的版本。

贡献者

Radix Themes 3.0 是许多贡献者辛勤工作的结果。我们要感谢所有为此版本做出贡献的人,无论是通过代码、文档、设计还是社区支持。

标签:Radix,布局,Themes,UI,3.0,使用,组件,构建
From: https://blog.csdn.net/ikxin/article/details/137037340

相关文章

  • 分享一个DuiLib VSCode UI预览插件
    本插件能够在VSCode上预览DuiLib的XML文件,这样用VSCode编写UI就很方便了我公司的Windows客户端UI是基于DuiLib的,平时在写UI的过程中,经常需要频繁打开客户端来看查看样式,对我来说就很不方便。我一般用VSCode来写XML,某一天前端同事分享了一个他自己开发的VSCode插件,我就在想,......
  • MaterialEditor GUI重写的歪门邪道
    MaterialEditorGUI重写的歪门邪道序言以前有人在群里问过怎么过滤掉unity里面的其他没有用的Shader,或者重新将工程里面的Shader列表重新排序。反编译这个经过反编译代码,我找到了欺骗世界的方法。(其实也比较简单,找到绘制下拉窗口的GUI函数调用位置。然后修改过滤方法就行了......
  • VUE3.0(一):模板语法及指令介绍
    模板语法Vue使用了基于HTML的模板语法,允许开发者声明式地将DOM绑定至底层Vue实例的数据。Vue的核心是一个允许你采用简洁的模板语法来声明式的将数据渲染进DOM的系统。结合响应系统,在应用状态改变时,Vue能够智能地计算出重新渲染组件的最小代价并应用到DOM......
  • duilib 自定义扩展列表
    目录前言一、扩展列表项1、基本数据结构列表项Item1)、ListContainerElement定义......
  • 探寻UUID的起源与奥秘:从时间戳到唯一标识
    1.UUID起源与原理UUID(UniversallyUniqueIdentifier)是一种唯一标识符,最初由Apollo计算机公司的软件工程师RoedyGreen在1987年提出。其原理是基于时间戳、节点标识、时钟序列和随机数生成唯一标识。UUID/GUID生成器|一个覆盖广泛主题工具的高效在线平台(amd794.com)htt......
  • 2024-03-26 16:26:50.745 [main] INFO c.a.d.s.b.a.DruidDataSourceAutoConfigure -
    2024-03-2616:42:38.759[main]INFOc.a.d.s.b.a.DruidDataSourceAutoConfigure-InitDruidDataSource2024-03-2616:42:43.114[main]INFOcom.alibaba.druid.pool.DruidDataSource-{dataSource-1}inited2024-03-2616:42:47.348[main]INFOcom.alibaba.druid.po......
  • Element UI中日期选择日(date-picker)等其他选择器下拉显示错位、位置错误解决
    省流版给选择器加上唯一key(下面的想看就看)问题复现需求是用一个下拉切换时间维度的选择,分别为年度、季度、月度,但是开发的时候发现,当切换的时候,视图可正常切换,但点击选择时却发现选择器跑到了左上角,代码和问题截图如下:问题代码:<el-forminline><el-for......
  • 149. 如何在 SAPGUI 的 ABAP 报表里显示图片
    本教程前一篇步骤,我们学习了在SAPGUI里,将屏幕划分成若干个区域,每个区域分别放置GUI元素进行屏幕绘制的方法。148.使用SAPGUI的Docking控件将屏幕划分成若干子区域当时我们完成了一个例子,一个完整的屏幕,被划分成了左上,左下和右边三个区域,分别显示了三个TextEd......
  • tailwindcss 默认的button按钮样式导致其他ui库,如antd、element等透明失效问题的终极
    我先说一下好消息,这个问题在官方层面已经准备解决了,并且在当前版本(3.4.1)的下一个正式版彻底解决。这里是原文:https://github.com/tailwindlabs/tailwindcss/pull/12735但截至目前24.3.26日,仍然没发布新版。官方的解决办法也很简单,就是降低优先级原来的:button,[type='button......
  • React-hook-form-mui(一):基本使用
    前言在项目开发中,我们选择了React+MUI作为技术栈。在使用MUI构建form表单时,我们发现并没有与antd类似的表单验证功能,于是我们选择了MUI推荐使用的react-hook-form-mui库去进行验证。但是发现网上关于这个库的使用方法和demo比较少且比较简单,并没有复杂的表单验证的demo。......