Shown in Spellbound White Sugar
Shown in Spellbound White Sugar

Bali Blackout Cellular Shades

$127.50 $70.13 you save 45% use code NOV2 at checkout until 11/18

Blindsgalore Guarantee
 

Change the size:

Bali Blackout Cellular Shades are energy efficient, insulating rooms from heat and cold, absorbing outside noise, and protecting your furniture and artwork from damaging UV rays. Bali cellular shades have blackout opacity which prohibits light from shining through and provides maximum privacy. Blackout fabric is thicker and stronger than other cellular fabrics. Blackout material is coated white on the inside of the shade.

{{ selection = model.getActiveOption(section.TypeId);"" }} {{ ::sectIndex = $index;"" }}

{{ ::model.sectionNumber($index) }} Select a room:

{{ ::typeNameDisplay = (section.TypeName == "Swatch") ? "product color" : (section.TypeName == "Room") ? "room selection" : section.TypeName;"" }} Learn more about {{::typeNameDisplay | lowercase}}
{{option.Caption}}

{{ ::model.sectionNumber($index) }} Select a {{::section.TypeId == 'trt.swc.alt' ? 'secondary ' : ''}}product color: ({{::section.Options.length}} available)

{{ ::typeNameDisplay = (section.TypeName == "Swatch") ? "product color" : (section.TypeName == "Room") ? "room selection" : section.TypeName;"" }} Learn more about {{::typeNameDisplay | lowercase}}

{{::items[0].Properties.StyleName}}

{{ ::swatchOptions = (items | orderBy: ['SortOrder', 'Caption']);"" }}

{{ ::model.sectionNumber($index) }} True Paint Match

{{ selection = selection || section.Options[0];"" }} {{ paintColorName = selection.Properties.Brand + ' ' + selection.Properties.ColorName;""}}
{{ selection.Caption }}

Your match is

{{paintColorName}}

or match to another paint color

Blindsgalore stands behind their True Paint Matchmaking skills. If you are not 100% satisfied with the color of the shade(s) you receive we will replace it with any other colored True Paint Matchmaker Shade. *

learn more

{{ ::model.sectionNumber($index) }} Select a {{::section.TypeId == 'trt.swc.alt' ? 'secondary ' : ''}}product color: ({{::section.Options.length}} available)

{{ ::typeNameDisplay = (section.TypeName == "Swatch") ? "product color" : (section.TypeName == "Room") ? "room selection" : section.TypeName;"" }} Learn more about {{::typeNameDisplay | lowercase}}

{{::items[0].Properties.StyleName}}

{{ ::swatchOptions = (items | orderBy: ['SortOrder', 'Caption']);"" }}

{{ ::model.sectionNumber($index) }} Select a {{::section.TypeName.toLowerCase()}} option:

{{ ::typeNameDisplay = (section.TypeName == "Swatch") ? "product color" : (section.TypeName == "Room") ? "room selection" : section.TypeName;"" }} Learn more about {{::typeNameDisplay | lowercase}}
{{ swatch = model.getActiveOption('trt.swc');"" }} {{ activeOption = model.getActiveOption(activeOptionOverride) || model.getActiveOption(section.TypeId);""}}
{{ activeOption.Caption }}

{{ model.getActiveOption(section.TypeId).Caption }}

{{ activeOptionOverride = null;"" }}
  • {{ ::inputType = section.AllowMultiple ? 'checkbox' : 'radio';"" }} {{ ::inputName = !section.AllowMultiple ? (section.SafeTypeId + '_' + $index) : option.Id;"" }} {{ ::dataKey = section.AllowMultiple ? option.Properties.TypeId : section.TypeId;""}} {{ ::checkedVal = section.AllowMultiple ? true : option.Id;"" }}
    Best for Kids
    {{ ::posOpts = (option.Options | filter: model.typeIdContains('.pos'));"" }} {{ ::hmaOpts = (option.Options | filter: { TypeId: 'hma'}:true);"" }} {{ ::pwrOpts = (option.Options | filter: { TypeId: 'pwr'}:true);"" }} {{ ::rmtOpts = (option.Options | filter: { TypeId: 'rmt'}:true);"" }} {{ headrailType = model.data['hrl.typ'];"" }}

{{ ::model.sectionNumber($index) }} Select a {{::section.TypeName.toLowerCase()}} option:

