/* latin */ @font-face { font-family: "Karla"; font-style: normal; font-weight: 400; src: url("./fonts/karla-regular-.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } /* latin-ext */ @font-face { font-family: "Karla"; font-style: normal; font-weight: 400; src: url("./fonts/karla-regular-ext.woff2") format("woff2"); unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; } /* latin */ @font-face { font-family: "Karla"; font-style: normal; font-weight: 700; src: url("./fonts/karla-bold.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } /* latin-ext */ @font-face { font-family: "Karla"; font-style: normal; font-weight: 700; src: url("./fonts/karla-bold-ext.woff2") format("woff2"); unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; } @font-face { font-family: "Material Symbols Rounded"; font-style: normal; font-weight: 100 700; font-display: block; src: url("./fonts/material-symbols-rounded.woff2") format("woff2"); } /* ---------------------------------------------------------------------- */ html { --cd-font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; --cd-font-sans: Karla, sans-serif; --cd-font-icons: "Material Symbols Rounded"; --cd-padding-left: max(1rem, env(safe-area-inset-right)); --cd-padding-right: max(1rem, env(safe-area-inset-left)); --cd-brand-color: #fbbf24; --cd-bg-color-light: rgb(255 255 255); --cd-bg-color-dark: rgb(23 23 23); --cd-bg-color: var(--cd-bg-color-light); --cd-bg-color-hover: rgb(240, 240, 240); --cd-text-color: rgb(23 23 23); --cd-text-color-mild: rgb(63 63 70); --cd-border-color: #e3e3e4; --cd-nav-bg-color: rgba(255, 255, 255, 0.8); --cd-nav-bg-color-hover: rgb(244, 244, 244); --doc-symbol-parameter-fg-color: #df50af; --doc-symbol-attribute-fg-color: #953800; --doc-symbol-function-fg-color: #8250df; --doc-symbol-method-fg-color: #8250df; --doc-symbol-class-fg-color: #0550ae; --doc-symbol-module-fg-color: #5cad0f; --doc-symbol-parameter-bg-color: #df50af1a; --doc-symbol-attribute-bg-color: #9538001a; --doc-symbol-function-bg-color: #8250df1a; --doc-symbol-method-bg-color: #8250df1a; --doc-symbol-class-bg-color: #0550ae1a; --doc-symbol-module-bg-color: #5cad0f1a; } html.dark { --cd-brand-color: #3451b2; --cd-bg-color: var(--cd-bg-color-dark); --cd-bg-color-hover: rgb(40 40 40); --cd-text-color: rgb(250 250 250); --cd-text-color-mild: rgb(161 161 170); --cd-border-color: rgb(60 60 60); --cd-nav-bg-color: rgba(60, 60, 60, 0.8); --cd-nav-bg-color-hover: rgb(70, 70, 70); --doc-symbol-parameter-fg-color: #ffa8cc; --doc-symbol-attribute-fg-color: #ffa657; --doc-symbol-function-fg-color: #d2a8ff; --doc-symbol-method-fg-color: #d2a8ff; --doc-symbol-class-fg-color: #79c0ff; --doc-symbol-module-fg-color: #baff79; --doc-symbol-parameter-bg-color: #ffa8cc1a; --doc-symbol-attribute-bg-color: #ffa6571a; --doc-symbol-function-bg-color: #d2a8ff1a; --doc-symbol-method-bg-color: #d2a8ff1a; --doc-symbol-class-bg-color: #79c0ff1a; --doc-symbol-module-bg-color: #baff791a; } /* ---------------------------------------------------------------------- */ /* 1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4) 2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116) */ *, ::before, ::after { /* 1 */ box-sizing: border-box; /* 2 */ border-width: 0; /* 2 */ border-style: solid; /* 2 */ border-color: #e5e7eb; } ::before, ::after { --cd-content: ""; } /* 1. Use a consistent sensible line-height in all browsers. 2. Prevent adjustments of font size after orientation changes in iOS. 3. Use a more readable tab size. 4. Set default font sans 4. Disable tap highlights on iOS */ html, :host { /* 1 */ line-height: 1.5; /* 2 */ tab-size: 4; /* 3 */ -webkit-text-size-adjust: 100%; /* 4 */ font-family: var(--cd-font-sans); font-feature-settings: normal; font-variation-settings: normal; /* 5 */ -webkit-tap-highlight-color: transparent; } /* 1. Remove the margin in all browsers. 2. Inherit line-height from `html` so users can set them as a class directly on the `html` element. */ body { /* 1 */ margin: 0; /* 2 */ line-height: inherit; } /* 1. Add the correct height in Firefox. 2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655) 3. Ensure horizontal rules are visible by default. */ hr { /* 1 */ height: 0; /* 2 */ color: inherit; /* 3 */ border-top-width: 1px; } /* Add the correct text decoration in Chrome, Edge, and Safari. */ abbr:where([title]) { -webkit-text-decoration: underline dotted; text-decoration: underline dotted; } /* Remove the default font size and weight for headings. */ h1, h2, h3, h4, h5, h6 { font-size: inherit; font-weight: inherit; } /* Reset links to optimize for opt-in styling instead of opt-out. */ a { color: inherit; text-decoration: inherit; } /* Add the correct font weight in Edge and Safari. */ b, strong { font-weight: bolder; } /* 1. Use the user"s configured `mono` font-family by default. 2. Correct the odd `em` font sizing in all browsers. */ code, kbd, samp, pre { /* 1 */ font-family: var(--cd-font-mono); font-feature-settings: normal; font-variation-settings: normal; /* 2 */ font-size: 1em; } /* Add the correct font size in all browsers. */ small { font-size: 80%; } /* Prevent `sub` and `sup` elements from affecting the line height in all browsers. */ sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } sub { bottom: -0.25em; } sup { top: -0.5em; } /* 1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297) 2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016) 3. Remove gaps between table borders by default. */ table { /* 1 */ text-indent: 0; /* 2 */ border-color: inherit; /* 3 */ border-collapse: collapse; } /* 1. Change the font styles in all browsers. 2. Remove the margin in Firefox and Safari. 3. Remove default padding in all browsers. */ button, input, optgroup, select, textarea { /* 1 */ font-family: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-size: 100%; font-weight: inherit; line-height: inherit; letter-spacing: inherit; color: inherit; /* 2 */ margin: 0; /* 3 */ padding: 0; } /* Remove the inheritance of text transform in Edge and Firefox. */ button, select { text-transform: none; } /* 1. Correct the inability to style clickable types in iOS and Safari. 2. Remove default button styles. */ button, input:where([type="button"]), input:where([type="reset"]), input:where([type="submit"]) { /* 1 */ -webkit-appearance: button; /* 2 */ background-color: transparent; background-image: none; } /* Use the modern Firefox focus style for all focusable elements. */ :-moz-focusring { outline: auto; } /* Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737) */ :-moz-ui-invalid { box-shadow: none; } /* Add the correct vertical alignment in Chrome and Firefox. */ progress { vertical-align: baseline; } /* Correct the cursor style of increment and decrement buttons in Safari. */ ::-webkit-inner-spin-button, ::-webkit-outer-spin-button { height: auto; } /* 1. Correct the odd appearance in Chrome and Safari. 2. Correct the outline style in Safari. */ [type="search"] { /* 1 */ -webkit-appearance: textfield; /* 2 */ outline-offset: -2px; } /* Remove the inner padding in Chrome and Safari on macOS. */ ::-webkit-search-decoration { -webkit-appearance: none; } /* 1. Correct the inability to style clickable types in iOS and Safari. 2. Change font properties to `inherit` in Safari. */ ::-webkit-file-upload-button { /* 1 */ -webkit-appearance: button; /* 2 */ font: inherit; } /* Add the correct display in Chrome and Safari. */ summary { display: list-item; } /* Removes the default spacing and border for appropriate elements. */ blockquote, dl, dd, h1, h2, h3, h4, h5, h6, hr, figure, p, pre { margin: 0; } fieldset { margin: 0; padding: 0; } legend { padding: 0; } ol, ul, menu { list-style: none; margin: 0; padding: 0; } /* Reset default styling for dialogs. */ dialog { padding: 0; } /* Prevent resizing textareas horizontally by default. */ textarea { resize: vertical; } /* 1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300) 2. Set the default placeholder color to the user"s configured gray 400 color. */ input::-moz-placeholder, textarea::-moz-placeholder { /* 1 */ opacity: 1; /* 2 */ color: #9ca3af; } input::placeholder, textarea::placeholder { /* 1 */ opacity: 1; /* 2 */ color: #9ca3af; } /* Set the default cursor for buttons. */ button, [role="button"] { cursor: pointer; } /* Make sure disabled buttons don"t get the pointer cursor. */ :disabled { cursor: default; } /* 1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14) 2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210) This can trigger a poorly considered lint error in some tools but is included by design. */ img, svg, video, canvas, audio, iframe, embed, object { /* 1 */ display: block; /* 2 */ vertical-align: middle; } /* Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14) */ img, video { max-width: 100%; height: auto; } /* Make elements with the HTML hidden attribute stay hidden by default */ [hidden] { display: none; } /* ---------------------------------------------------------------------- */ html:has(.cd-nav-mobile:popover-open) { overflow: hidden !important; overflow-x: hidden !important; overflow-y: hidden !important; } body { position: relative; min-height: 100vh; color: var(--cd-text-color); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; background-color: var(--cd-bg-color-light); transition: background 100ms linear; } html.dark body { background-color: var(--cd-bg-color-dark); } .keys, kbd:not(.keys > kbd) { font-family: var(--cd-font-mono); display: inline-block; padding: 0.2rem 0.25rem; margin-left: 0.1rem; margin-right: 0.1rem; font-size: 0.875rem; line-height: 1; font-weight: 500; letter-spacing: -0.025em; line-height: 1; border-radius: 0.25rem; border-width: 1px; border-color: #ffffff; box-shadow: 0 0 2px 0 #000; &:is(.dark *) { border-color: rgb(0 0 0); background-color: rgb(24 24 27); } } .scrollbar-thin { scrollbar-width: thin; /* Firefox */ } .scrollbar-thin::-webkit-scrollbar { /* Safari and Chrome */ width: 2px; background-color: ButtonFace; } .scrollbar-default { -ms-overflow-style: auto; /* IE and Edge */ scrollbar-width: auto; /* Firefox */ } .scrollbar-default::-webkit-scrollbar { /* Safari and Chrome */ width: auto; } a.headerlink { margin-left: .25rem; display: inline-block; text-decoration-line: none; opacity: 0; transition-property: opacity; transition-timing-function: cubic-bezier(.4,0,.2,1); transition-duration: .15s; } h2:hover a.headerlink, h3:hover a.headerlink, h4:hover a.headerlink, h5:hover a.headerlink, h6:hover a.headerlink { opacity: 0.5; } /* ---------------------------------------------------------------------- */ .doc-symbol { border-radius: 0.1rem; padding: 0 0.3em; font-weight: bold; } .doc-symbol-attr { color: var(--doc-symbol-attribute-fg-color) !important; background-color: var(--doc-symbol-attribute-bg-color) !important; } .doc-symbol-function { color: var(--doc-symbol-function-fg-color) !important; background-color: var(--doc-symbol-function-bg-color) !important; } .doc-symbol-method { color: var(--doc-symbol-method-fg-color) !important; background-color: var(--doc-symbol-method-bg-color) !important; } .doc-symbol-class { color: var(--doc-symbol-class-fg-color) !important; background-color: var(--doc-symbol-class-bg-color) !important; } .doc-symbol-module { color: var(--doc-symbol-module-fg-color) !important; background-color: var(--doc-symbol-module-bg-color) !important; } .doc-oname { font-weight: normal; } .doc-olabel { font-size: 0.6em !important; color: #36464e !important; font-weight: 400; padding: 0.1rem 0.4rem !important; } .doc-attrs ~ .doc-methods, .doc-properties ~ .doc-methods { margin-top; 1rem; } /* ---------------------------------------------------------------------- */ .icon { font-family: var(--cd-font-icons); font-weight: normal; font-style: normal; letter-spacing: normal; text-transform: none; display: inline-block; white-space: nowrap; word-wrap: normal; direction: ltr; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; font-feature-settings: "liga"; cursor: default; pointer-events: none; } /* ---------------------------------------------------------------------- */ .cd-source { display: flex; align-items: center; font-size: 0.85rem; line-height: 1.2; white-space: nowrap; cursor: pointer; text-decoration: none; padding: 0.5rem 0.75rem; min-width: 150px; backdrop-filter: blur(4px); background-color: var(--cd-nav-bg-color); border-radius: 1rem; transition: background 300ms ease-in-out; &:hover { background-color: var(--cd-nav-bg-color-hover); } & > div { opacity: 0.8; transition: opacity 300ms ease-in-out; } &:hover > div { opacity: 1; } & .cd-source__icon { padding-right: 0.5rem; } & .cd-source__icon svg { height: 1.5rem; width: 1.5rem; fill: currentcolor; display: block; } & .cd-source__label { font-size: 0.9rem; font-weight: bold; } & .cd-source__repo { display: inline-block; max-width: calc(100% - 1.2rem); overflow: hidden; text-overflow: ellipsis; vertical-align: middle; } @media (max-width: 480px) { & { min-width: 0; } & .cd-source__icon { padding-right: 0; } & .cd-source__repo { display: none; } } & .cd-source__facts { display: hidden; gap: 0.4rem; list-style-type: none; margin: 0.1rem 0 0; overflow: hidden; padding: 0; width: 100%; opacity: 0; transform: translateY(100%); transition: all 0.5s ease-out; } & .cd-source__facts.cd-source__facts--visible { display: flex; opacity: 1; transform: translateY(0); } & .cd-source__facts [data-fact] { overflow: hidden; text-overflow: ellipsis; display: flex; align-items: center; line-height: 1; } & .cd-source__facts [data-fact]:nth-child(1n+2) { flex-shrink: 0; } & .cd-source__facts [data-fact]:not([hidden]):before { width: 0.6rem; padding-right: 0.8rem; font-family: var(--cd-font-icons); font-weight: normal; font-style: normal; letter-spacing: normal; text-transform: none; display: inline-block; white-space: nowrap; word-wrap: normal; direction: ltr; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; font-feature-settings: "liga"; cursor: default; pointer-events: none; } & .cd-source__facts [data-fact="version"]:not([hidden]):before { content: "tag"; } & .cd-source__facts [data-fact="stars"]:not([hidden]):before { content: "star"; } & .cd-source__facts [data-fact="forks"]:not([hidden]):before { content: "fork_right"; } & .cd-source__facts [data-fact="numrepos"]:not([hidden]):before { content: "numbers"; } } /* ---------------------------------------------------------------------- */ .cd-cards { & { display: grid; grid-gap: 1rem; } @media (min-width: 480px) { & { grid-template-columns: repeat(2, 1fr); } } @media (min-width: 900px) { & { grid-template-columns: repeat(4, 1fr); } } & a.card { display: block; border: 1px solid var(--cd-border-color); padding: 1rem; border-radius: 6px; background-color: var(--cd-bg-color); transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); } & a.card:hover { display: block; background-color: var(--cd-bg-color-hover); } & a.card h2 { text-decoration: none; font-family: var(--cd-font-sans); font-weight: bold; } } /* ---------------------------------------------------------------------- */ .cd-text-button { display: inline-flex; cursor: pointer; touch-action: manipulation; -webkit-appearance: none; -moz-appearance: none; appearance: none; align-items: center; justify-content: center; white-space: nowrap; border-radius: 0.25rem; border-width: 1px; border-color: rgb(228 228 231); background-color: rgb(250 250 250); padding: 0.25rem 0.5rem; font-size: 0.875rem; line-height: 1.25rem; font-weight: 600; color: rgb(39 39 42); &:hover { border-color: rgb(212 212 216); background-color: rgb(244 244 245); color: rgb(24 24 27); box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);; } &:focus { outline-style: solid; outline-offset: 1px; outline-color: rgb(82 82 91 / 0.5); } &:active { border-color: rgb(161 161 170); } &:disabled { cursor: default; outline: 2px solid transparent; outline-offset: 2px; } &:is(.dark *) { border-color: rgb(82 82 91); background-color: rgb(82 82 91 / 0.1); color: rgb(228 228 231); } &:is(.dark *):hover { border-color: rgb(113 113 122); background-color: rgb(24 24 27); color: rgb(244 244 245); } &:is(.dark *):active { border-color: var(--cd-bg-color); } } /* ---------------------------------------------------------------------- */ .cd-callout { --bg-color: rgb(244 244 245); --border-color: rgb(212 212 216); --text-color: rgb(39 39 42); &.type-note, &.type-info, &.type-todo { --bg-color: rgb(244 244 245); --border-color: rgb(212 212 216); --text-color: rgb(39 39 42); } &.type-tip { --bg-color: rgb(254 249 195); --border-color: rgb(254 240 138); --text-color: rgb(133 77 14); } &.type-alert { --bg-color: rgb(255 237 213); --border-color: rgb(254 215 170); --text-color: rgb(154 52 18); } &.type-warning { --bg-color: rgb(255 237 213); --border-color: rgb(254 215 170); --text-color: rgb(154 52 18); } &.type-danger { --bg-color: rgb(255 228 230); --border-color: rgb(254 205 211); --text-color: rgb(136 19 55); } &.type-error { --bg-color: rgb(255 228 230); --border-color: rgb(254 205 211); --text-color: rgb(136 19 55); } &.type-internal { --bg-color: rgb(231 229 228); --border-color: rgb(214 211 209); --text-color: rgb(28 25 23); } & { position: relative; border-top-width: 1px; border-bottom-width: 1px; overflow: hidden; margin-left: -1rem; margin-right: -1rem; background-color: var(--bg-color); border-color: var(--border-color); color: var(--text-color); } @media (min-width: 640px) { & { border-left-width: 1px; border-right-width: 1px; border-radius: 0.25rem; margin-left: 0; margin-right: 0; } } &:is(.dark *) { background-color: oklch(from var(--bg-color) calc(l * 2) calc(c * 3) h / 0.8); border-color: oklch(from var(--border-color) calc(l * 1.5) c h); color: oklch(from var(--text-color) calc(l * 0.5) c h); } &:is(.dark *) ::selection { background-color: oklch(from var(--bg-color) calc(l * 1.2) calc(c * 4) h) } &:is(aside) { display: flex; align-items: flex-start; padding: 1.25rem 1rem 1rem; } @media (min-width: 640px) { &:is(aside) { padding-left: 1.25rem; padding-right: 1.25rem; } } & summary { display: flex; align-items: center; font-weight: 700; height: 3rem; padding-left: 1.25rem; padding-right: 1.25rem; cursor: pointer; } & .icon { margin: -0.1rem 1rem 0 -0.25rem; opacity: 0.9; font-size: 1.2rem; line-height: 1.4; } @media (max-width: 639px) { & .icon { display: none; } } & .icon.arrow { margin-left: auto; transition-property: transform; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; } & details&[open] .icon.arrow { transform: rotate(180deg); } & .content { line-height: 1.4; } & details& .content { padding: 0 1rem 1rem; } @media (min-width: 640px) { & details& .content { padding: 0 1.25rem 1rem; } } } /* Cannot be nested */ .cd-callout::selection { background-color: oklch(from var(--bg-color) calc(l * 0.9) calc(c * 3) h); } /* ---------------------------------------------------------------------- */ .cd-example-tabs { position: relative; margin-top: 2rem; margin-bottom: 3rem; display: flex; flex-direction: column; align-items: center; justify-content: center; width: 100%; & .example-tabgroup { width: 100%; overflow: hidden; position: relative; border: 1px solid #999; border-radius: 0.4rem; } & .example-tablist { z-index: 0; display: flex; border-bottom: 1px solid #999; background-color: rgb(249 250 251); overflow-x: auto; overflow-y: hidden; -ms-scroll-chaining: none; overscroll-behavior: contain; width: 100%; text-align: center; font-size: 0.875rem; line-height: 1.25rem; font-weight: 500; color: rgb(107 114 128); } & .example-tablist:is(.dark *) { border-color: rgb(75 85 99); background-color: rgb(55 65 81); color: rgb(156 173 175); } & .example-tab { user-select: none; border-right-width: 1px; border-color: #999; background-color: rgb(255 255 255); padding: 0.5rem 1.6rem; color: #333; } & .example-tab:is(.dark *) { border-color: rgb(75 85 99); background-color: rgb(31 41 55); color: rgb(255 255 255); } & .example-tab:not(.ui-disabled):not(.ui-selected):hover { background-color: rgb(249 250 251); color: rgb(55 65 81); } & .example-tab:not(.ui-disabled):not(.ui-selected):hover:is(.dark *) { background-color: rgb(55 65 81); color: rgb(255 255 255); } & .example-tab.ui-disabled { color: rgb(193 204 220); } & .example-tab.ui-selected { color: black; background-color: #e7e9ed; } & .example-tab.ui-selected:is(.dark *) { color: white; background-color: #111; } & .example-tabpanel { width: 100%; flex-grow: 0;` z-index: 10; overflow: auto; position: relative; max-height: 400px; } & .example-tabpanel.ui-hidden { display: none; } & .example-tabpanel div.highlight { margin: 0; padding: 0; border-radius: 0; font-size: 0.9rem; } & .example-tabpanel div.highlight pre { border-radius: 0; } } /* ---------------------------------------------------------------------- */ .cd-footer { padding-top: 1.25rem; padding-bottom: 1.25rem; padding-left: var(--cd-padding-left); padding-right: var(--cd-padding-right); font-size: 0.875rem; line-height: 1.25rem; text-align: center; border-top: 1px solid rgb(228 228 231); &:is(.dark *){ border-color: rgb(82 82 91); } & .wrapper { display: flex; align-items: center; } & .copy { margin-right: auto; text-align: left; padding: 0 16px; } & .built-with { height: 100%; color: rgb(113 113 122); } & .built-with:is(.dark *) { color: inherit; } & .built-with a { text-decoration: underline; cursor: pointer; } & .themeswitch { margin-left: 1.5rem; margin-right: 0; opacity: 0.8; border-radius: 1rem; background-color: var(--cd-nav-bg-color); transition: opacity 300ms ease-in-out, background 300ms ease-in-out; padding-left: 0.5rem; padding-right: 0.5rem; } & .themeswitch:hover { opacity: 1; background-color: var(--cd-nav-bg-color-hover); } @media (max-width: 640px) { & .built-with, & .themeswitch { display: none; } } } /* ---------------------------------------------------------------------- */ .cd-header { margin-bottom: 2rem; & div p { margin-bottom: 0.5rem; font-size: 0.875rem; line-height: 1; font-weight: 600; } & h1 { display: inline-block; font-size: 1.9rem; line-height: 1.25rem; color: rgb(24 24 27); font-weight: 800; margin: 0; } & h1:is(.dark *) { color: rgb(228 228 231); } @media (min-width: 640px) { & h1 { font-size: 2.2rem; } } & p.description { margin-top: 0.25rem; font-size: 1.125rem; line-height: 1.75rem; color: var(--cd-text-color-mild); } } /* ---------------------------------------------------------------------- */ .cd-navbar { display: flex; align-items: center; border-radius: 1rem; padding: 0 0.75rem; font-size: 0.875rem; font-weight: bold; backdrop-filter: blur(4px); background-color: var(--cd-nav-bg-color); box-shadow: rgb(15, 15, 15) 0px 0px 0px 0px inset, rgba(163, 163, 170, 0.3) 0px 0px 0px 1px inset, rgba(255, 255, 255, 0.2) 0px 20px 25px -5px, rgba(255, 255, 255, 0.2) 0px 8px 10px -6px; &:is(.dark *) { box-shadow: rgb(255, 255, 255) 0px 0px 0px 0px inset, rgba(63, 63, 70, 0.3) 0px 0px 0px 1px inset, rgba(0, 0, 0, 0.2) 0px 20px 25px -5px, rgba(0, 0, 0, 0.2) 0px 8px 10px -6px; } & a { white-space: nowrap; padding: 0.75rem; } & a, & button { opacity: 0.8; transition: opacity 300ms ease-in-out, background 300ms ease-in-out; border-radius: 4px; } & a:hover, & button:hover { opacity: 1; background-color: var(--cd-nav-bg-color-hover); } & a svg { height: 20px; } } /* ---------------------------------------------------------------------- */ .cd-nav-top { z-index: 1000; width: 100%; margin-top: 1rem; /* @media ((min-width: 1024px) and (min-height: 640px)) { & { position: sticky; top: 1rem; } } */ & .wrapper { margin-left: auto; margin-right: auto; display: flex; max-width: 100rem; align-items: center; padding-left: var(--cd-padding-left); padding-right: var(--cd-padding-right); } & .logo { padding: 0.75rem; margin-left: -0.75rem; margin-right: auto; background-color: transparent; transition: background 300ms ease-in-out; } @media (min-width: 640px) { & .logo { border-radius: 4px; backdrop-filter: blur(4px); background-color: var(--cd-nav-bg-color); } } & .nav-links { display: none; } @media (min-width: 768px) { & .nav-links { display: inline-flex; } } & .nav-extra { margin-left: 0.75rem; } & .nav-links > .themeswitch { border: none; outline: none; margin-left: 0.25rem; } & .cd-toggle-sidebar { font-size: 1rem; margin-left: 0.75rem; width: 4.5rem; line-height: 1; padding: 0.75rem 0.5rem; } } /* ---------------------------------------------------------------------- */ .cd-nav-global { /* position: sticky; */ /* top: 0; */ z-index: 0; width: 12rem; border-right-width: 1px; border-color: rgb(228 228 231); padding-right: 1rem; padding-bottom: 2rem; font-size: 0.875rem; line-height: 1.2; flex-shrink: 0; /* @media (min-height: 640px) { & { overflow-y: auto; height: 100vh; top: 3rem; min-height: calc(100vh - 3rem); } } */ @media (min-width: 1536px) { & { font-size: 1rem; line-height: 1.5rem; width: 18rem; } } &:is(.dark *) { border-color: rgb(82 82 91); } & nav { display: flex; width: 100%; flex-direction: column; padding-bottom: 3.5rem; } } /* ---------------------------------------------------------------------- */ .cd-nav-local { position: sticky; top: 5rem; z-index: 0; width: 25rem; height: calc(100vh - 6.5rem); margin-right: -1rem; overflow: hidden; border-left-width: 1px; border-color: rgb(228 228 231); &:is(.dark *) { border-color: rgb(82 82 91); } & .wrapper { position: absolute; inset: 0; overflow-y: auto; overflow-x: hidden; -ms-scroll-chaining: none; overscroll-behavior: contain; scroll-behavior: smooth; padding: 1.5rem 0.25rem; font-size: 0.9rem; line-height: 1.2; } } /* ---------------------------------------------------------------------- */ .cd-nav-mobile { position: fixed; left: 0; top: 0; height: 100vh; width: 100%; min-width: 360px; max-width: 640px; -ms-scroll-chaining: none; overscroll-behavior: contain; margin: 0; padding: 0 0 4rem 0; background-color: var(--cd-bg-color-hover); color: var(--cd-text-color); transition: all 0.2s allow-discrete; /* Final state of the exit animation */ opacity: 0; transform: translateX(-100%); &:popover-open { opacity: 1; transform: translateX(0); } /* Needs to be after the previous &:popover-open rule to take effect, as the specificity is the same */ @starting-style { &:popover-open { opacity: 0; transform: translateX(-100%); } } @media (min-width: 640px) { & { border-right: 1px solid var(--cd-border-color); } } & header { margin: 1rem 0; display: flex; align-items: center; padding-left: var(--cd-padding-left); padding-right: var(--cd-padding-right); } & .logo { margin-right: auto; } & .themeswitch { border: none; background: none; outline: none; } & .cd-toggle-sidebar { font-size: 1rem; margin-left: 0.75rem; width: 4.5rem; line-height: 1; padding: 0.75rem 0.5rem; } & .toc { margin-bottom: 1.25rem; display: flex; flex-direction: column; -ms-scroll-chaining: none; overscroll-behavior: contain; padding-left: var(--cd-padding-left); padding-right: var(--cd-padding-right); font-size: 1rem; line-height: 1.5rem; } } /* Transition for the popover's backdrop. ::backdrop cannot be nested */ .cd-nav-mobile::backdrop { transition: all 0.5s allow-discrete; /* Final state of the exit animation */ backdrop-filter: blur(0); background-color: rgb(0 0 0 / 0%); } .cd-nav-mobile:popover-open::backdrop { backdrop-filter: blur(2px); background-color: rgb(0 0 0 / 15%); } @starting-style { .cd-nav-mobile:popover-open::backdrop { backdrop-filter: blur(0); background-color: rgb(0 0 0 / 0%); } } /* ---------------------------------------------------------------------- */ .cd-page-single > main { margin: 0; max-width: 100%; padding: 0; } .cd-page { & .page-wrapper { z-index: 10; margin-left: auto; margin-right: auto; display: flex; max-width: 100rem; padding-top: 1rem; padding-left: var(--cd-padding-left); padding-right: var(--cd-padding-right); padding-bottom: 1.5rem; min-width: 360px; } & .page-wrapper > main { width: 100%; padding-top: 1rem; } @media (min-width: 640px) { & { padding-bottom: 1rem; } } } /* ---------------------------------------------------------------------- */ .cd-prevnext { display: flex; align-items: stretch; width: 100%; margin-top: 2rem; padding-top: 2rem; padding-bottom: 2rem; padding-left: var(--cd-padding-left); padding-right: var(--cd-padding-right); border-top: 1px solid var(--cd-border-color); font-family: var(--cd-font-sans); & a.prev, & a.next { display: flex; align-items: center; padding: 0.75rem 0.25rem; text-decoration: none; width: 50%; border: 1px solid var(--cd-border-color); color: var(--cd-text-color); border-radius: 10px; transition: all 0.2s ease-in; } & a.prev { margin-right: 1.25rem; justify-content: flex-start; text-align: left; } & a.next { margin-left: auto; justify-content: flex-end; text-align: right; } & a.prev:hover, & a.next:hover { border-color: rgb(113, 113, 122); } &:is(.dark *) a.prev:hover, &:is(.dark *) a.next:hover { border-color: rgb(150, 150, 150); } & .section { font-size: 0.875rem; line-height: 1; color: rgb(113, 113, 122); margin-bottom: 0.1rem; } &:is(.dark *) .section { color: rgb(150, 150, 150); } & .title { font-size: 1rem; line-height: 1.1; } & i { opacity: 0.8; font-style: normal; font-size: 1.4rem; padding: 0 0.5rem; } } /* ---------------------------------------------------------------------- */ .cd-theme-switch { display: flex; align-items: center; justify-content: center; -webkit-tap-highlight-color: transparent; & { font-weight: 400; height: 2.5rem; width: 2.5rem; flex-grow: 0; padding: 0.2rem; } @media (min-width: 1024px) { & { width: auto; } } & svg { padding: 0.3rem; margin: 0; } &:is(.dark *) svg { padding: 0.1rem; } & .sun-and-moon { pointer-events: none; display: block; height: 100%; width: 100%; } & .sun { transform-origin: center; transform: scale(1, 1); transform: translate3d(0, 0, 0); fill: #3f3f46; stroke: transparent; } &:hover .sun { fill: #27272a; } &:focus-visible .sun { fill: #27272a; } @media (prefers-reduced-motion: no-preference) { & .sun { transition-property: transform; transition-timing-function: cubic-bezier(0.5, 1.25, 0.75, 1.25); transition-duration: 0.5s; } } & .sun:is(.dark *) { transform: scale(1.75, 1).75; fill: #e4e4e7; } &:hover .sun:is(.dark *) { fill: #f4f4f5; } &:focus-visible .sun:is(.dark *) { fill: #f4f4f5; } @media (prefers-reduced-motion: no-preference) { & .sun:is(.dark *) { transition-timing-function: cubic-bezier(0.25, 0, 0.3, 1); transition-duration: 250ms; } } & .sun-beams { transform-origin: center; stroke: #3f3f46; stroke-width: 2; } &:hover .sun-beams { stroke: #27272a; } &:focus-visible .sun-beams { stroke: #27272a; } @media (prefers-reduced-motion: no-preference) { & .sun-beams { transition-property: transform, opacity; transition-timing-function: cubic-bezier(0.5, 1.5, 0.75, 1.25); transition-duration: 400ms; } } & .sun-beams:is(.dark *) { transform: translate3d(0, 0, 0); transform: rotate(-25deg); stroke: #e4e4e7; opacity: 0; } &:hover .sun-beams:is(.dark *) { stroke: #f4f4f5; } &:focus-visible .sun-beams:is(.dark *) { stroke: #f4f4f5; } @media (prefers-reduced-motion: no-preference) { & .sun-beams:is(.dark *) { transition-duration: 150ms; } } & .moon { transform-origin: center; fill: #52525b; } &:hover .moon { fill: #71717a; } & .moon circle { transform: translate3d(0, 0, 0); } @media (prefers-reduced-motion: no-preference) { & .moon circle { transition-property: transform; transition-timing-function: cubic-bezier(0, 0, 0, 1); transition-duration: 0.3s; } } & .moon circle:is(.dark *) { transform: translateX(-7px); } @media (prefers-reduced-motion: no-preference) { & .moon circle:is(.dark *) { transition-delay: 0.3s; } } & .light-text, & .dark-text { padding: 0.5rem; padding-left: 0; display: none; white-space: nowrap; font-weight: bold; text-align: left; } @media (min-width: 1024px) { & .light-text { display: block; } & .light-text:is(.dark *) { display: none; } & .dark-text:is(.dark *) { display: block; } } } /* ---------------------------------------------------------------------- */ .cd-toc { & details, & section { margin-top: 1.5rem; } & summary { margin-bottom: 0.5rem; font-weight: 600; color: rgb(39 39 42); } & summary:is(.dark *) { color: rgb(244 244 245); } & h2 { margin-bottom: 0.5rem; font-weight: 600; color: rgb(39 39 42); } & h2:is(.dark *) { color: rgb(244 244 245); } & .page { border-left-width: 2px; border-color: rgb(244 244 245); padding-left: 0.5rem; } & .page:hover { border-color: rgb(212 212 216); } & .page:is(.dark *) { border-color: rgb(63 63 70 / 0.5); } & .page:is(.dark *):hover { border-color: rgb(161 161 170); } & a { position: relative; display: flex; align-items: center; border-radius: 0.25rem; border-width: 1px; border-color: transparent; line-height: 1.2; margin: 0; padding-top: 0.25rem; padding-bottom: 0.25rem; padding-left: 0.5rem; padding-right: 0.5rem; color: rgb(63 63 70); } & a:hover { color: rgb(0 0 0); } & a:is(.dark *) { color: rgb(161 161 170); } & a:is(.dark *):hover { color: rgb(244 244 245); } & .active a { border-color: rgb(228 228 231); background-color: rgb(244 244 245); font-weight: bold; color: rgb(39 39 42); } & .active:is(.dark *) a { color: black; } } /* ---------------------------------------------------------------------- */ .cd-toc-page { margin-top: -0.25rem; & li { position: relative; display: flex; align-items: center; } & li::after { content: ""; display: block; position: absolute; inset: 0; background-color: var(--cd-brand-color); border-radius: 0.25rem; opacity: 0; transition: opacity 0.2s ease-in-out; z-index: -1; } & li:has(a.active)::after { opacity: 0.15; } & a { display: flex; align-items: center; color: rgb(82 82 91); padding: 0.3rem 0 0.3rem 0.5rem; } & a:is(.dark *) { color: rgb(161 161 170); } & a:hover:not(.active) { & span { text-decoration: underline; } } & li.indent-0 a { padding-left: 0rem; font-size: smaller; text-transform: uppercase; font-weight: bold; border-bottom-width: 1px; } & li.indent-1 a { padding-left: 0rem; font-weight: bold; } & li.indent-2 a { padding-left: 1rem; } & li.indent-3 a { padding-left: 1.5rem; } & li.indent-4 a { padding-left: 2rem; } & li.indent-5 a { padding-left: 2.5rem; } & li.indent-6 a { padding-left: 3rem; } & li a::before { content: ""; display: inline-flex; align-items: center; justify-content: right; line-height: 1; height: 8px; width: 8px; margin: 0 0.5rem 0 0.5rem; flex-grow: 0; flex-shrink: 0; } li.indent-2 a::before { content: "○" } li.indent-3 a::before { content: "•" } li.indent-4 a::before { content: "·" } li.indent-5 a::before { content: "⁃" } li.indent-6 a::before { content: "·" } & li a.active::before { content: ""; border-radius: 3px; background-color: var(--cd-brand-color); } } /* ---------------------------------------------------------------------- */ .cd-nav-global, .cd-nav-local, .cd-nav-mobile { display: none; } .cd-nav-mobile:popover-open, .cd-nav-top .cd-toggle-sidebar { display: block; } @media (min-width: 924px) { .cd-nav-mobile, .cd-nav-top .cd-toggle-sidebar { display: none; } } @media (min-width: 924px) { .cd-nav-global { display: block; } } @media (min-width: 1024px) { .cd-page .page-wrapper > main { margin-left: 2.5rem; margin-right: 2.5rem; } .cd-nav-local { display: block; } }