Commit Graph

643 Commits

Author SHA1 Message Date
Alex Gleason 5ca237e8a6 Include 'e' tag in active theme deletion events
Pass the event ID of the active profile theme to clearActiveTheme so
the kind 5 deletion includes both an 'a' tag and an 'e' tag. Updated
all call sites (ThemeSelector and EditProfileForm).
2026-02-26 04:12:31 -06:00
Alex Gleason 808d44aeff Reconcile theme settings changes and add share toggle
Merge upstream changes with the theme settings refactor. Adds a
'Display my theme to others' toggle that publishes a kind 11667
active profile theme event when enabled and issues a kind 5 deletion
when disabled. Split /settings/appearance into /settings/theme and
/settings/content. Move theme builder to /settings/theme/edit.
2026-02-26 04:10:23 -06:00
Alex Gleason 2ef7d3873a Merge branch 'main' of gitlab.com:soapbox-pub/ditto-mew 2026-02-26 03:57:30 -06:00
Chad Curtis c4723ccd41 Reconcile upstream changes with mobile nav refactor 2026-02-26 03:53:15 -06:00
Chad Curtis 68f0dd742a Refactor mobile nav with shared sidebar components and improved drawer UX 2026-02-26 03:51:33 -06:00
Alex Gleason 230e43d365 Add Theme as an optional sidebar item
Add 'theme' to BUILTIN_SIDEBAR_ITEMS so it can be added to the left
sidebar via the More menu or drag-and-drop. Uses the Paintbrush icon
and navigates to /settings/theme. Active state detection distinguishes
it from the general Settings highlight.
2026-02-26 03:31:46 -06:00
Alex Gleason ff6c9c5b67 Move color editor above the themes grid 2026-02-26 03:25:32 -06:00
Alex Gleason 0913111f64 Always show color editor, remove Custom button
The color pickers are now always visible below the theme grid,
reflecting the effective colors of whatever theme is active. Changing
a color automatically switches to a custom theme. Removed the
explicit Custom card and the customSelected state tracking.
2026-02-26 03:23:41 -06:00
Alex Gleason 304da7780e Replace My Themes section with inline Custom theme editor
Remove 'Create Theme' and 'Public Themes' buttons from the theme
selector. Add a 'Custom' option at the end of the presets grid that
opens an inline color editor (background, text, primary) with live
preview. The Custom option auto-selects on page load when the active
theme doesn't match any preset.
2026-02-26 03:17:40 -06:00
Alex Gleason 69875bd57a Split /settings/appearance into /settings/theme and /settings/content
Replace the tabbed Appearance settings page with two separate pages:
- /settings/theme for theme selection
- /settings/content for feed and content preferences

Move the theme builder from /settings/theme to /settings/theme/edit to
avoid the route conflict. Update all navigation links across the codebase.
2026-02-26 03:11:04 -06:00
Alex Gleason 29a9a0f36c Merge branch 'add-custom-theme-editor-ui' 2026-02-26 02:28:23 -06:00
Alex Gleason 28e10e4daf Use muted-foreground color for mobile top bar menu icon 2026-02-26 02:27:53 -06:00
Alex Gleason 7836dc34d1 Move menu button to right side of mobile top bar 2026-02-26 02:27:19 -06:00
Alex Gleason 62e1bc90cf Move menu to left, center logo in mobile top bar 2026-02-26 02:26:07 -06:00
Alex Gleason f1aae4c027 Move Edit sidebar to bottom of More menu 2026-02-26 00:59:52 -06:00
Alex Gleason 8be85e50a2 Align More menu padding and hover styles across all items 2026-02-26 00:59:17 -06:00
Alex Gleason e25168e4ce Use subtle secondary hover for More menu item links 2026-02-26 00:58:16 -06:00
Alex Gleason 3e51984567 Fix More menu: separate link and + button hover states, close on click 2026-02-26 00:57:20 -06:00
Alex Gleason 7582266de2 Redesign More menu: items navigate on click, + button adds to sidebar 2026-02-26 00:54:02 -06:00
Alex Gleason 4c5e2fb72d Restore gap-0.5 between sidebar nav items 2026-02-26 00:47:37 -06:00
Alex Gleason 438c59b0b4 Move search bar from right sidebar into left sidebar permanently 2026-02-26 00:45:32 -06:00
Alex Gleason 863ef9114c Show 'Edit sidebar' button directly when no hidden items remain 2026-02-26 00:43:10 -06:00
Alex Gleason ff3e9b3f53 Fix Edit sidebar icon hover state to match other dropdown items 2026-02-26 00:41:53 -06:00
Alex Gleason f138d8ebee Show 'Done editing' as a standalone button instead of inside the More menu 2026-02-26 00:41:27 -06:00
Alex Gleason a00a3433c4 Add Search as a configurable sidebar item, replacing Trends in the default order 2026-02-26 00:37:22 -06:00
Alex Gleason 6ba47d15a8 Decouple sidebar item IDs from route paths
Add explicit `id` field to ExtraKindDef and remove the `__` prefix
convention for built-in items. Item IDs are now plain strings that don't
need to match URL paths. Route resolution goes through the definition's
`route` field instead of assuming id === route.
2026-02-26 00:32:54 -06:00
Alex Gleason 83d532e699 Make all sidebar items configurable including Profile, Settings, and Notifications 2026-02-26 00:22:23 -06:00
Alex Gleason 860a2920e6 Remove separators between logo and nav items in left sidebar 2026-02-25 23:59:13 -06:00
Alex Gleason 3732843fd4 Reduce core theme colors to 3 (primary, text, background) and reorder UI
Remove the secondary/accent color from user-level configuration. The
Tailwind 'accent' token now mirrors 'primary' directly. CoreThemeColors
is now { background, text, primary } — 3 fields instead of 4.

