TypeScript Types

All types used in generated components

type

IconVariant

Icon display variants

TypeScript
type IconVariant = "solid" | "original" | "gradient" | "multicolor";
type

FitMode

Icon size adaptation mode

TypeScript
type FitMode = "contain" | "cover" | "tight";
type

GradientDirection

Linear gradient direction

TypeScript
type GradientDirection = "horizontal" | "vertical";
type

GradientType

Gradient type

TypeScript
type GradientType = "linear" | "radial" | "angular" | "diamond";
interface

IconProps

Main icon component props

TypeScript
type IconProps = Omit<React.SVGProps<SVGSVGElement>, "name" | "width" | "height"> & {
  // Base props
  name: string;                    // Icon name
  variant?: IconVariant;           // Variant (default: "solid")

  // Sizes
  size?: number | string;          // Size (width)
  width?: number | string;         // Width (override)
  height?: number | string;        // Height (override)

  // Colors
  color?: string;                  // Main color

  // Multicolor variant: dynamic colors
  color1?: string;                 // Color 1
  color2?: string;                 // Color 2
  color3?: string;                 // Color 3
  // ... colorN

  // Gradient options (only for variant="gradient")
  gradientType?: GradientType;     // Gradient type (default: "linear")
  gradientDirection?: GradientDirection; // Direction for linear
  gradientAngle?: number;          // Angle for angular/diamond (default: 0)
  gradientRadius?: number;         // Radius for radial (default: 50)
  colorFirst?: string;             // Gradient start color
  colorSecond?: string;            // Gradient end color
  offsetFirst?: string;            // Start position (default: "0%")
  offsetSecond?: string;           // End position (default: "100%")

  // Opacity
  opacity?: number;                // Opacity (0-1, default: 1)

  // Shadow options
  shadow?: boolean;                // Enable shadow
  shadowColor?: string;            // Shadow color (default: "#000000")
  shadowBlur?: number;             // Shadow blur (default: 4)
  shadowOffsetX?: number;          // X offset (default: 0)
  shadowOffsetY?: number;          // Y offset (default: 2)
  shadowOpacity?: number;          // Shadow opacity (default: 0.3)

  // Fit mode
  fit?: FitMode;                   // Fit mode (default: "contain")
};

Important!

Props color1, color2, color3... work only for variant="multicolor"

Variants

  • solid - monochrome icon (uses currentColor)
  • original - original colors from SVG
  • gradient - gradient (linear, radial, angular, diamond)
  • multicolor - multicolor icon with dynamic colors

Sizes

size sets the width. Height is calculated automatically based on viewBox to preserve proportions. Can be overridden via width and height.

Usage Examples

Basic usage

React TSX
<Icon name="my-icon" size={32} />

Multicolor with dynamic colors

React TSX
<Icon
  name="my-icon"
  variant="multicolor"
  size={32}
  color1="#FF5733"
  color2="#33FF57"
  color3="#3357FF"
/>

Gradient

React TSX
<Icon
  name="my-icon"
  variant="gradient"
  gradientType="linear"
  gradientDirection="vertical"
  colorFirst="#8B5CF6"
  colorSecond="#EC4899"
/>

With shadow

React TSX
<Icon
  name="my-icon"
  size={32}
  shadow={true}
  shadowColor="#000000"
  shadowBlur={8}
  shadowOpacity={0.4}
/>

Opacity

React TSX
<Icon
  name="my-icon"
  size={32}
  opacity={0.5}
/>