Label and field componentAvailable since EcoComposer 2.2
Classical Label and field example :
The defaults values are :
$-default--light--field--color : #333; $-default--light--field--color--hover : #33b; $-default--light--field--color--focus : #55b; $-default--light--field--color--focus-visible : #55b; $-default--light--field--color--valid : #3b3; $-default--light--field--color--invalid : #b33; $-default--dark--field--color : #eee; $-default--dark--field--color--hover : #55d; $-default--dark--field--color--focus : #77e; $-default--dark--field--color--focus-visible : #77e; $-default--dark--field--color--valid : #5d5; $-default--dark--field--color--invalid : #d55; 'border-radius' : 5px, 'horizontal-gap' : 1rem * theming.$font-size, 'field-padding' : .5rem * theming.$font-size 1rem * theming.$font-size, 'font-family' : theming.$font-family, 'label-width' : 9.5rem * theming.$font-size, 'label-and-field--border' : 'label-and-field--border', 'label-and-field--border--hover' : 'label-and-field--border--hover', 'label-and-field--border--focus' : 'label-and-field--border--focus', 'label-and-field--border--focus-visible' : 'label-and-field--border--focus-visible', 'label-and-field--border--valid' : 'label-and-field--border--valid', 'label-and-field--border--invalid' : 'label-and-field--border--invalid', 'label-and-field--box-shadow' : 'label-and-field--box-shadow', 'label-and-field--box-shadow--hover' : 'label-and-field--box-shadow--hover', 'label-and-field--box-shadow--focus' : 'label-and-field--box-shadow--focus', 'label-and-field--box-shadow--focus-visible' : 'label-and-field--box-shadow--focus-visible', 'label-and-field--box-shadow--valid' : 'label-and-field--box-shadow--valid', 'label-and-field--box-shadow--invalid' : 'label-and-field--box-shadow--invalid', 'label-and-field--color' : 'label-and-field--color', 'print' : false, 'required-label' : '*', 'suffix' : '', 'themes' : ( 'light' : ( 'default--label-and-field--border' : 1px solid lighten($-default--light--field--color, 0.3), 'default--label-and-field--border--hover' : 1px solid lighten($-default--light--field--color--hover, 0.3), 'default--label-and-field--border--focus' : 1px solid lighten($-default--light--field--color--focus, 0.3), 'default--label-and-field--border--focus-visible' : 1px solid lighten($-default--light--field--color--focus-visible, 0.3), 'default--label-and-field--border--valid' : 1px solid lighten($-default--light--field--color--valid, 0.3), 'default--label-and-field--border--invalid' : 1px solid lighten($-default--light--field--color--invalid, 0.3), 'default--label-and-field--box-shadow' : 0 0 .5rem * theming.$font-size $-default--light--field--color, 'default--label-and-field--box-shadow--hover' : 0 0 .75rem * theming.$font-size $-default--light--field--color--hover, 'default--label-and-field--box-shadow--focus' : 0 0 .5rem * theming.$font-size $-default--light--field--color--focus, 'default--label-and-field--box-shadow--focus-visible' : 0 0 .5rem * theming.$font-size $-default--light--field--color--focus-visible, 'default--label-and-field--box-shadow--valid' : 0 0 .5rem * theming.$font-size $-default--light--field--color--valid, 'default--label-and-field--box-shadow--invalid' : 0 0 .5rem * theming.$font-size $-default--light--field--color--invalid, 'default--label-and-field--color' : #333, ), 'dark' : ( 'default--label-and-field--border' : 1px solid lighten($-default--dark--field--color, 0.3), 'default--label-and-field--border--hover' : 1px solid lighten($-default--dark--field--color--hover, 0.3), 'default--label-and-field--border--focus' : 1px solid lighten($-default--dark--field--color--focus, 0.3), 'default--label-and-field--border--focus-visible' : 1px solid lighten($-default--dark--field--color--focus-visible, 0.3), 'default--label-and-field--border--valid' : 1px solid lighten($-default--dark--field--color--valid, 0.3), 'default--label-and-field--border--invalid' : 1px solid lighten($-default--dark--field--color--invalid, 0.3), 'default--label-and-field--box-shadow' : 0 0 .5rem * theming.$font-size $-default--dark--field--color, 'default--label-and-field--box-shadow--hover' : 0 0 .5rem * theming.$font-size $-default--dark--field--color--hover, 'default--label-and-field--box-shadow--focus' : 0 0 .5rem * theming.$font-size $-default--dark--field--color--focus, 'default--label-and-field--box-shadow--focus-visible' : 0 0 .5rem * theming.$font-size $-default--dark--field--color--focus-visible, 'default--label-and-field--box-shadow--valid' : 0 0 .5rem * theming.$font-size $-default--dark--field--color--valid, 'default--label-and-field--box-shadow--invalid' : 0 0 .5rem * theming.$font-size $-default--dark--field--color--invalid, 'default--label-and-field--color' : #ccc ) )
We can implement it that way :
@include labelAndField.init(); @include labelAndField.create( ( 'border-radius' : 5px, 'horizontal-gap' : 1rem, 'field-padding' : .5rem 1rem, 'label-width' : 9.5rem, 'suffix' : '-2', 'themes': $themes ) );
We can implement it that way :
<div class=field-group>
<label for=my-field class="label required">Name</label>
<input id=my-field class=field required />
</div>