I have a .sheet-label-under on my input-field handlebars template: < div class= "sheet-input-field {{ classes }} " > < label class= " {{ labelClass }} " > {{ labelText }} </ label > {{ #if_any type 'text' 'number' }} < input type= " {{ type }} " class= " {{ inputClass }} " name= "attr_ {{ name }} " {{ #if value }} value= " {{ value }} " {{ /if }} /> {{ /if_any }} {{ #if_eq type "select" }} < select class= " {{ inputClass }} " name= "attr_ {{ name }} " > {{ #each options as | option id | }} < option key= " {{ varProperty option ../valueProperty }} " > {{ varProperty option ../textProperty }} </ option > {{ /each }} </ select > {{ /if_eq }} </ div > .sheet-input-field { box-sizing : border-box ; display : flex ; &.sheet-label-under { label { order : 2 ; font-size : smaller } input , select { order : 1 ; } } } I would expect this to place the label after the input or select element. Unfortunately that doesn't happen. I'm completely new to flex, so there is likely something I'm missing. Any ideas? Edit: The sheet-label-under is applied by the classes variable passed in to the template during compilation. I've confirmed it IS on the div element.