iso27diy-corp/website-code/Bulma frontend components.md

115 lines
9.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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** |
| ---------------------- | ------------------------------------------------- | ------------------------------------------ | ------------------------------------------------------- |
| <br>**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` |
| <br>**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` |
| <br>**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` |
| <br>**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` |
| <br>**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` |
| <br>**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` |