Если не нужна поддержка IE11 и Safari - можно использовать
web-компоненты и просто подключать стили внутри компонента - они инкапсулируются, иначе придётся покорячиться.
Как это сработает с vuetify не скажу, но в похожей ситуации я использовал
postcss-prefix-selector, просто добавив с помощью него короткий класс-префикс для всех стилей либы. Соответственно этот класс назначаешь на контейнер с
vue и, при удаче, всё заработает.)
Мне, увы, там ещё кастомный трансформ пришлось добавить для корневых (
body,
:root и т.п.) селекторов, попатчить саму либу местами и проследить чтобы теперь основные стили
сайта не перебивали классы либы, но это уже отдельная история.)
P.S. Для работы
postcss-prefix-selector с
vue-cli не обязательно вручную вкорячивать
loader, можно его просто добавить в
.postcssrc.js в
plugins:
require('postcss-prefix-selector')({
prefix: '.prefix'
}),