Buma UI - DocumentationBuma UI - Documentation
Get Started
Foundations
Components
Resources
Patterns
Data Visualization
Back to BSpace
Get Started
Foundations
Components
Resources
Patterns
Data Visualization
  • stacksFoundations
    • 💡 Overview
    • Color
    • Principle
    • Typography
  • brickComponents
    • 💡 Overview
    • Accordion
    • Alert
    • Avatar
    • Badge
    • Bottom Sheet
    • Bread Crumb
    • Button
    • Button Link
    • Button Navigation
    • Calendar
    • Card
    • Chat
    • Checkbox
    • Chips
    • Choice Tile
    • Comment
    • Date Picker
    • Divider
    • Download
    • Drawer
    • Dropdown
    • Empty State
    • Floating Button
    • Form Input
    • Header
    • Hint
    • Icon
    • List Choice
    • Loading
    • Modal
    • Navigation Bar
    • Notification
    • Pagination
    • Progress Bar
    • Radio Button
    • Search
    • Scrolling Bar
    • Segmented Switch
    • Side Menu
    • Side Tab
    • Slider
    • Switch
    • Tab
    • Table
    • Text Area
    • Text Input
    • Time Picker
    • Title
    • Toast
    • Tooltip
    • Wizzard
  • splitscreenPattern
    • 💡 Overview
    • Filter
      upcoming
    • Form
      upcoming
    • Notification
    • PWA
      upcoming
    • table
      upcoming
    • Upload Download
      upcoming
  • insert_chartData Visualization
    • 💡 Overview
    • Tiering
    • Pattern
    • Chart and Graph
      • Chart Selection Guide
      • Map Selector
      • Donut Chart
      • Donut Progress Bar Chart
      • Spider Chart
      • Line Chart
      • Chart Area
      • Speedometer
      • Heat Map
      • Scatter Plot
      • Pie Chart
      • Bar Chart
      • Waterfall Chart
      • Sunburst Chart
      • Tree Decomposition Chart
      • Scorecards
      • Table
      • Micro Visualization
    • Typography
    • Color Palette
  • data_objectTokens
    upcoming
  • inventory_2Resources
    • 💡 Overview
    • Mobile
      new
      • 💡 Introduction
      • Installation
      • General
        • Important Rules
        • Naming Convention
        • Clean Architecture
    • Web
      upcoming
ComponentsCardA UI (User Interface) card is a graphical element that is used in web or mobile interfaces to present a small amount of information in a concise and visually appealing manner.
Guidelines
Web
Resources You can use these components by accessing the provided resource files.

Usage of ContentCard

The package is already installed in the repository's shell. To use the component, you only need to add the following code:

<BCardContent />

Attributes of ContentCard

If there is a question mark ? in the Data Type, it means that the properties are optional.

PropertyData TypeDescriptionDefault Value
radiusstringCard Content radius.'medium'
shadowstringCard Content shadow.none
borderColorstringCard Content border color.none
titlestringCard Content title.'Title Text'
hideHeaderbooleanIf true, the header will be hidden.none
titleClassstringCustom class for the title.none
headerClassstringCustom class for the header.none
bodyClassstringCustom class for the body.none

Usage of CardSection

The package is already installed in the repository's shell. To use the component, you only need to add the following code:

<BCardSection />

Attributes of CardSection

PropertyData TypeDescriptionDefault Value
titlestringCard Section title.none
radiusstringCard Content radius.'medium'
shadowstringCard Content shadow.none
borderColorstringCard Content border color.none
hideHeaderbooleanIf true, the header will be hidden.false
hideButtonbooleanIf true, the button will be hidden.false
buttonLabelstringCard Section button header label.none
buttonVariantstringCard Section button variant. Options: "primary", "secondary", "tertiary".none
titleClassstringCustom class for title.none
headerClassstringCustom class for header.none
bodyClassstringCustom class for body.none
buttonClassstringCustom class for button.none

Usage of CardProfile

The package is already installed in the repository's shell. To use the component, you only need to add the following code:

<BCardProfile />

Attributes of CardProfile

PropertyData TypeDescriptionDefault Value
radiusstringCard Content radius.'medium'
shadowstringCard Content shadow.none
namestringCard Profile name (required).none
functionstringCard Profile function.none
locationstringCard Profile location.none
emailstringCard Profile email.none
imageBackgroundstringCard Profile background image.none
imageProfilestringCard Profile image avatar.none
avatarEditablebooleanIf true, an edit button will appear when hovering over the avatar.none
borderColorstringCard Profile border color.none
buttonLabelstringCard Profile button label.'Action'
nameClassstringCustom class for name.none
bodyClassstringCustom class for body.none
buttonClassstringCustom class for button.none
avatarClassstringCustom class for avatar.none

