ข้อมูลอ้างอิง API

ทุก export ของ @kkwaenggwari/animated-chorus พร้อม props ชนิด และค่าเริ่มต้น ชื่อเดียวกันใช้ได้ทั้งบนเว็บและ React Native

17 API

ตัวเลขและข้อความ

MotionNumber

ตัวเลขที่แต่ละหลักหมุนเหมือนวงล้อ

Propชนิดค่าเริ่มต้นคำอธิบาย
valuenumber | bigint | string—จำเป็นตัวเลข หรือข้อความตัวเลขที่ผู้เรียกจัดรูปแบบแล้ว
mode'replace' | 'roll''replace'replace เลื่อนแต่ละหลักที่เปลี่ยนหนึ่งขั้น roll ผ่านตัวเลขระหว่างกลาง
direction'auto' | 'digit' | 'up' | 'down''auto'auto ตามการเปลี่ยนขนาดเพื่อให้การทดหมุนไปทางเดียว digit เทียบแต่ละหลักแยกกัน
staggernumber45มิลลิวินาทีระหว่างหลักที่เปลี่ยน จากหลักหน่วยออกไป คลื่นทั้งหมดถูกจำกัดเวลา
format(value) => string | Intl.NumberFormatOptionsฟังก์ชันที่คืนข้อความที่จะแสดง หรือตัวเลือกของ Intl.NumberFormat (เมื่อใช้ intl)
intlbooleanfalseใช้ Intl.NumberFormat ในตัว ปิดไว้โดยค่าเริ่มต้นเพื่อไม่ให้รันไทม์ใดต้องมี Intl
localestring | string[]โลแคลสำหรับ intl
prefixstringข้อความก่อนตัวเลข
suffixstringข้อความหลังตัวเลข
transitionTransitionspringเส้นโค้ง timing { duration, easing } หรือสปริง { tempo: 'spring', spring } สปริงรักษาโมเมนตัมไว้เมื่อถูกขัดจังหวะ
onMotionComplete(value) => voidทำงานพร้อมค่าเมื่อหลักทั้งหมดหยุดนิ่ง
หน้าคอมโพเนนต์และโต๊ะทำงาน

MotionText

ข้อความที่เคลื่อนไหวเมื่อเปลี่ยน: ข้อความตัวเลขหมุนทีละหลัก ข้อความอื่นจะสลับ

Propชนิดค่าเริ่มต้นคำอธิบาย
childrenReactNodeข้อความที่จะแสดง
aselement'span'องค์ประกอบที่จะเรนเดอร์
transitionTransitionspringเส้นโค้ง timing { duration, easing } หรือสปริง { tempo: 'spring', spring } สปริงรักษาโมเมนตัมไว้เมื่อถูกขัดจังหวะ
onMotionComplete(text) => voidทำงานเมื่อการเคลื่อนไหวหยุดนิ่ง
หน้าคอมโพเนนต์และโต๊ะทำงาน

MotionStream

ข้อความสตรีมที่แสดงด้วยจังหวะคงที่และไล่ทันเมื่อข้อมูลทะลักเข้ามา

Propชนิดค่าเริ่มต้นคำอธิบาย
textstring—จำเป็นข้อความจนถึงตอนนี้ ข้อความที่ยาวขึ้นจะแสดงด้วยจังหวะคงที่ การเขียนใหม่จะทำต่อจากส่วนต้นที่เหมือนกัน
speednumber90อัตราการแสดงพื้นฐานเป็นตัวอักษรต่อวินาที
catchUpnumber900งานค้างจะแสดงภายในประมาณจำนวนมิลลิวินาทีนี้ด้วยการเร่ง
initialbooleanfalseแสดงข้อความที่มีอยู่ตอน mount แบบค่อย ๆ ด้วย (ไม่เช่นนั้นจะแสดงทันที)
effect'fade' | 'none''fade'fade ทำให้ตัวอักษรใหม่ค่อย ๆ ปรากฏ none แสดงทันที
children(visible: string) => ReactNodeฟังก์ชันที่รับข้อความที่ปรับจังหวะแล้ว เช่น สำหรับเรนเดอร์ Markdown
aselement'span'องค์ประกอบที่จะเรนเดอร์
onMotionComplete(text) => voidทำงานทุกครั้งที่การแสดงไล่ทัน text
หน้าคอมโพเนนต์และโต๊ะทำงาน

