This document provides a comprehensive overview of how React Bits components are integrated into the Monynha Softwares corporate website.
React Bits is a library of animated components that offers backgrounds, interactive cards, animated menus, and text effects. This project uses a curated selection of React Bits components to create an immersive and engaging user experience while maintaining excellent performance and accessibility.
Following React Bits best practices:
- Maximum 2-3 components per page to preserve performance
- Fallback alternatives for
prefers-reduced-motionusers - Mobile optimizations to reduce animation overhead on smaller devices
Location: src/components/reactbits/LiquidEtherBackground.tsx
Usage:
- Home Page Hero - Main background animation
Features:
- WebGL-based fluid animation
- Purple/blue gradient matching brand colors
- Automatic fallback to static gradient for
prefers-reduced-motion - Optimized rendering with Three.js
Props:
// Uses default configuration, no props needed
<LiquidEtherBackground />Location: src/components/reactbits/RippleGridBackground.tsx
Usage:
- Contact Page - Background behind contact form
Features:
- Animated grid with ripple effects
- Subtle and non-distracting
- Complements form content
Location: src/components/reactbits/SplitText.tsx
Usage:
- Home Page - Main hero title "Monynha Softwares / Inclusive tech that empowers"
Features:
- Word-by-word text reveal.
- Stagger delay for smooth animation
- Configurable tag (h1, h2, etc.)
Props Example:
<SplitText
as="h1"
text={["Monynha Softwares", "Inclusive tech that empowers"].join("\n")}
className="mb-6 text-[clamp(2.25rem,8vw,3.75rem)] font-bold leading-[1.1] break-words text-balance items-center"
/>Location: src/components/reactbits/TextType.tsx
Usage:
- About Page - Biography paragraphs
Features:
- Typewriter effect
- Configurable delay and speed
- Multiple instances can run with different delays
Props Example:
<TextType
className="text-[clamp(1rem,3.3vw,1.1rem)] leading-relaxed"
text="I'm a digital artist and creative developer..."
delay={0}
/>Location: src/components/reactbits/PixelCard.tsx
Usage:
- Home Page - Featured repositories grid
- Repositories Page - Individual repository cards
Features:
- Pixelated hover effect
- Image display with title/subtitle
- Optional footer content
- Mobile-friendly with
noFocusprop
Props Example:
<PixelCard
imageUrl={repo.imageUrl}
title={repo.name}
subtitle={repo.description ?? "No description provided."}
footer={<span className="text-sm">{repo.language}</span>}
/>Location: src/components/reactbits/RollingGallery.tsx
Usage:
- Optional horizontal carousel for future highlights (currently not used in any page)
Features:
- Smooth horizontal scrolling
- Configurable speed
- Responsive item sizing
- Supports title, subtitle, and footer for each item
Props Example:
<RollingGallery
items={featured.map((item) => ({
id: item.id,
title: item.name,
subtitle: item.subtitle,
imageUrl: item.imageUrl,
href: item.href,
}))}
speed={24}
/>Location: src/components/reactbits/SpotlightCard.tsx
Usage:
- Optional highlight cards for future landing sections (currently not used in any page)
Features:
- Spotlight effect following cursor
- Interactive hover states
- Customizable spotlight color
Props Example:
<SpotlightCard className="bg-surface-3/90 p-6 sm:p-8">
<div className="flex flex-col gap-3">
<div className="inline-flex h-14 w-14 items-center justify-center rounded-2xl bg-primary/10">
<Sparkles className="h-7 w-7" />
</div>
<h3>Software Development</h3>
<p>Building robust, scalable applications</p>
</div>
</SpotlightCard>Location: src/components/reactbits/GooeyNav.tsx
Usage:
- Navigation Component - Main site navigation (desktop and mobile)
- Wrapped in
src/components/Navigation.tsx
Features:
- Gooey morphing effect between states
- Responsive mobile hamburger menu
- Keyboard navigation support
- Focus trap for accessibility
- Integration with FlowingMenu for mobile drawer
Key Features:
- Desktop: Horizontal navigation bar with animated hover states
- Mobile: Hamburger menu opening FlowingMenu drawer
- Accessibility: Full keyboard navigation, ARIA labels, focus management
Location: src/components/reactbits/FlowingMenu.tsx
Usage:
- GooeyNav Mobile Menu - Used as the mobile drawer menu
Features:
- Animated marquee on hover
- Directional entrance/exit animations based on cursor position
- Active state highlighting
- GSAP-powered smooth animations
- Reduced motion support
Location: src/components/reactbits/GlassIcon.tsx
Usage:
- Contact Page - Email and Instagram contact cards
- Repository Detail Page - Repository metadata display (stars, forks, language, etc.)
Features:
- Glassmorphism effect
- Icon with title and description
- Optional href for links
- Hover animations
Props Example:
<GlassIcon
icon={<Mail className="h-6 w-6" />}
title="Email"
description="contact@monynha.com"
href="mailto:contact@monynha.com"
/>Location: src/components/reactbits/StepperTimeline.tsx
Usage:
- About Page - Experience and timeline section
Features:
- Vertical timeline with indicators
- Step titles, subtitles, and descriptions
- Progress line connecting steps
- Responsive layout
Props Example:
<StepperTimeline
steps={experiences.map((ex) => ({
title: ex.role,
subtitle: `${ex.organization} · ${ex.location}`,
description: ex.highlights.join(' • '),
indicator: ex.year.toString(),
}))}
/>React Bits Components Used: 3
- LiquidEtherBackground - Hero background
- SplitText - Main title animation
- PixelCard - Featured repository cards
Performance: Within 2-3 component guideline (background + text + cards count as 3)
React Bits Components Used: 2
- TextType - Biography text (multiple instances)
- StepperTimeline - Experience timeline
Performance: Within guideline
React Bits Components Used: 2
- RippleGridBackground - Form background
- GlassIcon - Contact method cards
Performance: Within guideline
React Bits Components Used: 1
- PixelCard - Repository list items
Performance: Well within guideline
React Bits Components Used: 1
- GlassIcon - Repository metadata display (stars, forks, language, etc.)
Performance: Well within guideline
React Bits Components Used: 2
- GooeyNav - Main navigation component
- FlowingMenu - Mobile menu drawer (nested in GooeyNav)
Performance: Shared across all pages, optimized for performance
All React Bits components in this project include:
-
Reduced Motion Support
- Check for
prefers-reduced-motionmedia query - Provide static fallbacks
- Example: LiquidEtherBackground shows static gradient
- Check for
-
Keyboard Navigation
- All interactive components support keyboard
- Focus indicators visible
- Tab order logical
-
ARIA Labels
- Proper labeling for screen readers
- Role attributes where appropriate
- Semantic HTML structure
-
Color Contrast
- Meets WCAG AA standards
- Text readable against animated backgrounds
- Focus states clearly visible
- Touch-friendly targets - All interactive elements minimum 44x44px
- Reduced animations - Some effects disabled on mobile for performance
- Responsive layouts - All components adapt to smaller screens
- Performance monitoring - Animation frames optimized for 60fps
- Check the 2-3 component limit per page
- Add reduced motion fallback:
const prefersReducedMotion = window.matchMedia("(prefers-reduced-motion: reduce)").matches; if (prefersReducedMotion) { return <StaticFallback />; }
- Test on mobile devices
- Document in this file
- Works with keyboard navigation
- Respects
prefers-reduced-motion - Performs well on mobile (60fps)
- No console errors or warnings
- Accessible to screen readers
Potential React Bits components to consider:
- Aurora Background - Alternative to LiquidEther/Silk
- Particles Background - Optional atmospheric backgrounds
- Decay Card - Alternative card style
- Gradient Text - Alternative to SplitText
- Scroll Float - Enhanced scroll indicators
Remember to maintain the 2-3 components per page limit when adding new components.
- React Bits Website: https://reactbits.dev/
- Component Installation:
npx shadcn@latest add https://reactbits.dev/r/[component-name] - Three.js Docs: https://threejs.org/docs/
- Framer Motion Docs: https://www.framer.com/motion/
The React Bits integration in Monynha Softwares provides a sophisticated, performant, and accessible user experience. The careful selection and placement of components ensures visual impact without sacrificing performance or usability.