Skip to content

Commit a0252e7

Browse files
authored
convert inline style to tailwind css of file SettingsView.tsx (RooCodeInc#2684)
* convert inline style to tailwind css of file `SettingsView.tsx` * style: fix `SettingsView.tsx` styling cline/cline#2684 (comment)
1 parent faa471b commit a0252e7

File tree

3 files changed

+35
-116
lines changed

3 files changed

+35
-116
lines changed

.changeset/rich-boats-film.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"claude-dev": patch
3+
---
4+
5+
convert inline style to tailwind css of file `SettingsView.tsx`

webview-ui/src/App.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import { McpViewTab } from "@shared/mcp"
1515
const AppContent = () => {
1616
const { didHydrateState, showWelcome, shouldShowAnnouncement, telemetrySetting, vscMachineId } = useExtensionState()
1717
const [showSettings, setShowSettings] = useState(false)
18+
const hideSettings = useCallback(() => setShowSettings(false), [])
1819
const [showHistory, setShowHistory] = useState(false)
1920
const [showMcp, setShowMcp] = useState(false)
2021
const [showAccount, setShowAccount] = useState(false)
@@ -92,7 +93,7 @@ const AppContent = () => {
9293
<WelcomeView />
9394
) : (
9495
<>
95-
{showSettings && <SettingsView onDone={() => setShowSettings(false)} />}
96+
{showSettings && <SettingsView onDone={hideSettings} />}
9697
{showHistory && <HistoryView onDone={() => setShowHistory(false)} />}
9798
{showMcp && <McpView initialTab={mcpTab} onDone={() => setShowMcp(false)} />}
9899
{showAccount && <AccountView onDone={() => setShowAccount(false)} />}

webview-ui/src/components/settings/SettingsView.tsx

Lines changed: 28 additions & 115 deletions
Original file line numberDiff line numberDiff line change
@@ -145,55 +145,16 @@ const SettingsView = ({ onDone }: SettingsViewProps) => {
145145
}
146146

147147
return (
148-
<div
149-
style={{
150-
position: "fixed",
151-
top: 0,
152-
left: 0,
153-
right: 0,
154-
bottom: 0,
155-
padding: "10px 0px 0px 20px",
156-
display: "flex",
157-
flexDirection: "column",
158-
overflow: "hidden",
159-
}}>
160-
<div
161-
style={{
162-
display: "flex",
163-
justifyContent: "space-between",
164-
alignItems: "center",
165-
marginBottom: "13px",
166-
paddingRight: 17,
167-
}}>
168-
<h3 style={{ color: "var(--vscode-foreground)", margin: 0 }}>Settings</h3>
148+
<div className="fixed top-0 left-0 right-0 bottom-0 pt-[10px] pr-0 pb-0 pl-5 flex flex-col overflow-hidden">
149+
<div className="flex justify-between items-center mb-[13px] pr-[17px]">
150+
<h3 className="text-[var(--vscode-foreground)] m-0">Settings</h3>
169151
<VSCodeButton onClick={() => handleSubmit(false)}>Done</VSCodeButton>
170152
</div>
171-
<div
172-
style={{
173-
flexGrow: 1,
174-
overflowY: "scroll",
175-
paddingRight: 8,
176-
display: "flex",
177-
flexDirection: "column",
178-
}}>
153+
<div className="grow overflow-y-scroll pr-2 flex flex-col">
179154
{/* Tabs container */}
180155
{planActSeparateModelsSetting ? (
181-
<div
182-
style={{
183-
border: "1px solid var(--vscode-panel-border)",
184-
borderRadius: "4px",
185-
padding: "10px",
186-
marginBottom: "20px",
187-
background: "var(--vscode-panel-background)",
188-
}}>
189-
<div
190-
style={{
191-
display: "flex",
192-
gap: "1px",
193-
marginBottom: "10px",
194-
marginTop: -8,
195-
borderBottom: "1px solid var(--vscode-panel-border)",
196-
}}>
156+
<div className="border border-solid border-[var(--vscode-panel-border)] rounded-md p-[10px] mb-5 bg-[var(--vscode-panel-background)]">
157+
<div className="flex gap-[1px] mb-[10px] -mt-2 border-0 border-b border-solid border-[var(--vscode-panel-border)]">
197158
<TabButton isActive={chatSettings.mode === "plan"} onClick={() => handleTabChange("plan")}>
198159
Plan Mode
199160
</TabButton>
@@ -203,7 +164,7 @@ const SettingsView = ({ onDone }: SettingsViewProps) => {
203164
</div>
204165

205166
{/* Content container */}
206-
<div style={{ marginBottom: -12 }}>
167+
<div className="-mb-3">
207168
<ApiOptions
208169
key={chatSettings.mode}
209170
showModelOptions={true}
@@ -221,70 +182,55 @@ const SettingsView = ({ onDone }: SettingsViewProps) => {
221182
/>
222183
)}
223184

224-
<div style={{ marginBottom: 5 }}>
185+
<div className="mb-[5px]">
225186
<VSCodeTextArea
226187
value={customInstructions ?? ""}
227-
style={{ width: "100%" }}
188+
className="w-full"
228189
resize="vertical"
229190
rows={4}
230191
placeholder={'e.g. "Run unit tests at the end", "Use TypeScript with async/await", "Speak in Spanish"'}
231192
onInput={(e: any) => setCustomInstructions(e.target?.value ?? "")}>
232-
<span style={{ fontWeight: "500" }}>Custom Instructions</span>
193+
<span className="font-medium">Custom Instructions</span>
233194
</VSCodeTextArea>
234-
<p
235-
style={{
236-
fontSize: "12px",
237-
marginTop: "5px",
238-
color: "var(--vscode-descriptionForeground)",
239-
}}>
195+
<p className="text-xs mt-[5px] text-[var(--vscode-descriptionForeground)]">
240196
These instructions are added to the end of the system prompt sent with every request.
241197
</p>
242198
</div>
243199

244-
<div style={{ marginBottom: 5 }}>
200+
<div className="mb-[5px]">
245201
<VSCodeCheckbox
246-
style={{ marginBottom: "5px" }}
202+
className="mb-[5px]"
247203
checked={planActSeparateModelsSetting}
248204
onChange={(e: any) => {
249205
const checked = e.target.checked === true
250206
setPlanActSeparateModelsSetting(checked)
251207
}}>
252208
Use different models for Plan and Act modes
253209
</VSCodeCheckbox>
254-
<p
255-
style={{
256-
fontSize: "12px",
257-
marginTop: "5px",
258-
color: "var(--vscode-descriptionForeground)",
259-
}}>
210+
<p className="text-xs mt-[5px] text-[var(--vscode-descriptionForeground)]">
260211
Switching between Plan and Act mode will persist the API and model used in the previous mode. This may be
261212
helpful e.g. when using a strong reasoning model to architect a plan for a cheaper coding model to act on.
262213
</p>
263214
</div>
264215

265-
<div style={{ marginBottom: 5 }}>
216+
<div className="mb-[5px]">
266217
<VSCodeCheckbox
267-
style={{ marginBottom: "5px" }}
218+
className="mb-[5px]"
268219
checked={telemetrySetting === "enabled"}
269220
onChange={(e: any) => {
270221
const checked = e.target.checked === true
271222
setTelemetrySetting(checked ? "enabled" : "disabled")
272223
}}>
273224
Allow anonymous error and usage reporting
274225
</VSCodeCheckbox>
275-
<p
276-
style={{
277-
fontSize: "12px",
278-
marginTop: "5px",
279-
color: "var(--vscode-descriptionForeground)",
280-
}}>
226+
<p className="text-xs mt-[5px] text-[var(--vscode-descriptionForeground)]">
281227
Help improve Cline by sending anonymous usage data and error reports. No code, prompts, or personal
282228
information are ever sent. See our{" "}
283-
<VSCodeLink href="https://docs.cline.bot/more-info/telemetry" style={{ fontSize: "inherit" }}>
229+
<VSCodeLink href="https://docs.cline.bot/more-info/telemetry" className="text-inherit">
284230
telemetry overview
285231
</VSCodeLink>{" "}
286232
and{" "}
287-
<VSCodeLink href="https://cline.bot/privacy" style={{ fontSize: "inherit" }}>
233+
<VSCodeLink href="https://cline.bot/privacy" className="text-inherit">
288234
privacy policy
289235
</VSCodeLink>{" "}
290236
for more details.
@@ -294,68 +240,35 @@ const SettingsView = ({ onDone }: SettingsViewProps) => {
294240
{/* Browser Settings Section */}
295241
<BrowserSettingsSection />
296242

297-
<div
298-
style={{
299-
marginTop: "auto",
300-
paddingRight: 8,
301-
display: "flex",
302-
justifyContent: "center",
303-
}}>
243+
<div className="mt-auto pr-2 flex justify-center">
304244
<SettingsButton
305245
onClick={() => vscode.postMessage({ type: "openExtensionSettings" })}
306-
style={{
307-
margin: "0 0 16px 0",
308-
}}>
246+
className="mt-0 mr-0 mb-4 ml-0">
309247
<i className="codicon codicon-settings-gear" />
310248
Advanced Settings
311249
</SettingsButton>
312250
</div>
313251

314252
{IS_DEV && (
315253
<>
316-
<div style={{ marginTop: "10px", marginBottom: "4px" }}>Debug</div>
317-
<VSCodeButton onClick={handleResetState} style={{ marginTop: "5px", width: "auto" }}>
254+
<div className="mt-[10px] mb-1">Debug</div>
255+
<VSCodeButton onClick={handleResetState} className="mt-[5px] w-auto">
318256
Reset State
319257
</VSCodeButton>
320-
<p
321-
style={{
322-
fontSize: "12px",
323-
marginTop: "5px",
324-
color: "var(--vscode-descriptionForeground)",
325-
}}>
258+
<p className="text-xs mt-[5px] text-[var(--vscode-descriptionForeground)]">
326259
This will reset all global state and secret storage in the extension.
327260
</p>
328261
</>
329262
)}
330263

331-
<div
332-
style={{
333-
textAlign: "center",
334-
color: "var(--vscode-descriptionForeground)",
335-
fontSize: "12px",
336-
lineHeight: "1.2",
337-
padding: "0 8px 15px 0",
338-
marginTop: "auto",
339-
}}>
340-
<p
341-
style={{
342-
wordWrap: "break-word",
343-
margin: 0,
344-
padding: 0,
345-
}}>
264+
<div className="text-center text-[var(--vscode-descriptionForeground)] text-xs leading-[1.2] px-0 py-0 pr-2 pb-[15px] mt-auto">
265+
<p className="break-words m-0 p-0">
346266
If you have any questions or feedback, feel free to open an issue at{" "}
347-
<VSCodeLink href="https://github.com/cline/cline" style={{ display: "inline" }}>
267+
<VSCodeLink href="https://github.com/cline/cline" className="inline">
348268
https://github.com/cline/cline
349269
</VSCodeLink>
350270
</p>
351-
<p
352-
style={{
353-
fontStyle: "italic",
354-
margin: "10px 0 0 0",
355-
padding: 0,
356-
}}>
357-
v{version}
358-
</p>
271+
<p className="italic mt-[10px] mb-0 p-0">v{version}</p>
359272
</div>
360273
</div>
361274
</div>

0 commit comments

Comments
 (0)