Skip to content
API 风格:

Spinner (вращающийся индикатор) ​

Базовый вращающийся индикатор, обозначающий выполняющееся состояние. Внутри маски загрузки (LhLoading) отображается именно он.

Базовое использование ​

Три размера
vue
<script setup lang="ts">
</script>

<template>
  <div class="demo-spinner-row">
    <LhSpinner size="small" />
    <LhSpinner size="medium" />
    <LhSpinner size="large" />
  </div>
</template>
vue
<script>
export default {}
</script>

<template>
  <div class="demo-spinner-row">
    <LhSpinner size="small" />
    <LhSpinner size="medium" />
    <LhSpinner size="large" />
  </div>
</template>

Пользовательский цвет ​

Цвет
vue
<script setup lang="ts">
</script>

<template>
  <div class="demo-spinner-row">
    <LhSpinner color="#8f9779" />
    <LhSpinner color="#b55442" />
    <LhSpinner color="#4a6fa5" />
  </div>
</template>
vue
<script>
export default {}
</script>

<template>
  <div class="demo-spinner-row">
    <LhSpinner color="#8f9779" />
    <LhSpinner color="#b55442" />
    <LhSpinner color="#4a6fa5" />
  </div>
</template>

API ​

LhSpinner Props ​

СвойствоОписаниеТипПо умолчанию
sizeРазмер"small" | "medium" | "large" | "mini" | "x-large"'medium'
colorЦвет вращения (значение CSS color; если не передано, наследует currentColor)string—
sxСвойство sx для быстрой вёрсткиLhSxProps—

Доступность ​

  • Индикатор является чисто декоративным: aria-hidden="true" убирает его из дерева доступности; смысловой нагрузкой выполняющегося состояния должен выступать внешний контейнер (например role="status")
  • Анимация вращения уважает prefers-reduced-motion и деградирует до статичного полукольца

Определения типов ​

Компонент экспортирует следующие структуры TypeScript (автоматически извлечено из исходников packages/components/spinner/src/types.ts и @lh-ui/share/core/*; раскройте каждый пункт, чтобы увидеть полное определение; описания свойств — в таблице Props выше):

LhSpinnerProps
ts
export interface LhSpinnerProps {
  /** Размер */
  size?: LhSpinnerSize
  /** Цвет вращения (значение CSS color; если не передано, наследует currentColor) */
  color?: string
  /** Свойство sx для быстрой вёрстки */
  sx?: LhSxProps
}
LhSpinnerSize (из @lh-ui/share/core/spinner)
ts
/** Размер вращающегося индикатора */
export type LhSpinnerSize = (typeof LH_SPINNER_SIZE_CONST)[keyof typeof LH_SPINNER_SIZE_CONST]

Константы ​

Далее приведены публичные константы, используемые компонентом (в столбце «Тип / По умолчанию» таблицы Props можно перейти к одноимённому элементу):

LH_SPINNER_SIZE_CONST (из @lh-ui/share/core/spinner)
ts
export const LH_SPINNER_SIZE_CONST = {
  ...LH_SIZE_CONST,
} as const
LH_SPINNER_SIZE_PX (из @lh-ui/share/core/spinner)
ts
/** Соответствие размера → диаметр в px */
export const LH_SPINNER_SIZE_PX: Record<LhSpinnerSize, number> = {
  small: 16,
  medium: 24,
  large: 32,
  mini: 12,
  'x-large': 40,
}

Красота традиций — основа кода