- var recipe = {title: "Hearty Keto Hot Chocolate",subtitle: "Enjoy a delicous, smooth, and chocolatey drink without the guilt.",img: "https://i.imgur.com/NRoG6nu.jpg",tags:["Mexican","Drink","Ketogenic"],prepTime:"5 min",cookTime:"10 min",totalTime:"15 min",servings:2,ingredients:[{amount:"1",unit:"Tbsp",name:"butter, unsalted"},{amount:"1.5",unit:"tsp",name:"vanilla extract"},{unit:"pinch of",name:"sea salt"},{amount:"2",unit:"cups",name:"almond or coconut milk, unsweetened"},{amount:"1",unit:"Tbsp",name:"cocoa powder"},{amount:"1",unit:"Tbsp",name:"heavy whipping cream", optional:true},{unit:"dash of",name:"cinnamon",optional:true}],steps:["In a medium saucepan, melt the butter with the vanilla extract on medium heat.","Add the sea salt and milk. Simmer for 5 minutes and stir occassionally.","Add the cocoa powder and whisk thoroughly to eliminate any clumps. Simmer for 5 minutes, then serve immediately.","Optional: Serve with a splash of heavy cream and a sprinkle of cinnamon."],notes:["Do not add cocoa powder until the milk is completely heated to avoid large, unbreakable clumps from forming.", "Do not allow milk to boil; this will ruin the flavor."]}
section.section
	.container
		.columns.is-centered.is-mobile
			.column.is-10-tablet.is-7-widescreen
				article.recipe.box
					if recipe.img
						.recipe__img
							img(src=recipe.img alt=recipe.title)
					header.level
						.level-left
							.level-item
								div
									if recipe.tags
										ul.tags
										each tag in recipe.tags
											li.tag.is-uppercase=tag
									h1.title=recipe.title
									if recipe.subtitle
										p.lead=recipe.subtitle
						.level-right
							.level-item
								div
									.heading="Prep Time: "+recipe.prepTime
									.heading="Cook Time: "+recipe.cookTime
									.heading.has-text-weight-bold="Total Time: "+recipe.totalTime
						// Share and Print
						.recipe__share.field.has-addons
							.control
								.button.is-small.is-info
									span.icon.is-small
										span.fas.fa-fw.fa-print
									span Print
							.control
								.button.is-small
									span.icon.is-small
										span.fas.fa-fw.fa-share
									span Share
					// Body
					.recipe__content
						.level
							.level-left
								.level-item
									h2.is-size-4 Ingredients:
							.level-right
								.level-item
									.heading.label.is-small="Servings: " + recipe.servings
						ul.recipe__ingredients
							each ingredient in recipe.ingredients
								li 
									label 
										input(type="checkbox")
										if ingredient.amount
											span=ingredient.amount
											|  
										if ingredient.unit
											span=ingredient.unit
											|  
										span=ingredient.name
										if ingredient.optional
											span.is-italic , (optional)
						br
						h2.is-size-4 Directions:
						div.content
							ol
								each step in recipe.steps
									li=step
							footer.notification.is-italic
								h2.is-size-6 Notes:
								each note in recipe.notes
									p=note
						
View Compiled
.recipe {
	border: 1px solid #eee;
	padding: 0;

	header {
		position: relative;
		border-bottom: 1px solid #eee;
		padding: 1rem 1rem 2rem 1rem;
	}

	&__img {
		overflow: hidden;
		height: 250px;
		img {
			object-fit: cover;
		}
	}

	&__share {
		position: absolute;
		top: -3rem;
		right: 1rem;
	}
	.recipe__content {
		padding: 1rem;
	}
	&__servings {
		width: 3rem;
	}
	// Ingredients
	&__ingredients {
		margin-top: 1rem;
		padding-left: 1rem;
		li {
			list-style-type: none;
		}
		label {
			cursor: pointer;
			&:hover {
				color: #3298dc;
			}
		}
		input {
			appearance: none;
			position: relative;
			&::before {
				color: #666;
				font-family: "Font Awesome 5 Free";
				content: "\f0c8";
				margin-right: 0.25rem;
			}
			&:checked {
				~ span {
					font-style: italic;
					color: #666;
					text-decoration: line-through;
				}
				&::before {
					content: "\f14a";
				}
			}
		}
	}
}
View Compiled

External CSS

  1. https://cdnjs.cloudflare.com/ajax/libs/bulma/0.8.0/css/bulma.min.css
  2. https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.11.2/css/all.min.css

External JavaScript

This Pen doesn't use any external JavaScript resources.