Skip to content

Commit 1e6acfb

Browse files
glouischandrajosephperrott
authored andcommitted
Update MatFormField outline DOM structure (#11771)
1 parent dad18bf commit 1e6acfb

File tree

3 files changed

+20
-23
lines changed

3 files changed

+20
-23
lines changed

src/lib/form-field/_form-field-outline-theme.scss

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -104,12 +104,6 @@ $mat-form-field-outline-dedupe: 0;
104104
padding: $infix-padding 0 $infix-padding 0;
105105
}
106106

107-
.mat-form-field-outline {
108-
// We want the bottom of the outline to start at the end of the content box, not the padding
109-
// box, so we move it up by the padding amount.
110-
bottom: $wrapper-padding-bottom;
111-
}
112-
113107
.mat-form-field-label {
114108
top: $infix-margin-top + $infix-padding;
115109
margin-top: $outline-appearance-label-offset;

src/lib/form-field/form-field-outline.scss

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ $mat-form-field-outline-subscript-padding:
3131
.mat-form-field-flex {
3232
padding: 0 $mat-form-field-outline-side-padding 0 $mat-form-field-outline-side-padding;
3333
margin-top: -$mat-form-field-outline-label-overlap;
34+
position: relative;
3435
}
3536

3637
.mat-form-field-prefix,
@@ -41,9 +42,10 @@ $mat-form-field-outline-subscript-padding:
4142
.mat-form-field-outline {
4243
display: flex;
4344
position: absolute;
44-
top: 0;
45+
top: $mat-form-field-outline-label-overlap;
4546
left: 0;
4647
right: 0;
48+
bottom: 0;
4749
pointer-events: none;
4850
}
4951

@@ -117,12 +119,12 @@ $mat-form-field-outline-subscript-padding:
117119
}
118120

119121
&:not(.mat-form-field-disabled) .mat-form-field-flex:hover {
120-
& ~ .mat-form-field-outline {
122+
& .mat-form-field-outline {
121123
opacity: 0;
122124
transition: opacity 600ms $swift-ease-out-timing-function;
123125
}
124126

125-
& ~ .mat-form-field-outline-thick {
127+
& .mat-form-field-outline-thick {
126128
opacity: 1;
127129
}
128130
}

src/lib/form-field/form-field.html

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,21 @@
11
<div class="mat-form-field-wrapper">
22
<div class="mat-form-field-flex" #connectionContainer
33
(click)="_control.onContainerClick && _control.onContainerClick($event)">
4+
5+
<!-- Outline used for outline appearance. -->
6+
<ng-container *ngIf="appearance == 'outline'">
7+
<div class="mat-form-field-outline">
8+
<div class="mat-form-field-outline-start" [style.width.px]="_outlineGapStart"></div>
9+
<div class="mat-form-field-outline-gap" [style.width.px]="_outlineGapWidth"></div>
10+
<div class="mat-form-field-outline-end"></div>
11+
</div>
12+
<div class="mat-form-field-outline mat-form-field-outline-thick">
13+
<div class="mat-form-field-outline-start" [style.width.px]="_outlineGapStart"></div>
14+
<div class="mat-form-field-outline-gap" [style.width.px]="_outlineGapWidth"></div>
15+
<div class="mat-form-field-outline-end"></div>
16+
</div>
17+
</ng-container>
18+
419
<div class="mat-form-field-prefix" *ngIf="_prefixChildren.length">
520
<ng-content select="[matPrefix]"></ng-content>
621
</div>
@@ -53,20 +68,6 @@
5368
[class.mat-warn]="color == 'warn'"></span>
5469
</div>
5570

56-
<!-- Outline used for outline appearance. -->
57-
<ng-container *ngIf="appearance == 'outline'">
58-
<div class="mat-form-field-outline">
59-
<div class="mat-form-field-outline-start" [style.width.px]="_outlineGapStart"></div>
60-
<div class="mat-form-field-outline-gap" [style.width.px]="_outlineGapWidth"></div>
61-
<div class="mat-form-field-outline-end"></div>
62-
</div>
63-
<div class="mat-form-field-outline mat-form-field-outline-thick">
64-
<div class="mat-form-field-outline-start" [style.width.px]="_outlineGapStart"></div>
65-
<div class="mat-form-field-outline-gap" [style.width.px]="_outlineGapWidth"></div>
66-
<div class="mat-form-field-outline-end"></div>
67-
</div>
68-
</ng-container>
69-
7071
<div class="mat-form-field-subscript-wrapper"
7172
[ngSwitch]="_getDisplayedMessages()">
7273
<div *ngSwitchCase="'error'" [@transitionMessages]="_subscriptAnimationState">

0 commit comments

Comments
 (0)