Files
wursor/web/src/ui/Icon.tsx
T
Claude 0cff3902b2 feat(web): Product, How it works, Trust, Pricing and Docs pages, with a marketing e2e check
Pricing shows no plans, prices or free trial until decided. Docs search and articles without pages are shown but not linked. Disables the agent file that next dev generates.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014SdXCbrN5PtGExkpvMaMHx
2026-10-12 15:34:50 +00:00

19 lines
1.1 KiB
TypeScript

import type { CSSProperties } from 'react';
export type IconName =
| 'activity' | 'arrow-right' | 'bell' | 'board' | 'check' | 'camera' | 'check-circle' | 'chevron-down' | 'chevron-right' | 'chevron-up' | 'clock' | 'close' | 'credit-card' | 'dots'
| 'eye' | 'globe' | 'help' | 'home' | 'key' | 'list' | 'loader' | 'lock' | 'menu' | 'mic' | 'monitor' | 'paperclip'
| 'pencil' | 'plug' | 'plus' | 'pointer' | 'refresh' | 'rocket' | 'search' | 'shield-check' | 'sidebar' | 'sliders'
| 'shield' | 'smartphone' | 'sparkles' | 'split' | 'stop' | 'undo' | 'user' | 'x';
type Props = { name: IconName; size?: number; className?: string };
/**
* Draws a single-colour Figma icon (public/icons) with a CSS mask, so its colour is the
* text colour of the surrounding element and follows the theme. The SVG is the exact Figma export.
*/
export function Icon({ name, size = 16, className }: Props) {
const style = { '--icon-src': `url(/icons/${name}.svg)`, width: size, height: size } as CSSProperties;
return <span aria-hidden="true" className={['icon', className].filter(Boolean).join(' ')} style={style} />;
}