Bulma is a modern CSS framework based on Flexbox. https://bulma.io/ https://github.com/jgthms/bulma # Common frontend components **Layout:** - **Container** – Centers and constrains content width. - **Section** – Large spacing block for grouping content. - **Hero** – Full-width banner for headers or landing pages. - **Footer** – Page footer area. - **Columns** – Responsive grid system using Flexbox. - **Tile** – Complex layouts for cards and media objects. **Navigation:** - **Navbar** – Responsive navigation bar with branding and links. - **Tabs** – Horizontal tab navigation. - **Breadcrumb** – Hierarchical navigation trail. - **Pagination** – Page navigation controls. **Forms:** - **Input** – Text fields, email, password, etc. - **Textarea** – Multi-line text input. - **Select** – Dropdown menus. - **Checkbox & Radio** – Form controls. - **File Upload** – Styled file input. - **Buttons** – Primary, link, outlined, etc. - **Field & Control** – Form grouping and alignment. **Content:** - **Typography** – Titles, subtitles, headings, text helpers. - **Image** – Responsive image container. - **Icon** – Font Awesome or custom icons. - **Media Object** – Layout for image + text. - **Notification** – Alert messages. - **Tag** – Small label elements. - **Progress Bar** – Loading indicators. **Cards & Panels:** - **Card** – Content container with header, body, footer. - **Panel** – Sidebar-like component for menus or lists. - **Box** – Simple bordered container. **Modals & Interactives:** - **Modal** – Popup dialog. - **Dropdown** – Interactive menu. - **Message** – Dismissible alert box. - **Tooltip** – Hover info (requires JS). **Helpers & Utilities:** - **Spacing Helpers** – Margin/padding classes. - **Color Helpers** – Text and background colors. - **Visibility Helpers** – Show/hide on breakpoints. - **Flexbox Helpers** – Alignment and distribution. ## Component Reference Table | **Component** | **Description** | **Bulma Classes** | **Sass Customization Tips** | | ---------------------- | ------------------------------------------------- | ------------------------------------------ | ------------------------------------------------------- | |
**Layout** | | | | | Container | Centers content and sets max width | `.container` | `$container-max-width` | | Section | Large spacing block for grouping content | `.section` | `$section-padding` | | Hero | Full-width banner for headers or landing pages | `.hero`, `.hero-body` | `$hero-body-padding`, `$hero-background-color` | | Footer | Page footer area | `.footer` | `$footer-background-color`, `$footer-padding` | | Columns | Responsive grid system using Flexbox | `.columns`, `.column` | `$column-gap`, `$column-padding` | | Tile | Complex layouts for cards and media objects | `.tile` | `$tile-spacing` | |
**Navigation** | | | | | Navbar | Responsive navigation bar with branding and links | `.navbar`, `.navbar-item` | `$navbar-background-color`, `$navbar-height` | | Tabs | Horizontal tab navigation | `.tabs`, `.is-active` | `$tabs-border-color`, `$tabs-link-color` | | Breadcrumb | Hierarchical navigation trail | `.breadcrumb` | `$breadcrumb-item-color`, `$breadcrumb-separator-color` | | Pagination | Page navigation controls | `.pagination`, `.pagination-link` | `$pagination-color`, `$pagination-hover-color` | |
**Forms** | | | | | Input | Text fields, email, password, etc. | `.input` | `$input-background-color`, `$input-border-color` | | Textarea | Multi-line text input | `.textarea` | `$textarea-background-color` | | Select | Dropdown menus | `.select` | `$select-background-color` | | Checkbox & Radio | Form controls | `.checkbox`, `.radio` | `$control-margin` | | File Upload | Styled file input | `.file` | `$file-cta-background-color`, `$file-name-color` | | Buttons | Primary, link, outlined, etc. | `.button`, `.is-primary`, `.is-link` | `$button-background-color`, `$button-border-radius` | | Field & Control | Form grouping and alignment | `.field`, `.control` | `$field-margin`, `$control-padding` | |
**Content** | | | | | Typography | Titles, subtitles, headings, text helpers | `.title`, `.subtitle`, `.has-text-*` | `$title-color`, `$subtitle-color` | | Image | Responsive image container | `.image` | `$image-radius` | | Icon | Font Awesome or custom icons | `.icon` | `$icon-size` | | Media Object | Layout for image + text | `.media`, `.media-left`, `.media-content` | `$media-spacing` | | Notification | Alert messages | `.notification` | `$notification-background-color` | | Tag | Small label elements | `.tag` | `$tag-background-color`, `$tag-radius` | | Progress Bar | Loading indicators | `.progress` | `$progress-bar-background-color` | |
**Cards & Panels** | | | | | Card | Content container with header, body, footer | `.card`, `.card-header`, `.card-footer` | `$card-radius`, `$card-shadow` | | Panel | Sidebar-like component for menus or lists | `.panel`, `.panel-block` | `$panel-background-color`, `$panel-border-color` | | Box | Simple bordered container | `.box` | `$box-radius`, `$box-shadow` | | Interactive | | | | | Modal | Popup dialog | `.modal`, `.modal-content` | `$modal-background-color`, `$modal-radius` | | Dropdown | Interactive menu | `.dropdown`, `.dropdown-menu` | `$dropdown-background-color`, `$dropdown-radius` | | Message | Dismissible alert box | `.message`, `.message-header` | `$message-background-color`, `$message-radius` | | Tooltip | Hover info (requires JS) | `.has-tooltip` | `$tooltip-background-color`, `$tooltip-radius` | |
**Helpers** | | | | | Spacing Helpers | Margin/padding classes | `.m-*`, `.p-*` | `$spacing-scale` | | Color Helpers | Text and background colors | `.has-text-*`, `.has-background-*` | `$colors` map | | Visibility | Show/hide on breakpoints | `.is-hidden-*`, `.is-flex-*` | `$breakpoints` map | | Flexbox Helpers | Alignment and distribution | `.is-flex`, `.is-justify-*`, `.is-align-*` | `$flexbox-helpers` |