react-toolbox/components/card/theme.css

183 lines
3.1 KiB
CSS

@import '../colors.css';
@import '../variables.css';
@import './config.css';
.card {
background: var(--card-background-color);
border-radius: calc(0.2 * var(--unit));
box-shadow: var(--shadow-2p);
composes: reset from '../helpers.css';
display: flex;
flex-direction: column;
font-size: var(--card-font-size);
overflow: hidden;
width: 100%;
&.raised {
box-shadow: var(--shadow-8p);
}
& [data-react-toolbox='avatar'] {
display: block;
}
}
.cardMedia {
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
position: relative;
&.wide,
&.square {
width: 100%;
& .content {
height: 100%;
position: absolute;
}
& .content > iframe,
& .content > video,
& .content > img {
max-width: 100%;
}
}
&::after {
content: '';
display: block;
height: 0;
}
&.wide::after {
padding-top: 56.25%;
}
&.square::after {
padding-top: 100%;
}
& .content {
display: flex;
flex-direction: column;
justify-content: flex-end;
left: 0;
overflow: hidden;
position: relative;
top: 0;
width: 100%;
}
& .contentOverlay {
& .cardTitle,
& .cardActions,
& .cardText {
background-color: var(--card-text-overlay);
}
}
& .cardTitle {
& .title,
& .subtitle {
color: var(--card-color-white);
}
}
}
.cardTitle {
align-items: center;
display: flex;
& [data-react-toolbox='avatar'] {
margin-right: calc(1.3 * var(--unit));
}
& .title {
font-size: calc(2 * var(--unit));
font-weight: 500;
letter-spacing: 0.02em;
line-height: 1;
margin: 0;
padding: 0;
}
& .subtitle {
color: var(--color-text-secondary);
font-size: calc(1.4 * var(--unit));
font-weight: 400;
letter-spacing: 0;
line-height: calc(2.4 * var(--unit));
margin: 0;
padding: 0;
}
&.large {
padding: var(--card-padding-lg) var(--card-padding) calc(var(--card-padding) - 0.2 * var(--unit));
& .title {
font-size: calc(2.4 * var(--unit));
-moz-osx-font-smoothing: grayscale;
font-weight: 400;
line-height: 1.25;
}
}
&.small {
padding: var(--card-padding);
& .title {
font-size: 1.4rem;
letter-spacing: 0;
line-height: 1.4;
}
& .subtitle {
font-weight: 500;
line-height: 1.4;
}
}
}
.cardTitle,
.cardText {
padding: calc(var(--card-padding) - 0.2 * var(--unit)) var(--card-padding);
& p {
font-size: calc(1.4 * var(--unit));
font-weight: 400;
letter-spacing: 0;
line-height: calc(2.4 * var(--unit));
margin: 0;
}
&:last-child {
padding-bottom: var(--card-padding-lg);
}
& + .cardText {
padding-top: 0;
}
}
.cardActions {
align-items: center;
display: flex;
justify-content: flex-start;
padding: var(--card-padding-sm);
& [data-react-toolbox='button'] {
margin: 0 calc(var(--card-padding-sm) / 2);
min-width: 0;
padding: 0 var(--card-padding-sm);
&:first-child {
margin-left: 0;
}
&:last-child {
margin-right: 0;
}
}
}