//
Note
//
Heading
// ...
//
// When this is the case, by default, that first
that is the first
// gets the `margin-top: 0 !important` and not the first
.
// Generally, the reason this even exists is because (and ) elements
// are given extra margin-top so as to divide the article into sections
// with some extra whitespace. That's fine, but we don't to start the
// top of the page with too much whitespace. That's why @primer/css
// has a solution for that. Just the problem that it fails then first
// element isn't actually a heading.
// Note we're also doing it for a possible being the first element.
// See https://github.com/primer/css/issues/2303
// See internal issue #2368
.markdown-body {
> h2:first-of-type,
> h3:first-of-type {
margin-top: 0 !important;
}
}
// Horizontal scroll gets flagged as an accessibility violation.
// Updates all code examples to only allow vertical scroll, and
// break aggressively.
.markdown-body {
pre {
overflow-x: hidden;
overflow-y: auto;
}
pre code {
white-space: pre-wrap;
overflow-wrap: break-word;
}
}
// Fix for permissions icon collision with bulleted lists
// When permissions/product statements contain lists that start immediately,
// the list bullets can visually collide with the icons in the flex layout.
// This adds proper spacing to prevent the collision while supporting RTL languages
// and avoiding effects on nested lists.
// See: https://github.com/github/docs-engineering/issues/5199
.permissions-statement,
.product-statement {
ul {
margin-inline-start: 0;
padding-inline-start: 1rem; // Ensure proper spacing from icon (RTL-aware)
}
ul > li {
margin-inline-start: 0.5rem; // Additional spacing to prevent bullet collision (direct children only)
}
}