Skip to content

Commit 4e9b321

Browse files
glouischandraSystem Administrator
authored andcommitted
Modified Material FormField template so outline DOM is contained within mat-form-field-flex. This approach is more easily overriden by partner team that customizes the look and feel of Material components.
1 parent 966910a commit 4e9b321

File tree

2 files changed

+20
-17
lines changed

2 files changed

+20
-17
lines changed

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>
@@ -52,20 +67,6 @@
5267
[class.mat-warn]="color == 'warn'"></span>
5368
</div>
5469

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

0 commit comments

Comments
 (0)