เนื้อหาและขนาด

MotionSwap

เนื้อหาที่ครอสเฟดขณะที่องค์ประกอบเปลี่ยนขนาด

Propชนิดค่าเริ่มต้นคำอธิบาย
valueunknownตัวตนของเนื้อหา ค่าใหม่จะทำให้สลับ children ที่เป็นข้อความธรรมดาเป็นตัวตนของตัวเอง
childrenReactNodeเนื้อหา
aselement'span'องค์ประกอบที่จะเรนเดอร์
inlinebooleanas === 'span'true ปรับขนาดตามเนื้อหา (ป้าย ไอคอน) false เต็มความกว้างของพาเรนต์และเคลื่อนไหวความสูง
align'start' | 'center' | 'end''center'ตำแหน่งของเนื้อหาขณะขนาดเปลี่ยน
effect'fade' | 'up' | 'down' | 'scale''fade'วิธีที่เนื้อหาเข้าและออก: up ลอยขึ้น down ตกลง scale ขยายขึ้น
transitionTransitionspringเส้นโค้ง timing { duration, easing } หรือสปริง { tempo: 'spring', spring } สปริงรักษาโมเมนตัมไว้เมื่อถูกขัดจังหวะ
onMotionComplete(value) => voidทำงานเมื่อการเคลื่อนไหวหยุดนิ่ง
หน้าคอมโพเนนต์และโต๊ะทำงาน

MotionHeight

เคลื่อนไหวความสูงตามเนื้อหา: ยุบ ขยาย และเนื้อหาที่เปลี่ยน

Propชนิดค่าเริ่มต้นคำอธิบาย
openbooleantruefalse ยุบเป็นความสูงศูนย์ เนื้อหายังถูก mount แต่ถูกซ่อนและไม่ตอบสนอง
childrenReactNodeเนื้อหา
aselement'div'องค์ประกอบที่จะเรนเดอร์
transitionTransitionspringเส้นโค้ง timing { duration, easing } หรือสปริง { tempo: 'spring', spring } สปริงรักษาโมเมนตัมไว้เมื่อถูกขัดจังหวะ
onMotionComplete(open) => voidทำงานพร้อม open เมื่อความสูงหยุดนิ่ง
หน้าคอมโพเนนต์และโต๊ะทำงาน

MotionPresence

เก็บเนื้อหาให้ mount อยู่ขณะเคลื่อนไหวเข้าและออก

Propชนิดค่าเริ่มต้นคำอธิบาย
presentboolean—จำเป็นแสดงหรือซ่อนเนื้อหา เปลี่ยนค่านี้แทนการ unmount
enterPose{ opacity: 1, translateY: 0 }pose ขณะพัก
exitPose{ opacity: 0, translateY: -12 }pose ที่เนื้อหาใช้ตอนออกและเข้ามาจาก
aselement'div'องค์ประกอบที่จะเรนเดอร์
transitionTransitionspringเส้นโค้ง timing { duration, easing } หรือสปริง { tempo: 'spring', spring } สปริงรักษาโมเมนตัมไว้เมื่อถูกขัดจังหวะ
onExitComplete() => voidทำงานหลังเนื้อหาออกไปและถูกนำออกแล้ว
หน้าคอมโพเนนต์และโต๊ะทำงาน

การเลือกและการแบ่งหน้า

MotionHighlight

รายการจากข้อมูลพร้อมไฮไลต์หนึ่งตัวที่เคลื่อนไปยังรายการที่เลือก

Propชนิดค่าเริ่มต้นคำอธิบาย
itemsreadonly T[]—จำเป็นอาร์เรย์ข้อมูลของคุณ
valuekey | null—จำเป็นkey ของรายการที่ไฮไลต์ null ซ่อนไฮไลต์
onValueChange(key, item) => voidทำงานพร้อม key และรายการเมื่อมีการกดรายการ
getKey(item) => string | numberitem.idคืน key ที่ไม่ซ้ำและคงที่ของรายการ ค่าเริ่มต้นคือ item.id หรือตัวรายการเองสำหรับสตริงและตัวเลข
renderItem(item, { selected, index }) => ReactNodeitem.labelวาดรายการ ได้รับข้อมูลว่าถูกเลือกหรือไม่
hoverbooleanfalseตามตัวชี้บนรายการและกลับไปที่ value เมื่อออก (เว็บ)
itemAselement'button'องค์ประกอบของแต่ละรายการ
itemClassNamestringคลาสของแต่ละองค์ประกอบรายการ itemStyle กำหนดสไตล์ inline ของมัน
highlightClassNamestringคลาสของไฮไลต์ highlightStyle กำหนดสไตล์ inline ของมัน
transitionTransitionspringเส้นโค้ง timing { duration, easing } หรือสปริง { tempo: 'spring', spring } สปริงรักษาโมเมนตัมไว้เมื่อถูกขัดจังหวะ
หน้าคอมโพเนนต์และโต๊ะทำงาน

