class をつけることもできて ShadowDOM とのスタイルは親側での指定が優先されます
<component-foo class="abc"></component-foo>
内側で :host に指定したものより優先度が高いので コンポーネントを使う親側で上書き可能です
margin なんかはコンポーネント側で決めるのではなくて 使う側での配置によって決めたいので良い仕組みだと思います
React でもそういう感じでコンポーネントのスタイルを使う親側で指定しようとしたのですが そういう仕組みはなさそうです
コンポーネントの実体は DOM にないので className を指定してもそれはプロパティに渡されるだけです
const App = () => {
return (
<Foo className="abc" />
)
}
自分でコンポーネント内の DOM に props.className を指定しないとダメです
const Foo = props => {
return (
<div className={props.className}>Foo component</div>
)
}
基本全部のコンポーネントでやることになるのでけっこう面倒です
ルートコンポーネント以外にもつけることができる自由度はありますが 普通にそんなことしないのでただ面倒なだけに感じます
自動でやってくれる仕組みはないものですかねー