diff --git a/documentation/src/components/skill-card.tsx b/documentation/src/components/skill-card.tsx
index 80898a443be0..65bc1e15717e 100644
--- a/documentation/src/components/skill-card.tsx
+++ b/documentation/src/components/skill-card.tsx
@@ -1,6 +1,6 @@
import React, { useState } from "react";
import Link from "@docusaurus/Link";
-import { Check } from "lucide-react";
+import { Check, Copy } from "lucide-react";
import type { Skill } from "@site/src/pages/skills/types";
function generateInstallCommand(repoUrl: string, skillId: string): string {
@@ -54,10 +54,10 @@ export function SkillCard({ skill }: { skill: Skill }) {
{skill.description}
- {/* Tags */}
+ {/* Tags - show max 4 on card, rest visible on detail page */}
{skill.tags.length > 0 && (
- {skill.tags.map((tag, index) => (
+ {skill.tags.slice(0, 4).map((tag, index) => (
{/* Footer with actions */}
-
- {/* Install button */}
-
-
diff --git a/documentation/src/components/ui/sidebar-filter.tsx b/documentation/src/components/ui/sidebar-filter.tsx
index 5b58862453c8..e54675a6f336 100644
--- a/documentation/src/components/ui/sidebar-filter.tsx
+++ b/documentation/src/components/ui/sidebar-filter.tsx
@@ -9,6 +9,7 @@ export type SidebarFilterOption = {
export type SidebarFilterGroup = {
title: string;
options: SidebarFilterOption[];
+ maxHeight?: string;
};
interface SidebarFilterProps {
@@ -33,33 +34,49 @@ export function SidebarFilter({ groups, selectedValues, onChange }: SidebarFilte
{group.title}
-
- {group.options.map((option) => (
-
- ))}
+
+
+ {group.options.map((option) => (
+
+ ))}
+
+ {group.maxHeight && (
+
+ )}
))}
);
-}
\ No newline at end of file
+}
diff --git a/documentation/src/css/custom.css b/documentation/src/css/custom.css
index aa9a775be839..bda0fac4f023 100644
--- a/documentation/src/css/custom.css
+++ b/documentation/src/css/custom.css
@@ -463,3 +463,33 @@ main {
max-width: 100%;
overflow-x: hidden;
}
+
+/* Custom scrollbar for filter sections */
+.scrollbar-visible {
+ overflow-y: auto;
+}
+
+.scrollbar-visible::-webkit-scrollbar {
+ width: 6px;
+}
+
+.scrollbar-visible::-webkit-scrollbar-track {
+ background: transparent;
+}
+
+.scrollbar-visible::-webkit-scrollbar-thumb {
+ background-color: var(--grey-80);
+ border-radius: 3px;
+}
+
+.scrollbar-visible::-webkit-scrollbar-thumb:hover {
+ background-color: var(--grey-60);
+}
+
+[data-theme="dark"] .scrollbar-visible::-webkit-scrollbar-thumb {
+ background-color: var(--dark-grey-45);
+}
+
+[data-theme="dark"] .scrollbar-visible::-webkit-scrollbar-thumb:hover {
+ background-color: var(--dark-grey-60);
+}
diff --git a/documentation/src/pages/skills/index.tsx b/documentation/src/pages/skills/index.tsx
index ff8734323f07..fbc2f9c4a25b 100644
--- a/documentation/src/pages/skills/index.tsx
+++ b/documentation/src/pages/skills/index.tsx
@@ -36,13 +36,14 @@ export default function SkillsPage() {
];
const sidebarFilterGroups: SidebarFilterGroup[] = [
- {
- title: "Tags",
- options: uniqueTags
- },
{
title: "Source",
options: sourceOptions
+ },
+ {
+ title: "Tags",
+ options: uniqueTags,
+ maxHeight: "max-h-64 overflow-y-auto"
}
];