Buttons¶
NeoAbs provides button variants built on the design tokens. All buttons use Space Grotesk and inherit accent colors from the palette.
Note
The base .neoabs-button, .neoabs-button--icon, and .neoabs-button--primary classes are implemented in the theme. The additional variants shown below (--accent, --ghost, --pill, --sm, --lg) are part of the design system specification. Add them to your custom CSS if needed.
Variants¶
Default¶
The standard button. Uses the accent color for its background.
<button class="neoabs-btn">Default</button>
.neoabs-button {
font-family: var(--neoabs-font-display);
font-size: var(--neoabs-text-sm);
font-weight: 500;
padding: 0.5rem 1.25rem;
border-radius: 8px;
background: var(--neoabs-accent);
color: var(--neoabs-canvas);
border: none;
cursor: pointer;
transition: background 0.2s ease;
}
.neoabs-button:hover {
background: var(--neoabs-accent-hover);
}
Accent (outline)¶
A bordered variant that uses the accent color for its border and text, with a transparent background.
<button class="neoabs-btn neoabs-btn--accent">Accent</button>
.neoabs-button--accent {
background: transparent;
color: var(--neoabs-accent);
border: 1px solid var(--neoabs-accent);
}
.neoabs-button--accent:hover {
background: var(--neoabs-accent-faint);
}
Ghost¶
No background, no border. Pure text that inherits the accent color on hover.
<button class="neoabs-btn neoabs-btn--ghost">Ghost</button>
.neoabs-button--ghost {
background: transparent;
color: var(--neoabs-ink-muted);
border: none;
}
.neoabs-button--ghost:hover {
color: var(--neoabs-accent);
}
Pill¶
A rounded, filled variant for prominent calls to action.
<button class="neoabs-btn neoabs-btn--pill">Pill</button>
.neoabs-button--pill {
border-radius: 9999px;
padding: 0.5rem 1.5rem;
background: var(--neoabs-accent);
color: var(--neoabs-canvas);
font-weight: 600;
}
Sizes¶
| Size | Padding | Font size |
|---|---|---|
| Small | 0.35rem 0.75rem |
0.75rem |
| Default | 0.5rem 1.25rem |
0.875rem |
| Large | 0.65rem 1.75rem |
1rem |
<button class="neoabs-btn neoabs-btn--sm">Small</button>
<button class="neoabs-btn">Default</button>
<button class="neoabs-btn neoabs-btn--lg">Large</button>
Disabled state¶
.neoabs-button:disabled {
opacity: 0.4;
cursor: not-allowed;
pointer-events: none;
}
Note
Disabled buttons use opacity rather than color changes. This keeps the visual language consistent across light and dark modes.
Usage guidelines¶
- Use default for primary actions (submit, save, confirm)
- Use accent for secondary actions (cancel, learn more)
- Use ghost for tertiary actions (dismiss, close, skip)
- Use pill sparingly for hero sections and key CTAs
Tip
Limit buttons to one primary action per view. Too many filled buttons compete for attention and reduce clarity.