diff --git a/packages/ui-theme/icloud-theme/src/colors.js b/packages/ui-theme/icloud-theme/src/colors.js index 410fe5476134bfc337ad9a43a19d1d1cb0be5e48..489194debe61930549bc0bdd1d2e11748d57fdf2 100644 --- a/packages/ui-theme/icloud-theme/src/colors.js +++ b/packages/ui-theme/icloud-theme/src/colors.js @@ -345,9 +345,13 @@ exports.presetColors = { '--btn-link-padding': '4px 15px', '--btn-loading-text-display': 'inline', '--btn-link-text-decoration': 'none', - '--collapse-content-bg': 'var(--theme-component-bg)', - '--collapse-expand-icon-bg': 'var(--color-gray-3)', - '--collapse-header-bg': 'var(--color-gray-2)', + '--collapse-content-bg': 'var(--color-gray-3)', + '--collapse-expand-icon-bg': 'transparent', + '--collapse-header-bg': 'var(--theme-component-bg)', + '--collapse-header-font-weight': '400', + '--collapse-header-height': '40px', + '--collapse-content-box-padding-top': '10px', + '--collapse-content-box-padding-bottom': '10px', '--input-error-focus-background-color': 'var(--color-error-1)', '--input-focus-background-color': 'var(--color-brand-1)', '--input-warning-focus-background-color': 'var(--color-warning-1)', diff --git a/packages/ui-theme/osui-theme/src/colors.js b/packages/ui-theme/osui-theme/src/colors.js index 379c00bd7405d09de869de94626e50318ce26a9b..e942621c844bfe5667912de2b0ee52eb1321e545 100644 --- a/packages/ui-theme/osui-theme/src/colors.js +++ b/packages/ui-theme/osui-theme/src/colors.js @@ -371,6 +371,10 @@ exports.presetColors = { '--collapse-content-bg': 'var(--theme-component-bg)', '--collapse-expand-icon-bg': 'var(--color-gray-3)', '--collapse-header-bg': 'var(--color-gray-2)', + '--collapse-header-font-weight': '600', + '--collapse-content-box-padding-top': '8px', + '--collapse-content-box-padding-bottom': '8px', + '--collapse-header-height': '32px', '--input-error-focus-background-color': 'var(--theme-component-bg)', '--input-focus-background-color': 'var(--theme-component-bg)', '--input-warning-focus-background-color': 'var(--theme-component-bg)', diff --git a/packages/ui/badge/stories/icloud.stories.tsx b/packages/ui/badge/stories/icloud.stories.tsx index 39a0a236f97f21be1c43f551061ddce4f30ec2ae..d12f31078c02d8fdf881388ce835b5d2939644ab 100644 --- a/packages/ui/badge/stories/icloud.stories.tsx +++ b/packages/ui/badge/stories/icloud.stories.tsx @@ -3,7 +3,7 @@ import Space from '@osui/space'; import Badge from '../src'; export default { - title: '待验收/Badge 徽标数', + title: '验收中/Badge 徽标数', }; export const Demo = () => { diff --git a/packages/ui/collapse/src/index.less b/packages/ui/collapse/src/index.less index b393edcb38ac3562b59b33527eb15bb8a975fc53..7e1a2be83811d58d8af1c58bbf159cfb07b7beb7 100644 --- a/packages/ui/collapse/src/index.less +++ b/packages/ui/collapse/src/index.less @@ -1,19 +1,15 @@ @osui-collapse-class-prefix: osui-collapse; .@{osui-collapse-class-prefix} { - .ant-collapse > .ant-collapse-item > .ant-collapse-header .ant-collapse-arrow { - font-size: 0; - } - .ant-collapse-item { .ant-collapse-header { color: var(--theme-text-color); - font-weight: 600; + font-weight: var(--collapse-header-font-weight); font-size: 14px; padding-top: 0; padding-bottom: 0; - height: 32px; - line-height: 32px; + height: var(--collapse-header-height); + line-height: var(--collapse-header-height); .icon-wrapper { background: var(--collapse-expand-icon-bg); @@ -33,8 +29,38 @@ } .ant-collapse-item > .ant-collapse-content > .ant-collapse-content-box { - padding-left: 40px; - padding-top: 13px; - padding-bottom: 8px; + .content-padding(42px); } } + +.content-padding(@padding-left) { + padding-left: @padding-left; + padding-top: var(--collapse-content-box-padding-top); + padding-bottom: var(--collapse-content-box-padding-bottom); +} + +// 对层级的控制 +.nest(@level, @content-padding, @icon-padding) { + .@{osui-collapse-class-prefix}-level-@{level} { + &.ant-collapse-item > .ant-collapse-content > .ant-collapse-content-box { + padding: 0 !important; + } + + .@{osui-collapse-class-prefix}-level-child { + .ant-collapse-item > .ant-collapse-content > .ant-collapse-content-box { + .content-padding(@content-padding); + } + + .ant-collapse-header { + padding-left: @content-padding !important; + + .icon-wrapper.ant-collapse-arrow { + left: @icon-padding; + } + } + } + } +} + +.nest(1, 64px, 42px); +.nest(2, 86px, 64px); diff --git a/packages/ui/collapse/src/index.tsx b/packages/ui/collapse/src/index.tsx index b3cc32424a98d83a73adacbf30cf437dccf25f44..d64adb515de7c5198845857739d060f84776f7c9 100644 --- a/packages/ui/collapse/src/index.tsx +++ b/packages/ui/collapse/src/index.tsx @@ -1,23 +1,33 @@ import React, {useCallback} from 'react'; import {Collapse as AntdCollapse} from 'antd'; -import {CollapseProps as AntdCollapseProps} from 'antd/es/collapse'; +import {CollapseProps as AntdCollapseProps, CollapsePanelProps as AntdCollapsePanelProps} from 'antd/es/collapse'; import {IconRightArrow, IconDownArrow} from '@osui/icons'; import classNames from 'classnames'; import './index.less'; const clsPrefix = 'osui-collapse'; -export type CollapseProps = AntdCollapseProps; +interface CollapseProps extends AntdCollapseProps { + /** + * @description 嵌套的场景下,用于标记Collapse是Panel的子, + */ + levelChild?: boolean; +} interface CollapseInterface extends React.FC { - Panel: typeof AntdCollapse.Panel; + Panel: typeof CollapsePanel; } -const Collapse: CollapseInterface = ({className, ...restProps}) => { +const Collapse: CollapseInterface = ({className, levelChild, ...restProps}) => { const defaultProps = { - ghost: true, + className: classNames( + clsPrefix, + className, + { + [`${clsPrefix}-level-child`]: levelChild, + } + ), ...restProps, - className: classNames(clsPrefix, className), }; const expandIcon = useCallback( @@ -33,6 +43,24 @@ const Collapse: CollapseInterface = ({className, ...restProps}) => { return ; }; -Collapse.Panel = AntdCollapse.Panel; +interface CollapsePanelProps extends AntdCollapsePanelProps { + /** + * @description 嵌套的场景下,指明是第几层,从而控制缩进,目前只支持1, 2 + */ + level?: 1 | 2; +} + +const CollapsePanel: React.FC = ({className, level, ...props}) => { + const classes = classNames( + className, + { + [`${clsPrefix}-level-${level}`]: level, + } + ); + + return ; +}; + +Collapse.Panel = CollapsePanel; export default Collapse; diff --git a/packages/ui/collapse/stories/icloud.stories.tsx b/packages/ui/collapse/stories/icloud.stories.tsx index 5d88dbe28bae89b0bd63b4bcdad23cf6cd698cc6..465082adea82bcba6a383ab856dd0b4dd405fd0e 100644 --- a/packages/ui/collapse/stories/icloud.stories.tsx +++ b/packages/ui/collapse/stories/icloud.stories.tsx @@ -1,35 +1,40 @@ import React from 'react'; -import Collapse from '../src'; +import Collapse from '@osui/collapse'; const { Panel } = Collapse; export default { - title: '待验收/Collapse 折叠面板', + title: '验收中/Collapse 折叠面板', }; export const Demo = () => { - const text = '开源中国是目前国内最大的开源技术社区,拥有超过400万会员,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。'; + const text = '百度(纳斯达克:BIDU),全球最大的中文搜索引擎、最大的中文网站。百度愿景是:成为最懂用户,并能帮助人们成长的全球顶级高科技公司。'; return (

基础折叠面板

- + {text} - + {text} - + {text}

多层级折叠面板

+ 为了满足UE设计,多层级时,需要加level属性,和levelChild属性 - - - - {text} + + + + + + {text} + + {text} diff --git a/packages/ui/collapse/stories/osui.stories.tsx b/packages/ui/collapse/stories/osui.stories.tsx index d6a35878b6370ae208e2e03fbe76ba71b15b64eb..5cf0872d37c556248555178b46655ad867a178d4 100644 --- a/packages/ui/collapse/stories/osui.stories.tsx +++ b/packages/ui/collapse/stories/osui.stories.tsx @@ -11,8 +11,11 @@ export const Demo = () => { const text = '开源中国是目前国内最大的开源技术社区,拥有超过400万会员,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。'; return (
+ 注意:使用OSC主题的时候,需要手动传入ghost属性!!! +
+

基础折叠面板

- + {text} @@ -25,9 +28,9 @@ export const Demo = () => {

多层级折叠面板

- + - + {text} diff --git a/packages/ui/docs/icloud/stories/badge/index.stories.tsx b/packages/ui/docs/icloud/stories/badge/index.stories.tsx index df25223c64b377b452aec292f3211b057968bbb6..6fca6be612284634a9391759dfbb79f94885347b 100644 --- a/packages/ui/docs/icloud/stories/badge/index.stories.tsx +++ b/packages/ui/docs/icloud/stories/badge/index.stories.tsx @@ -3,7 +3,7 @@ import Space from '@osui/space'; import Badge from '@osui/badge'; export default { - title: '待验收/Badge 徽标数', + title: '验收中/Badge 徽标数', }; export const Demo = () => { diff --git a/packages/ui/docs/icloud/stories/collapse/index.stories.mdx b/packages/ui/docs/icloud/stories/collapse/index.stories.mdx index e9954968ec242caae5119a3f14df243be79e77ce..bb3fb9843d5c3f7f6d402dd43f2d6109db00e275 100644 --- a/packages/ui/docs/icloud/stories/collapse/index.stories.mdx +++ b/packages/ui/docs/icloud/stories/collapse/index.stories.mdx @@ -1,5 +1,5 @@ import {Meta, Story, Preview} from '@storybook/addon-docs/blocks'; -import * as stories from './index.stories'; +import * as stories from './index.stories' diff --git a/packages/ui/docs/icloud/stories/collapse/index.stories.tsx b/packages/ui/docs/icloud/stories/collapse/index.stories.tsx index 186069df1daadf157b018548cb06a102de59b849..465082adea82bcba6a383ab856dd0b4dd405fd0e 100644 --- a/packages/ui/docs/icloud/stories/collapse/index.stories.tsx +++ b/packages/ui/docs/icloud/stories/collapse/index.stories.tsx @@ -4,32 +4,37 @@ import Collapse from '@osui/collapse'; const { Panel } = Collapse; export default { - title: '待验收/Collapse 折叠面板', + title: '验收中/Collapse 折叠面板', }; export const Demo = () => { - const text = '开源中国是目前国内最大的开源技术社区,拥有超过400万会员,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。'; + const text = '百度(纳斯达克:BIDU),全球最大的中文搜索引擎、最大的中文网站。百度愿景是:成为最懂用户,并能帮助人们成长的全球顶级高科技公司。'; return (

基础折叠面板

- + {text} - + {text} - + {text}

多层级折叠面板

+ 为了满足UE设计,多层级时,需要加level属性,和levelChild属性 - - - - {text} + + + + + + {text} + + {text} diff --git a/packages/ui/docs/osui/stories/collapse/index.stories.mdx b/packages/ui/docs/osui/stories/collapse/index.stories.mdx index e9954968ec242caae5119a3f14df243be79e77ce..bb3fb9843d5c3f7f6d402dd43f2d6109db00e275 100644 --- a/packages/ui/docs/osui/stories/collapse/index.stories.mdx +++ b/packages/ui/docs/osui/stories/collapse/index.stories.mdx @@ -1,5 +1,5 @@ import {Meta, Story, Preview} from '@storybook/addon-docs/blocks'; -import * as stories from './index.stories'; +import * as stories from './index.stories' diff --git a/packages/ui/docs/osui/stories/collapse/index.stories.tsx b/packages/ui/docs/osui/stories/collapse/index.stories.tsx index 16d5375c6e241c2c655f6027b555d62e5d4a645f..51e73f26535e6b96aced243df6600f1ac35d6426 100644 --- a/packages/ui/docs/osui/stories/collapse/index.stories.tsx +++ b/packages/ui/docs/osui/stories/collapse/index.stories.tsx @@ -11,8 +11,11 @@ export const Demo = () => { const text = '开源中国是目前国内最大的开源技术社区,拥有超过400万会员,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。'; return (
+ 注意:使用OSC主题的时候,需要手动传入ghost属性!!! +
+

基础折叠面板

- + {text} @@ -25,9 +28,9 @@ export const Demo = () => {

多层级折叠面板

- + - + {text}