Shown in Colletti Blizzard
Shown in Colletti Blizzard

Bali Tailored Roman Shades

$162.84 $81.42 you save 50% use code OCT2 at checkout until 10/15

Blindsgalore Guarantee
 

Change the size:

Bali Tailored Roman Shades feature the customized quality and fine fabrics you would expect from a high-end designer—but at a lower price. You'll love these shades for their lush fabrics, hand-sewn tailoring, customization options, and more! Choose from an array of on-trend colors and patterns—solids, textures, small patterns, and large patterns in subtle neutrals and bold colors—for a traditional or modern look to your custom tailored Roman shades.

{{ 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;"" }}
    {{ ::opt6b166fc4271f4023b75e49f3b54e1540 = (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;"" }}
    {{ ::opt00b14953ed7b41d4b2b89317b36955c2 = (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;"" }}
    {{ ::opt76b05b2005284fde876a937e02c8095b = (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

Continuous Cord Loop Installation

download install guide

Cord Tensioner

download install guide

Cordless Installation

download install guide

Motorized Installation

download install guide
  • Shades are mounted on a self-fabric covered board, with pre-drilled holes for easy installation; all mounting hardware included
  • Cords and tassels are white, and are positioned behind the shade
  • Shades wider than fabric width will have vertical seams; pattern will be matched to appear seamless
  • Patterns on Classic Flat and Looped shade styles will be interrupted at the horizontal seams of each panel
  • Fabric content by style: Coastal - 100% Cotton; Bravo - 55% Cotton/45% Polyester; Dover - 55% Linen/45% Viscose; Dresden - 54% Polyester/46% Rayon; Kuna - 61% Cotton/39% Polyester; Ludlow - 65% Rayon/35% Polyester; Seymour - 50% Cotton/50% Polyester; Weston - 55% Polyester/45% Cotton; Zoe - 100% Polyester
  • Safety cord system meets the highest requirements for child safety
  • Shades made in the USA, Limited lifetime warranty

Specifications

  • Width 13" - 106"
  • Height 18" - 120"
  • Minimum inside-mount depth 3/4"
  • Minimum flush-mount depth 2 3/8"
  • Minimum outside-mount space 1"
  • Headrail depth and height 1 1/2" x 5/8"

Please note the following exceptions to the above specifications

Bottom Up/Top Down (Hidden Cords) Lift

  • Width 17" - 74"
  • Height 18" - 120"
  • Minimum inside-mount depth 3/4"
  • Minimum flush-mount depth 2 3/8"
  • Minimum outside-mount space 1"
  • Headrail depth and height 1 1/2" x 5/8"

Continuous Cord (Hidden) Lift

  • Width 25" - 106"
  • Height 18" - 100"
  • Minimum inside-mount depth 3/4"
  • Minimum flush-mount depth 3 1/8"
  • Headrail depth and height 2 1/4" x 5/8"

Cordless Lift

  • Width 18" - 96"
  • Height 18" - 75"
  • Maximum square feet 35'
  • Minimum inside-mount depth 3/4"
  • Minimum flush-mount depth 3 1/8"
  • Minimum outside-mount space 1"
  • Headrail depth and height 2 1/4" x 5/8"

Motorized Lift

  • Width 25" - 96"
  • Height 18" - 120"
  • Maximum square feet 48'
  • Minimum inside-mount depth 3/4"
  • Minimum flush-mount depth 3 1/8"
  • Minimum outside-mount space 1"
  • Headrail depth and height 2 1/4" x 5/8"

Need Help?

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