JSFiddle - React, Tailwind, and code Playground

HTML

<div class="gallery">
	<div class="row">
		<div class="col col8 colmd12">
			<a 
			href="https://cdn.fishki.net/upload/post/2017/03/19/2245758/tn/02-funny-cat-wallpapercat-wallpaper.jpg" 
			class="galleryItem" 
			style="background-image: url('https://cdn.fishki.net/upload/post/2017/03/19/2245758/tn/02-funny-cat-wallpapercat-wallpaper.jpg')"></a>
			
			<div class="row">
				<div class="col col6 colsm12">
					<a 
			href="https://cdn.fishki.net/upload/post/2017/03/19/2245758/tn/02-funny-cat-wallpapercat-wallpaper.jpg" 
			class="galleryItem" 
			style="background-image: url('https://cdn.fishki.net/upload/post/2017/03/19/2245758/tn/02-funny-cat-wallpapercat-wallpaper.jpg')"></a>
				</div>
				<div class="col col6 colsm12">
					<a 
			href="https://cdn.fishki.net/upload/post/2017/03/19/2245758/tn/02-funny-cat-wallpapercat-wallpaper.jpg" 
			class="galleryItem" 
			style="background-image: url('https://cdn.fishki.net/upload/post/2017/03/19/2245758/tn/02-funny-cat-wallpapercat-wallpaper.jpg')"></a>
				</div>
			</div>
		</div>
		<div class="col col4 colmd12">
			<a 
			href="https://cdn.fishki.net/upload/post/2017/03/19/2245758/tn/02-funny-cat-wallpapercat-wallpaper.jpg" 
			class="galleryItem isHorisontal" 
			style="background-image: url('https://cdn.fishki.net/upload/post/2017/03/19/2245758/tn/02-funny-cat-wallpapercat-wallpaper.jpg')"></a>
		</div>
	</div>
</div>

CSS

* {
	box-sizing: border-box;
}

body {
	margin: 0;
}

.gallery {
	padding: 0 10px;
}

.galleryItem {
	position: relative;
	
	display: block;
	margin-bottom: 20px;
	height: 200px;
	
	background: #000 center / cover no-repeat;
}

@media (min-width: 819px) {
	.galleryItem.isHorisontal {
		height: calc(100% - 20px);
	}
}

.galleryItem:after {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	
	transition: .2s ease-in-out;
	
	background-color: rgba(0,0,0,.3);
	opacity: 0;
	
	content: '';
}

.galleryItem:hover:after {
	opacity: 1;
}

.row {
	display: flex;
	flex-flow: row wrap;
	margin: 0 -10px;
}

.col {
	flex: 0 0 auto;
	padding: 0 10px;
	min-height: 1px;
}

.col4 {
	flex-basis: 33.33333333%;
	max-width: 33.33333333%;
}

.col6 {
	flex-basis: 50%;
	max-width: 50%;
}

.col8 {
	flex-basis: 66.66666667%;
	max-width: 66.66666667%;
}

@media (max-width: 819px) {
	.colmd12 {
		flex-basis: 100%;
		max-width: 100%;
	}
}

@media (max-width: 569px) {
	.colsm12 {
		flex-basis: 100%;
		max-width: 100%;
	}
}