Headless UI:无样式 UI 组件库

科技   2024-11-09 18:27   湖北  


文章底部获取项目地址



平时我们用其他 UI 组件库写一个项目时,自带样式往往不能满足产品设计需求于是就 !important 覆盖样式,如果覆盖后还不能实现交互效果,就重写样式,这样就会导致代码越来越冗长、复杂、难以维护。于是就有了 Headless UI。

Headless UI 是一个开源的、无样式的 UI 组件库,所谓无样式,就是不预设任何 CSS 样式,可以用 Tailwind CSS 等其他样式框架来构建预想的界面,Headless UI 专注于组件可访问性,逻辑性、灵活性,允许开发者为任何前端框架创建可定制的、无障碍友好的 UI 组件。
最直观的展现,就是在 PC 和移动端,我们可以用同一套逻辑的组件,两套不同的样式,来满足用户需求。

组件安装:
npm install @headlessui/react
使用
import { Menu, MenuButton, MenuItem, MenuItems } from '@headlessui/react'
function Example({
  return (
    <Menu>
      <MenuButton>My account</MenuButton>
      <MenuItems anchor="bottom">
        <MenuItem>
          <a className="block data-[focus]:bg-blue-100" href="/settings">
            Settings
          </a>
        </MenuItem>
        <MenuItem>
          <a className="block data-[focus]:bg-blue-100" href="/support">
            Support
          </a>
        </MenuItem>
        <MenuItem>
          <a className="block data-[focus]:bg-blue-100" href="/license">
            License
          </a>
        </MenuItem>
      </MenuItems>
    </Menu>

  )
}
修改样式:
只需修改引入样式 UI 的 className 即可,或者自定义样式。
功能和特性:
无样式组件:Headless UI 提供的是无样式的 UI 组件,这意味着它们不包含任何预设的样式或主题。这与其他前端框架(如 Bootstrap、Material-UI 等)不同,这些框架通常提供预设样式的组件,以便快速实现视觉上一致的界面。
可访问性优先:Headless UI 特别强调可访问性,确保其组件符合无障碍标准。这使得开发者可以构建出对所有用户都友好的应用,而不仅仅是视觉上吸引人的界面。
灵活性:由于组件没有预设样式,开发者可以完全控制组件的外观和行为,这提供了极高的灵活性。开发者可以根据自己的设计系统来定制组件样式,而不是受限于框架预设的样式。
框架不可知论:Headless UI 并不依赖于任何特定的前端框架,虽然它与 React 等现代框架配合得很好,但它也可以在其他框架或甚至没有框架的环境中使用。
专注于 UI 逻辑:Headless UI 更多地关注于组件的逻辑和行为,而不是它们的样式。这使得开发者可以重用组件逻辑,同时根据不同的项目需求来调整样式。
易于集成:由于 Headless UI 组件的无样式特性,它们可以很容易地集成到现有的项目中,而不需要替换现有的样式或组件。
国际化支持:Headless UI 考虑到了国际化的需求,使得组件可以轻松地适应不同的语言和地区。

《前端资源推荐》公众号收集各种前端组件 UI 框架、JS 插件工具、中后台系统模板、动画库、低代码、可视化资源、开源项目、学习资源、特效源码等,如有其他优秀资源,欢迎发消息投稿,感谢点赞、在看、转发、关注!!!

其他推荐


Arco Design Vue:字节前端开源 UI 组件库

GitHub 56k+ Star AI 项目 截图就能生成前端代码

Tesseractjs:OCR 前端识别提取图像文本字符

NutUI Bingo:助力双十一 京东抽奖游戏组件库

Vxe Table:Vue3 支持超大数据量渲染的表格组件

网页版 Windows 11 操作系统界面

F2:蚂蚁开源 跨平台多端可视化图表

Marsview:开源低代码平台 快速搭建自己的管理系统

项目地址


GitHub:https://github.com/tailwindlabs/headlessui

官方文档:https://headlessui.com/

前端资源推荐
推荐分享各种前端组件UI、插件工具、中后台系统、低代码、可视化、开源项目、学习资源、特效源码等
 最新文章