Commit Graph

976 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 7bbd992ae5 Fix add/remove sidebar items materializing the default order first
When sidebarOrder was empty (fresh install), addToSidebar and
removeFromSidebar would spread the empty array and append/filter,
producing an array with just the new item. Now they fall back to
the computed orderedItems (the default order) before mutating.
2026-02-26 00:39:24 -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 30368e89ce Use normal text color for hashtags and active tabs on search page 2026-02-26 00:08:55 -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 d0ccb65f42 Use gold/amber as secondary color for default light/dark themes
Replace the blue secondary (hue 225) with a complementary gold/amber
(hue 47) that pairs well with the purple primary (hue 258).
2026-02-25 23:13:46 -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
Chad Curtis a2f0397c0c Scale down adaptive icon foreground to 70% for proper safe-zone fit 2026-02-25 21:28:01 -06:00
Mary Kate Fain c9586e8ea5 Remove unused Plus import 2026-02-25 20:49:53 -06:00
Mary Kate Fain 59f27bb7f3 Right-align Preview and Update actions in theme editor header 2026-02-25 20:27:01 -06:00
Mary Kate Fain db050849b6 Reorganize theme editor header: Use/Active top-right, text-link actions below 2026-02-25 20:26:08 -06:00
Mary Kate Fain 8daa3ce96f Move action buttons to second row beneath title in theme editor header 2026-02-25 20:24:40 -06:00
Mary Kate Fain 4f7962301b Remove redundant 'new theme' button from theme editor header 2026-02-25 20:20:27 -06:00
Mary Kate Fain 2c1ef510e0 Add quick 'Use' button to apply theme while editing
When editing a published theme, a 'Use' button now appears in the header
to quickly apply it as the current active theme. Shows 'Active' with a
check icon when the theme is already applied.
2026-02-25 20:19:09 -06:00
Mary Kate Fain 611bd83325 Fix theme definition deletion by including event ID in kind 5 request
The deleteTheme function was only using an 'a' tag (addressable event
coordinate) in the kind 5 deletion event. Added an 'e' tag with the
specific event ID so the relay can match the deletion to the exact event.
Both tags are now included per NIP-09 for maximum compatibility.
2026-02-25 20:08:19 -06:00
Mary Kate Fain 991eb69a7d Fix active theme deletion by adding required 'a' tag to kind 5 event
The clearActiveTheme function was publishing a kind 5 deletion request
with only a 'k' tag. Per NIP-09, deletion requests must include 'e' or
'a' tags referencing the event to delete. Without the 'a' tag, relays
had no way to identify which event to delete and ignored the request.
2026-02-25 19:59:10 -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 5b14f9fcdf Add primary/accent colors to trends page: hashtag pills, section heading, per-mode sort tab colors 2026-02-25 19:18:33 -06:00