diff --git a/desktop/src/ui/components/ScrollableContainer.tsx b/desktop/src/ui/components/ScrollableContainer.tsx
new file mode 100644
index 00000000..669caaed
--- /dev/null
+++ b/desktop/src/ui/components/ScrollableContainer.tsx
@@ -0,0 +1,23 @@
+import { OverlayScrollbarsComponent } from 'overlayscrollbars-solid';
+import type { ParentProps } from 'solid-js';
+
+type ScrollableContainerProps = ParentProps & {
+ title: string;
+};
+
+function ScrollableContainer(props: ScrollableContainerProps) {
+ return (
+
+
{props.title}
+
+
+
+ {props.children}
+
+
+
+
+ );
+}
+
+export default ScrollableContainer;
diff --git a/desktop/src/ui/pages/settings/components.tsx b/desktop/src/ui/pages/settings/components.tsx
new file mode 100644
index 00000000..dbb1456c
--- /dev/null
+++ b/desktop/src/ui/pages/settings/components.tsx
@@ -0,0 +1,31 @@
+import { type JSX, type ParentProps, createEffect } from 'solid-js';
+
+type SettingsRowProps = ParentProps & {
+ title: string;
+ description: string;
+ icon: JSX.Element;
+ clickable?: () => any;
+};
+
+function SettingsRow(props: SettingsRowProps) {
+ const interactableClass = createEffect(() => props.clickable ? 'hover:bg-component-bg-hover active:bg-component-bg-pressed' : '');
+
+ return (
+
+
+ {props.icon}
+
+
+
+
{props.title}
+
{props.description}
+
+
+
+ test
+
+
+ );
+}
+
+export default SettingsRow;
diff --git a/desktop/src/ui/pages/settings/launcher/SettingsGeneral.tsx b/desktop/src/ui/pages/settings/launcher/SettingsGeneral.tsx
index d3fd90f2..55330fa5 100644
--- a/desktop/src/ui/pages/settings/launcher/SettingsGeneral.tsx
+++ b/desktop/src/ui/pages/settings/launcher/SettingsGeneral.tsx
@@ -1,8 +1,12 @@
+import { Code01Icon } from '@untitled-theme/icons-solid';
+import SettingsRow from '../components';
+import ScrollableContainer from '~ui/components/ScrollableContainer';
+
function SettingsGeneral() {
return (
-
-
General
-
+
+ } />
+
);
}