Meet bestax-bulma: Modern React Components for Bulma CSS v1
Hey React developers! π Are you looking for a modern, actively maintained component library for Bulma CSS? Let me introduce you to bestax-bulma (pronounced "bee-stacks"), a TypeScript-first React component library that brings the full power of Bulma v1 to your React applications.
Opensource! Free as in beerπΊ
Why Another Bulma React Library?β
Great question! While there are other Bulma React libraries out there, many haven't been updated for Bulma v1 or are no longer actively maintained. bestax-bulma fills this gap with:
- π― Full Bulma v1 Support: Built specifically for the latest Bulma version
- π 99% Test Coverage: Every component thoroughly tested with React Testing Library
- π· TypeScript-First: Complete type safety with comprehensive TypeScript definitions
- π Modern Build: Tree-shakeable ESM and CJS builds for optimal bundle sizes
- π Rich Documentation: Comprehensive API docs and getting started guides available at bestax.io
- β‘ Active Development: Regular updates and responsive maintenance
Quick Start in 2 Minutesβ
Getting started is as simple as:
npm install @allxsmith/bestax-bulma bulma
Then import and use components:
import { Button, Card, Hero } from '@allxsmith/bestax-bulma'; import 'bulma/css/bulma.min.css'; function App() { return ( <Hero color="primary"> <Hero.Body> <Card> <Card.Header> <Card.Header.Title>Welcome to bestax-bulma!</Card.Header.Title> </Card.Header> <Card.Content> <p>Modern React components for Bulma CSS v1</p> <Button color="success">Get Started</Button> </Card.Content> </Card> </Hero.Body> </Hero> ); }
Showcasing Bulma v1's New Featuresβ
𦴠Skeleton Loading Statesβ
Bulma v1 introduced the Skeleton component for beautiful loading states:
import { Card } from '@allxsmith/bestax-bulma'; import { useState, useEffect } from 'react'; function LoadingCard() { const [isLoading, setIsLoading] = useState(true); useEffect(() => { const timer = setInterval(() => { setIsLoading(prev => !prev); }, 2000); return () => clearInterval(timer); }, []); return ( <Card skeleton={isLoading}> <Card.Content> <p>Your content here!</p> </Card.Content> </Card> ); }
π¨ CSS Grid Supportβ
Take advantage of Bulma's new CSS Grid components for modern layouts:
import { Grid, Cell, Card } from '@allxsmith/bestax-bulma'; function Dashboard() { return ( <Grid> <Cell> <Card>Cell 1</Card> </Cell> <Cell> <Card>Cell 2</Card> </Cell> <Cell> <Card>Cell 3</Card> </Cell> <Cell> <Card>Cell 4</Card> </Cell> <Cell> <Card>Cell 5</Card> </Cell> <Cell> <Card>Cell 6</Card> </Cell> <Cell> <Card>Cell 7</Card> </Cell> <Cell> <Card>Cell 8</Card> </Cell> <Cell> <Card>Cell 9</Card> </Cell> </Grid> ); }
π Dynamic HSL Themingβ
Bulma v1's HSL color system enables dynamic theming:
import { Theme, Button } from '@allxsmith/bestax-bulma'; function ThemedApp() { return ( <Theme primaryH="280" primaryS="100%" primaryL="45%"> <Button color="primary">Themed Button</Button> </Theme> ); }
Why Developers Love bestax-bulmaβ
1. Compound Components Patternβ
We use the compound components pattern for intuitive, readable code:
import { Modal, Button } from '@allxsmith/bestax-bulma'; import { useState } from 'react'; function ModalExample() { const [showModal, setShowModal] = useState(false); const closeModal = () => setShowModal(false); return ( <> <Button color="primary" onClick={() => setShowModal(true)}> Open Modal </Button> <Modal isActive={showModal}> <Modal.Background onClick={closeModal} /> <Modal.Card> <Modal.Card.Head> <Modal.Card.Title>Intuitive API</Modal.Card.Title> <Modal.Close onClick={closeModal} /> </Modal.Card.Head> <Modal.Card.Body>Components that make sense!</Modal.Card.Body> <Modal.Card.Foot> <Button color="primary" onClick={closeModal}> Close </Button> </Modal.Card.Foot> </Modal.Card> </Modal> </> ); }
2. TypeScript Autocomplete Heavenβ
Every prop is fully typed, giving you incredible IDE support:
// Full autocomplete for colors, sizes, and more
<Button
color="primary" // 'primary' | 'link' | 'info' | 'success' | ...
size="large" // 'small' | 'normal' | 'medium' | 'large'
isLoading
isOutlined
/>
3. Zero Configurationβ
Unlike many CSS-in-JS solutions, bestax-bulma works with standard Bulma CSS. No build configuration, no CSS extraction, just import and go!
Try It Liveβ
Want to see bestax-bulma in action? Check out bestax.io for comprehensive examples and interactive documentation. Storybook is also available for browsing individual component variations.
Comparison with Alternativesβ
| Feature | bestax-bulma | react-bulma-components | rbx | bulma-react |
|---|---|---|---|---|
| Bulma v1 Support | β | β | β | β |
| TypeScript | β Built-in | β οΈ Separate | β | β |
| Test Coverage | 99% | ~70% | ~100% | Unknown |
| Active Maintenance | β 2025 | β οΈ 2021 | β 2019 | β 2015 |
| Tree Shaking | β | β | β | β |
| Compound Components | β | β | β | β |
| Comprehensive Docs | β | β | β οΈ Partial | β |
| Real CSS Grids | β | β | β | β |
| Configurable | β | β | β | β |
| Theme Support | β | β | β | β |
| Quick Start CLI | β | β | β | β |
Get Started Todayβ
Ready to modernize your Bulma React experience?
- Install:
npm install @allxsmith/bestax-bulma bulma - Explore: Check our documentation
- Build: Start creating beautiful UIs with modern React patterns
- Contribute: Join us on GitHub
What's Next?β
This is just the beginning! In the next parts of this series, we'll dive deep into:
- Part 2: Building Beautiful UIs with Core Components
- Part 3: Forms, Data Display, and Advanced Patterns
π€ Follow me @allxsmith for updates!
β Feel free to star the repository if you find it helpful!
Have questions or feedback? Create an issue or start a discussion on GitHub for new ideas!
