.ant-tabs-card .ant-tabs-content {
- height: 120px;
- margin-top: -16px;
-}
-.card-container > .ant-tabs-card .ant-tabs-content > .ant-tabs-tabpane {
- padding: 16px;
- background: #fff;
-}
-.card-container > .ant-tabs-card > .ant-tabs-nav::before {
- display: none;
-}
-.card-container > .ant-tabs-card .ant-tabs-nav-list > .ant-tabs-tab,
-[data-theme='compact'] .card-container > .ant-tabs-card .ant-tabs-nav-list > .ant-tabs-tab {
- background: transparent;
- border-color: transparent;
-}
-.card-container > .ant-tabs-card .ant-tabs-nav-list > .ant-tabs-tab-active,
-[data-theme='compact'] .card-container > .ant-tabs-card .ant-tabs-nav-list > .ant-tabs-tab-active {
- background: #fff;
- border-color: #fff;
-}
-#components-tabs-demo-card-top .code-box-demo {
- padding: 24px;
- overflow: hidden;
- background: #f5f5f5;
-}
-[data-theme='compact'] .card-container > .ant-tabs-card .ant-tabs-content {
- height: 120px;
- margin-top: -8px;
-}
-[data-theme='dark'] .card-container > .ant-tabs-card .ant-tabs-tab {
- background: transparent;
- border-color: transparent;
-}
-[data-theme='dark'] #components-tabs-demo-card-top .code-box-demo {
- background: #000;
-}
-[data-theme='dark'] .card-container > .ant-tabs-card .ant-tabs-content > .ant-tabs-tabpane {
- background: #141414;
-}
-[data-theme='dark'] .card-container > .ant-tabs-card .ant-tabs-tab-active {
- background: #141414;
- border-color: #141414;
-}
-```
diff --git a/components/tabs/demo/card-top.tsx b/components/tabs/demo/card-top.tsx
index 33dcab182c..dd9487e858 100644
--- a/components/tabs/demo/card-top.tsx
+++ b/components/tabs/demo/card-top.tsx
@@ -1,5 +1,41 @@
import React from 'react';
-import { Tabs } from 'antd';
+import { Tabs, theme } from 'antd';
+import { css } from '@emotion/css';
+
+const useStyle = () => {
+ const { token } = theme.useToken();
+ const antdTabsCls = '.ant-tabs';
+
+ return css`
+ background: ${token.colorBgLayout};
+ padding: ${token.paddingLG}px;
+
+ ${antdTabsCls}${antdTabsCls}-card {
+ ${antdTabsCls}-content {
+ padding: ${token.padding}px;
+ background: ${token.colorBgContainer};
+ }
+
+ ${antdTabsCls}-nav {
+ margin: 0;
+
+ ${antdTabsCls}-nav-wrap > ${antdTabsCls}-nav-list > ${antdTabsCls}-tab {
+ background: transparent;
+ border-color: transparent;
+
+ &-active {
+ border-color: ${token.colorBorderBg};
+ background: ${token.colorBgContainer};
+ }
+ }
+
+ &::before {
+ display: none;
+ }
+ }
+ }
+ `;
+};
const items = new Array(3).fill(null).map((_, i) => {
const id = String(i + 1);
@@ -16,10 +52,14 @@ const items = new Array(3).fill(null).map((_, i) => {
};
});
-const App: React.FC = () => (
-
-
-
-);
+const App = () => {
+ const style = useStyle();
+
+ return (
+
+
+
+ );
+};
export default App;
diff --git a/components/tabs/demo/custom-tab-bar-node.md b/components/tabs/demo/custom-tab-bar-node.md
index 626bd30790..9feb554ec3 100644
--- a/components/tabs/demo/custom-tab-bar-node.md
+++ b/components/tabs/demo/custom-tab-bar-node.md
@@ -8,7 +8,6 @@ Use `react-dnd@15+` to make tabs draggable.
```css
.dropping {
- background: #fefefe;
transition: all 0.3s;
}
```
diff --git a/components/tabs/demo/custom-tab-bar-node.tsx b/components/tabs/demo/custom-tab-bar-node.tsx
index 2ac7c743ad..6d56166d92 100644
--- a/components/tabs/demo/custom-tab-bar-node.tsx
+++ b/components/tabs/demo/custom-tab-bar-node.tsx
@@ -12,7 +12,8 @@ interface DraggableTabPaneProps extends React.HTMLAttributes
{
const DraggableTabNode = ({ index, children, moveNode }: DraggableTabPaneProps) => {
const ref = useRef(null);
- const [{ isOver, dropClassName }, drop] = useDrop({
+
+ const [{ isOver }, drop] = useDrop({
accept: type,
collect: (monitor) => {
const { index: dragIndex } = monitor.getItem() || {};
@@ -21,7 +22,6 @@ const DraggableTabNode = ({ index, children, moveNode }: DraggableTabPaneProps)
}
return {
isOver: monitor.isOver(),
- dropClassName: 'dropping',
};
},
drop: (item: { index: React.Key }) => {
@@ -37,8 +37,14 @@ const DraggableTabNode = ({ index, children, moveNode }: DraggableTabPaneProps)
});
drop(drag(ref));
+ // Style
+ const style: React.CSSProperties = { marginRight: 24 };
+ if (isOver) {
+ style.transition = 'all 0.3s';
+ }
+
return (
-
+
{children}
);
diff --git a/components/tabs/demo/custom-tab-bar.md b/components/tabs/demo/custom-tab-bar.md
index 8fdf248b16..75e1e04a51 100644
--- a/components/tabs/demo/custom-tab-bar.md
+++ b/components/tabs/demo/custom-tab-bar.md
@@ -5,16 +5,3 @@
## en-US
Use react-sticky.
-
-```css
-.site-custom-tab-bar {
- z-index: 1;
- background: #fff;
-}
-```
-
-
diff --git a/components/tabs/demo/custom-tab-bar.tsx b/components/tabs/demo/custom-tab-bar.tsx
index db36b5e50a..7574e57bf6 100644
--- a/components/tabs/demo/custom-tab-bar.tsx
+++ b/components/tabs/demo/custom-tab-bar.tsx
@@ -5,9 +5,7 @@ import { Sticky, StickyContainer } from 'react-sticky';
const renderTabBar: TabsProps['renderTabBar'] = (props, DefaultTabBar) => (
- {({ style }) => (
-
- )}
+ {({ style }) => }
);
diff --git a/components/tabs/index.en-US.md b/components/tabs/index.en-US.md
index 39165d405c..eaa91867c6 100644
--- a/components/tabs/index.en-US.md
+++ b/components/tabs/index.en-US.md
@@ -28,7 +28,7 @@ Ant Design has 3 types of Tabs for different situations.
Position
Card type tab
Add & close tab
-
Container of card type Tab
+
Container of card type Tab
Customized trigger of new tab
Customized bar of tab
Draggable Tabs
diff --git a/components/tabs/index.zh-CN.md b/components/tabs/index.zh-CN.md
index 0758a614e6..0cbddb2d80 100644
--- a/components/tabs/index.zh-CN.md
+++ b/components/tabs/index.zh-CN.md
@@ -31,7 +31,7 @@ Ant Design 依次提供了三级选项卡,分别用于不同的场景。
位置
卡片式页签
新增和关闭页签
-
卡片式页签容器
+
卡片式页签容器
自定义新增页签触发器
自定义页签头
可拖拽标签