Luma Camera Collection (2024)

Free U.S. Shipping Over $49

  • Best Sellers
  • Bags

    • Best Sellers

    • Backpacks

    • Travel Bags

    • Laptop Bags

    • Collapsible Bags

    • Bag Bundles

    • Sale

  • Camera

    • All Camera

    • Best Sellers

    • Camera New Arrivals

    • Camera Slings

    • Camera Accessories

    Shop Peter McKinnon Collection Luma Camera CollectionDesigned with Peter McKinnon
  • Luggage

    • All Luggage

    • Carry-On Luggage

    • Check-In Luggage

    Shop All Luggage Shop Carry-On Luggage
    • Shop All

    • Jacket

    • Pant

    • T-Shirt

    • Jogger

  • Accessories

    • All Accessories

    • Best Sellers

    • Travel Accessories

    • Camera Accessories

    • Everyday Accessories

    • Garment Bags

    Shop All Accessories Shop Packing Cubes
  • Log in
  • Best Sellers
  • Best Sellers

    Backpacks

    Travel Bags

    Laptop Bags

    Collapsible Bags

    Bag Bundles

    Sale

    Shop Best Sellers
    Shop BackpackBest For Daily Use
  • All Camera

    Best Sellers

    Camera New Arrivals

    Camera Slings

    Camera Accessories

    Shop Peter McKinnon Collection
    Luma Camera CollectionDesigned with Peter McKinnon
    Camera Accessories
  • All Luggage

    Carry-On Luggage

    Check-In Luggage

    Shop All Luggage
    Shop Carry-On Luggage
    Shop Check-in Luggage
  • Shop All

    Jacket

    Pant

    T-Shirt

    Jogger

    Outset JacketJacket to Pillow in Seconds
    Outset T-ShirtBuy 3 or More, Save 15%
  • All Accessories

    Best Sellers

    Travel Accessories

    Camera Accessories

    Everyday Accessories

    Garment Bags

    Shop All Accessories
    Shop Packing Cubes
    Shop Toiletry Bag
account Log in icon-search Search

icon-cartCart

Luma Camera Collection (30)

Luma Camera Collection (31)

Design and function that
meets the demands of
modern photography.

Luma Camera Collection (32)

Luma Camera Collection (33)

A slim camera bag packed with features and access to meet the demands of all photographers.

Explore 18L

Designed for
photographers
on the move.

EXPLORE 12L

Luma Camera Collection (34)

Luma Camera Collection (35)

Small, but mighty.

EXPLORE 9L

Designed in collaboration with Peter McKinnon, meet the Luma Camera Collection. With Nomatic's same dedication to functional features, quality materials, and meticulous construction, these bags are built to serve photographers of all levels. The Luma Camera Collection's design and function meets the demands of modern photography.

Luma Camera Collection (36)

Explore the FULL Collection

Luma Camera Collection (37)

LUMA Camera Pack 18L

Learn More

Luma Camera Collection (38)

Luma Camera Sling 12L

Learn More

Luma Camera Collection (39)

LUMA Camera Pack 18L

Learn More

Luma Camera Collection (40)

LUMA Camera Bundle

Learn More

★★★★★
One of the
Best Bags

This is one of the best bags I've ever purchased! Thanks Peter McKinnon and Nomatic. Fantastic design! Protects my camera gear well. Holds a laptop. Space for passport, etc. Best of all, its quite small! I just took it on trip to Antigua!

-Jon R.
Verified Buyer

★★★★★
Awesome
Camera Bag

LUMA Camera Bag 18L is great to fill my camera gear with sufficient volume. Nice design and light weight. Happy to use it for trips.

-Abdul K.
Verified Buyer

★★★★★
Very nicely
made

I purchased this bad from Kickstarter. I have a Sony A1 and it’s a terrific bag for a casual day of shooting. Well made, easy to use. Perfect size for this purpose. The magnetic top is a big plus. Very happy

