Skip to content
Lenso UI

Code

Migration guide for Code from HeroUI v2 to v3

The Code component has been removed in HeroUI v3. Use native HTML <code> element with Tailwind CSS classes instead.

Key Changes

1. Component Removal

v2: <Code> component from @lenso/ui
v3: Native HTML <code> element with Tailwind classes

2. Variants Mapping

The v2 Code component had the following variants that need to be replaced:

v2 Variantv3 EquivalentNotes
color="default"bg-default/40 text-default-700Use Tailwind opacity utilities
color="primary"bg-accent/20 text-accent-600primary renamed to accent
color="secondary"bg-default/40 text-default-700Similar to default
color="success"bg-success/20 text-success-700Same color name
color="warning"bg-warning/20 text-warning-700Same color name
color="danger"bg-danger/20 text-danger-600Same color name
size="sm"text-smTailwind text size
size="md"text-baseTailwind text size
size="lg"text-lgTailwind text size
radius="none"rounded-noneTailwind border radius
radius="sm"rounded-smTailwind border radius
radius="md"rounded-mdTailwind border radius
radius="lg"rounded-lgTailwind border radius
radius="full"rounded-fullTailwind border radius

Structure Changes

In v2, Code was a component wrapper around the native <code> element:

import { Code } from "@lenso/ui";
export default function App() {  return <Code>npm install @lenso/ui</Code>;}

In v3, use the native <code> element directly with Tailwind CSS classes:

export default function App() {  return (    <code className="px-2 py-1 h-fit font-mono font-normal inline-block whitespace-nowrap rounded-sm bg-default/40 text-default-700 text-sm">      npm install @lenso/ui    </code>  );}

Migration Examples

Variants

{/* Colors */}<Code color="primary">Primary code</Code><Code color="success">Success code</Code>
{/* Sizes */}<Code size="md">Medium code</Code>

Combined Variants

<Code color="primary" size="md" radius="lg">  npm install @lenso/ui</Code>

Creating a Reusable Code Component (Optional)

If you use inline code frequently, you can create a simple wrapper component:

import { Code } from "@lenso/ui";
<Code color="primary" size="md">Code snippet</Code>

Complete Example

import { Code } from "@lenso/ui";
export default function App() {  return (    <div className="space-y-4">      <p>        Install HeroUI with <Code>npm install @lenso/ui</Code>      </p>      <div className="flex gap-2">        <Code color="primary">Primary</Code>        <Code color="success">Success</Code>        <Code color="warning">Warning</Code>        <Code color="danger">Danger</Code>      </div>      <div className="flex gap-2 items-center">        <Code size="sm">Small</Code>        <Code size="md">Medium</Code>        <Code size="lg">Large</Code>      </div>    </div>  );}

Base Styles Reference

The v2 Code component used these base styles that you should include:

  • px-2 - Horizontal padding
  • py-1 - Vertical padding
  • h-fit - Height fits content
  • font-mono - Monospace font family
  • font-normal - Normal font weight
  • inline-block - Inline block display
  • whitespace-nowrap - Prevent text wrapping

Summary

  1. Component Removed: Code component no longer exists in v3
  2. Import Change: Remove import { Code } from "@lenso/ui"
  3. Use Native Element: Replace with native <code> HTML element
  4. Styling: Apply Tailwind CSS classes directly
  5. Color Mapping: primary → accent in v3

Migration Steps

  1. Remove Import: Remove Code from @lenso/ui imports
  2. Replace Component: Replace all <Code> instances with <code> elements
  3. Add Tailwind Classes: Apply equivalent Tailwind classes for styling
  4. Update Colors: Change color="primary" to use accent color classes
  5. Optional: Create a reusable wrapper component if you use inline code frequently