Quick Start
Here’s a basic example of customizing the MoonKey authentication UI:Dashboard Configuration
Some appearance settings are configured in the MoonKey Dashboard and apply across your entire application.App Name
Configure your application name in the Dashboard:- Navigate to your MoonKey Dashboard
- Select your app from the dropdown
- Go to the Customization page
- Enter your app name in the App Name field
Logo
Set your app logo in the Dashboard:- Go to the Customization page
- Enter a URL for your logo in the Logo field
- Use an image with a 2:1 aspect ratio (recommended: 180px × 90px)
- PNG or JPG formats work best (SVGs have limited email client support)
Provider Configuration
Fine-tune the authentication UI with theappearance config in your MoonKeyProvider.
Logo
Set or override the logo for your authentication UI:Login Header Title
Customize the main heading text shown on the login screen:- Keep it short and welcoming (recommended: 35 characters or less)
- Use your brand’s voice and tone
- Make it action-oriented or inviting
Login Header Description
Add descriptive text below the header to guide users:- Keep it under 100 characters for optimal display
- Clearly explain what users will do or get
- Avoid jargon for better user comprehension
Hide Close Button
Control whether users can close the authentication modal:true— Force users to complete authentication (use cautiously)false— Allow users to dismiss the modal (default)
Complete Configuration Example
Here’s a fully customized appearance configuration using all available options:Advanced CSS Customization
For even deeper customization, MoonKey supports CSS variable overrides. Add these to your global CSS to customize specific UI elements:Common Use Cases
Web3 Gaming Application
DeFi Platform
NFT Marketplace
Social Platform with Web3 Features
Best Practices
Branding Consistency
- Use the same logo across all authentication touchpoints
- Keep logo images consistent with your brand guidelines
- Align header titles and descriptions with your brand voice
- Test appearance changes across different screen sizes
Copywriting
- Keep
loginHeaderTitleshort and welcoming (under 35 characters) - Make
loginHeaderDescriptionclear and action-oriented (under 100 characters) - Avoid technical jargon that might confuse users
- Use consistent terminology across your app
Accessibility
- Ensure logo images have appropriate alt text
- Test text readability on various backgrounds
- Use clear, simple language in headers and descriptions
- Test with screen readers and keyboard navigation
User Experience
- Only use
hideClose: truewhen authentication is absolutely required - Test your appearance on multiple devices and screen sizes
- Ensure logos load quickly with optimized images
- Provide clear value propositions in descriptions
Performance
- Host logo images on a CDN for fast loading
- Use optimized image formats (WebP when possible)
- Keep logo file sizes under 100KB
- Use SVGs cautiously (better for web, problematic in emails)
Exploring More Options
MoonKey offers extensive customization beyond what’s covered in this guide:- Custom modal layouts through CSS customization
- Branded email templates configured in the dashboard
- Multiple authentication methods with different flows
- Advanced styling with CSS variables
View Interactive Demo
Explore all customization options with our interactive demo. Try different configurations and see changes in real-time.
Troubleshooting
Logo not displaying
Solutions:- Verify the logo URL is publicly accessible
- Check image format (PNG/JPG recommended)
- Ensure image loads in a new browser tab
- Try with HTTPS URLs only
- Check browser console for loading errors
Text not updating
Solutions:- Verify you’re passing
loginHeaderTitleandloginHeaderDescriptioncorrectly - Clear browser cache and reload
- Check for typos in property names
- Ensure the provider is properly configured
Close button not hiding
Solutions:- Verify
hideCloseis set totrue(boolean, not string) - Check that the configuration is in the correct location
- Clear browser cache and reload
- Test in an incognito/private window
CSS variables not applying
Solutions:- Ensure CSS is loaded before MoonKey initializes
- Check CSS selector specificity
- Use browser dev tools to verify variable values
- Try applying
!importantfor testing (not recommended for production)
Related Documentation
- Setup Guide — Initial MoonKey configuration
- Examples — Complete code examples
- Features — All SDK capabilities
- Interactive Demo — Try customization options live