Reflections, like opacity and filters, should force transform-style to be flat. It would go here in StyleResolver::adjustRenderStyle(): // FIXME: when dropping the -webkit prefix on transform-style, we should also have opacity < 1 cause flattening. if (style->preserves3D() && (style->overflowX() != OVISIBLE || style->overflowY() != OVISIBLE || style->hasFilter())) style->setTransformStyle3D(TransformStyle3DFlat);