Default Card
Standard card with border
Card content goes here.
The component library powering RLeaguez
Built with React, Tailwind CSS, and TypeScript. Coming soon as a standalone npm package.
44+
Components
12
Languages
Built-in
Dark Mode
Haptics
Mobile-First
Our brand palette centers on Orange and Navy Blue, with supporting neutrals for text and backgrounds.
Orange 500
#f97316
Orange 600
#ea580c
Navy Blue 600
#2563eb
Slate 800
#1e293b
Tested oranges for app icon against navy gradient background. #FF910C pops strongest.
RZ Orange
#FF910C
CurrentDark Orange
#FF8C00
TestedPure Orange
#FFA500
CSS OrangeiOS Orange
#FF9500
Apple HIGBright Orange
#FF7F00
AlternativePreview against icon navy gradient:
RZ Icon Stroke/Outline Color:
Stroke
#B35A00
Light Mode
Primary: text-gray-900
Secondary: text-gray-600
Muted: text-gray-500
Dark Mode
Primary: text-slate-50
Secondary: text-gray-300
Muted: text-gray-400
Consistent status indicators across the app. Note: No purple per CLAUDE.md brand guidelines.
Success
green-500
Warning
orange-500
Danger
red-500
Info
blue-500
Neutral
gray-500
Consistent font scales and text styles across the application.
Used for all body text, buttons, labels, and UI elements. Set as the default font via --font-sans and font-montserrat.
The quick brown fox jumps over the lazy dog
ThinThe quick brown fox jumps over the lazy dog
Extra LightThe quick brown fox jumps over the lazy dog
LightThe quick brown fox jumps over the lazy dog
RegularThe quick brown fox jumps over the lazy dog
MediumThe quick brown fox jumps over the lazy dog
BoldUsed for display headings, hero text, and decorative typography. Apply with font-urbanist.
The quick brown fox jumps over the lazy dog
ThinThe quick brown fox jumps over the lazy dog
Extra LightThe quick brown fox jumps over the lazy dog
LightThe quick brown fox jumps over the lazy dog
RegularThe quick brown fox jumps over the lazy dog
MediumThe quick brown fox jumps over the lazy dog
BoldLarge body text (text-lg) - Use for introductions and emphasis.
Base body text (text-base) - Default for most content. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Small text (text-sm) - Use for captions, labels, and secondary information.
Extra small (text-xs) - Use sparingly for fine print.
| Element | Style | Example |
|---|---|---|
| Page titles | Title Case | "Sign In to RLeaguez" |
| Button labels | Title Case | "Create Team" |
| Placeholders | Sentence case | "Enter first name" |
| Labels | Sentence case | "Email address:" |
LinkCatto provides multiple variants for navigation and actions.
CardCatto is our primary content container, mobile-friendly and highly configurable.
Standard card with border
Card content goes here.
Blue-tinted background.
Operation completed successfully.
Please review before proceeding.
This action cannot be undone.
Cards can include icons and footer sections
This card demonstrates the icon and footer props.
Width options: xs, sm, md, lg, xl, 2xl, 3xl, 4xl, 5xl, 6xl, 7xl, full
Compact width.
Medium width.
Larger width for more content.
This card can be collapsed
This content can be hidden by clicking the header.
Input components for building forms with validation, labels, and accessibility support.
Outlined (default)
Filled
Minimal
Email is required
Choose a unique username
Selected: (none)
Selected: (none)
Components for communicating status, messages, and empty states to users.
Available icons: teams, players, tournaments, venues, matches, members, leagues, search, error, default
Orange-accented gradient background.
Navy blue styled empty state.
Try adjusting your search criteria.
Something went wrong. Please try again.
Transparent background, minimal styling.
Create your first team to get started organizing your league.
Variants: primary, success, warning, error, info, midnightEmber
Components for tabbed navigation and binary/multi-option toggles.
Browse upcoming tournaments and register your teams.
Pills variant
Showing all items
Bordered variant
Overview content
Current state: Left (Dark/Moon)
Default variant
Pill variant
Minimal variant
Current view: list
Components for presenting data: badges, avatars, ratings, tooltips, and tables.
Sizes
With Icons
Rounded Count + Dot Indicator
xs
sm
md
lg
xl
2xl
Status Indicators
online
away
busy
offline
Shapes
circle
rounded
square
With Ring
Display Modes
Sizes
Color Variants
Click stars to rate (full-star precision)
Current rating: 3 / 5
| Alex Rivera | Thunder | Basketball | 4.8 |
| Jordan Chen | Strikers | Soccer | 4.2 |
| Sam Patel | Aces | Tennis | 3.9 |
| Morgan Lee | Blaze | Volleyball | 4.5 |
| Casey Brooks | Titans | Pickleball | 4.1 |
Loading spinners, inline indicators, and skeleton placeholders for smooth perceived performance.
The signature RLeaguez page-level loading spinner with the orange bouncing circle. Click a button to preview it in a contained area.
Click a button above to preview the loading spinner here
Sizes (horizontal layout)
Loading...
Loading...
Loading...
Vertical Layout with Rz Logo
Fetching tournament results...
Width and Height Presets
Rounded Variants
none
sm
md
lg
full
Content Placeholder Example
Default
With Icon + Footer
Compact
Default (5 rows, 4 columns, with filter and pagination)
Minimal (no filter, no pagination)
Decorative divider components and section title elements for visual separation and content structure.
HRDividerCatto
Basic dashed divider line
HRCircleCatto
Circle-decorated divider element
HRTriangleCatto
Triangle-decorated divider element
HRAnimatedLineCatto
Animated gradient line divider
HRSquareCatto
Single square divider element
HRSquaresCatto
Multiple squares divider (configurable count, size, gap)
HRPartyPulseCatto
Party/pulse animated divider with color cycling
HRPulseDividerCatto
Pulsing divider with orange color
HRSubtleCatto
Subtle/minimal divider with reduced opacity
HRWideCatto
Full-width divider with thicker border
HRHypnoCatto
Spinning hypnotic circle divider
Default (10 squares)
5 squares, larger size, more gap
20 squares, small size, tight gap
3 squares, extra large
width="w-24"
Default (w-48)
width="w-64"
width="w-full"
Basic title (centered by default)
With subtitle (fade-in animation)
Browse upcoming tournaments and register your team
Left-aligned via className
Aligned to the left using className override
Right-aligned via className
Aligned to the right using className override
Meet the full roster
Updated weekly
@catto/ui — The component library powering RLeaguez
Built with React, Tailwind CSS, and TypeScript