Skip to content

Commit 57b8bc4

Browse files
huhu-1981360151219matto49
authored
feat: 调整主页路由和样式 (#15)
* feat: use gasp * feat: scroll animation(bats&birds&mountains) * feat: 网页路由&主页滚动效果 * feat: 调主页路由和样式 * feat: pnpm构建 * fix: add gsap package * fix: title && component css * fix scroll problem --------- Co-authored-by: 1360151219 <[email protected]> Co-authored-by: matto49 <[email protected]>
1 parent a810d3e commit 57b8bc4

File tree

25 files changed

+1941
-1475
lines changed

25 files changed

+1941
-1475
lines changed

.vscode/settings.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,6 @@
1616
},
1717
"[typescript]": {
1818
"editor.defaultFormatter": "esbenp.prettier-vscode"
19-
} // required to format on save
19+
},
20+
"svg.preview.background": "white" // required to format on save
2021
}

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
"husky": "^8.0.2"
1616
},
1717
"dependencies": {
18-
"core-js": "^3.25.1"
18+
"core-js": "^3.25.1",
19+
"gsap": "^3.12.2"
1920
}
2021
}

packages/demo/index.scss

Lines changed: 3 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
:root {
22
--master-bg-color: rgb(252, 234, 220);
33
--master-deep-bg-color: #c76591;
4-
--master-text-color: #634f47;
4+
--master-text-color: #fff;
5+
--link-color: #eabe9e;
56
}
67
* {
78
padding: 0;
@@ -11,6 +12,7 @@ body,
1112
html,
1213
#root {
1314
height: 100%;
15+
font-family: 'Helvetica Neue', 'Gilroy ExtraBold', Times, serif;
1416
}
1517

