Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(material-experimental/mdc-card): remove extra margin if header doesn't have an avatar #19072

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions src/dev-app/mdc-card/mdc-card-demo.html
Original file line number Diff line number Diff line change
Expand Up @@ -118,5 +118,16 @@ <h2>Cards with media area</h2>
</mat-card-content>
</mat-card>

<!-- Used to test header without an avatar. -->
<mat-card [appearance]="appearance">
<mat-card-header>
<mat-card-title>Header title</mat-card-title>
<mat-card-subtitle>Header subtitle</mat-card-subtitle>
</mat-card-header>
<img mat-card-image src="https://material.angularjs.org/latest/img/washedout.png">
<mat-card-content>
<p>Here is some content</p>
</mat-card-content>
</mat-card>

</div>
17 changes: 11 additions & 6 deletions src/material-experimental/mdc-card/card.scss
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,15 @@ $mat-card-default-padding: 16px !default;
// Custom elements default to `display: inline`. Reset to 'block'.
display: block;

// Apply default padding for a text content region. Omit any bottom padding because we assume
// this region will be followed by another region that includes top padding.
padding: $mat-card-default-padding $mat-card-default-padding 0;

// Titles and subtitles can be set on native header elements which come with
// their own margin. Clear it since the spacing is done using `padding`.
margin: 0;

.mat-mdc-card-avatar ~ .mat-mdc-card-header-text & {
// Apply default padding for a text content region. Omit any bottom padding because we assume
// this region will be followed by another region that includes top padding.
padding: $mat-card-default-padding $mat-card-default-padding 0;
}
}

// Header section at the top of a card. MDC does not have a pre-made header section for cards.
Expand Down Expand Up @@ -128,8 +130,11 @@ $mat-card-default-padding: 16px !default;
// `mat-card-title-group` since the padding is captured by parent container already.
.mat-mdc-card-subtitle ~ .mat-mdc-card-title,
.mat-mdc-card-title ~ .mat-mdc-card-subtitle,
.mat-mdc-card-header .mat-mdc-card-title,
.mat-mdc-card-header .mat-mdc-card-subtitle,

// The `.mat-mdc-card-header-text` here is redundant since the header text
// wrapper is always there in the header, but we need the extra specificity.
.mat-mdc-card-header .mat-mdc-card-header-text .mat-mdc-card-title,
.mat-mdc-card-header .mat-mdc-card-header-text .mat-mdc-card-subtitle,
.mat-mdc-card-title-group .mat-mdc-card-title,
.mat-mdc-card-title-group .mat-mdc-card-subtitle {
padding-top: 0;
Expand Down