Theming

Sistema Size

Sistema di dimensioni — small, medium, large, xlarge.

Il sistema di dimensioni controlla padding, font size e dimensioni delle icone in tutti i componenti interattivi.

type Size = 'small' | 'medium' | 'large';
type SizeExtended = Size | 'xlarge';

Size

Tre livelli standard disponibili nella maggior parte dei componenti.

small

Dimensione ridotta per UI compatte: toolbar, tabelle dense, sidebar con poco spazio.

Valori CSS applicati (Button):

.hs-button-sm {
  @apply py-2 px-2;
}

.hs-button-loading-spinner-sm {
  width: 0.75rem;   /* 12px */
  height: 0.75rem;
  border: 3px solid currentColor;
}

Valori CSS applicati (Badge):

.hs-badge.size-small {
  font-size: 0.75rem;   /* 12px */
  padding: 0.25rem 0.5rem;
}

Valori CSS applicati (InputText):

.hs-inputtext-size-small {
  @apply px-3 py-2 text-sm;
}

medium

Dimensione standard, usata come default in quasi tutti i componenti.

Valori CSS applicati (Button):

.hs-button-md {
  @apply py-3 px-3;
}

.hs-button-loading-spinner-md {
  width: 1rem;    /* 16px */
  height: 1rem;
}

Valori CSS applicati (Badge):

.hs-badge.size-medium {
  font-size: 0.875rem;   /* 14px */
  padding: 0.375rem 0.625rem;
}

Valori CSS applicati (InputText):

.hs-inputtext-size-medium {
  @apply px-4 py-2.5 sm:py-3 text-sm sm:text-sm;
}

large

Dimensione maggiore per enfasi visiva: CTA prominenti, form a singolo campo, hero sections.

Valori CSS applicati (Button):

.hs-button-lg {
  @apply py-4 px-4;
}

.hs-button-loading-spinner-lg {
  width: 1.25rem;   /* 20px */
  height: 1.25rem;
}

Valori CSS applicati (Badge):

.hs-badge.size-large {
  font-size: 1rem;   /* 16px */
  padding: 0.5rem 0.75rem;
}

Valori CSS applicati (InputText):

.hs-inputtext-size-large {
  @apply px-4 py-3.5 text-base;
}

SizeExtended

Aggiunge xlarge a Size. Usata da componenti visuali che necessitano di un quarto livello di dimensione.

type SizeExtended = 'small' | 'medium' | 'large' | 'xlarge';

xlarge

Dimensione extra-grande. Tipicamente usata per:

  • Avatar di profilo prominenti
  • Icone decorative
  • Elementi display/presentazionali (non form control)

Riepilogo dimensioni per componente

ComponentePropTipoDefault
ButtonsizeSizemedium
BadgesizeSizemedium
TagsizeSizemedium
InputTextsizeSizemedium
SelectsizeSizemedium
MultiSelectsizeSizemedium
TabssizeSizemedium
SteppersizeSizemedium
AvatarsizeSizeExtendedmedium

Icone per size

Le dimensioni delle icone variano con il size del componente. Pattern generale:

/* small: icona 12px */
.hs-badge.size-small .hs-badge-icon {
  width: 0.75rem;
  height: 0.75rem;
}

/* medium e large: icona 16px */
.hs-badge.size-medium .hs-badge-icon,
.hs-badge.size-large .hs-badge-icon {
  width: 1rem;
  height: 1rem;
}

Utilizzo

<template>
  <!-- Pulsante piccolo in toolbar -->
  <Button label="Salva" size="small" severity="primary" />

  <!-- Input standard -->
  <InputText label="Nome" size="medium" />

  <!-- CTA prominente -->
  <Button label="Inizia ora" size="large" severity="primary" fluid />

  <!-- Avatar grande in profilo -->
  <Avatar :image="userAvatar" size="xlarge" />
</template>