@use 'sass:meta'; @use 'iro-sass/src/iro-sass' as iro; @use 'iro-sass/src/props'; @forward 'field-label.vars'; @use 'field-label.vars' as vars; @mixin styles { @include props.materialize(meta.module-variables('vars')); @include iro.bem-object('field-label') { display: block; @include iro.bem-elem('label') { display: block; flex: 0 0 auto; padding-inline-end: props.get(vars.$spacing-i); font-size: props.get(vars.$label-font-size); font-weight: 400; line-height: 1.3; color: props.get(vars.$label-color); @include iro.bem-next-elem('content') { margin-block-start: props.get(vars.$spacing-b); } } @include iro.bem-elem('content') { display: block; flex: 1 1 auto; } @include iro.bem-elem('hint') { display: block; margin-block-start: props.get(vars.$spacing-b); font-size: props.get(vars.$hint-font-size); color: props.get(vars.$hint-color); } @include iro.bem-is('invalid') { @include iro.bem-elem('hint') { color: props.get(vars.$error-hint-color); } } @include iro.bem-is('disabled') { @include iro.bem-elem('label', 'hint') { color: props.get(vars.$disabled-color); } } @include iro.bem-modifier('align-start', 'align-end') { display: flex; align-items: baseline; @include iro.bem-elem('label') { display: inline-block; @include iro.bem-next-elem('content') { margin-block-start: 0; } } } @include iro.bem-modifier('align-start') { @include iro.bem-elem('label') { text-align: start; } } @include iro.bem-modifier('align-end') { @include iro.bem-elem('label') { text-align: end; } } } }