{{ ::typeNameDisplay = (section.TypeName == "Swatch") ? "product color" : (section.TypeName == "Room") ? "room selection" : section.TypeName;"" }} Learn more about {{::typeNameDisplay | lowercase}}
{{ swatch = model.getActiveOption('trt.swc');"" }} {{ activeOption = model.getActiveOption(activeOptionOverride) || model.getActiveOption(section.TypeId);""}}
{{ activeOption.Caption }}

{{ model.getActiveOption(section.TypeId).Caption }}

{{ activeOptionOverride = null;"" }}
  • {{ ::inputType = section.AllowMultiple ? 'checkbox' : 'radio';"" }} {{ ::inputName = !section.AllowMultiple ? (section.SafeTypeId + '_' + $index) : option.Id;"" }} {{ ::dataKey = section.AllowMultiple ? option.Properties.TypeId : section.TypeId;""}} {{ ::checkedVal = section.AllowMultiple ? true : option.Id;"" }}
    Best for Kids
    {{ ::posOpts = (option.Options | filter: model.typeIdContains('.pos'));"" }} {{ ::hmaOpts = (option.Options | filter: { TypeId: 'hma'}:true);"" }} {{ ::pwrOpts = (option.Options | filter: { TypeId: 'pwr'}:true);"" }} {{ ::rmtOpts = (option.Options | filter: { TypeId: 'rmt'}:true);"" }} {{ headrailType = model.data['hrl.typ'];"" }}
{{ ::accentColors = model.getDeepOptions(section.TypeId, 'trt.acc.clr');"" }}

{{ ::model.sectionNumber($index) }} Select a decorative accent: ({{::accentColors.length}} available)

{{ ::typeNameDisplay = (section.TypeName == "Swatch") ? "product color" : (section.TypeName == "Room") ? "room selection" : section.TypeName;"" }} Learn more about {{::typeNameDisplay | lowercase}}
{{ activeOptionOverride = model.data['trt.acc.stl'] ? 'trt.acc.stl' : null;""}} {{ swatch = model.getActiveOption('trt.swc');"" }} {{ activeOption = model.getActiveOption(activeOptionOverride) || model.getActiveOption(section.TypeId);""}}
{{ activeOption.Caption }}

{{ model.getActiveOption(section.TypeId).Caption }}

{{ activeOptionOverride = null;"" }} {{ activeSwatch = model.getActiveOption('trt.swc');"" }} {{ activeAccentColor = model.getActiveOption('trt.acc.clr');"" }}
    {{ ::accentStyles = model.getDeepOptions(section.TypeId, 'trt.acc.stl');"" }}
  • {{ ::inputName = section.TypeId + '_' + $index;"" }}
  • {{ ::inputName = 'trt.acc.stl_' + $index;"" }} {{ ::hiddenAccTypeId = section.Options[0].Id;""}}
{{ ::accentSwatches = (accentColors | orderBy: 'SortOrder');"" }}

{{ ::model.sectionNumber($index) }} Select a size

{{ swatch = model.getActiveOption('trt.swc');"" }} {{ activeOption = model.getActiveOption(activeOptionOverride) || model.getActiveOption(section.TypeId);""}}
{{ activeOption.Caption }}

{{ model.getActiveOption(section.TypeId).Caption }}

{{ activeOptionOverride = null;"" }}
  • {{ ::inputType = section.AllowMultiple ? 'checkbox' : 'radio';"" }} {{ ::inputName = section.AllowMultiple ? (section.SafeTypeId + '_' + $index) : option.Id;"" }} {{ ::dataKey = section.AllowMultiple ? (option.Properties.TypeId + '_' + option.Id) : section.TypeId;""}} {{ ::checkedVal = section.AllowMultiple ? true : option.Id;"" }}
    {{model.data[items[0].TypeId]=items[0].Id;""}}
    • {{ ::items[0].Properties.TypeName}}: {{ ::items[0].Caption }}

    {{::items[0].Properties.CaptionSmall}}

    {{::items[0].Caption}}
    Best for Kids
    {{ ::subDataKey = section.AllowMultiple ? option.Properties.TypeId : option.Options[0].TypeId;"" }}
    {{ ::opt34b878fa51ae44678da5ff4ec971a7ef = (option.Options | orderBy: 'SortOrder');"" }}
{{ ::widthKeyWhole = 'siz.' + num + '.width_whole';"" }} {{ ::widthKeyFrac = 'siz.' + num + '.width_fraction';"" }} {{ ::heightKeyWhole = 'siz.' + num + '.height_whole';"" }} {{ ::heightKeyFrac = 'siz.' + num + '.height_fraction';"" }}

