KS
Killer-Skills

react-to-solid — Categories.community

v1.0.0
GitHub

About this Skill

Ideal for Frontend Agents requiring seamless React-to-SolidJS component transformations. Shadcn registry for SolidJS

# Core Topics

carere carere
[45]
[1]
Updated: 2/28/2026

Quality Score

Top 5%
39
Excellent
Based on code quality & docs
Installation
SYS Universal Install (Auto-Detect)
Cursor IDE Windsurf IDE VS Code IDE
> npx killer-skills add carere/zaidan

Agent Capability Analysis

The react-to-solid MCP Server by carere is an open-source Categories.community integration for Claude and other AI agents, enabling seamless task automation and capability expansion. Optimized for shadcn-ui, solidjs.

Ideal Agent Persona

Ideal for Frontend Agents requiring seamless React-to-SolidJS component transformations.

Core Value

Empowers agents to leverage the Shadcn registry for SolidJS, providing transformation rules as reusable context for converting React components to SolidJS equivalents, utilizing SolidJS and React libraries.

Capabilities Granted for react-to-solid MCP Server

Transforming React components to SolidJS
Generating SolidJS equivalents from React codebases
Referencing transformation rules for Zaidan project compatibility

! Prerequisites & Limits

  • Does not perform transformations itself
  • Requires reference by other transformation agents
  • Specific to React-to-SolidJS transformations
Project
SKILL.md
6.3 KB
.cursorrules
1.2 KB
package.json
240 B
Ready
UTF-8
SKILL.md
Readonly

React-to-SolidJS Transformation Rules

Single source of truth for all React-to-SolidJS transformations in the Zaidan project. This is a KNOWLEDGE skill -- it provides transformation rules as reusable context. Agents reference these tables when converting React components to SolidJS equivalents.

IMPORTANT: This skill is a knowledge resource. It does NOT perform transformations itself. Instead, it provides the necessary rules and mappings that other transformation agents will reference when executing conversions. If user call it manually, explain what this skill covers and redirect user to the agents that will use this skill, then stop.

React-to-SolidJS Transformation Rules

