Remoção de ::shadow e /deep/ no Chrome 63

A partir do Chrome 63, não é possível usar os seletores de sobreposição de sombra ::shadow e /deep/ para definir o estilo do conteúdo dentro de uma raiz paralela.

  • O combinador /deep/ vai atuar como um seletor descendente. x-foo /deep/ div funcionará como x-foo div.
  • O pseudoelemento ::shadow não corresponderá a nenhum elemento.

A decisão de remover

O uso de ::shadow e /deep/ foi descontinuado no Chrome 45. Isso foi decidido por todos os participantes no encontro de componentes da Web de abril de 2015.

A principal preocupação com seletores de shadow-piercing é que eles violam o encapsulamento e criam situações em que um componente não pode mais mudar a implementação interna.

A especificação CSS Shadow Parts está sendo avançada como uma alternativa aos seletores de shadow piercing. Elas permitem que o autor de um componente exponha elementos nomeados de uma maneira que preserve o encapsulamento e ainda permita que os autores de páginas estilizem várias propriedades de uma só vez.

O que devo fazer se meu site usar ::shadow e /deep/?

Os seletores ::shadow e /deep/ afetam apenas componentes legados do Shadow DOM v0. Se você estiver usando o Shadow DOM v1, não precisará alterar nada no seu site.

Use o Chrome Canary para verificar se o site não é interrompido com essas novas alterações. Se você encontrar problemas, tente e remova o uso de ::shadow e /deep/. Se for muito difícil remover o uso desses seletores, mude do shadow DOM nativo para o polyfill do DOM sombreado. Você só precisará fazer essa mudança se o site depender do shadow DOM v0 nativo.

Mais informações

Intent de remoção | Chromestatus Tracker | Bug do Chromium