Color / Gradient
ระบุสีและการไล่ระดับสีสำหรับข้อความ พื้นหลัง และเส้นโครงร่าง Paint อาจเป็นสีหรือค่าที่สร้างโดยตัวสร้างการไล่ระดับสี
สี
วิธีการเขียนที่ใช้กันทั่วไป ได้แก่ ชื่อสี สีเลขฐานสิบหก และวัตถุ { r, g, b, a } ส่วนประกอบ RGB และความโปร่งใสใช้ 0–1, clear หมายถึงโปร่งใส $env.foreground และ $env.accent มีสีทั่วไปที่สลับกับธีม
HDR(color) เพิ่มแท็ก HDR ให้กับสตริงสี เติมสีปกติอย่างชัดเจนยังคงอยู่ SDR; ตัวอย่างเช่น color={$env.foreground} จะไม่ได้รับการปรับปรุงโดยอัตโนมัติ และสามารถเขียนเป็น color={HDR($env.foreground)} ได้เมื่อจำเป็นต้องไฮไลต์ ลักษณะการทำงานเริ่มต้นเมื่อละเว้นแอตทริบิวต์สีจะแสดงในตารางด้านล่าง
HDR ค่าเริ่มต้นเมื่อละเว้นสี
เมื่อไม่ได้ระบุสีการวาด สีเริ่มต้นต่อไปนี้จะถูกทำเครื่องหมายด้วย HDR
| เนื้อหา | สีเมื่อละเว้น |
|---|---|
| ข้อความ สัญลักษณ์ รูปภาพเทมเพลต | HDR($env.foreground);Symbol รักษาสีของจานสีเมื่อใช้โหมดจานสีและระบุจานสี |
| การเติมรูปสี่เหลี่ยม วงกลม วงรี และฮิสโตแกรม | HDR($env.dark ? 'white' : 'black'). |
| ลายเส้น เส้น ส่วนโค้ง เส้นหลายเส้น เส้นทาง และแผนภูมิเส้นหลายเส้น | HDR($env.dark ? 'white' : 'black'). |
| แกนแผนภูมิและป้ายกำกับ | สีพื้นหน้า HDR ถูกใช้เป็นค่าเริ่มต้น การตั้งค่าการเติมแผนภูมิหรือเส้นขีดอย่างชัดเจนจะไม่เปลี่ยนสีเริ่มต้นของป้ายกำกับ |
| เปิดใช้งานการเรืองแสง เงาภายใน และเงาหล่น | เมื่อละเว้นสีจากเอฟเฟกต์ การเรืองแสงจะมีค่าเริ่มต้นเป็น HDR สีขาว และเงาด้านในและเงาตกกระทบจะมีค่าเริ่มต้นเป็น HDR สีดำ การละเว้นเอฟเฟกต์นั้นจะไม่สามารถเปิดใช้งานได้ |
พื้นหลังคอนเทนเนอร์ยังคงโปร่งใส รูปภาพสีหลัก แผนที่ และวัสดุของระบบจะคงสีและการแสดงผลของตัวเองไว้ สีปกติ ระดับสีไล่ระดับสี และชุดสัญลักษณ์ที่ระบุอย่างชัดเจนจะไม่ถูกแปลงเป็น HDR โดยรวม และควรทำเครื่องหมายสีที่ต้องการการปรับปรุงแยกกัน
การเสริมประสิทธิภาพจะมีผลเมื่อใด?
แฟล็ก HDR ไม่รับประกันความสว่างตามจริง การเพิ่มประสิทธิภาพต้องใช้ iOS 26 หรือใหม่กว่า หน้าจอที่รองรับ โหมด HUD และการเปิดการเพิ่มประสิทธิภาพ HDR ผลลัพธ์ที่แท้จริงยังได้รับผลกระทบจากสภาพแวดล้อมการแสดงผลในปัจจุบันด้วย โหมดเครื่องมือปกติ การแสดงตัวอย่างด้วยโปรแกรมแก้ไข และ PNG ที่ส่งออกจะใช้ช่วงการแสดงผลปกติ และไม่สามารถใช้การแสดงตัวอย่างเพื่อตัดสินเอฟเฟกต์ไฮไลต์จริงได้
บรรทัดสามบรรทัดต่อไปนี้ละเว้นสี ใช้สีปกติอย่างชัดเจน และทำเครื่องหมายสีไฮไลต์อย่างชัดเจน อาจดูเหมือนกันในหน้าตัวอย่าง แต่ความแตกต่างในการปรับปรุงจะปรากฏชัดเจนหลังจากเข้าสู่สภาพแวดล้อม HUD ที่รองรับ HDR
function main() {
return (
<VStack spacing={8}>
<Text fontSize={22}>Default HDR</Text>
<Text fontSize={22} color={$env.foreground}>
Explicit SDR
</Text>
<Text fontSize={22} color={HDR($env.accent)}>
Explicit HDR
</Text>
</VStack>
);
}
การไล่ระดับสี
LinearGradient เปลี่ยนแปลงเป็นเส้นตรง RadialGradient กระจายออกจากจุดศูนย์กลาง และ AngularGradient เปลี่ยนแปลงเป็นมุมรอบจุดศูนย์กลาง เมื่อสร้าง คุณสามารถส่งผ่านอาร์เรย์สีหรืออาร์เรย์สีด้วย color และ location ใช้ 0–1 สำหรับตำแหน่งแพตช์สีและพิกัดกึ่งกลาง จุดสำหรับรัศมีรัศมี และองศาสำหรับมุม
การไล่ระดับสีที่สร้างขึ้นสามารถส่งผ่านไปยัง background, stroke และคุณลักษณะอื่นๆ ที่รองรับ Paint คุณลักษณะที่ยอมรับเฉพาะ Color ยังคงต้องใช้สีเดียว ประเภทที่มีอยู่เฉพาะเจาะจงจะขึ้นอยู่กับคำจำกัดความของแอตทริบิวต์
ตัวอย่าง: พื้นหลังและการไล่ระดับสีเส้นโครงร่าง
พื้นหลังเชิงเส้น การเติมในแนวรัศมี เส้นขีดเชิงมุม และข้อความ HDR แสดงอยู่ด้านล่างตามลำดับ
function main() {
return (
<VStack spacing={12}>
<Rectangle
height={48}
background={LinearGradient(['#B9E883', '#30B3A2'], { angle: 30 })}
/>
<Circle
width={100}
height={100}
background={RadialGradient(['white', '#30B3A2'])}
/>
<Circle
width={100}
height={100}
stroke={AngularGradient(['#B9E883', '#30B3A2', '#B9E883'])}
lineWidth={8}
background="clear"
/>
<Text color={HDR('white')}>CapDrive</Text>
</VStack>
);
}
ตัวสร้าง
HDR(color: string) → HDRColorทำเครื่องหมายสีเพื่อเพิ่มประสิทธิภาพ HDR โดยคงสี SDR เดิมไว้
LinearGradient(colors: GradientColors, options?: LinearGradientOptions) → Gradientสร้างการไล่สี เรียกโดยตรงหรือใช้ new
RadialGradient(colors: GradientColors, options?: RadialGradientOptions) → Gradientสร้างการไล่สี เรียกโดยตรงหรือใช้ new
AngularGradient(colors: GradientColors, options?: AngularGradientOptions) → Gradientสร้างการไล่สี เรียกโดยตรงหรือใช้ new