@@ -728,6 +728,94 @@ div[class*='language-'] button:hover
728728.theme-default-content .details-body > * :last-child
729729 margin-bottom 0 !important
730730
731+ // ─── Segmented tabs (mn-tabs) ──────────────────────────────────────────────
732+ // Pure-CSS, JS-free tab switcher driven by a hidden radio group. Markup is
733+ // radio+label pairs (one per tab, in the order they should appear as
734+ // buttons) followed by one .mn-tabs-panel per tab:
735+ //
736+ // <div class="mn-tabs">
737+ // <input type="radio" id="my-tab-a" name="my-tabs" checked>
738+ // <label for="my-tab-a" class="mn-tabs-button">Tab A</label>
739+ // <input type="radio" id="my-tab-b" name="my-tabs">
740+ // <label for="my-tab-b" class="mn-tabs-button">Tab B</label>
741+ //
742+ // <div class="mn-tabs-panel" data-tab-panel="my-tab-a">…</div>
743+ // <div class="mn-tabs-panel" data-tab-panel="my-tab-b">…</div>
744+ // </div>
745+ //
746+ // Button styling below is fully generic. Showing/hiding the right panel
747+ // needs one #id:checked ~ [data-tab-panel="id"] rule per tab (pure CSS
748+ // can't match an attribute value against a sibling's id) — add a pair
749+ // whenever a new tab group is introduced. Give every group its own
750+ // name="…" and prefix ids per page (e.g. "gs-" below) so groups on
751+ // different pages never collide.
752+
753+ .theme-default-content .mn-tabs
754+ position relative !important
755+ display flex !important
756+ flex-wrap wrap !important
757+ align-items flex-start !important
758+ margin 1.5rem 0 !important
759+
760+ // Visually hidden but still focusable/keyboard-operable (native radio
761+ // group behavior — Tab to focus, arrow keys to switch, Space to select).
762+ .theme-default-content .mn-tabs-radio
763+ position absolute !important
764+ width 1px !important
765+ height 1px !important
766+ padding 0 !important
767+ margin - 1px !important
768+ overflow hidden !important
769+ clip-path inset (50% ) !important
770+ white-space nowrap !important
771+ border 0 !important
772+
773+ .theme-default-content .mn-tabs-button
774+ display inline - flex !important
775+ align-items center !important
776+ justify-content center !important
777+ padding 0.6em 1.2em !important
778+ margin 0 0.6rem 0.85rem 0 !important
779+ border 1px solid var (-- mn-border ) !important
780+ border-radius 8px !important
781+ background var (-- mn-card-bg ) !important
782+ color var (-- mn-text ) !important
783+ font-size 0.9rem !important
784+ font-weight 600 !important
785+ line-height 1.2 !important
786+ cursor pointer !important
787+ user-select none !important
788+ white-space nowrap !important
789+ transition background 0.15s ease , border-color 0.15s ease , color 0.15s ease !important
790+
791+ .theme-default-content .mn-tabs-button :hover
792+ border-color var (-- mn-orange ) !important
793+ color var (-- mn-orange ) !important
794+
795+ // Active button — generic, driven by adjacency to its own radio.
796+ .theme-default-content .mn-tabs-radio :checked + .mn-tabs-button
797+ background var (-- mn-orange ) !important
798+ border-color var (-- mn-orange ) !important
799+ color #0 0 0 !important
800+
801+ .theme-default-content .mn-tabs-radio :focus -visible + .mn-tabs-button
802+ box-shadow 0 0 0 3px rgba (240 ,142 ,32 ,0.35 ) !important
803+
804+ .theme-default-content .mn-tabs-panel
805+ display none !important
806+ flex 1 1 100% !important
807+ margin-top 0.25rem !important
808+ padding-left 1.1rem !important
809+ border-left 2px solid var (-- mn-border ) !important
810+
811+ .theme-default-content .mn-tabs-panel > * :last-child
812+ margin-bottom 0 !important
813+
814+ // Getting Started — "Power On Device" (Build Your Own Device / Model Two)
815+ #gs-tab-build :checked ~ [data-tab-panel = "gs-tab-build" ],
816+ #gs-tab-model-two :checked ~ [data-tab-panel = "gs-tab-model-two" ]
817+ display block !important
818+
731819// ─── Page edit / prev-next nav ────────────────────────────────────────────
732820
733821.page-edit
0 commit comments