{{selection.Id == 'hrl.typ.01' ? 'Single' : 'Left'}} Blind

Center Blind

Right Blind

{{ ::model.sectionNumber($index) }} Your existing window

{{ ::typeNameDisplay = (section.TypeName == "Swatch") ? "product color" : (section.TypeName == "Room") ? "room selection" : section.TypeName;"" }} Learn more about {{::typeNameDisplay | lowercase}}
{{ swatch = model.getActiveOption('trt.swc');"" }} {{ activeOption = model.getActiveOption(activeOptionOverride) || model.getActiveOption(section.TypeId);""}}
{{ activeOption.Caption }}

{{ model.getActiveOption(section.TypeId).Caption }}

{{ activeOptionOverride = null;"" }}

To best configure your shutter, please tell us about your existing window.

{{ ::model.sectionNumber($index) }} Select a hem option

{{ ::typeNameDisplay = (section.TypeName == "Swatch") ? "product color" : (section.TypeName == "Room") ? "room selection" : section.TypeName;"" }} Learn more about {{::typeNameDisplay | lowercase}}
{{ swatch = model.getActiveOption('trt.swc');"" }} {{ activeOption = model.getActiveOption(activeOptionOverride) || model.getActiveOption(section.TypeId);""}}
{{ activeOption.Caption }}

{{ model.getActiveOption(section.TypeId).Caption }}

{{ activeOptionOverride = null;"" }}
  • {{ ::styleOptions = (option.Options | filter: { TypeId: 'trt.hem.stl'}:true);"" }} {{ ::rodOptions = (option.Options | filter: { TypeId: 'trt.hem.rod'}:true);"" }} {{ ::trimOptions = (option.Options | filter: { TypeId: 'trt.hem.trm'}:true);"" }} {{ activeHemStyle = model.getActiveOption('trt.hem.stl');""}} {{ activeHemRod = model.getActiveOption('trt.hem.rod');""}}
    {{ activeHemStyle.Caption }}
    {{ activeHemRod.Caption }}

    • Hem Trim:

    {{ ::hemTrimOptions = (trimOptions | orderBy: 'SortOrder');"" }}

{{ ::model.sectionNumber($index) }} Select a pull option:

{{ ::typeNameDisplay = (section.TypeName == "Swatch") ? "product color" : (section.TypeName == "Room") ? "room selection" : section.TypeName;"" }} Learn more about {{::typeNameDisplay | lowercase}}
{{ swatch = model.getActiveOption('trt.swc');"" }} {{ activeOption = model.getActiveOption(activeOptionOverride) || model.getActiveOption(section.TypeId);""}}
{{ activeOption.Caption }}

{{ model.getActiveOption(section.TypeId).Caption }}

{{ activeOptionOverride = null;"" }}
  • {{ ::materialOptions = (option.Options | filter: { TypeId: 'trt.pul.mtr'}:true);"" }} {{ ::colorOptions = (option.Options | filter: { TypeId: 'trt.pul.clr'}:true);"" }}
    {{model.data['trt.pul.mtr']=materialOptions[0].Id;""}} • Pull Material: {{ ::materialOptions[0].Caption | raw }}

    • Pull Color:

    {{ ::pullColorOptions = (colorOptions | orderBy: 'SortOrder');"" }}

{{ ::model.sectionNumber($index) }} Select a bar option

{{ ::typeNameDisplay = (section.TypeName == "Swatch") ? "product color" : (section.TypeName == "Room") ? "room selection" : section.TypeName;"" }} Learn more about {{::typeNameDisplay | lowercase}}
{{ swatch = model.getActiveOption('trt.swc');"" }} {{ activeOption = model.getActiveOption(activeOptionOverride) || model.getActiveOption(section.TypeId);""}}
{{ activeOption.Caption }}

{{ model.getActiveOption(section.TypeId).Caption }}

{{ activeOptionOverride = null;"" }}
  • {{ ::barPlacementOptions = (option.Options | filter: { TypeId: 'trt.bar.plc'}:true);"" }} {{ ::barColorOptions = (option.Options | filter: { TypeId: 'trt.bar.clr'}:true);"" }} {{ activeBarPlacement = model.getActiveOption('trt.bar.plc');""}} {{ activeBarColor = model.getActiveOption('trt.bar.clr');""}}
    {{model.data['trt.bar.plc']=barPlacementOptions[0].Id;""}}
    • {{ ::barPlacementOptions[0].Properties.TypeName}}: {{ ::barPlacementOptions[0].Caption }}

    • Bar Color:

    {{ ::barColorOptions = (barColorOptions | orderBy: 'SortOrder');"" }}

