@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
489 lines (402 loc) • 9.89 kB
text/less
// Card
.k-card {
.border-radius( @card-border-radius );
border-width: @card-border-width;
border-style: solid;
outline: 0;
box-sizing: border-box;
display: flex;
flex-direction: column;
position: relative;
overflow: hidden;
.k-card-callout {
position: absolute;
width: @card-callout-width;
height: @card-callout-height;
border-width: @card-border-width @card-border-width 0 0;
border-style: solid;
margin: 0;
&.k-callout-n {
top: 0;
transform: translate(-50%, -50%) rotate(-45deg);
left: 50%;
}
&.k-callout-e {
top: 50%;
left: auto;
right: 0;
transform: translate(50%, -50%) rotate(135deg) scaleX(-1);
}
&.k-callout-s {
top: auto;
bottom: 0;
transform: translate(-50%, 50%) rotate(135deg);
left: 50%;
}
&.k-callout-w {
top: 50%;
left: 0;
transform: translate(-50%, -50%) rotate(-135deg);
}
}
.k-avatar {
width: @card-avatar-size;
height: @card-avatar-size;
flex-basis: @card-avatar-size;
margin-right: @card-avatar-spacing;
&.k-avatar-image > * {
width: @card-avatar-size;
height: @card-avatar-size;
}
}
}
.k-card.k-card-flat {
box-shadow: none;
}
// Orientation
.k-card-horizontal {
flex-direction: row;
}
.k-card-inner {
display: flex;
flex-direction: inherit;
overflow: hidden;
}
// Header
.k-card-header {
padding: @card-header-padding-y @card-header-padding-x;
border-width: 0 0 @card-header-border-width;
border-style: solid;
outline: 0;
overflow: hidden;
position: relative;
z-index: 1;
.k-card > &:first-child {
.border-top-radius( @card-border-radius );
}
.k-card > &:last-child {
.border-bottom-radius( @card-border-radius );
}
h1,
h2,
h3,
h4,
h5,
h6,
> div {
margin: 0;
}
.k-card-title+.k-card-subtitle {
margin-top: 0;
}
}
// Footer
.k-card-footer {
padding: @card-footer-padding-y @card-footer-padding-x;
border-width: @card-footer-border-width 0 0;
border-style: solid;
outline: 0;
display: block;
}
// Body
.k-card-body {
// @extend %top-rounded-child;
// @extend %bottom-rounded-child;
padding: @card-body-padding-y @card-body-padding-x;
outline: 0;
flex: 1 1 auto;
.k-card > &:first-child {
.border-top-radius( @card-border-radius );
}
.k-card > &:last-child {
.border-bottom-radius( @card-border-radius );
}
p {
margin: 0 0 @paragraph-margin-bottom;
}
> .k-last,
> :last-child {
margin-bottom: 0;
}
}
// Card image
.k-card-image,
.k-card-media {
border: 0;
max-width: 100%;
overflow: hidden;
.k-card > &:first-child {
.border-top-radius( @card-border-radius );
}
.k-card > &:last-child {
.border-bottom-radius( @card-border-radius );
}
> img {
border: 0;
max-width: 100%;
}
.k-card-horizontal & {
flex-shrink: 0;
max-width: @card-img-max-width;
object-fit: cover;
}
}
// Card title
.k-card-title {
// @include typography-styles( card-title );
font-family: inherit;
font-size: @card-title-font-size;
line-height: normal;
font-weight: 400;
margin: 0 0 @card-title-margin-bottom;
}
// Card subtitle
.k-card-subtitle {
// @include typography-styles( card-subtitle );
font-size: @card-subtitle-font-size;
margin: 0 0 @card-subtitle-margin-bottom;
opacity: .6;
}
// Separator
.k-card-separator {
margin: 0;
border-width: 1px 0 0;
border-style: solid;
display: block;
flex: 0 0 auto;
&.k-separator-vertical {
width: 0;
border-width: 0 0 0 1px;
}
}
// Separator
.k-card > .k-hr {
margin: 0;
flex: 0 0 auto;
border-color: inherit;
}
// Card actions
.k-card-actions {
padding: @card-actions-padding-y @card-actions-padding-x;
border-width: 0;
border-style: solid;
border-color: inherit;
overflow: hidden;
display: flex;
flex-wrap: wrap;
flex-shrink: 0;
flex-basis: auto;
.k-card > &:first-child {
.border-top-radius( @card-border-radius );
}
.k-card > &:last-child {
.border-bottom-radius( @card-border-radius );
}
.k-card-horizontal &,
.k-card-vertical & {
border: 0;
}
.k-button {
max-width: 100%;
white-space: normal;
}
> .k-button.k-flat:first-child {
margin-left: (-@card-button-padding-x);
}
&.k-card-actions-start { justify-content: flex-start; }
&.k-card-actions-end { justify-content: flex-end; }
&.k-card-actions-center { justify-content: center; }
}
.k-card-action {
border-width: 0;
border-style: solid;
border-color: inherit;
display: inline-flex;
flex: 1 1 auto;
> .k-button {
.border-radius( 0 );
padding: (@card-actions-padding-y + @card-button-padding-y) @card-actions-padding-x;
flex: 1 1 auto;
}
}
.k-card-actions-vertical {
padding: 0;
display: flex;
flex-direction: column;
.k-button {
padding: (@card-actions-padding-y + @button-padding-y) @card-actions-padding-x;
&.k-flat:first-child {
margin-left: 0;
}
}
.k-card-action + .k-card-action {
border-top-width: @card-actions-border-width;
}
.k-card-horizontal & {
border-top-width: 0;
border-left-width: @card-actions-border-width;
}
.k-card-vertical & {
&.k-card-actions-start { align-items: flex-start; }
&.k-card-actions-end { align-items: flex-end; }
&.k-card-actions-center { align-items: center; }
&.k-card-actions-start,
&.k-card-actions-end,
&.k-card-actions-center {
padding: @card-actions-padding-y @card-actions-padding-x;
.k-button {
padding: @button-padding-y @button-padding-x;
}
}
}
}
.k-card-actions-stretched {
padding: 0;
display: flex;
flex-direction: row;
.k-button {
padding: (@card-actions-padding-y + @button-padding-y) @card-actions-padding-x;
flex-grow: 1;
border-radius: 0;
&.k-flat:first-child {
margin-left: 0;
}
}
.k-card-action + .k-card-action {
border-left-width: @card-actions-border-width;
}
.k-card & {
border-top-width: @card-actions-border-width;
border-style: solid;
}
.k-card-horizontal > & {
border-left-width: @card-actions-border-width;
border-top-width: 0;
}
&.k-card-actions-vertical {
flex-direction: column;
.k-card-action + .k-card-action {
border-top-width: @card-actions-border-width;
border-left-width: 0;
}
}
}
// List
.k-card-list {
display: flex;
flex-direction: column;
flex-wrap: nowrap;
align-items: stretch;
flex: 0 0 auto;
.k-card {
flex: 0 0 auto;
}
.k-card + .k-card {
margin-top: @card-deck-gap;
}
}
// Deck
.k-card-deck {
display: flex;
margin-top: @card-deck-gap;
flex-direction: row;
flex-wrap: nowrap;
align-items: stretch;
flex: 0 0 auto;
.k-card {
flex: 0 0 auto;
}
.k-card + .k-card {
margin-left: @card-deck-gap;
}
}
.k-card-deck-scrollwrap {
display: flex;
position: relative;
align-items: center;
> .k-button {
.border-radius( @card-deck-scroll-button-radius );
flex: 0 0 auto;
position: absolute;
z-index: 1;
&:first-child {
left: @card-deck-scroll-button-offset;
}
&:last-child {
right: @card-deck-scroll-button-offset;
}
}
> .k-card-deck {
flex: 1 1 auto;
}
}
// Group
.k-card-group {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
align-items: stretch;
flex: 0 0 auto;
.k-card {
.border-radius(0);
flex: 0 0 auto;
> .k-card-header {
.border-radius(0);
}
}
.k-card + .k-card {
margin-left: -1px;
}
// Border-radius
.k-card.k-first {
.border-left-radius( @card-border-radius );
> .k-card-header {
border-top-left-radius: @card-border-radius;
}
}
.k-card.k-last {
.border-right-radius( @card-border-radius );
> .k-card-header {
border-top-right-radius: @card-border-radius;
}
}
.k-card.k-only {
.border-radius( @card-border-radius );
> .k-card-header {
.border-top-radius( @card-border-radius );
}
}
}
// RTL
.k-rtl,
[dir="rtl"] {
// Deck
.k-card-deck {
.k-card + .k-card {
margin-left: 0;
margin-right: @card-deck-gap;
}
}
.k-card-actions-stretched {
.k-card-action + .k-card-action {
border-right-width: @card-actions-border-width;
border-left-width: 0;
}
}
.k-card-horizontal {
.k-card-actions-vertical,
> .k-card-actions-stretched {
border-right-width: @card-actions-border-width;
border-left-width: 0;
}
}
}
// IE 11
.k-ie11 {
// IE11 needs units to be added to flex-basis when in shorthand
// Thus, `flex: x x 0` will be ignored and we need `flex: x x auto`
// See https://github.com/philipwalton/flexbugs#flexbug-4
.k-card-body {
flex: 1 1 auto;
}
}