1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- @use '../core/tokens/m2/mat/form-field' as tokens-mat-form-field;
- @use '../core/style/vendor-prefixes';
- @use '../core/tokens/token-utils';
- @mixin private-form-field-subscript() {
- @keyframes _mat-form-field-subscript-animation {
- from {
- opacity: 0;
- transform: translateY(-5px);
- }
- to {
- opacity: 1;
- transform: translateY(0);
- }
- }
- // Wrapper for the hints and error messages.
- .mat-mdc-form-field-subscript-wrapper {
- box-sizing: border-box;
- width: 100%;
- position: relative;
- }
- .mat-mdc-form-field-hint-wrapper,
- .mat-mdc-form-field-error-wrapper {
- position: absolute;
- top: 0;
- left: 0;
- right: 0;
- padding: 0 16px;
- opacity: 1;
- transform: translateY(0);
- // Note: animation-duration gets set when animations are enabled.
- // This allows us to skip the animation on init.
- animation: _mat-form-field-subscript-animation 0ms cubic-bezier(0.55, 0, 0.55, 0.2);
- }
- .mat-mdc-form-field-subscript-dynamic-size {
- .mat-mdc-form-field-hint-wrapper,
- .mat-mdc-form-field-error-wrapper {
- position: static;
- }
- }
- .mat-mdc-form-field-bottom-align::before {
- content: '';
- display: inline-block;
- height: 16px;
- }
- .mat-mdc-form-field-bottom-align.mat-mdc-form-field-subscript-dynamic-size::before {
- content: unset;
- }
- .mat-mdc-form-field-hint-end {
- order: 1;
- }
- // Clears the floats on the hints. This is necessary for the hint animation to work.
- .mat-mdc-form-field-hint-wrapper {
- display: flex;
- }
- // Spacer used to make sure start and end hints have enough space between them.
- .mat-mdc-form-field-hint-spacer {
- flex: 1 0 1em;
- }
- // Single error message displayed beneath the form field underline.
- .mat-mdc-form-field-error {
- display: block;
- @include token-utils.use-tokens(tokens-mat-form-field.$prefix,
- tokens-mat-form-field.get-token-slots()) {
- @include token-utils.create-token-slot(color, error-text-color);
- }
- }
- // The subscript wrapper has a minimum height to avoid that the form-field
- // jumps when hints or errors are displayed.
- .mat-mdc-form-field-subscript-wrapper,
- .mat-mdc-form-field-bottom-align::before {
- @include token-utils.use-tokens(tokens-mat-form-field.$prefix,
- tokens-mat-form-field.get-token-slots()) {
- @include vendor-prefixes.smooth-font();
- @include token-utils.create-token-slot(font-family, subscript-text-font);
- @include token-utils.create-token-slot(line-height, subscript-text-line-height);
- @include token-utils.create-token-slot(font-size, subscript-text-size);
- @include token-utils.create-token-slot(letter-spacing, subscript-text-tracking);
- @include token-utils.create-token-slot(font-weight, subscript-text-weight);
- }
- }
- }
|