nandi/frqpublic Fork 0
8dac959
Commits
Clone
git clone https://git.rickub.com/nandi/frq.git
git clone ssh://git@rickub.com/nandi/frq.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

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>
nandi committed 2026-09-17T18:47:58-07:00 Browse files
8dac959 parent: f4d18a5
modified common/frq/screens/chat.cljc +4 -1
@@ -1494,5 +1494,8 @@
14941494 :on-change #(reset! cells/draft %)
14951495 :on-paste-empty actions/paste-image!
14961496 :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
14981501 :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 :center1497+ ;; 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 @@
180180 ;; at every width, in the frame the drag happens rather than the one
181181 ;; after the window is next measured.
182182 [: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.
183188 [:button {:label (if (str/starts-with? @cells/join-input "@") "Message" "Join")
184- :kind :primary
185189 :on-click #(do (actions/join! @cells/join-input) (reset! cells/join-input ""))}]
186190 ;; Both kinds of conversation through one box: `#room` joins a
187191 ;; 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 one180 ;; 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 a190 ;; 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 @@
4040 [:card {:key name}
4141 [:title-2 {:label name}]
4242 [: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.
4345 [:button {:label (if joined? "Open" "Join")
44- :kind :primary
4546 :on-click #(if joined? (actions/open-channel! name) (actions/join! name))}]]))))
4647
4748 (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 []