Skip to content
API 风格:

Spinner スピナー ​

基本的な回転図形で、進行中の状態を表します。ローディングオーバーレイ(LhLoading)の内部表示にも使用されます。

基本的な使い方 ​

3 つのサイズ
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—
sxsx クイックレイアウトプロパティ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,
}

国風の美で、コードの基を築く