Tham chiếu API

Mọi export của @kkwaenggwari/animated-chorus kèm props, kiểu và giá trị mặc định. Cùng tên hoạt động trên web và React Native.

17 API

Số và văn bản

MotionNumber

Con số có các chữ số cuộn như bánh xe.

PropKiểuMặc địnhMô tả
valuenumber | bigint | string—bắt buộcCon số, hoặc văn bản số đã được bên gọi định dạng.
mode'replace' | 'roll''replace'replace dịch mỗi chữ số thay đổi một bước; roll đi qua các chữ số ở giữa.
direction'auto' | 'digit' | 'up' | 'down''auto'auto theo sự thay đổi độ lớn để phần nhớ cuộn một hướng; digit so sánh từng chữ số riêng.
staggernumber45Mili giây giữa các chữ số thay đổi, từ hàng đơn vị ra ngoài. Toàn bộ gợn sóng có giới hạn.
format(value) => string | Intl.NumberFormatOptionsHàm trả về văn bản để hiển thị, hoặc tùy chọn Intl.NumberFormat (với intl).
intlbooleanfalseDùng Intl.NumberFormat có sẵn. Mặc định tắt để không runtime nào bắt buộc có Intl.
localestring | string[]Locale cho intl.
prefixstringVăn bản trước con số.
suffixstringVăn bản sau con số.
transitionTransitionspringĐường cong timing { duration, easing } hoặc lò xo { tempo: 'spring', spring }. Lò xo giữ đà khi bị ngắt.
onMotionComplete(value) => voidChạy với giá trị khi các chữ số đã dừng.
Trang component và bàn làm việc

MotionText

Văn bản có hoạt ảnh khi thay đổi: văn bản số cuộn theo từng chữ số, văn bản khác thì hoán đổi.

PropKiểuMặc địnhMô tả
childrenReactNodeVăn bản để hiển thị.
aselement'span'Phần tử được render.
transitionTransitionspringĐường cong timing { duration, easing } hoặc lò xo { tempo: 'spring', spring }. Lò xo giữ đà khi bị ngắt.
onMotionComplete(text) => voidChạy khi chuyển động dừng hẳn.
Trang component và bàn làm việc

MotionStream

Văn bản truyền dần hiện ra với nhịp đều, đuổi kịp khi dữ liệu dồn tới.

PropKiểuMặc địnhMô tả
textstring—bắt buộcVăn bản đến hiện tại. Văn bản dài thêm được hiện ra với nhịp đều; bản viết lại tiếp tục từ phần đầu chung.
speednumber90Tốc độ hiển thị cơ bản tính bằng ký tự mỗi giây.
catchUpnumber900Phần tồn đọng được tăng tốc để hiện ra trong khoảng chừng ấy mili giây.
initialbooleanfalseHiển thị dần cả văn bản có sẵn khi mount (nếu không, nó hiện ngay).
effect'fade' | 'none''fade'fade làm ký tự mới hiện dần; none hiện chúng ngay.
children(visible: string) => ReactNodeHàm nhận văn bản đã điều nhịp, ví dụ để render Markdown.
aselement'span'Phần tử được render.
onMotionComplete(text) => voidChạy mỗi khi phần hiển thị đuổi kịp text.
Trang component và bàn làm việc

Nội dung và kích thước

MotionSwap

Nội dung chuyển mờ chéo trong khi phần tử đổi kích thước.

PropKiểuMặc địnhMô tả
valueunknownDanh tính của nội dung; giá trị mới sẽ hoán đổi. Children là văn bản thường thì chính là danh tính.
childrenReactNodeNội dung.
aselement'span'Phần tử được render.
inlinebooleanas === 'span'true lấy kích thước theo nội dung (nhãn, biểu tượng); false lấp đầy chiều rộng phần tử cha và tạo hoạt ảnh cho chiều cao.
align'start' | 'center' | 'end''center'Vị trí của nội dung trong lúc kích thước thay đổi.
effect'fade' | 'up' | 'down' | 'scale''fade'Cách nội dung vào và ra: up đi lên, down rơi xuống, scale lớn dần.
transitionTransitionspringĐường cong timing { duration, easing } hoặc lò xo { tempo: 'spring', spring }. Lò xo giữ đà khi bị ngắt.
onMotionComplete(value) => voidChạy khi chuyển động dừng hẳn.
Trang component và bàn làm việc