MotionPager

หน้าที่ปัดได้จากข้อมูล

Propชนิดค่าเริ่มต้นคำอธิบาย
itemsreadonly T[]—จำเป็นอาร์เรย์ข้อมูลของคุณ
indexnumberหน้าที่แสดง เว้นไว้เพื่อให้เพจเจอร์จัดการเอง
defaultIndexnumber0หน้าเริ่มต้นเมื่อ index ไม่ได้ถูกควบคุม
onIndexChange(index, item) => voidทำงานพร้อม index และรายการทันทีที่การปัด ปุ่ม หรือท่าทางล้อเลื่อนหยุด
getKey(item) => string | numberitem.idคืน key ที่ไม่ซ้ำและคงที่ของรายการ ค่าเริ่มต้นคือ item.id หรือตัวรายการเองสำหรับสตริงและตัวเลข
renderItem(item, { index, active }) => ReactNodeitem.labelวาดหน้า ได้รับ index ของมันและสถานะว่าใช้งานอยู่หรือไม่
gapnumber0ระยะห่างระหว่างหน้าเป็นพิกเซล
itemClassNamestringคลาสของแต่ละองค์ประกอบรายการ itemStyle กำหนดสไตล์ inline ของมัน
transitionTransitionspringเส้นโค้ง timing { duration, easing } หรือสปริง { tempo: 'spring', spring } สปริงรักษาโมเมนตัมไว้เมื่อถูกขัดจังหวะ
หน้าคอมโพเนนต์และโต๊ะทำงาน

รายการ

MotionList

รายการที่มี key จากข้อมูล ซึ่งเคลื่อนไหวเฉพาะส่วนที่เปลี่ยน

Propชนิดค่าเริ่มต้นคำอธิบาย
itemsreadonly T[]—จำเป็นอาร์เรย์ข้อมูลของคุณ
getKey(item) => string | numberitem.idคืน key ที่ไม่ซ้ำและคงที่ของรายการ ค่าเริ่มต้นคือ item.id หรือตัวรายการเองสำหรับสตริงและตัวเลข
renderItem(item, index) => ReactNodeitem.labelวาดรายการ
aselement'div'องค์ประกอบที่จะเรนเดอร์
itemAselement'li' | 'div'องค์ประกอบของแต่ละรายการ
itemClassNamestringคลาสของแต่ละองค์ประกอบรายการ itemStyle กำหนดสไตล์ inline ของมัน
effect'rise' | 'fade' | 'scale' | 'slide''rise'วิธีที่รายการเข้าและออก
distancenumber16ระยะเคลื่อนของ rise และ slide เป็นพิกเซล
staggernumber40มิลลิวินาทีระหว่างรายการที่เข้ามา
order'forward' | 'reverse''forward'ทิศทางของการไล่ลำดับ
presentbooleantruefalse ทำให้ทุกรายการเคลื่อนไหวออกโดยคงเลย์เอาต์ไว้ true นำกลับมา
initialbooleantrueเล่นการเข้าเมื่อรายการ mount
playKeystring | numberการเปลี่ยนค่านี้จะเล่นการเข้าใหม่
transitionTransitionspringทรานซิชันสำหรับรายการที่เข้าและออก
layoutTransitionTransitionspringทรานซิชันสำหรับรายการที่เลื่อนไปตำแหน่งใหม่
หน้าคอมโพเนนต์และโต๊ะทำงาน

MotionReorder

ลากเพื่อจัดลำดับรายการหรือตาราง พร้อมการย้ายด้วยคีย์บอร์ด

