diff --git a/apps/css-workshop/src/components/ListItem.astro b/apps/css-workshop/src/components/ListItem.astro
new file mode 100644
index 00000000000..7f2a17e43d1
--- /dev/null
+++ b/apps/css-workshop/src/components/ListItem.astro
@@ -0,0 +1,69 @@
+---
+type Props = {
+ isActive?: boolean;
+ size?: string;
+ disabled?: boolean;
+ startIconProps?: astroHTML.JSX.HTMLAttributes;
+ endIconProps?: astroHTML.JSX.HTMLAttributes;
+ contentProps?: astroHTML.JSX.HTMLAttributes;
+ actionable?: boolean;
+ description?: string;
+} & astroHTML.JSX.HTMLAttributes;
+
+const {
+ class: className,
+ isActive,
+ size,
+ disabled,
+ startIconProps,
+ endIconProps,
+ actionable,
+ contentProps,
+ description,
+ ...props
+} = Astro.props;
+---
+
+
+ {
+ Astro.slots.has('start-icon') && (
+
+
+
+ )
+ }
+ {
+ Astro.slots.has('default') && (
+
+
+ {description && {description}
}
+
+ )
+ }
+
+ {
+ Astro.slots.has('end-icon') && (
+
+
+
+ )
+ }
+
diff --git a/apps/css-workshop/src/pages/menu.astro b/apps/css-workshop/src/pages/menu.astro
index e6d08810459..3818bbeefc1 100644
--- a/apps/css-workshop/src/pages/menu.astro
+++ b/apps/css-workshop/src/pages/menu.astro
@@ -2,6 +2,7 @@
import Layout from './_layout.astro';
import Button_ from '../components/Button.astro';
import Icon_ from '../components/Icon.astro';
+import ListItem_ from '../components/ListItem.astro';
---
@@ -38,239 +39,134 @@ import Icon_ from '../components/Icon.astro';
Default
@@ -289,12 +185,8 @@ import Icon_ from '../components/Icon.astro';
-
- View profile
-
-
- Sign out
-
+ View profile
+ Sign out
@@ -311,116 +203,122 @@ import Icon_ from '../components/Icon.astro';
Skeleton
@@ -490,41 +388,43 @@ import Icon_ from '../components/Icon.astro';
@@ -590,41 +490,43 @@ import Icon_ from '../components/Icon.astro';
@@ -642,57 +544,40 @@ import Icon_ from '../components/Icon.astro';
@@ -707,57 +592,40 @@ import Icon_ from '../components/Icon.astro';
@@ -772,57 +640,40 @@ import Icon_ from '../components/Icon.astro';
@@ -835,58 +686,40 @@ import Icon_ from '../components/Icon.astro';
@@ -896,58 +729,40 @@ import Icon_ from '../components/Icon.astro';
@@ -957,58 +772,40 @@ import Icon_ from '../components/Icon.astro';
@@ -1021,58 +818,40 @@ import Icon_ from '../components/Icon.astro';
@@ -1082,58 +861,40 @@ import Icon_ from '../components/Icon.astro';
@@ -1143,58 +904,40 @@ import Icon_ from '../components/Icon.astro';