matt@bellevebricks.com

Belle-Ve Bricks

Building Brands,
Brick by Brick.

winnie the pooh lego set
winnie the pooh lego set

Winne The Pooh – A LEGO® Ideas Set (21326) Review Part 2

Trusted by Over 392 Clients
Custom model
Bring Your Idea to Life
Winnie The Pooh LEGO® IMAGE 1

“But, of course, it isn’t really Good-bye, because The Forest will always be there…and anybody who is Friendly with Bears can find it.”

So says Winnie The Pooh to Christopher Robin in A.A. Milne’s ‘The House at Pooh Corner’, an ode to the bittersweet rites of passage of leaving childish things behind and dealing with the harsh realities of having to grow up.

Winnie The Pooh LEGO® IMAGE 2

Of course, nobody really ever has to grow up, not where there is LEGO® involved. And so, we return to 100 Acres Wood with the arrival of this childhood rush of nostalgia from their LEGO® Ideas range, aimed somewhat controversially at ages 18 and upwards: the reasoning behind which is something of a mystery to this blogger, for his seven year old nephew would no doubt delight at this colourful build with its faithful depictions of Pooh, Tigger, Piglet, Rabbit and Eeyore of course (but no Owl, a source of more controversy!). Neither would he find the set’s cornucopia of Easter Eggs, to be discovered within its seven packs of bricks, any great stretch

Winnie The Pooh LEGO® IMAGE 3

Twelve carefully-designed stickers have been included and several printed elements which include: Mr Sanders House, four honey pots and two log stumps plus a swarm of buzzy bees.

Winnie The Pooh LEGO® IMAGE 4
Winnie The Pooh LEGO® IMAGE 5

I’m sure today’s generation of children know all about 100 Acre Wood so the age mandate does seem a tad ill-conceived.

The box follows suit in terms of colouring with the other entries in the Adult Collector theme, but its hinge-topped construction neatly distinguishes it from other packaging.

However, the perfect-bound booklet thankfully abandons the dark design aesthetic of their Sesame Street instructions and opts for a more ‘children’s book’ approach, thus further confounding the odd age recommendation.

One of the manual’s opening passages even draws attention to the fact that Owl has not been included with this model which is either a careless piece of copy or a cunning carrot-dangle for a future Pooh-themed set: a honey-sweetener for an Owl’s House (with rocking chair) or Pooh Sticks Bridge perhaps?

The Mini-figures have been exquisitely crafted in unique sculpts that ring authentic to the original illustrations from the collection of books that give this set its inspiration.

Pooh and Piglet strike their iconic forms with honey pot and balloon accessories for the former and can be positioned on the log around a campfire element.

Tigger, in particular, with his distinctive tiger print stripe printing, cuts a very accurate figure which nicely conveys his energetic, mischievous character.

Eeyore is a standout, though: with his forlorn expression, demeanour and body language, along with the fine detailing of his mane of hair and pink heart bow attachment that adorns his tail, they couldn’t have done a better job at rendering this depressive character.

Eeyore is a standout, though: with his forlorn expression, demeanour and body language, along with the fine detailing of his mane of hair and pink heart bow attachment that adorns his tail, they couldn’t have done a better job at rendering this depressive character.

The tree elements, for example are less fiddly not to mention, less fragile, than their forebears in the Bonsai Tree set (10281). This time, LEGO® have gone with sturdier ball and socket joints rather than with clip components which affords more user friendly stability and in turn, versatility in dressing the limbs with the foliage elements.

Display options are optimized with the house splitting open via a simple hinge mechanism to reveal the immaculately appointed interior where many fan favourite details, like the map of 100 Acre Wood and Christopher Robin’s box off Pooh sticks stored up in the attic space, may be discovered. The fact that the house can easily be restored by clicking the two halves back together again, sealing the rustic roof sections shut is a welcome bonus.

The printed bee bricks can orbit the bee-hive courtesy of a vortex-like rotation, which is highly effective given the simplicity of it conception and dynamically offset the foliage.

For my money, this set offers more value for money than other nostalgia-fests such as Sesame Street (21324) or The Flintstones (21316), and well done to LEGO® for inspiring other LEGO® Ideas, I have already been mining my own childhood memories for their set-potential but I shall be keeping those to myself for the time being.

