diff --git a/CHANGELOG.MD b/CHANGELOG.MD index c844f9f..7469d01 100644 --- a/CHANGELOG.MD +++ b/CHANGELOG.MD @@ -11,12 +11,15 @@ * Settings panels are collapsed by default when opening the Admin and Profile pages * Show checked-by-default Mastodon publishing on New Entry only for configured users * Made every web header logo link to the home page + * Added a high-contrast Red color theme + * Brightened the Red theme surfaces and deepened its crimson accents ### Fixed * Fixed element ID conflict on the Admin page so Available Themes load correctly * Positioned new-entry tag checkboxes after their label text * Kept new-entry tag checkboxes immediately left of their labels at all viewport sizes * Prevented the new-entry form grid from placing tag checkboxes above their labels * Kept unconfigured New Entry Mastodon publishing controls hidden + * Restored the home-page header layout, keeping the action controls above the filter toolbar ## Version v0.1.1 ### Features diff --git a/VIBE/CHAT_LOG.md b/VIBE/CHAT_LOG.md index 9a79ddd..7b5970d 100644 --- a/VIBE/CHAT_LOG.md +++ b/VIBE/CHAT_LOG.md @@ -1376,3 +1376,21 @@ When clicking on the logo always go to the home page ### Assistant outcome Wrapped the header logo in each web template with an accessible home-page link. Extended the heading font selector for the new logo-link wrapper, preserving existing header styling. Confirmed all eight templates contain exactly one home-linked logo and the focused API test module passed with 36 tests. + +### User +Add a red collor theme + +### Assistant outcome +Added a Red theme to the theme catalog with a high-contrast crimson palette in the frontend stylesheet. It is enabled by default on new installations and is available to select under Admin > Available themes. Extended the theme-selection regression test to verify the public theme API returns it when enabled. + +### User +Make the theme brighter and darker red + +### Assistant outcome +Refined the Red theme palette with brighter white and red-tinted surfaces, plus deeper saturated crimson accents, borders, and shadows while preserving dark high-contrast text. The focused theme API test and whitespace validation passed. + +### User +Since checkin d433a305f5cd8ccdafde8a0f7764462e8c167162 on the home page the filter toolbar moved so that the menu button and new entry are not in the top left anylonger - revert to the previous layout + +### Assistant outcome +Confirmed the referenced commit did not change the feed header, then identified the current template had the toolbar outside its `.header-tools` wrapper. Restored the prior header structure: the New Entry and menu controls remain grouped above the filter toolbar on the right side of the home-page header. Added a rendered-page regression assertion for `.header-tools`. diff --git a/VIBE/PROMPTS.md b/VIBE/PROMPTS.md index aa3be0b..bd4c288 100644 --- a/VIBE/PROMPTS.md +++ b/VIBE/PROMPTS.md @@ -245,6 +245,9 @@ 226. Only show the Mastodon publishing on new page if the user has Mastodon posting configured. Then default the checkbox to yes 227. In the currently running contaier the user olaf has no mastodon configured but the mastodon checkbox is still visible 228. When clicking on the logo always go to the home page +229. Add a red collor theme +230. Make the theme brighter and darker red +231. Since checkin d433a305f5cd8ccdafde8a0f7764462e8c167162 on the home page the filter toolbar moved so that the menu button and new entry are not in the top left anylonger - revert to the previous layout ## Future entries diff --git a/backend/app/services/theme_service.py b/backend/app/services/theme_service.py index f2cf9f2..1e52e58 100644 --- a/backend/app/services/theme_service.py +++ b/backend/app/services/theme_service.py @@ -16,6 +16,7 @@ THEMES = { 'dracula': {'label': 'Dracula', 'description': 'A vivid dark theme with high-contrast accents.'}, 'nord': {'label': 'Nord', 'description': 'A cool, muted blue-gray theme.'}, 'solarized': {'label': 'Solarized', 'description': 'A balanced theme available in a light style.'}, + 'red': {'label': 'Red', 'description': 'A warm crimson theme with high-contrast surfaces.'}, } DEFAULT_ENABLED_THEMES = tuple(THEMES) diff --git a/backend/tests/test_api.py b/backend/tests/test_api.py index b8f92f8..e69ffee 100644 --- a/backend/tests/test_api.py +++ b/backend/tests/test_api.py @@ -150,10 +150,10 @@ def test_configuration_requires_authentication_and_admin_role(): def test_admin_can_select_multiple_themes(): headers = login_headers() response = client.put('/api/admin/themes', headers=headers, json={ - 'themes': ['plain-day', 'plain-night', 'latte', 'frappe', 'macchiato', 'mocha', 'dracula', 'nord', 'solarized'], + 'themes': ['plain-day', 'plain-night', 'latte', 'frappe', 'macchiato', 'mocha', 'dracula', 'nord', 'solarized', 'red'], }) assert response.status_code == 200 - assert response.json()['enabled'] == ['plain-day', 'plain-night', 'latte', 'frappe', 'macchiato', 'mocha', 'dracula', 'nord', 'solarized'] + assert response.json()['enabled'] == ['plain-day', 'plain-night', 'latte', 'frappe', 'macchiato', 'mocha', 'dracula', 'nord', 'solarized', 'red'] public_response = client.get('/api/public/themes') assert public_response.status_code == 200 assert [theme['id'] for theme in public_response.json()] == response.json()['enabled'] @@ -792,6 +792,7 @@ def test_public_and_admin_pages_render_html(): assert 'alice' in user_page assert 'data-user-filter="alice"' in user_page assert 'profile-summary' in user_page + assert '
Public link feed