שתי מעטפות — זהב וכסף
ערכת הנושא מופצת אל כל התצוגות דרך Environment, ומתחלפת מיד. כל מעטפת נבנית בנפרד, עד לסגנון הלוח, המחוגים והספרות.
זהב — שעון הצייד
אמייל לזוריט כחול × ספרות רומיות מוזהבות (בכתיב IIII) · סמל מרכזי של סהר וכוכב בן שמונה קרניים
מארז חרוט מזהב עתיק (פליז מיושן). בשעה 6 חלון קטן לשעה המיועדת הבאה
#8F7028
לזוריט #101838
עיטור זהב #D9B45C
זהב ירח #F2DC96
tint #A67C2E
כסף — שעון הרכבת
לוח לבן · ספרות ערביות עבות · מחוגים ישרים
מחוג השניות משובץ באדום, כמנהג שעוני הרכבת
#9CA3AE
חרסינה לבנה #FAFAF7
שחור ברזל #1A1C22
אדום #B02E2E
tint #44546A
כיוון השעה במחוגים
אין שימוש ב-DatePicker. במקום תנועת גלגול הכתר, גוררים את מחוגי הלוח עצמם כדי לקבוע את שעת הצלצול. את הלוח שלמטה אפשר ממש לגרור.
לפנה״צ7:30
- המרה: זווית → שעה — קואורדינטות הגרירה מומרות לזווית באמצעות atan2, ומחוג הדקות מקוונט לצעדים של 6°, ומחוג השעות של 30° (הפך לפונקציה טהורה בשם
ClockAngleMath, נתונה לבדיקה). - תיאום — בסיבוב מחוג הדקות, מחוג השעות עוקב בקצב 0.5°/דקה. בחציית סימן 0 הדקות, השעה מתקדמת/נסוגה (נקבע בחציית 45→15 דקות).
- מישוש — בכל צעד בן 1 דקה פועל .sensoryFeedback(.selection). משיב לאצבע את תחושת נקישת גלגלי השיניים.
- המחוג הנבחר — טבעת בצבע פליז (ידית) מוצגת בקצה המחוג, ומראה במי מהם אתה שולט.
- אישור — נשמר בלוחית «כוון לשעה זו». מומר ל-Alarm.Schedule.relative של AlarmKit.
עכירות הזמן — דמדומי ערב ושחר
ככל שמעמיק הלילה, לוח השעון נעכר אל סגול־כחול, כמו כלי המחזיק נשמה. עם השחר, מיטהרת העכירות באור. בעת השקיעה, מזל אותה עונה צף ועולה על הלוח וזוהר. גלגל את היום במחוון שלמטה ונסה בעצמך.
21:00דמדומים
- עכירות — משעה 16 ועד הדמדומים מתמלאת משקעת סגולה־כחולה משולי הלוח, ומגיעה לשיאה בין השעה 23 לשעה 4 שלפנות בוקר. בשכבות מדורגות של מיזוג כפלי, שוקע צבע הרקע השנהבי כמו «קרקעית כלי».
- טיהור השחר — בין השעה 4 לשעה 6 בבוקר, אור היורד מלמעלה (מיזוג screen) ממס את המשקעת. שעון הגיבור חי את המחזור הזה תמיד, מתואם אל הזמן הממשי.
- מזל העונה — בעת השקיעה (±2 שעות) צף מזל אותה עונה בזהב. אביב = מזל אריה / קיץ = מזל עקרב / סתיו = קסיופאה / חורף = אוריון. בלילה הוא נותר באור עמום.
- מימוש SwiftUI —
TimelineView(.everyMinute)מחשב את מקדם הזמן, ומשתקף במיזוג הכפלי/צביעת screen של Canvas ובאטימות נתיב המזל.
מכסה שנים־עשר המזלות — סמל מזל המתחלף מדי חודש
במרכז המכסה משובץ אמייל לזוריט כחול, ובכל חילופי חודש נחרת מחדש בזהב מזל אותו חודש (הקבוצה). מלווה בסהר, ובשם החודש היפני המסורתי. מכסה שעון הגיבור עוטה את דגם החודש הנוכחי.
המזלות הסובבים — · לכוכבים עומק, והם מוסיפים לסבוב בחלל. לטף וסובב, והתמד יישא אותם
גוון העיצוב הולך בעקבות שעוני הכיס העתיקים «אמייל לזוריט × זהב עתיק» (חומר עזר: design-refs/ref-watch.jpg). קווי המזל הם סגנון מופשט ומעוצב. ב-SwiftUI נבחר דגם החודש המתחלף באמצעות Calendar.current.component(.month), ומצויר בעיטור זהב על Canvas.
אַרְקָנָה — מסתורין שנים־עשר המזלות
לַטֵּף את הלוח בתנועה מעגלית, וכאשר תמתח שנים־עשר סיבובים תתגלה האמנות. בלילה אַרְקָנָה (12 סוגים כמניין המזלות), ביום אמנויות השמש (6 סוגים), ובנעילת המכסה חותם (6 סוגים) — במכשיר הממשי שלוש מערכות ובהן 24 סוגים. מופע הראווה שבעמוד זה מאפשר לנסות שבעה סוגים מייצגים מתוכם.
הכשף בעת פתיחת המכסה
הכשף בעת נעילת המכסה (במכשיר הממשי: חותם)
שעת הצלצול (בהתפרצות פעמון השעה)
כשמגיעה השעה המיועדת, כל המסך מהבהב בזהב, ומעגל הקסם נפרש לצד הכיתוב «השעה המיועדת הגיעה».
- זיהוי המתיחה — עוקב אחר זווית הסיבוב המצטברת סביב מרכז הלוח, וכל 2π הוא סיבוב אחד. מעוין מעגל הקסם נדלק. בהזנחה של 4 שניות מתפוגגת המתיחה.
- טיהור אור השחר — מטהר את העכירות באור. הלוח עובר בכפייה אל מצב השחר, ופרץ זהב חולף.
- סופת המזלות — מזל העונה עולה בלהבות, והכוכבים ניתזים מן השעון.
- השבת הזמן לאחור — המחוגים נסוגים במהירות, ומעגל הקסם מסתובב לאחור.
- מחסום הברק הסגול — הבזק סגול־כחול וגל הלם. מעגל הקסם הופך לסגול.
- הלהבה הארגמנית — רסיסי אש מתרוממים מסביב לשעון בחלל 3D (חלקיקים בהיטל פרספקטיבי, עם ריצוד).
- מערבולת הגל הכחול — אדוות מתפשטות לרגליים, וההתזים נמשכים בכוח הכובד ומשרטטים קשת.
- טבעת הרוח העזה — פסי רוח מקיפים את השעון מלפנים ומאחור בסבב, ולחץ הרוח מניע אותו.
- מימוש SwiftUI — זיהוי הסיבוב מתבסס על צבירת
atan2(נוסף ל-ClockAngleMath), הכשפים מאוחדים לכדי הפרוטוקולSpellEffect, והגדרות המשבצות נשמרות ל-UserDefaults. בעת הצלצול, מזוהה מצב alerting של AlarmKit ומופעלת ההתפרצות הגדולה דרך fullScreenCover.
מבנה המסכים
מסך הבית הוא תמיד השעון. הרשימה, העריכה ושעון החול נבנים כמשטחי עבודה מאחורי המכסה, בלוחיות מתכת חרוטה על אותו משטח לבד.
שחרר את השעה המיועדת
השעה המיועדת הבאה — מחר 7:30 לפנה״צ
לחיצה ארוכה להחלפת הערכה
בית (RootView)
פעמון השעה
לפנה״צ7:30
ימי חול · נמנום 9 דקות
לפנה״צ9:00
סוף שבוע
אחה״צ10:15
פעם אחת בלבד
רשימה (AlarmListView)
כיוון השעה
לפנה״צ7:30
תווית — «תה של בוקר» · נמנום 9 דקות
כוון לשעה זועריכה (AlarmEditorView)
שעון החול
שעון החול (TimerView)
Live Activity / Dynamic Island
שעון החול ומד עצירת העת חיים במסך הנעילה וב-Dynamic Island. על רקע שחור בנגיעת פליז יחידה, הם שומרים על נוכחות שעון הכיס אף בתוך ממשק המערכת (UI).
POCKETCHIME
שעון החול של התה
4:23
מסך הנעילה — מונע על ידי Text(timerInterval:)
Dynamic Island (compact) — הלוח משמאל, הזמן הנותר מימין
סדר הדפוס והצבע
הגופן הוא גופן ה-serif של המערכת (New York / Hiragino Mincho). הספרות נחרתות ברוחב אחיד, ותוויות באותיות לטיניות מרוּוחות למרחקים גדולים, כמו כיתוב חרוט במתכת.
10:09
כיוון השעה
בפתיחת המכסה מתחיל היום. מְתַח את המחוגים, והמתן לשעה.
RAILROAD GRADE · EST. 2026
| משטח לבד (רקע) | #24331F → #0B110A | |
| אותיות דיו (גוף הטקסט) | #EFE6CD | |
| פליז (הדגשה) | #C9A24B | |
| ארגמן (מחוג שניות · אזהרה) | #A03A2A | |
| פלדה (ערכת הכסף) | #AEB6C2 |
| עיצוב | מימוש (על פי DESIGN.md) |
|---|---|
| פתיחת המכסה וסגירתו | rotation3DEffect(axis:(0,1,0), anchor:.leading) + spring 1.3s |
| תנועת המחוגים | הנעה רציפה עם TimelineView(.animation) |
| גרירת המחוגים | ClockAngleMath (פונקציה טהורה של atan2 הנתונה לבדיקות יחידה) |
| נמנום | secondaryButtonBehavior: .countdown + postAlert של 9 דקות |
| הצגת הזמן הנותר | Live Activity של AlarmAttributes<PocketWatchMetadata> |
| התפשטות ערכת הנושא | עקביות עד ה-Widget באמצעות tintColor ו-metadata.themeName |