@use "../../abstracts/functions" as fun;
@use "../../abstracts/variables" as var;
%link {
background: linear-gradient(to top, var(--color-primary) 50%, transparent 50%)
0 0 / 100% 201% no-repeat;
color: var(--color-primary);
text-decoration-thickness: 0.15em;
text-underline-offset: 20%;
transition:
all 0.3s linear 0s,
text-decoration 0.18s ease-in-out 0s;
&:hover {
color: var(--color-primary-light);
text-decoration-thickness: 0.25em;
}
&:focus {
background-position: 0 100%;
color: var(--color-fg-inverted);
}
&:active {
background-position: 0 0;
color: var(--color-primary-dark);
text-decoration-thickness: 18%;
}
}
%link-with-icon {
display: inline-block;
&::after {
display: inline-block;
content: var(--is-lang-hidden, "\0000a0" var(--lang-icon, ""))
var(--is-icon-hidden, "\0000a0" var(--link-icon, ""));
font-size: var(--font-size-sm);
}
}
%link-with-lang {
--lang-icon: "[" attr(hreflang) "]";
}
%light-download-link {
// Prettier is removing spacing between attributes.
// prettier-ignore
--download-icon: url('#{fun.encode-svg('')}');
&:focus:not(:active) {
// Prettier is removing spacing between attributes.
// prettier-ignore
--download-icon: url('#{fun.encode-svg('')}');
}
}
%dark-download-link {
// Prettier is removing spacing between attributes.
// prettier-ignore
--download-icon: url('#{fun.encode-svg('')}');
&:focus:not(:active) {
// Prettier is removing spacing between attributes.
// prettier-ignore
--download-icon: url('#{fun.encode-svg('')}');
}
}
%light-external-link {
// Prettier is removing spacing between attributes.
// prettier-ignore
--external-icon: url('#{fun.encode-svg('')}');
&:focus:not(:active) {
// Prettier is removing spacing between attributes.
// prettier-ignore
--external-icon: url('#{fun.encode-svg('')}');
}
}
%dark-external-link {
// Prettier is removing spacing between attributes.
// prettier-ignore
--external-icon: url('#{fun.encode-svg('')}');
&:focus:not(:active) {
// Prettier is removing spacing between attributes.
// prettier-ignore
--external-icon: url('#{fun.encode-svg('')}');
}
}
%download-link {
--link-icon: var(--download-icon);
}
%external-link {
--link-icon: var(--external-icon);
}
%external-download-link {
--link-icon: var(--download-icon) "\0000a0" var(--external-icon);
}