Sixteen years ago, a twisted little 3D animated film called The Nightmare Before Christmas hit theaters. Directed by Henry Selick, and written by the combined team of Caroline Thompson, Michael McDowell, and Tim Burton, Nightmare is a bizarre romantic children’s tale showcasing the efforts of the Pumpkin King (the King of Halloween) as he tries to shift gears and put on Christmas instead of Halloween for a change of pace. Deranged hilarity ensues.
There’s a key point in the above paragraph that may not click for a lot of people. Henry Selick directed the film, which is today remembered and considered a classic in part because of it’s animation. It’s also frequently credited as being Tim Burton’s movie. This is a point of confusion for me, and I think a strong example of how name association can prevent artist recognition. I readily grant that the story was conceived by Burton, but Selick not only brought that story to life, he gave it it’s immediately recognizable style; in no universe would Nightmare be nearly as well-remembered and recognized if not for his aesthetic touch.
If being credited alongside Burton caused any confusion as to who brought Nightmare to life, then Coraline should be Selick’s second chance at being recognized as the genius he is. Once again, he is adapting someone else’s story, Neil Gaiman’s novella of the same name. But with Coraline, Selick doesn’t simply bring someone else’s vision to life with his animation; here, he has taken that vision and made it into his own.
Coraline tells the story of a young girl yearning to escape from the doldrums of her lonely life in a flat with her caring but inattentive parents. Her explorations of the building they live in eventually lead her to a walled-off and bricked-up door that she soon discovers leads to a magical, alternate version of the world she lives in, where her Other Mother and Father dote on her endlessly and the rest of the Other inhabitants go to extraordinary lengths to amuse and entertain her. After a night featuring an animated garden party, a circus of mechanical mice, and indecent old ladies performing acrobatics, Coraline decides to stay in the Other world forever. Until, that is, she learns the price of admission, and soon finds that her Other Mother is not all she seems to be.
The film bounces seamlessly between the promise of the faerie tale Coraline first finds herself in, and the disturbing truth about the Other world and it’s master, balancing lush beauty with vivid horror. A circus of mechanical mice gives way to a troupe of more ill-natured rodents, theater-going Scotties turn into vampire bat-like creatures, and a garden party exploding with gorgeous colors decays into a (seemingly) lifeless expanse of decay. Once the fantasy and wonder of the Other world fade away, Coraline shifts gears and becomes something much darker, and finds itself on genuinely scary ground, which has raised the question as to whether or not the film is appropriate for younger children (it’s assumed target audience). I’m of the opinion (and Selick seems to agree) that kids are capable of processing the unsettling and the frightening much better than their parents are willing to admit. The film’s third act horror is unrelenting yet never overwhelming, providing a bounty of satisfying scares without transcending what is required for the purposes of the narrative. And it’s hard not to find some kind of weird beauty in even the scariest of Other world’s denizens– Selick’s designs are full of creativity and imagination, tempering the terror with a degree of whimsy.
Anchoring the animation are the performances of Dakota Fanning, Teri Hatcher, John Hodgman, Ian McShane, Keith David, Jennifer Saunders, Robert Baily Jr, and Dawn French. Each actor brings soulfulness to their character, an essential element that helps to make the animated cast truly alive, and as a result the voice work across the board is uniformly strong. Fanning carries the movie as the titular character, part inquisitive youth and part lonesome soul, and everyone else (particularly Hatcher and David) is very plainly having a ball giving life to their characters. Hatcher’s duplicitous Other Mother is a performance to savor, warm and loving one moment and malicious and cunning the next, though her work as Coraline’s real mother is far more nuanced.
Ultimately, the real triumph of Coraline is Selick’s direction. Despite being an adaptation, Selick has created a work that is uniquely and unmistakably his, a stop-motion animated world of beauty and horror, populated by characters both fantastical and genuinely frightening. If not an instant classic (which I argue it is), Coraline is at least nothing short of a landmark in animation and children’s story-telling.
{"id":"2","mode":"form","open_style":"in_place","currency_code":"USD","currency_symbol":"$","currency_type":"decimal","blank_flag_url":"https:\/\/agcrump.work\/wp-content\/plugins\/tip-jar-wp\/\/assets\/images\/flags\/blank.gif","flag_sprite_url":"https:\/\/agcrump.work\/wp-content\/plugins\/tip-jar-wp\/\/assets\/images\/flags\/flags.png","default_amount":500,"top_media_type":"featured_image","featured_image_url":"https:\/\/agcrump.work\/wp-content\/uploads\/2025\/10\/image-asset-179x200.webp","featured_embed":"","header_media":null,"file_download_attachment_data":null,"recurring_options_enabled":false,"recurring_options":{"never":{"selected":true,"after_output":"One time only"},"weekly":{"selected":false,"after_output":"Every week"},"monthly":{"selected":false,"after_output":"Every month"},"yearly":{"selected":false,"after_output":"Every year"}},"strings":{"current_user_email":"","current_user_name":"","link_text":"Leave a tip","complete_payment_button_error_text":"Check info and try again","payment_verb":"Pay","payment_request_label":"A Constant Visual Feast","form_has_an_error":"Please check and fix the errors above","general_server_error":"Something isn't working right at the moment. Please try again.","form_title":"Support My Work:","form_subtitle":"","currency_search_text":"Country or Currency here","other_payment_option":"Other payment option","manage_payments_button_text":"Manage your payments","thank_you_message":"Thanks for supporting my work!","payment_confirmation_title":"A Constant Visual Feast","receipt_title":"Your Receipt","print_receipt":"Print Receipt","email_receipt":"Email Receipt","email_receipt_sending":"Sending receipt...","email_receipt_success":"Email receipt successfully sent","email_receipt_failed":"Email receipt failed to send. Please try again.","receipt_payee":"Paid to","receipt_statement_descriptor":"This will show up on your statement as","receipt_date":"Date","receipt_transaction_id":"Transaction ID","receipt_transaction_amount":"Amount","refund_payer":"Refund from","login":"Log in to manage your payments","manage_payments":"Manage Payments","transactions_title":"Your Transactions","transaction_title":"Transaction Receipt","transaction_period":"Plan Period","arrangements_title":"Your Plans","arrangement_title":"Manage Plan","arrangement_details":"Plan Details","arrangement_id_title":"Plan ID","arrangement_payment_method_title":"Payment Method","arrangement_amount_title":"Plan Amount","arrangement_renewal_title":"Next renewal date","arrangement_action_cancel":"Cancel Plan","arrangement_action_cant_cancel":"Cancelling is currently not available.","arrangement_action_cancel_double":"Are you sure you'd like to cancel?","arrangement_cancelling":"Cancelling Plan...","arrangement_cancelled":"Plan Cancelled","arrangement_failed_to_cancel":"Failed to cancel plan","back_to_plans":"\u2190 Back to Plans","update_payment_method_verb":"Update","sca_auth_description":"Your have a pending renewal payment which requires authorization.","sca_auth_verb":"Authorize renewal payment","sca_authing_verb":"Authorizing payment","sca_authed_verb":"Payment successfully authorized!","sca_auth_failed":"Unable to authorize! Please try again.","login_button_text":"Log in","login_form_has_an_error":"Please check and fix the errors above","uppercase_search":"Search","lowercase_search":"search","uppercase_page":"Page","lowercase_page":"page","uppercase_items":"Items","lowercase_items":"items","uppercase_per":"Per","lowercase_per":"per","uppercase_of":"Of","lowercase_of":"of","back":"Back to plans","zip_code_placeholder":"Zip\/Postal Code","download_file_button_text":"Download File","input_field_instructions":{"tip_amount":{"placeholder_text":"How much do you want to tip?","initial":{"instruction_type":"normal","instruction_message":"How much do you want to tip?"},"empty":{"instruction_type":"error","instruction_message":"How much do you want to tip?"},"invalid_curency":{"instruction_type":"error","instruction_message":"How much do you want to tip?"}},"recurring":{"placeholder_text":"Recurring","initial":{"instruction_type":"normal","instruction_message":"Want to make a recurring tip?"},"success":{"instruction_type":"success","instruction_message":"Want to make a recurring tip?"},"empty":{"instruction_type":"error","instruction_message":"Want to make a recurring tip?"}},"name":{"placeholder_text":"Name on Credit Card","initial":{"instruction_type":"normal","instruction_message":"Enter the name on your card."},"success":{"instruction_type":"success","instruction_message":"Enter the name on your card."},"empty":{"instruction_type":"error","instruction_message":"Please enter the name on your card."}},"privacy_policy":{"terms_title":"Terms and conditions","terms_body":null,"terms_show_text":"View Terms","terms_hide_text":"Hide Terms","initial":{"instruction_type":"normal","instruction_message":"I agree to the terms."},"unchecked":{"instruction_type":"error","instruction_message":"Please agree to the terms."},"checked":{"instruction_type":"success","instruction_message":"I agree to the terms."}},"email":{"placeholder_text":"Your email address","initial":{"instruction_type":"normal","instruction_message":"Enter your email address"},"success":{"instruction_type":"success","instruction_message":"Enter your email address"},"blank":{"instruction_type":"error","instruction_message":"Enter your email address"},"not_an_email_address":{"instruction_type":"error","instruction_message":"Make sure you have entered a valid email address"}},"note_with_tip":{"placeholder_text":"Your note here...","initial":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"empty":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"not_empty_initial":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"saving":{"instruction_type":"normal","instruction_message":"Saving note..."},"success":{"instruction_type":"success","instruction_message":"Note successfully saved!"},"error":{"instruction_type":"error","instruction_message":"Unable to save note note at this time. Please try again."}},"email_for_login_code":{"placeholder_text":"Your email address","initial":{"instruction_type":"normal","instruction_message":"Enter your email to log in."},"success":{"instruction_type":"success","instruction_message":"Enter your email to log in."},"blank":{"instruction_type":"error","instruction_message":"Enter your email to log in."},"empty":{"instruction_type":"error","instruction_message":"Enter your email to log in."}},"login_code":{"initial":{"instruction_type":"normal","instruction_message":"Check your email and enter the login code."},"success":{"instruction_type":"success","instruction_message":"Check your email and enter the login code."},"blank":{"instruction_type":"error","instruction_message":"Check your email and enter the login code."},"empty":{"instruction_type":"error","instruction_message":"Check your email and enter the login code."}},"stripe_all_in_one":{"initial":{"instruction_type":"normal","instruction_message":"Enter your credit card details here."},"empty":{"instruction_type":"error","instruction_message":"Enter your credit card details here."},"success":{"instruction_type":"normal","instruction_message":"Enter your credit card details here."},"invalid_number":{"instruction_type":"error","instruction_message":"The card number is not a valid credit card number."},"invalid_expiry_month":{"instruction_type":"error","instruction_message":"The card's expiration month is invalid."},"invalid_expiry_year":{"instruction_type":"error","instruction_message":"The card's expiration year is invalid."},"invalid_cvc":{"instruction_type":"error","instruction_message":"The card's security code is invalid."},"incorrect_number":{"instruction_type":"error","instruction_message":"The card number is incorrect."},"incomplete_number":{"instruction_type":"error","instruction_message":"The card number is incomplete."},"incomplete_cvc":{"instruction_type":"error","instruction_message":"The card's security code is incomplete."},"incomplete_expiry":{"instruction_type":"error","instruction_message":"The card's expiration date is incomplete."},"incomplete_zip":{"instruction_type":"error","instruction_message":"The card's zip code is incomplete."},"expired_card":{"instruction_type":"error","instruction_message":"The card has expired."},"incorrect_cvc":{"instruction_type":"error","instruction_message":"The card's security code is incorrect."},"incorrect_zip":{"instruction_type":"error","instruction_message":"The card's zip code failed validation."},"invalid_expiry_year_past":{"instruction_type":"error","instruction_message":"The card's expiration year is in the past"},"card_declined":{"instruction_type":"error","instruction_message":"The card was declined."},"missing":{"instruction_type":"error","instruction_message":"There is no card on a customer that is being charged."},"processing_error":{"instruction_type":"error","instruction_message":"An error occurred while processing the card."},"invalid_request_error":{"instruction_type":"error","instruction_message":"Unable to process this payment, please try again or use alternative method."},"invalid_sofort_country":{"instruction_type":"error","instruction_message":"The billing country is not accepted by SOFORT. Please try another country."}}}},"fetched_oembed_html":false}