Kaksi ulkoasua — kulta ja hopea
Teema jaetaan kaikkiin näkymiin Environmentin kautta ja vaihtuu välittömästi. Jokainen ulkoasu on muotoiltu erikseen aina kellotaulun, viisarien ja numeroiden tyyliä myöten.
Kulta — metsästyskello
Tummansininen lasuriittiemali × kultakoristeiset roomalaiset numerot (merkintä IIII) · sirppikuun ja kahdeksansakaraisen tähden keskitunnus
Vanhan kullan (patinoitu messinki) kaiverrettu kotelo. Kello 6:n kohdalla pieni ikkuna seuraavalle hälytykselle
#8F7028
Lasuriitti #101838
Kultakoriste #D9B45C
Kuunkulta #F2DC96
tint #A67C2E
Hopea — rautatiekello
Valkoinen kellotaulu · paksut arabialaiset numerot · tankoviisarit
Sekuntiviisari on punainen rautatiekellojen perinteen mukaisesti
#9CA3AE
Valkoposliini #FAFAF7
Rautamusta #1A1C22
Punainen #B02E2E
tint #44546A
Aseta aika viisareilla
DatePickeria ei käytetä. Kruunun vetämisen sijaan hälytysaika asetetaan vetämällä suoraan kellotaulun viisareita. Alla olevaa taulua voi kokeilla oikeasti.
ap.7:30
- Kulma→aika-muunnos — Vetokoordinaatit muutetaan kulmaksi atan2-funktiolla, ja minuuttiviisari kvantisoidaan 6°:n, tuntiviisari 30°:n askelin (toteutettu puhtaana funktiona
ClockAngleMathissa ja yksikkötestattu). - Yhteiskytkentä — Kun minuuttiviisaria käännetään, tuntiviisari seuraa perässä nopeudella 0,5°/min. Nollan minuutin ylitys siirtää tuntia eteen- tai taaksepäin (tunnistetaan 45→15 minuutin ylityksestä).
- Haptiikka — Joka minuutin kohdalla .sensoryFeedback(.selection). Palauttaa sormeen hammasrattaan napsahduksen tunnun.
- Valittu viisari — Viisarin kärkeen ilmestyy messinginvärinen rengas (nuppi), joka osoittaa, kumpaa viisaria käytetään.
- Vahvistus — Tallennetaan "Aseta tähän aikaan" -kilvellä. Muunnetaan AlarmKitin muotoon Alarm.Schedule.relative.
Ajan sameus — hämärä ja aamunkoi
Mitä syvemmälle yö vaipuu, sitä enemmän kellotaulu samenee tummanvioletiksi kuin sielun astia. Aamunkoiton hetkellä sameus puhdistuu valon myötä. Auringonlaskun aikaan vuodenajan tähtikuvio nousee esiin taululle loistaen. Kokeile liu'uttaa alla olevaa säädintä ja anna vuorokauden kiertää.
21:00Hämärä
- Sameus — Kello 16:sta hämärään taulun reunasta alkaa tulvia tummanvioletti sakka, joka saavuttaa huippunsa kello 23:n ja 4:n välillä. Kerroksellisella multiply-liu'ulla norsunluunvärinen pohjasävy vajoaa kuin "astian pohjalle".
- Aamunkoiton puhdistus — Kello 4:n ja 6:n välillä yläpuolelta tuleva valo (screen-yhdistelmä) sulattaa sakan. Etusivun kello elää tätä kiertokulkua jatkuvasti todellisen kellonajan mukaan.
- Vuodenajan tähtikuvio — Auringonlaskun aikaan (±2 tuntia) kyseisen vuodenajan tähtikuvio nousee esiin kultaisena. Kevät = Leijona / Kesä = Skorpioni / Syksy = Kassiopeia / Talvi = Orion. Yöllä se jää näkyviin himmeänä hohteena.
- SwiftUI-toteutus —
TimelineView(.everyMinute)laskee aikakertoimen, joka näkyy Canvasin multiply-/screen-piirrossa ja tähtikuvion polun läpinäkyvyydessä.
Eläinradan kansi — kuukausittain vaihtuva tähtikuviotunnus
Kannen keskelle on upotettu tummansininen lasuriittiemali, ja kuukauden vaihtuessa kyseisen kuukauden merkki (tähtikuvio) kaiverretaan uudelleen kullalla, sirppikuun ja japanilaisen kuukauden nimen kera. Etusivun kellon kansi kantaa kuluvan kuukauden tunnusta.
Kiertävä tähtikuvio — · Tähdet luovat syvyyttä ja jatkavat kiertoaan avaruudessa. Silittämällä pyöräyttäessä hitaus jää vaikuttamaan
Muotoilun sävy noudattaa antiikkisten taskukellojen "lasuriittiemali × vanha kulta" -tyyliä (viitemateriaali: design-refs/ref-watch.jpg). Tähtikuvioiden viivat ovat tyyliteltyjä yksinkertaistuksia. SwiftUI valitsee kuukausittain vaihtuvan tunnuksen funktiolla Calendar.current.component(.month) ja piirtää sen Canvasiin kultakoristein.
Arkana — eläinradan salaisuudet
Kun taulua silitetään ympyrää piirtäen ja vedetään kaksitoista kierrosta, taika ilmestyy. Yöllä arkana (kaksitoista eläinradan lajia), päivällä aurinkotaito (kuusi lajia), kannen ollessa suljettu sinetti (kuusi lajia) — itse laitteessa yhteensä kolme järjestelmää, 24 lajia. Tällä sivulla voi kokeilla niistä seitsemää edustavaa esimerkkiä.
Taika kannen avautuessa
Taika kannen sulkeutuessa (laitteessa: sinetti)
Soimisen hetki (hälytyskellon laueaminen)
Kun hetki koittaa, koko näyttö välkkyy kultaisena, ja taikapiiri avautuu "Hetki on koittanut" -kaiverruksen kera.
- Vedon tunnistus — Seuraa kertynyttä kiertokulmaa taulun keskipisteen ympäri, ja joka 2π kohden syntyy yksi veto. Taikapiirin vinoneliö syttyy. Neljän sekunnin toimettomuus haihduttaa vedon.
- Aamunkoiton puhdistus — Puhdistaa sameuden valolla. Taulu pakotetaan aamunkoiton tilaan, ja kultainen purske kulkee lävitse.
- Tähtikuvioiden myrsky — Vuodenajan tähtikuvio syttyy liekkeihin, ja tähdet sinkoutuvat kellosta joka suuntaan.
- Ajan kelaus — Viisarit kiitävät nopeasti taaksepäin, ja taikapiiri pyörii vastakkaiseen suuntaan.
- Purppurasalaman suojapiiri — Tummanvioletti välähdys ja tärähdys. Taikapiiri muuttuu violetiksi.
- Purppuraliekki — Kipinät kohoavat kellon ympäriltä 3D-tilassa (perspektiiviprojektiohiukkasia, väreilyllä).
- Sinisten aaltojen pyörre — Aallonrenkaat leviävät jalkojen alta, ja pärskeet piirtävät kaaren painovoiman vetämänä.
- Myrskytuulen rengas — Tuulen juovat kiertävät kellon edestä ja takaa, ja tuulenpaine saa kellon heilumaan.
- SwiftUI-toteutus — Kierron tunnistus perustuu
atan2-arvon kertymään (lisätty ClockAngleMathiin), taiat on yhtenäistetty protokollaanSpellEffect, ja paikka-asetukset tallennetaan UserDefaultsiin. Soidessa AlarmKitin alerting-tila havaitaan ja suuri ilmestymä laukaistaan fullScreenCoverilla.
Näkymien rakenne
Kotinäkymä on aina kello. Luettelo, muokkaus ja ajastin rakentuvat kannen sisäpuolen työtasoksi, samalle huopapohjalle kaiverrettuina kilpinä.
Vapauta säädetty hetkesi
Seuraava hälytys — huomenna klo 7:30
Pitkä painallus vaihtaa teeman
Koti (RootView)
Hälytyskello
ap.7:30
Arkisin · torkku 9 min
ap.9:00
Viikonloppuisin
ip.10:15
Vain kerran
Luettelo (AlarmListView)
Aseta aika
ap.7:30
Nimike — "Aamun tee" · torkku 9 min
Aseta tähän aikaanMuokkaus (AlarmEditorView)
Ajastin
Ajastin (TimerView)
Live Activity / Dynamic Island
Ajastin ja sekuntikello elävät lukitusnäytöllä ja Dynamic Islandissa. Mustalla pohjalla messinginvärisellä yksityiskohdalla ne säilyttävät taskukellon tunnelman myös järjestelmän käyttöliittymässä.
POCKETCHIME
Teen ajastin
4:23
Lukitusnäyttö — käyttövoimana Text(timerInterval:)
Dynamic Island (compact) — vasemmalla kellotaulu, oikealla jäljellä oleva aika
Typografia ja värit
Kirjasin on järjestelmän antiikva (New York / Hiragino Mincho). Numerot on ladottu tasalevyisinä, ja kirjainmerkinnät kirjoitettu väljällä kirjainvälillä kaiverretun kilven tapaan.
10:09
Aseta aika
Kun kansi avataan, päivä alkaa. Viisaria vedetään, ja aikaa odotetaan.
RAILROAD GRADE · EST. 2026
| Huopapohja (tausta) | #24331F → #0B110A | |
| Mustemusta (leipäteksti) | #EFE6CD | |
| Messinki (korostus) | #C9A24B | |
| Purppuranpunainen (sekuntiviisari, varoitus) | #A03A2A | |
| Teräs (hopeateema) | #AEB6C2 |
| Muotoilu | Toteutus (DESIGN.md:n mukaisesti) |
|---|---|
| Kannen avaus/sulkeutuminen | rotation3DEffect(axis:(0,1,0), anchor:.leading) + spring 1.3s |
| Viisarien liike | TimelineView(.animation) jatkuvana käyttövoimana |
| Viisarin vetäminen | ClockAngleMath (atan2-pohjainen puhdas funktio, yksikkötestattu) |
| Torkku | secondaryButtonBehavior: .countdown + postAlert 9 min |
| Jäljellä olevan ajan näyttö | AlarmAttributes<PocketWatchMetadata>-tyypin Live Activity |
| Teeman välittyminen | tintColor ja metadata.themeName pitävät yhtenäisyyden aina vimpaimeen asti |