-Susan B.
Verified Buyer

Luma Camera Collection (41)

Luma Camera Collection (42)

Luma Camera Collection (43)

Luma Camera Collection (44)

Luma Camera Collection (45)

Luma Camera Collection (46)

Luma Camera Collection (47)

Luma Camera Collection (48)

The McKinnon Camera family of bags and photo accessories.

Explore Our Camera Collection

Explore More Mckinnon Camera Family

Luma Camera Collection

'); $n.before($o); } }); } addSlider($nodes){ const $t = this; $t.wait('[data-nm009-class="nm009-upsell-slider-container"]', ($n)=>{ if(!$t.hasNode('[data-nm009-class="nm009-upsell-slider"]')){ const $o = $t.j('

'); const $ceil = Math.ceil(($nodes.length - 2) / 2); for(let $c = 0; $c < $ceil; $c++){ const $li = $t.j('

  • '); $nodes.each(($i, $l)=>{ if($i < ($nodes.length - 2)){ if($c === (Math.floor($i / 2))){ const $clone = $t.j($l).children('.upcart-upsell-item-card').clone(true); $clone.attr('data-nm009-slide-clone-index', $i); $t.j($l).attr('data-nm009-slide-index', $i); if($clone.find('select').length > 0){ $clone.find('select').on('change', function($e){ $e.preventDefault(); const $form = $t.j(this).closest('form'); const $href = $form.prev().find('a').attr('href'); const $query = ($href.indexOf('?') !== -1) ? $href.split('?') : [$href]; const $pathname = $query[0].split('/'); const $handle = $pathname[$pathname.length - 1]; $t.debug($handle + ' ' + $t.j(this).val()); $t.j.ajax({ url: '/products/' + $handle + '/.js', type: 'GET', dataType: 'json', success: ($r)=>{ $t.each($r.variants, ($variant, $vc)=>{ if($variant.id === parseInt($form.find('select').val())){ const $img = ($variant.featured_image !== null && typeof($variant.featured_image.src) === 'string') ? $variant.featured_image.src : $r.images[0]; $t.debug('img ' + $img); $form.prev().find('.upcart-upsell-item-price').html('$' + ($variant.price * .01).toFixed(2)); $form.closest('.upcart-upsell-item-card').find('.upcart-upsell-item-image').attr('src', $img); } }); }, error: ($x, $s, $e)=>{ console.log($x); console.log($s); console.log($e); } }); }); $clone.find('input[type="submit"]').on('click', function($e){ $e.preventDefault(); $t.debug($t.j(this).closest('form').find('select').val()); const $d = { items: [ {id: parseInt($t.j(this).closest('form').find('select').val()), quantity: 1} ] }; $t.cart.add($d, ()=>{ $t.debug('added upsell product'); window.upcartRegisterAddToCart(); }); }); $clone.find('input[type="submit"]').attr('type', 'button'); } else{ $clone.find('input[type="submit"]').on('click', function($e){ $e.preventDefault(); $t.j('[data-nm009-slide-index="' + $i + '"]').find('input[type="submit"]').eq(0).trigger('click'); }); $clone.find('input[type="submit"]').attr('type', 'button'); } $li.append($clone); } } }); $o.append($li); } $n.append($o); $t.slider.init('[data-nm009-class="nm009-upsell-slider"]', $t.sliderID, {addWrap: true, attrs: [ {name: 'display',value: 1}, {name: 'move-slide', value: 1}, {name: 'current-slide',value: 1}, {name: 'display-mobile',value: 1}, {name: 'current-slide-mobile',value: 1}, {name: 'move-slide-mobile',value: 1}, {name: 'controls',value: 1}, {name: 'pagination',value: 0}, {name: 'touch',value: 1} ]}) } }); } } class $cookiesClass{ constructor(){} set($n, $v, $exd){ const $d = new Date(); $d.setTime($d.getTime() + ($exd * 24 * 60 * 60 * 1000)); const $exp = 'expires=' + $d.toUTCString(); document.cookie = $n + '=' + $v + ';' + $exp + ';path=/'; } get($nm){ const $n = $nm + '='; const $decode = decodeURIComponent(document.cookie); const $ca = $decode.split(';'); for(const $ck of $ca){ if($ck.indexOf($n) !== -1){ const $s = $ck.split('='); return $s[1]; } } return ''; } check($n){ const $ck = this.get($n); return ($ck !== '') ? true : false; } } class $sliderClass{ constructor($j = jQuery, $hasNode = ()=>{}, $each = ()=>{}){ this.j = $j; this.hasNode = $hasNode; this.each = $each; }; init($selector, $id = 'sliderID', $params = {addWrap: true, attrs: []}){ const $t = this; $t.j($selector).attr('data-slider-id', $id); if($params.addWrap){ const $o = $t.j('

    '); $t.j($selector).before($o); $o.append($t.j($selector)); } else{ $t.j($selector).parent().attr('data-slider-wrap', $id); } $t.tagSliderItems($selector); $t.updateAttrs($id, $params.attrs); $t.addStyle($id); } tagSliderItems($selector){ const $t = this; $t.j($selector).children().each(($i, $l)=>{ $t.j($l).attr('data-slider-item', $i); }); } updateAttrs($id, $attrs){ const $t = this; if($attrs.length > 0){ $t.each($attrs, ($p, $c)=>{ $t.j('[data-slider-id="' + $id + '"]').attr('data-slider-' + $p.name, $p.value); $t.updateAttr($id, $p); }); } } updateAttr($id, $param){ const $t = this; switch($param.name){ case 'controls': if($param.value === 1){ $t.addControls($id); } break; case 'pagination': if($param.value === 1){ $t.addPagination($id); } break; case 'touch': if($param.value === 1){ $t.addTouchEvents($id); } break; default: break; } } addControls($id){ const $t = this; const $wrap = $t.j('[data-slider-wrap="' + $id + '"]'); const $next = $t.j(''); const $prev = $t.j(''); $next.on('click', function($e){ $e.preventDefault(); $t.next($id); if(typeof($t.j('[data-slider-id="' + $id + '"]').attr('data-slider-current-slide-mobile')) !== 'undefined'){ $t.next($id, true); } }); $prev.on('click', function($e){ $e.preventDefault(); $t.prev($id); if(typeof($t.j('[data-slider-id="' + $id + '"]').attr('data-slider-current-slide-mobile')) !== 'undefined'){ $t.prev($id, true); } }); $wrap.after($next); $wrap.after($prev); } next($id, $mobile = false){ const $t = this; const $m = ($mobile) ? '-mobile' : ''; const $current = $t.j('[data-slider-id="' + $id + '"]').attr('data-slider-current-slide' + $m); const $active = $t.j('[data-slider-id="' + $id + '"]').attr('data-slider-move-slide' + $m); const $tabs = Math.ceil($t.j('[data-slider-id="' + $id + '"]').children('[data-slider-item]').length / parseInt($active)); const $display = parseInt($t.j('[data-slider-id="' + $id + '"]').attr('data-slider-display' + $m)); const $end = ($display > 1) ? $tabs - $display : $tabs; const $next = (parseInt($current) + 1 <= $end) ? parseInt($current) + 1 : 1; $t.j('[data-slider-id="' + $id + '"]').attr('data-slider-current-slide' + $m, $next); $t.updatePagination($id, $next, $mobile); } prev($id, $mobile = false){ const $t = this; const $m = ($mobile) ? '-mobile' : ''; const $current = $t.j('[data-slider-id="' + $id + '"]').attr('data-slider-current-slide' + $m); const $active = $t.j('[data-slider-id="' + $id + '"]').attr('data-slider-move-slide' + $m); const $tabs = Math.ceil($t.j('[data-slider-id="' + $id + '"]').children('[data-slider-item]').length / parseInt($active)); const $display = parseInt($t.j('[data-slider-id="' + $id + '"]').attr('data-slider-display' + $m)); const $end = ($display > 1 && $tabs > 1) ? $tabs - $display : $tabs; const $next = (parseInt($current) - 1 >= 1) ? parseInt($current) - 1 : $end; $t.j('[data-slider-id="' + $id + '"]').attr('data-slider-current-slide' + $m, $next); $t.updatePagination($id, $next, $mobile); } addPagination($id){ const $t = this; const $current = $t.j('[data-slider-id="' + $id + '"]').attr('data-slider-current-slide') || 1; const $mCurrent = $t.j('[data-slider-id="' + $id + '"]').attr('data-slider-current-slide-mobile') || 1; const $wrap = $t.j('[data-slider-wrap="' + $id + '"]'); const $page = $t.j('

    '); $t.j('[data-slider-id="' + $id + '"]').children('[data-slider-item]').each(($i, $l)=>{ let $a = ($i + 1 === parseInt($current)) ? ' class="pagination-item-active"' : ''; if(typeof($t.j('[data-slider-id="' + $id + '"]').attr('data-slider-current-slide-mobile')) !== 'undefined'){ $a = ($i + 1 === parseInt($mCurrent)) ? ' class="pagination-item-active pagination-item-mobile-active"' : $a; $a = ($i + 1 === parseInt($current) && $i + 1 === parseInt($mCurrent)) ? ' class="pagination-item-active pagination-item-mobile-active"' : $a; } const $li = $t.j('

  • '); $li.on('click', function($e){ $e.preventDefault(); $t.j('[data-slider-id="' + $id + '"]').attr('data-slider-current-slide', $t.j(this).attr('data-slider-pagination-item')); $t.updatePagination($id, $t.j(this).attr('data-slider-pagination-item')); if(typeof($t.j('[data-slider-id="' + $id + '"]').attr('data-slider-current-slide-mobile')) !== 'undefined'){ $t.j('[data-slider-id="' + $id + '"]').attr('data-slider-current-slide-mobile', $t.j(this).attr('data-slider-pagination-item')); $t.updatePagination($id, $t.j(this).attr('data-slider-pagination-item', true)); } }); $page.append($li); }); $wrap.append($page); } updatePagination($id, $next, $mobile = false){ const $t = this; if($mobile){ $t.j('[data-slider-pagination-container="' + $id + '"] [data-slider-pagination-item]').removeClass('pagination-item-mobile-active'); $t.j('[data-slider-pagination-container="' + $id + '"] [data-slider-pagination-item="' + $next + '"]').addClass('pagination-item-mobile-active'); } else{ $t.j('[data-slider-pagination-container="' + $id + '"] [data-slider-pagination-item]').removeClass('pagination-item-active'); $t.j('[data-slider-pagination-container="' + $id + '"] [data-slider-pagination-item="' + $next + '"]').addClass('pagination-item-active'); } } addTouchEvents($id){ const $t = this; const $n = document.querySelector('[data-slider-id="' + $id + '"]'); let $xTouch = null; $n.addEventListener('touchstart', function($e){ $xTouch = $e.touches[0].clientX; }); $n.addEventListener('touchmove', function($e){ if(!$xTouch){return;} let $xUp = $e.touches[0].clientX; let $xDif = $xTouch - $xUp; if($xDif > 0){ $t.next($id); if(typeof($t.j('[data-slider-id="' + $id + '"]').attr('data-slider-current-slide-mobile')) !== 'undefined'){ $t.next($id, true); } } else{ $t.prev($id); if(typeof($t.j('[data-slider-id="' + $id + '"]').attr('data-slider-current-slide-mobile')) !== 'undefined'){ $t.prev($id, true); } } $xTouch = null; }); } addStyle($id){ const $t = this; let $l = ''; const $i = $t.j('[data-slider-id="' + $id + '"] > [data-slider-item]').length; for(let $c = 0; $c < $i; $c++){ const $off = $c * -100; $l = $l + '[data-slider-current-slide="' + ($c + 1) + '"]{' + 'transform: translateX(' + $off + '%);' + '}'; } if(typeof($t.j('[data-slider-id="' + $id + '"]').attr('data-slider-current-slide-mobile')) !== 'undefined'){ $l = $l + '@media all and (max-width: 767px) { '; for(let $c = 0; $c < $i; $c++){ const $off = $c * -100; $l = $l + '[data-slider-current-slide-mobile="' + ($c + 1) + '"]{' + 'transform: translateX(' + $off + '%);' + '}'; } $l = $l + '} '; } if($t.hasNode('[data-slider-css="' + $id + '"]')){ const $s = $t.j('[data-slider-css="' + $id + '"]'); $s.html(''); $s.html($l); } else{ const $s = $t.j('

    '); $s.html($l); $t.j('body').append($s); } } } class $shopifyCartClass{ constructor($j){ this.cartcount = 0; this.j = $j; } add($data, $callBack){ const $t = this; if($data.items.length > 0){ $t.get(($r)=>{ $t.cartcount = $r.item_count; console.log($t.cartcount); $t.j.ajax({ url: '/cart/add.js', type: 'POST', data: $data, dataType: 'json', success: ()=>{ $t.get(($rq)=>{ if($t.cartcount < $rq.item_count){ $callBack($rq); } }); }, error: ($x, $s, $e)=>{ console.log($x); console.log($s); console.log($e); } }); }); } } get($callBack){ const $t = this; $t.j.ajax({ url: '/cart.js', type: 'GET', dataType: 'json', success: ($rq)=>{ $callBack($rq); }, error: ($x, $s, $e)=>{ console.log($x); console.log($s); console.log($e); } }); } } const $djar_nm009_v1 = new $djar_nm009_v1_class(); $djar_nm009_v1.run();});

  • Luma Camera Collection (2024)
    Top Articles
    The way to get Laid in Shanghai – the best place to grab and Date women – Sparrow's VIP
    The Wrap: Fish & chips coming to Washington Avenue, supper and co*cktails to downtown
    Ftl Damaged And Dilapidated
    Thompson Fire continues to burn in Northern California, forcing evacuations
    German Electronics - distribuitor Conrad: Magazinul tau online de tehnica si electronica
    'Eras' tour movie etiquette: How to enjoy the Taylor Swift concert film (the right way)
    One Piece Film: Red Soap2Day
    The Black Girl’s Travel And Beauty Guide To Curaçao
    Pokemon Infinite Fusion Download: Updated | PokemonCoders
    Total number of Artificer Infusions? - Unearthed Arcana - Dungeons & Dragons Discussion - D&D Beyond Forums
    Ryan Garcia Lpsg
    7512 Quigg Street, Clifton, VA 20124 | MLS# VAFX2184584 | RLAH @properties
    Latest Posts
    The Bear's Matty Matheson Reveals Major Challenge Filming the Show
    Journal articles: 'American Bell Telephone Company' – Grafiati
    Article information

    Author: Laurine Ryan

    Last Updated:

    Views: 5887

    Rating: 4.7 / 5 (77 voted)

    Reviews: 92% of readers found this page helpful

    Author information

    Name: Laurine Ryan

    Birthday: 1994-12-23

    Address: Suite 751 871 Lissette Throughway, West Kittie, NH 41603

    Phone: +2366831109631

    Job: Sales Producer

    Hobby: Creative writing, Motor sports, Do it yourself, Skateboarding, Coffee roasting, Calligraphy, Stand-up comedy

    Introduction: My name is Laurine Ryan, I am a adorable, fair, graceful, spotless, gorgeous, homely, cooperative person who loves writing and wants to share my knowledge and understanding with you.