angular/adev/shared-docs/styles/_reference.scss
hawkgs b6733eeea4 docs(docs-infra): drop tabs layout from the API reference details page (#59068)
Drop the tabs in favor of a single page separated by sections.

PR Close #59068
2025-02-13 14:58:33 +00:00

410 lines
8.3 KiB
SCSS

@use './anchor' as anchor;
/* Common styles for the API & CLI references */
@mixin reference-common() {
.docs-code {
pre {
margin-block: 0;
}
}
.docs-reference-header {
// deprecated markers beside header
& ~ .docs-deprecated {
margin-block-start: 0.5rem;
}
& > p {
color: var(--secondary-contrast);
margin-block-start: 0;
margin-block-end: 1.5rem;
}
.docs-reference-title {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: space-between;
padding-block-end: 0;
gap: 0.5rem;
> div {
margin-block: 0.67em;
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 0.5rem;
h1 {
margin-block: 0;
}
}
a {
fill: var(--quinary-contrast);
transition: fill 0.3s ease;
&:hover {
fill: var(--primary-contrast);
}
}
}
.docs-reference-category {
color: var(--gray-400);
font-size: 0.875rem;
font-weight: 500;
line-height: 1.4rem;
letter-spacing: -0.00875rem;
}
.docs-code {
margin-block-end: 1.5rem;
}
}
.docs-reference-section-heading {
padding-block-start: 3rem;
a {
@include anchor.docs-anchor();
color: inherit;
}
}
.docs-reference-members {
box-sizing: border-box;
width: 100%;
display: flex;
flex-direction: column;
gap: 20px;
&:not(:first-child) {
margin-top: 1rem;
}
.docs-reference-member-card {
border: 1px solid var(--senary-contrast);
border-radius: 0.25rem;
position: relative;
transition: border 0.3s ease;
pointer-events: none;
&::before {
content: '';
inset: -1px;
position: absolute;
background: transparent;
border-radius: 0.35rem;
z-index: 0;
}
&:focus {
box-shadow: 10px 4px 40px 0 rgba(0, 0, 0, 0.01);
&::before {
background: var(--red-to-pink-to-purple-horizontal-gradient);
}
}
> p {
padding-inline: 1.25rem;
margin-block-end: 0;
}
a {
pointer-events: initial;
}
.docs-reference-card-header {
display: flex;
align-items: center;
justify-content: space-between;
border-radius: 0.25rem 0.25rem 0 0;
background-color: var(--octonary-contrast);
position: relative;
z-index: 10;
padding: 0.7rem 1rem;
cursor: pointer;
gap: 0.5rem;
flex-wrap: wrap;
transition:
background-color 0.3s ease,
border 0.3s ease;
&:focus {
outline: none;
}
&:has(+ .docs-reference-card-body:empty) {
border-radius: 0.25rem;
}
code {
font-size: 0.875rem;
&:has(pre) {
padding: 0;
}
&:not(pre *) {
padding: 0 0.3rem;
}
}
pre {
margin: 0;
/* Do we have a better alternative ? */
overflow: auto;
}
h3 {
display: inline-block;
font-family: var(--code-font);
font-size: 1rem;
letter-spacing: -0.025rem;
margin: 0;
}
span {
font-size: 0.875rem;
}
}
.docs-reference-card-body {
padding: 0.25rem 1.25rem;
background: var(--septenary-contrast);
transition: background-color 0.3s ease;
color: var(--quaternary-contrast);
border-radius: 0 0 0.25rem 0.25rem;
position: relative;
z-index: 10;
&:empty {
display: none;
}
&:first-child {
border-radius: 0.25rem;
}
hr {
margin-block: 2rem;
}
.docs-code {
margin-block-end: 1rem;
}
.docs-deprecation-message {
border-block-end: 1px solid var(--senary-contrast);
.docs-deprecated {
color: var(--page-background);
background-color: var(--quaternary-contrast);
width: max-content;
border-radius: 0.25rem;
padding: 0.1rem 0.25rem;
margin-block-start: 1rem;
}
}
}
}
}
}
/* API reference styles */
@mixin api-reference {
// API section styles
.docs-reference-api-section {
.docs-code {
box-sizing: border-box;
width: 100%;
overflow: hidden;
padding: 0;
button {
transition: background-color 0.3s ease;
&.shiki-ln-line-highlighted {
background-color: var(--senary-contrast);
}
&:hover {
background-color: var(--septenary-contrast);
}
&:focus {
background-color: var(--senary-contrast);
span {
background-color: inherit;
}
}
}
// Hide copy source code button
button[docs-copy-source-code] {
display: none;
}
}
code {
margin-block: 0;
}
pre {
white-space: pre;
overflow-x: auto;
margin: 0;
}
}
// "API member card"-specific styles
.docs-reference-member-card {
.docs-reference-card-item {
// When it's not the only card ...
&:has(~ .docs-reference-card-item) {
border: 1px solid var(--senary-contrast);
margin-block: 1rem;
border-radius: 0.25rem;
padding-inline: 1rem;
}
// & the last card
&:last-child:not(:first-of-type) {
border: 1px solid var(--senary-contrast);
margin-block: 1rem;
border-radius: 0.25rem;
padding-inline: 1rem;
}
span {
display: inline-block;
font-size: 0.875rem;
}
code {
font-size: 0.875rem;
}
.docs-function-definition:has(*) {
border-block-end: 1px solid var(--senary-contrast);
}
.docs-param-group {
margin-block-start: 1rem;
// If it's the only param group...
&:not(:has(~ .docs-param-group)) {
margin-block: 1rem;
}
.docs-param-name {
color: var(--vivid-pink);
font-family: var(--code-font);
margin-inline-end: 0.25rem;
&::after {
content: ':';
}
}
.docs-parameter-description {
p:first-child {
margin-block-start: 0;
}
}
}
.docs-param-keyword {
color: var(--primary-contrast);
font-family: var(--code-font);
margin-inline-end: 0.5rem;
}
.docs-return-type {
padding-block: 1rem;
// & does not follow a function definition
&:not(.docs-function-definition + .docs-return-type) {
border-block-start: 1px solid var(--senary-contrast);
}
}
}
}
}
/* CLI reference styles */
@mixin cli-reference {
// CLI TOC
.docs-reference-cli-toc {
margin-bottom: 1rem;
.shiki-ln-line-argument,
.shiki-ln-line-option {
padding: 0.1rem 0.2rem 0.2rem;
margin-inline: 0.1rem;
color: var(--quaternary-contrast);
background: transparent;
border-radius: 0.25rem;
position: relative;
transition:
color 0.3s ease,
background 0.3s ease,
border 0.3s ease;
&:hover {
color: var(--primary-contrast);
background: var(--septenary-contrast);
}
&.shiki-ln-line-highlighted {
color: var(--primary-contrast);
background: var(--senary-contrast);
}
}
.shiki-ln-line-argument {
margin-inline-start: 0.2rem;
}
}
.docs-reference-members {
.docs-reference-section-heading {
margin: 0;
}
// "CLI member card"-specific styles
.docs-reference-member-card {
.docs-ref-content {
padding: 1rem 0;
&:not(:first-child) {
border-block-start: 1px solid var(--senary-contrast);
}
.docs-reference-type-and-default {
width: 4.375rem;
flex-shrink: 0;
span {
display: block;
font-size: 0.875rem;
margin-block-end: 0.2rem;
white-space: nowrap;
&:not(:first-child) {
margin-block-start: 1rem;
}
}
code {
font-size: 0.775rem;
}
}
}
}
}
}