{{ ::model.sectionNumber($index) }} Select a heading option

{{ ::typeNameDisplay = (section.TypeName == "Swatch") ? "product color" : (section.TypeName == "Room") ? "room selection" : section.TypeName;"" }} Learn more about {{::typeNameDisplay | lowercase}}
{{ swatch = model.getActiveOption('trt.swc');"" }} {{ activeOption = model.getActiveOption(activeOptionOverride) || model.getActiveOption(section.TypeId);""}}
{{ activeOption.Caption }}

{{ model.getActiveOption(section.TypeId).Caption }}

{{ activeOptionOverride = null;"" }}
{{ prevVal = model.data[section.TypeId];"" }}
  • {{ ::styleOptions = (option.Options | filter: { TypeId: 'trt.hdg.stl'}:true);"" }} {{ ::headerOptions = (option.Options | filter: { TypeId: 'trt.hdg.hdr'}:true);"" }} {{ ::returnOptions = (option.Options | filter: { TypeId: 'trt.hdg.rtn'}:true);"" }} {{ ::implicitStyle = styleOptions.length == 1 ?styleOptions[0].Id : null;"" }}
    {{model.data['trt.hdg.stl']=styleOptions[0].Id;""}} • Heading Style: {{ ::styleOptions[0].Caption }}

{{ ::model.sectionNumber($index) }} Select a {{section.TypeName.toLowerCase()}} option:

{{ ::typeNameDisplay = (section.TypeName == "Swatch") ? "product color" : (section.TypeName == "Room") ? "room selection" : section.TypeName;"" }} Learn more about {{::typeNameDisplay | lowercase}}
{{ swatch = model.getActiveOption('trt.swc');"" }} {{ activeOption = model.getActiveOption(activeOptionOverride) || model.getActiveOption(section.TypeId);""}}
{{ activeOption.Caption }}

{{ model.getActiveOption(section.TypeId).Caption }}

{{ activeOptionOverride = null;"" }}
  • {{ ::inputType = section.AllowMultiple ? 'checkbox' : 'radio';"" }} {{ ::inputName = section.AllowMultiple ? (section.SafeTypeId + '_' + $index) : option.Id;"" }} {{ ::dataKey = section.AllowMultiple ? (option.Properties.TypeId + '_' + option.Id) : section.TypeId;""}} {{ ::checkedVal = section.AllowMultiple ? true : option.Id;"" }}
    {{model.data[items[0].TypeId]=items[0].Id;""}}
    • {{ ::items[0].Properties.TypeName}}: {{ ::items[0].Caption }}

    {{::items[0].Properties.CaptionSmall}}

    {{::items[0].Caption}}
    Best for Kids
    {{ ::subDataKey = section.AllowMultiple ? option.Properties.TypeId : option.Options[0].TypeId;"" }}
    {{ ::opt6e45071d6de1419f9f38719a5588e0df = (option.Options | orderBy: 'SortOrder');"" }}

{{ ::model.sectionNumber($index) }} Select a {{::section.TypeName.toLowerCase()}} option:

{{ ::typeNameDisplay = (section.TypeName == "Swatch") ? "product color" : (section.TypeName == "Room") ? "room selection" : section.TypeName;"" }} Learn more about {{::typeNameDisplay | lowercase}}
{{ swatch = model.getActiveOption('trt.swc');"" }} {{ activeOption = model.getActiveOption(activeOptionOverride) || model.getActiveOption(section.TypeId);""}}
{{ activeOption.Caption }}

{{ model.getActiveOption(section.TypeId).Caption }}

{{ activeOptionOverride = null;"" }}
  • {{ ::styleOptions = (option.Options | filter: { TypeId: 'val.stl'}:true);"" }} {{ ::sizeOptions = (option.Options | filter: { TypeId: 'val.siz'}:true);"" }} {{ ::endOptions = (option.Options | filter: { TypeId: 'val.end'}:true);"" }} {{ ::colorOptions = (option.Options | filter: { TypeId: 'val.clr'}:true);"" }}
    {{model.data['val.siz']=sizeOptions[0].Id;""}} • Valance size: {{::sizeOptions[0].Caption | raw}}

    • Valance End:

    {{ ::valanceEndOptions = (endOptions | orderBy: 'SortOrder');"" }}

    • Valance Color:

    {{ ::valanceColorOptions = (colorOptions | orderBy: 'SortOrder');"" }}