“Goodbye…? Oh no, please. Can’t we go back to page one and do it all over again?’ said Christopher Robin to Pooh Bear, and with this exquisitely-fashioned nostalgic model, you’ll be trotting back to this 100 Acre Wood time and time again.

If you would like buy this set it is available to purchase from:

LEGO UK
Amazon UK

Let us know what you think by dropping a comment below!

<div class="badge-base LI-profile-badge" data-locale="en_US" data-size="large" data-theme="dark" data-type="HORIZONTAL" data-vanity="ferdi-vol" data-version="v1"><a class="badge-base__link LI-simple-link" href="https://www.linkedin.com/in/%E2%9C%85-ferdi-vol-corporate-gifts/?trk=profile-badge"></a></div>
/* Auto generated, hash = 5dceu9kevqjdyuy2uw1atqrsu */
//TODO: Break this file down so that we can actually unit test it.
(function(window) {
  /**
  * Renders all unrendred LinkedIn Badges on the page
  */
  window.LIRenderAll = function () {
    var CALLBACK_NAME     = 'LIBadgeCallback', //Must match callback on helpers.js
        BADGE_NAMES       = '.LI-profile-badge, .LI-entity-badge',
        // TODO -- tracking param for other badge types
        TRACKING_PARAM    = 'profile-badge',
        responsesReceived = 0, //Keeps track of number of responses recieved for proper cleanup when finished
        expectedResponses = 0, //Keeps track of number of responses to expect
        scripts           = [ ], //Keeps track of scripts added for proper cleanup when finished
        childScripts      = {}, //Keeps track of child scripts to render
        badges            = Array.prototype.slice.call(document.querySelectorAll(BADGE_NAMES));

    var i, len, badge, rendered;
    for (i = 0, len = badges.length;  i < len; i++) {
      badge    = badges[i];
      rendered =  badge.getAttribute('data-rendered');
      if (!rendered) {
        expectedResponses++;
        badge.setAttribute('data-rendered', true);
        renderBadge(badge);
      }
    }

    function isCNDomain() {
      if (typeof window !== "undefined") {
        var hostName = window.location && window.location.hostname ||  '';
        return (/linkedin(-ei)?.cn$/).test(hostName);
      }

      return false;
    }

    function generateUrl(isEI) {
      var domainPrefix = isEI ? 'https://badges.linkedin-ei' : 'https://badges.linkedin';
      if (isCNDomain()) {
        return domainPrefix + ".cn/";
      }

      return domainPrefix + ".com/";
    }

    function getBadgeKeyQueryParams(badge) {
      return Array.prototype.slice.call(badge.attributes).filter(function (attr) {
        return attr.name.lastIndexOf('data-key-', 0) !== -1;
      }).map(function (attr) {
        // Most browsers automatically lowercase the attribute name when its being read
        // We are calling lowercase on it again to ensure consistency for any browsers that are lagging behind.
        return encodeURIComponent(attr.name.replace('data-', '').toLowerCase()) + '=' + encodeURIComponent(attr.value);
      });
    }

    /*
    * Renders a single badge on the page
    * @param badge: div element of badge to render
    */
    function renderBadge(badge) {
      var size       = badge.getAttribute('data-size'),
          locale     = badge.getAttribute('data-locale'),
          type       = badge.getAttribute('data-type'),
          theme      = badge.getAttribute('data-theme'),
          vanity     = badge.getAttribute('data-vanity'),
          version    = badge.getAttribute('data-version'),
          isEI       = badge.hasAttribute('data-ei'),
          entity     = badge.getAttribute('data-entity'),
          isCreatePage = badge.hasAttribute('data-iscreate'),
          uid        = Math.round(1000000 * Math.random()),
          baseUrl = generateUrl(isEI),
          queryParams = [
            'locale=' + encodeURIComponent(locale),
            'badgetype=' + encodeURIComponent(type),
            'badgetheme=' + encodeURIComponent(theme),
            'uid=' + encodeURIComponent(uid),
            'version=' + encodeURIComponent(version)
          ],
          url;

      if (version === 'v2') {
        baseUrl += 'view';
        queryParams.push('badgesize=' + encodeURIComponent(size));
        queryParams.push('entity=' + encodeURIComponent(entity));
        queryParams = queryParams.concat(getBadgeKeyQueryParams(badge));
      } else {
        baseUrl += 'profile';
        queryParams.push('maxsize=' + encodeURIComponent(size));
        queryParams.push('trk=' + encodeURIComponent(TRACKING_PARAM));
        queryParams.push('vanityname=' + encodeURIComponent(vanity));
      }

      if (isCreatePage) {
        queryParams.push('fromCreate=true');
      }

      url = baseUrl + '?' + queryParams.join('&');
      badge.setAttribute('data-uid' , uid);
      jsonp(url); //Calls responseHandler when done
    }

    /**
    * Handles a response from the server. Finds badge matching badgeUid and inserts badgeHtml there
    * @param badgeHtml: String representing contents of the badge
    * @param badgeUid: UID of the badge to target
    **/
    function responseHandler(badgeHtml, badgeUid) {
      responsesReceived ++;

      var i, badge, uid, isCreate;
      var defaultWidth = 330 // max possible width
      var defaultHeight = 300 // max possible height

      for (i = 0, len = badges.length; i < len; i++) {
        badge = badges[i];
        // isCreate needed to prevent reloading artdeco script tag
        isCreate = badge.getAttribute('data-iscreate');
        uid   = parseInt(badge.getAttribute('data-uid'), 10);
        if (uid === badgeUid) {
          var badgeMarkup = `<body>${badgeHtml}</body>`
          var iframe = document.createElement('iframe');
          iframe.onload = function() {
            var iframeBody = iframe.contentWindow.document.body;
            // 5 px buffer to avoid the badge border being cut off.
            iframe.setAttribute('height', (iframeBody.scrollHeight || defaultHeight) + 5);
            iframe.setAttribute('width', (iframeBody.scrollWidth || defaultWidth) + 5);
          };
          iframe.setAttribute('frameBorder', '0');
          iframe.style.display = 'block';
          badge.appendChild(iframe);
          iframe.contentWindow.document.open();
          iframe.contentWindow.document.write(badgeMarkup);
          iframe.contentWindow.document.close();
          replaceScriptTags(badge, isCreate);
        }
      }
      tryClean();
    }

  // These functions are needed because badge markup is added via innerHtml property which does not run script tags
  function replaceScriptTags(node, isCreate) {
    if (shouldReplaceNode(node, isCreate)) {
      node.parentNode.replaceChild(cloneScriptNode(node), node);
      childScripts[node.src] = true;
    } else {
      var i = 0,
          children = node.childNodes;
      while (i < children.length) {
        replaceScriptTags(children[i++], isCreate);
      }
    }
    return node;
  }

  function shouldReplaceNode(node, isCreate) {
    return isScriptNode(node) && !childScripts[node.src] && (!isCreate || (isCreate && !node.getAttribute('data-isartdeco')));
  }

  function isScriptNode(node) {
    return node.tagName === 'SCRIPT';
  }

  function cloneScriptNode(node){
    var script  = document.createElement("script");
    for( var i = node.attributes.length-1; i >= 0; i-- ) {
      script.setAttribute( node.attributes[i].name, node.attributes[i].value );
    }
    return script;
  }

    // Gets all incoming responses
    window[CALLBACK_NAME] = responseHandler;

    /**
    * Tries to clean added tags
    **/
    function tryClean() {
      //Clean up after all requests are done..
      //Accounts for people including script more than once
      var done = (responsesReceived >= expectedResponses && expectedResponses > 0) || responsesReceived >= badges.length;
      if (done) {
        delete window[CALLBACK_NAME];

        // remove all script tags
        scripts.map(function(script){
          document.body.removeChild(script);
        });

      }
    }

    /*
    * Makes Jsonp request, responses handles by CALLBACK_NAME
    * @param url String: url of server to make request to
    */
    function jsonp(url) {
      var script = document.createElement('script');
      script.src = url;
      scripts.push(script);
      document.body.appendChild(script);
    }
  };

  if (document.readyState === 'complete') {
    window.LIRenderAll();
  } else {
    window.addEventListener('load', window.LIRenderAll, false);
  }

})(window);
Popular Posts