Modern open-source Power BI custom visual for creating beautiful, interactive SVG bar charts with customizable colors, animations, and cross-filtering support. Built with AI vibe coding.
Screenshots coming soon! Help us improve by adding visual examples.
- Pure SVG Rendering - Clean, scalable vector graphics with no DOM overhead
- Customizable Colors - Full control over bar colors, axis colors, and background
- Interactive Data Labels - Toggle value labels on/off with configurable font sizes
- Smooth Animations - Eye-catching initial render animations for better UX
- Hover Effects - Visual feedback with opacity changes on hover
- Cross-Filtering Support - Click bars to filter other visuals, click empty space to clear
- Responsive Design - Automatically adjusts to viewport size
- Smart Label Truncation - Long category names are truncated with ellipsis
- Accessible Axes - Clear X and Y axes with tick marks and properly formatted values
- Performance Optimized - Efficient rendering even with large datasets
- Node.js >= 18.0.0 (LTS recommended)
- npm >= 8.0.0
- Power BI Custom Visuals Tools (pbiviz CLI)
Install Power BI Custom Visuals Tools globally:
npm install -g powerbi-visuals-tools- Clone this repository:
git clone https://github.com/ravi-chandu/VIBE-Visual.git
cd VIBE-Visual- Install dependencies:
npm install- Trust the development certificate (first time only):
pbiviz --install-certRun the visual in development mode with live reload:
npm startThe visual will be available at https://localhost:8080/assets/status. Enable developer mode in Power BI Desktop and add the visual from the "Developer visual" icon.
Create a .pbiviz package file for distribution:
npm run packageThe package will be created in the dist/ folder.
Check code quality:
npm run lint- Open Power BI Desktop
- Click Insert β Get more visuals β Import from file
- Select the
.pbivizfile from thedist/folder - Accept the import prompt
- Category Data - Drag a categorical field (e.g., Product Name, Region)
- Measure Data - Drag a numeric measure (e.g., Sales Amount, Quantity)
Open the Format pane to customize:
| Setting | Description | Type |
|---|---|---|
| Bar Color | Color of the bars | Color picker |
| Axis Color | Color of axes and labels | Color picker |
| Axis Font Size | Size of axis labels | Number (px) |
| Show Data Labels | Toggle value labels on bars | Boolean |
| Label Font Size | Size of data labels | Number (px) |
| Background Color | Canvas background color | Color picker |
- Click a bar - Apply cross-filter to other visuals on the page
- Click empty space - Clear all selections
- Hover over bars - Visual feedback with opacity change
vibevisual/
βββ src/
β βββ visual.ts # Main visual implementation (IVisual interface)
β βββ settings.ts # Formatting settings model
βββ style/
β βββ visual.less # Minimal styles
βββ assets/
β βββ icon.png # Visual icon (20x20 to 200x200 px)
βββ .github/ # GitHub templates and workflows
βββ examples/ # Sample data and usage examples
βββ capabilities.json # Visual capabilities and data roles
βββ pbiviz.json # Visual metadata and configuration
βββ package.json # npm dependencies and scripts
βββ tsconfig.json # TypeScript configuration
βββ LICENSE # MIT License
- TypeScript 5.5.4 - Type-safe development
- Power BI Visuals API 5.3.0 - Official Power BI SDK
- D3.js 7.9.0 - Data transformation utilities
- Power BI Utils - Formatting model and utilities
- ESLint - Code quality and consistency
Contributions are welcome! Please read our Contributing Guidelines before submitting PRs.
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes and test thoroughly
- Commit with clear messages:
git commit -m 'Add amazing feature' - Push to your fork:
git push origin feature/amazing-feature - Open a Pull Request
See CONTRIBUTING.md for detailed guidelines.
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with Power BI Custom Visuals Tools
- Powered by D3.js
- Uses Power BI Visuals Utilities
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Author: Ravi Chandu
Future enhancements being considered:
- Horizontal bar chart orientation option
- Gradient color fills for bars
- Conditional formatting based on thresholds
- Multiple measure support (grouped/stacked bars)
- Export to image functionality
- Tooltips with additional context
- Accessibility improvements (ARIA labels, keyboard navigation)
- Localization support for multiple languages
Feel free to suggest features through GitHub Issues!
Made with β€οΈ using AI vibe coding