Ghost/ghost/admin/app/styles/layouts/dashboard.css
2021-02-22 20:43:22 +01:00

582 lines
11 KiB
CSS

:root {
--dashboard-gap: 1.8vw;
}
.gh-dashboard {
display: grid;
grid-template-columns: 2fr 1fr;
grid-gap: var(--dashboard-gap);
}
.gh-dashboard-area {
display: flex;
flex-direction: column;
}
.gh-dashboard-header {
display: flex;
align-items: center;
font-size: 1.1rem;
text-transform: uppercase;
font-weight: 500;
letter-spacing: .2px;
margin: -4px 0 4px;
padding: 0;
color: var(--black);
}
.gh-dashboard-header svg {
width: 12px;
height: 12px;
margin-left: 8px;
}
.gh-dashboard-header.secondary {
color: var(--midgrey);
}
.gh-dashboard-summary.small .gh-dashboard-header {
margin-bottom: 6px;
}
.gh-dashboard-list {
display: flex;
flex-direction: column;
flex-grow: 1;
align-items: stretch;
justify-content: flex-start;
}
.gh-dashboard-container {
display: grid;
grid-template-columns: 1fr;
width: 100%;
}
.gh-dashboard-container.col-2 {
grid-template-columns: 1fr 1fr;
grid-gap: var(--dashboard-gap);
}
/* Generic box containers */
.gh-dashboard-box {
display: flex;
flex-direction: column;
justify-content: space-between;
border: 1px solid var(--whitegrey);
border-radius: 3px;
padding: 24px;
margin-bottom: var(--dashboard-gap);
}
.gh-dashboard-box .content {
color: var(--darkgrey);
}
.gh-dashboard-box .content h4 {
font-size: 1.6rem;
font-weight: 600;
line-height: 1.4em;
margin-bottom: 8px;
color: var(--black);
}
.gh-dashboard-box .content h3 {
font-size: 1.9rem;
font-weight: 600;
line-height: 1.4em;
margin-bottom: 6px;
color: var(--black);
}
.gh-dashboard-box .content p {
margin-bottom: 12px;
}
.gh-dashboard-box .footer {
display: flex;
align-items: center;
}
.gh-dashboard-box.grey {
background: var(--main-color-content-greybg);
border: none;
}
.gh-dashboard-box.black {
background: var(--black);
border: none;
color: var(--white);
}
.gh-dashboard-box.black .content h4 {
color: var(--white);
}
.gh-dashboard-box.black .content p {
color: var(--whitegrey);
}
.gh-dashboard-box.green {
background: color-mod(var(--green) a(4%));
border-color: color-mod(var(--green) a(60%));
}
/* Main areas in grid */
.gh-dashboard-area.charts {
grid-column: 1 / 3;
}
.gh-dashboard-area.members-activity {
grid-column: 2 / 3;
}
.gh-dashboard-area.mixed {
grid-column: 1 / 2;
border: none;
border-radius: unset;
padding: 0;
align-items: stretch;
justify-content: flex-start;
}
/* Charts */
.gh-dashboard-area.charts {
display: grid;
grid-template-columns: 2fr 1fr;
grid-template-rows: 1fr 1fr 1fr;
border: 1px solid var(--whitegrey);
border-radius: 3px;
grid-column-gap: var(--dashboard-gap);
grid-row-gap: 12px;
align-items: stretch;
padding: 16px 0 20px;
}
.gh-dashboard-area.charts .gh-dashboard-box {
border: none;
border-radius: 0;
padding: 16px 0 0 24px;
margin: 0;
}
.gh-dashboard-area.charts .gh-dashboard-header {
margin: 3px 0 4px;
}
.gh-dashboard-chart-container {
display: flex;
align-items: flex-start;
justify-content: space-between;
}
.gh-dashboard-area.charts .mrr {
grid-column: 1 / 2;
grid-row: 1 / 4;
padding: 0 0 0 24px;
}
.gh-dashboard-area.charts .total-members {
grid-column: 2 / 3;
grid-row: 1 / 2;
padding: 0 24px 0 24px;
height: 75px;
}
.gh-dashboard-area.charts .paid-members {
grid-column: 2 / 3;
grid-row: 2 / 3;
padding: 0 24px 0 24px;
height: 75px;
}
.gh-dashboard-area.charts .newsletter-open-rate {
grid-column: 2 / 3;
grid-row: 3 / 4;
padding: 0 24px 0 24px;
height: 75px;
}
.gh-dashboard-summary {
display: flex;
flex-direction: column;
align-items: flex-start;
justify-content: flex-start;
margin-top: 8px;
}
.gh-dashboard-summary.small {
flex-basis: 120px;
min-width: 120px;
margin-top: 0;
}
.gh-dashboard-summary .data-container {
display: flex;
flex-direction: column;
align-items: flex-start;
}
.gh-dashboard-summary .data {
font-size: 3.9rem;
line-height: 4rem;
font-weight: 600;
color: var(--black);
letter-spacing: -0.1px;
line-height: 1;
white-space: nowrap;
}
.gh-dashboard-summary.small .data {
font-size: 2.8rem;
letter-spacing: -0.1px;
}
.gh-dashboard-summary .growth {
background: var(--whitegrey-d1);
border-radius: 3px;
font-size: 1.8rem;
line-height: 1;
font-weight: 500;
color: var(--midgrey);
padding: 6px 8px;
margin: 8px 0 0;
}
.gh-dashboard-summary.small .growth {
font-size: 1.2rem;
letter-spacing: 0;
padding: 2px 4px;
margin: 5px 0 1px 0;
}
.gh-dashboard-summary .growth.positive {
background: color-mod(var(--green) a(13%));
color: color-mod(var(--green) l(-5%));
}
.gh-dashboard-summary .growth.negative {
background: color-mod(var(--yellow) a(20%));
color: color-mod(var(--yellow) l(-8%));
}
.gh-dashboard-chart {
display: flex;
flex-direction: column;
align-items: flex-end;
justify-content: flex-end;
}
.gh-dashboard-chart.nodata {
border: 1px dashed var(--lightgrey);
font-size: 1.3rem;
color: var(--midlightgrey);
}
.gh-dashboard-chart.nodata {
font-size: 1.3rem;
color: var(--midlightgrey);
}
.gh-dashboard-chart.small {
margin-bottom: -6px;
flex-grow: 1;
}
.gh-dashboard-chart-box {
position: relative;
display: flex;
justify-content: stretch;
height: 228px;
width: 35.5vw;
padding-top: 12px;
margin-right: -10px;
}
.gh-dashboard-chart-box.small {
position: relative;
width: 14vw;
min-width: 165px;
height: 110px;
padding-top: 0;
margin-top: -13px;
margin-bottom: -20px;
margin-right: -6px;
transform: scale(0.9);
transform-origin: top right;
}
/* Chart.js requires relative width to be in vw units to make responsive re-rendering work */
@media (max-width: 1600px) {
.gh-dashboard-chart-box.small {
width: 13vw;
}
}
@media (max-width: 1500px) {
.gh-dashboard-chart-box {
width: 33vw;
}
.gh-dashboard-chart-box.small {
width: 12vw;
}
.gh-dashboard-chart.small {
max-width: 120px;
}
}
/* Total members */
.gh-dashboard-area.total-members {
grid-column: 1 / 2;
grid-row: 2;
}
.gh-dashboard-area.total-members .gh-dashboard-chart,
.gh-dashboard-area.newsletter-open-rate .gh-dashboard-chart {
height: 6vw;
min-height: 80px;
max-height: 150px;
}
/* Top members */
.gh-dashboard-area.top-members {
grid-column: 3 / 4;
grid-row: 1 / 3;
}
.gh-dashboard-area.top-members .gh-dashboard-list {
justify-content: space-between;
}
.gh-dashboard-top-members {
display: flex;
flex-direction: column;
align-items: stretch;
list-style: none;
padding: 0;
margin: 8px 0 0;
width: 100%;
}
.gh-dashboard-top-member {
display: flex;
align-items: center;
flex-grow: 1;
width: 100%;
justify-content: stretch;
margin: 8px 0;
padding: 0;
}
.gh-dashboard-top-member .member-details {
display: flex;
align-items: center;
flex-grow: 1;
}
.gh-dashboard-top-member .gh-member-gravatar {
/* display: flex;
align-items: center;
justify-content: center;
flex-grow: 0;
min-width: 32px;
border-radius: 999px;
background: var(--blue);
margin-right: 8px;
color: #fff;
line-height: 1; */
box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.2);
width: 34px;
height: 34px;
}
.gh-dashboard-top-member .gh-member-initials {
width: 34px;
height: 34px;
}
.gh-dashboard-top-member .gh-member-list-avatar {
font-size: 1.5rem;
font-weight: 500;
text-align: center;
line-height: 1;
}
.gh-dashboard-top-member .name {
font-size: 1.4rem;
font-weight: 500;
color: var(--black);
}
.gh-dashboard-top-member .open-rate {
white-space: nowrap;
margin-left: 12px;
color: var(--midgrey);
font-size: 1.3rem;
}
.gh-dashboard-top-members-footer {
display: flex;
justify-content: flex-end;
border-top: 1px solid var(--whitegrey-d1);
padding-top: 12px;
margin-bottom: -4px;
}
.gh-dashboard-top-members-footer a {
display: flex;
align-items: center;
color: var(--black);
font-weight: 500;
}
.gh-dashboard-top-members-footer a svg {
width: 12px;
height: 12px;
margin-left: 4px;
}
.gh-dashboard-top-members-footer a svg path {
fill: var(--black);
}
/* Activity feed */
.gh-dashboard-area.activity-feed {
grid-column: 3 / 4;
grid-row: 3 / 4;
padding: 0;
margin: 0;
}
.gh-dashboard-activity-feed {
display: flex;
flex-direction: column;
align-items: stretch;
list-style: none;
padding: 0;
margin: 4px 0 0;
width: 100%;
}
.gh-dashboard-activity-feed li {
display: flex;
align-items: baseline;
flex-grow: 1;
width: 100%;
justify-content: space-between;
margin: 8px 0;
padding: 0;
}
.gh-dashboard-activity-feed .activity {
display: flex;
align-items: baseline;
margin-right: 32px;
color: var(--midgrey);
line-height: 1.5em;
font-size: 1.3rem;
}
.gh-dashboard-activity-feed .member {
font-weight: 500;
color: var(--black);
font-size: 1.4rem;
}
.gh-dashboard-activity-feed .activity svg {
width: 12px;
height: 12px;
margin-right: 8px;
margin-top: 1px;
}
.gh-dashboard-activity-feed .time {
white-space: nowrap;
margin-left: 12px;
color: var(--midgrey);
font-size: 1.3rem;
}
@media (max-width: 1320px) {
.gh-dashboard {
grid-template-columns: 1fr 1fr;
}
.gh-dashboard-area.charts {
grid-template-columns: 1fr 1fr;
}
.gh-dashboard-area.charts .mrr .gh-dashboard-chart-container {
flex-direction: column;
align-items: stretch;
justify-content: space-between;
flex-grow: 1;
}
.gh-dashboard-area.charts .mrr .gh-members-chart-box {
width: 100%;
}
.gh-dashboard-chart {
height: auto;
}
.gh-members-chart-box {
height: 140px;
}
.gh-dashboard-summary.small{
flex-basis: 100px;
min-width: 100px;
}
.gh-dashboard-summary:not(.small) .data {
font-size: 3.4rem;
}
.gh-dashboard-summary:not(.small) .growth {
font-size: 1.5rem;
}
.gh-dashboard-container.col-2 {
grid-template-columns: 1fr;
grid-gap: 0;
}
.gh-dashboard-area.charts {
min-height: 240px;
}
.gh-dashboard-area.charts .mrr .gh-dashboard-chart-box {
height: 140px;
width: 100%;
}
.gh-dashboard-area.charts .mrr .gh-dashboard-chart {
margin-left: -20px;
}
/* .gh-dashboard-area.charts .mrr .gh-dashboard-summary {
flex-direction: row;
align-items: flex-end;
}
.gh-dashboard-area.charts .mrr .growth {
margin: 0 0 0 12px;
padding: 4px 6px;
} */
.gh-dashboard-header {
white-space: nowrap;
}
.gh-dashboard-chart.small {
min-width: 50%;
}
.gh-dashboard-chart-box.small {
width: 100%;
}
}