feat: UI modernization — Manrope font, dark/light theme, card-based layouts
Some checks failed
CI / test (push) Successful in 1m48s
CI / release (push) Failing after 29s
CI / docker (push) Has been skipped

- Add Manrope as primary UI font via Google Fonts (wiregui/pages/style.py)
- Add dark/light/auto theme toggle in header, persisted to users.theme_preference
- Alembic migration for theme_preference column
- Redesign account page with card-based layout matching admin pages
- Convert settings page from tabs to stacked cards
- Replace all outline buttons with solid unelevated buttons
- Fix dark mode: remove hardcoded bg-grey-1/text-grey-7, use theme-safe colors
- Fix CI: add ca-certificates to release job for SSL cert verification
- Add no-coauthor and commit conventions to CLAUDE.md
This commit is contained in:
Stefano Bertelli 2026-03-30 21:40:29 -05:00
parent 3601de3600
commit 1fc80b9c0a
17 changed files with 550 additions and 451 deletions

View file

@ -0,0 +1,27 @@
"""add theme_preference to users
Revision ID: a3f1d8e92b01
Revises: 0741bc76e748
Create Date: 2026-03-30 22:00:00.000000
"""
from typing import Sequence, Union
from alembic import op
import sqlalchemy as sa
import sqlmodel
# revision identifiers, used by Alembic.
revision: str = 'a3f1d8e92b01'
down_revision: Union[str, None] = '0741bc76e748'
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None
def upgrade() -> None:
op.add_column('users', sa.Column('theme_preference', sqlmodel.sql.sqltypes.AutoString(), nullable=False, server_default='auto'))
def downgrade() -> None:
op.drop_column('users', 'theme_preference')