Preview Updated 2026-05-10

Link

Design-consistent link styling — 4 variants, 3 sizes, auto external link detection, can be disabled.

Basic usage

The two most common cases — in-page anchor jumps and external URLs. External links (href starting with http:// or https://) automatically get a trailing icon and rel="noopener noreferrer".

<CfLink href="#getting-started">Go to getting started</CfLink>
<CfLink href="https://github.com/chenqi92/chufix">GitHub repo</CfLink>
<CfLink href="#getting-started">Go to getting started</CfLink>
<CfLink href="https://github.com/chenqi92/chufix">GitHub repo</CfLink>

Four variants

  • default — accent color, underline on hover
  • subtle — inherits parent text color, underlines on hover (great inside body paragraphs)
  • underline — always underlined (extra emphasis on clickability)
  • inverse — for use inside an inverse panel (accent background) to avoid clashing with the background
<CfLink href="#" variant="default">default</CfLink>
<CfLink href="#" variant="subtle">subtle</CfLink>
<CfLink href="#" variant="underline">underline</CfLink>
<div style="background: var(--accent-1); color: var(--fg-on-accent); padding: 6px 10px;">
<CfLink href="#" variant="inverse">inverse</CfLink>
</div>
<CfLink href="#" variant="default">default</CfLink>
<CfLink href="#" variant="subtle">subtle</CfLink>
<CfLink href="#" variant="underline">underline</CfLink>
<div style={{ background: 'var(--accent-1)', color: 'var(--fg-on-accent)', padding: '6px 10px' }}>
<CfLink href="#" variant="inverse">inverse</CfLink>
</div>

Three triggers cause the component to treat a link as external — auto trailing icon + rel="noopener noreferrer":

  • href starts with http:// / https://
  • explicit external prop
  • target="_blank"
<CfLink href="https://github.com/chenqi92/chufix">Auto-detected</CfLink>
<CfLink href="/internal" external>Explicit external</CfLink>
<CfLink href="#" target="_blank">target=_blank</CfLink>
<CfLink href="https://github.com/chenqi92/chufix">Auto-detected</CfLink>
<CfLink href="/internal" external>Explicit external</CfLink>
<CfLink href="#" target="_blank">target=_blank</CfLink>

Sizes / disabled

size controls font size; disabled blocks clicks and grays the cursor.

<CfLink href="#" size="sm">Small</CfLink>
<CfLink href="#" size="md">Default</CfLink>
<CfLink href="#" size="lg">Large</CfLink>
<CfLink href="#" disabled>Disabled</CfLink>
<CfLink href="#" size="sm">Small</CfLink>
<CfLink href="#" size="md">Default</CfLink>
<CfLink href="#" size="lg">Large</CfLink>
<CfLink href="#" disabled>Disabled</CfLink>

API

PropTypeDefaultDescription
hrefstringLink URL
targetstringSame as native <a target>
relstringautoAuto-set to noopener noreferrer for external links
externalbooleanfalseMark as external; shows trailing icon
variant'default' | 'subtle' | 'inverse' | 'underline''default'Visual mode
size'sm' | 'md' | 'lg''md'Font size
disabledbooleanfalseDisabled

反馈与讨论

Link · Discussion

0
0 / 600
一键发送
正在加载评论...