Usage

Share stroke styling between shapes.

tsx
// Share stroke styling between shapes.
import { Circle, Drawing, Path, type ShapePaint } from 'kuito';

// The app's icon strokes, shared by every shape that draws one.
const iconStroke: ShapePaint = {
  fill: 'none',
  stroke: '#1c1c1e',
  strokeWidth: 2,
  strokeLinecap: 'round',
  strokeLinejoin: 'round',
};

<Drawing label="Search" viewBox={[0, 0, 24, 24]} width={24} height={24}>
  <Circle cx={11} cy={11} r={7} {...iconStroke} />
  <Path d="M16 16l5 5" {...iconStroke} />
</Drawing>;

Type declaration

ts
export interface ShapePaint {
  /** A hex color, or `none`; black by default. */
  fill?: string;
  fillRule?: FillRule;
  /** A hex color, or `none`, the default. */
  stroke?: string;
  /** In user units; 1 by default. */
  strokeWidth?: number;
  strokeLinecap?: StrokeLinecap;
  strokeLinejoin?: StrokeLinejoin;
  strokeMiterlimit?: number;
  /** Dash and gap lengths in user units, repeated. */
  strokeDasharray?: readonly number[];
  strokeDashoffset?: number;
  /** Multiplies with its Groups' opacity. */
  opacity?: number;
  /** In user units, then `rotate` in degrees and `scale`, about the origin. */
  translateX?: number;
  translateY?: number;
  scale?: number;
  rotate?: number;
}

Members 14

NameTypeRequiredDescription
fillstringNoA hex color, or none; black by default.
fillRuleFillRuleNo—
strokestringNoA hex color, or none, the default.
strokeWidthnumberNoIn user units; 1 by default.
strokeLinecapStrokeLinecapNo—
strokeLinejoinStrokeLinejoinNo—
strokeMiterlimitnumberNo—
strokeDasharrayreadonly number[]NoDash and gap lengths in user units, repeated.
strokeDashoffsetnumberNo—
opacitynumberNoMultiplies with its Groups' opacity.
translateXnumberNoIn user units, then rotate in degrees and scale, about the origin.
translateYnumberNo—
scalenumberNo—
rotatenumberNo—
Generated from the public TypeScript declarations: signatures, props and defaults come from the checked source, descriptions from its JSDoc. No defaults are invented.