<a href="" class="rtds-action-link ">
Link text
</a>
<{% if span %}span{% else %}a href="{{ href }}"{% endif %}{% if allyHidden %} tabindex="-1" aria-hidden="true"{% endif %} class="rtds-action-link{%- block classes %} {{ classes }}{%- endblock -%}">
{%- block content -%}
{% if iconOnly %}
<span class="rtds-sr-only">{{ label }}</span>
{% else %}
{{ label | safe }}
{% endif %}
{% if accessibleLabel %}<span class="rtds-sr-only">{{ accessibleLabel }}</span>{% endif %}
{%- endblock -%}
{%- block icon -%}
{% if hasIcon %}
{% render '@icon--small', { id: icon, size: iconSize, classes: iconClasses }, true %}
{% endif %}
{% if iconOnly %}
{% render '@icon--medium', { id: icon, size: iconSize, classes: iconClasses }, true %}
{% endif %}
{%- endblock -%}
</{% if span %}span{% else %}a{% endif %}>
{
"label": "Link text",
"icon": "mini--arrow-small-right",
"iconSize": ""
}
/* LINK */
.rtds-action-link {
font-size: var(--fontsize-text-base);
color: var(--color-link-primary);
display: inline-flex;
align-items: center;
gap: var(--spacing-2);
font-weight: 700;
transition-property: all;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
transition-duration: 150ms;
}
.rtds-action-link:hover {
text-decoration-line: underline;
color: var(--color-link-primary-hover);
}
.rtds-action-link:focus {
color: var(--color-primary-800);
}
@media (min-width: 768px) {
.rtds-action-link {
font-size: var(--fontsize-text-base);
}
}
.rtds-action-link--sm {
gap: var(--spacing-1-5);
font-size: var(--fontsize-text-sm);
}
.rtds-action-link--lg {
gap: var(--spacing-2-5);
font-size: var(--fontsize-text-lg);
}
.rtds-action-link--underline {
text-decoration-line: underline;
}
/* ICON ONLY */
.rtds-action-link--icon-only {
border-radius: 0.125rem;
padding: var(--spacing-1);
}
.rtds-action-link--icon-only:hover {
background-color: var(--color-secondary-50);
color: var(--color-content-primary-dark);
}
/* SIZE */
:where(.rtds-action-link) .rtds-icon {
width: var(--spacing-5);
height: var(--spacing-5);
}
:where(.rtds-action-link--sm) .rtds-icon {
width: var(--spacing-4);
height: var(--spacing-4);
}
:where(.rtds-action-link--lg) .rtds-icon {
width: var(--spacing-6);
height: var(--spacing-6);
}
/* LINK */
@layer components {
.rtds-action-link {
@apply rtds-inline-flex rtds-gap-2 rtds-items-center rtds-link-primary rtds-transition-all hover:rtds-underline hover:rtds-link-primary-hover focus:rtds-text-primary-800 rtds-text-base md:rtds-text-base rtds-font-bold;
}
.rtds-action-link--sm {
@apply rtds-text-sm rtds-gap-1.5;
}
.rtds-action-link--lg {
@apply rtds-text-lg rtds-gap-2.5;
}
.rtds-action-link--underline {
@apply rtds-underline;
}
/* ICON ONLY */
.rtds-action-link--icon-only {
@apply rtds-p-1 hover:rtds-bg-secondary-50 hover:rtds-content-primary-dark rtds-rounded-sm;
}
/* SIZE */
:where(.rtds-action-link) .rtds-icon {
@apply rtds-w-5 rtds-h-5;
}
:where(.rtds-action-link--sm) .rtds-icon {
@apply rtds-w-4 rtds-h-4;
}
:where(.rtds-action-link--lg) .rtds-icon {
@apply rtds-w-6 rtds-h-6;
}
}
Componente per link di azione con supporto per icone e diverse dimensioni.
Il componente può essere renderizzato come:
<a> — quando viene specificato href nel contesto Fractal/Nunjucks; link stilizzato raggiungibile con Tab e attivabile con Enter<span> — quando href non è specificato nel contesto Fractal/Nunjucks; usato come contenuto non interattivo all’interno di componenti complessi dove il click è gestito dal contenitore padredefault: Link standardhas-icon: Link con iconaicon-only: Solo icona cliccabilesm: Dimensione piccolalg: Dimensione grandeContesto di sviluppo Fractal/Nunjucks — Questa sezione riguarda esclusivamente i parametri del context
.config.ymlusati durante lo sviluppo nella libreria. Non descrive attributi HTML o proprietà da usare nei temi, CMS o ambienti di implementazione: per quello, fare riferimento alla sezione Esempi di utilizzo.
label (stringa, obbligatorio): Testo del linkhref (stringa, opzionale): URL del link. Se non specificato, il componente renderizza uno <span>classes (stringa, opzionale): Classi CSS aggiuntivehasIcon (booleano, opzionale): Abilita la visualizzazione dell’iconaiconOnly (booleano, opzionale): Mostra solo l’icona come linkicon (stringa, opzionale): ID dell’icona da utilizzareiconSize (stringa, opzionale): Dimensione personalizzata per l’iconaiconClasses (stringa, opzionale): Classi CSS aggiuntive per l’iconaallyHidden (booleano, opzionale): Nasconde il link agli screen readeraccessibleLabel (stringa, opzionale): Etichetta aggiuntiva per screen readerLivello AA — criteri pertinenti:
<a> è raggiungibile e attivabile da tastiera<a> — ruolo implicito link; raggiungibile con Tab, attivabile con Enter; usare per link di azione navigabili<span> — nessun ruolo interattivo; non focusabile; usare come contenuto non interattivo all’interno di componenti complessi dove il click è gestito dal contenitore padre| Attributo | Valori | Condizione |
|---|---|---|
tabindex="-1" |
"-1" |
quando allyHidden è attivo (rimuove il link dal flusso di tab) |
aria-hidden |
"true" |
quando allyHidden è attivo (nasconde il link agli screen reader) |
| Tasto | Azione |
|---|---|
Tab / Shift+Tab |
Sposta il focus sul/dal link |
Enter |
Attiva il link |
<span class="rtds-sr-only">; l’icona ha aria-hidden="true" — lo screen reader legge solo il testo nascosto come nome del link, ignorando l’icona<span class="rtds-sr-only"> opzionale dopo il testo visibile aggiunge contesto (es. destinazione, disambiguazione tra link con la stessa etichetta)tabindex="-1" e aria-hidden="true", è escluso completamente dallo screen reader — usare solo quando un’alternativa accessibile equivalente è già presente nella pagina.rtds-action-link: Stile base del link.rtds-action-link--underline: Versione sottolineata.rtds-action-link--sm: Dimensione piccola.rtds-action-link--lg: Dimensione grande.rtds-action-link--icon-only: Stile per versione solo icona<!-- Link standard -->
<a href="#" class="rtds-action-link">Link text</a>
<!-- Link con icona -->
<a href="#" class="rtds-action-link">
Link text
<svg class="rtds-icon">...</svg>
</a>
<!-- Solo icona -->
<a href="#" class="rtds-action-link rtds-action-link--icon-only">
<span class="rtds-sr-only">Link text</span>
<svg class="rtds-icon">...</svg>
</a>