feat(widget): widget redesign and new Today/Up next/Lists/Week widgets (#33)

Reworks the home-screen widgets on top of #32.

- Tasks widget: agenda-style rows, a row-colour setting, an "All caught up" empty state
- Drops "At a glance" (it duplicated the Tasks widget) for four new widgets: Today (progress ring + today's tasks), Up next (the nearest due task, optionally from one list), Lists (adaptive shortcut grid), Week (day strip with counts)
- Ticking a task in any widget shows a done frame before the row goes away
- Shared Glance primitives live in floret-kit (`feat/glance-module`): progress ring, tiles, check button, header action pill, expressive shapes, done state

Today and Up next don't offer the transparent background, since their content isn't in containers and is unreadable on the wallpaper. No issue behind this one; it came out of reviewing the widgets on-device.

Co-authored-by: Jean-Luc Makiola <business@jeanlucmakiola.de>
Reviewed-on: https://codeberg.org/jlmakiola/agendula/pulls/33
This commit is contained in:
Jean-Luc Makiola
2026-10-05 18:49:08 +02:00
committed by makiolaj
co-authored by makiolaj
parent 9630bd104d
commit 9a87837917
43 changed files with 2615 additions and 581 deletions
+58 -1
View File
@@ -757,11 +757,68 @@
<!-- Home-screen widget -->
<string name="widget_tasks_label">Tasks</string>
<string name="widget_tasks_description">Today\'s tasks, or any list, with a tap to tick them off</string>
<string name="widget_empty">Nothing to do here</string>
<string name="widget_empty">All caught up</string>
<string name="widget_empty_hint">Nothing left to do, enjoy it</string>
<string name="widget_unavailable">Open Agendula to finish setting up</string>
<string name="widget_complete_task">Complete %1$s</string>
<string name="widget_config_title">Show in widget</string>
<string name="widget_config_smart_lists">Smart lists</string>
<string name="widget_config_group_by_list">Group by list</string>
<string name="widget_config_group_by_list_hint">Show each list\'s tasks under its own heading</string>
<string name="widget_section_overdue">Overdue</string>
<string name="widget_section_later">Later</string>
<string name="widget_section_no_date">No date</string>
<string name="widget_config_background">Background</string>
<string name="widget_config_background_solid">Solid</string>
<string name="widget_config_background_solid_hint">Fills the widget with the theme\'s surface colour</string>
<string name="widget_config_background_tinted">Tinted</string>
<string name="widget_config_background_tinted_hint">A softer, tonal fill</string>
<string name="widget_config_background_transparent">Transparent</string>
<string name="widget_config_background_transparent_hint">No fill — tasks stay readable in their own containers</string>
<string name="widget_config_theme">Theme</string>
<string name="widget_config_theme_follow_app">Follow app</string>
<string name="widget_config_theme_light">Light</string>
<string name="widget_config_theme_dark">Dark</string>
<string name="widget_config_row_color">Row colour</string>
<string name="widget_config_row_color_neutral">Neutral</string>
<string name="widget_config_row_color_neutral_hint">Every row uses the same tonal fill</string>
<string name="widget_config_row_color_by_list">By list</string>
<string name="widget_config_row_color_by_list_hint">Each row is tinted with its list\'s own colour</string>
<string name="widget_today_label">Today</string>
<string name="widget_today_description">A progress ring for today\'s tasks</string>
<string name="widget_today_all_done">All done</string>
<string name="widget_today_nothing_due">Nothing due today</string>
<plurals name="widget_today_progress_cd">
<item quantity="one">%1$d of %2$d done</item>
<item quantity="other">%1$d of %2$d done</item>
</plurals>
<string name="widget_up_next_label">Up next</string>
<string name="widget_up_next_description">Your single nearest due task</string>
<string name="widget_up_next_empty">Nothing due</string>
<string name="widget_up_next_soon">Soon</string>
<string name="widget_up_next_tomorrow">Tomorrow</string>
<string name="widget_up_next_then">Then</string>
<string name="widget_up_next_any_list">All lists</string>
<plurals name="widget_up_next_in_hours">
<item quantity="one">in %1$d h</item>
<item quantity="other">in %1$d h</item>
</plurals>
<plurals name="widget_up_next_in_days">
<item quantity="one">in %1$d d</item>
<item quantity="other">in %1$d d</item>
</plurals>
<plurals name="widget_up_next_overdue_hours">
<item quantity="one">%1$d h overdue</item>
<item quantity="other">%1$d h overdue</item>
</plurals>
<plurals name="widget_up_next_overdue_days">
<item quantity="one">%1$d d overdue</item>
<item quantity="other">%1$d d overdue</item>
</plurals>
<string name="widget_lists_label">Lists</string>
<string name="widget_lists_description">A shortcut tile per list, with its open count</string>
<string name="widget_lists_empty">No lists to show</string>
<string name="widget_lists_config_title">Lists to show</string>
<string name="widget_week_label">Week</string>
<string name="widget_week_description">A seven-day strip of task counts</string>
</resources>