- deriveTokensFromCore() takes 3 params; accent = primary
- Theme builder shows pickers in order: Primary, Text, Background
- Backward-compatible parsing for old 4-color and 19-token formats
- Color swatches reordered to primary, text, background everywhere
2026-02-25 23:55:01 -06:00
Alex Gleason 71c66e1465 Use secondary (accent) color for the floating compose button 2026-02-25 23:26:32 -06:00
Alex Gleason 4f2eb23a62 Replace accent color with foreground/neutral in nav, headings, and emoji picker
The accent (secondary) color is now gold/amber which looks wrong for
active nav states, section titles, and interactive backgrounds. Change
these to use foreground or neutral surface colors instead:

- Left sidebar active items: text-accent -> text-foreground
- Right sidebar headings: text-accent -> text-foreground
- Mobile bottom nav active items: text-accent -> text-foreground
- Mobile explore drawer active items: text-accent -> text-foreground
- Quick react emoji picker: hover:bg-accent -> hover:bg-secondary
- Section labels (Explore, Settings, My Themes): text-accent/70 -> text-muted-foreground
- Search page trending heading and Rising tab: text-accent -> text-foreground/text-primary
- Sidebar theme palette icon: text-accent -> text-primary
2026-02-25 23:22:39 -06:00
Alex Gleason 8d03d32b0d Simplify theme system to 4 core colors (background, text, primary, secondary)
Replace the 19-token ThemeTokens interface with a 4-field CoreThemeColors
for config storage, Nostr events, and encrypted settings. All other
Tailwind CSS tokens (card, muted, border, etc.) are now derived
automatically via deriveTokensFromCore().

- Add CoreThemeColors interface: { background, text, primary, secondary }
- Keep ThemeTokens as internal type for CSS variable injection
- Update builtinThemes and themePresets to store CoreThemeColors
- Add backward-compatible parsing for legacy 19-token format in Nostr
  events, encrypted settings, and localStorage
- Simplify ThemeBuilderPage: remove Surface/UI color sections, just 4
  color pickers with auto-derivation always on
- Update all consumers: ThemeSelector, ScopedTheme, ThemeUpdateCard,
  MobileDrawer, LeftSidebar, ProfilePage, InitialSyncGate, etc.
