(badges)=
Inline badges can be used as a labelling component. Badges are available in each semantic color, with filled and outline variants:
- {bdg}
plain badge - {bdg-primary}
primary, {bdg-primary-line}primary-line - {bdg-secondary}
secondary, {bdg-secondary-line}secondary-line - {bdg-success}
success, {bdg-success-line}success-line - {bdg-info}
info, {bdg-info-line}info-line - {bdg-warning}
warning, {bdg-warning-line}warning-line - {bdg-danger}
danger, {bdg-danger-line}danger-line - {bdg-light}
light, {bdg-light-line}light-line - {bdg-dark}
dark, {bdg-dark-line}dark-line
:icon: code
:color: light
````{tab-set-code}
```{literalinclude} ./snippets/myst/badge-basic.txt
:language: markdown
```
```{literalinclude} ./snippets/rst/badge-basic.txt
:language: rst
```
````
bdg-link- and bdg-ref- variants are also available for use with links and references.
The syntax is the same as for the ref role.
{bdg-link-primary}https://example.com
{bdg-link-primary-line}explicit title <https://example.com>
{bdg-ref-primary}badges
:icon: code
:color: light
````{tab-set-code}
```{literalinclude} ./snippets/myst/badge-link.txt
:language: markdown
```
```{literalinclude} ./snippets/rst/badge-link.txt
:language: rst
```
````
See Bootstrap badges for more information, and related Material Design chips.
(buttons)=
Buttons in Sphinx Design are actually links:
- Links that can be styled to look like Bootstrap buttons
- Links that are either external (
button-link) or internal (button-ref)
Most of the time, you should create links using the link syntax for the language you've chosen:
Sometimes, though, you may want to call attention to a particular link or set of links, or set them apart visually from other links on the site.
:::{admonition} Note on accessibility
Despite the name, button-link and button-ref do not convert to
<button> tags in HTML. They are output as <a> tags and use CSS to achieve
the button look. This has important accessibility implications. For example,
assistive tech will include Sphinx Design "buttons" when asked to present a list
of all the links on the page.
:::
Button text
:color: primary
:shadow:
:color: primary
:outline:
:color: secondary
:expand:
:color: info
:color: info
Reference Button text
:icon: code
:color: light
````{tab-set-code}
```{literalinclude} ./snippets/myst/button-link.txt
:language: markdown
```
```{literalinclude} ./snippets/rst/button-link.txt
:language: rst
```
````
Note that by default sphinx converts the content of references to raw text.
For example **Bold text** with ref-type set to ref will be rendered without bold:
:ref-type: ref
:color: primary
**Bold text**
However, if using myst-parser, you can set the ref-type to myst, and the content will be properly rendered:
:ref-type: myst
:color: primary
**Bold text**
Use the click-parent option to make the button's parent container also clickable.
:::{card} Card with an expanded button
:color: info
:expand:
:click-parent:
:::
ref-type (button-ref only)
: Type of reference to use; any (default), ref, doc, or myst
color
: Set the color of the button (background and font).
One of the semantic color names: primary, secondary, success, danger, warning, info, light, dark, muted.
outline : Outline color variant
align
: Align the button on the page; left, right, center or justify
expand : Expand to fit parent width
click-parent : Make parent container also clickable
tooltip : Add tooltip on hover
shadow : Add shadow CSS
class : Additional CSS classes
(icons)=
Inline icon roles are available for the GitHub octicon, Google Material Design Icons, or FontAwesome libraries.
Octicon icons and Material icons are added as SVG's directly into the page with the octicon and material-<flavor> roles. See below for the different flavors of Material Design Icons.
By default the icon will be of height 1em (i.e. the height of the font).
A specific height can be set after a semi-colon (;) with units of either px, em or rem.
Additional CSS classes can also be added to the SVG after a second semi-colon (;) delimiter.
A coloured icon: {octicon}report;1em;sd-text-info, some more text.
```{literalinclude} ./snippets/myst/icon-octicon.txt
:language: markdown
```
```{literalinclude} ./snippets/rst/icon-octicon.txt
:language: rst
```
:open:
```{_all-octicon}
```
Material Design icons come as several flavors. Each flavor represents a different role used in sphinx-design. These flavors are:
material-regularmaterial-outlinedmaterial-roundmaterial-sharpmaterial-twotone
Not all icons are available for each flavor, but most are. Instead of displaying the 10660+ icons here, you are encouraged to browse the available icons from the Material Design Icons' showcase hosted by Google.
- A regular icon: {material-regular}
data_exploration;2em, some more text - A coloured regular icon: {material-regular}
settings;3em;sd-text-success, some more text. - A coloured outline icon: {material-outlined}
settings;3em;sd-text-success, some more text. - A coloured sharp icon: {material-sharp}
settings;3em;sd-text-success, some more text. - A coloured round icon: {material-round}
settings;3em;sd-text-success, some more text. - A coloured two-tone icon: {material-twotone}
settings;3em;sd-text-success, some more text.
```{literalinclude} ./snippets/myst/icon-material-design.txt
:language: markdown
```
```{literalinclude} ./snippets/rst/icon-material-design.txt
:language: rst
```
FontAwesome icons are added via the Fontawesome CSS classes. If the theme you are using does not already include the FontAwesome CSS, it should be loaded in your configuration from a font-awesome CDN, with the html_css_files option, e.g.:
html_css_files = [
"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.1/css/all.min.css"
]Use either fa (deprecated in font-awesome v5), fas, fab or far for the role name.
Note that not all regular style icons are free, far role only works with free ones.
Since the FontAwesome icons are fetched directly from their distributed CSS, specifying a height/size to the `fa*` roles is not supported.
However, you can always add your custom CSS class that controls the `font-size` property.
If a height/size is supplied to a `fa*` role, then it will be interpreted as a CSS class.
There can only be a maximum of 1 `;` in the `fa*` roles' arguments
```markdown
- An icon {fas}`spinner;sd-text-primary`, some more text.
- An icon {fab}`github`, some more text.
- An icon {fab}`gitkraken;sd-text-success fa-xl`, some more text.
- An icon {fas}`skull;sd-text-danger`, some more text.
```
```rst
- An icon :fas:`spinner;sd-text-primary`, some more text.
- An icon :fab:`github`, some more text.
- An icon :fab:`gitkraken;sd-text-success fa-xl`, some more text.
- An icon :fas:`skull;sd-text-danger`, some more text.
```
- An icon {fas}
spinner;sd-text-primary, some more text. - An icon {fab}
github, some more text. - An icon {fab}
gitkraken;sd-text-success fa-xl, some more text. - An icon {fas}
skull;sd-text-danger, some more text.
By default, icons will only be output in HTML formats. But if you want FontAwesome icons to be output on LaTeX, using the fontawesome package, you can add to your configuration:
sd_fontawesome_latex = True