Splash Screen Implementation and Custom Properties Feature
Summary
Implemented an ultra-cool splash screen with modern CSS animations and enhanced the PerplexityConfig component with custom properties generation capabilities for AI-powered record augmentation.
Why Care
The splash screen creates a professional first impression with engaging animations that showcase the app's core workflow. The custom properties feature significantly expands the AI augmentation capabilities, allowing users to define specific data points they want generated for each record, making the tool much more flexible and powerful for business intelligence workflows.
Implementation
Changes Made
New Files Created:
src/components/SplashScreen.js
- Complete splash screen component with staggered animationschangelog/2025-01-27_03.md
- This changelog entry
Files Modified:
src/app/page.js
- Added splash screen integration with state managementsrc/app/globals.css
- Added custom CSS animations for splash screen effectssrc/components/PerplexityConfig.js
- Enhanced with custom properties management
Tree Structure:
text
src/
├── app/
│ ├── page.js (modified)
│ └── globals.css (modified - added animations)
├── components/
│ ├── SplashScreen.js (new)
│ └── PerplexityConfig.js (enhanced)
└── changelog/
└── 2025-07-23_03.md (new)
Technical Details
Splash Screen Implementation (src/components/SplashScreen.js
)
Animation System:
- Phase-based animation control with 4 distinct phases (0-3)
- 1-second intervals between phases for optimal visual rhythm
- 6-second total duration with smooth fade-out transition
Key Features:
- Gradient background:
bg-gradient-to-br from-blue-900 via-purple-900 to-indigo-900
- Floating animated orbs with staggered pulse delays
- Staggered text animations: Welcome text slides down, tagline slides up
- Icon animations: Bounce-in effects for Import/Augment/Export, spin-in for Repeat
- Loading indicator with bouncing dots
- Floating database icon with continuous float animation
Animation Classes Added:
css
.animate-slideInDown, .animate-slideInUp, .animate-slideOutUp
.animate-fadeOut, .animate-fadeIn, .animate-bounceIn
.animate-spinIn, .animate-float
Custom Properties Feature (src/components/PerplexityConfig.js
)
New Functionality:
- Dynamic custom properties management with add/remove capabilities
- Real-time placeholder preview in prompt editor
- Integration with existing Perplexity AI configuration
- Visual distinction between CSV fields and custom properties
Key Components:
- Custom properties input with Enter key support
- Property list with individual remove buttons
- Purple-themed styling for custom properties
- Instructions panel explaining the workflow
State Management:
newProperty
state for input field- Integration with existing
perplexityConfig.customProperties
array - Validation to prevent duplicate properties
CSS Animations (src/app/globals.css
)
Custom Keyframes:
css
@keyframes slideInDown, slideInUp, slideOutUp
@keyframes fadeOut, fadeIn, bounceIn, spinIn, float
Animation Classes:
- Smooth transitions with
ease-out
timing - Configurable durations (0.8s - 3s)
- Transform-based animations for performance
- Opacity and scale effects for visual impact
Page Integration (src/app/page.js
)
State Management:
showSplash
state controls splash screen visibilityhandleSplashComplete
callback manages transition- Conditional rendering with React Fragment
Integration Points
Splash Screen Integration:
- Seamlessly integrates with existing RecordCollector component
- No impact on existing functionality
- Maintains app state during splash display
- Smooth transition to main application
Custom Properties Integration:
- Extends existing PerplexityConfig store functionality
- Integrates with
availableFields
from record store - Maintains backward compatibility with existing prompts
- Enhances AI augmentation workflow
Animation System:
- Custom CSS animations work alongside Tailwind utilities
- No conflicts with existing styling
- Performance-optimized with transform-based animations
- Responsive design maintained across screen sizes
Documentation
Splash Screen Usage:
The splash screen automatically displays on page load for 6 seconds, then transitions to the main application. No user interaction required.
Custom Properties Usage:
- Navigate to PerplexityConfig component
- Add custom properties in the "Custom Properties to Generate" section
- Properties appear as placeholders in the prompt editor
- AI will research and generate these properties for each record
Animation Customization:
All animations are defined in
src/app/globals.css
and can be modified by adjusting:- Keyframe definitions for animation behavior
- Animation class durations and timing functions
- Phase timing in SplashScreen component
API Integration:
Custom properties integrate with Perplexity AI API through the existing prompt system, allowing dynamic property generation based on user-defined requirements.