A calm place to write long-form, and publish it to the open social web. skypress.blog/
0

Configure Feed

Select the types of activity you want to include in your feed.

Style the publish stepper; drop its "Keep editing" cancel button

The publish flow's confirm step had an unstyled publication <select> and an
unstyled publish button, plus a "Keep editing" cancel. Remove the cancel
button (onCancel stays for the inline create-publication step), and style the
picker + primary action to match the editor's .publish__select / .publish__button
(token border, sun fill), with the working-status text muted.

+53 -3
+2
src/components/WritePublishFlow.test.tsx
··· 57 57 expect( container.textContent ).toContain( 'Solo' ); 58 58 expect( container.textContent?.toLowerCase() ).toContain( 'bluesky' ); 59 59 expect( publish ).not.toHaveBeenCalled(); 60 + // The confirm step offers only Publish — no "Keep editing" / cancel button. 61 + expect( container.textContent ).not.toContain( 'Keep editing' ); 60 62 } ); 61 63 62 64 it( 'confirming uploads held assets then publishes', async () => {
-3
src/components/WritePublishFlow.tsx
··· 175 175 > 176 176 Publish &amp; post to Bluesky 177 177 </button> 178 - <button type="button" className="writeflow__cancel" onClick={ onCancel }> 179 - Keep editing 180 - </button> 181 178 </div> 182 179 ) } 183 180
+51
src/styles/write-chrome.css
··· 126 126 margin-top: 1rem; 127 127 } 128 128 129 + /* Publication picker (when the writer has more than one). Mirrors the editor's 130 + .publish__target / .publish__select so it reads like the rest of the app. */ 131 + .writeflow__target { 132 + display: flex; 133 + flex-direction: column; 134 + gap: 0.35rem; 135 + margin: 0 0 1rem; 136 + } 137 + .writeflow__target > span { 138 + font-size: 0.85rem; 139 + font-weight: 600; 140 + color: var(--ink); 141 + } 142 + .writeflow__target select { 143 + width: 100%; 144 + box-sizing: border-box; 145 + padding: 0.55rem 0.7rem; 146 + border: 1px solid var(--line-strong); 147 + border-radius: 8px; 148 + background: var(--paper); 149 + color: var(--ink); 150 + font: inherit; 151 + cursor: pointer; 152 + } 153 + .writeflow__target select:disabled { 154 + opacity: 0.6; 155 + cursor: default; 156 + } 157 + 158 + /* Primary publish action — same sun fill as the editor's publish button. */ 159 + .writeflow__publish { 160 + padding: 0.6rem 1.1rem; 161 + border: 0; 162 + border-radius: 8px; 163 + background: var(--sun); 164 + color: #fff; 165 + font: inherit; 166 + font-weight: 600; 167 + cursor: pointer; 168 + } 169 + .writeflow__publish:disabled { 170 + opacity: 0.5; 171 + cursor: not-allowed; 172 + } 173 + 174 + .writeflow__status { 175 + margin: 1rem 0 0; 176 + color: var(--muted); 177 + font-size: 0.9rem; 178 + } 179 + 129 180 .writeflow__warning { 130 181 font-size: 0.95rem; 131 182 margin: 0 0 0.75rem;