-
Notifications
You must be signed in to change notification settings - Fork 47
Expand file tree
/
Copy pathcontent.css
More file actions
172 lines (165 loc) · 19.3 KB
/
Copy pathcontent.css
File metadata and controls
172 lines (165 loc) · 19.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
.md-content__inner { position: relative; padding-top: 1.25rem; padding-bottom: 3rem; }
/* Material only gives .md-content__inner its right-hand gutter (margin-right:
1.2rem) via a `:not([hidden])` sidebar selector, so pages that hide the TOC
through `hide: - toc` (native `[hidden]` attribute) lose 0.4rem of margin and
end up wider than every other page. Restore it so widths stay consistent. */
.md-sidebar--secondary[hidden] ~ .md-content > .md-content__inner { margin-right: 1.2rem; }
.md-typeset { color: var(--docs-text-secondary); font-size: 1rem; line-height: 1.7; }
/* Offsets anchor jumps (TOC links, in-page #hash links) so headings don't land
under the sticky header. Scoped to headings rather than a page-wide
scroll-padding-top on <html>, which also caught focus() calls on elements
inside the header itself and caused a large scroll jump on search open. */
.md-typeset h1, .md-typeset h2, .md-typeset h3, .md-typeset h4, .md-typeset h5, .md-typeset h6 { scroll-margin-top: 5rem; }
.md-typeset h1, .md-typeset h2, .md-typeset h3, .md-typeset h4, .md-typeset h5 { color: var(--docs-text); font-weight: 700; letter-spacing: -.025em; }
.md-typeset h1 { margin: 0 0 1.5rem; font-size: 1.875rem; line-height: 1.25; }
.md-typeset h2 { margin-top: 3rem; padding-top: .25rem; font-size: 1.5rem; line-height: 1.35; }
.md-typeset h3 { margin-top: 2rem; font-size: 1.2rem; }
.md-typeset h4 { margin: 1.75rem 0 .5rem; font-size: 1.05rem; line-height: 1.45; }
.md-typeset h5 { margin: 1.5rem 0 .4rem; font-size: .95rem; line-height: 1.45; }
/* Material ships `.md-typeset h2+h3{margin-top:.8em}`, which out-specifies the
plain h3 rule above and tightens exactly the stacked case that needs the room. */
.md-typeset h2 + h3 { margin-top: 2rem; }
.md-content__inner > h1 + p { color: var(--docs-text-secondary); font-size: 1.0625rem; line-height: 1.65; }
.md-typeset a { color: var(--docs-link); font-weight: 500; text-decoration-thickness: 1px; text-underline-offset: .14em; }
.md-typeset a:hover { color: var(--docs-link-hover); }
/* Footnote-marker links inherit sup's browser-default font-size: smaller,
which shrinks the link's hit area to a few px on a side. Pad and pull back
with a matching negative margin so the tap target grows without shifting
surrounding text. Covers both markup orders: the footnotes extension emits
<sup><a>, hand-rolled footnote HTML elsewhere in the docs emits <a><sup>. */
.md-typeset a sup, .md-typeset sup a { display: inline-block; padding: .35rem; margin: -.35rem; }
/* A footnote referenced from many rows (common on this site's tool-support
tables) gets one back-reference link per usage from the footnotes
extension. Those render one per line instead of flowing inline, so a
footnote used 20+ times turns into a list item several times taller than
the page. Keep only the first jump-back link; the rest point to the same
definition anyway. */
.md-typeset .footnote-backref ~ .footnote-backref { display: none; }
.md-typeset code { padding: .14em .32em; border-radius: var(--docs-radius); background: var(--docs-bg-subtle); color: var(--docs-text); }
.md-typeset :not(pre) > code { border: 1px solid var(--docs-border); }
.md-typeset a code { color: inherit; }
.md-typeset pre { border: 1px solid var(--docs-border); border-radius: var(--docs-radius); background: var(--docs-code-bg); box-shadow: none; }
.md-typeset pre > code { color: var(--docs-code-text); background: transparent; }
.md-typeset pre > code, .md-typeset .highlighttable .code pre > code { overflow-x: auto; overflow-wrap: anywhere; white-space: pre-wrap; }
.md-typeset .highlighttable { overflow: hidden; border: 1px solid var(--docs-border); border-radius: var(--docs-radius); background: var(--docs-code-bg); }
.md-typeset .highlighttable .linenos { background: color-mix(in srgb, var(--docs-code-bg) 82%, var(--docs-bg)); color: var(--docs-text-tertiary); }
.md-typeset .highlighttable pre { border: 0; border-radius: 0; }
.md-typeset .md-code__nav { top: .35rem; right: .35rem; gap: .2rem; padding: 0; }
.md-typeset .md-code__button { display: grid; width: 1.75rem; height: 1.75rem; padding: .35rem; place-items: center; border-radius: var(--docs-radius); color: var(--docs-text-tertiary); }
.md-typeset :is(.md-code__button, .md-clipboard)::after { display: block; width: 1rem; height: 1rem; margin: 0; background-color: currentColor; -webkit-mask-image: url("../assets/vendor/ionicons/svg/copy-outline.svg"); mask-image: url("../assets/vendor/ionicons/svg/copy-outline.svg"); -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-position: center; mask-position: center; -webkit-mask-size: contain; mask-size: contain; }
.md-typeset .tabbed-control--prev .tabbed-button::after, .md-typeset .tabbed-control--next .tabbed-button::after { display: block; width: 1rem; height: 1rem; margin: 0; background-color: currentColor; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-position: center; mask-position: center; -webkit-mask-size: contain; mask-size: contain; }
.md-typeset .tabbed-control--prev .tabbed-button::after { -webkit-mask-image: url("../assets/vendor/ionicons/svg/chevron-back-outline.svg"); mask-image: url("../assets/vendor/ionicons/svg/chevron-back-outline.svg"); }
.md-typeset .tabbed-control--next .tabbed-button::after { -webkit-mask-image: url("../assets/vendor/ionicons/svg/chevron-forward-outline.svg"); mask-image: url("../assets/vendor/ionicons/svg/chevron-forward-outline.svg"); }
.md-typeset .md-code__button:hover, .md-typeset .md-code__button:focus-visible { background: color-mix(in srgb, var(--docs-text) 8%, transparent); color: var(--docs-text); }
.md-typeset .md-code__button:focus-visible { outline: 2px solid var(--docs-link); outline-offset: 1px; }
.md-dialog { border: 1px solid var(--docs-border); background: var(--docs-bg-secondary); }
.md-dialog__inner { color: var(--docs-text); }
.md-typeset .highlight span.hll { display: inline-block; width: 100%; background: color-mix(in srgb, var(--docs-link) 18%, transparent); }
.md-typeset .tabbed-set { margin: 1.5rem 0; border: 1px solid var(--docs-border); border-radius: var(--docs-radius); background: var(--docs-bg); overflow: hidden; }
.md-typeset .tabbed-labels { padding: .25rem .5rem 0; border-bottom: 1px solid var(--docs-border); background: var(--docs-bg-secondary); }
.md-typeset .tabbed-labels > label { padding: .55rem .65rem; color: var(--docs-text-tertiary); font-size: .78rem; font-weight: 600; }
.md-typeset .tabbed-labels > label:hover { color: var(--docs-text); }
.md-typeset .tabbed-labels::before { background: var(--docs-link); }
.md-typeset .tabbed-content { box-shadow: none; }
.md-typeset .tabbed-content > .tabbed-block { margin: 0; }
.md-typeset .tabbed-content pre { margin: 0; border: 0; border-radius: 0; }
.md-typeset table:not([class]) { border: 1px solid var(--docs-border); border-radius: var(--docs-radius); box-shadow: none; }
.docs-table-scroll { width: 100%; overflow-x: auto; margin: 1.5rem 0; }
.docs-table-scroll > table { margin: 0; }
.md-typeset table:not([class]) th { color: var(--docs-text); background: var(--docs-bg-secondary); }
.md-typeset table:not([class]) tr:hover { background: var(--docs-bg-secondary); }
.md-typeset table:not([class]):not([style]) { font-size: .8125rem; }
.md-typeset table:not([class]):not([style]) :is(th, td) { padding: .6rem .9rem; }
.md-typeset table:not([class]):not([style]) th { border-bottom: 1px solid var(--docs-border); }
.md-typeset .admonition, .md-typeset details { margin: 1.25rem 0; padding: .7rem .9rem; border: 1px solid color-mix(in srgb, var(--docs-link) 28%, var(--docs-border)); border-radius: var(--docs-radius); background: color-mix(in srgb, var(--docs-link) 4%, var(--docs-bg)); color: var(--docs-text-secondary); box-shadow: none; font-size: .875rem; line-height: 1.55; }
.md-typeset .admonition > :last-child, .md-typeset details > :last-child { margin-bottom: 0; }
.md-typeset .admonition > :first-child:not(.admonition-title), .md-typeset details > :first-child:not(summary) { margin-top: 0; }
.md-typeset .admonition > p, .md-typeset details > p { color: var(--docs-text-secondary); }
.md-typeset .admonition > .admonition-title + p, .md-typeset details > summary + p { margin: 0; }
/* Hanging indent, not flex: titles carry inline markup (links, bold), and each of
those would otherwise become a separate flex item with a gap between the words. */
.md-typeset .admonition > .admonition-title, .md-typeset details > summary { display: block; position: relative; margin: 0 0 .3rem; padding: 0 0 0 1.5rem; background: transparent; color: var(--docs-text); font-size: .875rem; font-weight: 600; line-height: 1.45; list-style: none; }
/* Collapsible admonitions (`??? note "…"`). Material gives the summary a full-bleed
tinted band, a chevron off this theme's padding grid, and extra space under the body,
so an open collapsible doesn't match a static admonition. Flatten all three. The
`[class]` is there for specificity: pymdownx always puts the type on the element, and
plain `details > summary` loses to Material's own `[dir=ltr] .md-typeset summary`.
Right padding keeps the title clear of the chevron. */
.md-typeset details[class] > summary { padding: 0 1.2rem 0 1.5rem; background: transparent; cursor: pointer; }
.md-typeset details[class] > summary::after { top: .18rem; right: 0; width: .9rem; height: .9rem; background-color: var(--docs-text-secondary); }
.md-typeset details[class] > summary:hover::after { background-color: var(--docs-text); }
.md-typeset details[class] > summary:focus-visible { outline: 2px solid var(--docs-link); outline-offset: 3px; }
.md-typeset details[class]:focus-within { box-shadow: none; }
html .md-typeset details[class] > :last-child { margin-bottom: 0; }
/* Material zeroes the bottom padding of a closed details, because its summary carries
its own padding inside a full-bleed band. This theme's summary is flat, so restore the
box padding and drop the summary's bottom margin when nothing follows it — otherwise a
closed collapsible sits .3rem off its bottom border while the top keeps the full .7rem. */
.md-typeset details[class]:not([open]) { padding-bottom: .7rem; }
.md-typeset details[class]:not([open]) > summary { margin-bottom: 0; }
.md-typeset .admonition > .admonition-title:only-child, .md-typeset details > summary:only-child { margin-bottom: 0; }
.md-typeset .admonition > .admonition-title::before, .md-typeset details[class] > summary::before { content: ""; position: absolute; top: .18rem; left: 0; display: block; width: .9rem; height: .9rem; background-color: var(--docs-link); -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-position: center; mask-position: center; -webkit-mask-size: contain; mask-size: contain; }
.md-typeset .admonition.important > .admonition-title::before, .md-typeset details.important > summary::before { -webkit-mask-image: var(--md-admonition-icon--info); mask-image: var(--md-admonition-icon--info); }
.md-typeset .admonition.info > .admonition-title::before, .md-typeset details.info > summary::before { background-color: #00b8d4; }
.md-typeset .admonition.tip > .admonition-title::before, .md-typeset details.tip > summary::before, .md-typeset .admonition.success > .admonition-title::before, .md-typeset details.success > summary::before { background-color: var(--docs-success); }
.md-typeset .admonition.warning > .admonition-title::before, .md-typeset details.warning > summary::before { background-color: var(--docs-warning); }
.md-typeset .admonition.danger > .admonition-title::before, .md-typeset details.danger > summary::before { background-color: var(--docs-danger); }
/* Untitled admonitions (`!!! note ""`) have no title element to hang the icon on,
so the icon moves onto the box itself instead of leaving an unlabelled colored block. */
.md-typeset .admonition { --docs-admonition-icon: var(--md-admonition-icon--note); --docs-admonition-color: var(--docs-link); }
.md-typeset .admonition.important { --docs-admonition-icon: var(--md-admonition-icon--info); }
.md-typeset .admonition.info { --docs-admonition-icon: var(--md-admonition-icon--info); --docs-admonition-color: #00b8d4; }
.md-typeset .admonition.tip { --docs-admonition-icon: var(--md-admonition-icon--tip); --docs-admonition-color: var(--docs-success); }
.md-typeset .admonition.success { --docs-admonition-icon: var(--md-admonition-icon--success); --docs-admonition-color: var(--docs-success); }
.md-typeset .admonition.warning { --docs-admonition-icon: var(--md-admonition-icon--warning); --docs-admonition-color: var(--docs-warning); }
.md-typeset .admonition.danger { --docs-admonition-icon: var(--md-admonition-icon--danger); --docs-admonition-color: var(--docs-danger); }
.md-typeset .admonition:not(:has(> .admonition-title)) { position: relative; padding-left: 2.4rem; }
.md-typeset .admonition:not(:has(> .admonition-title))::before { content: ""; position: absolute; top: .88rem; left: .9rem; width: .9rem; height: .9rem; background-color: var(--docs-admonition-color); -webkit-mask-image: var(--docs-admonition-icon); mask-image: var(--docs-admonition-icon); -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-position: center; mask-position: center; -webkit-mask-size: contain; mask-size: contain; }
/* Per-type weight. `note` and `info` had no rule of their own and fell through to
Material's saturated palette, which left `note` — the most incidental type, and the
most used — with 1.76x the border contrast of `important`, the one readers must not
skip. These three mix toward `--docs-bg` rather than `--docs-border`: contrast is then
monotonic in the percentage, so the same numbers hold in both schemes.
Border contrast against the box, light / dark:
note 1.34/1.29 · info 1.58/2.98 · tip 1.69/3.23 · warning 1.75/3.72 · important 3.39/3.60 */
.md-typeset .admonition.note, .md-typeset details.note { border-color: color-mix(in srgb, var(--docs-link) 22%, var(--docs-bg)); background: color-mix(in srgb, var(--docs-link) 3%, var(--docs-bg)); }
.md-typeset .admonition.info, .md-typeset details.info { border-color: color-mix(in srgb, #00b8d4 55%, var(--docs-bg)); background: color-mix(in srgb, #00b8d4 5%, var(--docs-bg)); }
.md-typeset .admonition.important, .md-typeset details.important { border-color: color-mix(in srgb, var(--docs-link) 78%, var(--docs-bg)); background: color-mix(in srgb, var(--docs-link) 7%, var(--docs-bg)); }
.md-typeset .admonition.tip, .md-typeset details.tip, .md-typeset .admonition.success, .md-typeset details.success { border-color: color-mix(in srgb, var(--docs-success) 35%, var(--docs-border)); background: color-mix(in srgb, var(--docs-success) 6%, var(--docs-bg)); }
.md-typeset .admonition.warning, .md-typeset details.warning { border-color: color-mix(in srgb, var(--docs-warning) 38%, var(--docs-border)); background: color-mix(in srgb, var(--docs-warning) 6%, var(--docs-bg)); }
.md-typeset .admonition.danger, .md-typeset details.danger { border-color: color-mix(in srgb, var(--docs-danger) 35%, var(--docs-border)); background: color-mix(in srgb, var(--docs-danger) 6%, var(--docs-bg)); }
.md-content article.md-typeset blockquote { margin: 1.5rem 0; padding: .15rem 0 .15rem 1rem; border-left: 2px solid var(--docs-border-strong); color: var(--docs-text-secondary); }
.md-content article.md-typeset blockquote > :first-child { margin-top: 0; }
.md-content article.md-typeset blockquote > :last-child { margin-bottom: 0; }
.md-typeset .nav-multistep { margin: 1.5rem 0 2rem; }
.md-typeset .nav-multistep > p { margin: 0 0 .65rem; color: var(--docs-text-tertiary); font-size: .8rem; }
.md-typeset .nav-multistep ol { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; margin: 0; padding: 0; counter-reset: guide-step; list-style: none; }
.md-typeset .nav-multistep ol > li { display: block; min-width: 0; margin: 0; counter-increment: guide-step; }
.md-typeset .nav-multistep :is(a, span) { display: grid; grid-template-columns: 1.75rem minmax(0, 1fr); gap: .65rem; height: 100%; align-items: center; padding: .75rem; border: 1px solid var(--docs-border); border-radius: var(--docs-radius); background: var(--docs-bg); color: var(--docs-text-secondary); font-size: .82rem; font-weight: 600; line-height: 1.4; text-decoration: none; }
.md-typeset .nav-multistep :is(a, span)::before { display: grid; width: 1.75rem; height: 1.75rem; place-items: center; border-radius: 50%; background: var(--docs-bg-subtle); color: var(--docs-text-secondary); content: counter(guide-step); font-size: .75rem; }
.md-typeset .nav-multistep a:hover { border-color: var(--docs-border-strong); background: var(--docs-bg-secondary); color: var(--docs-link); }
.md-typeset .nav-multistep a:focus-visible { outline: 2px solid var(--docs-link); outline-offset: 2px; }
.md-typeset .nav-multistep [aria-current="step"] > span { border-color: var(--docs-border-strong); background: var(--docs-bg-brand); color: var(--docs-text); }
.md-typeset .nav-multistep [aria-current="step"] > span::before { background: var(--docs-link); color: #fff; }
.docs-notice { margin: 0 0 1.5rem; padding: 1rem 1.1rem; border: 1px solid var(--docs-border-strong); border-radius: var(--docs-radius); background: var(--docs-bg-brand); color: var(--docs-text-secondary); }
.docs-notice strong { color: var(--docs-text); }
.docs-notice p { margin: .35rem 0 0; }
.docs-source-link { float: right; margin: .25rem 0 1rem 1rem; color: var(--docs-text-tertiary); font-size: .78rem; font-weight: 600; text-decoration: none; }
.docs-revision { display: flex; align-items: center; gap: .35rem; margin-top: 2.5rem; color: var(--docs-text-tertiary); font-size: .78rem; }
.docs-revision span { color: var(--docs-text-secondary); font-weight: 600; }
.docs-revision span::after { color: var(--docs-text-tertiary); content: "·"; margin-left: .35rem; }
.docs-revision .git-revision-date-localized-plugin::after { content: none; }
.docs-error { max-width: 34rem; padding: 4rem 0 7rem; }
.docs-error__code { margin: 0 0 .55rem; color: var(--docs-link); font-size: .78rem; font-weight: 700; letter-spacing: .08em; }
.docs-error h1 { margin-bottom: 1rem; }
.docs-error > p:not(.docs-error__code) { max-width: 31rem; }
.docs-error__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.5rem; }
.md-typeset .docs-error__actions a, .md-typeset .docs-error__actions label { display: inline-flex; min-height: 2.75rem; align-items: center; justify-content: center; padding: .65rem 1rem; border: 1px solid var(--docs-border); border-radius: var(--docs-radius); background: var(--docs-bg); color: var(--docs-text); cursor: pointer; font-size: .85rem; font-weight: 600; text-decoration: none; }
.md-typeset .docs-error__actions .docs-error__primary { border-color: var(--docs-link); background: var(--docs-link); color: #fff; }
.md-typeset .docs-error__actions a:hover, .md-typeset .docs-error__actions label:hover { border-color: var(--docs-border-strong); background: var(--docs-bg-secondary); color: var(--docs-link); }
.md-typeset .docs-error__actions .docs-error__primary:hover { border-color: var(--docs-link-hover); background: var(--docs-link-hover); color: #fff; }
.docs-error__actions a:focus-visible, .docs-error__actions label:focus-visible { outline: 2px solid var(--docs-link); outline-offset: 3px; }
.md-main__inner:has(.docs-error) .md-sidebar { display: none; }
.md-typeset img.docs-image { display: block; max-width: 100%; height: auto; margin: 1.5rem 0; border: 1px solid var(--docs-border); border-radius: var(--docs-radius); box-shadow: var(--docs-shadow-1); }
.md-typeset p.docs-image-block { margin: 1.75rem 0; }
.md-typeset p.docs-image-block img.docs-image { margin: 0; }