In my current approach, I spread the conditional expression, the truthy expression, and the falsey expression across three lines of code:
For me personally, this conditional ternary format leads to improved readability. The visual landscape makes it immediately apparent that I'm dealing with a ternary operator. In the past, my eye would have to scan across a complex expression before I even realized that there was a "?" operator in play. Now, however, the existence of the "?" and ":" tokens becomes immediately apparent, indicating that the first line is actually a "condition" and not an "assignment". This also creates clear differentiation between the truthy expression and the falsey expression.
Sticking to this format has also had the added benefit of curtailing overly-concise code. When I allowed myself to keep the entire conditional ternary operation on a single line, I was able to slip it inline into places like return() statements and function() invocations. Now, however, with the operator spread across three lines of code, it forces me to create intermediary variables which produces more expressive code and requires less cognitive load.
The conditional ternary operator is not a replacement for If/Else control flow. I reserve the use of the ternary operator for simple sets of expressions. Once the expressions start to get complicated, I'll revert to a more standard If/Else block, where I can more clearly pick-apart aspects of the logic.
I will, of course, continue to coarse-correct my approach to code formatting until I am completely happy with it; but, at least for the conditional ternary operator, this feels like the final format. This feels right. It feels easy to explain my choice and reasoning to others.