body { -webkit-text-size-adjust: 100%; tab-size: 4; margin: 0; line-height: inherit; font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"; } [data-color-mode*='dark'] body .dark { display: none; } [data-color-mode*='dark'] body .light { display: block; } [data-color-mode*='light'] body .dark { display: block; } [data-color-mode*='light'] body .light { display: none; } [data-color-mode*='light'], [data-color-mode*='light'] body { --color-prettylights-syntax-comment: #b1bac3; --color-prettylights-syntax-constant: #0550ae; --color-prettylights-syntax-entity: #8250df; --color-prettylights-syntax-storage-modifier-import: #24292f; --color-prettylights-syntax-entity-tag: #116329; --color-prettylights-syntax-keyword: #cf222e; --color-prettylights-syntax-string: #0a3069; --color-prettylights-syntax-variable: #953800; --color-prettylights-syntax-brackethighlighter-unmatched: #82071e; --color-prettylights-syntax-invalid-illegal-text: #f6f8fa; --color-prettylights-syntax-invalid-illegal-bg: #82071e; --color-prettylights-syntax-carriage-return-text: #f6f8fa; --color-prettylights-syntax-carriage-return-bg: #cf222e; --color-prettylights-syntax-string-regexp: #116329; --color-prettylights-syntax-markup-list: #3b2300; --color-prettylights-syntax-markup-heading: #0550ae; --color-prettylights-syntax-markup-italic: #24292f; --color-prettylights-syntax-markup-bold: #24292f; --color-prettylights-syntax-markup-deleted-text: #82071e; --color-prettylights-syntax-markup-deleted-bg: #FFEBE9; --color-prettylights-syntax-markup-inserted-text: #116329; --color-prettylights-syntax-markup-inserted-bg: #dafbe1; --color-prettylights-syntax-markup-changed-text: #953800; --color-prettylights-syntax-markup-changed-bg: #ffd8b5; --color-prettylights-syntax-markup-ignored-text: #eaeef2; --color-prettylights-syntax-markup-ignored-bg: #0550ae; --color-prettylights-syntax-meta-diff-range: #8250df; --color-prettylights-syntax-brackethighlighter-angle: #57606a; --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f; --color-prettylights-syntax-constant-other-reference-link: #0a3069; --color-fg-default: #24292f; --color-fg-muted: #57606a; --color-fg-subtle: #6e7781; --color-canvas-default: #f1f5f9; --color-canvas-subtle: #fff; --color-bg-subtle: #f8f9fa; --color-border-default: #d0d7de; --color-border-muted: #ececec94; --color-neutral-muted: rgba(175,184,193,0.2); --color-accent-fg: #0969da; --color-accent-emphasis: #0969da; --color-attention-subtle: #fff8c5; --color-danger-fg: #cf222e; } [data-color-mode*='dark'], [data-color-mode*='dark'] body { --color-prettylights-syntax-comment: #8b949e; --color-prettylights-syntax-constant: #79c0ff; --color-prettylights-syntax-entity: #d2a8ff; --color-prettylights-syntax-storage-modifier-import: #c9d1d9; --color-prettylights-syntax-entity-tag: #7ee787; --color-prettylights-syntax-keyword: #ff7b72; --color-prettylights-syntax-string: #a5d6ff; --color-prettylights-syntax-variable: #ffa657; --color-prettylights-syntax-brackethighlighter-unmatched: #f85149; --color-prettylights-syntax-invalid-illegal-text: #f0f6fc; --color-prettylights-syntax-invalid-illegal-bg: #8e1519; --color-prettylights-syntax-carriage-return-text: #f0f6fc; --color-prettylights-syntax-carriage-return-bg: #b62324; --color-prettylights-syntax-string-regexp: #7ee787; --color-prettylights-syntax-markup-list: #f2cc60; --color-prettylights-syntax-markup-heading: #1f6feb; --color-prettylights-syntax-markup-italic: #c9d1d9; --color-prettylights-syntax-markup-bold: #c9d1d9; --color-prettylights-syntax-markup-deleted-text: #ffdcd7; --color-prettylights-syntax-markup-deleted-bg: #67060c; --color-prettylights-syntax-markup-inserted-text: #aff5b4; --color-prettylights-syntax-markup-inserted-bg: #033a16; --color-prettylights-syntax-markup-changed-text: #ffdfb6; --color-prettylights-syntax-markup-changed-bg: #5a1e02; --color-prettylights-syntax-markup-ignored-text: #c9d1d9; --color-prettylights-syntax-markup-ignored-bg: #1158c7; --color-prettylights-syntax-meta-diff-range: #d2a8ff; --color-prettylights-syntax-brackethighlighter-angle: #8b949e; --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58; --color-prettylights-syntax-constant-other-reference-link: #a5d6ff; --color-fg-default: #c9d1d9; --color-fg-muted: #8b949e; --color-fg-subtle: #94a3b8; --color-canvas-default: #0f172a; --color-canvas-subtle: #1e293b; --color-bg-subtle: rgb(15 23 42/0.3); --color-border-default: #404f5f; --color-border-muted: rgb(51 65 85/0.5); --color-neutral-muted: rgb(51 65 85/0.3); --color-accent-fg: #58a6ff; --color-accent-emphasis: #1f6feb; --color-attention-subtle: rgba(187,128,9,0.15); --color-danger-fg: #f85149; } body { color: var(--color-fg-default); background-color: var(--color-canvas-default); } *, ::before, ::after { box-sizing: border-box; border-width: 0; border-style: solid; border-color: #e5e7eb; } blockquote, dl, dd, h1, h2, h3, h4, h5, h6, hr, figure, p, pre { margin: 0; } h1,h2,h3,h4,h5,h6 { font-size: inherit; font-weight: inherit } ol, ul, menu { list-style: none; margin: 0; padding: 0; } .wrap-body > p > code { --text-opacity: 1; color: rgb(5 150 105/var(--text-opacity)); } table { width: 100%; text-indent: 0; border-color: inherit; border-collapse: collapse } table td:not(:last-child)>code, table td:not(:last-child)>del>code, ul li > code, kbd { background-color: var(--color-neutral-muted); color: var(--color-fg-subtle); box-shadow: 0 0 #0000, 0 0 #0000, 0 0 #0000; letter-spacing: 0.075rem; padding: 0.1em 0.54em; border: 1px solid var(--color-border-muted); border-color: var(--color-border-default); line-height: 1.5; font-family: Arial,Helvetica,sans-serif; font-size: 12px; display: inline-block; border-radius: 3px; } table tr+tr { border-top: solid 1px #ececec94; border-color: var(--color-border-muted); } table td, table th { padding: 9px 14px; text-align: left; } table tr th:last-child, table tr td:last-child { text-align: right; } table thead th { white-space: nowrap; font-weight: normal; color: rgb(16 185 129/1); } table thead { display: none; border-bottom: solid 1px rgba(85,102,119,0.3); } table td:first-child>code { --text-opacity: 1; color: rgb(5 150 105/var(--text-opacity)); } table td:first-child>del>code { text-decoration: inherit; color: var(--color-danger-fg); } table.show-header thead { display: table-header-group; } tt, code { font-family: ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace; font-size: 1em; } pre:only-child { height: 100%; } pre { margin-top: 0; margin-bottom: 0; font-family: ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace; word-wrap: normal; line-height: 1.5; overflow: hidden; padding: 1rem; } .max-container a { color: rgb(2 132 199/1); } .max-container a, .max-container a:visited { background-image: linear-gradient(transparent,transparent 6px,#34495e 6px,#34495e); background-position: bottom; background-size: 100% 6px; background-repeat: repeat-x; text-decoration-line: underline; text-decoration-thickness: 2px; text-underline-offset: 4px; text-decoration-color: transparent; } .max-container a:hover, .max-container a:visited:hover{ text-decoration-color: #10b981; } .max-container { max-width: 1320px; margin-left: auto; margin-right: auto; padding: 0.75rem; } body.home .h1wrap-body, body.home .h1wrap .wrap-body { max-width: 940px; margin-left: auto; margin-right: auto; padding: 0.75rem; } body.home .h2wrap > h2 { display: inline-block; padding-right: 0.5rem; } body.home .h2wrap > h2::after { content: ' '; display: block; height: 3px; width: 110%; margin-top: 0.5rem; --bg-opacity: 1; background-color: rgb(30 41 59/var(--bg-opacity)); } body.home .h1wrap .wrap-body p + p { margin-top: 1.6rem; } body.home .h1wrap .wrap-body p { text-indent: 2rem; } body.home .h1wrap p { text-align: left; } .home-card { display: grid; gap: 2rem; grid-template-columns: repeat(2,minmax(0,1fr)); } .home-card a { display: flex; align-items: center; gap: 0.5rem; cursor: pointer; border-radius: 0.5rem; padding: 1rem; box-shadow: 0 0 #0000,0 0 #0000,0 1px 2px 0 rgba(0,0,0,0.05); color: var(--color-fg-default); --bg-opacity: 0.5; background-color: rgb(62 69 72/var(--bg-opacity)); transition: all .3s; } .home-card a:hover { --bg-opacity: 1; } .home-card a svg { min-width: 1.6rem; height: 1.8rem; } .home-title-reset { padding-right: 0 !important; } .home-title-reset::after { width: initial !important; } a.home-button { padding-left: 1.5rem; padding-right: 1.5rem; padding-top: 0.5rem; padding-bottom: 0.5rem; border-radius: 9999px; line-height: 1.75rem; margin-left: 1rem; margin-right: 1rem; --bg-opacity: 1; background-color: rgb(10 147 102/var(--bg-opacity)); --text-opacity: 1; color: rgb(203 213 225/var(--text-opacity)); } a.home-button:hover { --bg-opacity: 0.5; } a.text-grey { --bg-opacity: 1; background-color: rgb(56 76 109/var(--bg-opacity)); } .header-nav .max-container { padding-top: 1.8rem; } .header-nav .max-container, .header-nav .logo, .header-nav .menu, .header-nav .menu a { display: flex; justify-content: space-between; align-items: center; } .header-nav .logo { gap: 0.5rem; color: currentColor; } .header-nav .title { font-size: 1.8rem; line-height: 2rem; font-weight: bold; } .header-nav .logo svg { font-size: 40px; } .header-nav .menu a:hover, .header-nav .menu button:hover { background-color: var(--color-neutral-muted); } .header-nav .menu a, .header-nav .menu button { padding-left: 0.75rem; padding-right: 0.75rem; padding-top: 0.5rem; padding-bottom: 0.5rem; border-radius: 9999px; transition: all .3s; } .header-nav .menu { gap: 0.2rem; } .header-nav .menu a > span { font-size: 0.9rem; } .header-nav .menu button { font-family: inherit; font-size: 100%; font-weight: inherit; line-height: inherit; -webkit-appearance: button; background-color: transparent; background-image: none; color: var(--color-fg-default); cursor: pointer; font-size: 18px; } .header-nav a, .header-nav a:visited { color: var(--color-fg-default); line-height: 1.2; gap: 0.3rem; } .wrap-header.h1wrap { text-align: center; margin-top: 4.6rem; margin-bottom: 5rem; } .wrap-header.h1wrap .wrap-body { color: var(--color-fg-subtle); } .wrap-header.h1wrap > h1 { font-size: 3rem; line-height: 1; margin-bottom: 3rem; } .h1wrap-body { display: flex; flex-direction: column; gap: 3rem; } .wrap-header.h2wrap > h2 { margin: 0; padding: 0; margin-bottom: 24px; position: relative; font-size: 30px; line-height: 1.2; font-weight: 200; font-family: -apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif; margin-top: 0; } .wrap-header.h2wrap > :last-child { margin-bottom: 24px; } .wrap-header.h2wrap .wrap-body { color: rgb(148 163 184/1); } body:not(.home) .h2wrap > h2 a::after { content: '#'; padding-right: 0.5rem; color: rgb(16 185 129/1); } .wrap-header.h3wrap { z-index: 0; display: flex; height: 100%; width: 100%; flex-direction: column; } .wrap-header.h3wrap > h3 { color: rgb(226 232 240/1); position: absolute; right: 0px; top: 0px; z-index: 10; border-top-right-radius: 0.5rem; border-bottom-left-radius: 0.5rem; background-color: #228e6c; padding-left: 0.75rem; padding-right: 0.75rem; padding-top: 0.25rem; padding-bottom: 0.25rem; font-size: 0.75rem; line-height: 1rem; letter-spacing: 0.05em; } .wrap-header.h3wrap > .wrap-body p, .wrap-header.h4wrap > .wrap-body p { margin: 0px; width: 100%; padding-left: 1rem; padding-right: 1rem; padding-top: 0.75rem; padding-bottom: 0.75rem; color: var(--color-fg-subtle); background-color: var(--color-bg-subtle); } .wrap-header.h3wrap > .wrap-body p:first-child:before { background-color: var(--color-bg-subtle); color: rgb(30 41 59/0); content: '-'; line-height: 1.50rem; top: 0; position: absolute; left: 0px; width: 100%; border-radius: 0.5rem 0.5rem 0 0; } .wrap-header.h3wrap > .wrap-body p:not(:first-child):last-child { margin-top: auto; border-radius: 0 0 0.5rem 0.5rem; } .wrap-header.h3wrap > .wrap-body { z-index: 0; display: flex; height: 100%; width: 100%; flex-direction: column; } .h4wrap > h4 { border-color: transparent; background-color: var(--color-neutral-muted); color: var(--color-fg-default); margin: 0px; border-top-width: 1px; padding-left: 1rem; padding-right: 1rem; padding-top: 0.25rem; padding-bottom: 0.25rem; text-align: center; } .h4wrap > .wrap-body ul, .h4wrap > .wrap-body ol, .h4wrap > .wrap-body dl, .h3wrap > .wrap-body ul, .h3wrap > .wrap-body ol, .h3wrap > .wrap-body dl { margin-top: 0.5rem; margin-bottom: 0.5rem; display: grid; list-style-position: outside; grid-template-columns: repeat(1,minmax(0,1fr)); } .h2wrap-body ul li, .h2wrap-body ol li, .h2wrap-body dl li { padding: 9px; padding-left: 26px; position: relative; border-bottom: solid 1px var(--color-border-muted); } .h2wrap-body ul:not(.style-none)>li::before { content: ''; position: absolute; display: inline-block; width: 4px; height: 4px; background: #556677; border-radius: 50%; left: 13px; top: 18px; } .h2wrap-body ul li, .h2wrap-body ol li, .h2wrap-body dl li { position: relative; } .wrap-body ul:last-child { margin-bottom: 0; } .wrap-body ul:last-child li:last-child { border-bottom: 0; } .h3wrap hr { border-bottom: 1px solid var(--color-border-default); } .h2wrap-body { font-size: 0.925rem; line-height: 1.325rem; grid-template-columns: repeat(3,minmax(0,1fr)); flex-direction: column; } .h2wrap-body > .wrap { background-color: var(--color-canvas-subtle); position: relative; display: flex; flex-direction: column; border-radius: 0.5rem; padding-top: 1.5rem; margin-bottom: 1rem; box-shadow: 0 0 #0000, 0 0 #0000, 0 6px 8px rgba(102,119,136,0.03),0 1px 2px rgba(102,119,136,0.3); } .code-highlight { display: block; overflow-x: auto; } .cols-1 { grid-template-columns: repeat(1,minmax(0,1fr)) !important; } .cols-2 { grid-template-columns: repeat(2,minmax(0,1fr)) !important; } .cols-3 { grid-template-columns: repeat(3,minmax(0,1fr)) !important; } .cols-4 { grid-template-columns: repeat(4,minmax(0,1fr)) !important; } .cols-5 { grid-template-columns: repeat(5,minmax(0,1fr)) !important; } .col-span-2 { grid-column: span 2/span 2; } .col-span-3 { grid-column: span 3/span 3; } .col-span-4 { grid-column: span 4/span 4; } .row-span-2 { grid-row: span 2/span 2; } .row-span-3 { grid-row: span 3/span 3; } .row-span-4 { grid-row: span 4/span 4; } .wrap-text { white-space: pre-wrap !important; overflow-wrap: break-word !important; word-break: break-all; } .tooltip { position: relative; display: inline-block; } .tooltip .tooltiptext { display: none; font-style: inherit; position: absolute; background-color: rgb(67 67 67 / 66%); color: #fff; padding: 0.5rem; font-size: 12px; opacity: 0; border-radius: 0.5rem; z-index: 1; transition: opacity .6s; line-height: 1.5; width: 220px; bottom: 125%; left: 50%; margin-left: -110px; } .tooltip .tooltiptext::after { content: ""; position: absolute; top: 100%; left: 50%; margin-left: -5px; border-width: 5px; border-style: solid; border-color: rgb(67 67 67 / 66%) transparent transparent transparent; } .tooltip:hover .tooltiptext { visibility: visible; display: inline-block; opacity: 1; } /* 代码高亮 Start */ .token.comment, .token.prolog, .token.doctype, .token.cdata { color: var(--color-prettylights-syntax-comment); } .token.namespace { opacity: 0.7; } .token.tag, .token.selector, .token.constant, .token.symbol, .token.deleted { color: var(--color-prettylights-syntax-entity-tag); } .token.maybe-class-name { color: var(--color-prettylights-syntax-variable); } .token.property-access, .token.operator, .token.boolean, .token.number, .token.selector .token.class, .token.attr-name, .token.string, .token.char, .token.builtin { color: var(--color-prettylights-syntax-constant); } .token.deleted { color: var(--color-prettylights-syntax-markup-deleted-text); } .token.property { color: var(--color-prettylights-syntax-constant); } .token.punctuation { color: var(--color-prettylights-syntax-markup-bold); } .token.function { color: var(--color-prettylights-syntax-entity); } .code-line .token.deleted { background-color: var(--color-prettylights-syntax-markup-deleted-bg); } .token.inserted { color: var(--color-prettylights-syntax-markup-inserted-text); } .code-line .token.inserted { background-color: var(--color-prettylights-syntax-markup-inserted-bg); } .token.variable { color: var(--color-prettylights-syntax-constant); } .token.entity, .token.url, .language-css .token.string, .style .token.string { color: var(--color-prettylights-syntax-string); } .token.color, .token.atrule, .token.attr-value, .token.function, .token.class-name { color: var(--color-prettylights-syntax-string); } .token.rule, .token.regex, .token.important, .token.keyword { color: var(--color-prettylights-syntax-keyword); } .token.coord { color: var(--color-prettylights-syntax-meta-diff-range); } .token.number { color: var(--color-accent-emphasis); } .token.string { color: var(--color-prettylights-syntax-string); } .token.boolean { color: var(--color-prettylights-syntax-markup-heading); } .token.property-access { color: var(--color-prettylights-syntax-variable); } .token.important, .token.bold { font-weight: bold; } .token.italic { font-style: italic; } .token.entity { cursor: help; } /* 代码高亮 End */ .footer-wrap { margin-top: 3.5rem; color: rgb(100 116 139/1); background-color: var(--color-canvas-subtle); text-align: center; } @media (min-width: 1024px) { .h2wrap-body { display: grid; gap: 1.75rem; } .h2wrap-body > .wrap { margin-bottom: 0; } } @media (min-width: 768px) { .home-card { grid-template-columns: repeat(4,minmax(0,1fr)); } }