Responsive grid more verbose, box-sizing for more predictable containers

This commit is contained in:
James Barnsley
2016-11-23 21:42:56 +13:00
parent 3b1c0cb5b1
commit b72ab52004
6 changed files with 43 additions and 20 deletions

View File

@ -88,6 +88,15 @@ class Artist extends React.Component{
</section> </section>
</div> </div>
) )
}else if( this.state.sub_view == 'biography' ){
return (
<div>
<h4 className="left-padding">Biography</h4>
<section className="text-wrapper no-top-padding">
<p>Biography here</p>
</section>
</div>
)
} }
// default body // default body

View File

@ -1,16 +1,22 @@
@mixin grid_item( $cols ){ @mixin grid_item( $cols, $gap: 2% ){
width: ( 0% + (( 100 / $cols ) - 4 )); width: ( 0% + ( 100 / $cols ) - ( $gap * 2 ) + ( ( $gap * 2 ) / $cols ) );
&:nth-child(#{$cols}) { box-sizing: border-box;
margin: 0 $gap 3%;
&:nth-child(#{$cols}n-#{$cols}) {
margin-right: 0;
@include clearfix; @include clearfix;
} }
&:nth-child(#{$cols}n-#{$cols - 1}) {
margin-left: 0;
}
} }
.grid { .grid {
.grid-item { .grid-item {
@include grid_item( 5 )
margin: 0 2% 3%;
display: inline-block; display: inline-block;
vertical-align: top; vertical-align: top;
border-bottom: 0; border-bottom: 0;
@ -76,7 +82,7 @@
} }
} }
@include responsive( 1200px ){ @include responsive( 1200px, null, 2399px ){
&.mini { &.mini {
.grid-item { .grid-item {
@include grid_item( 2 ) @include grid_item( 2 )
@ -89,7 +95,7 @@
} }
} }
@include responsive( 850px ){ @include responsive( 850px, null, 1199px ){
&.mini { &.mini {
.grid-item { .grid-item {
@include grid_item( 2 ) @include grid_item( 2 )
@ -102,7 +108,7 @@
} }
} }
@include responsive( 650px ){ @include responsive( null, null, 849px ){
&:not(.mini){ &:not(.mini){
.grid-item { .grid-item {
@include grid_item( 3 ) @include grid_item( 3 )

View File

@ -67,7 +67,7 @@
} }
} }
@include responsive( $bp_medium, $bp_shallow ){ @include responsive( null, $bp_shallow, $bp_medium ){
position: fixed; position: fixed;
background: $dark_grey; background: $dark_grey;

View File

@ -21,7 +21,7 @@ aside{
z-index: 2; z-index: 2;
} }
@include responsive( $bp_medium ){ @include responsive( null, null, $bp_medium ){
width: 50%; width: 50%;
left: -50%; left: -50%;

View File

@ -21,7 +21,7 @@ footer {
padding-bottom: 60px; padding-bottom: 60px;
} }
@include responsive( $bp_medium ){ @include responsive( null, null, $bp_medium ){
margin-left: 0; margin-left: 0;
.sidebar-open & { .sidebar-open & {
@ -46,7 +46,7 @@ main {
} }
section.grid-wrapper { section.grid-wrapper {
padding: 40px 20px; padding: 40px;
} }
section.list-wrapper { section.list-wrapper {

View File

@ -12,7 +12,7 @@ $blue: #32b5f2;
$bp_wide: 1000px; $bp_wide: 1000px;
$bp_medium: 800px; $bp_medium: 800px;
$bp_narrow: 350px; $bp_narrow: 350px;
$bp_shallow: 700px; $bp_shallow: 650px;
@mixin one_line_text { @mixin one_line_text {
white-space: nowrap; white-space: nowrap;
@ -51,17 +51,25 @@ $bp_shallow: 700px;
filter: blur( $size ); filter: blur( $size );
} }
@mixin responsive( $width: null, $height: null ){ @mixin responsive( $min_width: null, $max_height: null, $max_width: null ){
@if $width && $height { @if $max_width and $max_height {
@media( max-width: $width ), ( max-height: $height ){ @media( max-width: $max_width ), ( max-height: $max_height ){
@content; @content;
} }
}@else if $width { }@else if $max_width and $min_width {
@media( max-width: $width ){ @media( max-width: $max_width ) and ( min-width: $min_width ){
@content; @content;
} }
}@else if $height { }@else if $max_width {
@media( max-height: $height ){ @media( max-width: $max_width ){
@content;
}
}@else if $max_height {
@media( max-height: $max_height ){
@content;
}
}@else if $min_width {
@media( min-width: $min_width ){
@content; @content;
} }
} }