@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); }