1618
h1 {
@@ -69,51 +71,3 @@ h3 {
6971
padding: 32px 40px;
7072
margin: 24px;
7173
}
72-
73-
.pivot-code-box {
74-
position: relative;
75-
display: inline-block;
76-
width: 100%;
77-
margin: 16px 0;
78-
overflow: hidden;
79-
border: 1px solid rgba(5, 5, 5, 0.06);
80-
border-radius: 6px;
81-
-webkit-transition: all 0.2s;
82-
transition: all 0.2s;
83-
&-actions {
84-
display: flex;
85-
flex-direction: row-reverse;
86-
padding: 4px 8px;
87-
.pivot-code-box-icon {
88-
width: 20px;
89-
height: 20px;
90-
cursor: pointer;
91-
img {
92-
width: 100%;
93-
height: 100%;
94-
}
95-
}
96-
}
97-
&-demo {
98-
padding: 24px 30px;
99-
display: flex;
100-
border-bottom: 1px solid rgba(5, 5, 5, 0.06);
101-
flex-wrap: wrap;
102-
justify-content: center;
103-
align-items: center;
104-
> :not(.PIVOT-draggable-item) {
105-
margin: 0 24px;
106-
}
107-
}
108-
109-
.line-numbers {
110-
//width: 100%;
111-
.code-toolbar {
112-
.data-prismjs-copy {
113-
//width: 70vw;
114-
//width: 100%;
115-
overflow: auto;
116-
}
117-
}
118-
}
119-
}

packages/demo/index.tsx

Lines changed: 14 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,61 +1,26 @@
1-
import { useState } from 'react';
21
import ReactDom from 'react-dom/client';
3-
import { Outlet, BrowserRouter as Router, useRoutes } from 'react-router-dom';
4-
import { Button, Icon, Input, Skeleton, Card } from 'pivot-design';
2+
import React, { ReactNode } from 'react';
3+
import { BrowserRouter as Router, useLocation, useRoutes } from 'react-router-dom';
54
import router from '@/routers';
6-
import ButtonMdx from './src/components/Button/index.mdx';
7-
import IconMdx from './src/components/Icon/index.mdx';
8-
import InputMdx from './src/components/Input/index.mdx';
9-
import CardMdx from './src/components/Card/index.mdx';
10-
import SkeletonMdx from './src/components/Skeleton/index.mdx';
11-
import Draggable from '@/examples/Draggable/Draggable';
12-
import CodeBlock from '@/components/codeBlock';
135
import './index.scss';
14-
const App = () => {
15-
const [select, setSelect] = useState('Input');
16-
const demoSelect = () => {
17-
return (
18-
<div className="demo-container">
19-
<div className={`demo-item ${select === 'Button' ? 'active' : ''}`} onClick={() => setSelect('Button')}>
20-
按钮
21-
</div>
22-
<div className={`demo-item ${select === 'Card' ? 'active' : ''}`} onClick={() => setSelect('Card')}>
23-
卡片
24-
</div>
25-
26-
<div className={`demo-item ${select === 'Draggable' ? 'active' : ''}`} onClick={() => setSelect('Draggable')}>
27-
拖拽列表
28-
</div>
29-
<div className={`demo-item ${select === 'Skeleton' ? 'active' : ''}`} onClick={() => setSelect('Skeleton')}>
30-
骨架屏
31-
</div>
32-
<div className={`demo-item ${select === 'Icon' ? 'active' : ''}`} onClick={() => setSelect('Icon')}>
33-
图标
34-
</div>
35-
<div className={`demo-item ${select === 'Input' ? 'active' : ''}`} onClick={() => setSelect('Input')}>
36-
输入框
37-
</div>
38-
</div>
39-
);
40-
};
6+
import { useLayoutEffect } from 'react';
417

8+
const App = () => {
429
return useRoutes(router);
10+
};
4311

44-
/* <div className="pivot-design-docs-content">
45-
{demoSelect()}
46-
<div className="demo-component">
47-
{select === 'Button' ? <ButtonMdx components={{ Button, CodeBlock }} /> : null}
48-
{select === 'Icon' ? <IconMdx components={{ Icon, CodeBlock }} /> : null}
49-
{select === 'Input' ? <InputMdx components={{ Input, CodeBlock }} /> : null}
50-
{select === 'Card' ? <CardMdx components={{ Card, CodeBlock }} /> : null}
51-
{select === 'Draggable' ? <Draggable /> : null}
52-
{select === 'Skeleton' ? <SkeletonMdx components={{ Skeleton, CodeBlock }} /> : null}
53-
</div>
54-
</div> */
12+
const AutoScrollToTop: React.FC<{ children: React.ReactElement }> = ({ children }) => {
13+
const location = useLocation();
14+
useLayoutEffect(() => {
15+
document.documentElement.scrollTo(0, 0);
16+
}, [location.pathname]);
17+
return children;
5518
};
5619

5720
ReactDom.createRoot(document.getElementById('root') as HTMLElement).render(
5821
<Router>
59-
<App />
22+
<AutoScrollToTop>
23+
<App />
24+
</AutoScrollToTop>
6025
</Router>
6126
);

packages/demo/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
"dependencies": {
3939
"@mdx-js/loader": "^2.1.5",
4040
"babel-plugin-prismjs": "^2.1.0",
41+
"gsap": "^3.11.5",
4142
"pivot-design": "workspace:*",
4243
"pivot-design-icon": "workspace:*",
4344
"prismjs": "^1.29.0",

packages/demo/src/components/codeBlock.tsx renamed to packages/demo/src/components/_CodeBlock/codeBlock.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import Prism from 'prismjs';
22
import React, { useRef, useState, useEffect, TransitionEventHandler } from 'react';
3+
import './index.scss';
34
interface ICodeProps {
45
children: React.ReactNode;
56
code: string;
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
.pivot-code-box {
2+
position: relative;
3+
display: inline-block;
4+
width: 100%;
5+
margin: 16px 0;
6+
overflow: hidden;
7+
border: 1px solid rgba(5, 5, 5, 0.06);
8+
border-radius: 6px;
9+
-webkit-transition: all 0.2s;
10+
transition: all 0.2s;
11+
&-actions {
12+
display: flex;
13+
flex-direction: row-reverse;
14+
padding: 4px 8px;
15+
.pivot-code-box-icon {
16+
width: 20px;
17+
height: 20px;
18+
cursor: pointer;
19+
img {
20+
width: 100%;
21+
height: 100%;
22+
}
23+
}
24+
}
25+
&-demo {
26+
padding: 24px 30px;
27+
display: flex;
28+
border-bottom: 1px solid rgba(5, 5, 5, 0.06);
29+
flex-wrap: wrap;
30+
justify-content: center;
31+
align-items: center;
32+
> :not(.PIVOT-draggable-item) {
33+
margin: 0 24px;
34+
}
35+
}
36+
37+
.line-numbers {
38+
//width: 100%;
39+
.code-toolbar {
40+
.data-prismjs-copy {
41+
//width: 70vw;
42+
//width: 100%;
43+
overflow: auto;
44+
}
45+
}
46+
}
47+
}

packages/demo/src/examples/Draggable/Draggable.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import DraggableMdx from '../../components/Draggable/index.mdx';
22
import { DraggableItem, Droppable, arrayMove, DndContext, Sortable } from 'pivot-design';
3-
import CodeBlock from '@/components/codeBlock';
3+
import CodeBlock from '@/components/_CodeBlock/codeBlock';
44
import { useState } from 'react';
55

66
const Draggable = () => {

packages/demo/src/images/.DS_Store

6 KB
Binary file not shown.

packages/demo/src/images/bat.min.tsx

Lines changed: 28 additions & 0 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)