React UI 组件库 Chakra UI - 01 v1.0介绍和快速使用

Chakra UI

Chakra UI 是简单、模块化和可访问的 UI 组件库。

本文 Chakra UI 版本:v1.6.2

  • 基于 React 和 Emotion(CSS-IN-JS 方案库)
  • 基于 Styled System
  • 支持开箱即用的主题功能
    • 基于 Chakra 默认提供的主题进行构建或扩展
  • 支持颜色模式,大部分组件默认支持暗夜模式
  • 拥有大量功能丰富且非常有用的组件
  • 使响应式设计变得轻而易举
    • 内部提供了为元素添加响应式样式的方式
  • 适用于构建用于给用户展示的界面
    • 相对的,Antd 更适合做企业管理后台界面

缺点:

  • 有些功能文档没有讲的很明白
  • 一些组件的 colorSchemesizevariant 需要自己扩展

快速使用

安装

  • @chakra-ui/react Chakra UI 核心库
  • @emotion/react Emotion 核心库
  • @emotion/styled Emotion styled API
  • framer-motion 一个 React 动画库,提供了一些通过 prop 与组件对接的API
npm i @chakra-ui/react @emotion/react@^11 @emotion/styled@^11 framer-motion@^4

设置 Provider

Chakra UI 提供的组件都是建立在主题基础之上的。

要想让组件正常运行,需要在应用最外层设置 ChakraProvider 组件。

ChakraProvider组件为主题对象提供上下文环境,将主题对象放在全局,供包裹的组件使用。

Chakra UI 默认为用户提供了一套主题,也可以通过 theme 属性使用自定义主题。

ChakraProvider组件可以配置 themeresetCSS 属性:

  • theme 自定义或扩展的主题对象
    • Chakra UI 默认提供了一个主题样式
    • Chakra UI v0 版本还需要手动import并传入默认主题
  • resetCSS 是否自动添加 CSSReset 组件
    • 默认为 true
    • CSSReset 组件用于设置 CSS 重置样式
    • Chakra UI v0 版本需要手动添加该组件
import React from 'react'
import ReactDOM from 'react-dom'
import App from './App'
import { ChakraProvider } from '@chakra-ui/react'

ReactDOM.render(
  <ChakraProvider>
  	<App />
  </ChakraProvider>,
  document.getElementById('root')
)

查看效果

// App.js
import { useTheme, Button } from '@chakra-ui/react'

function App() {
  // 调用钩子函数,查看默认主题对象
  console.log(useTheme())
  return (
    <div>
      <Button colorScheme="blue">Button</Button>
    </div>
  );
}

export default App;

npm start

Style Props 样式属性

Style Props (样式属性)是通过向组件传递属性来更改组件样式的一种方式。

它通过提供简化的样式属性的方法提高开发效率。

Chakra UI 的组件提供了很多简化的样式属性,例如:

样式属性CSS 属性主题
m, marginmarginspace
mt, marginTopmargin-topspace
mxmargin-inline-start + margin-inline-endspace
mymargin-top + margin-bottomspace
p, paddingpaddingspace
pt, paddingToppadding-topspace
colorcolorcolors
bg, backgroundbackgroundcolors
bgColorbackground-colorcolors
opacityopacitynone
borderborderborders
borderWidthborder-widthborderWidths
borderStyleborder-styleborderStyles

样式属性更多查看:Style Props - Chakra UI

import { Box } from '@chakra-ui/react'

function App() {
  return <Box w="200px" h="100px" bgColor="tomato" color="gray.600" />
}

export default App

主题:表示可以使用主题中对应节点下定义的预设值,例如 colors 节点下的 gray.50 表示 #f7fafc。详细参考 [Default Theme](

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值