Say “yes!” to puddle play

Puddles have a uniquely magnetic effect on children. I’ve seen it countless times. My children will be happily strolling down a trail and then suddenly they spot a small pool of shimmering water ahead. Immediately their pace quickens and they move forward with clear determination. As they approach a puddle there’s a telltale bounce in their stride. They’re priming their legs for what’s to come: the double foot splash!

When I see what’s about to transpire, I envision piles of wet laundry, sopping boots (or worse yet—shoes!), and a wet child that suddenly realizes they don’t want to be wet. I want to blurt out, “No! STOP!”—but instead, I bite my tongue and wait to see what happens.

You see, a puddle is a magical portal: the moment my children place their feet into that puddle they find themselves in a wonderful wet world filled with new opportunities.

Puddles are such simple things and yet they teach children so much. In many ways, a puddle is like a book, each one unique and filled with new possibilities. Just as books are a gateway into the world of words and stories, puddles provide children with opportunities to learn about movement, the natural world, and play.


Related read: Neil deGrasse Tyson tells kids they should jump in puddles


A puddle teaches kids how to move their bodies

Learning how to move starts very early on in life. Babies start to experiment with rolling, sitting, and scooting around on all fours. Toddlers and young children learn to walk, run, jump, and more. Learning how to move takes practice. Puddles are a perfect way to practice movement skills.

Puddles are meant to be splashed in. To do that, children need to jump! Jumping develops balance, strength, and agility in little legs and has the benefit of coming in many different styles: big jumps, little hops, run and jump, jumping stars (jacks), arms up or down, jumping with two feet and one-legged hops. Puddles can also be kicked, stirred, and tapped, which are more great movement skills.


Related read: Fun activities to help your child develop balance


To encourage some good puddle jumping, here are some prompts to try out:

  • What kind of jump makes the biggest splash?
  • Can you jump or kick all the water out of the puddle? 
  • What happens to a puddle when it’s stirred? (use a foot, hand or stick) 

It always helps to be dressed well for puddle play. My children are always more keen to play with puddles longer when they’re wearing rubber boots and pants—or bare feet if the weather’s warm! While a splash in a puddle with shoes is exhilarating at first, kids quickly discover wet shoes aren’t the most comfy things to wear.


Related read: How to dress for the weather in every season


A puddle teaches a child about the natural world

Puddles are a science laboratory for kids. Water is such a unique substance on its own, but a small pool of water in nature is an opportunity to learn about evaporation, density, and buoyancy. Here are some simple ideas and questions for introducing puddle science to your child.

  • Invite your child to collect a few different bits of nature—a pebble, a leaf, a pinecone, a feather—then bring them to the puddle. Which of the items will sink and which will float? Why?
  • Together with your child, outline a puddle on a sidewalk or driveway with chalk. Come back a few hours later and observe the puddle. Did the puddle shrink? Where did the water go? Did it get bigger? Why do you think that happened? 
  • Find a measuring tape or ruler and help your child measure the puddle. How wide is it? How deep is it? How much water do you think is in this puddle? 
  • Ask your child to look carefully into the puddle. What do they see? Do they see a reflection? Is there anything living in the puddle? 

A puddle invites a child to play!

While we can use puddles to help our children learn about movement and science, there is value in allowing a child to play in a puddle without interruption. Play is a powerful form of learning because children must use their creativity and problem-solving skills without adult help. Often when we see our child’s frustration in play we want to swoop in, but try to wait a few moments before stepping.

Another way to encourage puddle play is to introduce some loose parts such as sticks, rocks, shells, cups, and sieve that would invite your child to interact with a puddle in new ways.

Say “yes!” to being a puddle parent

The next time your child makes a beeline for a wet and wonderful puddle, breathe deep, remember that clothes and children will wash and dry, and say “YES!” to being a puddle parent. I promise you that puddles are positively amazing.

Photos courtesy of Josée Bergeron.

One response to “Say “yes!” to puddle play

  1. Can someone recommend a good location in Montreal for puddle play? Like a farm where there is a lot of mud?

Leave a Reply

Your email address will not be published. Required fields are marked *