Propชนิดค่าเริ่มต้นคำอธิบาย
itemsreadonly T[]รายการ เมื่อคุณควบคุมลำดับเอง
defaultItemsreadonly T[][]รายการเริ่มต้น เมื่อคอมโพเนนต์เก็บลำดับเอง
onItemsChange(items, { reason, key }) => voidทำงานพร้อมลำดับใหม่ และบอกว่ามาจากการลาก การปล่อย หรือคีย์บอร์ด
getKey(item) => string | numberitemคืน key ที่ไม่ซ้ำของรายการ ค่าเริ่มต้นคือตัวรายการเอง
renderItem(item, { index, dragging }) => ReactNodeitem.labelวาดรายการ ได้รับ index ของมันและสถานะว่ากำลังถูกลากหรือไม่
reorder'live' | 'drop''live'live เลื่อนรายการอื่นขณะลาก drop รอจนปล่อย
layout'list' | 'grid''grid'list หรือ grid
columnsnumber3คอลัมน์ในตาราง
gapnumber12ระยะห่างระหว่างรายการเป็นพิกเซล
disabledbooleanfalseปิดการลาก
durationnumber260มิลลิวินาทีสำหรับรายการที่หลบทาง
itemClassNamestringคลาสของแต่ละองค์ประกอบรายการ itemStyle กำหนดสไตล์ inline ของมัน
หน้าคอมโพเนนต์และโต๊ะทำงาน

ท่าทาง

MotionSwipe

แถวที่เผยการกระทำด้วยการปัดแนวนอนและปัดทิ้งได้

Propชนิดค่าเริ่มต้นคำอธิบาย
childrenReactNodeเนื้อหาของแถว
startActionsReactNodeปรากฏที่ต้นบรรทัดเมื่อแถวถูกลากไปทางปลาย
endActionsReactNodeปรากฏที่ปลายบรรทัดเมื่อแถวถูกลากไปทางต้น
dismiss'start' | 'end' | 'both'ด้านที่การปัดยาวหรือการเหวี่ยงจะลบแถว
onDismiss(side) => voidทำงานหลังแถวเลื่อนออกและยุบแล้ว ให้ลบรายการออกจากข้อมูลของคุณที่นี่
onOpenChange(side | null) => voidทำงานพร้อมด้านที่เปิด หรือ null เมื่อแถวปิด
disabledbooleanfalseปิดการปัด
contentClassNamestringคลาสของเนื้อหาแถว contentStyle กำหนดสไตล์ inline ของมัน
transitionTransitionspringเส้นโค้ง timing { duration, easing } หรือสปริง { tempo: 'spring', spring } สปริงรักษาโมเมนตัมไว้เมื่อถูกขัดจังหวะ
หน้าคอมโพเนนต์และโต๊ะทำงาน

MotionHold

กดค้างเพื่อยืนยัน ปล่อยก่อนจะถอยกลับ

Propชนิดค่าเริ่มต้นคำอธิบาย
childrenReactNodeป้ายของปุ่ม
onConfirm() => voidทำงานเมื่อการกดค้างครบ
durationnumber1200จำนวนมิลลิวินาทีที่ต้องกดค้าง
disabledbooleanfalseปิดปุ่ม
fillClassNamestringคลาสของแถบเติมที่เพิ่มขึ้น fillStyle กำหนดสไตล์ inline ของมัน
หน้าคอมโพเนนต์และโต๊ะทำงาน

โอเวอร์เลย์

MotionSheet

ชีตด้านล่าง ชีตด้านบน หรือลิ้นชักด้านข้าง พร้อมจุดหยุด

Propชนิดค่าเริ่มต้นคำอธิบาย
openbooleanfalseชีตแสดงอยู่หรือไม่
onOpenChange(open) => voidทำงานพร้อม false เมื่อชีตถูกปิดด้วยการลาก การแตะ หรือ Escape
detents(number | 'content')[]['content']ขนาดขณะพัก: สัดส่วนของหน้าจอ พิกเซล หรือ 'content'
detentnumberindex ของจุดหยุดแบบควบคุม
defaultDetentnumber0index ของจุดหยุดที่ใช้เมื่อเปิดโดยไม่มี detent
onDetentChange(index) => voidทำงานพร้อม index ของจุดหยุดที่ชีตหยุดนิ่ง
side'bottom' | 'top' | 'start' | 'end''bottom'ขอบที่ชีตเข้ามา
modalbooleantrueเพิ่มฉากหลัง เก็บโฟกัสไว้ข้างใน และทำให้หน้าไม่ตอบสนอง
dismissiblebooleantrueการลากเลยจุดหยุดที่เล็กที่สุด ฉากหลัง และ Escape จะปิดมัน
backdropClassNamestringคลาสของฉากหลัง backdropStyle กำหนดสไตล์ inline ของมัน
transitionTransitionspringเส้นโค้ง timing { duration, easing } หรือสปริง { tempo: 'spring', spring } สปริงรักษาโมเมนตัมไว้เมื่อถูกขัดจังหวะ
หน้าคอมโพเนนต์และโต๊ะทำงาน