MotionHeight

Tạo hoạt ảnh chiều cao theo nội dung: thu gọn, mở rộng và thay đổi nội dung.

PropKiểuMặc địnhMô tả
openbooleantruefalse thu về chiều cao bằng không; nội dung vẫn được gắn nhưng bị ẩn và vô hiệu.
childrenReactNodeNội dung.
aselement'div'Phần tử được render.
transitionTransitionspringĐường cong timing { duration, easing } hoặc lò xo { tempo: 'spring', spring }. Lò xo giữ đà khi bị ngắt.
onMotionComplete(open) => voidChạy với open khi chiều cao đã dừng.
Trang component và bàn làm việc

MotionPresence

Giữ nội dung được gắn trong lúc nó hoạt ảnh vào và ra.

PropKiểuMặc địnhMô tả
presentboolean—bắt buộcHiện hoặc ẩn nội dung. Đổi giá trị này thay vì unmount.
enterPose{ opacity: 1, translateY: 0 }Pose khi nghỉ.
exitPose{ opacity: 0, translateY: -12 }Pose mà nội dung rời đi và đi vào từ đó.
aselement'div'Phần tử được render.
transitionTransitionspringĐường cong timing { duration, easing } hoặc lò xo { tempo: 'spring', spring }. Lò xo giữ đà khi bị ngắt.
onExitComplete() => voidChạy sau khi nội dung đã rời đi và bị gỡ.
Trang component và bàn làm việc

Lựa chọn và phân trang

MotionHighlight

Các mục từ dữ liệu với một điểm nhấn di chuyển đến mục được chọn.

PropKiểuMặc địnhMô tả
itemsreadonly T[]—bắt buộcMảng dữ liệu của bạn.
valuekey | null—bắt buộcKey của mục được nhấn mạnh; null ẩn điểm nhấn.
onValueChange(key, item) => voidChạy với key và mục khi một mục được nhấn.
getKey(item) => string | numberitem.idTrả về key duy nhất, ổn định cho một mục. Mặc định là item.id, hoặc chính mục đó với chuỗi và số.
renderItem(item, { selected, index }) => ReactNodeitem.labelVẽ một mục; nhận thông tin mục đó có được chọn hay không.
hoverbooleanfalseBám theo con trỏ trên các mục và quay về value khi rời đi (web).
itemAselement'button'Phần tử cho từng mục.
itemClassNamestringClass cho từng phần tử mục; itemStyle đặt style nội tuyến của nó.
highlightClassNamestringClass cho điểm nhấn; highlightStyle đặt style nội tuyến của nó.
transitionTransitionspringĐường cong timing { duration, easing } hoặc lò xo { tempo: 'spring', spring }. Lò xo giữ đà khi bị ngắt.
Trang component và bàn làm việc

MotionPager

Các trang vuốt được từ dữ liệu.

PropKiểuMặc địnhMô tả
itemsreadonly T[]—bắt buộcMảng dữ liệu của bạn.
indexnumberTrang đang hiển thị. Bỏ trống để pager tự quản lý.
defaultIndexnumber0Trang bắt đầu khi index không được kiểm soát.
onIndexChange(index, item) => voidChạy với index và mục ngay khi cử chỉ vuốt, phím hoặc con lăn dừng lại.
getKey(item) => string | numberitem.idTrả về key duy nhất, ổn định cho một mục. Mặc định là item.id, hoặc chính mục đó với chuỗi và số.
renderItem(item, { index, active }) => ReactNodeitem.labelVẽ một trang; nhận index của nó và việc nó có đang hiện hành không.
gapnumber0Khoảng cách giữa các trang tính bằng pixel.
itemClassNamestringClass cho từng phần tử mục; itemStyle đặt style nội tuyến của nó.
transitionTransitionspringĐường cong timing { duration, easing } hoặc lò xo { tempo: 'spring', spring }. Lò xo giữ đà khi bị ngắt.
Trang component và bàn làm việc

Danh sách

MotionList

Danh sách có key từ dữ liệu, chỉ tạo hoạt ảnh cho phần thay đổi.

