Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 13 additions & 7 deletions app/skills/SkillsBrowser.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -150,8 +150,9 @@ export function SkillsBrowser({ skills, categories, platforms }: SkillsBrowserPr
<aside style={{ position: "sticky", top: "72px" }}>
{/* Search */}
<div style={{ marginBottom: "24px" }}>
<label style={labelStyle}>Search</label>
<label style={labelStyle} htmlFor="skills-search">Search</label>
<input
id="skills-search"
type="text"
placeholder="skill name, tag, author…"
value={search}
Expand All @@ -162,8 +163,9 @@ export function SkillsBrowser({ skills, categories, platforms }: SkillsBrowserPr

{/* Category */}
<div style={{ marginBottom: "24px" }}>
<label style={labelStyle}>Category</label>
<label style={labelStyle} htmlFor="skills-category">Category</label>
<select
id="skills-category"
value={selectedCategory}
onChange={(e) => setSelectedCategory(e.target.value)}
style={{ ...inputStyle, cursor: "pointer" }}
Expand All @@ -179,8 +181,9 @@ export function SkillsBrowser({ skills, categories, platforms }: SkillsBrowserPr

{/* Platform */}
<div style={{ marginBottom: "24px" }}>
<label style={labelStyle}>Platform</label>
<label style={labelStyle} htmlFor="skills-platform">Platform</label>
<select
id="skills-platform"
value={selectedPlatform}
onChange={(e) => setSelectedPlatform(e.target.value)}
style={{ ...inputStyle, cursor: "pointer" }}
Expand All @@ -196,8 +199,8 @@ export function SkillsBrowser({ skills, categories, platforms }: SkillsBrowserPr

{/* Price */}
<div style={{ marginBottom: "24px" }}>
<label style={labelStyle}>Price</label>
<div style={{ display: "flex", flexDirection: "column", gap: "6px" }}>
<span style={labelStyle} id="price-filter-label">Price</span>
<div role="radiogroup" aria-labelledby="price-filter-label" style={{ display: "flex", flexDirection: "column", gap: "6px" }}>
{[
{ value: "", label: "Any price" },
{ value: "free", label: "Free only" },
Expand Down Expand Up @@ -319,17 +322,19 @@ export function SkillsBrowser({ skills, categories, platforms }: SkillsBrowserPr
}}
>
{filtered.length} results
<span style={{ fontSize: "10px", color: "#666666" }}>
<span style={{ fontSize: "10px", color: "#8a8a8a" }}>
Install &amp; star counts are periodic snapshots, not live
</span>
</span>
<div style={{ display: "flex", alignItems: "center", gap: "14px" }}>
{/* View toggle */}
<div style={{ display: "flex", border: "1px solid #222222", borderRadius: "4px", overflow: "hidden" }}>
<div role="group" aria-label="View layout" style={{ display: "flex", border: "1px solid #222222", borderRadius: "4px", overflow: "hidden" }}>
{(["leaderboard", "grid"] as const).map((v) => (
<button
key={v}
onClick={() => setView(v)}
aria-pressed={view === v}
aria-label={v === "leaderboard" ? "Board view" : "Grid view"}
style={{
fontFamily: "var(--font-jetbrains-mono), monospace",
fontSize: "10px",
Expand Down Expand Up @@ -359,6 +364,7 @@ export function SkillsBrowser({ skills, categories, platforms }: SkillsBrowserPr
SORT
</span>
<select
aria-label="Sort skills by"
value={sortBy}
onChange={(e) => setSortBy(e.target.value)}
style={{
Expand Down
4 changes: 2 additions & 2 deletions app/skills/[slug]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ export default async function SkillDetailPage({ params }: Props) {
const isFreeLabel = priceLabel === "Free"
const isUnpricedLabel = priceLabel === "—"
const priceDisplayLabel = isFreeLabel ? "FREE" : priceLabel
const priceColor = isUnpricedLabel ? "#666666" : "#ffffff"
const priceColor = isUnpricedLabel ? "#8a8a8a" : "#ffffff"
const isPaidLabel = !isFreeLabel && !isUnpricedLabel
// Only paid skills go to Agentic Market. Free + indexed listings link to the
// real source (repo, then ClawHub listing) — never the payment marketplace.
Expand Down Expand Up @@ -552,7 +552,7 @@ export default async function SkillDetailPage({ params }: Props) {
marginTop: "10px",
fontFamily: "var(--font-jetbrains-mono), monospace",
fontSize: "9px",
color: "#666666",
color: "#8a8a8a",
letterSpacing: "0.04em",
}}
>
Expand Down
4 changes: 2 additions & 2 deletions components/Footer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ export function Footer() {
href="https://visionaire.co"
target="_blank"
rel="noopener noreferrer"
style={{ color: "#ffffff", textDecoration: "none" }}
style={{ color: "#ffffff", textDecoration: "underline" }}
>
Visionaire Labs
</a>.
Expand Down Expand Up @@ -156,7 +156,7 @@ export function Footer() {
href="https://visionaire.co"
target="_blank"
rel="noopener noreferrer"
style={{ color: "inherit", textDecoration: "none" }}
style={{ color: "inherit", textDecoration: "underline" }}
>
Visionaire Labs ↗
</a>
Expand Down
10 changes: 5 additions & 5 deletions components/Leaderboard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ export function Leaderboard({ skills }: { skills: Skill[] }) {
fontSize: "10px",
letterSpacing: "0.08em",
textTransform: "uppercase",
color: "#666666",
color: "#8a8a8a",
}}
>
<span>#</span>
Expand Down Expand Up @@ -59,7 +59,7 @@ export function Leaderboard({ skills }: { skills: Skill[] }) {
style={{
fontFamily: "var(--font-jetbrains-mono), monospace",
fontSize: "12px",
color: i < 3 ? "#ffffff" : "#555555",
color: i < 3 ? "#ffffff" : "#a3a3a3",
fontWeight: i < 3 ? 700 : 400,
}}
>
Expand All @@ -86,7 +86,7 @@ export function Leaderboard({ skills }: { skills: Skill[] }) {
display: "block",
fontFamily: "var(--font-jetbrains-mono), monospace",
fontSize: "11px",
color: "#666666",
color: "#8a8a8a",
overflow: "hidden",
textOverflow: "ellipsis",
whiteSpace: "nowrap",
Expand All @@ -113,15 +113,15 @@ export function Leaderboard({ skills }: { skills: Skill[] }) {
↑<span className="ss-lb-trendword"> Trending</span>
</span>
) : (
<span style={{ color: "#333333", fontSize: "11px" }}>—</span>
<span style={{ color: "#8a8a8a", fontSize: "11px" }}>—</span>
)}
</span>

<span
style={{
fontFamily: "var(--font-jetbrains-mono), monospace",
fontSize: "13px",
color: installs ? "#ffffff" : "#444444",
color: installs ? "#ffffff" : "#8a8a8a",
textAlign: "right",
fontVariantNumeric: "tabular-nums",
}}
Expand Down
8 changes: 4 additions & 4 deletions components/SkillCard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ export function SkillCard({ skill }: { skill: Skill }) {
<span style={{
fontFamily: "monospace",
fontSize: "11px",
color: isFree ? "#ffffff" : unpriced ? "#333333" : "#555555",
color: isFree ? "#ffffff" : unpriced ? "#8a8a8a" : "#a3a3a3",
letterSpacing: "0.06em",
textTransform: "uppercase",
marginLeft: "12px",
Expand All @@ -59,7 +59,7 @@ export function SkillCard({ skill }: { skill: Skill }) {

<p style={{
fontSize: "13px",
color: "#555555",
color: "#a3a3a3",
lineHeight: 1.6,
marginBottom: "20px",
}}>
Expand All @@ -69,7 +69,7 @@ export function SkillCard({ skill }: { skill: Skill }) {
<div style={{
fontFamily: "monospace",
fontSize: "11px",
color: "#333333",
color: "#a3a3a3",
backgroundColor: "#080808",
padding: "7px 10px",
overflow: "hidden",
Expand All @@ -89,7 +89,7 @@ export function SkillCard({ skill }: { skill: Skill }) {
<span key={p} style={{
fontFamily: "monospace",
fontSize: "10px",
color: "#444444",
color: "#8a8a8a",
letterSpacing: "0.04em",
textTransform: "uppercase",
}}>
Expand Down