react-to-solid — how to use react-to-solid how to use react-to-solid, react-to-solid transformation rules, react-to-solid vs Shadcn UI, react-to-solid install guide, what is react-to-solid, react-to-solid setup for AI agents, react-to-solid alternative for SolidJS, react-to-solid best practices, react-to-solid for Shadcn registry

v1.0.0
GitHub

About this Skill

Ideal for Frontend Agents working with SolidJS and Shadcn UI, needing seamless React-to-SolidJS transformations. react-to-solid is a knowledge resource providing transformation rules for converting React components to SolidJS equivalents.

Features

Provides reusable context for React-to-SolidJS transformations
Offers a single source of truth for transformation rules in the Zaidan project
Supports Shadcn UI and SolidJS technologies
Enables AI agents to reference transformation tables for accurate conversions
Includes critical rules for seamless React-to-SolidJS conversions

# Core Topics

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

Quality Score

Top 5%
44
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/docs/third-party-deps.md

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 how to use react-to-solid, react-to-solid transformation rules, react-to-solid vs Shadcn UI.

Ideal Agent Persona

Ideal for Frontend Agents working with SolidJS and Shadcn UI, needing seamless React-to-SolidJS transformations.

Core Value

Empowers agents to leverage single-source transformation rules for converting React components to SolidJS equivalents, utilizing SolidJS and Shadcn UI libraries, and enabling efficient development workflows with reusable context.

Capabilities Granted for react-to-solid MCP Server

Converting React components to SolidJS for improved performance
Generating SolidJS equivalents for existing React applications
Referencing transformation rules for Zaidan project development

! Prerequisites & Limits

  • Does not perform transformations itself, requires referencing by other transformation agents
  • Specific to React-to-SolidJS transformations, limited to SolidJS and Shadcn UI ecosystems
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

widget-generator is an open-source AI agent skill for creating widget plugins that are injected into prompt feeds on prompts.chat. It supports two rendering modes: standard prompt widgets using default PromptCard styling and custom render widgets built as full React components.

149.6k
0
Design

chat-sdk

Logo of lobehub
lobehub

chat-sdk is a unified TypeScript SDK for building chat bots across multiple platforms, providing a single interface for deploying bot logic.

73.0k
0
Communication

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