# byte-ui
> Reusable UI component patterns for Byte Integration Hub. Use when building new UI components, views, or layouts. Provides Card, Badge, Button, Input, Modal, EmptyState, StatusIndicator, ProgressBar, Spinner, SplitView, SidebarLayout, and FilterBar patterns matching Byte's cyan/teal design system.
- Author: kristopher-sdk
- Repository: kristopher-sdk/Byte_Integration_Hub
- Version: 20251227085304
- Stars: 0
- Forks: 0
- Last Updated: 2026-02-07
- Source: https://github.com/kristopher-sdk/Byte_Integration_Hub
- Web: https://mule.run/skillshub/@@kristopher-sdk/Byte_Integration_Hub~byte-ui:20251227085304
---
---
name: byte-ui
description: Reusable UI component patterns for Byte Integration Hub. Use when building new UI components, views, or layouts. Provides Card, Badge, Button, Input, Modal, EmptyState, StatusIndicator, ProgressBar, Spinner, SplitView, SidebarLayout, and FilterBar patterns matching Byte's cyan/teal design system.
---
# Byte UI Components
Provides reusable UI component patterns that match Byte's design system.
## Core Component Patterns
```jsx
// Card Component
const Card = ({ children, className = '' }) => (
{children}
);
// Badge Component
const Badge = ({ children, color = 'cyan' }) => {
const colors = {
cyan: 'bg-cyan-500/20 text-cyan-400 border-cyan-500/30',
teal: 'bg-teal-500/20 text-teal-400 border-teal-500/30',
indigo: 'bg-indigo-500/20 text-indigo-400 border-indigo-500/30',
orange: 'bg-orange-500/20 text-orange-400 border-orange-500/30',
red: 'bg-red-500/20 text-red-400 border-red-500/30',
};
return (
{children}
);
};
// Button Component
const Button = ({ children, variant = 'primary', size = 'md', ...props }) => {
const variants = {
primary: 'bg-cyan-500 hover:bg-cyan-400 text-slate-900 font-medium',
secondary: 'bg-slate-800 hover:bg-slate-700 text-white',
ghost: 'hover:bg-slate-800 text-slate-400 hover:text-white',
danger: 'bg-red-500/20 hover:bg-red-500/30 text-red-400',
};
const sizes = {
sm: 'px-3 py-1.5 text-sm',
md: 'px-4 py-2 text-sm',
lg: 'px-6 py-3 text-base',
};
return (
);
};
// Input Component
const Input = ({ icon: Icon, ...props }) => (
{Icon && }
);
// Status Indicator
const StatusIndicator = ({ status }) => {
const colors = {
online: 'bg-teal-400',
running: 'bg-cyan-400 animate-pulse',
idle: 'bg-slate-500',
error: 'bg-red-400',
};
return ;
};
// Progress Bar
const ProgressBar = ({ value, color = 'cyan' }) => (
);
// Modal/Overlay
const Modal = ({ isOpen, onClose, title, children }) => {
if (!isOpen) return null;
return (
<>
>
);
};
// Empty State
const EmptyState = ({ icon: Icon, title, description, action }) => (
{title}
{description}
{action}
);
// Loading Spinner
const Spinner = ({ size = 'md' }) => {
const sizes = { sm: 'w-4 h-4', md: 'w-6 h-6', lg: 'w-8 h-8' };
return ;
};
```
## Layout Patterns
```jsx
// Split View (used in Prototype)
const SplitView = ({ left, right, ratio = 50 }) => (
);
// Sidebar Layout (used in Agents)
const SidebarLayout = ({ sidebar, main, sidebarWidth = 384 }) => (
);
// Filter Bar
const FilterBar = ({ filters, active, onChange }) => (
{filters.map(filter => (
))}
);
```
## Color System
```javascript
const BYTE_COLORS = {
// Primary
cyan: { 400: '#22d3ee', 500: '#06b6d4' },
teal: { 400: '#2dd4bf', 500: '#14b8a6' },
// Accent
indigo: { 400: '#818cf8', 500: '#6366f1' },
// Background
slate: {
700: '#334155',
800: '#1e293b',
900: '#0f172a',
950: '#020617'
},
// Status
success: 'teal-400',
warning: 'orange-400',
error: 'red-400',
info: 'cyan-400'
};
```
## Instructions
When building UI:
1. Use existing component patterns - don't reinvent
2. Maintain consistent spacing (p-4, p-6, gap-3, gap-4)
3. Use slate-800/30 for card backgrounds, slate-900/30 for surfaces
4. Always include hover states and transitions
5. Use backdrop-blur-xl for overlays
6. Icons should be 4-5 px for inline, 8 px for standalone
7. Test responsive behavior - use hidden lg:block for sidebars