Here's a few options from gemini on how I imagine this would be implemented, I think the smart toggle makes the most sense for my use case, since the ascending/descending value would remain per sort option. I would likely leave the Level option in reverse while I might change the Topic option sort direction more frequently. The directional switch option would make this more of a hassle. The explicit list seems like it would have too many sort options and be less clean but would be easier to implement.
Option 1: The "Smart Toggle" (Best for Clean UI)
In this version, clicking an option (like "Date") sorts it in the default direction. Clicking the same option again reverses it.
• How it works: * Click "Date" -> Newest first (Arrow appears: ⬇️).
o Click "Date" again -> Oldest first (Arrow flips: ⬆️).
o Click "Random" -> List shuffles (No arrow appears).
• The "Random" Exception: Since "Random" doesn't have a logical reverse, clicking it again simply triggers a new shuffle. You visually omit the sort arrow for this specific option so the user doesn't expect a toggle.
Option 2: The "Directional Switch" (Best for Power Users)
Place a single "Ascending/Descending" toggle at the very top or bottom of your sort menu.
• How it works: The user selects the attribute (Date, Topic, etc.) and then toggles the direction switch.
• The "Random" Exception: When "Random" is selected, you disable or hide the Asc/Desc switch.
• Pros: It makes the "Reverse" capability explicit and discoverable.
• Cons: Requires two taps if the user wants to change both the attribute and the direction.
Option 3: The "Explicit List" (Best for Mobile/Accessibility)
If you want to avoid "hidden" logic (like double-clicking), you can list the directions as separate items. However, to keep the menu from getting too long, use a Nested Menu or Expandable Sections.
• How it works: * The menu shows: Date, Topic, Size, Author, Price, Random.
o Tapping "Date" expands to show two sub-options: "Newest" and "Oldest."
o Tapping "Random" simply executes the sort immediately.
• Pros: Very clear; great for screen readers.