Radius

The Cards component supports the following radius:

VariantRadius Value
none0px
small5px
medium10px
large20px
massive30px
circle50%

Shadow

The Cards component supports the following variants:

ConditionDescription
noneNo shadow
buttonApplies shadow suitable for buttons
cardApplies shadow for cards
card-hoverShadow effect on hover
toastShadow for toast notifications
side-menuShadow for side menus
toggleShadow for toggle elements
tooltipShadow for tooltips

Border Color

The Cards component supports the following bodercolor:

ConditionColor Code
succes#06873D
secondary#C67A17
danger#AB211E
info#0363B1
tertiary#E8ECF5
side-dark#333F47
Mobile
Resources
  • You can use these components by accessing the provided resource files.
  • Preview animations are examples and may not suit Mobile Widgets. Press 'View Code' to access the Widgetbook Playground and see the Flutter widget displaying all created components and interactive.

Usage

Import this line to your file:

import 'package:buma_design_system/buma_design_system.dart';

Attributes of all variants

If there is a question mark ? in the Data Type, it means that the properties are optional, this is namedConstructor from UICardMenu etc.

UICardMenu.base
  • Suitable for displaying content with a mix of visual and textual details
  • Allows users to interact with the content and, potentially, mark it as a favorite
PropertiesData TypeDescriptionDefault Value
iconWidget?Displays icon to the content card, the icon has maxWidth & maxHeight to adjust the size of the UInull
titleString?Displays title to the content cardnull
subTitleString?Displays subtitle to the content cardnull
enabledboolMake the card interactivetrue
isFavoriteboolMark if the card is a favoritefalse
valueHintint?Displays hint valuenull
onTapFavoriteVoidCallback?Callback when user tap favorite iconnull
onTapVoidCallback?Callback when user tap all content cardnull
UICardMenu.fullbox
  • Best for content that needs more visual emphasis or additional detail
  • Suitable for showcasing highlights, previewing content, or emphasizing specific elements
PropertiesData TypeDescriptionDefault Value
bannerWidget?Displays banner to top of the content card, the banner has static minHeight & maxHeight, to adjust the size of the UInull
iconWidget?Displays icon to the content card, the icon has maxWidth & maxHeight to adjust the size of the UInull
titleString?Displays title to the content cardnull
subTitleString?Displays subtitle to the content cardnull
enabledboolMake the card interactivetrue
isFavoriteboolMark if the card is a favoritefalse
valueHintint?Displays hint valuenull
onTapFavoriteVoidCallback?Callback when user tap favorite iconnull
onTapVoidCallback?Callback when user tap all content cardnull
UICardMenu.small
  • Useful for lists or areas where space is limited but interactivity is needed
  • Suitable for displaying concise content or options while retaining a clean look
PropertiesData TypeDescriptionDefault Value
iconWidget?Displays icon to the content card, the icon has maxWidth & maxHeight to adjust the size of the UInull
titleString?Displays title to the content cardnull
subTitleString?Displays subtitle to the content cardnull
enabledboolMake the card interactivetrue
isFavoriteboolMark if the card is a favoritefalse
valueHintint?Displays hint valuenull
onTapFavoriteVoidCallback?Callback when user tap favorite iconnull
onTapVoidCallback?Callback when user tap all content cardnull
UICardMenu.tiny
  • Best for very compact spaces, where only minimal information needs to be displayed
  • Suitable for displaying concise content or options while retaining a clean look
PropertiesData TypeDescriptionDefault Value
iconWidget?Displays icon to the content card, the icon has maxWidth & maxHeight to adjust the size of the UInull
titleString?Displays title to the content cardnull
subTitleString?Displays subtitle to the content cardnull
enabledboolMake the card interactivetrue
isFavoriteboolMark if the card is a favoritefalse
valueHintint?Displays hint valuenull
onTapFavoriteVoidCallback?Callback when user tap favorite iconnull
onTapVoidCallback?Callback when user tap all content cardnull
UICardSection
  • Useful for grouping related content, such as a list of items, tasks, or categories
  • Can support expandable or collapsible functionality for better space management
PropertiesData TypeDescription
titleString?Displays text title label
secondaryButtonUICardSecondaryButton?Displays secondary button in the right of header content
childWidget?Displays child content
UICardProfile
  • Best for displaying user information concisely while allowing users to expand for more details
  • Useful for user management screens, team overviews, or customer profiles
PropertiesData TypeDescription
avatarUIAvatarItem?Displays avatar at the card profile
emailString?Displays email user profile
additionalInfoString?Displays additional info user profile like, departmen or job position
coverWidget?Displays cover at top of UICardProfile
primaryButtonUICardButton?Displays primary button at the card profile
sizeUICardProfileSizeDiplays different size of card profile
UICardAccordion
  • Great for showing/hiding additional details
  • Ideal for menus, FAQs, or multi-step processes
