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?

  1. Enable lazy loading: <Emoji3D lazyLoad={true}>
  2. Reduce quality on mobile: <Emoji3D quality="medium">
  3. Limit concurrent animations: Don't animate too many emojis at once
  4. Use performance mode: <Emoji3D performanceMode={true}>

My animations are laggy. What should I do?

Try these optimization steps:

  1. Reduce animation quality: quality="low"
  2. Enable performance mode: performanceMode={true}
  3. Check browser compatibility
  4. Reduce the number of animated emojis
  5. 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:

  1. Using our IE11 compatibility mode: <Emoji3D ie11Compat={true}>
  2. Providing fallback text for IE users
  3. 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?

  1. Use dynamic imports with ssr: false
  2. Add proper loading states
  3. Ensure consistent client/server rendering
  4. 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:

  1. Import: Ensure proper import: import { Emoji3D } from 'emoji-3d'
  2. Wrapping: Text must be inside <Emoji3D> component
  3. Emoji support: Some custom emojis might not be recognized
  4. 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:

  1. Adding a unique key prop to force re-mounting
  2. Using useEffect to reinitialize animations
  3. Checking for memory leaks in component lifecycle

How do I report bugs?

  1. Check existing issues: Search GitHub issues
  2. Create minimal reproduction: Use CodeSandbox or similar
  3. Provide details: Browser, version, error messages
  4. Submit issue: Use our bug report template

Development

How do I contribute to Emoji 3D?

We welcome contributions! Here's how to get started:

  1. Fork the repository
  2. Run locally: npm install && npm run dev
  3. Make your changes
  4. Add tests: npm test
  5. Submit a pull request

Can I request new features?

Absolutely! We love feature requests:

  1. Check existing discussions
  2. Open a new discussion with your idea
  3. Describe the use case and expected behavior
  4. 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!