clean up tabs

This commit is contained in:
Josh Hawkins 2026-03-29 22:42:58 -05:00
parent 8913195b93
commit 7750942d3a
3 changed files with 75 additions and 13 deletions

View File

@ -1,18 +1,34 @@
import React from "react"; import React, { Children, cloneElement } from "react";
import Tabs from "@theme/Tabs"; import Tabs from "@theme/Tabs";
import TabItem from "@theme/TabItem"; import TabItem from "@theme/TabItem";
export default function ConfigTabs({ children }) { export default function ConfigTabs({ children }) {
const wrapped = Children.map(children, (child) => {
if (child?.props?.value === "ui") {
return cloneElement(child, {
className: "config-tab-ui",
});
}
if (child?.props?.value === "yaml") {
return cloneElement(child, {
className: "config-tab-yaml",
});
}
return child;
});
return ( return (
<Tabs <div className="config-tabs-wrapper">
groupId="config-method" <Tabs
defaultValue="ui" groupId="config-method"
values={[ defaultValue="ui"
{ label: "Frigate UI", value: "ui" }, values={[
{ label: "YAML", value: "yaml" }, { label: "Frigate UI", value: "ui" },
]} { label: "YAML", value: "yaml" },
> ]}
{children} >
</Tabs> {wrapped}
</Tabs>
</div>
); );
} }

View File

@ -16,10 +16,10 @@ export default function NavPath({ path }) {
<span <span
style={{ style={{
margin: "0 4px", margin: "0 4px",
color: "var(--ifm-color-emphasis-500)", color: "var(--ifm-color-emphasis-800)",
}} }}
> >
</span> </span>
)} )}
<strong>{seg}</strong> <strong>{seg}</strong>

View File

@ -241,4 +241,50 @@
margin: 0 calc(-1 * var(--ifm-pre-padding)); margin: 0 calc(-1 * var(--ifm-pre-padding));
padding: 0 var(--ifm-pre-padding); padding: 0 var(--ifm-pre-padding);
border-left: 3px solid #ff000080; border-left: 3px solid #ff000080;
}
/* ConfigTabs wrapper */
.config-tabs-wrapper {
border: 1px solid var(--ifm-color-emphasis-300);
border-radius: 8px;
overflow: hidden;
margin-bottom: 16px;
}
.config-tabs-wrapper .tabs-container {
margin-bottom: 0 !important;
}
.config-tabs-wrapper .tabs {
background: var(--ifm-color-emphasis-100);
border-bottom: 1px solid var(--ifm-color-emphasis-300);
margin-bottom: 0;
padding: 0 12px;
}
.config-tabs-wrapper .tabs__item {
padding: 8px 16px;
border-radius: 0;
}
.config-tabs-wrapper .tabs__item--active {
border-bottom-color: var(--ifm-color-primary);
}
.config-tabs-wrapper .config-tab-ui {
padding: 4px 16px 16px;
}
.config-tabs-wrapper .config-tab-ui > :last-child {
margin-bottom: 0;
}
.config-tabs-wrapper div[class*="codeBlockContainer"] {
border-top-left-radius: 0;
border-top-right-radius: 0;
margin: 0;
}
.config-tabs-wrapper .tabs-container > .margin-top--md:has(.config-tab-yaml:not([hidden])) {
margin-top: 0 !important;
} }