Brass mailbox doors script
Here is a script for a brass mailbox door:
Brass Mailbox Door Script
Variables:
mailbox_color
: The color of the mailbox (e.g. "brass")mailbox_size
: The size of the mailbox (e.g. "standard")mailbox_style
: The style of the mailbox (e.g. "classic")door_type
: The type of door (e.g. "hinged", "sliding")
Script:
.mailbox {
background-color: ${mailbox_color};
width: ${mailbox_size};
height: ${mailbox_size};
border-radius: 10px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
}
.mailbox-door {
position: relative;
width: 100%;
height: 100%;
background-color: ${mailbox_color};
border-radius: 10px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
transition: transform 0.3s ease-in-out;
}
.mailbox-door.hinged {
transform: rotate(0deg);
}
.mailbox-door.hinged.open {
transform: rotate(90deg);
}
.mailbox-door.sliding {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: ${mailbox_color};
border-radius: 10px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
transition: transform 0.3s ease-in-out;
}
.mailbox-door.sliding.open {
transform: translateX(100%);
}
.mailbox-door.sliding.close {
transform: translateX(0);
}
HTML:
<div class="mailbox ${mailbox_style}">
<div class="mailbox-door ${door_type}" ${door_type === 'hinged'? 'data-open="false"' : ''}>
<!-- Mailbox contents -->
</div>
</div>
JavaScript:
const mailboxDoor = document.querySelector('.mailbox-door');
mailboxDoor.addEventListener('click', () => {
if (mailboxDoor.classList.contains('hinged')) {
mailboxDoor.classList.toggle('open');
} else if (mailboxDoor.classList.contains('sliding')) {
mailboxDoor.classList.toggle('open');
}
});
This script creates a brass mailbox door with a hinged or sliding mechanism. The door can be opened and closed by clicking on it. The script uses CSS variables to customize the mailbox color, size, and style. The JavaScript code adds event listeners to the mailbox door to toggle its open and close states.