MotionZoom

รูปภาพที่ซูมจากตำแหน่งเดิมจนเต็มจอ

Propชนิดค่าเริ่มต้นคำอธิบาย
srcstringรูปภาพที่แสดงในตำแหน่งเดิม
zoomSrcstringรูปที่ใหญ่กว่าซึ่งแสดงเมื่อโหลดเสร็จ ใช้อัตราส่วนภาพเดียวกัน
marginnumber24ระยะเว้นรอบรูปที่ซูมเป็นพิกเซล
disabledbooleanfalseปิดการซูม
onZoomChange(zoomed) => voidทำงานพร้อม true เมื่อซูม และ false เมื่อปิด
backdropStyleCSSPropertiesสไตล์ inline ของฉากหลัง
transitionTransitionspringเส้นโค้ง timing { duration, easing } หรือสปริง { tempo: 'spring', spring } สปริงรักษาโมเมนตัมไว้เมื่อถูกขัดจังหวะ
หน้าคอมโพเนนต์และโต๊ะทำงาน

ความคืบหน้า

ProgressBar

เส้นความคืบหน้าแบบควบคุมพร้อมสถานะไม่ทราบค่า

Propชนิดค่าเริ่มต้นคำอธิบาย
valuenumber | nullความคืบหน้าจาก 0 ถึง max null คือไม่ทราบค่า
maxnumber100ค่าที่หมายถึงเสร็จสมบูรณ์
colorstring'currentColor'สีของแถบเติม
trackColorstring'#e7ece9'สีของราง
thicknessnumber8ความหนาของเส้นเป็นพิกเซล
direction'ltr' | 'rtl''ltr'เติมจากซ้าย (ltr) หรือจากขวา (rtl)
transitionTransitionspringเส้นโค้ง timing { duration, easing } หรือสปริง { tempo: 'spring', spring } สปริงรักษาโมเมนตัมไว้เมื่อถูกขัดจังหวะ
หน้าคอมโพเนนต์และโต๊ะทำงาน

ProgressRing

วงแหวนความคืบหน้าแบบควบคุมพร้อมสถานะไม่ทราบค่า

Propชนิดค่าเริ่มต้นคำอธิบาย
valuenumber | nullความคืบหน้าจาก 0 ถึง max null คือไม่ทราบค่า
maxnumber100ค่าที่หมายถึงเสร็จสมบูรณ์
sizenumber96เส้นผ่านศูนย์กลางเป็นพิกเซล
thicknessnumber8ความหนาของวงแหวนเป็นพิกเซล
colorstring'currentColor'สีของส่วนโค้ง
trackColorstring'#e7ece9'สีของราง
childrenReactNodeป้ายที่แสดงตรงกลาง
transitionTransitionspringเส้นโค้ง timing { duration, easing } หรือสปริง { tempo: 'spring', spring } สปริงรักษาโมเมนตัมไว้เมื่อถูกขัดจังหวะ
หน้าคอมโพเนนต์และโต๊ะทำงาน

ทรานซิชัน

motionTokens

ค่าสำเร็จรูปสำหรับ prop transition ใดก็ได้

Propชนิดค่าเริ่มต้นคำอธิบาย
duration{ instant, fast, normal, slow }0 · 140 · 280 · 520ระยะเวลาเป็นมิลลิวินาที
easing{ ease, easeOut, expoOut, backOut }Transitionทรานซิชันแบบ timing พร้อมระยะเวลาและเส้นโค้งที่มีชื่อ
spring{ quick, basic, gentle, bouncy }Transitionทรานซิชันแบบสปริง ตั้งแต่เร็วและแน่นไปจนถึงนุ่มและเด้ง
ทรานซิชัน
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} />
    </>
  );
}

ค้นหา

พิมพ์เพื่อค้นหาเอกสาร