# Buttons & Links

> Primary, secondary and text-link buttons on renovare.org, the versions for dark bands, hover behavior and ordering rules.

*One solid button, then outlines, then links.*

## Primary

Hover: the fill darkens to Primary 600 and grows to 110%. On the live site the button also follows the cursor slightly (magnetic hover).

Site partial: `_components/buttons/button_primary`

```html
<a href="#" class="group relative inline-flex flex-col justify-center items-center min-h-8 px-6 py-3 text-lg leading-none font-medium text-white focus:outline-none transition duration-200">
  <span class="absolute inset-0 rounded bg-primary group-hover:bg-primary-600 group-hover:scale-110 group-focus-visible:border-[3px] border-primary-900 transition-all duration-200"></span>
  <span class="relative text-center">Join Email Community</span>
</a>
```

## Secondary

Site partial: `_components/buttons/button_secondary`

```html
<a href="#" class="group relative inline-flex flex-col justify-center items-center min-h-8 px-6 py-3 text-lg leading-none font-medium text-neutral-900 hover:text-neutral-700 focus:outline-none transition duration-200">
  <span class="absolute inset-0 rounded border-2 border-primary-900 group-hover:bg-neutral-400 group-hover:scale-110 group-focus-visible:border-[3px] group-focus-visible:bg-neutral-300 transition-all duration-200"></span>
  <span class="relative inline-flex items-center justify-center gap-2">Learn More</span>
</a>
```

## Text link

Hover: a dark line wipes in over the green underline, left to right.

Site partial: `_components/buttons/button_tertiary`

```html
<a href="#" class="group relative inline-flex flex-col text-sm font-medium focus:outline-none">
  <span class="relative flex items-center gap-2">Explore <svg class="w-3 h-3 text-primary-400 fill-current" viewBox="0 0 18 16" aria-hidden="true"><path fill-rule="evenodd" d="M17.4971 7.98964L10.0085 15.4783L8.59425 14.0641L13.6687 8.98964L0 8.98964L0 6.98964L13.6687 6.98964L8.59425 1.91519L10.0085 0.500976L17.4971 7.98964Z"/></svg></span>
  <span class="relative w-full h-[2px] pt-1 pb-0.5 overflow-hidden">
    <span class="absolute top-1 inset-x-0 h-[2px] bg-primary-400"></span>
    <span class="absolute top-1 inset-x-0 h-[2px] bg-neutral -translate-x-full group-hover:translate-x-0 transition duration-200 ease-in-out-circ"></span>
  </span>
</a>
```

## Groups

First button solid, the rest outlined, then text links.

```html
<div class="flex flex-wrap items-center gap-6">
  <a href="#" class="group relative inline-flex flex-col justify-center items-center min-h-8 px-6 py-3 text-lg leading-none font-medium text-white focus:outline-none transition duration-200">
  <span class="absolute inset-0 rounded bg-primary group-hover:bg-primary-600 group-hover:scale-110 group-focus-visible:border-[3px] border-primary-900 transition-all duration-200"></span>
  <span class="relative text-center">Register</span>
</a>
  <a href="#" class="group relative inline-flex flex-col justify-center items-center min-h-8 px-6 py-3 text-lg leading-none font-medium text-neutral-900 hover:text-neutral-700 focus:outline-none transition duration-200">
  <span class="absolute inset-0 rounded border-2 border-primary-900 group-hover:bg-neutral-400 group-hover:scale-110 group-focus-visible:border-[3px] group-focus-visible:bg-neutral-300 transition-all duration-200"></span>
  <span class="relative inline-flex items-center justify-center gap-2">See the Schedule</span>
</a>
  <a href="#" class="group relative inline-flex flex-col text-sm font-medium focus:outline-none">
  <span class="relative flex items-center gap-2">Read the FAQ <svg class="w-3 h-3 text-primary-400 fill-current" viewBox="0 0 18 16" aria-hidden="true"><path fill-rule="evenodd" d="M17.4971 7.98964L10.0085 15.4783L8.59425 14.0641L13.6687 8.98964L0 8.98964L0 6.98964L13.6687 6.98964L8.59425 1.91519L10.0085 0.500976L17.4971 7.98964Z"/></svg></span>
  <span class="relative w-full h-[2px] pt-1 pb-0.5 overflow-hidden">
    <span class="absolute top-1 inset-x-0 h-[2px] bg-primary-400"></span>
    <span class="absolute top-1 inset-x-0 h-[2px] bg-neutral -translate-x-full group-hover:translate-x-0 transition duration-200 ease-in-out-circ"></span>
  </span>
</a>
</div>
```

## On dark bands

On Green, Navy and Plum bands. The solid button turns white with dark text.

Shown on: green background.

```html
<div class="flex flex-wrap items-center gap-6">
  <a href="#" class="group relative inline-flex flex-col justify-center items-center min-h-8 px-6 py-3 text-lg leading-none font-medium text-neutral-900 transition duration-200">
    <span class="absolute inset-0 rounded bg-white group-hover:bg-neutral-200 group-hover:scale-110 transition-all duration-200"></span>
    <span class="relative">Give Monthly</span>
  </a>
  <a href="#" class="group relative inline-flex flex-col justify-center items-center min-h-8 px-6 py-3 text-lg leading-none font-medium text-white hover:text-neutral-900 transition duration-200">
    <span class="absolute inset-0 rounded border-2 border-white group-hover:bg-white group-hover:scale-110 transition-all duration-200"></span>
    <span class="relative">Learn More</span>
  </a>
  <a href="#" class="group relative inline-flex flex-col text-sm font-medium focus:outline-none">
  <span class="relative flex items-center gap-2">Read the Story <svg class="w-3 h-3 text-white fill-current" viewBox="0 0 18 16" aria-hidden="true"><path fill-rule="evenodd" d="M17.4971 7.98964L10.0085 15.4783L8.59425 14.0641L13.6687 8.98964L0 8.98964L0 6.98964L13.6687 6.98964L8.59425 1.91519L10.0085 0.500976L17.4971 7.98964Z"/></svg></span>
  <span class="relative w-full h-[2px] pt-1 pb-0.5 overflow-hidden">
    <span class="absolute top-1 inset-x-0 h-[2px] bg-white/60"></span>
    <span class="absolute top-1 inset-x-0 h-[2px] bg-white -translate-x-full group-hover:translate-x-0 transition duration-200 ease-in-out-circ"></span>
  </span>
</a>
</div>
```

## Rules

- **One primary button per group.** The first button is solid; any others are outlined; extra options are text links.
- Labels are Title Case, two to four words, starting with a verb where possible: “Join Email Community,” “Watch Replay.”
- Never put buttons inside rich text; add them as a Buttons block.
- Don't change button colors to match an accent. Buttons are always green, white or outlined.
- Every button needs a visible focus state (the thicker border shown when tabbing).
