alpha
Login
Join now
tyler.fun
/
chalky.town
Star
Starred
Star
Something went wrong. Try again.
Fork
0
Eye filled
Watch
Watching
Watch
a local-first atmospheric chalky task planner
Star
Starred
Star
Something went wrong. Try again.
Fork
0
Eye filled
Watch
Watching
Watch
Overview
Overview
Issues
Issues
Pulls
Pulls
Pipelines
Pipelines
chalky.town
/
src
2 folders
·
3 files
at
main
tyler.fun
·
app: hueful replaces the hand-rolled colour math - palette.ts drops hexToRgb/relativeLuminance/contrastRatio for hueful's WCAG 2 contrast (inkFor keeps its rule: LIGHT_INK only when strictly higher than DARK_INK, anything unparseable gets DARK_INK), and a new normalizeHex turns any CSS colour hueful parses (3/4/8-digit hex, rgb(), hsl(), oklch(), names like rebeccapurple, bare hex without the #) into the lowercase 6-digit #rrggbb that stored records and --hl-<id> vars expect, rounding and clamping channels (hueful doesn't clamp, so out-of-gamut oklch lands on the gamut edge) and dropping alpha. The picker's color text field now routes through it, so typing rebeccapurple or oklch(0.7 0.15 30) works; the aria-label is Color value. hueful pinned at 0.7.0 (MIT, zero deps) and listed in THIRD_PARTY_LICENSES.md. Presets, defaults, ids and the lexicon are untouched. Verified: no test runner in the repo, so a throwaway node:test file checked inkFor (#ffa3a3 dark ink, #1a1a40 light ink, junk dark ink, every default and preset dark ink) and normalizeHex (#fa0 -> #ffaa00, rebeccapurple -> #663399, oklch(0.7 0.15 30) -> #ed7665, rgb(10 20 30 / 0.5) -> #0a141e, oklch(0.7 0.4 30) -> #ff0000, garbage and empty -> null); pnpm check 0 errors 0 warnings; pnpm build ok
·
1d ago
ccc116ca
content
app: add a first-visit welcome modal with editable markdown copy
1mo ago
lib
app: hueful replaces the hand-rolled colour math - palette.ts drops hexToRgb/relativeLuminance/contrastRatio for hueful's WCAG 2 contrast (inkFor keeps its rule: LIGHT_INK only when strictly higher than DARK_INK, anything unparseable gets DARK_INK), and a new normalizeHex turns any CSS colour hueful parses (3/4/8-digit hex, rgb(), hsl(), oklch(), names like rebeccapurple, bare hex without the #) into the lowercase 6-digit #rrggbb that stored records and --hl-<id> vars expect, rounding and clamping channels (hueful doesn't clamp, so out-of-gamut oklch lands on the gamut edge) and dropping alpha. The picker's color text field now routes through it, so typing rebeccapurple or oklch(0.7 0.15 30) works; the aria-label is Color value. hueful pinned at 0.7.0 (MIT, zero deps) and listed in THIRD_PARTY_LICENSES.md. Presets, defaults, ids and the lexicon are untouched. Verified: no test runner in the repo, so a throwaway node:test file checked inkFor (#ffa3a3 dark ink, #1a1a40 light ink, junk dark ink, every default and preset dark ink) and normalizeHex (#fa0 -> #ffaa00, rebeccapurple -> #663399, oklch(0.7 0.15 30) -> #ed7665, rgb(10 20 30 / 0.5) -> #0a141e, oklch(0.7 0.4 30) -> #ff0000, garbage and empty -> null); pnpm check 0 errors 0 warnings; pnpm build ok
1d ago
app.css
app: zoom rules reach the scrollers — pinch still zoomed the installed app because html/body/#app are pinned to 100% height, so nearly every touch lands inside an internal scroller (WeekGrid, DayColumn, MonthView, DetailsPanel) and touch-action stops intersecting at a scroll container: the html pan-x pan-y and body manipulation never reached them. Both now sit on * — manipulation everywhere (no double-tap zoom), pan-x pan-y under display-mode: standalone (no pinch) — and *'s zero specificity leaves the drag surfaces' scoped touch-action: none in charge. comdb gets away with the html/body version because its document is the scroller
5d ago
App.svelte
app: swipe sideways to page the board — a one-finger flick over Day, 3 Day or Week steps it like ←/→ (a day, the window by a day, a week), with a light haptic and a 180ms slide-in (skipped under reduced motion). Touch events, passive, judged on lift: axis locks after 10px so a scroll that starts vertical stays one; needs ≥60px, |dx| ≥ 2|dy|, under 700ms. Ignored from the 24px screen edges (Safari's back swipe), text fields/editors, sideways scrollers, and while a drag, marquee, inline edit, details panel or context menu owns the touch. Month is excluded (its grid scrolls sideways on phones) and Someday sits outside the wrapper. Verified in the preview at 375px with synthesized touches: day 10-05→06→07→06, week 10-12→19→12, 3 Day 10-13→14; month, Someday, vertical-ish and edge swipes don't move
3d ago
main.ts
app: private mode syncs direct to the PDS via atproto Spaces — HappyView retired
2w ago