@xyd-js/theme-poetry 0.1.0-xyd.5 → 0.1.0-xyd.68
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +625 -0
- package/LICENSE +21 -0
- package/dist/index.css +1 -1
- package/dist/index.d.ts +4 -18
- package/dist/index.js +29 -126
- package/dist/index.js.map +1 -1
- package/package.json +16 -11
- package/rollup.config.js +15 -7
- package/src/imports.css +1 -0
- package/src/index.css +5 -65
- package/src/override.css +86 -6
- package/src/theme.tsx +40 -60
- package/src/vars.css +56 -3
- package/tsconfig.json +3 -0
- package/public/fonts/MonaSans/LICENSE +0 -93
- package/public/fonts/MonaSans/Mona-Sans.ttf +0 -0
- package/public/fonts/MonaSans/Mona-Sans.woff2 +0 -0
- package/public/fonts/MonaSans/OTF/MonaSans-Black.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSans-BlackItalic.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSans-Bold.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSans-BoldItalic.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSans-ExtraBold.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSans-ExtraBoldItalic.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSans-ExtraLight.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSans-ExtraLightItalic.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSans-Italic.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSans-Light.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSans-LightItalic.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSans-Medium.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSans-MediumItalic.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSans-Regular.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSans-SemiBold.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSans-SemiBoldItalic.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSansCondensed-Black.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSansCondensed-BlackItalic.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSansCondensed-Bold.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSansCondensed-BoldItalic.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSansCondensed-ExtraBold.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSansCondensed-ExtraBoldItalic.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSansCondensed-ExtraLight.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSansCondensed-ExtraLightItalic.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSansCondensed-Italic.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSansCondensed-Light.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSansCondensed-LightItalic.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSansCondensed-Medium.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSansCondensed-MediumItalic.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSansCondensed-Regular.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSansCondensed-SemiBold.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSansCondensed-SemiBoldItalic.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSansExpanded-Black.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSansExpanded-BlackItalic.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSansExpanded-Bold.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSansExpanded-BoldItalic.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSansExpanded-ExtraBold.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSansExpanded-ExtraBoldItalic.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSansExpanded-ExtraLight.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSansExpanded-ExtraLightItalic.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSansExpanded-Italic.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSansExpanded-Light.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSansExpanded-LightItalic.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSansExpanded-Medium.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSansExpanded-MediumItalic.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSansExpanded-Regular.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSansExpanded-SemiBold.otf +0 -0
- package/public/fonts/MonaSans/OTF/MonaSansExpanded-SemiBoldItalic.otf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSans-Black.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSans-BlackItalic.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSans-Bold.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSans-BoldItalic.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSans-ExtraBold.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSans-ExtraBoldItalic.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSans-ExtraLight.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSans-ExtraLightItalic.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSans-Italic.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSans-Light.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSans-LightItalic.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSans-Medium.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSans-MediumItalic.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSans-Regular.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSans-SemiBold.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSans-SemiBoldItalic.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSansCondensed-Black.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSansCondensed-BlackItalic.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSansCondensed-Bold.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSansCondensed-BoldItalic.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSansCondensed-ExtraBold.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSansCondensed-ExtraBoldItalic.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSansCondensed-ExtraLight.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSansCondensed-ExtraLightItalic.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSansCondensed-Italic.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSansCondensed-Light.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSansCondensed-LightItalic.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSansCondensed-Medium.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSansCondensed-MediumItalic.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSansCondensed-Regular.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSansCondensed-SemiBold.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSansCondensed-SemiBoldItalic.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSansExpanded-Black.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSansExpanded-BlackItalic.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSansExpanded-Bold.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSansExpanded-BoldItalic.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSansExpanded-ExtraBold.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSansExpanded-ExtraBoldItalic.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSansExpanded-ExtraLight.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSansExpanded-ExtraLightItalic.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSansExpanded-Italic.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSansExpanded-Light.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSansExpanded-LightItalic.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSansExpanded-Medium.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSansExpanded-MediumItalic.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSansExpanded-Regular.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSansExpanded-SemiBold.ttf +0 -0
- package/public/fonts/MonaSans/TTF/MonaSansExpanded-SemiBoldItalic.ttf +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSans-Black.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSans-BlackItalic.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSans-Bold.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSans-BoldItalic.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSans-ExtraBold.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSans-ExtraBoldItalic.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSans-ExtraLight.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSans-ExtraLightItalic.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSans-Italic.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSans-Light.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSans-LightItalic.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSans-Medium.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSans-MediumItalic.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSans-Regular.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSans-SemiBold.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSans-SemiBoldItalic.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSansCondensed-Black.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSansCondensed-BlackItalic.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSansCondensed-Bold.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSansCondensed-BoldItalic.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSansCondensed-ExtraBold.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSansCondensed-ExtraBoldItalic.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSansCondensed-ExtraLight.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSansCondensed-ExtraLightItalic.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSansCondensed-Italic.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSansCondensed-Light.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSansCondensed-LightItalic.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSansCondensed-Medium.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSansCondensed-MediumItalic.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSansCondensed-Regular.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSansCondensed-SemiBold.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSansCondensed-SemiBoldItalic.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSansExpanded-Black.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSansExpanded-BlackItalic.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSansExpanded-Bold.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSansExpanded-BoldItalic.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSansExpanded-ExtraBold.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSansExpanded-ExtraBoldItalic.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSansExpanded-ExtraLight.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSansExpanded-ExtraLightItalic.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSansExpanded-Italic.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSansExpanded-Light.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSansExpanded-LightItalic.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSansExpanded-Medium.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSansExpanded-MediumItalic.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSansExpanded-Regular.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSansExpanded-SemiBold.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSansExpanded-SemiBoldItalic.woff2 +0 -0
- package/public/fonts/MonaSans/WOFF 2/MonaSans[slnt,wdth,wght].woff2 +0 -0
- package/src/components/Layouts/Layout.styles.tsx +0 -145
- package/src/components/Layouts/Layout.tsx +0 -116
- package/src/components/Layouts/index.ts +0 -5
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
import {css} from "@linaria/core";
|
|
2
|
-
|
|
3
|
-
const globalPageGutter = '8px';
|
|
4
|
-
export const globalHeaderHeight = '46px';
|
|
5
|
-
const globalHeaderWarningHeight = "0px";
|
|
6
|
-
const contentTopSpace = "12px";
|
|
7
|
-
|
|
8
|
-
const globalHeaderHeightWithSub = '90px';
|
|
9
|
-
|
|
10
|
-
const cubicMove = "cubic-bezier(.65, 0, .35, 1)";
|
|
11
|
-
const sidebarWidth = "450px";
|
|
12
|
-
|
|
13
|
-
// TODO: better solution - design tokens
|
|
14
|
-
export const globals = css`
|
|
15
|
-
:global() {
|
|
16
|
-
:root {
|
|
17
|
-
--xyd-navbar-height: ${globalHeaderHeight};
|
|
18
|
-
--xyd-sidebar-width: ${sidebarWidth};
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
`;
|
|
22
|
-
|
|
23
|
-
export const $layout = {
|
|
24
|
-
host: css`
|
|
25
|
-
width: 100%;
|
|
26
|
-
`,
|
|
27
|
-
header: css`
|
|
28
|
-
display: flex;
|
|
29
|
-
justify-content: space-between;
|
|
30
|
-
align-items: center;
|
|
31
|
-
|
|
32
|
-
position: fixed;
|
|
33
|
-
top: ${globalHeaderWarningHeight};
|
|
34
|
-
right: ${globalPageGutter};
|
|
35
|
-
left: ${globalPageGutter};
|
|
36
|
-
|
|
37
|
-
height: ${globalHeaderHeight};
|
|
38
|
-
`,
|
|
39
|
-
header$$sub: css`
|
|
40
|
-
flex-direction: column;
|
|
41
|
-
height: ${globalHeaderHeightWithSub};
|
|
42
|
-
transition: transform 200ms;
|
|
43
|
-
`,
|
|
44
|
-
header$$hideMain: css`
|
|
45
|
-
transform: translateY(calc(-${globalHeaderHeight} + 3px));
|
|
46
|
-
`,
|
|
47
|
-
main: css`
|
|
48
|
-
position: fixed;
|
|
49
|
-
top: calc(${globalHeaderHeight} + ${globalHeaderWarningHeight});
|
|
50
|
-
bottom: ${globalPageGutter};
|
|
51
|
-
left: ${globalPageGutter};
|
|
52
|
-
right: ${globalPageGutter};
|
|
53
|
-
}`,
|
|
54
|
-
main$$sub: css`
|
|
55
|
-
top: calc(${globalHeaderHeightWithSub} + ${globalHeaderWarningHeight});
|
|
56
|
-
transition: top 200ms;
|
|
57
|
-
`,
|
|
58
|
-
sidebar: css`
|
|
59
|
-
flex-direction: column;
|
|
60
|
-
position: absolute;
|
|
61
|
-
top: 0;
|
|
62
|
-
left: 0;
|
|
63
|
-
bottom: 0;
|
|
64
|
-
right: 0;
|
|
65
|
-
z-index: 101;
|
|
66
|
-
width: ${sidebarWidth};
|
|
67
|
-
border: 0;
|
|
68
|
-
padding: ${contentTopSpace} 0 0;
|
|
69
|
-
overflow: visible;
|
|
70
|
-
background: none;
|
|
71
|
-
border-radius: 0;
|
|
72
|
-
opacity: 1;
|
|
73
|
-
visibility: visible;
|
|
74
|
-
transition: opacity .3s ${cubicMove};
|
|
75
|
-
`,
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
export const $page = {
|
|
79
|
-
host: css`
|
|
80
|
-
position: absolute;
|
|
81
|
-
top: ${contentTopSpace};
|
|
82
|
-
right: 0;
|
|
83
|
-
bottom: 0;
|
|
84
|
-
z-index: 201;
|
|
85
|
-
background: #fff;
|
|
86
|
-
|
|
87
|
-
overflow: hidden;
|
|
88
|
-
transition: opacity .3s ${cubicMove};
|
|
89
|
-
|
|
90
|
-
left: ${sidebarWidth};
|
|
91
|
-
`,
|
|
92
|
-
scroll: css`
|
|
93
|
-
overflow: scroll;
|
|
94
|
-
height: 100%;
|
|
95
|
-
|
|
96
|
-
`,
|
|
97
|
-
container: css`
|
|
98
|
-
padding: 0;
|
|
99
|
-
width: 100%;
|
|
100
|
-
//position: relative; TODO: unset if during client render?
|
|
101
|
-
min-height: 100%;
|
|
102
|
-
|
|
103
|
-
max-width: 100%;
|
|
104
|
-
margin: 0 auto;
|
|
105
|
-
font-size: 15px;
|
|
106
|
-
line-height: 24px;
|
|
107
|
-
`,
|
|
108
|
-
articleContainer: css`
|
|
109
|
-
width: 980px;
|
|
110
|
-
padding: 40px 56px;
|
|
111
|
-
padding-left: 0;
|
|
112
|
-
padding-top: 20px;
|
|
113
|
-
margin: 0 auto;
|
|
114
|
-
margin-left: 100px;
|
|
115
|
-
max-width: 100%;
|
|
116
|
-
`,
|
|
117
|
-
articleContainer$$fullWidth: css`
|
|
118
|
-
width: 1200px;
|
|
119
|
-
`,
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
export const $article = {
|
|
123
|
-
host: css`
|
|
124
|
-
display: flex;
|
|
125
|
-
gap: 30px;
|
|
126
|
-
width: 100%;
|
|
127
|
-
align-items: flex-start;;
|
|
128
|
-
`,
|
|
129
|
-
content: css`
|
|
130
|
-
flex: 1 1 0;
|
|
131
|
-
overflow: hidden;
|
|
132
|
-
`,
|
|
133
|
-
nav: css`
|
|
134
|
-
position: sticky;
|
|
135
|
-
top: 30px;
|
|
136
|
-
width: 180px;
|
|
137
|
-
margin-top: 0;
|
|
138
|
-
margin-left: 50px;
|
|
139
|
-
padding-left: 16px;
|
|
140
|
-
flex: none;
|
|
141
|
-
`,
|
|
142
|
-
nav$$equal: css`
|
|
143
|
-
flex: 1;
|
|
144
|
-
`
|
|
145
|
-
}
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
import React, {useEffect, useState} from "react"
|
|
2
|
-
|
|
3
|
-
import {$layout, $page, $article, globalHeaderHeight} from "./Layout.styles"
|
|
4
|
-
|
|
5
|
-
export interface LayoutProps {
|
|
6
|
-
header: React.ReactNode;
|
|
7
|
-
aside: React.ReactNode;
|
|
8
|
-
content: React.ReactNode;
|
|
9
|
-
contentNav: React.ReactNode;
|
|
10
|
-
subheader?: boolean;
|
|
11
|
-
kind?: "fullwidth" | "equal"
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
// TODO: move scroller to xyd-foo
|
|
15
|
-
export function Layout(props: LayoutProps) {
|
|
16
|
-
const [hideMainHeader, setHideMainHeader] = useState(false)
|
|
17
|
-
const [scrollTop, setScrollTop] = useState(0)
|
|
18
|
-
const [controlScrollPos, setControlScrollPos] = useState(0)
|
|
19
|
-
|
|
20
|
-
useEffect(() => {
|
|
21
|
-
if (scrollTop === controlScrollPos) {
|
|
22
|
-
return
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
const checkpoint = parseInt(globalHeaderHeight, 10) / 2
|
|
26
|
-
const diff = scrollTop - controlScrollPos
|
|
27
|
-
const reversePosDiff = Math.abs(scrollTop - controlScrollPos)
|
|
28
|
-
|
|
29
|
-
if (diff > checkpoint) {
|
|
30
|
-
setHideMainHeader(true)
|
|
31
|
-
} else if (reversePosDiff > checkpoint) {
|
|
32
|
-
setHideMainHeader(false)
|
|
33
|
-
}
|
|
34
|
-
}, [
|
|
35
|
-
scrollTop,
|
|
36
|
-
controlScrollPos,
|
|
37
|
-
]);
|
|
38
|
-
|
|
39
|
-
function onScroll(e: Event) {
|
|
40
|
-
if (!(e.target instanceof HTMLElement)) {
|
|
41
|
-
return
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
const scroll = e.target?.scrollTop
|
|
45
|
-
setScrollTop(scroll)
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
function onScrollFinish(e: Event) {
|
|
49
|
-
if (!(e.target instanceof HTMLElement)) {
|
|
50
|
-
return
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
setControlScrollPos(e.target?.scrollTop)
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
// TODO: by ref?
|
|
57
|
-
// TODO: MOVE SOMEWHERE ELSE BECAUSE IT DECREASE PERFORMANCE (RERENDER)
|
|
58
|
-
useEffect(() => {
|
|
59
|
-
// return // TODO: UNCOMMENT
|
|
60
|
-
|
|
61
|
-
if (!props.subheader) {
|
|
62
|
-
return
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
document.querySelector(`.${$page.scroll}`)?.addEventListener("scroll", onScroll)
|
|
66
|
-
document.querySelector(`.${$page.scroll}`)?.addEventListener("scrollend", onScrollFinish)
|
|
67
|
-
|
|
68
|
-
return () => {
|
|
69
|
-
document.querySelector(`.${$page.scroll}`)?.removeEventListener("scroll", onScroll)
|
|
70
|
-
document.querySelector(`.${$page.scroll}`)?.removeEventListener("scrollend", onScrollFinish)
|
|
71
|
-
}
|
|
72
|
-
}, []);
|
|
73
|
-
|
|
74
|
-
return <div className={$layout.host}>
|
|
75
|
-
<header className={`
|
|
76
|
-
${$layout.header}
|
|
77
|
-
${props.subheader && $layout.header$$sub}
|
|
78
|
-
${hideMainHeader && $layout.header$$hideMain}
|
|
79
|
-
`}>
|
|
80
|
-
{props.header}
|
|
81
|
-
</header>
|
|
82
|
-
<main className={`
|
|
83
|
-
${$layout.main}
|
|
84
|
-
${!hideMainHeader && props.subheader && $layout.main$$sub}
|
|
85
|
-
`}>
|
|
86
|
-
<aside className={$layout.sidebar}>
|
|
87
|
-
{props.aside}
|
|
88
|
-
</aside>
|
|
89
|
-
<div className={$page.host}>
|
|
90
|
-
<div className={$page.scroll}>
|
|
91
|
-
<div className={$page.container}>
|
|
92
|
-
<div className={`
|
|
93
|
-
${$page.articleContainer}
|
|
94
|
-
${props.kind == "fullwidth" && $page.articleContainer$$fullWidth}
|
|
95
|
-
${props.kind == "equal" && $page.articleContainer$$fullWidth}
|
|
96
|
-
`}>
|
|
97
|
-
<article className={$article.host}>
|
|
98
|
-
<section className={$article.content}>
|
|
99
|
-
{props.content}
|
|
100
|
-
</section>
|
|
101
|
-
{
|
|
102
|
-
props.contentNav && <nav className={`
|
|
103
|
-
${$article.nav}
|
|
104
|
-
${props.kind == "equal" && $article.nav$$equal}
|
|
105
|
-
`}>
|
|
106
|
-
{props.contentNav}
|
|
107
|
-
</nav>
|
|
108
|
-
}
|
|
109
|
-
</article>
|
|
110
|
-
</div>
|
|
111
|
-
</div>
|
|
112
|
-
</div>
|
|
113
|
-
</div>
|
|
114
|
-
</main>
|
|
115
|
-
</div>
|
|
116
|
-
}
|