Buttons
The button component supports multiple semantic colors and variants, using clean class compositions like btn primary, btn flat, btn outline, or btn link.
Default Style
Standard button with full background coloring and click/hover transformations.
<button class="btn primary">Primary</button> <button class="btn secondary">Secondary</button> <button class="btn success">Success</button> <button class="btn warning">Warning</button> <button class="btn alert">Alert</button> <button class="btn info">Info</button>
Flat Button Style
Button with a flat appearance that hides backgrounds and borders by default, displaying a subtle highlight only on hover.
<button class="btn flat">Default Flat</button> <button class="btn flat primary">Primary Flat</button> <button class="btn flat success">Success Flat</button>
Outline Button Style
Button with transparent background, colored border, and matching text color.
<button class="btn outline">Default Outline</button> <button class="btn outline primary">Primary Outline</button> <button class="btn outline success">Success Outline</button>
Link Button Style
Button styled to look like a standard anchor link, showing text underline and color transitions on hover.
<button class="btn link">Link Button</button>
Button Sizes
Button heights can be customized with size classes: mini (20px), small (26px), medium (30px), default (36px), and large (54px).
<button class="btn primary mini">Mini (20px)</button> <button class="btn primary small">Small (26px)</button> <button class="btn primary medium">Medium (30px)</button> <button class="btn primary">Default (36px)</button> <button class="btn primary large">Large (54px)</button>
Buttons with Icons
Buttons support inline icons (such as developer emojis) which automatically align using flex layout and spacing gaps.
<!-- Icon Before Text --> <button class="btn primary">🏠 Home</button> <button class="btn success">💾 Save</button> <!-- Icon After Text --> <button class="btn secondary">Next ➡️</button> <!-- Icon Only --> <button class="btn alert" title="Delete">🗑️</button>
Button Groups
Groups a series of buttons together on a single line. The borders automatically overlap and the corner margins collapse cleanly.
Basic Button Group
Mixed Colored Group
Sizing Variations (.btn-group-lg, default, .btn-group-sm)
Vertical Button Group
<!-- Basic Button Group -->
<div class="btn-group">
<button class="btn secondary">Left</button>
<button class="btn secondary">Middle</button>
<button class="btn secondary">Right</button>
</div>
<!-- Button Group Sizing (Large) -->
<div class="btn-group btn-group-lg">
<button class="btn primary">Left</button>
<button class="btn primary">Middle</button>
<button class="btn primary">Right</button>
</div>
<!-- Vertical Button Group -->
<div class="btn-group-vertical">
<button class="btn primary">Top Item</button>
<button class="btn primary">Middle Item</button>
<button class="btn primary">Bottom Item</button>
</div>
Usage Reference
Combine these classes on standard <button> or <a> elements to style buttons in FrankUI.
| Feature | Class Composition | Usage Description |
|---|---|---|
| Base Button | .btn | Applies base button box styling, transitions, hover scales, and margins. |
| Semantic Colors | .primary / .secondary / .success .warning / .alert / .info |
Applies semantic colored backgrounds (or text borders for outlines/flat buttons). |
| Visual Variants | .flat / .outline / .link |
Flat: Transparent background, fills on hover. Outline: Transparent background, borders styled to match, fills on hover. Link: Looks like a hyperlink, underlines on hover. |
| Sizing Scales | .mini / .small / .medium / .large | Modifies button height, padding, and font sizes (default is 36px/medium). |
| Button Groups | .btn-group / .btn-group-vertical | Wraps multiple buttons to align them inline (horizontally or vertically) with joint borders. |