ตัวเรือนสองแบบ - สีทองและสีเงิน
ธีมถูกแจกจ่ายไปยังทุกมุมมองผ่านสภาพแวดล้อมและเปลี่ยนได้ทันที แม้แต่รูปแบบของหน้าปัด เข็มนาฬิกา และตัวเลขก็ยังได้รับการรังสรรค์ขึ้นอย่างมีเอกลักษณ์เฉพาะสำหรับตัวเรือนแต่ละเรือน
ทอง — คดีฮันเตอร์
เคลือบลาพิสลึก × เลขโรมันเน้นสีทอง (สัญลักษณ์ IIII) · ยอดตรงกลางของพระจันทร์เสี้ยวและดาวแปดแฉก
ตลับทองแกะลาย(ทองเหลืองเก่า) หน้าต่างเล็กสำหรับการปลุกครั้งถัดไปที่ตำแหน่ง 6 นาฬิกา
#8F7028
ลาพิส #101838
สำเนียงสีทอง #D9B45C
พระจันทร์ทอง #F2DC96
โทนสี #A67C2E
เงิน - นาฬิการถไฟ
หน้าขาว · เลขอารบิกตัวหนา · มือกระบอง
เข็มวินาทีจะเป็นสีแดง เช่นเดียวกับธรรมเนียมของนาฬิการถไฟ
#9CA3AE
เครื่องลายครามสีขาว #FAFAF7
เหล็กดำ #1A1C22
สีแดง #B02E2E
โทนสี #44546A
การตั้งเวลาด้วยมือ
ไม่มีการใช้ DatePicker แทนที่จะทำท่าทางหมุนเม็ดมะยม คุณจะต้องลากมือที่ใบหน้าเพื่อกำหนดเวลาเสียงเรียกเข้า ใบหน้าด้านล่างสามารถลากได้จริง
เช้า7:30
- Angle-to-Time Conversion — drag coordinates are converted to an angle with atan2, then quantized in steps of 6° for the minute hand and 30° for the hour hand (implemented as a pure function,
ClockAngleMath, and covered by tests). - Linkage — turning the minute hand makes the hour hand follow at 0.5°/minute. Crossing the 0-minute mark advances or reverts the hour (determined by a crossing from 45 to 15 minutes).
- Haptics — .sensoryFeedback(.selection) fires at every 1-minute step, returning the click of gears to your finger.
- มือที่เลือก — วงแหวนสีทองเหลือง (ลูกบิด) จะแสดงอยู่ที่ปลายมือ เพื่อระบุว่ากำลังใช้งานมือใดอยู่
- Confirmation — saved via the "Set to This Time" plate, converted into AlarmKit's Alarm.Schedule.relative.
ความมืดแห่งกาลเวลา - สนธยาและรุ่งอรุณ
ยิ่งกลางคืนลึก ใบหน้าก็ยิ่งเมฆเป็นสีครามม่วง ราวกับภาชนะแห่งดวงวิญญาณ เมื่อรุ่งสาง เมฆหมอกจะถูกทำให้บริสุทธิ์ด้วยแสง เมื่อพระอาทิตย์ตกดิน กลุ่มดาวประจำฤดูกาลจะลอยขึ้นและเปล่งประกายบนใบหน้า ลองใช้แถบเลื่อนด้านล่างเพื่อเลื่อนผ่านวัน
21:00ตอนเย็น
- เมิร์ก — ตั้งแต่เวลา 16.00 น. จนถึงตอนเย็น คราบสีครามสีม่วงจะเต็มจากขอบใบหน้า จนถึงจุดสูงสุดระหว่าง 23.00 น. ถึง 04.00 น. ด้วยการไล่ระดับหลายชั้นในการผสมผสานแบบทวีคูณ พื้นงาช้างจะจมลงเหมือน "ก้นภาชนะ"
- Purification of Dawn — between 4:00 and 6:00, light from above (screen blend) dissolves the dregs. The hero watch lives this cycle at all times, synced to the actual time.
- กลุ่มดาวตามฤดูกาล — เมื่อพระอาทิตย์ตกดิน (±2 ชั่วโมง) กลุ่มดาวประจำฤดูกาลจะขึ้นเป็นสีทอง ฤดูใบไม้ผลิ = ราศีสิงห์ / ฤดูร้อน = แมงป่อง / ฤดูใบไม้ร่วง = แคสสิโอเปีย / ฤดูหนาว = กลุ่มดาวนายพราน มันคงอยู่อย่างแผ่วเบาตลอดทั้งคืน
- SwiftUI Implementation — the time coefficient is computed with
TimelineView(.everyMinute), and reflected in the Canvas's multiply/screen rendering and the constellation path's opacity.
หน้าปกบ้านทั้งสิบสอง - ยอดกลุ่มดาวทุกเดือน
เคลือบลาพิสลึกไว้ที่กึ่งกลางฝา และในแต่ละเดือนใหม่ บ้านของเดือนนั้น (กลุ่มดาว) จะถูกแกะสลักใหม่ด้วยทองคำ พร้อมด้วยพระจันทร์เสี้ยวและชื่อเดือนตามประเพณีของญี่ปุ่น ฝาครอบนาฬิกาฮีโร่มีตราสัญลักษณ์ของเดือนปัจจุบัน
บ้านพลิกผัน —· ดวงดาวมีความลึกและหมุนผ่านอวกาศไปเรื่อยๆ ลากเส้นไป แล้วโมเมนตัมก็ดำเนินต่อไป
โทนสีของการออกแบบเป็นไปตาม "ลาพิสอีนาเมล × ทองเก่า" ของนาฬิกาพกโบราณ (อ้างอิง: design-refs/ref-watch.jpg) เส้นกลุ่มดาวมีรูปแบบที่เรียบง่ายและมีสไตล์ ใน SwiftUI ยอดของแต่ละเดือนจะถูกเลือกด้วย Calendar.current.component(.month) และแสดงผลบนผืนผ้าใบด้วยสำเนียงสีทอง
Arcana - ความลึกลับของบ้านทั้งสิบสอง
ลากใบหน้าเป็นวงกลม หมุนสิบสองครั้ง ศิลปะก็ปรากฏออกมา ในตอนกลางคืน Arcana (บ้านละ 12 ชนิด) ตามวัน Solar Arts (6 ชนิด); เมื่อปิดฝาครอบ ซีล (6 ชนิด) — 24 ชนิดในสามระบบบนอุปกรณ์จริง การสาธิตหน้านี้ให้คุณลองใช้ตัวอย่างที่เป็นตัวแทนได้เจ็ดตัวอย่าง
ความมหัศจรรย์เมื่อเปิดฝาครอบ
เวทย์มนตร์เมื่อปิดฝา (ซีลบนอุปกรณ์จริง)
The Ringing Hour (เมื่อเสียงระฆังปลุกดังขึ้น)
เมื่อถึงเวลา ทั่วทั้งหน้าจอจะกะพริบด้วยสีทอง และวงเวทย์มนตร์ก็ปรากฏพร้อมคำจารึกว่า "โมงนั้นมาถึงแล้ว"
- การตรวจจับขดลวด — ติดตามมุมการหมุนสะสมเกี่ยวกับศูนย์กลางของใบหน้า ทุกๆ 2π คือหนึ่งขดลวด เพชรของวงแหวนเวทย์มนตร์สว่างขึ้น ปล่อยทิ้งไว้ 4 วินาที แล้วขดลวดก็จะหายไป
- การชำระล้างแสงแห่งรุ่งอรุณ — ชำระล้างความมืดมิดด้วยแสง ใบหน้าถูกบังคับให้เข้าสู่สภาวะรุ่งอรุณ และมีทองคำพุ่งทะลุผ่าน
- พายุแห่งดวงดาว — กลุ่มดาวแห่งฤดูกาลจะลุกเป็นไฟ และดวงดาวก็กระจัดกระจายไปจากนาฬิกา
- การย้อนเวลา — เข็มนาฬิกาหมุนไปข้างหลังด้วยความเร็ว และวงกลมเวทย์มนตร์ก็หมุนไปในทิศทางตรงกันข้าม
- บาเรียแห่งสายฟ้าสีม่วง — แสงแฟลชสีม่วงครามและคลื่นกระแทก วงกลมเวทมนตร์เปลี่ยนเป็นสีม่วง
- คริมสันเบลซ — ถ่านที่ลุกโชนผ่านพื้นที่ 3 มิติรอบๆ นาฬิกา (อนุภาคที่ฉายตามเปอร์สเปคทีฟ พร้อมการสั่นไหว)
- วังวนของคลื่นสีฟ้า — ระลอกคลื่นกระจายอยู่ใต้ฝ่าเท้า และพ่นส่วนโค้งเมื่อถูกดึงดูดด้วยแรงโน้มถ่วง
- วงแหวนแห่งพายุ — สายลมที่หมุนวนรอบๆ นาฬิกาทั้งด้านหน้าและด้านหลัง และความกดดันทำให้นาฬิกาแกว่งไปมา
- SwiftUI Implementation — rotation detection accumulates
atan2(added to ClockAngleMath); magic is unified under the protocolSpellEffect, with slot settings stored in UserDefaults. When ringing, AlarmKit's alerting state is detected, triggering the grand effect via fullScreenCover.
องค์ประกอบหน้าจอ
หน้าจอหลักจะเป็นนาฬิกาเสมอ รายการ ตัวแก้ไข และตัวจับเวลาถูกสร้างขึ้นเป็นพื้นผิวการทำงานบนใบหน้าด้านในของปก โดยมีแผ่นสลักสลักอยู่บนพื้นสักหลาดเดียวกัน
เจ้าจงกำหนดชั่วโมงว่าง
ปลุกครั้งถัดไป — พรุ่งนี้ 7:30 น
กดแบบยาวเพื่อเปลี่ยนธีม
หน้าแรก (รูทวิว)
กระดิ่งปลุก
เช้า7:30
วันธรรมดา · เลื่อน 9 นาที
เช้า9:00
วันหยุดสุดสัปดาห์
น10:15
เพียงครั้งเดียวเท่านั้น
รายการ (AlarmListView)
ตั้งเวลา
เช้า7:30
Label — "Morning Tea" · งีบหลับ 9 นาที
ตั้งเป็นเวลานี้แก้ไข (AlarmEditorView)
ตัวจับเวลา
ตัวจับเวลา (TimerView)
Live Activity / เกาะไดนามิก
ตัวจับเวลาและนาฬิกาจับเวลาแสดงสดบนหน้าจอล็อคและ Dynamic Island ด้วยการเน้นทองเหลืองบนสีดำ เพื่อรักษารูปลักษณ์ของนาฬิกาพกไว้แม้จะอยู่ใน UI ของระบบก็ตาม
POCKETCHIME
เครื่องจับเวลาน้ำชา
4:23
หน้าจอล็อค — ขับเคลื่อนด้วยข้อความ (timerInterval:)
Dynamic Island (กะทัดรัด) — หน้าปัดนาฬิกาทางด้านซ้าย เวลาที่เหลืออยู่ทางด้านขวา
การพิมพ์และสี
แบบอักษรเป็นระบบ serif (New York / Hiragino Mincho) ตัวเลขถูกกำหนดไว้ในรูปแบบตาราง และป้ายภาษาละตินจะมีระยะห่างระหว่างตัวอักษรกว้างๆ ชวนให้นึกถึงคำจารึกที่สลักไว้
10:09
ตั้งเวลา
เปิดฝาแล้วเริ่มวันใหม่ หมุนมือแล้วรอเป็นชั่วโมง
RAILROAD GRADE · EST. 2026
| พื้นสักหลาด (พื้นหลัง) | #24331F → #0B110A | |
| ข้อความหมึก (เนื้อหา) | #EFE6CD | |
| ทองเหลือง (สำเนียง) | #C9A24B | |
| Crimson (มือสอง คำเตือน) | #A03A2A | |
| เหล็ก (ธีมสีเงิน) | #AEB6C2 |
| ออกแบบ | การใช้งาน (ต่อ DESIGN.md) |
|---|---|
| การเปิดและปิดฝาครอบ | rotation3DEffect(axis:(0,1,0), anchor:.leading) + spring 1.3s |
| การเคลื่อนไหวของมือ | ขับเคลื่อนอย่างต่อเนื่องด้วย TimelineView(.animation) |
| ลากมือ | ClockAngleMath (ฟังก์ชัน atan2 ล้วนๆ ครอบคลุมโดยการทดสอบหน่วย) |
| งีบหลับ | secondaryButtonBehavior: .countdown + 9-minute postAlert |
| การแสดงเวลาที่เหลืออยู่ | Live Activity via AlarmAttributes<PocketWatchMetadata> |
| การเผยแพร่ธีม | สม่ำเสมอไปจนถึงวิดเจ็ตผ่าน tintColor และ metadata.themeName |