PropKiểuMặc địnhMô tả
itemsreadonly T[]—bắt buộcMảng dữ liệu của bạn.
getKey(item) => string | numberitem.idTrả về key duy nhất, ổn định cho một mục. Mặc định là item.id, hoặc chính mục đó với chuỗi và số.
renderItem(item, index) => ReactNodeitem.labelVẽ một mục.
aselement'div'Phần tử được render.
itemAselement'li' | 'div'Phần tử cho từng mục.
itemClassNamestringClass cho từng phần tử mục; itemStyle đặt style nội tuyến của nó.
effect'rise' | 'fade' | 'scale' | 'slide''rise'Cách các mục vào và ra.
distancenumber16Quãng di chuyển của rise và slide tính bằng pixel.
staggernumber40Mili giây giữa các mục đi vào.
order'forward' | 'reverse''forward'Hướng so le.
presentbooleantruefalse tạo hoạt ảnh đưa mọi mục ra nhưng giữ bố cục; true đưa chúng trở lại.
initialbooleantruePhát hoạt ảnh vào khi danh sách được mount.
playKeystring | numberThay đổi giá trị này sẽ phát lại hoạt ảnh vào.
transitionTransitionspringChuyển tiếp cho mục đi vào và rời đi.
layoutTransitionTransitionspringChuyển tiếp cho mục lướt đến vị trí mới.
Trang component và bàn làm việc

MotionReorder

Kéo để sắp xếp lại danh sách hoặc lưới, có di chuyển bằng bàn phím.

PropKiểuMặc địnhMô tả
itemsreadonly T[]Các mục, khi bạn kiểm soát thứ tự.
defaultItemsreadonly T[][]Các mục ban đầu, khi component tự giữ thứ tự.
onItemsChange(items, { reason, key }) => voidChạy với thứ tự mới và cho biết nó đến từ kéo, thả hay bàn phím.
getKey(item) => string | numberitemTrả về key duy nhất cho một mục. Mặc định là chính mục đó.
renderItem(item, { index, dragging }) => ReactNodeitem.labelVẽ một mục; nhận index của nó và việc nó có đang được kéo không.
reorder'live' | 'drop''live'live dời các mục khác trong lúc kéo; drop chờ đến khi thả.
layout'list' | 'grid''grid'list hoặc grid.
columnsnumber3Số cột trong lưới.
gapnumber12Khoảng cách giữa các mục tính bằng pixel.
disabledbooleanfalseTắt kéo.
durationnumber260Mili giây cho các mục tránh đường.
itemClassNamestringClass cho từng phần tử mục; itemStyle đặt style nội tuyến của nó.
Trang component và bàn làm việc

Cử chỉ

MotionSwipe

Hàng hiện thao tác khi vuốt ngang và có thể vuốt đi.

PropKiểuMặc địnhMô tả
childrenReactNodeNội dung của hàng.
startActionsReactNodeHiện ở đầu dòng khi hàng bị kéo về phía cuối.
endActionsReactNodeHiện ở cuối dòng khi hàng bị kéo về phía đầu.
dismiss'start' | 'end' | 'both'Các phía mà vuốt dài hoặc hất sẽ xóa hàng.
onDismiss(side) => voidChạy sau khi hàng trượt ra và thu gọn; hãy xóa mục khỏi dữ liệu của bạn tại đây.
onOpenChange(side | null) => voidChạy với phía đang mở, hoặc null khi hàng đóng lại.
disabledbooleanfalseTắt vuốt.
contentClassNamestringClass cho nội dung hàng; contentStyle đặt style nội tuyến của nó.
transitionTransitionspringĐường cong timing { duration, easing } hoặc lò xo { tempo: 'spring', spring }. Lò xo giữ đà khi bị ngắt.
Trang component và bàn làm việc

MotionHold

Nhấn giữ để xác nhận; thả sớm sẽ tua ngược.

PropKiểuMặc địnhMô tả
childrenReactNodeNhãn của nút.
onConfirm() => voidChạy khi việc nhấn giữ hoàn tất.
durationnumber1200Số mili giây cần giữ.
disabledbooleanfalseTắt nút.
fillClassNamestringClass cho phần tô đang tăng; fillStyle đặt style nội tuyến của nó.
Trang component và bàn làm việc

Lớp phủ

MotionSheet

Sheet đáy, sheet đỉnh hoặc ngăn kéo bên với các điểm dừng.

