Omar Baisar Graphic Communications Designer

ABOUT

A D&AD Brief from channel four; to brand a channel for over 60’s. This was a real exciting brief and my first piece of moving image. People in this age range have been around long enough to spot every kind of corporate malarkey and are instantly repelled by it. The logo consists of four animated dots, which break up and then regroup to form a 4. I received a D&AD Best in Year award.

AWARDS

D&AD Award - Nomination

MADEIT CREDITS

  • Channel FourClient

Just 4

' }; } var $a = $pf.find('a:not(.adminLink):not(.likepool-btn)').filter(function() { // plain image return jQuery(this).find('img').length > 0; }).first(); if ($a.length && $a.attr('href')) return { type: 'image', href: $a.attr('href') }; return null; } function cpOpenMedia($pf) { var group = [], openIndex = 0, target = $pf.get(0); jQuery('.projectItem_list .port_full').each(function() { // DOM order = carousel order var item = cpMediaItemFor(jQuery(this)); if (!item) return; if (this === target) openIndex = group.length; group.push(item); }); if (!group.length) return false; jQuery.fancybox(group, { index: openIndex, padding: 0, overlayOpacity: 0.85, overlayColor: '#000', titleShow: false, changeSpeed: 0, autoScale: true, autoDimensions: true, centerOnScroll: true, onComplete: function() { // autoplay the self-hosted video on whichever slide we land on // tracker 4224 c18537: flag video/embed slides so the prev/next click-zones let clicks reach // the player's scrubber (see CSS). Image slides keep click-anywhere-to-advance. var isMedia = jQuery('#fancybox-content').find('video, iframe').length > 0; jQuery('#fancybox-wrap').toggleClass('cp-media-noclicknav', isMedia); var v = jQuery('#fancybox-content video').get(0); if (!v) return; // tracker 4224 c18535: posters below the fold may not be decoded when the group is built, so their box // can fall back to 16/9. Once the modal video reports its real size, refit the box to the true aspect // (portrait included) and re-center - independent of whether the poster had loaded. var refit = function() { if (!v.videoWidth || !v.videoHeight) return; var box = cpVideoModalBox(v.videoWidth / v.videoHeight); jQuery('#fancybox-content, #fancybox-content .cp-video-modal').css({ width: box.w + 'px', height: box.h + 'px' }); try { if (jQuery.fancybox && jQuery.fancybox.resize) jQuery.fancybox.resize(); } catch (err) {} }; if (v.videoWidth) refit(); else jQuery(v).one('loadedmetadata', refit); try { var p = v.play(); if (p && typeof p.catch === 'function') { p.catch(function(){}); } } catch (err) {} }, onCleanup: function() { // and stop it when leaving/closing the slide var v = jQuery('#fancybox-content video').get(0); if (v) { try { v.pause(); v.currentTime = 0; } catch (err) {} } }, onClosed: function() { // #fancybox-wrap is cached & reused - don't leave the flag on it jQuery('#fancybox-wrap').removeClass('cp-media-noclicknav'); } }); return false; } // Single delegated handler for every media item. Rebuilt on each click so async (Vimeo/YouTube) posters are caught. var cpMediaSel = '.cp-video-poster, .cp-embed-poster, a:not(.adminLink):not(.likepool-btn)'; jQuery('.projectItem_list').off('click.cpmedia', cpMediaSel).on('click.cpmedia', cpMediaSel, function(e) { var $t = jQuery(this); if ($t.is('a') && !$t.find('img').length) return; // not an image link (title/credit/etc.) - leave it alone var $pf = $t.closest('.port_full'); e.preventDefault(); if ($pf.length) return cpOpenMedia($pf); // tracker 4224: image anchor not inside a media block - still open it (parity with the old gallery, which // lightboxed every such ) instead of navigating to the raw image. Posters always live in a .port_full, // so this only ever catches stray inline images. if ($t.is('a') && $t.attr('href')) { jQuery.fancybox({ href: $t.attr('href'), type: 'image', padding: 0, overlayOpacity: 0.85, overlayColor: '#000', titleShow: false, changeSpeed: 0 }); } return false; }); jQuery(document).ready(function(){ // resume ready(): everything below needs the full DOM (aside, comments, scroll, ajax) cp10.setup_comments('PROJECT', 118285); // tracker 4224: admin "Regenerate thumbnails" - rebuild this project's S3 thumbnails/posters (GIF posters & // video posters are replaced immediately; images are re-derived in the background). The link only renders for // admins. Because the rebuilt files keep the same S3 URL, a HARD refresh is needed to bypass the browser cache. jQuery('.cp-regen-thumbs').off('click.cpregen').on('click.cpregen', function(e){ e.preventDefault(); var $b = jQuery(this); if ($b.hasClass('cp-regen-busy')) return false; if (!window.confirm('Regenerate all thumbnails / posters for this project?\n\nCached versions on S3 will be rebuilt.')) return false; var pid = $b.data('project'), tok = $b.data('token'), label = $b.text(); $b.addClass('cp-regen-busy').text('Regenerating...'); jQuery.ajax({ url: '/ajax/regenerate_thumbnails.php', method: 'POST', data: { project_id: pid, token: tok }, dataType: 'json', timeout: 200000 }) .done(function(r){ window.alert((r && r.success ? 'Done. ' : 'Failed: ') + ((r && r.message) || 'unknown error') + (r && r.success ? '\n\nHard-refresh the page (Cmd/Ctrl + Shift + R) to see the rebuilt thumbnails.' : '')); }) .fail(function(){ window.alert('Regenerate request failed.'); }) .always(function(){ $b.removeClass('cp-regen-busy').text(label); }); return false; }); window.scrl = {}; window.scrl.el = $('#p-side-btm'); window.scrl.fixed = $('.p-detail-aside .fixer'); window.scrl.h = $(window).height(); window.scrl.firedAt = false; window.scrl.detectOffset = $('.profile-page').length > 0 ? 165 : 105; $(window).resize(function(){ window.scrl.h = $(window).height(); }); var onscroll = function(e){ if(( window.scrl.h - window.scrl.detectOffset ) > window.scrl.fixed.height()){ return $(window.scrl.fixed).css({ 'position': 'fixed', 'top': 'inherit' }); } var scrollTop = $('.showing_project').length > 0 ? $('.profile-detail-wrapper').scrollTop() : $(window).scrollTop(); if(window.scrl.firedAt && scrollTop < window.scrl.firedAt){ // we can revert to original style $(window.scrl.fixed).css({ 'position': 'absolute', 'top': 0 }); window.scrl.firedAt = false; return true; } if(window.scrl.el.visible(true)) { if (!window.scrl.firedAt) { // this is first time we initiate fixed position window.scrl.firedAt = scrollTop; } $(window.scrl.fixed).css({ 'position': 'fixed', 'top': (-1) * (window.scrl.fixed.height() - window.scrl.h + 100 ) }); } }; cp10.handle_back_button(); $(window).off('scroll', onscroll).on('scroll', onscroll).scroll(); });