Emoji 3D FAQ - Frequently Asked Questions
Get answers to common questions about Emoji 3D. Installation help, troubleshooting, performance optimization, and best practices for 3D emoji effects.
What is Emoji 3D?
Emoji 3D is a React component library that automatically transforms emojis in your text into beautiful 3D animated elements. It's designed to make digital communication more engaging and visually appealing with zero configuration required.
Is Emoji 3D free to use?
Yes! Emoji 3D is completely free and open-source under the MIT license. You can use it in personal projects, commercial applications, or anywhere you need beautiful 3D emoji effects.
What frameworks does Emoji 3D support?
Currently, Emoji 3D supports:
- ✅ React 16.8+
- ✅ Next.js 12+
- ✅ Gatsby
- ✅ Vite
- ⏳ Vue.js (coming soon)
- ⏳ Angular (planned)
Do I need any 3D graphics knowledge?
Not at all! Emoji 3D is designed for developers of all skill levels. Simply wrap your text with the <Emoji3D>
component and the magic happens automatically.
Installation & Setup
How do I install Emoji 3D?
Install using your preferred package manager:
npm install emoji-3d
# or
yarn add emoji-3d
# or
pnpm add emoji-3d
# or
bun add emoji-3d
Why am I getting installation errors?
Common installation issues and solutions:
- Node version: Ensure you're using Node.js 16.0 or higher
- Package conflicts: Try clearing your cache:
npm cache clean --force
- Permission issues: Use
sudo
on macOS/Linux if needed - Network issues: Try using a different registry:
npm install --registry https://registry.npmjs.org/
Does Emoji 3D work with TypeScript?
Yes! Emoji 3D includes full TypeScript support with comprehensive type definitions. All props are properly typed for the best developer experience.
Usage & Configuration
How do I make only specific emojis 3D?
By default, all emojis are transformed. To be selective, use the includeOnly
prop:
<Emoji3D includeOnly={['😀', '🎉', '✨']}>
Only these will be 3D: 😀🎉✨ but not this one: 🚀
</Emoji3D>
Can I disable 3D effects for certain users?
Yes! Respect user preferences with conditional rendering:
const shouldUse3D = !user.prefersReducedMotion && user.devicePerformance === 'high'
{shouldUse3D ? (
<Emoji3D>{content}</Emoji3D>
) : (
<span>{content}</span>
)}
How do I customize animation speed?
Use the animationSpeed
prop:
<Emoji3D animationSpeed="slow"> {/* slow | medium | fast */}
Slow and smooth! ✨
</Emoji3D>
Can I create custom animations?
Yes! Override CSS classes or use the customAnimation
prop:
<Emoji3D customAnimation="my-custom-animation">
Custom effects! 🎨
</Emoji3D>
@keyframes my-custom-animation {
0% { transform: rotateY(0deg) scale(1); }
50% { transform: rotateY(180deg) scale(1.2); }
100% { transform: rotateY(360deg) scale(1); }
}
Performance
Does Emoji 3D affect page performance?
Emoji 3D is highly optimized for performance:
- Lazy loading: Animations load when needed
- Efficient rendering: Only animates visible elements
- Small bundle: < 15KB gzipped
- Hardware acceleration: Uses CSS transforms for smooth animations
How can I optimize performance?
- Enable lazy loading:
<Emoji3D lazyLoad={true}>
- Reduce quality on mobile:
<Emoji3D quality="medium">
- Limit concurrent animations: Don't animate too many emojis at once
- Use performance mode:
<Emoji3D performanceMode={true}>
My animations are laggy. What should I do?
Try these optimization steps:
- Reduce animation quality:
quality="low"
- Enable performance mode:
performanceMode={true}
- Check browser compatibility
- Reduce the number of animated emojis
- Test on different devices
Does it work on mobile devices?
Yes! Emoji 3D is fully responsive and optimized for mobile:
- Touch interaction support
- Adaptive performance scaling
- Mobile-friendly animations
- Battery usage optimization
Browser Support
Which browsers are supported?
Emoji 3D supports all modern browsers:
- ✅ Chrome 90+
- ✅ Firefox 88+
- ✅ Safari 14+
- ✅ Edge 90+
- ⚠️ IE 11 (limited support)
Why don't animations work in Internet Explorer?
IE 11 has limited CSS3 support. Consider:
- Using our IE11 compatibility mode:
<Emoji3D ie11Compat={true}>
- Providing fallback text for IE users
- Progressive enhancement approach
How do I handle browser compatibility?
Use feature detection:
import { isFeatureSupported } from 'emoji-3d/utils'
const supports3D = isFeatureSupported('css3d')
{supports3D ? (
<Emoji3D>{content}</Emoji3D>
) : (
<span>{content}</span>
)}
Server-Side Rendering (SSR)
Does Emoji 3D work with Next.js SSR?
Yes, but use dynamic imports to avoid hydration issues:
import dynamic from 'next/dynamic'
const Emoji3D = dynamic(() => import('emoji-3d'), {
ssr: false,
loading: () => <span>Loading...</span>
})
I'm getting hydration mismatches. How do I fix this?
- Use dynamic imports with
ssr: false
- Add proper loading states
- Ensure consistent client/server rendering
- Use
suppressHydrationWarning
sparingly if needed
Can I pre-render 3D emojis on the server?
Currently, 3D effects are client-side only due to browser API requirements. However, we provide excellent SSR fallbacks that maintain semantic meaning.
Accessibility
Is Emoji 3D accessible?
Yes! Accessibility is a core principle:
- ✅ Screen reader support
- ✅ Keyboard navigation
- ✅ Motion preference respect
- ✅ Semantic HTML preservation
- ✅ ARIA label support
How do I ensure screen reader compatibility?
Emoji 3D preserves emoji meaning for screen readers:
<Emoji3D ariaLabels={{
'🎉': 'celebration',
'✨': 'sparkles'
}}>
Party time! 🎉✨
</Emoji3D>
What about users with motion sensitivity?
Emoji 3D automatically respects prefers-reduced-motion
:
<Emoji3D respectMotionPreference={true}>
Automatically adapts to user preferences! ⚡
</Emoji3D>
Troubleshooting
Emojis aren't transforming to 3D. What's wrong?
Check these common issues:
- Import: Ensure proper import:
import { Emoji3D } from 'emoji-3d'
- Wrapping: Text must be inside
<Emoji3D>
component - Emoji support: Some custom emojis might not be recognized
- Browser support: Check if your browser supports CSS3D transforms
I see console errors. How do I debug?
Enable debug mode for detailed logging:
<Emoji3D debug={true}>
Debug information will appear in console 🔍
</Emoji3D>
Animations stop working after navigation?
This might be a React state issue. Try:
- Adding a unique
key
prop to force re-mounting - Using
useEffect
to reinitialize animations - Checking for memory leaks in component lifecycle
How do I report bugs?
- Check existing issues: Search GitHub issues
- Create minimal reproduction: Use CodeSandbox or similar
- Provide details: Browser, version, error messages
- Submit issue: Use our bug report template
Development
How do I contribute to Emoji 3D?
We welcome contributions! Here's how to get started:
- Fork the repository
- Run locally:
npm install && npm run dev
- Make your changes
- Add tests:
npm test
- Submit a pull request
Can I request new features?
Absolutely! We love feature requests:
- Check existing discussions
- Open a new discussion with your idea
- Describe the use case and expected behavior
- Get community feedback
How do I run tests locally?
# Install dependencies
npm install
# Run all tests
npm test
# Run tests in watch mode
npm run test:watch
# Run with coverage
npm run test:coverage
Licensing & Commercial Use
Can I use Emoji 3D in commercial projects?
Yes! The MIT license allows both personal and commercial use. No attribution required, but we appreciate it!
Do I need to credit Emoji 3D?
Not required by the license, but we'd love if you do! A simple "Powered by Emoji 3D" is much appreciated.
Can I modify the source code?
Absolutely! Fork, modify, and distribute as needed under the MIT license terms.
Getting Help
Where can I get support?
- Documentation: Comprehensive guides and examples
- GitHub Discussions: Community Q&A and feature requests
- GitHub Issues: Bug reports and technical problems
- Discord: Real-time chat with maintainers and community
- Stack Overflow: Tag your questions with
emoji-3d
How do I stay updated?
- ⭐ Star the GitHub repository
- 📧 Subscribe to our newsletter
- 🐦 Follow us on social media
- 📱 Join our Discord community
Still have questions? Don't hesitate to reach out to our friendly community!