250 lines
5.2 KiB
SCSS
250 lines
5.2 KiB
SCSS
.ds-card-grid .ds-card {
|
|
background: var(--newtab-background-color-secondary);
|
|
border-radius: var(--border-radius-small);
|
|
|
|
&:not(.placeholder) {
|
|
border-radius: var(--border-radius-medium);
|
|
box-shadow: $shadow-card;
|
|
|
|
img,
|
|
.placeholder-image {
|
|
border-radius: var(--border-radius-medium) var(--border-radius-medium) 0 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
.ds-card:not(.placeholder) {
|
|
.img-wrapper .img {
|
|
height: 160px;
|
|
width: 100%;
|
|
}
|
|
}
|
|
|
|
.ds-card-grid {
|
|
display: grid;
|
|
grid-gap: var(--space-xlarge);
|
|
position: relative;
|
|
|
|
&.ds-card-grid-compact {
|
|
grid-gap: var(--space-large);
|
|
}
|
|
|
|
&.ad-sizing-variant-a,
|
|
&.ad-sizing-variant-b {
|
|
row-gap: var(--space-xlarge);
|
|
column-gap: var(--space-large);
|
|
}
|
|
|
|
.ds-card-link:focus {
|
|
@include ds-focus;
|
|
|
|
transition: none;
|
|
border-radius: var(--border-radius-medium);
|
|
}
|
|
|
|
// "2/3 width layout"
|
|
.ds-column-5 &,
|
|
.ds-column-6 &,
|
|
.ds-column-7 &,
|
|
.ds-column-8 & {
|
|
grid-template-columns: repeat(2, 1fr);
|
|
}
|
|
|
|
// "Full width layout"
|
|
.ds-column-9 &,
|
|
.ds-column-10 &,
|
|
.ds-column-11 &,
|
|
.ds-column-12 & {
|
|
grid-template-columns: repeat(1, 1fr);
|
|
|
|
@media (min-width: $break-point-medium) {
|
|
grid-template-columns: repeat(2, 1fr);
|
|
}
|
|
|
|
@media (min-width: $break-point-large) {
|
|
grid-template-columns: repeat(3, 1fr);
|
|
}
|
|
|
|
.title {
|
|
font-size: var(--font-size-large);
|
|
}
|
|
|
|
.excerpt {
|
|
@include limit-visible-lines(3, 24, 15);
|
|
}
|
|
}
|
|
|
|
&.empty {
|
|
grid-template-columns: auto;
|
|
}
|
|
|
|
@mixin small-cards {
|
|
.ds-card {
|
|
&.placeholder {
|
|
min-height: 247px;
|
|
}
|
|
|
|
.meta {
|
|
.story-footer {
|
|
margin-block-start: var(--space-small);
|
|
}
|
|
|
|
.source,
|
|
.story-sponsored-label,
|
|
.status-message .story-context-label {
|
|
color: var(--newtab-text-secondary-color);
|
|
-webkit-line-clamp: 2;
|
|
}
|
|
|
|
.source,
|
|
.story-sponsored-label {
|
|
font-size: var(--font-size-small);
|
|
}
|
|
|
|
.status-message .story-context-label {
|
|
font-size: var(--font-size-small);
|
|
}
|
|
|
|
.story-badge-icon {
|
|
margin-inline-end: var(--space-xxsmall);
|
|
margin-block-end: var(--space-xxsmall);
|
|
height: 14px;
|
|
width: 14px;
|
|
background-size: 14px;
|
|
}
|
|
|
|
.title {
|
|
font-size: inherit;
|
|
}
|
|
|
|
.info-wrap {
|
|
flex-grow: 0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
&.ds-card-grid-four-card-variant {
|
|
// "Full width layout"
|
|
.ds-column-9 &,
|
|
.ds-column-10 &,
|
|
.ds-column-11 &,
|
|
.ds-column-12 & {
|
|
grid-template-columns: repeat(1, 1fr);
|
|
|
|
@media (min-width: $break-point-medium) {
|
|
grid-template-columns: repeat(2, 1fr);
|
|
}
|
|
|
|
@media (min-width: $break-point-large) {
|
|
grid-template-columns: repeat(3, 1fr);
|
|
}
|
|
|
|
@media (min-width: $break-point-widest) {
|
|
grid-template-columns: repeat(4, 1fr);
|
|
}
|
|
}
|
|
|
|
@include small-cards;
|
|
}
|
|
|
|
&.ds-card-grid-hybrid-layout {
|
|
.ds-column-9 &,
|
|
.ds-column-10 &,
|
|
.ds-column-11 &,
|
|
.ds-column-12 & {
|
|
grid-template-columns: repeat(1, 1fr);
|
|
|
|
@media (min-width: $break-point-medium) {
|
|
grid-template-columns: repeat(2, 1fr);
|
|
}
|
|
|
|
@media (min-width: $break-point-large) {
|
|
grid-template-columns: repeat(3, 1fr);
|
|
}
|
|
|
|
@media (height <= 1065px) {
|
|
.excerpt {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
@media (max-width: $break-point-widest) {
|
|
@include small-cards;
|
|
}
|
|
|
|
@media (min-width: $break-point-widest) and (height <= 964px) {
|
|
@include small-cards;
|
|
|
|
grid-template-columns: repeat(4, 1fr);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.outer-wrapper .ds-card-grid.ds-card-grid-hide-background .ds-card,
|
|
.outer-wrapper.newtab-experience .ds-card-grid.ds-card-grid-hide-background .ds-card {
|
|
&:not(.placeholder) {
|
|
box-shadow: none;
|
|
background: none;
|
|
|
|
.ds-card-link:focus {
|
|
box-shadow: none;
|
|
|
|
.img-wrapper .img img {
|
|
@include ds-focus;
|
|
}
|
|
}
|
|
|
|
.img-wrapper .img img {
|
|
border-radius: var(--border-radius-medium);
|
|
box-shadow: $shadow-card;
|
|
}
|
|
|
|
.meta {
|
|
padding: var(--space-medium) 0 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
// @nova-cleanup(remove-conditional): Remove when sections are always enabled.
|
|
// ds-header spans 1/-1 of ds-card-grid-container's auto-fill tracks.
|
|
.nova-enabled .content .ds-card-grid-container .ds-header {
|
|
grid-column: 1 / -1;
|
|
}
|
|
|
|
// @nova-cleanup(remove-conditional): Remove when sections are always enabled.
|
|
// ds-card-grid uses subgrid to inherit those tracks without restating the column definition.
|
|
.nova-enabled .content .ds-card-grid-container .ds-card-grid {
|
|
grid-column: 1 / -1;
|
|
grid-template-columns: subgrid;
|
|
row-gap: var(--space-xlarge);
|
|
}
|
|
|
|
.ds-layout {
|
|
.ds-sub-header {
|
|
margin-block-start: var(--space-xlarge);
|
|
|
|
.section-title-container {
|
|
flex-direction: row;
|
|
align-items: baseline;
|
|
justify-content: space-between;
|
|
display: flex;
|
|
}
|
|
|
|
.section-sub-link {
|
|
color: var(--newtab-primary-action-background);
|
|
font-size: inherit;
|
|
cursor: pointer;
|
|
|
|
&:hover {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
&:active {
|
|
color: var(--newtab-primary-element-active-color);
|
|
}
|
|
}
|
|
}
|
|
}
|