ChatShimmer
Geef een animatie-effect met tekstglans weer.
Gebruik
De ChatShimmer-component geeft een element weer met een geanimeerd glansverloop over tekst, dat vaak wordt gebruikt om streaming- of laadtoestanden in chatinterfaces aan te geven.
Dit onderdeel wordt automatisch gebruikt door de
ChatTool en ChatReasoning componenten tijdens het streamen.De animatie wordt automatisch uitgeschakeld wanneer de gebruiker de voorkeur geeft aan verminderde beweging, de tekst wordt weergegeven als statische gedempte tekst.
Tekst
Gebruik de text prop om de shimmer tekst in te stellen.
Thinking...
<template>
<UChatShimmer text="Thinking..." />
</template>Duur
Gebruik de duration prop om de animatiesnelheid in seconden te regelen.
Thinking...
<template>
<UChatShimmer text="Thinking..." :duration="4" />
</template>Verspreiden
Gebruik de spread prop om de breedte van de shimmer highlight te bepalen. De werkelijke spreiding wordt berekend als text.length * spread in pixels.
Thinking...
<template>
<UChatShimmer text="Thinking..." :spread="5" />
</template>Voorbeelden
API
Props
| Prop | Default | Type |
|---|---|---|
as | 'span' | anyThe element or component this component should render as. |
text | stringThe text to display with the shimmer effect. | |
duration | 2 | numberThe duration of the shimmer animation in seconds. |
spread | 2 | numberThe spread multiplier for the shimmer highlight. The actual spread is computed as |
ui | {} |
Thema
app.config.ts
export default defineAppConfig({
ui: {
chatShimmer: {
base: 'text-transparent bg-clip-text bg-no-repeat bg-size-[calc(200%+var(--spread)*2+2px)_100%,auto] bg-[image:linear-gradient(90deg,#0000_calc(50%-var(--spread)),var(--ui-text-highlighted),#0000_calc(50%+var(--spread))),linear-gradient(var(--ui-text-muted),var(--ui-text-muted))] motion-safe:animate-[shimmer_var(--duration)_linear_infinite] motion-safe:rtl:animate-[shimmer-rtl_var(--duration)_linear_infinite] will-change-[background-position] motion-reduce:bg-none motion-reduce:text-muted'
}
}
})vite.config.ts
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import ui from '@nuxt/ui/vite'
export default defineConfig({
plugins: [
vue(),
ui({
ui: {
chatShimmer: {
base: 'text-transparent bg-clip-text bg-no-repeat bg-size-[calc(200%+var(--spread)*2+2px)_100%,auto] bg-[image:linear-gradient(90deg,#0000_calc(50%-var(--spread)),var(--ui-text-highlighted),#0000_calc(50%+var(--spread))),linear-gradient(var(--ui-text-muted),var(--ui-text-muted))] motion-safe:animate-[shimmer_var(--duration)_linear_infinite] motion-safe:rtl:animate-[shimmer-rtl_var(--duration)_linear_infinite] will-change-[background-position] motion-reduce:bg-none motion-reduce:text-muted'
}
}
})
]
})Wijzigingsgelog
No recent changes