valaxy 0.0.2 → 0.0.5
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/LICENSE +21 -0
- package/README.md +1 -1
- package/bin/valaxy.js +11 -0
- package/dist/build-LSWX3GTV.mjs +1 -0
- package/dist/build-QCHURQKL.js +1 -0
- package/dist/chunk-7NQGUR4O.mjs +1 -0
- package/dist/chunk-DEKAH6ZE.js +1 -0
- package/dist/chunk-TIPISWPV.mjs +10 -0
- package/dist/chunk-ZX4FV7OA.js +10 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.js +2 -0
- package/dist/cli.mjs +2 -0
- package/dist/index.d.ts +203 -0
- package/dist/index.js +1 -0
- package/dist/index.mjs +1 -0
- package/package.json +75 -3
- package/src/client/App.vue +16 -0
- package/src/client/components/AppLink.vue +20 -0
- package/src/client/components/PostCard.vue +69 -0
- package/src/client/components/PostList.vue +50 -0
- package/src/client/components/README.md +7 -0
- package/src/client/components/ValaxyCopyright.vue +80 -0
- package/src/client/components/ValaxyFooter.vue +53 -0
- package/src/client/components/ValaxyHamburger.vue +21 -0
- package/src/client/components/ValaxyMd.vue +71 -0
- package/src/client/components/ValaxyOverlay.vue +44 -0
- package/src/client/components/ValaxyPagination.vue +122 -0
- package/src/client/components/ValaxyRightSidebar.vue +32 -0
- package/src/client/components/ValaxySidebar.vue +35 -0
- package/src/client/components/ValaxyToc.vue +70 -0
- package/src/client/composables/category.ts +101 -0
- package/src/client/composables/comments/index.ts +1 -0
- package/src/client/composables/comments/waline.ts +60 -0
- package/src/client/composables/common.ts +27 -0
- package/src/client/composables/dark.ts +4 -0
- package/src/client/composables/features/index.ts +1 -0
- package/src/client/composables/features/katex.ts +15 -0
- package/src/client/composables/helper.ts +26 -0
- package/src/client/composables/index.ts +17 -0
- package/src/client/composables/layout.ts +7 -0
- package/src/client/composables/post.ts +96 -0
- package/src/client/composables/search/algolia.ts +114 -0
- package/src/client/composables/search/index.ts +0 -0
- package/src/client/composables/sidebar.ts +128 -0
- package/src/client/composables/tag.ts +70 -0
- package/src/client/composables/widgets/aplayer.ts +23 -0
- package/src/client/composables/widgets/backToTop.ts +28 -0
- package/src/client/composables/widgets/codepen.ts +12 -0
- package/src/client/composables/widgets/index.ts +3 -0
- package/src/client/index.html +24 -0
- package/src/client/layouts/404.vue +25 -0
- package/src/client/layouts/README.md +14 -0
- package/src/client/locales/README.md +7 -0
- package/src/client/locales/en.yml +107 -0
- package/src/client/locales/zh-CN.yml +106 -0
- package/src/client/main.ts +30 -0
- package/src/client/modules/README.md +11 -0
- package/src/client/modules/nprogress.ts +14 -0
- package/src/client/modules/pinia.ts +17 -0
- package/src/client/modules/pwa.ts +12 -0
- package/src/client/modules/valaxy.ts +42 -0
- package/src/client/pages/README.md +20 -0
- package/src/client/pages/[...all].vue +15 -0
- package/src/client/pages/about/index.md +5 -0
- package/src/client/pages/hi/[name].vue +52 -0
- package/src/client/pages/index.vue +3 -0
- package/src/client/pages/page/[page].vue +12 -0
- package/src/client/pages/posts/index.md +5 -0
- package/src/client/public/_headers +3 -0
- package/src/client/public/favicon.svg +21 -0
- package/src/client/public/pwa-192x192.png +0 -0
- package/src/client/public/pwa-512x512.png +0 -0
- package/src/client/public/safari-pinned-tab.svg +41 -0
- package/src/client/shims.d.ts +36 -0
- package/src/client/stores/app.ts +14 -0
- package/src/client/stores/user.ts +35 -0
- package/src/client/styles/common/button.scss +29 -0
- package/src/client/styles/common/code.scss +35 -0
- package/src/client/styles/common/hamburger.scss +56 -0
- package/src/client/styles/common/markdown.scss +43 -0
- package/src/client/styles/common/scrollbar.scss +34 -0
- package/src/client/styles/common/sidebar.scss +30 -0
- package/src/client/styles/common/transition.scss +23 -0
- package/src/client/styles/css-vars/dark.scss +17 -0
- package/src/client/styles/css-vars/index.scss +18 -0
- package/src/client/styles/css-vars/light.scss +9 -0
- package/src/client/styles/global/helper.scss +3 -0
- package/src/client/styles/global/index.scss +38 -0
- package/src/client/styles/global/nprogress.scss +14 -0
- package/src/client/styles/global/reset.scss +20 -0
- package/src/client/styles/index.scss +18 -0
- package/src/client/styles/mixins/config.scss +1 -0
- package/src/client/styles/mixins/index.scss +2 -0
- package/src/client/styles/mixins/size.scss +49 -0
- package/src/client/styles/mixins/variable.scss +30 -0
- package/src/client/styles/palette.scss +61 -0
- package/src/client/styles/vars.scss +39 -0
- package/src/client/styles/widgets/banner.scss +116 -0
- package/src/client/types.ts +3 -0
- package/src/client/utils/helper.ts +30 -0
- package/src/client/utils/index.ts +2 -0
- package/src/client/utils/time.ts +23 -0
- package/src/core/config.ts +51 -0
- package/src/core/index.ts +5 -0
- package/src/core/utils.ts +1 -0
- package/src/index.ts +2 -0
- package/src/node/build.ts +12 -0
- package/src/node/cli.ts +177 -0
- package/src/node/config.ts +43 -0
- package/src/node/index.ts +1 -0
- package/src/node/markdown/headings.ts +24 -0
- package/src/node/markdown/index.ts +74 -0
- package/src/node/markdown/markdown-it-container.ts +53 -0
- package/src/node/markdown/markdown-it-katex.ts +200 -0
- package/src/node/markdown/parseHeader.ts +70 -0
- package/src/node/markdown/slugify.ts +24 -0
- package/src/node/options.ts +90 -0
- package/src/node/plugins/index.ts +91 -0
- package/src/node/plugins/markdown.ts +62 -0
- package/src/node/plugins/preset.ts +171 -0
- package/src/node/plugins/unocss.ts +106 -0
- package/src/node/plugins/valaxy.ts +1 -0
- package/src/node/server.ts +21 -0
- package/src/node/shims.d.ts +23 -0
- package/src/node/utils/cli.ts +105 -0
- package/src/node/utils/index.ts +26 -0
- package/src/node/vite.ts +83 -0
- package/src/types/config.ts +250 -0
- package/src/types/index.ts +2 -0
- package/src/types/posts.ts +107 -0
- package/tsup.config.ts +17 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
@use "../palette.scss" as * ;
|
|
2
|
+
|
|
3
|
+
.yun-icon-btn {
|
|
4
|
+
cursor: pointer;
|
|
5
|
+
|
|
6
|
+
display: inline-flex;
|
|
7
|
+
align-items: center;
|
|
8
|
+
justify-content: center;
|
|
9
|
+
|
|
10
|
+
border: none;
|
|
11
|
+
width: 3rem;
|
|
12
|
+
height: 3rem;
|
|
13
|
+
|
|
14
|
+
border-radius: 50%;
|
|
15
|
+
|
|
16
|
+
transition: var(--yun-transition);
|
|
17
|
+
|
|
18
|
+
div {
|
|
19
|
+
font-size: 1.2rem;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
&:hover {
|
|
23
|
+
background-color: rgba(var(--yun-c-primary-rgb), 0.08);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
&:active {
|
|
27
|
+
background-color: rgba(var(--yun-c-primary-rgb), 0.16);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
html:not(.dark) {
|
|
2
|
+
--prism-foreground: #393a34;
|
|
3
|
+
--prism-background: #f8f8f8;
|
|
4
|
+
--prism-comment: #758575;
|
|
5
|
+
--prism-namespace: #444444;
|
|
6
|
+
--prism-string: #bc8671;
|
|
7
|
+
--prism-punctuation: #80817d;
|
|
8
|
+
--prism-literal: #36acaa;
|
|
9
|
+
--prism-keyword: #248459;
|
|
10
|
+
--prism-function: #4D9375;
|
|
11
|
+
--prism-deleted: #9a050f;
|
|
12
|
+
--prism-class: #2b91af;
|
|
13
|
+
--prism-builtin: #800000;
|
|
14
|
+
--prism-property: #ce9178;
|
|
15
|
+
--prism-regex: #ad502b;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
html.dark {
|
|
19
|
+
--prism-foreground: #A6ACCD;
|
|
20
|
+
--prism-background: #242424;
|
|
21
|
+
--prism-namespace: #aaaaaa;
|
|
22
|
+
--prism-comment: #758575;
|
|
23
|
+
--prism-namespace: #444444;
|
|
24
|
+
--prism-string: #C3E88D;
|
|
25
|
+
--prism-punctuation: #A6ACCD;
|
|
26
|
+
--prism-literal: #36acaa;
|
|
27
|
+
--prism-keyword: #89DDFF;
|
|
28
|
+
--prism-function: #82AAFF;
|
|
29
|
+
--prism-deleted: #9a050f;
|
|
30
|
+
--prism-class: #4ec9b0;
|
|
31
|
+
--prism-builtin: #d16969;
|
|
32
|
+
--prism-property: #C792EA;
|
|
33
|
+
--prism-regex: #ad502b;
|
|
34
|
+
--prism-selector: #C3E88D;
|
|
35
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
@use "sass:math";
|
|
2
|
+
|
|
3
|
+
$hamburger-size: 22px;
|
|
4
|
+
|
|
5
|
+
.vt-hamburger {
|
|
6
|
+
display: flex;
|
|
7
|
+
justify-content: center;
|
|
8
|
+
align-items: center;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.vt-hamburger:hover .vt-hamburger-top { transform: translateX(math.div(-$hamburger-size, 4)); }
|
|
12
|
+
.vt-hamburger:hover .vt-hamburger-middle { transform: translateX(0); }
|
|
13
|
+
.vt-hamburger:hover .vt-hamburger-bottom { transform: translateX(math.div(-$hamburger-size, 2)); }
|
|
14
|
+
|
|
15
|
+
.vt-hamburger.is-active .vt-hamburger-top { top: math.div($hamburger-size - 3px, 2); transform: translateX(0) rotate(225deg); }
|
|
16
|
+
.vt-hamburger.is-active .vt-hamburger-middle { top: math.div($hamburger-size - 3px, 2); transform: translateX(-$hamburger-size); }
|
|
17
|
+
.vt-hamburger.is-active .vt-hamburger-bottom { top: math.div($hamburger-size - 3px, 2); transform: translateX(0) rotate(135deg); }
|
|
18
|
+
|
|
19
|
+
.vt-hamburger.is-active:hover .vt-hamburger-top,
|
|
20
|
+
.vt-hamburger.is-active:hover .vt-hamburger-middle,
|
|
21
|
+
.vt-hamburger.is-active:hover .vt-hamburger-bottom {
|
|
22
|
+
background-color: var(--yun-c-primary);
|
|
23
|
+
transition: top .25s, background-color .25s, transform .25s;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.vt-hamburger-container {
|
|
27
|
+
position: relative;
|
|
28
|
+
width: $hamburger-size;
|
|
29
|
+
height: $hamburger-size - 2px;
|
|
30
|
+
overflow: hidden;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.vt-hamburger-top,
|
|
34
|
+
.vt-hamburger-middle,
|
|
35
|
+
.vt-hamburger-bottom {
|
|
36
|
+
left: 0;
|
|
37
|
+
|
|
38
|
+
position: absolute;
|
|
39
|
+
width: $hamburger-size;
|
|
40
|
+
height: 2px;
|
|
41
|
+
background-color: var(--yun-c-primary);
|
|
42
|
+
transition: top .25s, background-color .5s, transform .25s;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.vt-hamburger-top {
|
|
46
|
+
top: 0;
|
|
47
|
+
transform: translateX(0);
|
|
48
|
+
}
|
|
49
|
+
.vt-hamburger-middle {
|
|
50
|
+
top: math.div($hamburger-size - 4px, 2);
|
|
51
|
+
transform: translateX(math.div(-$hamburger-size, 2));
|
|
52
|
+
}
|
|
53
|
+
.vt-hamburger-bottom {
|
|
54
|
+
top: $hamburger-size - 4px;
|
|
55
|
+
transform: translateX(math.div(-$hamburger-size, 4));
|
|
56
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/* https://github.com/antfu/prism-theme-vars */
|
|
2
|
+
@use 'prism-theme-vars/base.css' as *;
|
|
3
|
+
@use './code.scss' as *;
|
|
4
|
+
|
|
5
|
+
.markdown-body {
|
|
6
|
+
--prism-font-family: var(--yun-font-mono);
|
|
7
|
+
|
|
8
|
+
--smc-link-color: var(--yun-c-link);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
// for anchor
|
|
12
|
+
h1:hover .header-anchor,
|
|
13
|
+
h1:focus .header-anchor,
|
|
14
|
+
h2:hover .header-anchor,
|
|
15
|
+
h2:focus .header-anchor,
|
|
16
|
+
h3:hover .header-anchor,
|
|
17
|
+
h3:focus .header-anchor,
|
|
18
|
+
h4:hover .header-anchor,
|
|
19
|
+
h4:focus .header-anchor,
|
|
20
|
+
h5:hover .header-anchor,
|
|
21
|
+
h5:focus .header-anchor,
|
|
22
|
+
h6:hover .header-anchor,
|
|
23
|
+
h6:focus .header-anchor {
|
|
24
|
+
opacity: 1;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
a.header-anchor {
|
|
28
|
+
float: left;
|
|
29
|
+
margin-top: 0.125em;
|
|
30
|
+
margin-left: -0.87em;
|
|
31
|
+
padding-right: 0.23em;
|
|
32
|
+
font-size: 0.85em;
|
|
33
|
+
opacity: 0;
|
|
34
|
+
|
|
35
|
+
&::before {
|
|
36
|
+
content: none;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
a.header-anchor:hover,
|
|
41
|
+
a.header-anchor:focus {
|
|
42
|
+
text-decoration: none;
|
|
43
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
@use '~/styles/mixins' as *;
|
|
2
|
+
|
|
3
|
+
.no-scroll {
|
|
4
|
+
position: fixed;
|
|
5
|
+
overflow-y: scroll;
|
|
6
|
+
width: 100%;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
::-webkit-scrollbar {
|
|
10
|
+
width: 8px;
|
|
11
|
+
height: 8px;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
::-webkit-scrollbar-track {
|
|
15
|
+
border-radius: 2px;
|
|
16
|
+
background-color: rgba(255, 255, 255, 0.1);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
::-webkit-scrollbar-thumb {
|
|
20
|
+
border-radius: 2px;
|
|
21
|
+
background-color: rgba(get-css-var('c', 'primary', 'rgb'), 0.3);
|
|
22
|
+
|
|
23
|
+
&:window-inactive {
|
|
24
|
+
background-color: rgba(get-css-var('c', 'primary', 'rgb'), 0.3);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
&:hover {
|
|
28
|
+
background-color: rgba(get-css-var('c', 'primary', 'rgb'), 0.7);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
&:active {
|
|
32
|
+
background-color: rgba(get-css-var('c', 'primary', 'rgb'), 0.9);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
@use "sass:map";
|
|
2
|
+
|
|
3
|
+
@use "../vars.scss" as *;
|
|
4
|
+
@use "../mixins/" as *;
|
|
5
|
+
|
|
6
|
+
.sidebar {
|
|
7
|
+
position: fixed;
|
|
8
|
+
overflow-y: auto;
|
|
9
|
+
top: 0;
|
|
10
|
+
bottom: 0;
|
|
11
|
+
left: 0;
|
|
12
|
+
|
|
13
|
+
width: calc(100vw - 64px);
|
|
14
|
+
max-width: var(--yun-sidebar-width-mobile);
|
|
15
|
+
|
|
16
|
+
background-image: var(--yun-sidebar-bg-image);
|
|
17
|
+
background-color: var(--yun-sidebar-bg-color);
|
|
18
|
+
background-size: contain;
|
|
19
|
+
background-repeat: no-repeat;
|
|
20
|
+
background-position: bottom 1rem center;
|
|
21
|
+
text-align: center;
|
|
22
|
+
z-index: map.get($z-index, 'sidebar');
|
|
23
|
+
|
|
24
|
+
transform: translateX(-100%);
|
|
25
|
+
transition: transform var(--yun-transition-duration);
|
|
26
|
+
|
|
27
|
+
&.open {
|
|
28
|
+
transform: translateX(0);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
.v {
|
|
2
|
+
&-enter-active,
|
|
3
|
+
&-leave-active {
|
|
4
|
+
transition: opacity 0.5s ease;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
&-enter-from,
|
|
8
|
+
&-leave-to {
|
|
9
|
+
opacity: 0;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.fade {
|
|
14
|
+
&-enter-active,
|
|
15
|
+
&-leave-active {
|
|
16
|
+
transition: opacity 0.5s ease;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
&-enter-from,
|
|
20
|
+
&-leave-to {
|
|
21
|
+
opacity: 0;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
@use "../palette" as *;
|
|
2
|
+
@use "../mixins" as *;
|
|
3
|
+
|
|
4
|
+
::-webkit-input-placeholder {
|
|
5
|
+
color: white;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
html.dark {
|
|
9
|
+
color-scheme: dark;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.dark {
|
|
13
|
+
@include set-css-var-from-map($dark);
|
|
14
|
+
|
|
15
|
+
// star-markdown-css
|
|
16
|
+
--smc-link-color: lighten($colors.primary, 30%);
|
|
17
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
@use "sass:map";
|
|
2
|
+
@use "../mixins" as *;
|
|
3
|
+
@use "../vars" as *;
|
|
4
|
+
@use "../palette" as *;
|
|
5
|
+
|
|
6
|
+
:root {
|
|
7
|
+
// palette different with colors
|
|
8
|
+
@include set-css-var-from-map($palette, 'c');
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
:root {
|
|
12
|
+
@include set-css-var-from-map($common);
|
|
13
|
+
@include set-css-var-from-map($border, 'border');
|
|
14
|
+
@include set-css-var-from-map($font, 'font');
|
|
15
|
+
@include set-css-var-from-map($z-index, 'z');
|
|
16
|
+
@include set-css-var-from-map($transition, 'transition');
|
|
17
|
+
}
|
|
18
|
+
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
html,
|
|
2
|
+
body,
|
|
3
|
+
#app {
|
|
4
|
+
height: 100%;
|
|
5
|
+
margin: 0;
|
|
6
|
+
padding: 0;
|
|
7
|
+
|
|
8
|
+
line-height: 2;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
body {
|
|
12
|
+
background-color: var(--yun-c-bg);
|
|
13
|
+
|
|
14
|
+
&::before {
|
|
15
|
+
content: '';
|
|
16
|
+
position: fixed;
|
|
17
|
+
width: 100%;
|
|
18
|
+
height: 100%;
|
|
19
|
+
z-index: -1;
|
|
20
|
+
background-image: var(--yun-bg-image);
|
|
21
|
+
background-size: cover;
|
|
22
|
+
background-position: center;
|
|
23
|
+
background-repeat: no-repeat;
|
|
24
|
+
animation-name: bgFadeIn;
|
|
25
|
+
animation-duration: 2s;
|
|
26
|
+
opacity: 1;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
@keyframes bgFadeIn {
|
|
31
|
+
from {
|
|
32
|
+
opacity: 0;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
to {
|
|
36
|
+
opacity: 1;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// import common and light/dark css vars in main.ts
|
|
2
|
+
|
|
3
|
+
// global css
|
|
4
|
+
@use './global/reset.scss' as *;
|
|
5
|
+
@use './global/helper.scss' as *;
|
|
6
|
+
@use './global/index.scss' as *;
|
|
7
|
+
@use './global/nprogress.scss' as *;
|
|
8
|
+
|
|
9
|
+
// common
|
|
10
|
+
@use './common/button.scss' as *;
|
|
11
|
+
@use './common/hamburger.scss' as *;
|
|
12
|
+
@use './common/markdown.scss' as *;
|
|
13
|
+
@use "./common/scrollbar.scss" as *;
|
|
14
|
+
@use "./common/sidebar.scss" as *;
|
|
15
|
+
@use "./common/transition.scss" as *;
|
|
16
|
+
|
|
17
|
+
// banner
|
|
18
|
+
@use './widgets/banner.scss' as *;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
$namespace: 'yun';
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
@use "sass:map";
|
|
2
|
+
|
|
3
|
+
$breakpoints: (
|
|
4
|
+
'sm': 640px,
|
|
5
|
+
'md': 768px,
|
|
6
|
+
'lg': 1024px,
|
|
7
|
+
'xl': 1280px,
|
|
8
|
+
'2xl': 1536px,
|
|
9
|
+
);
|
|
10
|
+
|
|
11
|
+
// for mobile
|
|
12
|
+
@mixin mobile {
|
|
13
|
+
@media screen and (max-width: map.get($breakpoints, 'sm')) {
|
|
14
|
+
@content;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// for tablet
|
|
19
|
+
@mixin tablet {
|
|
20
|
+
@media screen and (min-width: map.get($breakpoints, 'sm')) and (max-width: map.get($breakpoints, 'lg')) {
|
|
21
|
+
@content;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// for desktop
|
|
26
|
+
@mixin desktop {
|
|
27
|
+
@media screen and (min-width: map.get($breakpoints, 'lg')) {
|
|
28
|
+
@content;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
@mixin sm-md {
|
|
34
|
+
@media screen and (min-width: map.get($breakpoints, 'sm')) and (max-width: map.get($breakpoints, 'md')) {
|
|
35
|
+
@content;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
@mixin md-lg {
|
|
40
|
+
@media screen and (min-width: map.get($breakpoints, 'md')) and (max-width: map.get($breakpoints, 'lg')) {
|
|
41
|
+
@content;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
@mixin xl {
|
|
46
|
+
@media screen and (min-width: map.get($breakpoints, 'xl')) {
|
|
47
|
+
@content;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
@use 'config';
|
|
2
|
+
|
|
3
|
+
// join var name
|
|
4
|
+
// join-var-name(('button', 'text-color')) => '--#{namespace}-button-text-color'
|
|
5
|
+
@function join-var-name($list) {
|
|
6
|
+
$name: '--' + config.$namespace;
|
|
7
|
+
@each $item in $list {
|
|
8
|
+
@if $item != '' {
|
|
9
|
+
$name: $name + '-' + $item;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
@return $name;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// get-css-var('button', 'text-color') => var(--el-button-text-color)
|
|
16
|
+
@function get-css-var($args...) {
|
|
17
|
+
@return var(#{join-var-name($args)});
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// get-css-var-name(('button', 'text-color')) => '--#{namespace}-button-text-color'
|
|
21
|
+
@function get-css-var-name($args...) {
|
|
22
|
+
@return join-var-name($args);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// @include set-css-var-from-map($colors)
|
|
26
|
+
@mixin set-css-var-from-map($map, $prefix: '') {
|
|
27
|
+
@each $key, $value in $map {
|
|
28
|
+
#{get-css-var-name($prefix, $key)}: #{$value};
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
@use "sass:map";
|
|
2
|
+
|
|
3
|
+
@use "./mixins" as *;
|
|
4
|
+
|
|
5
|
+
$palette: () !default;
|
|
6
|
+
$palette: map.merge((
|
|
7
|
+
'white': #ffffff,
|
|
8
|
+
'black': #1a1a1a,
|
|
9
|
+
'gray': #8e8e8e,
|
|
10
|
+
'danger': #db2828,
|
|
11
|
+
'warning': #f2711c
|
|
12
|
+
), $palette);
|
|
13
|
+
|
|
14
|
+
$colors: () !default;
|
|
15
|
+
$colors: map.merge((
|
|
16
|
+
'primary': #0078E7,
|
|
17
|
+
), $colors);
|
|
18
|
+
|
|
19
|
+
$c-primary: map.get($colors, 'primary');
|
|
20
|
+
|
|
21
|
+
$colors: map.merge((
|
|
22
|
+
'primary-light': lighten($c-primary, 15%),
|
|
23
|
+
'primary-lighter': lighten($c-primary, 30%),
|
|
24
|
+
), $colors);
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
$light: () !default;
|
|
28
|
+
$light: map.merge((
|
|
29
|
+
'bg-image': url('https://cdn.jsdelivr.net/gh/YunYouJun/cdn/img/bg/stars-timing-0-blur-30px.jpg'),
|
|
30
|
+
'border-color': #e6e6e6,
|
|
31
|
+
|
|
32
|
+
'c-bg': white,
|
|
33
|
+
'c-bg-light': white,
|
|
34
|
+
'c-bg-dark': #fafafa,
|
|
35
|
+
'c-text': #333,
|
|
36
|
+
'c-text-light': #555,
|
|
37
|
+
'c-text-dark': #111,
|
|
38
|
+
|
|
39
|
+
'c-primary-rgb': #{red($c-primary), green($c-primary), blue($c-primary)},
|
|
40
|
+
|
|
41
|
+
'c-link': $c-primary,
|
|
42
|
+
|
|
43
|
+
'sidebar-bg-color': #{get-css-var('c-bg-light')}
|
|
44
|
+
), $light);
|
|
45
|
+
|
|
46
|
+
$dark: () !default;
|
|
47
|
+
$dark: map.merge((
|
|
48
|
+
'bg-image': none,
|
|
49
|
+
'border-color': #222,
|
|
50
|
+
|
|
51
|
+
'c-bg': #1a1a1a,
|
|
52
|
+
'c-bg-light': #22252e,
|
|
53
|
+
'c-bg-dark': #1a1a1a,
|
|
54
|
+
|
|
55
|
+
'c-text': #f2f2f2,
|
|
56
|
+
'c-text-light': #eee,
|
|
57
|
+
'c-text-lighter': #ddd,
|
|
58
|
+
'c-text-dark': rgba(#ebebeb, 0.8),
|
|
59
|
+
|
|
60
|
+
'c-link': map.get($colors, 'primary-light'),
|
|
61
|
+
), $dark);
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
@use "sass:map";
|
|
2
|
+
|
|
3
|
+
$common: () !default;
|
|
4
|
+
$common: map.merge((
|
|
5
|
+
'sidebar-width-mobile': 320px,
|
|
6
|
+
), $common);
|
|
7
|
+
|
|
8
|
+
$border: () !default;
|
|
9
|
+
$border: map.merge((
|
|
10
|
+
'width': 1px
|
|
11
|
+
), $border);
|
|
12
|
+
|
|
13
|
+
$font: () !default;
|
|
14
|
+
$font: map.merge((
|
|
15
|
+
'sans': 'Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif',
|
|
16
|
+
'mono': 'Menlo, Monaco, Consolas, "Courier New", monospace',
|
|
17
|
+
'serif': "'Songti SC', 'Noto Serif SC', STZhongsong, STKaiti, KaiTi, Roboto, serif",
|
|
18
|
+
'serif-weight': 900,
|
|
19
|
+
), $font);
|
|
20
|
+
|
|
21
|
+
$z-index: () !default;
|
|
22
|
+
$z-index: map.merge((
|
|
23
|
+
'cloud': 8,
|
|
24
|
+
'go-down': 9,
|
|
25
|
+
'sidebar': 10,
|
|
26
|
+
'fireworks': 11,
|
|
27
|
+
'menu-btn': 20,
|
|
28
|
+
'go-up-btn': 20,
|
|
29
|
+
'search-popup': 30,
|
|
30
|
+
'search-btn': 31,
|
|
31
|
+
), $z-index);
|
|
32
|
+
|
|
33
|
+
$transition: () !default;
|
|
34
|
+
$transition: map.merge((
|
|
35
|
+
'duration-fast': 0.2s,
|
|
36
|
+
'duration': 0.4s,
|
|
37
|
+
'duration-slow': 0.6s,
|
|
38
|
+
'': all var(--yun-transition-duration-fast) ease-in-out
|
|
39
|
+
), $transition);
|