2026-02-25 22:46:27 -06:00
Chad Curtis 787676e014 Fix FAB safe-area offset on Android and generate video preview thumbnails via canvas 2026-02-25 21:44:43 -06:00
Mary Kate Fain 69ec0e4c8d Merge sidebar-redesign: new mobile nav tabs, hamburger drawer, onboarding theme presets 2026-02-25 19:48:55 -06:00
Mary Kate Fain 0c415ca4a1 Restore plus icon on More dropdown trigger 2026-02-25 19:41:29 -06:00
Mary Kate Fain 14ebc63aa9 Move sidebar edit option into More dropdown menu, remove pencil from section header 2026-02-25 19:39:14 -06:00
Mary Kate Fain 504a8bb0f7 Fix builtin sidebar items being re-added after removal
- Stop auto-appending missing builtins when persisted sidebarOrder exists
- Removed builtins now stay removed and appear in 'More...' add menu
- Filter auth-required builtins from hidden items when logged out
2026-02-25 19:34:01 -06:00
Mary Kate Fain 633985ad81 Remove section titles from desktop sidebar, keep divider lines 2026-02-25 19:13:18 -06:00
Mary Kate Fain 5fafe9c8a7 Simplify profile theme: swap global CSS vars instead of scoped theme wrapper
- Remove ScopedThemeColumns, scopedThemeTokens from LayoutContext and MainLayout
- Profile page now temporarily overrides :root CSS vars with the visited user's theme
- On navigation away, user's own theme is restored via effect cleanup
- Entire page (sidebar, center, right) uses the profile theme
- Removed all display:contents and background extension hacks
2026-02-25 18:36:31 -06:00
Mary Kate Fain 11e779e79b Extend scoped theme background to right viewport edge 2026-02-25 18:24:35 -06:00
Mary Kate Fain 36d80c2f92 Fix scoped theme: proper flex container instead of display:contents, explicit bg-background + text-foreground 2026-02-25 18:16:46 -06:00
Mary Kate Fain d31e9e9e25 Fix profile theme coverage: full-width background layer, ensure text colors inherit through scoped theme 2026-02-25 18:10:24 -06:00
Mary Kate Fain 1828ffb69d Apply profile theme to entire center + right columns via layout-level ScopedTheme
- Added scopedThemeTokens to LayoutOptions
- MainLayout wraps center + right columns in ScopedTheme (display:contents)
- Profile page passes theme tokens via useLayoutOptions instead of local wrapper
- Center column and ProfileRightSidebar use bg-background for scoped theme fill
- Removed ProfileThemeWrapper component (no longer needed)
2026-02-25 18:02:29 -06:00
Mary Kate Fain 0b1e0c0abd Move Bookmarks from 'You' section to configurable Explore section
- Added __bookmarks as a builtin sidebar item alongside Feed and Trends
- Bookmarks is now reorderable and removable like other Explore items
- Added requiresAuth flag to hide it when logged out
- Removed hardcoded Bookmarks from You section (desktop) and mobile drawer
- Added bookmark icons to all three nav components (sidebar, drawer, bottom nav)
2026-02-25 17:40:18 -06:00
Mary Kate Fain c530543156 Fix ESLint errors: remove unused imports and variables 2026-02-25 17:27:12 -06:00
Mary Kate Fain 25fd420de1 FAB on Public Themes page navigates to Create New Theme 2026-02-25 17:16:20 -06:00
Mary Kate Fain d65959300f Fix 'Create Theme' starting fresh, add editable title/description in header
- 'Create Theme' link uses ?new param to force fresh state (dark preset, no editing context)
- Auto-match effect skips when ?new or ?edit is in URL
- '+' button in header updates URL to ?new
- Clicking theme title in header opens metadata edit dialog (pencil icon hint)
- Metadata-only updates don't re-set active profile theme
2026-02-25 16:53:09 -06:00
Mary Kate Fain dda23b8fdf Rework theme builder layout: color bar, dropdown starter, auto-derive below core colors, edit own themes in feed
- Core color bar across top showing background/foreground/primary/accent
- 'Start from existing theme' dropdown replacing preset grid (groups: My Themes, Builtin, Presets)
- Auto-derive toggle moved below core colors section
- Edit pencil on own themes in the /themes feed (others see Copy)
2026-02-25 16:48:09 -06:00
Mary Kate Fain 6fd51d1067 Fix theme switching: click to apply theme, hover edit icon to open builder 2026-02-25 16:40:26 -06:00
Mary Kate Fain 0774ee2ac5 Restructure theme selector: My Themes section at top with Create/Edit, presets below
- 'My Themes' section at top with 'Create Theme' card + user's published themes
- Clicking a user theme applies it AND navigates to the builder to edit it (?edit=identifier)
- 'Browse Public Themes' card in My Themes section
- Presets section below with System/Light/Dark + all preset themes
- Removed 'Customize your own theme' bottom link (replaced by Create Theme card)
- Theme builder handles ?edit= param to load the correct theme with editing context
2026-02-25 16:37:58 -06:00