[gravityforms id=12 title="false" description="false" ajax="true"]
<div class='gf_browser_chrome gform_wrapper gform_legacy_markup_wrapper' id='gform_wrapper_12' ><div id='gf_12' class='gform_anchor' tabindex='-1'></div><form method='post' enctype='multipart/form-data' target='gform_ajax_frame_12' id='gform_12' action='/say-yes-to-puddle-play/#gf_12' > <div class='gform_body gform-body'><ul id='gform_fields_12' class='gform_fields top_label form_sublabel_below description_below'><li id="field_12_6" class="gfield field_sublabel_below field_description_below hidden_label gfield_visibility_visible" ><label class='gfield_label' for='input_12_6' >Nom</label><div class='ginput_container ginput_container_text'><input name='input_6' id='input_12_6' type='text' value='' class='large' placeholder='Votre nom' aria-invalid="false" /> </div></li><li id="field_12_7" class="gfield email gfield_contains_required field_sublabel_below field_description_below hidden_label gfield_visibility_visible" ><label class='gfield_label' for='input_12_7' >Courriel<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_email'> <input name='input_7' id='input_12_7' type='text' value='' class='large' placeholder='Votre adresse courriel' aria-required="true" aria-invalid="false" /> </div></li><li id="field_12_9" class="gfield hidden scroll-subscriber field_sublabel_below field_description_below gfield_visibility_visible" ><label class='gfield_label' for='input_12_9' >Scroll Subscriber</label><div class='ginput_container ginput_container_text'><input name='input_9' id='input_12_9' type='text' value='' class='medium' aria-invalid="false" /> </div></li><li id="field_12_8" class="gfield field_sublabel_below field_description_below hidden_label gfield_visibility_visible" ><label class='gfield_label gfield_label_before_complex' >Je suis un éducateur, un entraîneur ou un animateur en loisirs</label><div class='ginput_container ginput_container_checkbox'><ul class='gfield_checkbox' id='input_12_8'><li class='gchoice gchoice_12_8_1'> <input class='gfield-choice-input' name='input_8.1' type='checkbox' value='Oui, veuillez aussi m’envoyer l’infolettre semestrielle d’Actif pour la vie pour les professionnels.' id='choice_12_8_1' /> <label for='choice_12_8_1' id='label_12_8_1'>Oui, veuillez aussi m’envoyer l’infolettre semestrielle d’Actif pour la vie pour les professionnels.</label> </li></ul></div></li></ul></div> <div class='gform_footer top_label'> <input type='submit' id='gform_submit_button_12' class='gform_button button' value='Abonnez-vous à notre bulletin' onclick='if(window["gf_submitting_12"]){return false;} window["gf_submitting_12"]=true; ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_12"]){return false;} window["gf_submitting_12"]=true; jQuery("#gform_12").trigger("submit",[true]); }' /> <input type='hidden' name='gform_ajax' value='form_id=12&amp;title=&amp;description=&amp;tabindex=0' /> <input type='hidden' class='gform_hidden' name='is_submit_12' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='12' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_12' value='WyJbXSIsImU4MmE1N2RiNzRiMTQ1ZjVhOGQ3OWQwZmVkOTFkNjRiIl0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_12' id='gform_target_page_number_12' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_12' id='gform_source_page_number_12' value='1' /> <input type='hidden' name='gform_field_values' value='' /> </div> <p style="display: none !important;"><label>&#916;<textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js" name="ak_js" value="120"/><script>document.getElementById( "ak_js" ).setAttribute( "value", ( new Date() ).getTime() );</script></p></form> </div> <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_12' id='gform_ajax_frame_12' title='This iframe contains the logic required to handle Ajax powered Gravity Forms.'></iframe> <script type='text/javascript'>gform.initializeOnLoaded( function() {gformInitSpinner( 12, 'https://activeforlife.com/content/plugins/gravityforms/images/spinner.svg' );jQuery('#gform_ajax_frame_12').on('load',function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_12');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_12').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;var mt = parseInt(jQuery('html').css('margin-top'), 10) + parseInt(jQuery('body').css('margin-top'), 10) + 100;if(is_form){jQuery('#gform_wrapper_12').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_12').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_12').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ jQuery(document).scrollTop(jQuery('#gform_wrapper_12').offset().top - mt); }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_12').val();gformInitSpinner( 12, 'https://activeforlife.com/content/plugins/gravityforms/images/spinner.svg' );jQuery(document).trigger('gform_page_loaded', [12, current_page]);window['gf_submitting_12'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}setTimeout(function(){jQuery('#gform_wrapper_12').replaceWith(confirmation_content);jQuery(document).scrollTop(jQuery('#gf_12').offset().top - mt);jQuery(document).trigger('gform_confirmation_loaded', [12]);window['gf_submitting_12'] = false;wp.a11y.speak(jQuery('#gform_confirmation_message_12').text());}, 50);}else{jQuery('#gform_12').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger('gform_post_render', [12, current_page]);} );} );</script>
[gravityforms id=11 title="false" description="false" ajax="true"]
<div class='gf_browser_chrome gform_wrapper gform_legacy_markup_wrapper' id='gform_wrapper_11' ><div id='gf_11' class='gform_anchor' tabindex='-1'></div><form method='post' enctype='multipart/form-data' target='gform_ajax_frame_11' id='gform_11' action='/say-yes-to-puddle-play/#gf_11' > <div class='gform_body gform-body'><ul id='gform_fields_11' class='gform_fields top_label form_sublabel_below description_below'><li id="field_11_2" class="gfield field_sublabel_below field_description_below hidden_label gfield_visibility_visible" ><label class='gfield_label' for='input_11_2' >Name</label><div class='ginput_container ginput_container_text'><input name='input_2' id='input_11_2' type='text' value='' class='large' placeholder='Your name' aria-invalid="false" /> </div></li><li id="field_11_1" class="gfield email gfield_contains_required field_sublabel_below field_description_below hidden_label gfield_visibility_visible" ><label class='gfield_label' for='input_11_1' >Email<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_email'> <input name='input_1' id='input_11_1' type='text' value='' class='large' placeholder='Your email address' aria-required="true" aria-invalid="false" /> </div></li><li id="field_11_4" class="gfield hidden scroll-subscriber field_sublabel_below field_description_below gfield_visibility_visible" ><label class='gfield_label' for='input_11_4' >Scroll Subscriber</label><div class='ginput_container ginput_container_text'><input name='input_4' id='input_11_4' type='text' value='' class='medium' aria-invalid="false" /> </div></li><li id="field_11_3" class="gfield field_sublabel_below field_description_below hidden_label gfield_visibility_visible" ><label class='gfield_label gfield_label_before_complex' >I&#039;m an educator, coach, or rec leader</label><div class='ginput_container ginput_container_checkbox'><ul class='gfield_checkbox' id='input_11_3'><li class='gchoice gchoice_11_3_1'> <input class='gfield-choice-input' name='input_3.1' type='checkbox' value='Yes, please also send me the biannual AfL Pro Newsletter for educators, coaches and rec leaders' id='choice_11_3_1' /> <label for='choice_11_3_1' id='label_11_3_1'>Yes, please also send me the biannual AfL Pro Newsletter for educators, coaches and rec leaders</label> </li></ul></div></li></ul></div> <div class='gform_footer top_label'> <input type='submit' id='gform_submit_button_11' class='gform_button button' value='Subscribe now' onclick='if(window["gf_submitting_11"]){return false;} window["gf_submitting_11"]=true; ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_11"]){return false;} window["gf_submitting_11"]=true; jQuery("#gform_11").trigger("submit",[true]); }' /> <input type='hidden' name='gform_ajax' value='form_id=11&amp;title=&amp;description=&amp;tabindex=0' /> <input type='hidden' class='gform_hidden' name='is_submit_11' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='11' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_11' value='WyJbXSIsImU4MmE1N2RiNzRiMTQ1ZjVhOGQ3OWQwZmVkOTFkNjRiIl0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_11' id='gform_target_page_number_11' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_11' id='gform_source_page_number_11' value='1' /> <input type='hidden' name='gform_field_values' value='' /> </div> <p style="display: none !important;"><label>&#916;<textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js" name="ak_js" value="23"/><script>document.getElementById( "ak_js" ).setAttribute( "value", ( new Date() ).getTime() );</script></p></form> </div> <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_11' id='gform_ajax_frame_11' title='This iframe contains the logic required to handle Ajax powered Gravity Forms.'></iframe> <script type='text/javascript'>gform.initializeOnLoaded( function() {gformInitSpinner( 11, 'https://activeforlife.com/content/plugins/gravityforms/images/spinner.svg' );jQuery('#gform_ajax_frame_11').on('load',function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_11');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_11').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;var mt = parseInt(jQuery('html').css('margin-top'), 10) + parseInt(jQuery('body').css('margin-top'), 10) + 100;if(is_form){jQuery('#gform_wrapper_11').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_11').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_11').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ jQuery(document).scrollTop(jQuery('#gform_wrapper_11').offset().top - mt); }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_11').val();gformInitSpinner( 11, 'https://activeforlife.com/content/plugins/gravityforms/images/spinner.svg' );jQuery(document).trigger('gform_page_loaded', [11, current_page]);window['gf_submitting_11'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}setTimeout(function(){jQuery('#gform_wrapper_11').replaceWith(confirmation_content);jQuery(document).scrollTop(jQuery('#gf_11').offset().top - mt);jQuery(document).trigger('gform_confirmation_loaded', [11]);window['gf_submitting_11'] = false;wp.a11y.speak(jQuery('#gform_confirmation_message_11').text());}, 50);}else{jQuery('#gform_11').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger('gform_post_render', [11, current_page]);} );} );</script>