AspectReact (shadcn)SolidJS (Zaidan)
Class attributeclassNameclass
Class prop typeclassName?: stringclass?: string
Props destructuring{ className, ...props }splitProps(props, ["class"])
Spread props{...props}{...others} after splitProps
Default propsDestructure defaults { x = 5 }mergeProps({ x: 5 }, props)
Conditional rendering{condition && <El />}<Show when={condition}><El /></Show>
List rendering{items.map(x => ...)}<For each={items}>{x => ...}</For>
Primitive library@base-ui/react-*@kobalte/core/*
PolymorphicasChild propas prop with PolymorphicProps
RefsforwardRef wrapperRemove (not needed in SolidJS)
Children typeReact.ReactNodeJSX.Element
Component typeReact.ComponentProps<"div">ComponentProps<"div">
Event targete.target.valuee.currentTarget.value
Utils import@/registry/bases/base/lib/utils@/lib/utils

Import Transformations

tsx
1// REMOVE (React): 2import * as React from "react" 3import { Slot } from "base-ui" 4import * as DialogPrimitive from "@base-ui/react/dialog" 5import { cn } from "@/registry/bases/base/lib/utils" 6 7// ADD (SolidJS): 8import type { ComponentProps, JSX, ValidComponent } from "solid-js" 9import { splitProps, mergeProps, Show, For } from "solid-js" 10import * as DialogPrimitive from "@kobalte/core/dialog" 11import type { PolymorphicProps } from "@kobalte/core/polymorphic" 12import { cn } from "@/lib/utils"

Advanced Transformation Patterns

Component Part Patterns WITHOUT Kobalte/Corvu Primitive

When a component part does NOT use a Kobalte or Corvu primitive, use this pattern:

tsx
1type ComponentPartProps = ComponentProps<"<html_element>"> 2 3const ComponentPart = (props: ComponentPartProps) => { 4 const mergedProps = mergeProps({ aProp: "default" } as ComponentPartProps, props); 5 const [local, others] = splitProps(mergedProps, ["aProp"]); 6 return <html_element aProp={local.aProp} {...others} />; 7}

Component Part Patterns WITH Kobalte/Corvu Primitive

When a component part uses a Kobalte or Corvu primitive, use polymorphic typing:

tsx
1import * as Primitive from "@kobalte/core/primitive"; 2 3type ComponentPartProps<T extends ValidComponent = "<html_element>"> = 4 PolymorphicProps<T, Primitive.PrimitivePartProps<T>> & 5 Pick<ComponentProps<"<html_element>">, "aProp">; 6 7const ComponentPart = <T extends ValidComponent = "<html_element>">( 8 props: ComponentPartProps<T> 9) => { 10 const mergedProps = mergeProps( 11 { aProp: "default" } as ComponentPartProps<T>, 12 props as ComponentPartProps<T> 13 ); 14 const [local, others] = splitProps(mergedProps, ["aProp"]); 15 return <Primitive.Root aProp={local.aProp} {...others} />; 16}

Reading Kobalte Documentation

When consulting Kobalte docs at https://kobalte.dev/docs/core/components/<component-name>:

  • Anatomy Section: Lists all ComponentPart elements and how to combine them
  • Rendered Elements Section: Check the "Default rendered element" column:
    • If starts with a capital letter -> no primitive used (e.g., a Kobalte sub-component)
    • If none -> no primitive used (wrapper/context provider)
    • Otherwise -> native HTML element (e.g., div, button, h3)
  • API Reference: Props, data attributes, CSS variables for each part
  • CSS Variables: Kobalte prefixes with --kb- (e.g., --kb-accordion-content-height)

Reading Corvu Documentation

When consulting Corvu docs at https://corvu.dev/docs/primitives/<component-name>:

  • Anatomy Section: Lists all ComponentPart elements with combination patterns
  • API Reference Section: Rendered elements are specified in the Props table, under the as row
  • DynamicProps: Corvu uses DynamicProps instead of Kobalte's PolymorphicProps
  • CSS Variables: Corvu prefixes with --corvu- (e.g., --corvu-disclosure-content-height)
  • Data Attributes: Corvu prefixes with data-corvu- (e.g., data-corvu-accordion-trigger)
  • Context Hooks: useContext() and useItemContext() for accessing component state

Documentation Resources

Kobalte Core Components

  • URL Pattern: https://kobalte.dev/docs/core/components/<component-name>
  • Content: Anatomy, Rendered elements, API Reference, Props, Data Attributes, CSS Variables
  • For detailed patterns, see docs/kobalte-patterns.md

Corvu Primitives

  • URL Pattern: https://corvu.dev/docs/primitives/<component-name>
  • Content: Anatomy, API Reference with rendered elements in Props table
  • For detailed patterns, see docs/corvu-patterns.md

Shadcn Registry

  • Components: https://raw.githubusercontent.com/shadcn-ui/ui/refs/heads/main/apps/v4/registry/bases/base/ui/<component-name>.tsx
  • Examples: https://raw.githubusercontent.com/shadcn-ui/ui/refs/heads/main/apps/v4/registry/bases/base/examples/<component-name>-example.tsx
  • Docs: https://raw.githubusercontent.com/shadcn-ui/ui/refs/heads/main/apps/v4/content/docs/components/<component-name>.mdx
  • Schema: https://ui.shadcn.com/schema/registry.json

Supporting Documentation

Related Skills

Looking for an alternative to react-to-solid or building a Categories.community AI Agent? Explore these related open-source MCP Servers.

View All

widget-generator

Logo of f
f

f.k.a. Awesome ChatGPT Prompts. Share, discover, and collect prompts from the community. Free and open source — self-host for your organization with complete privacy.

149.6k
0
Design

flags

Logo of vercel
vercel

flags is a Next.js feature management skill that enables developers to efficiently add or modify framework feature flags, streamlining React application development.

138.4k
0
Browser

zustand

Logo of lobehub
lobehub

The ultimate space for work and life — to find, build, and collaborate with agent teammates that grow with you. We are taking agent harness to the next level — enabling multi-agent collaboration, effortless agent team design, and introducing agents as the unit of work interaction.

72.8k
0
Communication

data-fetching

Logo of lobehub
lobehub

The ultimate space for work and life — to find, build, and collaborate with agent teammates that grow with you. We are taking agent harness to the next level — enabling multi-agent collaboration, effortless agent team design, and introducing agents as the unit of work interaction.

72.8k
0
Communication