www.lakeshorelearning.com
Open in
urlscan Pro
104.83.4.34
Public Scan
URL:
https://www.lakeshorelearning.com/products/blocks-manipulatives/building-sets/animal-kingdom-blocks-complete-set/p/LL226X?utm_cont...
Submission: On February 22 via manual from US — Scanned from DE
Submission: On February 22 via manual from US — Scanned from DE
Form analysis
12 forms found in the DOM<form class="header-search" data-bind="submit: search" role="search">
<label for="search" class="sr-only">Search:</label>
<span class="ll-typeahead" data-bind="click: setDTMData">
<input id="search" name="search" type="text" class="form-control header-link" autocapitalize="none" autocomplete="off" target-submit-jselector="#btnSearch" data-bind="attr: {'placeholder': placeholder},
typeahead : options,
event: {blur: onBlurSearch, paste: onPasteSearch, keydown: onKeydownSearch, keyup: onKeyup},
validateInput:'LtrNumCh2'" automation-id="search_input" placeholder="What can we help you find?">
<button class="ll-typeahead-remove header-link" aria-label="Remove search input" style="display: none;"><img src="/assets/images/typeahead-x.png" alt="X"></button>
<button id="btnSearch" data-bind="event: {blur: onBlurSearch }" class="ll-icon icon-search ta-search-icon header-link" aria-live="polite" type="submit" automation-id="search_button" aria-label="search"></button>
</span>
</form>
<form class="form-inline pdp-form">
<div class="col-lg-8 col-xs-12">
<div class="form-group">
<div class="item-quickview-qty" data-bind="initialize, visible: qtyInputType() === 'select'">
<span class="select-wrap"><select class="form-control text-center qty-dropdown" aria-required="true" automation-id="pdp_qty_field" data-bind="value: qtySelect,
options: qtyOptions,
optionsText: 'name',
optionsAfterRender: afterQtyRender" aria-label="Quantity">
<option value="">1</option>
<option value="">2</option>
<option value="">3</option>
<option value="">4</option>
<option value="">5</option>
<option value="">6</option>
<option value="">7</option>
<option value="">8</option>
<option value="">9</option>
<option value="">10</option>
<option value="">11</option>
<option value="">12</option>
<option value="">13</option>
<option value="">14</option>
<option value="">15+</option>
</select><span class="caret caret-select"></span></span>
</div>
<!-- ko if: qtyInputType() === 'input' --><!-- /ko -->
</div>
<div class="form-group mob-addtocart-main">
<div class="ll-btn-container">
<!-- ko ifnot: displayAddedBtn -->
<button class="btn btn-addtocart btn-addtocart-top ml20 btn-sld-red ll-btn-md" data-bind="enable: enableAddToCartButton,
css: {'disabled-pointer': !enableAddToCartButton()},
clickBubble: false,
click: addToCart" automation-id="pdp_add_to_cart">Add to Cart </button>
<!-- /ko -->
<!-- ko if: displayAddedBtn --><!-- /ko -->
</div>
</div>
</div>
</form>
<form class="form">
<div class="modal-header">
<span class="close-icon" data-dismiss="modal" aria-label="Close" role="presentation"> </span>
<h4 class="modal-title" data-bind="html: inStoreModalTitle" role="heading" aria-level="2">Buy Online…Pick Up in Store!</h4>
</div>
<div class="modal-body pt15">
<div class="row">
<div class="col-md-12 col-xs-12">
<p class="lh24" data-bind="parsedHTML: modalBodyMsg">Shopping is now faster and easier than ever! Simply select "Store Pickup" to buy eligible items online…and they'll soon be waiting for you in your local Lakeshore store. For complete
details, visit our <a href="/help/in-store-pickup">Store Pickup</a> page.</p>
</div>
</div>
</div>
</form>
<form class="form" data-bind="submit: sendEmail">
<div data-bind="visible: !$component.emailJob()" class="notOnPage" id="ae-formFieldLabelOptIn_c5176rpxnyn_1">Please verify you are not a bot: <input type="checkbox" name="not_a_bot_check" data-bind="checked: isBot"
aria-labelledby="ae-formFieldLabelOptIn_c5176rpxnyn_1"></div>
<div class="row">
<div class="col-md-6">
<div class="row">
<div class="col-md-12">
<h4 aria-level="3"><strong>From</strong></h4>
</div>
<div class="col-md-6 mb10" data-bind="css: errors().name ? 'has-error' : ''">
<label class="control-label" id="ae-formFieldLabelOptIn_c5176rpxnyn_2"><strong>Name</strong></label>
<input class="form-control" type="text" data-bind="value: nameFrom, validateInput:'LtrCh1'" maxlength="40" aria-labelledby="ae-formFieldLabelOptIn_c5176rpxnyn_2" autocomplete="name">
<div class="help-block" data-bind="visible: errors().name, text: errors().name" style="display: none;"></div>
</div>
<div class="col-md-6 mb10" data-bind="css: errors().email ? 'has-error' : ''">
<label class="control-label" id="ae-formFieldLabelOptIn_c5176rpxnyn_3"><strong>Email</strong></label>
<input class="form-control email-input" type="email" data-bind="value: emailFrom, validateInput:'LtrNumCh6', valueUpdate: 'afterkeydown'" maxlength="64" autocomplete="email" aria-labelledby="ae-formFieldLabelOptIn_c5176rpxnyn_3">
<div class="help-block" data-bind="visible: errors().email, text: errors().email" style="display: none;"></div>
</div>
</div>
<div class="row">
<div class="col-md-12 mb10" data-bind="css: errors().personalMessage ? 'has-error' : ''">
<label class="control-label" id="ae-formFieldLabelOptIn_c5176rpxnyn_4"><span>Message</span></label>
<textarea class="form-control" rows="4" id="personalmessage" data-bind="value: personalMessage, validateInput:'LtrNumCh5', valueUpdate: 'afterkeydown'" maxlength="250" aria-labelledby="ae-formFieldLabelOptIn_c5176rpxnyn_4"></textarea>
<div class="help-block" data-bind="visible: errors().personalMessage, text: errors().personalMessage" style="display: none;"></div>
</div>
</div>
</div>
<div class="col-md-6">
<div data-bind="foreach: recipients">
<div class="row">
<!-- ko if : $index() === 0 -->
<div class="col-md-12">
<h4><strong>To</strong></h4>
</div>
<!-- /ko -->
<div class="col-md-6 mb10" data-bind="css: $component.getFieldErrorMessage('name', $data.id) ? 'has-error' : ''">
<label class="control-label" id="ae-formFieldLabelOptIn_c5176rpxnyn_5">
<!-- ko if : $index() === 0 -->
<strong>Name</strong>
<!-- /ko -->
<!-- ko ifnot : $index() === 0 --><!-- /ko -->
</label>
<input class="form-control" type="text" data-bind="value: $data.name, validateInput:'LtrCh1'" maxlength="40" aria-labelledby="ae-formFieldLabelOptIn_c5176rpxnyn_5" autocomplete="name">
<div class="help-block" data-bind="visible: $component.getFieldErrorMessage('name', $data.id),
text: $component.getFieldErrorMessage('name', $data.id)" style="display: none;"></div>
</div>
<div class="col-md-6 mb10" data-bind="css: $component.getFieldErrorMessage('email', $data.id) ? 'has-error' : ''">
<label class="control-label" id="ae-formFieldLabelOptIn_c5176rpxnyn_6">
<!-- ko if : $index() === 0 -->
<strong>Email</strong>
<!-- /ko -->
<!-- ko ifnot : $index() === 0 --><!-- /ko -->
</label>
<input class="form-control email-input" type="email" data-bind="value: $data.email, validateInput:'LtrNumCh6', valueUpdate: 'afterkeydown'" maxlength="64" autocomplete="email" aria-labelledby="ae-formFieldLabelOptIn_c5176rpxnyn_6">
<div class="help-block" data-bind="visible: $component.getFieldErrorMessage('email', $data.id),
text: $component.getFieldErrorMessage('email', $data.id)" style="display: none;"></div>
</div>
</div>
<div class="row">
<!-- ko if : $index() === 0 --><!-- /ko -->
<div class="col-md-6 mb10" data-bind="css: $component.getFieldErrorMessage('name', $data.id) ? 'has-error' : ''">
<label class="control-label" id="ae-formFieldLabelOptIn_c5176rpxnyn_7">
<!-- ko if : $index() === 0 --><!-- /ko -->
<!-- ko ifnot : $index() === 0 -->
<span>Name</span>
<!-- /ko -->
</label>
<input class="form-control" type="text" data-bind="value: $data.name, validateInput:'LtrCh1'" maxlength="40" aria-labelledby="ae-formFieldLabelOptIn_c5176rpxnyn_7" autocomplete="name">
<div class="help-block" data-bind="visible: $component.getFieldErrorMessage('name', $data.id),
text: $component.getFieldErrorMessage('name', $data.id)" style="display: none;"></div>
</div>
<div class="col-md-6 mb10" data-bind="css: $component.getFieldErrorMessage('email', $data.id) ? 'has-error' : ''">
<label class="control-label" id="ae-formFieldLabelOptIn_c5176rpxnyn_8">
<!-- ko if : $index() === 0 --><!-- /ko -->
<!-- ko ifnot : $index() === 0 -->
<span>Email</span>
<!-- /ko -->
</label>
<input class="form-control email-input" type="email" data-bind="value: $data.email, validateInput:'LtrNumCh6', valueUpdate: 'afterkeydown'" maxlength="64" autocomplete="email" aria-labelledby="ae-formFieldLabelOptIn_c5176rpxnyn_8">
<div class="help-block" data-bind="visible: $component.getFieldErrorMessage('email', $data.id),
text: $component.getFieldErrorMessage('email', $data.id)" style="display: none;"></div>
</div>
</div>
<div class="row">
<!-- ko if : $index() === 0 --><!-- /ko -->
<div class="col-md-6 mb10" data-bind="css: $component.getFieldErrorMessage('name', $data.id) ? 'has-error' : ''">
<label class="control-label" id="ae-formFieldLabelOptIn_c5176rpxnyn_9">
<!-- ko if : $index() === 0 --><!-- /ko -->
<!-- ko ifnot : $index() === 0 -->
<span>Name</span>
<!-- /ko -->
</label>
<input class="form-control" type="text" data-bind="value: $data.name, validateInput:'LtrCh1'" maxlength="40" aria-labelledby="ae-formFieldLabelOptIn_c5176rpxnyn_9" autocomplete="name">
<div class="help-block" data-bind="visible: $component.getFieldErrorMessage('name', $data.id),
text: $component.getFieldErrorMessage('name', $data.id)" style="display: none;"></div>
</div>
<div class="col-md-6 mb10" data-bind="css: $component.getFieldErrorMessage('email', $data.id) ? 'has-error' : ''">
<label class="control-label" id="ae-formFieldLabelOptIn_c5176rpxnyn_10">
<!-- ko if : $index() === 0 --><!-- /ko -->
<!-- ko ifnot : $index() === 0 -->
<span>Email</span>
<!-- /ko -->
</label>
<input class="form-control email-input" type="email" data-bind="value: $data.email, validateInput:'LtrNumCh6', valueUpdate: 'afterkeydown'" maxlength="64" autocomplete="email" aria-labelledby="ae-formFieldLabelOptIn_c5176rpxnyn_10">
<div class="help-block" data-bind="visible: $component.getFieldErrorMessage('email', $data.id),
text: $component.getFieldErrorMessage('email', $data.id)" style="display: none;"></div>
</div>
</div>
</div>
</div>
</div>
</form>
<form class="form">
<div class="modal-header">
<span class="close-icon" tabindex="0" data-dismiss="modal" aria-label="Close" role="presentation"> </span>
<h4 class="modal-title" id="store-locator-label" data-bind="text: (isMoreInStorePage ? 'Find' : 'Select') + ' a Store'" role="heading" aria-level="2">Select a Store</h4>
</div>
<!-- ko if: $component.isAPIDown() --><!-- /ko -->
<!-- ko ifnot: $component.isAPIDown() -->
<div class="modal-body pt15" data-bind="style: { paddingBottom: $component.errorMessages.length === 1 ? '0' : '' }">
<div class="row">
<div class="col-md-12 col-xs-12">
<h2>Choose a Location</h2>
</div>
</div>
<div class="row">
<div class="col-xs-7 pr0 col-sm-3" data-bind="css: $component.selectStoreFromList() ? 'col-sm-5' : 'col-sm-3'">
<input type="text" class="form-control" placeholder="Enter Zip Code" name="store-selector" aria-label="Enter Zip Code" id="store-selector" data-bind="textInput: zipCode, validateInput:'NumCh9'" maxlength="10">
</div>
<div class="col-xs-5 serach-zip-submit col-sm-1" data-bind="css: $component.selectStoreFromList() ? 'col-sm-3' : 'col-sm-1'">
<div class="ll-btn-container inline">
<button class="btn btn-sld-blue ll-btn-sm inline-xs" type="submit" data-bind="click: $component.findStoresByZip">Search</button>
</div>
</div>
</div>
<!-- ko if: $component.warningMessage() --><!-- /ko -->
<!-- ko foreach: $component.errorMessages --><!-- /ko -->
</div>
<div class="storeSelectModal" data-bind="visible: showStoresSection" style="display: none;">
<!-- ko foreach: stores --><!-- /ko -->
</div>
<!-- /ko -->
</form>
<form class="form">
<ul class="account-list wishlist-move" role="radiogroup" aria-required="true">
<!-- ko foreach: wishlist.giftlists --><!-- /ko -->
<li>
<a class="noline account-edit-show" tabindex="0" data-bind="visible: !$component.isAddToNewList() && !wishlist.listErrorMessage(), clickBubble: false, click: $component.openAddNewWishlistAddItem">
<span class="icon-circle red mr5">+</span> <strong><span>Add New Shopping List</span></strong>
</a>
<div class="account-edit-box" data-bind="visible: $component.isAddToNewList() || wishlist.listErrorMessage()" style="display: none;">
<!-- data-bind="visible: $component.wishlist.moveItemFromWishlistIsNewWishlist()" -->
<div class="row narrow">
<div class="col-xs-12 mb5">
<label class="control-label">
<strong>Shopping List Name</strong>
</label>
</div>
<div class="form-group col-sm-7 col-xs-6" data-bind="css: wishlist.listErrorMessage() ? 'has-error' : ''">
<!-- ko if: $component.isCustomerEAI() === true--><!-- /ko -->
<!-- ko ifnot: $component.isCustomerEAI() === true -->
<input type="text" maxlength="80" class="form-control" aria-required="true" data-bind="value: $component.wishlist.name , validateInput:'LtrNumCh5',valueUpdate:'keyup', enterkey:function(){$component.addItemToNewList()}"
placeholder="Example: Mrs. Smith's Class" aria-label="Example: Mrs. Smith's Class">
<!-- /ko -->
<div class="help-block" data-bind="visible: wishlist.listErrorMessage(), text: wishlist.listErrorMessage()" style="display: none;"></div>
</div>
<div class="form-group col-sm-5 col-xs-6">
<label class="control-label sr-only" id="ae-formFieldLabelOptIn_c5176rpxnyn_11"><strong>Shopping List Visibility</strong></label>
<span class="select-wrap"><select class="form-control" aria-required="true" data-bind="initialize, options: $component.wishlist.publishedArray, optionsText: 'name', optionsValue: 'value', value: $component.wishlist.isPublished"
aria-labelledby="ae-formFieldLabelOptIn_c5176rpxnyn_11">
<option value="">Private</option>
<option value="">Public</option>
</select><span class="caret caret-select"></span></span>
<small data-bind="visible: $component.wishlist.isPublished() == false"> Only you can see this list. </small>
<small data-bind="visible: $component.wishlist.isPublished() == true" style="display: none;"> People can search for your public lists. </small>
</div>
</div>
</div>
</li>
</ul>
</form>
<form class="form">
<div class="red" data-bind="visible: $component.errorMessage() != null" style="display: none;">
<p data-bind="text: $component.errorMessage()"></p>
</div>
<p class="red" data-bind="visible: $component.errorInvalidGCMessage(), text: $component.errorInvalidGCMessage()" style="display: none;"></p>
<div class="row">
<div class="form-group col-md-7 col-xs-12" data-bind="css: $component.errorGiftCardMessage() || $component.errorInvalidGCMessage() ? 'has-error' : ''">
<label class="control-label" id="ae-formFieldLabelOptIn_c5176rpxnyn_12"> <strong>Gift Card #</strong></label>
<input type="text" class="form-control" maxlength="16" aria-required="true" data-bind="value: giftCardId, validateInput:'Num', valueUpdate: 'afterkeydown'" aria-labelledby="ae-formFieldLabelOptIn_c5176rpxnyn_12">
<div class="help-block" data-bind="visible: $component.errorGiftCardMessage(), text: $component.errorGiftCardMessage()" style="display: none;"></div>
</div>
<div class="gc-authorization form-group col-md-5 col-xs-12" data-bind="css: $component.errorAuthMessage() || $component.errorInvalidGCMessage() ? 'has-error' : ''">
<label class="control-label" id="ae-formFieldLabelOptIn_c5176rpxnyn_13"> <strong>Authorization #</strong></label>
<input type="text" class="form-control" maxlength="4" aria-required="true" data-bind="value: authorizationId, validateInput:'Num', valueUpdate: 'afterkeydown'" aria-labelledby="ae-formFieldLabelOptIn_c5176rpxnyn_13">
<div class="help-block" data-bind="visible: $component.errorAuthMessage(), text: $component.errorAuthMessage()" style="display: none;"></div>
</div>
</div>
<div class="row">
<div class="form-group col-md-6 col-xs-5">
<a href="#" id="needHelpContent" data-bind="click: $component.showHelpInfo">Need Help?</a>
</div>
<div class="form-group col-md-6 col-xs-7 gc-check-button text-right">
<div class="ll-btn-container align-right btn-narrow-5">
<button class="btn ll-btn-sm btn-sld-blue inline-xs" data-bind="click: $component.fetchGiftCardBalance">Check Balance</button>
</div>
</div>
</div>
<div class="row">
<div class="form-group col-xs-12 mt30" data-bind="visible: giftCardBalance" style="display: none;">
<h2>
<span>Balance: </span>
<span class="green"></span><span class="green" data-bind="text: $component.getAmount()">$undefined</span>
</h2>
</div>
</div>
</form>
<form class="footer-email" data-bind="css: {'mb5': emailError().length}">
<label for="footer-email" class="sr-only">enter your email address</label>
<input class="form-control email-input" name="footer-email" id="footer-email" type="email" data-bind="textInput: emailValue,
attr: { placeholder: placeholder, aria-label: placeholder },
validateInput:'LtrNumCh6',
valueUpdate: 'afterkeydown',
enterkey: singUpPreFilledEmail" placeholder="enter your email" aria-label="enter your email" maxlength="64" aria-describedby="ae-emailerror-label" autocomplete="email">
<div class="ll-btn-container align-right inline subscribe-cta">
<button data-bind="click: singUpPreFilledEmail" id="btnJoin" tabindex="0" class="btn btn-sld-blue ll-btn-sm btn-cta">Join</button>
</div>
</form>
<form class="form" novalidate="novalidate" data-bind="submit: login.loginB2C">
<div class="modal-body">
<!-- ko if: login.loginError() --><!-- /ko -->
<!-- ko if: isReview() --><!-- /ko -->
<div class="form-group" data-bind="css: login.errors().email ? 'has-error' : ''">
<label id="ae-formFieldLabelOptIn_c5176rpxnyn_14"><strong>Email</strong></label>
<input name="email" id="emailId" type="email" class="form-control input-lg email-input" placeholder="" maxlength="64" automation-id="login_email" aria-required="true"
data-bind="textInput: login.email, validateInput:'LtrNumCh6', valueUpdate: ['afterkeydown','propertychange','input']" aria-describedby="ae-signin-labels-0" autocomplete="email" aria-labelledby="ae-formFieldLabelOptIn_c5176rpxnyn_14">
<div class="help-block" data-bind="visible: login.errors().email, html: login.errors().email" id="ae-signin-labels-0" style="display: none;"></div>
</div>
<div class="form-group password-input" data-bind="css: login.errors().password && !login.loginError()? 'has-error' : '', css: { 'mb5' : $component.showLoyaltyModal }">
<label id="ae-formFieldLabelOptIn_c5176rpxnyn_15"><strong>Password</strong></label>
<span class="password-container">
<input name="password" class="form-control input-lg" placeholder="" maxlength="35" data-bind="textInput: login.password,
attr: {'type': showPassword() ? 'text' : 'password'},
valueUpdate: 'afterkeydown',
validateInput:'LtrNumCh3'" automation-id="login_pass" type="password" aria-describedby="ae-signin-labels-1" aria-labelledby="ae-formFieldLabelOptIn_c5176rpxnyn_15" autocomplete="current-password">
<i class="password-icon hide-icon" data-bind="css: showPassword() ? 'show-icon' : 'hide-icon', click: function(){showPassword(!showPassword())}" role="button" tabindex="0" aria-label="Show Password"></i>
</span>
<div class="help-block red" data-bind="visible: login.errors().password && !login.loginError() , parsedHTML: login.errors().password" id="ae-signin-labels-1" style="display: none;"></div>
</div>
</div>
<div class="modal-footer pt0">
<div class="row tight">
<!-- ko ifnot: $component.showLoyaltyModal -->
<!-- BEGIN PRE-LOYALTY FOOTER -->
<div class="logInButton">
<!-- BEGIN BUTTON STYLE UPDATE -->
<div class="ll-btn-container align-right">
<button type="submit" class="btn btn-sld-blue ll-btn-sm " automation-id="login_button">Sign In</button>
</div>
<!-- END BUTTON STYLE UPDATE -->
</div>
<div class="logInButton">
<!-- BEGIN BUTTON STYLE UPDATE -->
<div class="ll-btn-container align-right">
<button type="button" class="btn btn-sld-gray ll-btn-sm" data-dismiss="modal" aria-label="Cancel" automation-id="login_cancel">Cancel</button>
</div>
<!-- END BUTTON STYLE UPDATE -->
</div>
<div class="logInButton text-left">
<p data-bind="visible: login.isSearchWishlist()" style="display: none;">
<a class="modalLink" href="#" style="margin-left: 0px; display: none;" data-bind="visible: login.isSearchWishlist(), clickBubble: false, click: login.openWishlistSearchModal">Find a Shopping List</a>
</p>
<!-- ko ifnot: $component.isRevit() -->
<p class="mb0 hidden"> Don’t have an account? <a class="modalLink" href="#" automation-id="sal_register" s_objectid="global" data-bind="clickBubble: false, click: openRegisterFromLogin">Register now.</a>
</p>
<!-- /ko -->
<a href="" data-dismiss="modal" data-toggle="modal" data-bind="click: login.openForgotPasswordModal" role="button">Forgot Password?</a>
</div>
<!-- END PRE-LOYALTY FOOTER -->
<!-- /ko -->
<!-- ko if: showLoyaltyModal --><!-- /ko -->
</div>
</div>
</form>
<form class="form" data-bind="submit: register.registerB2C, css: {'modal-height': isMobileView()}" novalidate="novalidate">
<div class="modal-header">
<span class="close-icon" data-dismiss="modal" aria-label="Close" role="presentation"> </span>
<h4 class="modal-title" id="modal-register-label" data-bind="text: register.isGSA() || oldRegisterModal ? 'Register' : 'Create Account'" role="heading" aria-level="2">Register</h4>
</div>
<div class="register-modal-container" data-bind="css: {'scroll-area': isMobileView()}">
<!-- ko if: !register.isGSA() && !oldRegisterModal --><!-- /ko -->
<div>
<div class="modal-body">
<!-- ko if: register.errorMessages().length > 0 --><!-- /ko -->
<!-- ko if: isReview --><!-- /ko -->
<!-- ko if: register.isGSA() && !oldRegisterModal --><!-- /ko -->
<div class="row narrow">
<div class="alert alert-danger" data-bind="visible: $component.register.additionalInfoRequiredError()" role="alert" aria-live="polite" style="display: none;">
<span data-bind="html: $component.register.additionalInfoRequiredError()"></span><br>
</div>
<div class="form-group col-sm-6" data-bind="css: {'has-error': $component.register.firstNameError()}">
<label class="required-field-label">First Name</label>
<input name="firstname" automation-id="reg-firstname" maxlength="40" class="form-control input-lg" type="text" aria-required="true" data-bind="textInput: register.firstName, value: register.firstName,validateInput:'LtrNumCh1'"
aria-label="First Name" aria-describedby="ae-register-labels-0" autocomplete="given-name">
<div class="help-block" data-bind="visible: $component.register.firstNameError(), text: $component.register.firstNameError()" id="ae-register-labels-0" style="display: none;"></div>
</div>
<div class="form-group col-sm-6" data-bind="css: {'has-error': $component.register.lastNameError()}">
<label class="required-field-label">Last Name</label>
<input name="lastname" automation-id="reg-lastname" maxlength="40" class="form-control input-lg" type="text" aria-required="true" data-bind="textInput: register.lastName, value: register.lastName,validateInput:'LtrNumCh1'"
aria-label="Last Name" aria-describedby="ae-register-labels-1" autocomplete="family-name">
<div class="help-block" data-bind="visible: $component.register.lastNameError(), text: $component.register.lastNameError()" id="ae-register-labels-1" style="display: none;"></div>
</div>
</div>
<div class="row narrow">
<div class="form-group" data-bind="css: {'has-error': $component.register.emailError()}">
<label class="required-field-label">Email</label>
<input name="email" type="email" maxlength="64" automation-id="email_signup_modal" class="form-control input-lg email-input" aria-required="true" data-bind="textInput: register.email, value: register.email,validateInput:'LtrNumCh6'"
aria-label="Email" aria-describedby="ae-register-labels-2" autocomplete="email">
<div class="help-block" data-dismiss="modal" data-bind="visible: $component.register.emailError(), parsedHTML: $component.register.emailError()" id="ae-register-labels-2" style="display: none;"></div>
</div>
</div>
<div class="row narrow">
<!-- ko component: {
name: 'password-input',
params: {
containerClass: 'col-xs-12',
input: $component.register.password,
errorMsg: $component.register.passwordError,
automationId: 'reg-password'
}
} -->
<div class="password-input form-group col-xs-12" data-bind="css: containerClass, css: {'has-error': errorMsg() && (isServerMsg() || !isValid())}">
<label class="required-field-label" data-bind="text: label, visible: !hideLabel" id="ae-formFieldLabelOptIn_c5176rpxnyn_16">Password</label>
<span class="password-container">
<input name="password" maxlength="35" class="password-field form-control input-lg" aria-required="true" data-bind="textInput: input,
initPassword,
valueUpdate: 'afterkeydown',
validateInput:'LtrNumCh3',
css: {'input-lg': !defaultInputSize},
attr: {
'autocomplete' : thisClient.browserName == 'Chrome' ? 'disable' : 'off',
'type': showPassword() ? 'text' : 'password',
'id': inputId,
'placeholder': inputPlaceholder,
'automation-id': automationId
}" autocomplete="disable" type="password" id="" placeholder="" automation-id="reg-password" aria-describedby="ae-register-labels-3" aria-labelledby="ae-formFieldLabelOptIn_c5176rpxnyn_16">
<i class="password-icon small hide-icon" data-bind="css: showPassword() ? 'show-icon' : 'hide-icon', click: function(){showPassword(!showPassword())}" role="button" tabindex="0" aria-label="Show Password"></i>
</span>
<div class="help-block lh17 mb0" data-bind="parsedHTML: errorMsg(), visible: errorMsg() && (isServerMsg() || !isValid())" style="display: none;" id="ae-register-labels-3"></div>
<div class="password-prompts" data-bind="slideVisible: showPrompts, css: {'mt4': errorMsg() && (isServerMsg() || !isValid())}" style="display: none; opacity: 0;">
<p class="prompt" data-bind="css: !emptyInput() ? (validLength() ? 'green' : 'red') : ''">
<span class="fa fa-circle" data-bind="css: !emptyInput() ? (validLength() ? 'fa-check-circle' : 'fa-times-circle') : 'fa-circle'"></span>
<span>Minimum 8 characters</span>
</p>
<p class="prompt" data-bind="css: !emptyInput() ? (letterIncluded() ? 'green' : 'red') : ''">
<span class="fa fa-circle" data-bind="css: !emptyInput() ? (letterIncluded() ? 'fa-check-circle' : 'fa-times-circle') : 'fa-circle'"></span>
<span>Must include one letter</span>
</p>
<p class="prompt" data-bind="css: !emptyInput() ? (numberIncluded() ? 'green' : 'red') : ''">
<span class="fa fa-circle" data-bind="css: !emptyInput() ? (numberIncluded() ? 'fa-check-circle' : 'fa-times-circle') : 'fa-circle'"></span>
<span>Must include one number</span>
</p>
<!-- <p class="prompt" data-bind="css: !emptyInput() ? (spaceIncluded() ? 'red' : 'green') : ''">
<span class="fa" data-bind="css: !emptyInput() ? (spaceIncluded() ? 'fa-times-circle' : 'fa-check-circle') : 'fa-circle'"></span>
<span>May not include spaces</span>
</p> -->
<span style="display:none;" class="ae-compliance-indent" id="ae-password-label"> - Minimum 8 characters Must include one letter Must include one number </span>
</div>
</div><!-- /ko -->
</div>
<!-- ko if: !register.isGSA() && !oldRegisterModal --><!-- /ko -->
<div class="row narrow">
<div class="form-group" data-bind="css: {'has-error': register.userShopForError()}">
<div class="row narrow">
<div class="col-sm-12">
<label class="required-field-label mb0" data-bind="text: register.shopForText, css: {'mb0': !$component.isMobileView()}" id="ae-register-modal-radio-label">I typically shop for:</label>
</div>
</div>
<div class="row narrow user-type" role="radiogroup" aria-required="true">
<label class="radio-control">
<input type="radio" name="userShopFor" data-bind="checked: register.userShopFor" value="classroom" automation-id="shop-for-class" aria-describedby="ae-register-labels-4">
<div class="radio-indicator"></div>
<span>Classroom/Organization</span>
</label>
<label class="radio-control">
<input type="radio" name="userShopFor" data-bind="checked: register.userShopFor" value="home" automation-id="shop-for-home" aria-describedby="ae-register-labels-4">
<div class="radio-indicator"></div>
<span>Home</span>
</label>
<label class="radio-control">
<input type="radio" name="userShopFor" data-bind="checked: register.userShopFor" value="all" automation-id="shop-for-both" aria-describedby="ae-register-labels-4">
<div class="radio-indicator"></div>
<span>Both</span>
</label>
</div>
<div class="help-block" data-bind="visible: register.userShopForError(), html: register.userShopForError()" id="ae-register-labels-4" style="display: none;"></div>
</div>
</div>
<div class="row narrow mt3">
<div class="form-group col-sm-12 accept-tc" data-bind="css: {'mb0': isReview}, visible: !register.isGSA() || oldRegisterModal">
<label class="accept-tc-label checkbox-control pl0" data-bind="css: {'mb0': isReview}">
<input type="checkbox" name="emailOptIn" data-bind="checked: register.emailOptIn" automation-id="emailOptIn" aria-required="true" aria-describedby="ae-register-labels-5">
<div class="radio-indicator"></div>
<span data-bind="html: register.emailOptInText">Yes, I would like to receive news and promotions via email.</span>
</label>
<div class="help-block red" data-bind="parsedHTML: $component.register.termsError(),
visible: $component.register.termsError()" id="ae-register-labels-5" style="display: none;"></div>
</div>
</div>
</div>
<div class="modal-footer">
<div class="row tight" data-bind="css: {'mb5': isReview, 'mb20':isSweepstakes}">
<!-- ko if: oldRegisterModal -->
<div class="col-sm-6 text-left pl0 mt15" data-bind="css: isMobileView() ? 'mb15 pl0':'pl0 mt15'">
<a id="privacy-link" class="fs13" href="/about/privacy-policy">See Privacy Policy</a>
</div>
<div class="col-sm-6 button-group">
<div class="logInButton text-left">
<!-- BEGIN BUTTON STYLE UPDATE -->
<div class="ll-btn-container align-left">
<button type="button" class="btn btn-sld-gray ll-btn-sm" data-dismiss="modal" aria-label="Cancel">Cancel</button>
</div>
<!-- END BUTTON STYLE UPDATE -->
</div>
<div class="logInButton text-right">
<!-- BEGIN BUTTON STYLE UPDATE -->
<div class="ll-btn-container align-left">
<button type="submit" data-bind="clickBubble: false" class="btn btn-sld-blue ll-btn-sm ss-user-type-flag" automation-id="register_button" data-ss-variation-applied="1">Register</button>
</div>
<!-- END BUTTON STYLE UPDATE -->
</div>
</div>
<!-- ko ifnot: (isReview && isSweepstakes) -->
<div class="col-xs-12 pr0" data-bind="css: {'pr0': !isMobileView()}">
<div class="checkbox" data-bind="css: {'text-center': isMobileView()}">
<a role="link" data-bind="click: register.isGSA, clickBubble:false" tabindex="0">I am a GSA member</a>.
</div>
</div>
<!-- /ko -->
<!-- /ko -->
<!-- ko ifnot: oldRegisterModal --><!-- /ko -->
</div>
</div>
</div>
</div>
</form>
<form class="form" novalidate="novalidate">
<div class="modal-content">
<div class="modal-header">
<span class="close-icon" data-dismiss="modal" aria-label="Close" role="presentation"> </span>
<h4 class="modal-title" id="modal-password-label" data-bind="text: isB2BSetPassword() ? 'Set Password' : (resetPass() ? 'Reset Password' : 'Forgot Password?')" role="heading" aria-level="2">Forgot Password?</h4>
</div>
<div class="modal-body" id="passwordReset-area" data-bind="css: {'pt30 pb30': invalidB2BSetPassword() || resetPassCompleted()}">
<div class="compact-text-2 mb10" data-bind="visible: modalBodyText().length,
parsedHTML: modalBodyText(),
css: {'mb10': !invalidB2BSetPassword() && !resetPassCompleted()}" role="alert">Enter your email address, and we’ll send a secure email with instructions for resetting your password.</div>
<!-- ko ifnot: invalidB2BSetPassword -->
<div class="row narrow" data-bind="visible: !resetPassCompleted()">
<!-- ko ifnot: inputName() === 'password' -->
<div class="form-group mb0" data-bind="css: {'has-error': formHasError}">
<label class="required-field-label" data-bind="text: inputLabel">Email</label>
<input class="form-control input-lg email-input" maxlength="64" aria-required="true" data-bind="attr: {'name': inputName(), 'type': inputType()}, 'automation-id': ('reset_pass_' + inputName()),
textInput: $component[inputName()], validateInput:'LtrNumCh6'" name="email" type="email" aria-label="E-Mail" aria-describedby="ae-password-error-message" autocomplete="email">
<div class="help-block" data-bind="visible: errorMessages()[inputName()], parsedHTML: errorMessages()[inputName()]" style="display: none;" id="ae-password-error-message"></div>
</div>
<!-- /ko -->
<!-- ko if: inputName() === 'password' --><!-- /ko -->
</div>
<!-- /ko -->
</div>
<div class="modal-footer pt5" data-bind="visible: !resetPassCompleted() && !invalidB2BSetPassword()">
<div class="row tight">
<div class="col-xs-12 button-group">
<div class="logInButton text-right">
<!-- BEGIN BUTTON STYLE UPDATE -->
<div class="ll-btn-container align-right">
<button type="button" class="btn btn-sld-gray ll-btn-sm" data-dismiss="modal" automation-id="reset_pass_cancel" aria-label="Cancel" data-bind="enable: !submitInProgress()">Cancel</button>
</div>
<!-- END BUTTON STYLE UPDATE -->
</div>
<div class="logInButton text-right">
<!-- BEGIN BUTTON STYLE UPDATE -->
<div class="ll-btn-container align-right">
<button type="submit" data-bind="clickBubble: false, click: submitRequest, enable: !submitInProgress()" class="btn btn-sld-blue ll-btn-sm" automation-id="reset_pass_button">Submit</button>
</div>
<!-- END BUTTON STYLE UPDATE -->
</div>
</div>
</div>
</div>
</div>
</form>
<form class="form">
<div class="modal-header" data-bind="style: { display: 'flex' }" style="display: flex;">
<span class="close-icon" tabindex="0" data-dismiss="modal" aria-label="Close" role="presentation"> </span>
<h4 class="modal-title" id="store-locator-label" role="heading" aria-level="2">Find Another Store</h4>
</div>
<div class="modal-body pt15 pb0">
<div class="row">
<div class="col-md-12 col-xs-12">
<h2>Choose a Location</h2>
</div>
</div>
<!-- ko component: {
name: 'store-selector-content',
params: { parentType: 'modal' }
} -->
<div class="row pb20" data-bind="css:{'pt25': parentType==='popover'}">
<div class="col-xs-7 col-md-5 pr0">
<input type="text" class="form-control" placeholder="Enter Zip Code" aria-label="Enter Zip Code" name="store-selector" id="store-selector" data-bind="value: zipCode, validateInput:'NumCh9'" maxlength="10">
</div>
<div class="col-xs-5 col-md-3 serach-zip-submit">
<div class="ll-btn-container align-left inline">
<button class="btn btn-sld-blue ll-btn-sm inline-xs" aria-label="Search" type="submit" data-bind="click: $component.findStoresByZip">Search</button>
</div>
</div>
</div>
<div class="pb20" data-bind="visible: $component.errorMessages().length > 0" style="display: none;">
<!-- ko foreach: $component.errorMessages --><!-- /ko -->
</div>
<!-- BEGIN SEARCH RESULTS -->
<div class="storeSelectModal mr-20" data-bind="visible: showStoresSection, css: {'mr-20': $component.parentType === 'modal'}" style="display: none;">
<!-- ko foreach: stores --><!-- /ko -->
</div>
<!-- END SERACH RESULTS --><!-- /ko -->
</div>
</form>
Text Content
Skip to main content This website is AudioEye enabled and is being optimized for accessibility. To open the AudioEye Toolbar, press "shift + =". Some assistive technologies may require the use of a passthrough function before this keystroke. For more information, activate the button labeled “Explore your accessibility options”. ll Guest si7 1.230216.1.48 1 blue Bots Only Unlock member-only perks like $6.99 shipping with Lakeshore Rewards! Join now. Lakeshore Home Page Logo * Sign Out * 0 Cart Unlock member-only perks like $6.99 shipping with Lakeshore Rewards! Join now. * Find Your Store * Stores * Free Resources * Services * Registries & Lists * Gift Cards * Quick Order Lakeshore Home Page Logo Search: * Account * 0 Cart * Shop All Shop All Active Play Active Play * Shop All * Balance & Coordination * Sports & Ball Activities * Trikes & Accessories Arts & Crafts Arts & Crafts * Shop All * Craft Kits * Collage & Craft Materials * Paint & Painting Accessories * Art Easels & Drying Racks * Paper * Crayons & Colored Pencils * Stamps & Markers * Dough & Modeling Materials * Glue, Tape & Adhesives * Scissors & Punches * Drawing & Activity Books Blocks & Manipulatives Blocks & Manipulatives * Shop All * Fine Motor Development * Building Sets * Unit Blocks & Accessories * Light Tables & Accessories Books Books * Shop All * Read-Alongs * Paperback Books * Hardcover Books * Board Books * Big Books * Workbooks * Book Storage Classroom Decorations Classroom Decorations * Shop All * Borders * Accents * Bulletin Board Sets * Punch-Out Letters & Numbers * Posters & Charts * Bulletin Board Paper Classroom Furniture Classroom Furniture * Shop All * Classroom Carpets & Rugs * Storage Units * Storage Bins & Organizers * Chairs & Seating * Tables & Desks * Teaching Easels * Rest Mats & Cots * Cribs & Changing Tables * Room Dividers & Connecting Panels * Dramatic Play Furniture * Furniture Sets * Infant & Toddler Instant Learning Spaces * Preschool Instant Learning Spaces Dramatic Play Dramatic Play * Shop All * Play Furniture * Kitchen & House Play * Dress-Up & Role Play * Dolls & Accessories * Puppets * Cars, Trucks & Trains * Animal Playsets Games Games * Shop All * Board & Dice Games * File Folder Games * Bingo Games * Card Games * Fine Motor Games * Logic Games * Outdoor Games Infants & Toddlers Infants & Toddlers * Shop All * Furniture * Fine Motor Skills * Gross Motor Skills * Sensory Development * Cognitive Development * Social-Emotional Development * Books & Language Development * Music * Art * Instant Learning Spaces Language Language * Shop All * Oral Language & Storytelling * Alphabet * Phonemic & Phonological Awareness * Phonics & Word Building * Sight-Words * Vocabulary * Reading Comprehension & Fluency * Writing & Grammar * Spanish & ELL Materials * Multiskill Language Products Math Math * Shop All * Math Manipulatives * Numbers & Counting * Sorting & Patterning * Shapes & Geometry * Basic Operations * Measurement & Data * Time * Money * Place Value * Fractions, Decimals & Percents * Multiskill Math Products Music Music * Shop All * Musical Instruments * Music CDs * Audio Equipment & Listening Centers Puzzles Puzzles * Shop All * Wooden Puzzles * Floor Puzzles Sand & Water Sand & Water * Shop All * Sand & Water Play * Sand & Water Tables Science Science * Shop All * Life Science * Physical Science * Earth & Space Science * Science Tools & Equipment * Health & Nutrition * Multiskill Science Products Sensory Exploration Sensory Exploration * Shop All * Sensory Play * Sensory Tables * Light Tables & Accessories Social Studies Social Studies * Shop All * Social-Emotional & Character Development * Cultures & the Community * History & Geography STEM STEM * Shop All * Building & Engineering * Labs & Activities Teaching Resources Teaching Resources * Shop All * Classroom Essentials * Bins & Organizers * Classroom Equipment * Pocket Charts & Accessories * Dry-Erase Boards, Markers & Erasers * Nameplates & Name Tags * Lesson Plan & Record Books * Awards & Incentives * Stickers * Curriculum Support Kits Shop By Category * Active Play * Arts & Crafts * Blocks & Manipulatives * Books * Classroom Decorations * Classroom Furniture * Dramatic Play * Games * Infants & Toddlers * Language * Math * Music * Puzzles * Sand & Water * Science * Sensory Exploration * Social Studies * STEM * Teaching Resources * Shop By Age Shop By Age * 0-18 Months * 18-36 Months * 3 Years * 4 Years * 5 Years * 6 Years * 7 Years * 8 Years * 9 Years * 10 Years * 11 Years & Up * Furniture Furniture * Shop All * Shop By Furniture Lines * Classroom Carpets & Rugs * Storage Units * Storage Bins & Organizers * Chairs & Seating * Tables & Desks * Teaching Easels * Rest Mats & Cots * Cribs & Changing Tables * Room Dividers & Connecting Panels * Dramatic Play Furniture * Furniture Sets * Infant & Toddler Instant Learning Spaces * Preschool Instant Learning Spaces * Flex-Space Flex-Space Jr.® Classic Birch Heavy-Duty Kids Colors™ Just Like Home® First Steps® Outdoor * Learn Learn * Language Language * Shop All * Oral Language & Storytelling * Alphabet * Phonemic & Phonological Awareness * Phonics & Word Building * Sight-Words * Vocabulary * Reading Comprehension & Fluency * Writing & Grammar * Spanish & ELL Materials * Multiskill Language Products * * Books Books * Shop All * Read-Alongs * Paperback Books * Hardcover Books * Board Books * Big Books * Workbooks * Book Storage * * Math Math * Shop All * Math Manipulatives * Numbers & Counting * Sorting & Patterning * Shapes & Geometry * Basic Operations * Measurement & Data * Time * Money * Place Value * Fractions, Decimals & Percents * Multiskill Math Products * * Social Studies Social Studies * Shop All * Social-Emotional & Character Development * Cultures & the Community * History & Geography * * Science Science * Shop All * Life Science * Physical Science * Earth & Space Science * Science Tools & Equipment * Health & Nutrition * Multiskill Science Products * * STEM STEM * Shop All * Building & Engineering * Labs & Activities * * Play Play * Dramatic Play Dramatic Play * Shop All * Play Furniture * Kitchen & House Play * Dress-Up & Role Play * Dolls & Accessories * Puppets * Cars, Trucks & Trains * Animal Playsets * * Games Games * Shop All * Board & Dice Games * File Folder Games * Bingo Games * Card Games * Fine Motor Games * Logic Games * Outdoor Games * * Blocks & Manipulatives Blocks & Manipulatives * Shop All * Fine Motor Development * Building Sets * Unit Blocks & Accessories * Light Tables & Accessories * * Puzzles Puzzles * Shop All * Wooden Puzzles * Floor Puzzles * * Music Music * Shop All * Musical Instruments * Music CDs * Audio Equipment & Listening Centers * * Active Play Active Play * Shop All * Balance & Coordination * Sports & Ball Activities * Trikes & Accessories * * Sand & Water Sand & Water * Shop All * Sand & Water Play * Sand & Water Tables * * Sensory Exploration Sensory Exploration * Shop All * Sensory Play * Sensory Tables * Light Tables & Accessories * * Arts & Crafts Arts & Crafts * Shop All * Craft Kits * Collage & Craft Materials * Paint & Painting Accessories * Art Easels & Drying Racks * Paper * Crayons & Colored Pencils * Stamps & Markers * Dough & Modeling Materials * Glue, Tape & Adhesives * Scissors & Punches * Drawing & Activity Books * * Teaching Supplies Teaching Supplies * Teaching Resources Teaching Resources * Shop All * Classroom Essentials * Bins & Organizers * Classroom Equipment * Pocket Charts & Accessories * Dry-Erase Boards, Markers & Erasers * Nameplates & Name Tags * Lesson Plan & Record Books * Awards & Incentives * Stickers * Curriculum Support Kits * * Classroom Decorations Classroom Decorations * Shop All * Borders * Accents * Bulletin Board Sets * Punch-Out Letters & Numbers * Posters & Charts * Bulletin Board Paper * Top Decor Collections * Featured Featured Featured Assortments * New Arrivals * Five-Star Favorites * After School & Summer Programs * Social-Emotional Development * Diversity & Inclusion * Flexible Seating * Learning Recovery & Intervention Featured Programs * Head Start & Early Head Start * Family Child Care * Expanded Learning * Special Needs * Sale * View My Orders * Registries & Lists * Stores * Free Resources * Services * Gift Cards * * Shop All Active Play Active Play * Shop All * Balance & Coordination * Sports & Ball Activities * Trikes & Accessories Arts & Crafts Arts & Crafts * Shop All * Craft Kits * Collage & Craft Materials * Paint & Painting Accessories * Art Easels & Drying Racks * Paper * Crayons & Colored Pencils * Stamps & Markers * Dough & Modeling Materials * Glue, Tape & Adhesives * Scissors & Punches * Drawing & Activity Books Blocks & Manipulatives Blocks & Manipulatives * Shop All * Fine Motor Development * Building Sets * Unit Blocks & Accessories * Light Tables & Accessories Books Books * Shop All * Read-Alongs * Paperback Books * Hardcover Books * Board Books * Big Books * Workbooks * Book Storage Classroom Decorations Classroom Decorations * Shop All * Borders * Accents * Bulletin Board Sets * Punch-Out Letters & Numbers * Posters & Charts * Bulletin Board Paper Classroom Furniture Classroom Furniture * Shop All * Classroom Carpets & Rugs * Storage Units * Storage Bins & Organizers * Chairs & Seating * Tables & Desks * Teaching Easels * Rest Mats & Cots * Cribs & Changing Tables * Room Dividers & Connecting Panels * Dramatic Play Furniture * Furniture Sets * Infant & Toddler Instant Learning Spaces * Preschool Instant Learning Spaces Dramatic Play Dramatic Play * Shop All * Play Furniture * Kitchen & House Play * Dress-Up & Role Play * Dolls & Accessories * Puppets * Cars, Trucks & Trains * Animal Playsets Games Games * Shop All * Board & Dice Games * File Folder Games * Bingo Games * Card Games * Fine Motor Games * Logic Games * Outdoor Games Infants & Toddlers Infants & Toddlers * Shop All * Furniture * Fine Motor Skills * Gross Motor Skills * Sensory Development * Cognitive Development * Social-Emotional Development * Books & Language Development * Music * Art * Instant Learning Spaces Language Language * Shop All * Oral Language & Storytelling * Alphabet * Phonemic & Phonological Awareness * Phonics & Word Building * Sight-Words * Vocabulary * Reading Comprehension & Fluency * Writing & Grammar * Spanish & ELL Materials * Multiskill Language Products Math Math * Shop All * Math Manipulatives * Numbers & Counting * Sorting & Patterning * Shapes & Geometry * Basic Operations * Measurement & Data * Time * Money * Place Value * Fractions, Decimals & Percents * Multiskill Math Products Music Music * Shop All * Musical Instruments * Music CDs * Audio Equipment & Listening Centers Puzzles Puzzles * Shop All * Wooden Puzzles * Floor Puzzles Sand & Water Sand & Water * Shop All * Sand & Water Play * Sand & Water Tables Science Science * Shop All * Life Science * Physical Science * Earth & Space Science * Science Tools & Equipment * Health & Nutrition * Multiskill Science Products Sensory Exploration Sensory Exploration * Shop All * Sensory Play * Sensory Tables * Light Tables & Accessories Social Studies Social Studies * Shop All * Social-Emotional & Character Development * Cultures & the Community * History & Geography STEM STEM * Shop All * Building & Engineering * Labs & Activities Teaching Resources Teaching Resources * Shop All * Classroom Essentials * Bins & Organizers * Classroom Equipment * Pocket Charts & Accessories * Dry-Erase Boards, Markers & Erasers * Nameplates & Name Tags * Lesson Plan & Record Books * Awards & Incentives * Stickers * Curriculum Support Kits Shop By Category * Active Play * Arts & Crafts * Blocks & Manipulatives * Books * Classroom Decorations * Classroom Furniture * Dramatic Play * Games * Infants & Toddlers * Language * Math * Music * Puzzles * Sand & Water * Science * Sensory Exploration * Social Studies * STEM * Teaching Resources * Shop by Age Shop by Age * 0-18 Months * 18-36 Months * 3 Years * 4 Years * 5 Years * 6 Years * 7 Years * 8 Years * 9 Years * 10 Years * 11 Years & Up Shop by Grade * Infant * Toddler * Preschool * Pre-K * Kindergarten * 1st Grade * 2nd Grade * 3rd Grade * 4th Grade * 5th Grade * 6th Grade & Up 0-18 Months 18-36 Months 3-4 Years 5-6 Years 7-8 Years 9-11 Years * Furniture Furniture Types * Classroom Carpets & Rugs * Storage Units * Storage Bins & Organizers * Chairs & Seating * Tables & Desks * Teaching Easels * Rest Mats & Cots * Cribs & Changing Tables * Room Dividers & Connecting Panels * Dramatic Play Furniture * Furniture Sets * Infant & Toddler Instant Learning Spaces * Preschool Instant Learning Spaces Furniture Lines * Flex-Space * Flex-Space Jr.® * Classic Birch * Heavy-Duty * Kids Colors™ * Just Like Home® * First Steps® * Outdoor Flex-Space Flex-Space Jr.® Classic Birch Heavy-Duty Kids Colors™ Just Like Home® First Steps® Outdoor * Learn Language * Oral Language & Storytelling * Alphabet * Phonemic & Phonological Awareness * Phonics & Word Building * Sight-Words * Vocabulary * Reading Comprehension & Fluency * Writing & Grammar * Spanish & ELL Materials * Multiskill Language Products Books * Read-Alongs * Paperback Books * Hardcover Books * Board Books * Big Books * Workbooks * Book Storage Math * Math Manipulatives * Numbers & Counting * Sorting & Patterning * Shapes & Geometry * Basic Operations * Measurement & Data * Time * Money * Place Value * Fractions, Decimals & Percents * Multiskill Math Products Social Studies * Social-Emotional & Character Development * Cultures & the Community * History & Geography Science * Life Science * Physical Science * Earth & Space Science * Science Tools & Equipment * Health & Nutrition * Multiskill Science Products STEM * Building & Engineering * Labs & Activities * Play Dramatic Play * Play Furniture * Kitchen & House Play * Dress-Up & Role Play * Dolls & Accessories * Puppets * Cars, Trucks & Trains * Animal Playsets Games * Board & Dice Games * File Folder Games * Bingo Games * Card Games * Fine Motor Games * Logic Games * Outdoor Games Blocks & Manipulatives * Fine Motor Development * Building Sets * Unit Blocks & Accessories * Light Tables & Accessories Puzzles * Wooden Puzzles * Floor Puzzles Music * Musical Instruments * Music CDs * Audio Equipment & Listening Centers Active Play * Balance & Coordination * Sports & Ball Activities * Trikes & Accessories Sand & Water * Sand & Water Play * Sand & Water Tables Sensory Exploration * Sensory Play * Sensory Tables * Light Tables & Accessories * Arts & Crafts Arts & Crafts * Craft Kits * Collage & Craft Materials * Paint & Painting Accessories * Art Easels & Drying Racks * Paper * Crayons & Colored Pencils * Stamps & Markers * Dough & Modeling Materials * Glue, Tape & Adhesives * Scissors & Punches * Drawing & Activity Books * Teaching Supplies Teaching Resources * Classroom Essentials * Bins & Organizers * Classroom Equipment * Pocket Charts & Accessories * Dry-Erase Boards, Markers & Erasers * Nameplates & Name Tags * Lesson Plan & Record Books * Awards & Incentives * Stickers * Curriculum Support Kits Classroom Decorations * Borders * Accents * Bulletin Board Sets * Punch-Out Letters & Numbers * Posters & Charts * Bulletin Board Paper Top Decor Collections * Featured Featured Assortments * New Arrivals * Five-Star Favorites * After School & Summer Programs * Social-Emotional Development * Diversity & Inclusion * Flexible Seating * Learning Recovery & Intervention Featured Programs * Head Start & Early Head Start * Family Child Care * Expanded Learning * Special Needs * Sale Sale * All Sale Items * Deals on Featured Products * Clearance 1. Home 2. Products 3. Blocks & Manipulatives 4. Building Sets 5. Animal Kingdom Blocks - Complete Set Be the First to Write a Review Use + and - keys to zoom in and out, arrow keys move the zoomed portion of the image View Larger Close Window blocks_manipulatives/builders_building_s ANIMAL KINGDOM BLOCKS - COMPLETE SETNEW $85.00 New Lower Price Qty 123456789101112131415+ Add to Cart We’re sorry! We do not have that quantity at our , store. We adjusted the quantity to the amount currently available. Add to Registry Add to Shopping List Ship Item In stock and ready to ship! Store Pickup Select Store BUY ONLINE…PICK UP IN STORE! Shopping is now faster and easier than ever! Simply select "Store Pickup" to buy eligible items online…and they'll soon be waiting for you in your local Lakeshore store. For complete details, visit our Store Pickup page. Recommended Age 3 yrs. - 6 yrs. / Preschool - 1st gr. Description Our nature-inspired blocks look like real ice cubes, boulders and tree logs—for a fun, hands-on way to combine block building with dramatic play! Kids easily stack and arrange the blocks any way they like to construct custom habitats…then add adorable animals to bring each environment to life. Plus, children develop fine motor control, spatial awareness, problem-solving skills and more with every landscape they create! You get all 3 sets, each with 28 blocks, 6 animal figures and an activity… guide. Largest blocks measure 4". Each set also available separately below. Read More Item # LL226X GREENGUARD CERTIFIED Lakeshore is proud to offer a variety of furniture that has earned GREENGUARD® Certification! This certification is recognized by numerous sustainable building programs, including the LEED® Building Rating System. Purchasing products that are GREENGUARD Certified helps you earn points toward LEED certification. Products featuring the GREENGUARD logo are certified by the GREENGUARD Environmental Institute to comply with low emissions standards—reducing chemical pollutants and helping improve the quality of indoor air for children and teachers alike. View Lakeshore products that are GREENGUARD Certified! To learn more, visit https://spot.ul.com/. You can also request more information by contacting Customer Service at (800) 428-4414 Mon.-Fri., 6:00 a.m. to 6:00 p.m., PT. MODAL-BADGE Lakeshore believes in the quality of our products, and we stand behind them. Our no-nonsense warranty guarantees that the items we create are meticulously designed and carefully crafted to withstand the test of time. If any product breaks within the warranty period, we will repair or replace it-at no charge! Our warranty covers any structural defects that are found under normal, everyday use. Structural defects do not include cosmetic damage caused by regular wear & tear (such as the gradual fading of fabrics over time) or damage caused by factors outside of normal use, such as acts of nature, modification, or unreasonable or abusive use. We put it together-so you don't have to! Our fully assembled furniture is designed to save you valuable time and energy, arriving ready to use right out of the box. In some cases, you may need to attach casters or door handles-but that's it! We put it together-so you don't have to! Our fully assembled furniture is designed to save you valuable time and energy, arriving ready to use right out of the box. In some cases, you may need to attach casters, hinges or door handles-but that's it! Awarded for educational merit and superior classroom quality, Instructor Magazine Teachers' Picks highlight the most innovative products introduced from year to year! Selected by teachers and education editors, this award spotlights classroom materials that span the curriculum. Lakeshore is honored to be a Teachers' Pick! Instructor Magazine is now Scholastic Teacher Magazine. Evaluated by a select panel of expert educators, Teachers' Choice Award winners represent the very best products on the market for a variety of key educational settings and categories: For the Classroom, For the Family, Preschool, Professional Development and Children's Books. Evaluated by a select panel of expert educators, Teachers' Choice Award winners represent the very best products on the market for a variety of key educational settings and categories: For the Classroom, For the Family, Preschool, Professional Development and Children's Books. American Heart Association Copy National Parenting Product Award National Parenting Product Award 2019 National Parenting Product Award 2020 Teacher's Choice Award Family 2019 Teacher's Choice Award Classroom 2019 Teacher's Choice Award Preschool 2019 Purdue Engineering Award WARNING: CHOKING HAZARD - Small parts. Not for children under 3 years. WHAT ARE THESE SAFETY LABELS FOR? CHANGE STORE Please Note: Changing the store will update the location for all store pickup items in your cart. Change Store Cancel Share EMAIL AN ITEM Animal Kingdom Blocks - Complete Set Fields in bold are required. Please verify you are not a bot: FROM Name Email Message TO Name Email Name Email Name Email LakeshoreLearning.com will only use these email addresses to send this message. Cancel Send SELECT A STORE CHOOSE A LOCATION Search ADDED TO CART View Cart () | Continue Shopping * Checkout View Cart Continue Shopping ADD TO SHOPPING LIST * + Add New Shopping List Shopping List Name Shopping List Visibility PrivatePublic Only you can see this list. People can search for your public lists. Cancel Save Add CHECK BALANCE Gift Card # Authorization # Need Help? Check Balance BALANCE: $UNDEFINED CLASSIC GIFT CARD E-GIFT CARD EMAIL item_page.rr1 false YOU MAY ALSO LIKE New Lakeshore Alphabet Cones $39.99 (3) Add to Cart Float & Find Alphabet Bubbles $21.99 reg. $36.99 (65) Add to Cart Lakeshore Pose & Play Families - Complete Set $109.00 (18) Add to Cart Animal Friends Clubhouse $69.99 (4) Add to Cart Lakeshore Magic Board $14.99 - $149.00 (73) Choose Options Sensory Sand Ice Cream Set $14.99 (12) Add to Cart Giant Washable Color Ink Pads - Set 1 $7.99 - $37.99 (40) Choose Options Play & Explore Rocket $39.99 reg. $59.99 (371) Add to Cart RichRelevance RECENTLY VIEWED PRODUCTS New Animal Kingdom Blocks - Complete Set $85.00 Add to Cart COUPON UNAVAILABLE Close Customer Support * Live Chat * Contact Us * Track My Order * Shipping * Returns and Exchanges * FAQs * Lakeshore Catalogs * Credit Application * Gift Cards * Mail Preferences * Product Safety * Feedback * eProcurement Sign-In * GSA Customer Sign-In * Accessibility Our Company * Careers * Our Story * CA Supply Chains Act * Partnerships * Lakeshore Warranties Stay Connected Sign up for special offers and news sent directly to you. enter your email address Join Sign up for exclusive text offers and deals. See Privacy Policy Instagram Social Network Facebook Social Network YouTube Video Twitter Social Network Linked In Social Network Get the App Scan the QR code to download our app. Google Play Store * *View promotion details. Privacy Policy | Children’s Policy | Do Not Sell My Personal Information | Do Not Share My Personal Information/Interest Based Ads ©2023 Lakeshore Learning Materials. All rights reserved. SIGN IN Email Password Sign In Cancel Find a Shopping List Don’t have an account? Register now. Forgot Password? B2B REDIRECT WRITE A REVIEW We’re sorry, but this item is no longer available. THANK YOU Your opinion matters to us, and we really appreciate you taking the time to let us know how we’re doing. Close ACCESS TO DESIGN RESOURCES Oops. You do not have access to the Design Resources page. Please click here to request access. Close REVIT ACCESS We're sorry! There was an error with the download. Please try again. Close INVALID REGISTRY We’re sorry! The registry you’re trying to view is no longer available. Close SESSION EXPIRED Continue REGISTER First Name Last Name Email Password Minimum 8 characters Must include one letter Must include one number - Minimum 8 characters Must include one letter Must include one number I typically shop for: Classroom/Organization Home Both Yes, I would like to receive news and promotions via email. See Privacy Policy Cancel Register I am a GSA member. THANK YOU FOR REGISTERING WITH LAKESHORE! GSA MEMBERSHIP Forgot Password? FORGOT PASSWORD? Enter your email address, and we’ll send a secure email with instructions for resetting your password. Email Cancel Submit ADDED TO CART View Cart () | Continue Shopping * Checkout View Cart Continue Shopping FIND ANOTHER STORE CHOOSE A LOCATION Search Opt out of Targeted Advertising OPT OUT OF TARGETED ADVERTISING When you visit our website, we store cookies on your browser to collect information. The information collected might relate to you, your preferences or your device, and is mostly used to make the site work as you expect it to and to provide a more personalized web experience. However, you can choose not to allow certain types of cookies, which may impact your experience of the site and the services we are able to offer. Click on the different category headings to find out more and change our default settings according to your preference. You cannot opt-out of our First Party Strictly Necessary Cookies as they are deployed in order to ensure the proper functioning of our website (such as prompting the cookie banner and remembering your settings, to log into your account, to redirect you when you log out, etc.). For more information about the First and Third Party Cookies used please follow this link. More information Allow All MANAGE CONSENT PREFERENCES STRICTLY NECESSARY COOKIES Always Active These cookies are necessary for the website to function and cannot be switched off in our systems. They are usually only set in response to actions made by you which amount to a request for services, such as setting your privacy preferences, logging in or filling in forms. You can set your browser to block or alert you about these cookies, but some parts of the site will not then work. These cookies do not store any personally identifiable information. TARGETING COOKIES Targeting Cookies These cookies may be set through our site by our advertising partners. They may be used by those companies to build a profile of your interests and show you relevant adverts on other sites. They do not store directly personal information, but are based on uniquely identifying your browser and internet device. If you do not allow these cookies, you will experience less targeted advertising. Back Button PERFORMANCE COOKIES Search Icon Filter Icon Clear checkbox label label Apply Cancel Consent Leg.Interest checkbox label label checkbox label label checkbox label label Confirm My Choices Opens in new window PDF Download Word Download Excel Download PowerPoint Download Document Download Explore your accessibility options close carousel