Repository navigation
Birthday Cards
Alee Javed edited this page Mar 1, 2026
·
1 revision
The birthday card system creates interactive, animated greeting cards with scrapbook-style effects and customizable content.
- Custom Content - Personalized messages and images
- Scrapbook Animations - Interactive card effects
- Image Support - Background and content images
- Color Customization - Custom background colors
- Responsive Design - Works on all devices
- Popup Integration - Cards can trigger popups
Each birthday card includes:
- Background Color - Customizable card background
- Content - Rich text with formatting
- Images - Background and content images
- Animations - Hover and click effects
- Responsive Layout - Mobile-friendly design
Go to Birthday Cards in WordPress admin menu
- Birthday Cards β Add New
- Card Title - Give your card a title
- Background Color - Choose card background
- Content - Add your message
- Images - Upload background/content images
- Publish card
- Rich Text Editor - Full formatting options
- Image Upload - Multiple image support
- Color Picker - Custom background colors
- Preview Mode - See card before publishing
<div class="aj-card">
<div class="aj-card-content">
<div class="aj-card-text">
<!-- Card content here -->
</div>
<div class="aj-card-images">
<!-- Card images here -->
</div>
</div>
</div>-
.aj-card- Main card container -
.aj-card-content- Content wrapper -
.aj-card-text- Text content -
.aj-card-images- Image container
.aj-card:hover {
transform: translateY(-5px);
box-shadow: 0 10px 30px rgba(0,0,0,0.2);
}
.aj-card-content {
transition: all 0.3s ease;
}:root {
--card-bg: #fffef9;
--card-text: #1a1a1a;
--card-border: #e0e0e0;
}// Card hover effects
document.addEventListener('DOMContentLoaded', function() {
const cards = document.querySelectorAll('.aj-card');
cards.forEach(card => {
card.addEventListener('mouseenter', function() {
this.classList.add('aj-card-hover');
});
card.addEventListener('mouseleave', function() {
this.classList.remove('aj-card-hover');
});
});
});/* Scrapbook flip effect */
.aj-card {
perspective: 1000px;
transform-style: preserve-3d;
}
.aj-card:hover .aj-card-content {
transform: rotateY(5deg);
}- Full size cards - Original dimensions
- Rich animations - All effects enabled
- Side-by-side - Multiple cards visible
- Slightly smaller - Optimized for tablets
- Touch-friendly - Larger tap targets
- Maintains animations - Core effects preserved
- Full width - Cards use full width
- Simplified animations - Performance optimized
- Touch optimized - Better mobile experience
/* Custom card background */
.aj-card {
background: linear-gradient(135deg, #ff9a9e 0%, #fecaca 100%);
border-radius: 15px;
}
/* Custom text styling */
.aj-card-text {
font-family: 'Georgia', serif;
color: #2c3e50;
text-shadow: 1px 1px 2px rgba(0,0,0,0.1);
}
/* Custom image effects */
.aj-card-images img {
border-radius: 10px;
box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}// Add confetti effect
function createConfetti(element) {
const confetti = document.createElement('div');
confetti.className = 'confetti';
confetti.style.cssText = `
position: absolute;
width: 10px;
height: 10px;
background: ${getRandomColor()};
border-radius: 50%;
pointer-events: none;
`;
element.appendChild(confetti);
animateConfetti(confetti);
}- Check posts - Ensure cards are published
- Verify template - Check single-aj_card.php
- Clear cache - Browser and WordPress cache
- Check PHP errors - Look for function conflicts
- Check JavaScript - Ensure card scripts are loading
- Verify CSS - Check animation styles
- Test browser - Try different browsers
- Check conflicts - Plugin or theme conflicts
- Check CSS - Ensure card styles are loading
- Verify variables - Ensure CSS variables are set
- Test responsive - Check different screen sizes
- Check images - Verify image paths
- Customization Guide - General customization
- Installation Guide - Setup instructions
- Popup System - Related popup functionality
- Troubleshooting - Common issues and solutions