Button

The generic `.btn` primitive with size and variant modifiers — covers most non-premium buttons.

Updated 2026-08-23

On this page

.btn is Bifrost’s generic button primitive: inline-flex, padded, rounded, with a subtle shine effect on hover. Use it for normal buttons; reach for glass-cloud-button only when you want premium / lead-card prominence.

Source: themes/bifrost/sass/components/_button.scss

Anatomy#

TokenValue
Displayinline-flex, items + content centered
Gap$spacing-xs
Padding$spacing-sm $spacing-lg
Radius$border-radius-md
Font$font-size-base, weight 500, line-height: 1.5
Transitionall 0.3s ease
::beforeSubtle shine animation that sweeps across on hover.

Variants (modifiers)#

ModifierWhat
.btn--primaryAccent background, light text. The default visual.
.btn--secondaryOutlined: transparent background, accent border.
.btn--ghostBorderless, fades in background on hover.
.btn--smSmaller padding + font-size.
.btn--lgLarger padding + font-size.

When NOT to use this#

For premium / lead-position CTAs (the “Read in Book” library button, edit-footer history/edit buttons) use glass-cloud-button — it matches the glass-cloud-card visual language.

Edit this page on GitHub