@angular2-material/list
Version:
Angular 2 Material list
177 lines (146 loc) • 3.69 kB
Plain Text
@import 'variables';
@import 'default-theme';
@import 'list-shared';
$md-list-side-padding: 16px;
$md-list-avatar-size: 40px;
$md-list-icon-size: 24px;
/* Normal list variables */
$md-list-top-padding: 8px;
$md-list-font-size: 16px;
$md-list-secondary-font: 14px;
// height for single-line lists
$md-list-base-height: 48px;
// height for single-line lists with avatars
$md-list-avatar-height: 56px;
// spec requires two- and three-line lists be taller
$md-list-two-line-height: 72px;
$md-list-three-line-height: 88px;
/* Dense list variables */
$md-dense-top-padding: 4px;
$md-dense-font-size: 13px;
$md-dense-base-height: 40px;
$md-dense-avatar-height: 48px;
$md-dense-two-line-height: 60px;
$md-dense-three-line-height: 76px;
/*
This mixin provides all list-item styles, changing font size and height
based on whether the list is in dense mode.
*/
@mixin md-list-item-base($font-size, $base-height, $avatar-height,
$two-line-height, $three-line-height) {
.md-list-item {
display: flex;
flex-direction: row;
align-items: center;
font-family: $md-font-family;
box-sizing: border-box;
font-size: $font-size;
height: $base-height;
padding: 0 $md-list-side-padding;
color: md-color($md-foreground, base);
}
&.md-list-avatar .md-list-item {
height: $avatar-height;
}
&.md-2-line .md-list-item {
height: $two-line-height;
}
&.md-3-line .md-list-item {
height: $three-line-height;
}
.md-list-text {
@include md-line-wrapper-base();
padding: 0 $md-list-side-padding;
&:first-child {
padding: 0;
}
}
[md-list-avatar] {
width: $md-list-avatar-size;
height: $md-list-avatar-size;
border-radius: 50%;
}
[md-list-icon] {
width: $md-list-icon-size;
height: $md-list-icon-size;
border-radius: 50%;
padding: 4px;
}
}
/*
This mixin provides all subheader styles, adjusting heights and padding
based on whether the list is in dense mode.
*/
@mixin md-subheader-base($top-padding, $secondary-size, $base-height) {
display: block;
box-sizing: border-box;
height: $base-height;
padding: $md-list-side-padding;
margin: 0;
font-size: $secondary-size;
font-weight: 500;
color: md-color($md-foreground, secondary-text);
&:first-child {
margin-top: -$top-padding;
}
}
md-list, md-nav-list {
padding-top: $md-list-top-padding;
display: block;
[md-subheader] {
@include md-subheader-base(
$md-list-top-padding,
$md-list-secondary-font,
$md-list-base-height
);
}
md-list-item, a[md-list-item] {
@include md-list-item-base(
$md-list-font-size,
$md-list-base-height,
$md-list-avatar-height,
$md-list-two-line-height,
$md-list-three-line-height
);
@include md-line-base($md-list-secondary-font);
}
}
md-list[dense], md-nav-list[dense] {
padding-top: $md-dense-top-padding;
display: block;
[md-subheader] {
@include md-subheader-base(
$md-dense-top-padding,
$md-dense-font-size,
$md-dense-base-height
);
}
md-list-item, a[md-list-item] {
@include md-list-item-base(
$md-dense-font-size,
$md-dense-base-height,
$md-dense-avatar-height,
$md-dense-two-line-height,
$md-dense-three-line-height
);
@include md-line-base($md-dense-font-size);
}
}
md-divider {
display: block;
border-top: 1px solid md-color($md-foreground, divider);
margin: 0;
}
md-nav-list {
a {
text-decoration: none;
color: inherit;
}
.md-list-item {
cursor: pointer;
&:hover, &.md-list-item-focus {
outline: none;
background: md-color($md-background, 'hover');
}
}
}