Tell someone that you love them with free love eCards and romantic greetings. Browse our collection of beautiful love cards, complete with hearts, flowers, and kisses. Add a personal message and make someone's day!
Browse I Love You Cards
Share a special message with free eCards for friends! Select a gorgeous design with chic patterns and cheerful colors from our collection of friendship cards, and personalize it for the people that matter the most.
Browse Friends Cards
Make someone’s day with free love and friendship greeting cards! Discover a fabulous collection of free eCards filled with heartfelt wishes for your loved ones. Digital Greeting Cards have everything you love about traditional paper cards, but can be delivered immediately to the person you’re thinking of. Select a beautiful design, personalize the message to say, “I love you,” in your own special way, and send it today!
')
$('.design-studio-favorite-modal').removeClass('hidden')
}
});
// Make a request to toggle the favorite status of the package
function toggleFavorite(el) {
hasToggleFavoritesRequest = true;
var data = {
user_favorite_package: {
package_id: $(el).data('package-id'),
package_type: 'ecard'
}
}
var favoriteButton = $(el);
if (favoriteButton.hasClass('icon-heart')) {
$.ajax({
type: 'DELETE',
url: '/user/favorites',
headers: { 'X-CSRF-Token': csrfToken },
data: data,
success: function(_data) {
PBS.user.removeFavoriteEcard(data['user_favorite_package']['package_id'])
favoriteButton.addClass('icon-heart-empty');
favoriteButton.removeClass('icon-heart');
hasToggleFavoritesRequest = false;
},
error: function(_data) {
alert("Sorry, your card couldn't be removed from your favorites. Please try again.");
hasToggleFavoritesRequest = false;
}
});
} else {
$.ajax({
type: 'POST',
url: '/user/favorites',
headers: { 'X-CSRF-Token': csrfToken },
data: data,
success: function(_data) {
window.dataLayer.push({
event: 'ecard_design_favorited',
package_id: data.user_favorite_package.package_id
});
PBS.user.addFavoriteEcard(data['user_favorite_package']['package_id'])
favoriteButton.addClass('icon-heart');
favoriteButton.removeClass('icon-heart-empty');
hasToggleFavoritesRequest = false;
},
error: function(_data) {
alert("Sorry, your card couldn't be favorited. Please try again.");
hasToggleFavoritesRequest = false;
}
});
}
}
$('.design-studio-favorite-modal .close-modal').click(function() {
$('.design-studio-favorite-modal').addClass('hidden')
$('.favorite-modal-overlay').remove()
})
function setHeartsFromLocalStorage() {
setHeartsFromIds(PBS.user.favoritesData().ecard_favorite_ids)
}
function setHeartsFromIds(ecard_favorite_ids) {
_.forEach(ecard_favorite_ids, function(package_id) {
$('.is-favorite[data-package-id="' + package_id + '"]').addClass('icon-heart').removeClass('icon-heart-empty');
})
}
// Only set hearts if the user is logged in
if (PBS.current_user.registered) {
setHeartsFromLocalStorage(); // set hearts from local storage prior to making ajax request to prevent late-loading of hearts that haven't changed
$.ajax({
url: '/user/favorites',
method: 'GET',
dataType: 'json',
success: function(data) {
try {
localStorage.setItem('userFavorites', JSON.stringify(data));
setHeartsFromLocalStorage();
} catch (err) {
// if local storage could not be set due to size constraints, don't let it break the rest of the js on the page
console.log(err);
setHeartsFromIds(data.ecard_favorite_ids)
}
}
})
} else {
localStorage.removeItem('userFavorites')
}
// Track category load
});
Save greeting cards to your favorites list!