Simple Background Color Changer
After trying to figure out if it was possible to extract and display an image's metadata in the browser with only JavaScript, I discovered it wasn't as easy as I hoped. So I built this instead. It's nothing special, just extra practice extracted values from inputs and concatenating them into something usable. I didn't do any checks on the values entered, but it won't work properly unless hex color values are used.
View the code:
HTML and JS
<div class="code-block">
            
            <div id="main-img">
                <p>Current color: <span id="color-label">#999999</span></p>
            </div>
            <h4>Alter the image's background color</h4>
            <p>All values must be <a href="https://en.wikipedia.org/wiki/Hexadecimal">hexadecimal</a> numbers.</p>
            <ul>
                <li><label for="red-color-input">Red:</label> <input id="red-color-input" type="text" maxlength="2"></li>
                <li><label for="green-color-input">Green:</label> <input id="green-color-input" type="text" maxlength="2"></li>
                <li><label for="blue-color-input">Blue:</label> <input id="blue-color-input" type="text" maxlength="2"></li>
                <li><label for="opacity-input">Opacity:</label> <input id="opacity-input" type="text" maxlength="2"></li>
            </ul>
            <button id="update-color-button">Update Color</button>
        
        </div>
				
				<script>
            /* Variables */
            const redColor = document.getElementById('red-color-input');
            const blueColor = document.getElementById('blue-color-input');
            const greenColor = document.getElementById('green-color-input');
            const opacityColor = document.getElementById('opacity-input');
            const targetIMG = document.getElementById('main-img');
            const updateButton = document.getElementById('update-color-button');
            let colorLabel = document.getElementById('color-label');
            /* Function */
            function updateColor() {
                let colorValue = `#${redColor.value}${blueColor.value}${greenColor.value}${opacityColor.value}`;
                colorLabel.innerText = colorValue;
                targetIMG.style.backgroundColor = colorValue;
            }
            /* Events */
            updateButton.addEventListener('click', updateColor);    
        </script>CSS
.code-block {
                display: block;
                padding: 1rem;
                margin: 3rem auto;
                text-align: center;
                background-color: rgb(90, 90, 90);
                border-radius: 1rem;
                font-family: Helvetica, Arial, sans-serif;
                color: white;
                width: clamp(16em, 90vw, 60em);
            }
            .code-block button {
                display: block;
                margin: 1rem auto;
                height: 44px;
                border-radius: .5rem;
                border: solid 1px #eee;
                background: white;
                padding: 0 1rem;
                text-transform: uppercase;
            }
            .code-block ul {
                padding: 0;
                list-style: none;
                text-align: left;
            }
            .code-block ul li {
                padding: .5em 0;
            }
            
            .code-block ul li input{
                width: 5ch;
            }
            #main-img {
                background-image: url('https://www.jeremycaudle.com/floorshotJC.jpeg');
                background-clip: border-box;
                background-size: contain;
                height: 300px;
                width: 300px;
                background-blend-mode: lighten;
                background-color: #999999;
                display: block;
								margin: 0 auto;
            }
            @supports (display: flex) {
                #main-img {
                    display: flex;
                    flex-direction: column;
                    justify-content: center;
                    align-content: center;
                }
                .code-block ul {
                    display: flex;
                    flex-direction: row;
                    justify-content: space-evenly;
                }
                .code-block ul li {
                    display: flex;
                    flex-grow: 1;
                    flex-direction: column;
                    justify-items: center;
                    align-items: center;
                    text-align: center;
                }
                .code-block ul li label {
                    margin-bottom: .5em;
                }
            }