Checking what each type of coffee is made of.
Created
October 29, 2022 01:04
-
-
Save conofor/f48e658d87965f960a5f938c6269c1a4 to your computer and use it in GitHub Desktop.
What's that coffee like?
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<div class="social"><a href="https://twitter.com/rominamartinlib?ref_src=twsrc%5Etfw" class="twitter-follow-button" data-show-screen-name="false" data-dnt="true" data-show-count="false">Follow @rominamartinlib</a> | |
</div> | |
<div class="options"> | |
<button id="americano">Americano</button> | |
<button id="au_lait">Au lait</button> | |
<button id="capuccino">Capuccino</button> | |
<button id="corretto">Corretto</button> | |
<button id="espresso">Espresso</button> | |
<button id="latte">Latte</button> | |
<button id="lungo">Lungo</button> | |
<button id="macchiato">Macchiato</button> | |
<button id="mocha">Mocha</button> | |
<button id="ristretto">Ristretto</button> | |
</div> | |
<div class="container"> | |
<h1 class="coffee_name">Choose your coffee</h1> | |
<div class="cup"> | |
<div class="filling reset"> | |
<div class="coffee">Coffee</div> | |
<div class="water">Water</div> | |
<div class="liquor">Liquor</div> | |
<div class="milk">Milk</div> | |
<div class="whipped_cream">Whipped cream</div> | |
<div class="milk_foam">Milk foam</div> | |
<div class="steamed_milk">Steamed milk</div> | |
<div class="chocolate">Chocolate</div> | |
</div> | |
<div class="plate"></div> | |
</div> | |
</div> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const coffee_name = document.querySelector(".coffee_name"); | |
const coffee_filling = document.querySelector(".filling"); | |
const buttons = document.querySelectorAll("button"); | |
let current_element = null; | |
const changeCoffeeType = (selected) => { | |
if (current_element) { | |
current_element.classList.remove("selected"); | |
coffee_filling.classList.remove(current_element.id); | |
} | |
current_element = selected; | |
coffee_filling.classList.add(current_element.id); | |
current_element.classList.add("selected"); | |
coffee_name.innerText = selected.innerText; | |
}; | |
const setActiveType = (element) => { | |
element.toggleClass("selected"); | |
}; | |
[...buttons].forEach((button) => { | |
button.addEventListener("click", () => { | |
changeCoffeeType(button); | |
}); | |
}); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<script src="https://platform.twitter.com/widgets.js"></script> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
:root { | |
--main-bg-color: #d6b9a4; | |
--cup-color: #474747; | |
--cup-width: 30vw; | |
--cup-height: 24vw; | |
--cup-handle-width: 5vw; | |
--cup-handle-height: calc(2 * var(--cup-handle-width)); | |
--cup-border-width: 2vw; | |
--cup-inside-width: calc(var(--cup-width) - var(--cup-border-width)); | |
--cup-inside-height: calc(var(--cup-height) - var(--cup-border-width)); | |
--border-width: 1vw; | |
--main-border: var(--border-width) solid var(--cup-color); | |
--plate-width: 25vw; | |
--plate-height: 2vw; | |
--coffee-bottom: 80%; | |
--water-bottom: 0; | |
--milk-bottom: 0; | |
--liquor-bottom: 0; | |
--whipped_cream-bottom: 0; | |
--steamed_milk-bottom: 0; | |
--milk_foam-bottom: 0; | |
--chocolate-bottom: 0; | |
--coffee-color: #3c302f; | |
--water-color: #b1dce2; | |
--milk-color: #f0ebe5; | |
--liquor-color: #fc8626; | |
--whipped_cream-color: #fceecb; | |
--milk_foam-color: #fceecb; | |
--steamed_milk-color: #ffd7b3; | |
--chocolate-color: #391e09; | |
} | |
body { | |
height: 100vh; | |
width: 100vw; | |
background: var(--main-bg-color); | |
display: flex; | |
justify-content: space-evenly; | |
align-items: center; | |
margin: auto; | |
overflow: hidden; | |
} | |
.social { | |
position: absolute; | |
top: 10px; | |
left: 10px; | |
} | |
.container { | |
display: flex; | |
flex-direction: column; | |
align-items: center; | |
justify-content: center; | |
width: 70vw; | |
} | |
.coffee_name { | |
color: #f1faee; | |
text-align: center; | |
/* width: 100%; */ | |
font-size: 4vw; | |
} | |
.options { | |
display: grid; | |
grid-gap: 1vh; | |
grid-template-rows: repeat(10, 35px); | |
grid-template-columns: 120px; | |
justify-content: space-evenly; | |
box-sizing: border-box; | |
} | |
.options button { | |
user-select: none; | |
background: rgba(214, 217, 227, 0.6); | |
outline: none; | |
font-size: 1rem; | |
border: 2px solid #a67a60; | |
box-shadow: none; | |
color: #363636; | |
box-sizing: border-box; | |
border-radius: 1vh; | |
} | |
.options button:hover { | |
cursor: pointer; | |
border-width: 4px; | |
background: rgba(255, 255, 255, 0.6); | |
} | |
.options .selected { | |
border-width: 4px; | |
background: rgba(255, 255, 255, 0.8); | |
box-sizing: border-box; | |
} | |
.cup { | |
width: var(--cup-width); | |
height: var(--cup-height); | |
border-radius: 0 0 10vw 10vw; | |
position: relative; | |
background-color: var(--cup-color); | |
z-index: 10; | |
box-sizing: border-box; | |
} | |
.cup::after { | |
content: ""; | |
position: absolute; | |
top: 10%; | |
left: calc(100% - 1vw); | |
width: var(--cup-handle-width); | |
height: var(--cup-handle-height); | |
border: var(--main-border); | |
border-radius: 50% 30%; | |
} | |
.plate { | |
position: absolute; | |
top: calc(100% + 1vw); | |
left: calc((var(--cup-width) - var(--plate-width)) / 2); | |
width: var(--plate-width); | |
background: var(--cup-color); | |
height: var(--plate-height); | |
border-radius: 1vw; | |
} | |
.filling { | |
position: absolute; | |
left: calc(var(--cup-border-width) / 2); | |
bottom: calc(var(--cup-border-width) / 2); | |
width: var(--cup-inside-width); | |
height: var(--cup-inside-height); | |
overflow: hidden; | |
border-radius: 0 0 10vw 10vw; | |
background-color: var(--main-bg-color); | |
bottom: 1vw; | |
} | |
.filling div { | |
position: absolute; | |
width: 100%; | |
transition: all 1s linear; | |
color: #817f75; | |
display: flex; | |
align-items: flex-start; | |
justify-content: center; | |
height: 0; | |
overflow: hidden; | |
font-size: 3vw; | |
height: 100%; | |
bottom: -100%; | |
box-sizing: border-box; | |
} | |
.filling.reset.americano { | |
--water-bottom: 0; | |
--coffee-bottom: -60%; | |
} | |
.filling.reset.au_lait { | |
--coffee-bottom: -50%; | |
--milk-bottom: 0%; | |
} | |
.filling.reset.capuccino { | |
--coffee-bottom: -65%; | |
--steamed_milk-bottom: -35%; | |
--milk_foam-bottom: 0; | |
} | |
.filling.reset.espresso { | |
--coffee-bottom: -60%; | |
} | |
.filling.reset.latte { | |
--coffee-bottom: -60%; | |
--steamed_milk-bottom: -20%; | |
--milk_foam-bottom: 0%; | |
} | |
.filling.reset.corretto { | |
--coffee-bottom: -45%; | |
--liquor-bottom: -25%; | |
} | |
.filling.reset.lungo { | |
--water-bottom: 0; | |
--coffee-bottom: -50%; | |
} | |
.filling.reset.macchiato { | |
--coffee-bottom: -70%; | |
--milk_foam-bottom: 0; | |
} | |
.filling.reset.mocha { | |
--coffee-bottom: -60%; | |
--chocolate-bottom: -40%; | |
--steamed_milk-bottom: -20%; | |
--whipped_cream-bottom: 0%; | |
} | |
.filling.reset.ristretto { | |
--coffee-bottom: -80%; | |
} | |
div.chocolate { | |
background: var(--chocolate-color); | |
bottom: var(--chocolate-bottom); | |
z-index: 6; | |
} | |
div.coffee { | |
background: var(--coffee-color); | |
bottom: var(--coffee-bottom); | |
line-height: 4vw; | |
z-index: 7; | |
} | |
div.liquor { | |
background: var(--liquor-color); | |
bottom: var(--liquor-bottom); | |
z-index: 4; | |
} | |
div.milk { | |
background: var(--milk-color); | |
bottom: var(--milk-bottom); | |
z-index: 2; | |
} | |
div.milk_foam { | |
background: var(--milk_foam-color); | |
bottom: var(--milk_foam-bottom); | |
z-index: 5; | |
} | |
div.steamed_milk { | |
background: var(--steamed_milk-color); | |
bottom: var(--steamed_milk-bottom); | |
z-index: 6; | |
} | |
div.water { | |
background: var(--water-color); | |
bottom: var(--water-bottom); | |
} | |
div.whipped_cream { | |
background: var(--whipped_cream-color); | |
bottom: var(--whipped_cream-bottom); | |
z-index: 4; | |
} | |
.filling.reset { | |
--coffee-bottom: -100%; | |
--water-bottom: -100%; | |
--milk-bottom: -100%; | |
--liquor-bottom: -100%; | |
--whipped_cream-bottom: -100%; | |
--steamed_milk-bottom: -100%; | |
--milk_foam-bottom: -100%; | |
--chocolate-bottom: -100%; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment