Join and Send are things you do, not states you are in
The accent fill is how this client says a thing is *on* — the mode tabs, the chat you are in, the composer's own toggles. Join and Send are neither on nor off: each does something and goes back to sitting there, so wearing the accent they read as a state that was somehow always true. Standard now, which in COSMIC is still a filled surface and still obviously a button. The Discover row's Join goes with them, being the same button one screen over — `Open` is that button with the other word on it and is no more stateful. Connect, Accept policy and the Chats toggle keep the accent: the first two are the one thing to do on the screen they are on, and the third really is a state. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
8dac959 parent: f4d18a5 modified
common/frq/screens/chat.cljc +4 -1 | @@ -1494,5 +1494,8 @@ | ||
| 1494 | 1494 | :on-change #(reset! cells/draft %) |
| 1495 | 1495 | :on-paste-empty actions/paste-image! |
| 1496 | 1496 | :on-activate actions/send-draft!}] |
| 1497 | - [:button {:label "Send" :kind :primary :valign :center | |
| 1497 | + ;; Standard, for the reason the Join button beside the room box is: | |
| 1498 | + ;; the accent says a thing is on, and Send is an action rather than a | |
| 1499 | + ;; state. Nothing about the composer is truer while it wears it. | |
| 1500 | + [:button {:label "Send" :valign :center | |
| 1498 | 1501 | :on-click actions/send-draft!}]]])) |
| @@ -1494,5 +1494,8 @@ | |||
| 1494 | :on-change #(reset! cells/draft %) | 1494 | :on-change #(reset! cells/draft %) |
| 1495 | :on-paste-empty actions/paste-image! | 1495 | :on-paste-empty actions/paste-image! |
| 1496 | :on-activate actions/send-draft!}] | 1496 | :on-activate actions/send-draft!}] |
| 1497 | - [:button {:label "Send" :kind :primary :valign :center | 1497 | + ;; Standard, for the reason the Join button beside the room box is: |
| 1498 | + ;; the accent says a thing is on, and Send is an action rather than a | ||
| 1499 | + ;; state. Nothing about the composer is truer while it wears it. | ||
| 1500 | + [:button {:label "Send" :valign :center | ||
| 1498 | :on-click actions/send-draft!}]]])) | 1501 | :on-click actions/send-draft!}]]])) |
modified
common/frq/screens/chats.cljc +5 -1 | @@ -180,8 +180,12 @@ | ||
| 180 | 180 | ;; at every width, in the frame the drag happens rather than the one |
| 181 | 181 | ;; after the window is next measured. |
| 182 | 182 | [:hbox {:spacing 8 :align :end} |
| 183 | + ;; Standard and not suggested. The accent fill is what this client | |
| 184 | + ;; uses to say a thing is *on* — the mode tabs, the chat you are in — | |
| 185 | + ;; and Join is neither on nor off: it does something and goes back to | |
| 186 | + ;; sitting there. Wearing the accent it read as a state that was | |
| 187 | + ;; somehow always true. | |
| 183 | 188 | [:button {:label (if (str/starts-with? @cells/join-input "@") "Message" "Join") |
| 184 | - :kind :primary | |
| 185 | 189 | :on-click #(do (actions/join! @cells/join-input) (reset! cells/join-input ""))}] |
| 186 | 190 | ;; Both kinds of conversation through one box: `#room` joins a |
| 187 | 191 | ;; channel, `@nick` opens a message to a person. |
| @@ -180,8 +180,12 @@ | |||
| 180 | ;; at every width, in the frame the drag happens rather than the one | 180 | ;; at every width, in the frame the drag happens rather than the one |
| 181 | ;; after the window is next measured. | 181 | ;; after the window is next measured. |
| 182 | [:hbox {:spacing 8 :align :end} | 182 | [:hbox {:spacing 8 :align :end} |
| 183 | + ;; Standard and not suggested. The accent fill is what this client | ||
| 184 | + ;; uses to say a thing is *on* — the mode tabs, the chat you are in — | ||
| 185 | + ;; and Join is neither on nor off: it does something and goes back to | ||
| 186 | + ;; sitting there. Wearing the accent it read as a state that was | ||
| 187 | + ;; somehow always true. | ||
| 183 | [:button {:label (if (str/starts-with? @cells/join-input "@") "Message" "Join") | 188 | [:button {:label (if (str/starts-with? @cells/join-input "@") "Message" "Join") |
| 184 | - :kind :primary | ||
| 185 | :on-click #(do (actions/join! @cells/join-input) (reset! cells/join-input ""))}] | 189 | :on-click #(do (actions/join! @cells/join-input) (reset! cells/join-input ""))}] |
| 186 | ;; Both kinds of conversation through one box: `#room` joins a | 190 | ;; Both kinds of conversation through one box: `#room` joins a |
| 187 | ;; channel, `@nick` opens a message to a person. | 191 | ;; channel, `@nick` opens a message to a person. |
modified
common/frq/screens/settings.cljc +2 -1 | @@ -40,8 +40,9 @@ | ||
| 40 | 40 | [:card {:key name} |
| 41 | 41 | [:title-2 {:label name}] |
| 42 | 42 | [:dim-label {:label blurb}] |
| 43 | + ;; Standard, like the other Join: an action, not a state. `Open` is | |
| 44 | + ;; the same button with the other word on it and is no more stateful. | |
| 43 | 45 | [:button {:label (if joined? "Open" "Join") |
| 44 | - :kind :primary | |
| 45 | 46 | :on-click #(if joined? (actions/open-channel! name) (actions/join! name))}]])))) |
| 46 | 47 | |
| 47 | 48 | (defn settings-screen [] |
| @@ -40,8 +40,9 @@ | |||
| 40 | [:card {:key name} | 40 | [:card {:key name} |
| 41 | [:title-2 {:label name}] | 41 | [:title-2 {:label name}] |
| 42 | [:dim-label {:label blurb}] | 42 | [:dim-label {:label blurb}] |
| 43 | + ;; Standard, like the other Join: an action, not a state. `Open` is | ||
| 44 | + ;; the same button with the other word on it and is no more stateful. | ||
| 43 | [:button {:label (if joined? "Open" "Join") | 45 | [:button {:label (if joined? "Open" "Join") |
| 44 | - :kind :primary | ||
| 45 | :on-click #(if joined? (actions/open-channel! name) (actions/join! name))}]])))) | 46 | :on-click #(if joined? (actions/open-channel! name) (actions/join! name))}]])))) |
| 46 | 47 | ||
| 47 | (defn settings-screen [] | 48 | (defn settings-screen [] |