@banzamel/mineralui
v0.10.3
Published
Modern React UI component framework with mineral dark aesthetic
Maintainers
Readme
MineralUI
React component framework for dashboards, admin panels, documentation shells, settings screens and data-heavy internal products.
- npm:
@banzamel/mineralui - version:
0.10.3 - peer dependencies:
react >= 19,react-dom >= 19 - repository:
https://github.com/Banzamel/mineralui - homepage:
https://mineralui.banzamel.pl - styles: bundled and auto-injected on component import
Installation
npm install @banzamel/mineraluiNo separate CSS import is required.
Quick Start
import {
MThemeProvider,
MCard,
MCardHeader,
MCardBody,
MInput,
MSelect,
MButton,
} from '@banzamel/mineralui'
function AccountSettings() {
return (
<MThemeProvider mode="dark">
<MCard>
<MCardHeader title="Workspace settings" description="Basic account data and role assignment." />
<MCardBody>
<MInput label="Workspace name" placeholder="Banzamel Studio" fullWidth />
<MSelect
label="Default role"
fullWidth
options={[
{value: 'owner', label: 'Owner'},
{value: 'editor', label: 'Editor'},
]}
/>
<MButton>Save changes</MButton>
</MCardBody>
</MCard>
</MThemeProvider>
)
}Grouped Imports
MineralUI supports both the main entry and grouped subpath exports.
import {MButton, MCheckbox} from '@banzamel/mineralui/controls'
import {MCard, MCardBody} from '@banzamel/mineralui/cards'
import {MShowcaseCarousel, MMasonry} from '@banzamel/mineralui/media'
import {MTimeAgo, MProgressBar} from '@banzamel/mineralui/display'Available subpaths:
@banzamel/mineralui/cards@banzamel/mineralui/controls@banzamel/mineralui/data@banzamel/mineralui/display@banzamel/mineralui/dropdowns@banzamel/mineralui/feedback@banzamel/mineralui/form@banzamel/mineralui/i18n@banzamel/mineralui/icons@banzamel/mineralui/inputs@banzamel/mineralui/layout@banzamel/mineralui/media@banzamel/mineralui/overlays@banzamel/mineralui/primitives@banzamel/mineralui/theme@banzamel/mineralui/typography@banzamel/mineralui/utils
What Is Included
Theme and foundations
MThemeProvider,useMThemeMI18nProvider,useMI18nMPortal,MPopover- CSS variable token system for dark and light mode
- scoped theme overrides through the provider
Layout
MContainer,MSectionMStack,MInline,MGrid,MGridItemMSurface,MDividerMHeader,MFooter,MNavbar,MNavs,MTabsMSidebar,MSidebarHeader,MSidebarBody,MSidebarNav,MSidebarItem,MSidebarGroup,MSidebarFooter,MSidebarDividerMSubNav,MBreadcrumb,MPaginationMAppShell,MBody
Cards
MCard,MCardHeader,MCardBody,MCardFooterMCardPaymentMCardBusinessMCardServiceMCardGrid
Data
MDataTableMTreeViewMTaskListMCalendarBoard,MCalendarDayCell,MCalendarEventList,MCalendarEventItem,MCalendarEventPopover,MCalendarTimeline
Feedback
MAlert,MBanner,MBadge,MTagMSpinner,MLoaderMToastProvider,useMToast
Overlays
MModalMDrawer,MDrawerHeader,MDrawerBody,MDrawerFooterMTooltipMPopconfirmMDropdownMenu,MDropdownItem,MDropdownGroup,MDropdownDivider
Media
MAvatarMImageMGalleryMCarouselMShowcaseCarouselMShowcaseCarouselItemMMasonryMMasonryItem
Display
MCollapsibleMAccordion,MAccordionItemMProgressBarMCountUpMTimeAgoMRatingMColorPickerMQrCode
Typography
MHeading,MText,MSubText,MLink,MCode,MList,MListItem,MKbd
Controls
MButtonMCheckboxMRadio,MRadioGroupMToggleMSlider
Inputs
MInput,MTextareaMInputPassword,MInputNumber,MInputSearch,MInputEmailMInputPhone,MInputName,MInputIBAN,MInputTaxIdMInputCurrency,MInputCreditCard,MInputPostCodeMInputOTPMInputSliderMInputFileMInputGroup
Dropdowns
MSelectMAutocompleteMDatePickerMDateRangePickerMTimePicker
Form and utilities
MForm,useFormField,useFormContext- validators, formatters, date helpers, postal-code helpers and credit-card helpers
useDebounce,useDebouncedCallbackuseClickOutsideuseKeyboardNavuseInteractionEffectuseRevealuseGhostTextformatRelativeTime,formatAbsoluteTime
Icons
MIconbase component- 210 built-in glyphs across app icons, file types, flags and brands
- tree-shakeable individual exports
- used internally across inputs, tables, navigation, cards and overlays
Feature Highlights
Layout-first API
MAppShellauto-detectsMSidebaramong direct childrenMSidebarBodyandMDrawerBodykeep scrolling inside the body area, while header and footer stay pinnedMDrawerHeader,MDrawerFooter,MSidebarHeaderandMSidebarFootersupport optional bordered separationMStack,MInlineandMGridcover the majority of dashboard and docs layouts without extra utility libraries
Card and content system
MCardis the generic content container- specialized cards cover payment, business and service use cases
MCardGridwraps card collections with built-in search, filters and sortingMShowcaseCarouselandMMasonrycover richer gallery and card-wall layouts
Media layouts
MShowcaseCarouselstarts from the middle item by default and also supportsinitialIndexMShowcaseCarouselItemgives structured image, overlay, body and footer slotsMMasonryItemgives the same structured model for masonry wallsMImage,MGalleryandMMasonryItemsupport click ripple for interactive media
Form-heavy workflows
- specialized inputs handle formatting and validation instead of pushing that logic into every app
MInputCreditCarddetects brand and formats as the user typesMInputPostCodevalidates by country rule setMInputFilesupports drag and drop, thumbnails and built-in crop flowMInputOTPsupports auto-focus and pasteMInputSliderkeeps slider and numeric field in sync
Date and time workflows
MDatePicker,MDateRangePickerandMTimePickercover common date input needsMDateRangePickersupports presets and side-panel workflowsMTimeAgoformats relative time throughIntl.RelativeTimeFormatand falls back to absolute dates after a thresholdMDatePicker,MDateRangePickerandMTimeAgocan follow the activeMI18nProviderthroughdocument.documentElement.lang- calendar month and weekday labels are resolved through
Intl.DateTimeFormat, so locale is no longer limited to manualpl/entables localestays available as an explicit override when a picker should render in a different language than the current app shell
Data and navigation
MDataTablesupports sorting, filtering, pagination and row selectionMTreeViewsupports selection, context actions and automatic file-type iconsMBreadcrumbhandles deep hierarchies with collapsed middle itemsMPaginationsupports numbered and compact page flows
Shared interaction model
- buttons, cards, images and other interactive elements can share the same ripple/click-effect behavior
- built-in icons are used across framework components, so products stay visually consistent without extra icon packages
- alerts and toasts have built-in status icons with override or disable support
Design System Notes
MineralUI is driven by CSS variables and readable class names.
:root {
--mineral-primary-rgb: 0, 165, 222;
--mineral-primary: rgba(var(--mineral-primary-rgb), 1);
--mineral-success-rgb: 22, 163, 74;
--mineral-error-rgb: 220, 38, 38;
--mineral-warning-rgb: 234, 124, 0;
--mineral-info-rgb: 59, 130, 246;
--mineral-surface: rgba(21, 29, 46, 1);
--mineral-page-bg: rgba(15, 23, 42, 1);
--mineral-input-bg: rgba(37, 51, 71, 1);
--mineral-text: rgba(226, 232, 240, 1);
--mineral-text-secondary: rgba(100, 116, 139, 1);
--mineral-border: rgba(255, 255, 255, 0.15);
--mineral-border-hover: rgba(255, 255, 255, 0.25);
--mineral-border-focus: var(--mineral-primary);
--mineral-z-popover: 1000;
--mineral-z-modal: 1100;
--mineral-z-tooltip: 1150;
--mineral-z-toast: 1200;
}You can theme the package in four layers:
- token overrides through
--mineral-* - component props such as
color,fcolor,spacing,padding,fsize classNamefor local integrationMThemeProviderformodeand scoped token overrides
Framework defaults:
- plain CSS, not CSS Modules
- readable, override-friendly class names
- no runtime dependencies besides React peer dependencies
- dark and light mode supported through the same token system
- typography reset and scrollbar styling come from the bundled framework styles
Repository
- GitHub:
https://github.com/Banzamel/mineralui - npm:
https://www.npmjs.com/package/@banzamel/mineralui
