- var data = [
-   {
-     name: 'Yogi Bear', 
-     quote: 'Smaaaarter than the average bear!'
-   }, 
-   {
-     name: 'Boo Boo', 
-     quote: 'The ranger isn\'t going to like this...'
-   }, 
-   {
-     name: 'Cindy Bear', 
-     quote: 'Oh, that\'s Yogi...'
-   }, 
-   {
-     name: 'Ranger Smith', 
-     quote: 'Stole a picnic basket?! Yogiii!!!'
-   }
- ].reverse();
- var n = data.length;

header Resize the damn window
while n--
	article
		h3 #{data[n].name}
		section
			p #{data[n].quote}
			a(href='#') go
View Compiled
@import 'compass/css3';

$m: 1rem;
$p: .5rem;
$min-w: 15rem;
$color-map: 
  #0f414c #79e9fd, 
  #673a01 #ddac43, 
  #291c52 #bba9ff, 
  #36480c #b0d65f;

* { margin: 0; padding: 0 }

html {
	--i: -1;
	--j: -1;
	--r: 0px;
	height: 100%;
	background: url(https://images.unsplash.com/photo-1496481995273-1ba7de6c24fd?ixlib=rb-0.3.5&q=85&fm=jpg&crop=entropy&cs=srgb&ixid=eyJhcHBfaWQiOjE0NTg5fQ&s=63d82148afc0fe5a35f9752b4d511d82) 50%/ cover #777;
	background-blend-mode: luminosity
}

body {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	margin: 0 auto;
	padding-top: 4em;
	max-width: 1000px;
	font: 1em/1.5 trebuchet ms, verdana, sans-serif;
}

header {
	margin: $m;
	padding: 1em 0;
	border-radius: .5em;
	min-width: 95%;
	background: #fff;
	text-align: center;
}

article {
	overflow: hidden;
	margin: $m;
	width: 21em;
	min-width: $min-w;
	border-radius: 1em;
	
	@for $i from 0 to 4 {
		&:nth-of-type(#{$i + 1}) {
			--c0: nth(nth($color-map, $i + 1), 1);
			--c1: nth(nth($color-map, $i + 1), 2)
		}
	}
}

h3, section {
	display: flex;
	align-items: center;
	overflow: hidden;
	position: relative;
	padding: $p;
	
	&:before {
		position: absolute;
		z-index: -1;
		top: calc(var(--j)*#{$m} + (1 + var(--j))*50% - var(--r));
		left: calc(var(--i)*#{$m} + (1 + var(--i))*50% - var(--r));
		padding: var(--r);
		border-radius: 50%;
		box-shadow: 0 0 0 50em;
		content: ''
	}
}

h3:before, section { color: var(--c1) }

h3 {
	justify-content: center;
	color: #fff;
	font-size: 1.75em;
	text-align: center;
	min-height: var(--r);
	
	&:before { opacity: .65 }
}

section {
	justify-content: space-between;
	min-height: calc(var(--r) - #{$m});
	
	&:before { color: var(--c0) }
}

p {
	margin-right: 1em;
	font-size: .875em;
}

a {
	display: inline-block;
	color: inherit;
	text-decoration: none;
	text-transform: uppercase;
	white-space: nowrap;
	
	&:after { content: ' ▶' }
}

@media (min-width: 2*($min-w + 2*$m)) {
	html { --r: 4rem }
	
	header {
		position: relative;
		
		&:before, &:after {
			position: absolute;
			left: 50%;
			content: ''
		}
		
		&:before {
			top: 100%;
			width: calc(.0625*var(--r)); height: calc(2*var(--r) + #{$m});
			transform: translate(-50%);
			background: inherit;
		}
		
		&:after {
			top: calc(3*#{$m} + 3.125*var(--r));
			border: solid calc(.375*var(--r)) transparent;
			padding: calc(.375*var(--r));
			border-radius: 50%;
			transform: translate(-50%, - 50%);
			box-shadow: 0 0 0 5px #fff;
			background: #fff padding-box;
		}
	}
	
	article {
		width: 40%;
		
		&:nth-of-type(-n + 2) { --j: 1 }
		&:nth-of-type(odd) { --i: 1 }

		&:nth-of-type(-n + 2) h3, 
		&:nth-of-type(n + 3) section {
			&:before { --r: 0 }
		}
		
		&:nth-of-type(-n + 2) section, 
		&:nth-of-type(n + 3) h3 {
			padding-right: calc(.5*(1 + var(--i))*(var(--r) - #{$m}) + #{$p});
			padding-left: calc(.5*(1 - var(--i))*(var(--r) - #{$m}) + #{$p})
		}
	}
}
View Compiled
Run Pen

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.