PropertiesData TypeDescription
titleStrin?Displays text title label
titleTypeUILabelType?Displays different type size of title
borderColorColor?Displays border color card
childWidget?Displays content expanded
withColoredHeaderboolDisplays UIColors.primary500 into header when expanded
onChangevoid Function(bool isExpanded)?Callback function when the card is expanded or collapsed
UICardValue
  • Highlights important data or values at a glance
  • On this card the content has a list of key values
  • And has 2 additional optional buttons below it
PropertiesData TypeDescription
iconIconData?Displays icon at the left of the content
titleString?Displays title at the top of the content
badgeLabelString?Displays badge with text label
valuesList<UICardItem>?Displays list of items
leftButtonUICardButton?Displays left button
rightButtonUICardButton?Displays right button
UICardSummary
  • Suitable for overviews of data or progress
  • On this card the content has a list of key values
  • And has 2 additional optional buttons below it
PropertiesData TypeDescription
titleString?Displays title at the top of content
labelString?Displays label in the content
descString?Displays description info in the content
additionalInfoString?Displays additional info in the content
iconWidget?Displays icon in the center of content
colorUICardSummaryColorDisplays different constant color of content
typeUICardSummaryTypeDisplays different type of summary card
itemsList<UICardItem>?Displays list of items UICardSummaryType.soft
onTapVoidCallback?Callback when user tap card of UICardSummaryType.solid
UICardNavigation
  • Ideal for navigation menus or toolbars
  • Helps users quickly switch between different app sections
PropertiesData TypeDescription
menusList<UICardNavigationMenu>?Displays all menu of card navigation item title, icon, label, and desc
onTapValueChanged<int>?Give callback index int when user pressed

Previews & Code

You can call the components with Class.namedConstructor() with different variants

Card Base
 UICardMenu.base(
   icon: Image.asset(),
   title: 'Label',
   subTitle: 'Label',
   enabled: true,
   isFavorite: _isFavorite,
   valueHint: 1,
   onTapFavorite: (){
     // Do something
   },
   onTap: (){
     // Do something
   }
 )
Card Fullbox
 UICardMenu.fullbox(
   banner: Image.asset(),
   title: 'Label',
   subTitle: 'Label',
   enabled: true,
   isFavorite: _isFavorite,
   valueHint: 1,
   onTapFavorite: (){
     // Do something
   },
   onTap: (){
     // Do something
   }
 )
Card Small
 UICardMenu.base(
   icon: Image.asset(),
   title: 'Label',
   subTitle: 'Label',
   enabled: true,
   isFavorite: _isFavorite,
   valueHint: 1,
   onTapFavorite: (){
     // Do something
   },
   onTap: (){
     // Do something
   }
 )
Card Tiny
 UICardMenu.tiny(
   icon: Image.asset(),
   title: 'Label',
   subTitle: 'Label',
   enabled: true,
   onTap: () {
     // Do something
   }
 )
Card Section
UICardSection(
  title: 'Label',
  secondaryButton: UICardSecondaryButton(
    label: 'Label',
    onTap: () {
      // Do something
    },
  ),
  child: Widget()
)
Card Profile
UICardProfile.large(
  email: 'example@mail.com',
  additionalInfo: 'Function',
  cover: Widget(),
  avatar: UIAvatarItem(name: 'Name'),
  primaryButton: UICardButton(
    label: 'Label'
  ),
)
Card Accordion
 UICardAccordion.colored(
  title : 'Title Label',
  type: UILabelType.body,
  child: Widget()
)
Card Value
UICardValue(
  icon: Icons.flight,
  title: 'Title Card',
  values: List.generate(
    10,
    (index) => UICardItem(
      label: 'Label',
      value: 'Example index',
    ),
  ),
  badgeLabel: 'Badge Label',
  leftButton: UICardButton(
    label: 'Label',
    onTap: (){
      // Do something
    }
  ),
  rightButton: UICardButton(
    label: 'Label',
    onTap: (){
      // Do something
    },
  ),
)
Card Summary
  // Solid:
 UICardSummary.solid(
   title: 'Title',
   label: 'Label',
   desc: 'Example Description',
   additionalInfo: 'Information',
   icon: Icons.flight,
   color: UICardSummaryColor.green,
   onTap: (){
     // Do something
   }
)
Card Navigation
UICardNavigation(
  menus: [
    UICardNavigationMenu(
      title: 'Title',
      icon: Icons.flight,
      label: 'Label',
      desc: 'Description',
    ),
  ],
  onTap: (int index) {
    // Do something
  }
)

arrow_back
Previous Calendar
Next Chat
arrow_forward