Brass mailbox doors script

Here is a script for a brass mailbox door:

Brass Mailbox Door Script

Variables:

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.