Red theme and regression
This commit is contained in:
@@ -11,12 +11,15 @@
|
|||||||
* Settings panels are collapsed by default when opening the Admin and Profile pages
|
* 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
|
* Show checked-by-default Mastodon publishing on New Entry only for configured users
|
||||||
* Made every web header logo link to the home page
|
* 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
|
||||||
* Fixed element ID conflict on the Admin page so Available Themes load correctly
|
* Fixed element ID conflict on the Admin page so Available Themes load correctly
|
||||||
* Positioned new-entry tag checkboxes after their label text
|
* Positioned new-entry tag checkboxes after their label text
|
||||||
* Kept new-entry tag checkboxes immediately left of their labels at all viewport sizes
|
* 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
|
* Prevented the new-entry form grid from placing tag checkboxes above their labels
|
||||||
* Kept unconfigured New Entry Mastodon publishing controls hidden
|
* 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
|
## Version v0.1.1
|
||||||
### Features
|
### Features
|
||||||
|
|||||||
@@ -1376,3 +1376,21 @@ When clicking on the logo always go to the home page
|
|||||||
|
|
||||||
### Assistant outcome
|
### 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.
|
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`.
|
||||||
|
|||||||
@@ -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
|
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
|
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
|
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
|
## Future entries
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ THEMES = {
|
|||||||
'dracula': {'label': 'Dracula', 'description': 'A vivid dark theme with high-contrast accents.'},
|
'dracula': {'label': 'Dracula', 'description': 'A vivid dark theme with high-contrast accents.'},
|
||||||
'nord': {'label': 'Nord', 'description': 'A cool, muted blue-gray theme.'},
|
'nord': {'label': 'Nord', 'description': 'A cool, muted blue-gray theme.'},
|
||||||
'solarized': {'label': 'Solarized', 'description': 'A balanced theme available in a light style.'},
|
'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)
|
DEFAULT_ENABLED_THEMES = tuple(THEMES)
|
||||||
|
|
||||||
|
|||||||
@@ -150,10 +150,10 @@ def test_configuration_requires_authentication_and_admin_role():
|
|||||||
def test_admin_can_select_multiple_themes():
|
def test_admin_can_select_multiple_themes():
|
||||||
headers = login_headers()
|
headers = login_headers()
|
||||||
response = client.put('/api/admin/themes', headers=headers, json={
|
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.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')
|
public_response = client.get('/api/public/themes')
|
||||||
assert public_response.status_code == 200
|
assert public_response.status_code == 200
|
||||||
assert [theme['id'] for theme in public_response.json()] == response.json()['enabled']
|
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 'alice' in user_page
|
||||||
assert 'data-user-filter="alice"' in user_page
|
assert 'data-user-filter="alice"' in user_page
|
||||||
assert 'profile-summary' in user_page
|
assert 'profile-summary' in user_page
|
||||||
|
assert '<div class="header-tools">' in user_page
|
||||||
feed_script = TestClient(app).get('/static/feed.js?v=4').text
|
feed_script = TestClient(app).get('/static/feed.js?v=4').text
|
||||||
assert 'window.location.assign(selectedUser ? `/${encodeURIComponent(selectedUser)}/` : \'/\')' in feed_script
|
assert 'window.location.assign(selectedUser ? `/${encodeURIComponent(selectedUser)}/` : \'/\')' in feed_script
|
||||||
assert client.get('/login').status_code == 200
|
assert client.get('/login').status_code == 200
|
||||||
|
|||||||
@@ -95,6 +95,15 @@
|
|||||||
--border: rgba(7, 54, 66, 0.18); --shadow: 0 18px 50px rgba(7, 54, 66, 0.14);
|
--border: rgba(7, 54, 66, 0.18); --shadow: 0 18px 50px rgba(7, 54, 66, 0.14);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:root[data-theme='red'] {
|
||||||
|
--base: #fffafa; --mantle: #ffedef; --crust: #fbd6da;
|
||||||
|
--surface-0: #ffffff; --surface-1: #ffe2e6; --surface-2: #f4bbc4;
|
||||||
|
--text: #350810; --subtext: #5c1724; --muted: #8c4653;
|
||||||
|
--mauve: #9e1737; --lavender: #86132d; --blue: #216f91;
|
||||||
|
--teal: #087567; --peach: #b84324; --red: #a70d2d;
|
||||||
|
--border: rgba(83, 10, 25, 0.2); --shadow: 0 18px 50px rgba(122, 8, 33, 0.2);
|
||||||
|
}
|
||||||
|
|
||||||
*,
|
*,
|
||||||
*::before,
|
*::before,
|
||||||
*::after {
|
*::after {
|
||||||
|
|||||||
@@ -16,7 +16,8 @@
|
|||||||
<a class="site-logo-link" href="/" aria-label="LinkLog home"><img class="site-logo" src="/static/logo.svg" alt="LinkLog" /></a>
|
<a class="site-logo-link" href="/" aria-label="LinkLog home"><img class="site-logo" src="/static/logo.svg" alt="LinkLog" /></a>
|
||||||
<p>Public link feed</p>
|
<p>Public link feed</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-actions">
|
<div class="header-tools">
|
||||||
|
<div class="header-actions">
|
||||||
<button id="new-entry-button" class="new-entry-button hidden" type="button"><a href="/new-entry">New entry</a></button>
|
<button id="new-entry-button" class="new-entry-button hidden" type="button"><a href="/new-entry">New entry</a></button>
|
||||||
<button class="menu-toggle" type="button" aria-expanded="false" aria-controls="auth-menu">Menu</button>
|
<button class="menu-toggle" type="button" aria-expanded="false" aria-controls="auth-menu">Menu</button>
|
||||||
<nav id="auth-menu" class="auth-menu hidden" aria-label="Account menu">
|
<nav id="auth-menu" class="auth-menu hidden" aria-label="Account menu">
|
||||||
|
|||||||
Reference in New Issue
Block a user