From dd5800e04f78f93bab1f7f61443f52f339d7ea33 Mon Sep 17 00:00:00 2001 From: xsf0105 Date: Fri, 28 Apr 2023 13:22:00 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BB=A3=E7=A0=81=E8=B0=83=E8=AF=95?= =?UTF-8?q?=E7=95=8C=E9=9D=A2=E4=BC=98=E5=8C=96=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/sites/assets/styles/highlight.scss | 97 ++--- example/src/sites/assets/styles/md-style.scss | 85 ++--- example/src/sites/assets/styles/reset.scss | 125 +++--- example/src/sites/assets/styles/theme.scss | 252 ++++++++++++ example/src/sites/doc/App.vue | 14 - .../src/sites/doc/components/DemoPreview.vue | 28 +- example/src/sites/doc/components/Header.vue | 338 +++++++++++++--- example/src/sites/doc/components/Nav.vue | 360 ++++++++++++------ example/src/sites/doc/components/Tips.vue | 133 +++++++ example/src/sites/doc/main.ts | 2 + example/src/sites/doc/views/Index.vue | 23 +- 11 files changed, 1067 insertions(+), 390 deletions(-) create mode 100644 example/src/sites/assets/styles/theme.scss create mode 100644 example/src/sites/doc/components/Tips.vue diff --git a/example/src/sites/assets/styles/highlight.scss b/example/src/sites/assets/styles/highlight.scss index dd6c1546..e17764e1 100644 --- a/example/src/sites/assets/styles/highlight.scss +++ b/example/src/sites/assets/styles/highlight.scss @@ -4,15 +4,17 @@ code { padding: 16px; overflow-x: auto; color: #58727e; + color: #a6accd; font-weight: 400; font-size: 14px; - font-family: Consolas, Monaco, Andale Mono, Ubuntu Mono, monospace; + font-family: var(--font-family-mono); line-height: 26px; white-space: pre-wrap; word-wrap: break-word; -webkit-font-smoothing: auto; background-color: #fafafa; - border-radius: 16px; + background-color: #161618; + border-radius: 8px; } pre { @@ -30,56 +32,42 @@ pre { background: #f7f8fa; } -.hljs-subst { - color: #58727e; +.hljs-comment, +.hljs-quote { + color: #a0a1a7; + font-style: italic; } -.hljs-string, -.hljs-meta, -.hljs-symbol, -.hljs-template-tag, -.hljs-template-variable, -.hljs-addition { - color: #fa2400; +.hljs-doctag, +.hljs-formula, +.hljs-keyword { + color: #89ddff; } -.hljs-comment, -.hljs-quote { - color: #999; +.hljs-deletion, +.hljs-name, +.hljs-section, +.hljs-selector-tag, +.hljs-subst { + color: #e45649; + color: #f07178; } -.hljs-params, -.hljs-keyword, -.hljs-attribute { - color: #986801; +.hljs-literal { + color: #0184bb; } -.hljs-deletion, -.hljs-variable, -.hljs-number, +.hljs-addition, +.hljs-attribute, +.hljs-meta-string, .hljs-regexp, -.hljs-literal, -.hljs-bullet, -.hljs-link { - color: #eb6f6f; +.hljs-string { + color: #c3e88d; } -.hljs-attr, -.hljs-selector-tag, -.hljs-title, -.hljs-section, .hljs-built_in, -.hljs-doctag, -.hljs-type, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class, -.hljs-strong { - color: #e45649; -} - -.hljs-emphasis { - font-style: italic; +.hljs-class .hljs-title { + color: #c18401; } .hljs-attr, @@ -90,12 +78,27 @@ pre { .hljs-template-variable, .hljs-type, .hljs-variable { - color: #986801; + // color: #986801; + color: #c792ea; } -.hljs-addition, -.hljs-attribute, -.hljs-meta-string, -.hljs-regexp, -.hljs-string { - color: #50a14f; + +.hljs-bullet, +.hljs-link, +.hljs-meta, +.hljs-selector-id, +.hljs-symbol, +.hljs-title { + color: #4078f2; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: 700; +} + +.hljs-link { + text-decoration: underline; } diff --git a/example/src/sites/assets/styles/md-style.scss b/example/src/sites/assets/styles/md-style.scss index 667448b5..e4ec0301 100644 --- a/example/src/sites/assets/styles/md-style.scss +++ b/example/src/sites/assets/styles/md-style.scss @@ -1,11 +1,11 @@ @import "highlight.scss"; .doc-content-document { + min-height: 800px; + flex-shrink: 0; position: relative; - padding-top: 48px; - padding-bottom: 48px; - padding-left: 40px; - padding-right: 445px; + padding: 40px; + .card { margin-bottom: 24px; padding: 24px; @@ -16,37 +16,27 @@ a { margin: 0 1px; - color: #0088ff; - -webkit-font-smoothing: auto; + color: #646cff; + text-decoration-line: underline; &:hover { - color: darken(#0088ff, 10%); + color: #bcc0ff; } &:active { - color: darken(#0088ff, 20%); + color: #bcc0ff; } } - h1, - h2, - h3, - h4, - h5, - h6 { - color: #333; - font-weight: bold; - line-height: 1.5; - - &[id] { - cursor: pointer; + &.isComponent { + h1 { + display: none; } } h1 { margin: 0 0 30px; font-size: 30px; - color: #333; font-weight: bold; position: relative; margin-bottom: 56px; @@ -76,33 +66,26 @@ } p { - color: #666; - font-size: 14px; + font-size: 16px; line-height: 22px; } + strong { margin: 24px 0 12px; font-weight: bold; - font-size: 14px; - color: #333; + font-size: 16px; } + table { width: 100%; margin-top: 12px; - color: #666; font-size: 14px; line-height: 1.5; border-collapse: collapse; - border: 1px solid #eee; th { padding: 8px 20px; font-weight: 600; text-align: left; - border-left: 1px solid #e9e9e9; - background-color: #f7f8fa; - // &:first-child { - // padding-left: 0; - // } &:last-child { padding-right: 0; @@ -111,19 +94,17 @@ td { padding: 8px 20px; - border-top: 1px solid #f1f4f8; - border-left: 1px solid #e9e9e9; + color: #fff; + &:first-child { - // padding-left: 0; border-left: 0px; - // version tag code { margin: 0; padding: 2px 6px; - color: #0088ff; + color: #38bdf7; font-weight: 600; font-size: 11px; - background-color: fade(#0088ff, 10%); + background-color: fade(#38bdf7, 10%); border-radius: 20px; } } @@ -136,7 +117,8 @@ em { color: #fa2400; font-size: 14px; - font-family: Consolas, Monaco, Andale Mono, Ubuntu Mono, monospace; + font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, + Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif; font-style: normal; -webkit-font-smoothing: auto; } @@ -145,11 +127,11 @@ ul li, ol li { position: relative; - margin: 5px 0 5px 10px; - padding-left: 15px; - color: #666; - font-size: 15px; + // margin: 5px 0 5px 10px; + // padding-left: 15px; + font-size: 16px; line-height: 26px; + list-style-type: disc; &::before { position: absolute; @@ -159,7 +141,7 @@ width: 6px; height: 6px; margin-top: 10px; - border: 1px solid #666; + border: 1px solid #eee; border-radius: 50%; content: ""; } @@ -180,9 +162,10 @@ font-size: 14px; font-family: inherit; word-break: keep-all; - background-color: #f7f8fa; border-radius: 4px; -webkit-font-smoothing: antialiased; + font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, + Consolas, "Liberation Mono", "Courier New", monospace; } p > code { @@ -197,11 +180,11 @@ blockquote { margin: 16px 0px; padding: 16px; - background-color: #f7f8fa; - border-left: 6px solid #128dff; - border-radius: 3px; + background-color: rgba(100, 108, 255, 0.08); + border: 1px solid var(--brand-color); + border-radius: 8px; p { - color: #333; + color: #fff; } } @@ -242,4 +225,8 @@ } } } + + ul li::before { + display: none; + } } diff --git a/example/src/sites/assets/styles/reset.scss b/example/src/sites/assets/styles/reset.scss index 191e6319..b74896cd 100644 --- a/example/src/sites/assets/styles/reset.scss +++ b/example/src/sites/assets/styles/reset.scss @@ -1,69 +1,25 @@ @charset "utf-8"; - -html, -body, -div, -span, -iframe, -h1, -h2, -h3, -h4, -h5, -h6, -p, -em, -img, -s, -strong, -b, -u, -i, -dl, -dt, -dd, -ol, -ul, -li, -fieldset, -form, -label, -table, -caption, -tbody, -tfoot, -thead, -tr, -th, -td, -article, -aside, -canvas, -details, -embed, -figure, -figcaption, -footer, -header, -hgroup, -menu, -nav, -section, -time, -audio, -video { +body { margin: 0; padding: 0; - border: 0; - -webkit-overflow-scrolling: touch; +} +ol, +ul { + list-style: none; +} + +table { + border-collapse: collapse; + border-spacing: 0; } -/* ios默认文本框阴影 */ +p { + margin: 0; +} -input[type="text"], -textarea { - /* stylelint-disable-next-line property-no-vendor-prefix */ - -webkit-appearance: none; +button { + background-color: transparent; + cursor: pointer; } html, @@ -76,36 +32,41 @@ input { text-decoration: none; } -/* 低版本安卓文本框层级问题 */ - -input:focus { - -webkit-user-modify: read-write-plaintext-only; +img { + border: 0 none; + vertical-align: bottom; + -ms-interpolation-mode: bicubic; } -/* 清除谷歌浏览器下的 search 叉号 */ -input::-webkit-search-cancel-button { - display: none; +html, +body { + min-height: 100vh; + flex-direction: column; + display: flex; } -ol, -ul { - list-style: none; +img, +video { + max-width: 100%; + height: auto; + border: 0 none; + vertical-align: bottom; } -table { - border-collapse: collapse; - border-spacing: 0; +::selection { + background: var(--brand-color); + color: #fff; } -* { - -webkit-tap-highlight-color: rgb(0 0 0 / 0%); - -webkit-tap-highlight-color: transparent; - box-sizing: border-box; +a { + color: #4c4c52; + transition: all 0.25s; +} +a:hover { + color: var(--brand-color); + transition: all 0.25s; } -img { - border: 0 none; - vertical-align: bottom; - /* stylelint-disable-next-line property-no-vendor-prefix */ - -ms-interpolation-mode: bicubic; +svg { + fill: currentColor; } diff --git a/example/src/sites/assets/styles/theme.scss b/example/src/sites/assets/styles/theme.scss new file mode 100644 index 00000000..7371bdbf --- /dev/null +++ b/example/src/sites/assets/styles/theme.scss @@ -0,0 +1,252 @@ +:root { + --font-family-base: "Inter var", "Inter", ui-sans-serif, system-ui, + -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", + Helvetica, Arial, "Noto Sans", sans-serif, "Apple Color Emoji", + "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + --font-family-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, + Consolas, "Liberation Mono", "Courier New", monospace; + --link-font-color-dark: rgba(255, 255, 255, 0.87); + + --header-bg-light: #fff; + --line-light: rgba(60, 60, 67, 0.12); + --text-font-color-light: rgba(60, 60, 67, 0.92); + + --brand-color: #646cff; + + --brand-color-light: #bcc0ff; // hover color + + --mute-light: #f6f6f7; // tag backgroun + + --main-bg: #fff; + + --main-shadow: 0 12px 32px rgba(0, 0, 0, 0.1), 0 2px 6px rgba(0, 0, 0, 0.08); + + // --text-font-color: rgba(28, 30, 33); + --text-font-color: rgba(60, 60, 67, 0.92); + --text-code-font-color: #476582; + + color: var(--text-font-color); + background-color: var(--main-bg); + font-family: var(--font-family-base); +} + +.nav-item .nav-active { + color: var(--brand-color); +} + +.action .why-quark { + background-color: var(--main-bg); + color: #000; + &:hover { + background-color: #f6f6f6; + } +} + +.nav-item a { + color: var(--text-font-color-light); + font-family: var(--font-family-base); +} +.nav-item a:hover { + color: var(--brand-color); +} +.social-links a, +.translate-lang a { + color: rgba(60, 60, 67, 0.7); +} +.social-links a:hover svg, +.translate-lang a:hover svg { + color: rgba(60, 60, 67, 0.92); + transition: color 0.25s; +} +.header .container { + border-bottom: 1px solid var(--line-light); + background-color: var(--main-bg); +} +.sticky-nav { + background-color: var(--main-bg); +} +.sticky-nav-shadow { + background-image: linear-gradient(to bottom, #eee, rgba(0, 0, 0, 0)); +} +.doc-content-document p { + color: var(--text-font-color); +} +.doc-content-document table { + border: 1px solid var(--line-light); +} +.doc-content-document table th, +.doc-content-document table td { + border-left: 1px solid var(--line-light); + color: var(--text-font-color-light); +} + +.doc-content-document table td { + border-top: 1px solid var(--line-light); +} + +.doc-content-document table code { + color: var(--text-code-font-color); + background-color: var(--mute-light); +} + +.doc-content-document table td:first-child code { + color: var(--text-code-font-color); +} +.doc-nav { + border-right: 1px solid var(--line-light); +} +.doc-content-document p > code { + color: var(--text-code-font-color); + background-color: var(--mute-light); +} +.doc-content-document strong { + color: var(--text-font-color); +} +.doc-content-document blockquote { + background-color: rgba(100, 108, 255, 0.08); +} +.doc-content-document blockquote p { + color: #454ce1; +} + +.doc-content-document ul li, +.doc-content-document ol li { + color: var(--text-font-color); +} + +html.dark { + --link-font-color-dark: rgba(255, 255, 255, 0.87); + --main-bg: #1e1e20; + --text-font-color: rgba(255, 255, 255, 0.87); + --header-bg-light: #fff; + --line-light: rgba(60, 60, 67, 0.12); + --text-font-color-light: rgba(60, 60, 67, 0.92); + --text-code-font-color: #c9def1; + --brand-color: #646cff; + --brand-color-light: #bcc0ff; // hover color + --mute-light: #313136; // tag background + --line-light: rgba(82, 82, 89, 0.32); + font-family: var(--font-family-base); + color: var(--link-font-color-dark); + background-color: var(--main-bg); + + a, + button { + color: rgba(255, 255, 255, 0.5); + } + + pre { + color: #1e1e20; + } + + .flyout-menu .menu-wrap { + background: var(--main-bg); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04), 0 1px 2px rgba(0, 0, 0, 0.06); + border: 1px solid rgba(84, 84, 84, 0.48); + } + + .flyout-menu .menu-group-title { + color: rgba(235, 235, 235, 0.38); + } + + .flyout-menu .menu-link { + color: rgba(255, 255, 255, 0.87); + &:hover { + color: #646cff; + } + } + + .sticky-nav-shadow { + background-image: linear-gradient(to bottom, #1e1e1e, rgb(0 0 0 / 0%)); + } + .nav-item a:hover, + .nav-item button:hover { + color: rgba(255 255 255 / 1); + } + .nav-item .nav-active { + color: #fff; + } + + .social-links a:hover svg { + color: #fff; + } + .translate-lang:hover { + color: #fff; + } + + .doc-nav a { + color: #fff; + } + .doc-nav a:hover { + color: var(--brand-color); + } + + .translations:before, + .appearance:before, + .social-links:before { + background-color: rgba(60, 60, 67, 0.92); + } + + .sticky-nav { + background-color: var(--main-bg); + } + .doc-content-document p > code { + color: var(--text-code-font-color); + } + .doc-content-document strong { + color: var(--text-font-color); + } + .doc-content-document blockquote p { + color: #bcc0ff; + } + .doc-content-document a { + color: #9499ff; + text-decoration: underline; + } + .doc-content-document a:hover { + color: #bcc0ff; + } + + .doc-content-document table { + border: 1px solid #333; + } + .doc-content-document table th, + .doc-content-document table td { + border-left: 1px solid #333; + color: #fff; + } + .doc-content-document table td { + border-top: 1px solid #333; + } + + .doc-content-document ul li, + .doc-content-document ol li .doc-content-document strong { + color: var(--text-font-color); + } + + .action .why-quark { + background-color: #313136; + color: #fff; + &:hover { + background-color: #2c2c30; + } + } +} + +// @media screen and (min-width: 860px) { +// .doc-nav { +// display: none; +// } +// .doc-content { +// margin-left: 0!important; +// } +// } + +// @media screen and (max-width: 880px) { +// .doc-nav { +// display: block; +// } +// .doc-content { +// margin-left: 260px; +// } +// } diff --git a/example/src/sites/doc/App.vue b/example/src/sites/doc/App.vue index d88235e3..4c3a9608 100644 --- a/example/src/sites/doc/App.vue +++ b/example/src/sites/doc/App.vue @@ -9,17 +9,3 @@ export default defineComponent({ name: "App", }); - - diff --git a/example/src/sites/doc/components/DemoPreview.vue b/example/src/sites/doc/components/DemoPreview.vue index 6bd2e7bf..4ba21d69 100644 --- a/example/src/sites/doc/components/DemoPreview.vue +++ b/example/src/sites/doc/components/DemoPreview.vue @@ -18,24 +18,22 @@ export default defineComponent({ diff --git a/example/src/sites/doc/components/Header.vue b/example/src/sites/doc/components/Header.vue index be6bfd5c..9923861d 100644 --- a/example/src/sites/doc/components/Header.vue +++ b/example/src/sites/doc/components/Header.vue @@ -1,68 +1,136 @@ + - + diff --git a/example/src/sites/doc/components/Nav.vue b/example/src/sites/doc/components/Nav.vue index 15df02e3..d60ed8d5 100644 --- a/example/src/sites/doc/components/Nav.vue +++ b/example/src/sites/doc/components/Nav.vue @@ -1,48 +1,142 @@ diff --git a/example/src/sites/doc/components/Tips.vue b/example/src/sites/doc/components/Tips.vue new file mode 100644 index 00000000..9071618e --- /dev/null +++ b/example/src/sites/doc/components/Tips.vue @@ -0,0 +1,133 @@ + + + + diff --git a/example/src/sites/doc/main.ts b/example/src/sites/doc/main.ts index f327a2cd..bdaf8483 100644 --- a/example/src/sites/doc/main.ts +++ b/example/src/sites/doc/main.ts @@ -3,6 +3,8 @@ import App from "./App.vue"; import router from "./router"; import "@/sites/assets/styles/reset.scss"; import "@/sites/assets/styles/md-style.scss"; +import "@/sites/assets/styles/theme.scss"; + import { isMobile } from "@/sites/assets/util"; if (isMobile) { diff --git a/example/src/sites/doc/views/Index.vue b/example/src/sites/doc/views/Index.vue index f7e39442..2e3c75c4 100644 --- a/example/src/sites/doc/views/Index.vue +++ b/example/src/sites/doc/views/Index.vue @@ -3,22 +3,11 @@ -
+
-
-
- {{ item.text }} -
-
@@ -181,6 +170,16 @@ export default defineComponent({ });