Create your own design: Standard TV style, roomier phone cards, reasons clear of the buttons
pauljd/davidson-ci: Davidson CI / quality (push) Failing after 1m52s
pauljd/davidson-ci: Davidson CI / ai-review (push) Failing after 1m34s

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-11-06 08:31:02 +00:00
co-authored by Claude Opus 5.5
parent caef801652
commit cdc8528d77
4 changed files with 14 additions and 9 deletions
+14 -9
View File
@@ -79,7 +79,12 @@ props = [('The X-Files', 'Series · 1993 · 202 episodes', 'Sci-fi, 1990s, myste
for i, (t, d, why) in enumerate(props):
y = 350 + i * 130; focus = i == 0
box(80, y, 1060, 112, fill=NAVY if focus else PANEL, r=12, outline=YELLOW if focus else None, width=4)
text((110, y + 14), t, semi(32), WHITE); text((110, y + 58), d, reg(22), MUTED); text((560, y + 22), why, reg(24), WHITE)
text((110, y + 14), t, semi(32), WHITE); text((110, y + 58), d, reg(22), MUTED)
words = why.split(); lines = ['']
for wd in words:
if D().textlength((lines[-1] + ' ' + wd).strip(), font=reg(23)) / SS > 300: lines.append(wd)
else: lines[-1] = (lines[-1] + ' ' + wd).strip()
for k, ln in enumerate(lines[:2]): text((540, y + 22 + k * 32), ln, reg(23), WHITE)
box(890, y + 30, 110, 52, fill=YELLOW if focus else BLUE, r=10); text((945, y + 38), 'Add', semi(26), NAVY if focus else WHITE, 'ma')
box(1015, y + 30, 100, 52, fill=BLUE, r=10); text((1065, y + 38), 'Skip', semi(26), WHITE, 'ma')
box(1200, 310, 640, 640, fill=(10, 30, 66), r=16)
@@ -93,10 +98,10 @@ save('create-2-shows.png')
# 3. How it plays, and when it's on.
screen()
head('How it plays', 'One style for the whole channel; you can change it later. It shapes what\'s planned from then on, never what\'s booked.', 'Step 3 of 4')
styles = [('In order', 'Each show from where it left off,', 'taking turns with the others'), ('Shuffled', 'Episodes in a mixed order,', 'every one before any repeats'),
('Blocks', 'Half-hour or hour slots by show;', 'short episodes grouped as on ToonZ'), ('Marathon', 'One show at a time, several', 'episodes back to back')]
styles = [('Standard TV', 'As Orbit\'s own channels: shows take', 'turns, episodes in order, shorts in slots'), ('Shuffled', 'Episodes in a mixed order,', 'every one before any repeats'),
('Blocks', 'A timetable: each show at its own', 'times, like The X-Files at 9 nightly'), ('Marathon', 'One show at a time, several', 'episodes back to back')]
for i, (t, a, b) in enumerate(styles):
x = 80 + i * 450; focus = i == 2
x = 80 + i * 450; focus = i == 0
box(x, 220, 420, 300, fill=NAVY if focus else PANEL, r=16, outline=YELLOW if focus else None, width=4)
for k in range(3 if i != 3 else 1):
for j in range(4 if i != 3 else 6):
@@ -109,7 +114,7 @@ w = chip(80, 620, 'All day', True); w2 = chip(80 + w + 20, 620, 'Evenings, 18:00
text((80, 700), 'Outside its hours the channel shows a "back at 18:00" card, as Kids sees a channel that\'s asleep.', reg(24), MUTED)
box(80, 780, 1760, 150, fill=(10, 30, 66), r=16)
box(110, 810, 200, 90, fill=(40, 20, 70), r=10); text((210, 828), '701', anton(44), YELLOW, 'ma')
text((340, 812), '90s Sci-Fi', anton(40), WHITE); text((340, 866), 'Yours · 7 shows · Blocks · All day · planned like any Orbit channel', reg(24), MUTED)
text((340, 812), '90s Sci-Fi', anton(40), WHITE); text((340, 866), 'Yours · 7 shows · Standard TV · All day · planned like any Orbit channel', reg(24), MUTED)
keys([('◄►', 'Style'), ('▼', 'Hours'), ('OK', 'Choose'), ('Back', 'Shows')])
save('create-3-style.png')
@@ -120,10 +125,10 @@ phone(120, 190); x = 150
text((x + 20, 240), 'Orbit', anton(40), WHITE); text((x + 20, 292), 'Living Room TV · connected', reg(22), GREEN)
text((x + 20, 340), 'YOUR CHANNELS', semi(20), MUTED)
for i, (n, t, s) in enumerate([('701', '90s Sci-Fi', 'Blocks · All day'), ('702', 'Sunday Westerns', 'Marathon · Sundays'), ('703', 'Cartoon Club', 'Shuffled · 07:00 to 12:00')]):
y = 376 + i * 130
box(x + 12, y, 346, 114, fill=PANEL, r=14); text((x + 32, y + 14), n, semi(24), YELLOW); text((x + 90, y + 12), t, semi(28), WHITE); text((x + 32, y + 56), s, reg(20), MUTED)
box(x + 32, y + 78, 150, 28, fill=BLUE, r=8); text((x + 107, y + 80), 'Watch on TV', semi(18), WHITE, 'ma')
box(x + 196, y + 78, 90, 28, fill=BLUE, r=8); text((x + 241, y + 80), 'Edit', semi(18), WHITE, 'ma')
y = 376 + i * 136
box(x + 12, y, 346, 120, fill=PANEL, r=14); text((x + 32, y + 12), n, semi(24), YELLOW); text((x + 90, y + 10), t, semi(28), WHITE); text((x + 32, y + 50), s, reg(20), MUTED)
box(x + 32, y + 82, 150, 28, fill=BLUE, r=8); text((x + 107, y + 84), 'Watch on TV', semi(18), WHITE, 'ma')
box(x + 196, y + 82, 90, 28, fill=BLUE, r=8); text((x + 241, y + 84), 'Edit', semi(18), WHITE, 'ma')
box(x + 12, 790, 346, 70, fill=YELLOW, r=14); text((x + 185, 808), '+ Create a channel', semi(28), NAVY, 'ma')
phone(640, 190); x = 670
text((x + 20, 240), 'New channel', anton(36), WHITE); text((x + 20, 290), 'Step 2 of 4 · Shows', reg(22), MUTED)
Binary file not shown.

Before

Width:  |  Height:  |  Size: 256 KiB

After

Width:  |  Height:  |  Size: 257 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 216 KiB

After

Width:  |  Height:  |  Size: 225 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 331 KiB

After

Width:  |  Height:  |  Size: 331 KiB