Skip to content

Commit 78e4b5b

Browse files
gabalafoutrallard
andauthored
Buttons meet WCAG criteria (#1589)
* Match buttons to design system * back to top button * switch to stable version button * remove sd-sphinx-override class which seems to do nothing * underline * center * Update src/pydata_sphinx_theme/assets/styles/extensions/_sphinx_design.scss Co-authored-by: Tania Allard <[email protected]> * don't forget outline buttons --------- Co-authored-by: Tania Allard <[email protected]>
1 parent 33fb96b commit 78e4b5b

File tree

4 files changed

+65
-13
lines changed

4 files changed

+65
-13
lines changed

docs/user_guide/styling.rst

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -117,18 +117,18 @@ Here is an overview of the colors available in the theme (change theme mode to s
117117
</style>
118118

119119
<p>
120-
<span class="sd-sphinx-override sd-badge pst-badge pst-primary sd-bg-text-primary">primary</span>
121-
<span class="sd-sphinx-override sd-badge pst-badge pst-secondary sd-bg-text-secondary">secondary</span>
122-
<span class="sd-sphinx-override sd-badge pst-badge pst-accent sd-bg-text-secondary">accent</span>
123-
<span class="sd-sphinx-override sd-badge pst-badge pst-success sd-bg-text-success">success</span>
124-
<span class="sd-sphinx-override sd-badge pst-badge pst-info sd-bg-text-info">info</span>
125-
<span class="sd-sphinx-override sd-badge pst-badge pst-warning sd-bg-text-warning">warning</span>
126-
<span class="sd-sphinx-override sd-badge pst-badge pst-danger sd-bg-text-danger">danger</span>
127-
<span class="sd-sphinx-override sd-badge pst-badge pst-background">background</span>
128-
<span class="sd-sphinx-override sd-badge pst-badge pst-on-background">on-background</span>
129-
<span class="sd-sphinx-override sd-badge pst-badge pst-surface">surface</span>
130-
<span class="sd-sphinx-override sd-badge pst-badge pst-on-surface sd-bg-text-primary">on-surface</span>
131-
<span class="sd-sphinx-override sd-badge pst-badge pst-target">target</span>
120+
<span class="sd-badge pst-badge pst-primary sd-bg-text-primary">primary</span>
121+
<span class="sd-badge pst-badge pst-secondary sd-bg-text-secondary">secondary</span>
122+
<span class="sd-badge pst-badge pst-accent sd-bg-text-secondary">accent</span>
123+
<span class="sd-badge pst-badge pst-success sd-bg-text-success">success</span>
124+
<span class="sd-badge pst-badge pst-info sd-bg-text-info">info</span>
125+
<span class="sd-badge pst-badge pst-warning sd-bg-text-warning">warning</span>
126+
<span class="sd-badge pst-badge pst-danger sd-bg-text-danger">danger</span>
127+
<span class="sd-badge pst-badge pst-background">background</span>
128+
<span class="sd-badge pst-badge pst-on-background">on-background</span>
129+
<span class="sd-badge pst-badge pst-surface">surface</span>
130+
<span class="sd-badge pst-badge pst-on-surface sd-bg-text-primary">on-surface</span>
131+
<span class="sd-badge pst-badge pst-target">target</span>
132132
</p>
133133

134134

src/pydata_sphinx_theme/assets/styles/base/_base.scss

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,26 @@ pre {
178178
color: var(--pst-color-secondary-text);
179179
background-color: var(--pst-color-secondary);
180180
border: none;
181+
182+
.fa-arrow-up {
183+
// Using margin instead of a space character prevents the space between the
184+
// icon and the text from being underlined when the button is hovered.
185+
margin-inline-end: 0.5em;
186+
}
187+
188+
@include link-style-hover;
189+
&:hover {
190+
text-decoration-thickness: 1px;
191+
background-color: var(--pst-violet-600);
192+
color: var(--pst-color-secondary-text);
193+
}
194+
195+
&:focus-visible {
196+
box-shadow: none;
197+
outline: $focus-ring-outline;
198+
outline-color: var(--pst-color-secondary);
199+
outline-offset: $focus-ring-width;
200+
}
181201
}
182202

183203
// Focus ring

src/pydata_sphinx_theme/assets/styles/extensions/_sphinx_design.scss

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -304,3 +304,35 @@ details.sd-dropdown {
304304
}
305305
}
306306
}
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+
}
337+
}
338+
}

src/pydata_sphinx_theme/theme/pydata_sphinx_theme/layout.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@
6161
{# the scroll to top button #}
6262
<button type="button" class="btn rounded-pill" id="pst-back-to-top">
6363
<i class="fa-solid fa-arrow-up"></i>
64-
{{ _("Back to top") }}
64+
{{- _("Back to top") -}}
6565
</button>
6666

6767
{# checkbox to toggle primary sidebar #}

0 commit comments

Comments
 (0)