{{ ::model.sectionNumber($index) }} Optional information:

{{ ::typeNameDisplay = (section.TypeName == "Swatch") ? "product color" : (section.TypeName == "Room") ? "room selection" : section.TypeName;"" }} Learn more about {{::typeNameDisplay | lowercase}}

{{ ::model.sectionNumber($index) }} Select a {{section.TypeName.toLowerCase()}} option:

{{ ::typeNameDisplay = (section.TypeName == "Swatch") ? "product color" : (section.TypeName == "Room") ? "room selection" : section.TypeName;"" }} Learn more about {{::typeNameDisplay | lowercase}}
{{ swatch = model.getActiveOption('trt.swc');"" }} {{ activeOption = model.getActiveOption(activeOptionOverride) || model.getActiveOption(section.TypeId);""}}
{{ activeOption.Caption }}

{{ model.getActiveOption(section.TypeId).Caption }}

{{ activeOptionOverride = null;"" }}
  • {{ ::inputType = section.AllowMultiple ? 'checkbox' : 'radio';"" }} {{ ::inputName = section.AllowMultiple ? (section.SafeTypeId + '_' + $index) : option.Id;"" }} {{ ::dataKey = section.AllowMultiple ? (option.Properties.TypeId + '_' + option.Id) : section.TypeId;""}} {{ ::checkedVal = section.AllowMultiple ? true : option.Id;"" }}
    {{model.data[items[0].TypeId]=items[0].Id;""}}
    • {{ ::items[0].Properties.TypeName}}: {{ ::items[0].Caption }}

    {{::items[0].Properties.CaptionSmall}}

    {{::items[0].Caption}}
    Best for Kids
    {{ ::subDataKey = section.AllowMultiple ? option.Properties.TypeId : option.Options[0].TypeId;"" }}
    {{ ::opt0d86944659714211ac24b3aeb3536406 = (option.Options | orderBy: 'SortOrder');"" }}
Please address the following errors to continue: You're Done!

Every custom ordered window treatment purchased is backed by a factory warranty.

For details on a particular warranty view our warranty page.

How to Install

download install guide

Cordless Installation

download install guide

Continuous Cord Loop Installation

download install guide

Motorized Installation

download install guide
  • Hideaway is made of 100% polyester spunlace with concealed blackout liner
  • Spellbound is made of 100% polyester spunlace with metallic blackout liner
  • Color coordinated components
  • Installation brackets included
  • Lifetime Limited Warranty

Specifications

  • Width 10" - 144"
  • Height 12" - 144"
  • Maximum square feet 84'
  • Minimum inside-mount depth 5/8"
  • Minimum flush-mount depth 1 7/8"
  • Minimum outside-mount space 7/8"
  • Headrail depth and height 1 9/16" x 11/16"

Please note the following exceptions to the above specifications

Bottom Up/Top Down Lift

  • Width 10" - 96"
  • Height 9" - 96"
  • Maximum square feet 84'
  • Minimum inside-mount depth 5/8"
  • Minimum flush-mount depth 1 7/8"
  • Minimum outside-mount space 7/8"
  • Headrail depth and height 1 9/16" x 11/16"

Continuous Cord Lift

  • Width 19" - 144"
  • Height 9" - 144"
  • Maximum square feet 118'
  • Minimum inside-mount depth 1/2"
  • Minimum flush-mount depth 2 1/8"
  • Headrail depth and height 2" x 1 1/2"

Cordless Bottom Up/Top Down Lift

  • Width 15" - 96"
  • Height 9" - 86"
  • Minimum inside-mount depth 1/2"
  • Minimum flush-mount depth 2 1/8"
  • Headrail depth and height 2" x 1 1/2"

Cordless Lift

  • Width 10" - 120"
  • Height 9" - 86"
  • Minimum inside-mount depth 1/2"
  • Minimum flush-mount depth 2 1/8"
  • Headrail depth and height 2" x 1 1/2"

Motorized Lift

  • Width 20" - 144"
  • Height 9" - 144"
  • Minimum inside-mount depth 3/4"
  • Minimum flush-mount depth 3 1/4"
  • Minimum outside-mount space 1 1/2"
  • Headrail depth and height 2" x 1 1/2"

Need Help?

Do It Yourself Guides and Learn About an In-Home Consultation.