PropKiểuMặc địnhMô tả
openbooleanfalseSheet có đang hiển thị hay không.
onOpenChange(open) => voidChạy với false khi sheet bị đóng bằng kéo, chạm hoặc Escape.
detents(number | 'content')[]['content']Kích thước khi nghỉ: tỉ lệ màn hình, pixel hoặc 'content'.
detentnumberIndex điểm dừng được kiểm soát.
defaultDetentnumber0Index điểm dừng dùng khi mở mà không có detent.
onDetentChange(index) => voidChạy với index của điểm dừng nơi sheet dừng lại.
side'bottom' | 'top' | 'start' | 'end''bottom'Cạnh mà sheet xuất hiện từ đó.
modalbooleantrueThêm lớp nền, giữ focus bên trong và làm trang vô hiệu.
dismissiblebooleantrueKéo quá điểm dừng nhỏ nhất, lớp nền và Escape sẽ đóng nó.
backdropClassNamestringClass cho lớp nền; backdropStyle đặt style nội tuyến của nó.
transitionTransitionspringĐường cong timing { duration, easing } hoặc lò xo { tempo: 'spring', spring }. Lò xo giữ đà khi bị ngắt.
Trang component và bàn làm việc

MotionZoom

Ảnh phóng to từ vị trí của nó cho đến khi lấp đầy màn hình.

PropKiểuMặc địnhMô tả
srcstringẢnh hiển thị tại chỗ.
zoomSrcstringẢnh lớn hơn hiển thị khi đã tải xong; hãy giữ cùng tỉ lệ khung hình.
marginnumber24Khoảng trống quanh ảnh phóng to tính bằng pixel.
disabledbooleanfalseTắt phóng to.
onZoomChange(zoomed) => voidChạy với true khi phóng to và false khi đóng.
backdropStyleCSSPropertiesStyle nội tuyến cho lớp nền.
transitionTransitionspringĐường cong timing { duration, easing } hoặc lò xo { tempo: 'spring', spring }. Lò xo giữ đà khi bị ngắt.
Trang component và bàn làm việc

Tiến độ

ProgressBar

Đường tiến độ có kiểm soát với trạng thái không xác định.

PropKiểuMặc địnhMô tả
valuenumber | nullTiến độ từ 0 đến max; null là không xác định.
maxnumber100Giá trị nghĩa là hoàn tất.
colorstring'currentColor'Màu tô.
trackColorstring'#e7ece9'Màu rãnh.
thicknessnumber8Độ dày đường tính bằng pixel.
direction'ltr' | 'rtl''ltr'Tô từ trái (ltr) hoặc từ phải (rtl).
transitionTransitionspringĐường cong timing { duration, easing } hoặc lò xo { tempo: 'spring', spring }. Lò xo giữ đà khi bị ngắt.
Trang component và bàn làm việc

ProgressRing

Vòng tiến độ có kiểm soát với trạng thái không xác định.

PropKiểuMặc địnhMô tả
valuenumber | nullTiến độ từ 0 đến max; null là không xác định.
maxnumber100Giá trị nghĩa là hoàn tất.
sizenumber96Đường kính tính bằng pixel.
thicknessnumber8Độ dày vòng tính bằng pixel.
colorstring'currentColor'Màu cung.
trackColorstring'#e7ece9'Màu rãnh.
childrenReactNodeNhãn hiển thị ở giữa.
transitionTransitionspringĐường cong timing { duration, easing } hoặc lò xo { tempo: 'spring', spring }. Lò xo giữ đà khi bị ngắt.
Trang component và bàn làm việc

Chuyển tiếp

motionTokens

Giá trị có sẵn cho mọi prop transition.

PropKiểuMặc địnhMô tả
duration{ instant, fast, normal, slow }0 · 140 · 280 · 520Thời lượng tính bằng mili giây.
easing{ ease, easeOut, expoOut, backOut }TransitionChuyển tiếp timing với thời lượng và đường cong có tên.
spring{ quick, basic, gentle, bouncy }TransitionChuyển tiếp lò xo, từ nhanh và chắc đến êm và nảy.
Chuyển tiếp
App.jsx
// Web and React Native: the same import.
import { MotionNumber, MotionList } from '@kkwaenggwari/animated-chorus';

export function Score({ points, players }) {
  return (
    <>
      <MotionNumber value={points} />
      <MotionList items={players} renderItem={(player) => player.name} />
    </>
  );
}

Tìm kiếm

Gõ để tìm trong tài liệu.