@@ -149,6 +149,22 @@ html[data-theme="light"] {
149149 .sd-card-body {
150150 background-color : var (--pst-color-panel-background );
151151 }
152+
153+ // Focus ring for link-cards
154+ .sd-stretched-link :focus-visible {
155+ // Don't put the focus ring on the <a> element (it has zero height in Sphinx Design cards)
156+ outline : none ;
157+
158+ // Put the focus ring on the <a> element's ::after pseudo-element
159+ & :after {
160+ outline : $focus-ring-outline ;
161+ border-radius : 0.25rem ; // copied from Sphinx Design CSS for .sd-card
162+ }
163+ }
164+
165+ & .sd-card-hover :hover {
166+ border-color : var (--pst-color-link-hover );
167+ }
152168}
153169/* ******************************************************************************
154170 * tabs
@@ -158,28 +174,53 @@ html[data-theme="light"] {
158174 > input {
159175 // Active tab label
160176 & :checked + label {
161- border-color : transparent transparent var (--pst-color-primary ); // top LR bottom
177+ border-style : solid solid none ;
178+ border-color : var (--pst-color-primary ) var (--pst-color-primary )
179+ transparent ; // top LR bottom
180+ border-width : 0.125rem 0.125rem 0 ;
181+ border-radius : 0.125rem 0.125rem 0 0 ;
182+ background-color : var (--pst-color-on-background );
183+ transform : translateY (0.125rem );
162184 color : var (--pst-color-primary );
163185 }
164186
187+ & :focus-visible + label {
188+ border : 0.125rem solid var (--pst-color-accent );
189+ border-radius : 0.125rem ;
190+ background-color : var (--pst-color-accent-bg );
191+ color : var (--pst-color-on-surface );
192+ }
193+
165194 // Hover label
166- & :not (:checked ) + label :hover {
167- border-color : var ( --pst-color-secondary ) ;
195+ & :not (:checked ):not ( :focus-visible ) + label :hover {
196+ border-color : transparent ;
168197 color : var (--pst-color-secondary );
169198 }
170199 }
171200
172201 // Tab label
173202 > label {
174- color : var (--pst-color-text-muted );
175- border-top : 0.125rem solid transparent ; // so hover isn't just color change
176- padding-top : 0.5em ; // same as bottom padding, so hover overline looks OK
177- // Hovered label
178- html & :hover {
179- color : var (--pst-color-secondary );
180- border-color : var (--pst-color-secondary );
203+ color : var (--pst-color-on-surface );
204+ border : 0.125rem solid transparent ;
205+ border-radius : 0.125rem 0.125rem 0px 0px ;
206+ background-color : var (--pst-color-surface );
207+ padding : 0 0.75em ;
208+ margin-inline-end : 0.25rem ;
209+ line-height : 1.95 ;
210+
211+ html [data-theme = " dark" ] & {
212+ background-color : var (--pst-color-on-background );
181213 }
182214 }
215+
216+ // panel
217+ .sd-tab-content {
218+ border : 0.125rem solid var (--pst-color-primary );
219+ border-radius : 0.1875rem ;
220+ box-shadow : unset ;
221+ padding : 0.625rem ;
222+ background-color : var (--pst-color-on-background );
223+ }
183224}
184225
185226/* ******************************************************************************
@@ -255,5 +296,43 @@ details.sd-dropdown {
255296 .sd-summary-down {
256297 top : 0.7rem ;
257298 }
299+
300+ // Focus ring
301+ & :focus-visible {
302+ outline : $focus-ring-outline ;
303+ outline-offset : - $focus-ring-width ;
304+ }
305+ }
306+ }
307+
308+ /* ******************************************************************************
309+ * Buttons (which in Sphinx Design are actually links that look like buttons)
310+ * ref: https://sphinx-design.readthedocs.io/en/pydata-theme/badges_buttons.html#buttons
311+ */
312+ html {
313+ .sd-btn {
314+ min-width : 2.25rem ;
315+ padding : 0.3125rem 0.75rem 0.4375rem ; // 5px 12px 7px
316+
317+ @include link-style-hover ; // override Sphinx Design
318+ & :hover {
319+ text-decoration-thickness : 1px ;
320+ }
321+ }
322+
323+ @each $name in $sd-semantic-color-names {
324+ .sd-btn-#{$name } ,
325+ .sd-btn-outline-#{$name } {
326+ & :focus-visible {
327+ // Override Sphinx Design's use of -highlight colors. The -highlight
328+ // colors are 15% darker, so this would create the effect of darkening
329+ // the button when focused but we just want the button to have a focus
330+ // ring of the same (non-highlight) color.
331+ background-color : var (--sd-color - #{$name } ) !important ;
332+ border-color : var (--sd-color - #{$name } ) !important ;
333+ outline : var (--sd-color - #{$name } ) solid $focus-ring-width ;
334+ outline-offset : $focus-ring-width ;
335+ }
336+ }
258337 }
259338}
0 commit comments