368 lines
9.2 KiB
CSS
368 lines
9.2 KiB
CSS
/* Default Light Theme */
|
||
html, body {
|
||
height: 100%; /* Ensure that the HTML and body elements span the full height of the viewport */
|
||
margin: 0;
|
||
padding: 0;
|
||
overflow-x: hidden; /* Prevent horizontal scrolling but allow vertical scrolling */
|
||
font-family: Arial, sans-serif;
|
||
background-color: #f5f5f5;
|
||
color: #333;
|
||
}
|
||
|
||
body {
|
||
width: 100%;
|
||
height: 100%;
|
||
box-sizing: border-box; /* Make sure padding and borders are included in width/height */
|
||
}
|
||
|
||
h1 {
|
||
text-align: center;
|
||
color: #4285f4;
|
||
font-size: 28px;
|
||
margin: 20px 0;
|
||
}
|
||
|
||
/* Full-width container taking half the height of the page */
|
||
.container {
|
||
display: flex;
|
||
justify-content: center; /* Center the elements horizontally */
|
||
align-items: center; /* Center items vertically */
|
||
width: 100%; /* Full width of the page */
|
||
padding: 20px; /* Add some padding for spacing */
|
||
gap: 20px; /* Maintain a comfortable space between elements */
|
||
flex-wrap: wrap; /* Allow wrapping for responsive layouts */
|
||
box-sizing: border-box; /* Include padding in width calculation */
|
||
}
|
||
|
||
.textarea-container {
|
||
position: relative; /* Needed for absolute positioning of child elements */
|
||
width: 45%;
|
||
max-width: 600px;
|
||
min-width: 350px;
|
||
box-sizing: border-box; /* Include padding and borders in the element’s dimensions */
|
||
}
|
||
|
||
/* Styling for the buttons above the textarea */
|
||
.translation-buttons {
|
||
display: flex;
|
||
justify-content: center; /* Center the buttons horizontally */
|
||
gap: 10px; /* Space between the buttons */
|
||
margin-bottom: 15px; /* Space between buttons and textarea */
|
||
}
|
||
|
||
#translateWordsBtn, #translateLettersBtn {
|
||
padding: 10px 20px;
|
||
font-size: 16px;
|
||
background-color: #4285f4;
|
||
color: white;
|
||
border: none;
|
||
border-radius: 5px;
|
||
cursor: pointer;
|
||
transition: background-color 0.3s ease;
|
||
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15); /* Added shadow for consistency */
|
||
}
|
||
|
||
#translateWordsBtn:hover, #translateLettersBtn:hover {
|
||
background-color: #357ae8;
|
||
}
|
||
|
||
/* Active button style */
|
||
.translation-buttons .active {
|
||
background-color: #357ae8;
|
||
font-weight: bold;
|
||
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
|
||
}
|
||
|
||
#inputText {
|
||
width: 100%;
|
||
height: 200px;
|
||
padding: 15px;
|
||
font-size: 16px;
|
||
background-color: #f9f9f9;
|
||
border: 2px solid #e0e0e0;
|
||
border-radius: 8px;
|
||
color: #333;
|
||
resize: none; /* Disable resizing */
|
||
box-sizing: border-box; /* Ensure padding doesn't affect the width */
|
||
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
|
||
position: relative; /* Needed for buttons inside the textarea container */
|
||
}
|
||
|
||
/* Microphone button inside textarea, positioned bottom-left */
|
||
#startBtn {
|
||
position: absolute;
|
||
left: 10px;
|
||
bottom: 10px;
|
||
padding: 8px;
|
||
font-size: 20px;
|
||
background-color: #4285f4;
|
||
color: white;
|
||
border: none;
|
||
border-radius: 50%;
|
||
cursor: pointer;
|
||
transition: background-color 0.3s ease;
|
||
z-index: 5;
|
||
}
|
||
|
||
.translation-buttons button:hover {
|
||
background-color: #357ae8;
|
||
}
|
||
|
||
/* Active button style */
|
||
.translation-buttons .active {
|
||
background-color: #357ae8;
|
||
font-weight: bold;
|
||
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
|
||
}
|
||
|
||
.textarea-container {
|
||
position: relative;
|
||
}
|
||
|
||
#inputText {
|
||
width: 100%;
|
||
height: 200px;
|
||
padding: 15px;
|
||
font-size: 16px;
|
||
background-color: #f9f9f9;
|
||
border: 2px solid #e0e0e0;
|
||
border-radius: 8px;
|
||
color: #333;
|
||
resize: none; /* Disable resizing */
|
||
box-sizing: border-box; /* Ensure padding doesn't affect the width */
|
||
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
|
||
}
|
||
|
||
/* Translate button inside textarea, positioned bottom-right, increased size by half */
|
||
#translateBtn {
|
||
position: absolute;
|
||
right: 10px;
|
||
bottom: 10px;
|
||
padding: 12px 25px; /* Increased padding to make button larger */
|
||
font-size: 18px; /* Increased font size */
|
||
background-color: #4285f4;
|
||
color: white;
|
||
border: none;
|
||
border-radius: 5px;
|
||
cursor: pointer;
|
||
transition: background-color 0.3s ease;
|
||
z-index: 5;
|
||
}
|
||
|
||
#translateBtn:hover {
|
||
background-color: #357ae8;
|
||
}
|
||
|
||
.video {
|
||
position: relative;
|
||
width: 45%;
|
||
max-width: 600px;
|
||
min-width: 350px;
|
||
aspect-ratio: 16/9; /* Keep a responsive aspect ratio for the video */
|
||
background-color: #ffffff;
|
||
border: 12px solid #d4d4d4;
|
||
border-radius: 12px;
|
||
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
justify-content: flex-start;
|
||
transition: transform 0.3s ease;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
/* Styling for video element inside .video */
|
||
.video video {
|
||
width: 100%;
|
||
max-height: 150%; /* Ensure the video fits within the container */
|
||
border-radius: 4px;
|
||
object-fit: cover; /* Ensure the video fits its container */
|
||
}
|
||
|
||
/* Navigation button styles */
|
||
#prevBtn, #nextBtn {
|
||
position: absolute;
|
||
top: 50%;
|
||
transform: translateY(-50%);
|
||
font-size: 24px;
|
||
background-color: #4285f4;
|
||
color: white;
|
||
border: none;
|
||
border-radius: 50%;
|
||
width: 50px; /* Increase button size */
|
||
height: 50px; /* Increase button size */
|
||
cursor: pointer;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15);
|
||
transition: background-color 0.3s ease;
|
||
z-index: 10; /* Ensure buttons are above other elements */
|
||
}
|
||
|
||
#prevBtn:hover, #nextBtn:hover {
|
||
background-color: #357ae8;
|
||
}
|
||
|
||
#prevBtn {
|
||
left: -30px; /* Adjust button position for better appearance */
|
||
}
|
||
|
||
#nextBtn {
|
||
right: -30px; /* Adjust button position for better appearance */
|
||
}
|
||
|
||
/* Style for the theme toggle button (icon) */
|
||
#themeToggleBtn {
|
||
position: fixed;
|
||
top: 20px;
|
||
right: 20px;
|
||
background-color: transparent;
|
||
border: none;
|
||
font-size: 24px;
|
||
cursor: pointer;
|
||
z-index: 1000; /* Ensure it stays on top */
|
||
transition: color 0.3s ease;
|
||
}
|
||
|
||
#themeToggleBtn:hover {
|
||
color: #f4b400; /* Add a hover color effect */
|
||
}
|
||
|
||
.video h2 {
|
||
color: #4285f4; /* Heading color */
|
||
font-size: 24px; /* Font size for the heading */
|
||
text-align: center; /* Center align the text */
|
||
margin: 0;
|
||
}
|
||
|
||
/* Dark Mode */
|
||
body.dark-mode {
|
||
background-color: #121212;
|
||
color: #e0e0e0;
|
||
}
|
||
|
||
h1.dark-mode {
|
||
color: #8ab4f8;
|
||
}
|
||
|
||
textarea.dark-mode {
|
||
background-color: #1e1e1e;
|
||
border-color: #333;
|
||
color: #e0e0e0;
|
||
}
|
||
|
||
textarea.dark-mode:focus {
|
||
border-color: #8ab4f8;
|
||
}
|
||
|
||
#startBtn.dark-mode,
|
||
#translateBtn.dark-mode,
|
||
#translateWordsBtn.dark-mode,
|
||
#translateLettersBtn.dark-mode,
|
||
#prevBtn.dark-mode,
|
||
#nextBtn.dark-mode {
|
||
background-color: #333;
|
||
color: #fff;
|
||
}
|
||
|
||
#startBtn.dark-mode:hover,
|
||
#translateBtn.dark-mode:hover,
|
||
#translateWordsBtn.dark-mode:hover,
|
||
#translateLettersBtn.dark-mode:hover,
|
||
#prevBtn.dark-mode:hover,
|
||
#nextBtn.dark-mode:hover {
|
||
background-color: #555;
|
||
}
|
||
|
||
.video.dark-mode {
|
||
background-color: #1e1e1e;
|
||
border-color: #333;
|
||
}
|
||
|
||
#themeToggleBtn.dark-mode {
|
||
color: #e0e0e0;
|
||
}
|
||
|
||
/* Responsive layout adjustments */
|
||
@media (max-width: 768px) {
|
||
.container {
|
||
flex-direction: column;
|
||
align-items: center;
|
||
padding: 20px; /* Add padding for spacing on smaller screens */
|
||
gap: 15px; /* Reduce gap for smaller screens */
|
||
height: auto; /* Allow the height to adjust for mobile screens */
|
||
}
|
||
|
||
.textarea-container,
|
||
.video {
|
||
width: 100%; /* Full width for smaller screens */
|
||
max-width: none;
|
||
}
|
||
|
||
#translateWordsBtn, #translateLettersBtn {
|
||
font-size: 14px; /* Reduce button font size for smaller screens */
|
||
padding: 8px 15px; /* Reduce button padding for smaller screens */
|
||
}
|
||
|
||
#inputText {
|
||
height: 150px; /* Reduce height for the text area */
|
||
}
|
||
|
||
#startBtn, #translateBtn {
|
||
font-size: 16px; /* Reduce button font size for smaller screens */
|
||
padding: 10px; /* Reduce button padding */
|
||
}
|
||
|
||
#prevBtn, #nextBtn {
|
||
width: 40px; /* Reduce button size for smaller screens */
|
||
height: 40px; /* Reduce button size for smaller screens */
|
||
}
|
||
|
||
#prevBtn {
|
||
left: -20px; /* Adjust button position for smaller screens */
|
||
}
|
||
|
||
#nextBtn {
|
||
right: -20px; /* Adjust button position for smaller screens */
|
||
}
|
||
|
||
h1 {
|
||
font-size: 24px; /* Decrease heading font size for mobile devices */
|
||
}
|
||
|
||
#themeToggleBtn {
|
||
font-size: 20px; /* Decrease theme toggle button size for mobile */
|
||
}
|
||
}
|
||
#translateBtn {
|
||
position: absolute;
|
||
right: 10px;
|
||
bottom: 10px;
|
||
padding: 12px 25px; /* Increased padding to make button larger */
|
||
font-size: 18px; /* Increased font size */
|
||
background-color: #4285f4;
|
||
color: white;
|
||
border: none;
|
||
border-radius: 5px;
|
||
cursor: pointer;
|
||
transition: background-color 0.3s ease;
|
||
z-index: 5;
|
||
}
|
||
|
||
/* Hover state when button is enabled */
|
||
#translateBtn:hover {
|
||
background-color: #357ae8;
|
||
}
|
||
|
||
/* Disabled button styling */
|
||
#translateBtn:disabled {
|
||
background-color: #d4d4d4; /* Lighter background color when disabled */
|
||
color: #a0a0a0; /* Lighter text color */
|
||
box-shadow: none; /* Remove shadow when disabled */
|
||
}
|
||
|
||
/* Add custom styles to show the disabled state better */
|
||
#translateBtn:disabled:hover {
|
||
background-color: #d4d4d4; /* Keep the same color on hover for disabled state */
|
||
} |