digitalhuman / style.css
atlury's picture
Upload 19 files
888c52f verified
/* Reset and base styles */
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
body {
font-family: 'Inter', sans-serif;
background: linear-gradient(135deg, #f0f4f8, #d9e2ec);
display: flex;
min-height: 100vh;
color: #333;
overflow: hidden;
}
/* Sidebar styling */
.sidebar {
width: 260px;
background: linear-gradient(135deg, #ffffff, #e0f7fa);
box-shadow: 2px 0 10px rgba(0,0,0,0.1);
flex-shrink: 0;
display: flex;
flex-direction: column;
padding: 30px 20px;
position: fixed;
height: 100%;
overflow-y: auto;
transition: width 0.3s ease, background 0.3s ease;
}
.sidebar h2 {
text-align: center;
margin-bottom: 40px;
font-family: 'Roboto', sans-serif;
font-weight: 700;
font-size: 1.8em;
color: #00796B;
background: linear-gradient(90deg, #00796B, #004D40);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
.sidebar a {
color: #555555;
padding: 12px 15px;
text-decoration: none;
font-size: 1em;
border-radius: 8px;
margin-bottom: 10px;
transition: background-color 0.3s, color 0.3s, transform 0.2s, box-shadow 0.3s;
display: flex;
align-items: center;
background: linear-gradient(135deg, #ffffff, #f9f9f9);
}
.sidebar a:hover {
background: linear-gradient(135deg, #e0f7fa, #ffffff);
color: #00796B;
transform: translateX(5px);
box-shadow: 0 4px 12px rgba(0,0,0,0.05);
}
.sidebar a.active {
background: linear-gradient(135deg, #80deea, #4dd0e1);
color: #004d40;
font-weight: 600;
box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}
.sidebar a::before {
content: '';
display: inline-block;
width: 8px;
height: 8px;
background-color: #004d40;
border-radius: 50%;
margin-right: 12px;
opacity: 0;
transition: opacity 0.3s;
}
.sidebar a.active::before {
opacity: 1;
}
/* Main content styling */
.main-content {
margin-left: 260px;
padding: 30px;
flex: 1;
background: linear-gradient(135deg, #f9f9f9, #e0f2f1);
overflow-y: auto;
height: 100vh;
transition: margin-left 0.3s ease, background 0.3s ease;
}
/* Header */
.header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 25px;
background: linear-gradient(90deg, #80deea, #4dd0e1);
padding: 15px 20px;
border-radius: 12px;
box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}
.header h1 {
font-family: 'Roboto', sans-serif;
font-size: 2em;
color: #ffffff;
background: linear-gradient(90deg, #ffffff, #e0f7fa);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
/* Card Styling */
.card {
background: linear-gradient(135deg, #ffffff, #f1f8e9);
border-radius: 16px;
box-shadow: 0 4px 20px rgba(0,0,0,0.05);
padding: 25px;
margin-bottom: 25px;
transition: transform 0.3s, box-shadow 0.3s, background 0.3s;
}
.card:hover {
transform: translateY(-5px);
box-shadow: 0 6px 25px rgba(0,0,0,0.1);
background: linear-gradient(135deg, #e0f7fa, #ffffff);
}
/* Button Styling */
button {
background: linear-gradient(135deg, #00796B, #004D40);
border: none;
color: white;
padding: 12px 20px;
font-size: 1em;
border-radius: 8px;
cursor: pointer;
transition: background 0.3s, transform 0.2s, box-shadow 0.3s;
box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
button:hover {
background: linear-gradient(135deg, #005D56, #00332E);
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}
button:disabled {
background: linear-gradient(135deg, #A5D6A7, #81C784);
cursor: not-allowed;
box-shadow: none;
}
/* Select Dropdown Styling */
select {
width: 100%;
padding: 10px 15px;
border: 1px solid #cccccc;
border-radius: 8px;
font-size: 1em;
background-color: #ffffff;
transition: border-color 0.3s, box-shadow 0.3s;
margin-bottom: 15px;
}
select:focus {
border-color: #00796B;
box-shadow: 0 0 5px rgba(0, 121, 107, 0.5);
outline: none;
}
/* Chat Box Styling */
#chat-box {
height: 400px;
border: 1px solid #e0e0e0;
border-radius: 12px;
overflow-y: auto;
padding: 20px;
background-color: #ffffff;
margin-bottom: 20px;
position: relative;
box-shadow: inset 0 2px 4px rgba(0,0,0,0.05);
}
.message-container {
margin-bottom: 20px;
display: flex;
}
.message {
padding: 12px 18px;
border-radius: 20px;
max-width: 75%;
position: relative;
word-wrap: break-word;
box-shadow: 0 2px 8px rgba(0,0,0,0.05);
font-size: 0.95em;
line-height: 1.4;
background-color: #f1f8e9;
transition: background-color 0.3s, box-shadow 0.3s;
}
.user .message {
background: #DCF8C6;
border-bottom-right-radius: 0;
}
.assistant .message {
background: #e3f2fd;
border-bottom-left-radius: 0;
}
/* Microphone Button Styling */
#mic-container {
text-align: center;
margin-top: 20px;
margin-bottom: 20px;
}
/* Updated Start Button */
#start_button {
background: linear-gradient(135deg, #00796B, #004D40);
border: none;
color: white;
padding: 15px;
border-radius: 50%;
cursor: pointer;
transition: background 0.3s, transform 0.2s, box-shadow 0.3s;
width: 60px;
height: 60px;
display: flex;
justify-content: center;
align-items: center;
position: relative;
overflow: hidden;
box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}
#start_button::before {
content: '';
position: absolute;
width: 200%;
height: 200%;
background: rgba(255, 255, 255, 0.3);
top: 50%;
left: 50%;
transform: translate(-50%, -50%) scale(0);
border-radius: 50%;
transition: transform 0.5s ease-out;
}
#start_button:active::before {
transform: translate(-50%, -50%) scale(1);
}
#start_button:disabled {
background: linear-gradient(135deg, #A5D6A7, #81C784);
cursor: not-allowed;
box-shadow: none;
}
#start_button:hover:not(:disabled) {
background: linear-gradient(135deg, #005D56, #00332E);
transform: scale(1.05);
box-shadow: 0 6px 15px rgba(0,0,0,0.15);
}
/* Icon Styling */
.mic-icon {
width: 30px;
height: 30px;
transition: transform 0.3s;
fill: #ffffff;
}
/* Animation for Mic Icon */
.mic-animate {
animation: pulse 2s infinite;
}
@keyframes pulse {
0% {
transform: scale(1);
}
50% {
transform: scale(1.2);
}
100% {
transform: scale(1);
}
}
/* Logs Styling */
#logs {
height: 120px;
border: 1px solid #e0e0e0;
border-radius: 12px;
overflow-y: auto;
padding: 15px;
background-color: #f1f1f1;
font-size: 0.85em;
margin-bottom: 10px;
box-shadow: inset 0 2px 4px rgba(0,0,0,0.05);
}
#clear-logs {
background: linear-gradient(135deg, #FF5252, #E53935);
border: none;
color: white;
padding: 10px 18px;
font-size: 0.9em;
cursor: pointer;
border-radius: 8px;
transition: background 0.3s, transform 0.2s, box-shadow 0.3s;
box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
#clear-logs:hover {
background: linear-gradient(135deg, #E53935, #D32F2F);
transform: scale(1.02);
box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}
/* Chat Stats */
#chat-stats {
font-size: 0.85em;
color: #555555;
text-align: center;
margin-top: 10px;
}
/* Voice Selection Container */
#tts-voice-container label {
display: block;
margin-bottom: 8px;
color: #555555;
font-weight: 500;
}
/* Hidden Class */
.hidden {
display: none;
}
/* Scrollbar Styling */
#chat-box::-webkit-scrollbar,
#logs::-webkit-scrollbar {
width: 8px;
}
#chat-box::-webkit-scrollbar-track,
#logs::-webkit-scrollbar-track {
background: #f1f1f1;
border-radius: 4px;
}
#chat-box::-webkit-scrollbar-thumb,
#logs::-webkit-scrollbar-thumb {
background: #cccccc;
border-radius: 4px;
}
#chat-box::-webkit-scrollbar-thumb:hover,
#logs::-webkit-scrollbar-thumb:hover {
background: #a8a8a8;
}
/* Responsive Adjustments */
@media (max-width: 768px) {
.sidebar {
width: 220px;
}
.main-content {
margin-left: 220px;
}
}
@media (max-width: 600px) {
.sidebar {
position: relative;
width: 100%;
height: auto;
flex-direction: row;
overflow-x: auto;
padding: 15px 10px;
}
.sidebar h2 {
display: none;
}
.sidebar a {
margin-right: 10px;
margin-bottom: 0;
padding: 10px 12px;
font-size: 0.9em;
}
.main-content {
margin-left: 0;
padding: 20px 15px;
}
.header {
flex-direction: column;
align-items: flex-start;
}
.header h1 {
margin-bottom: 10px;
font-size: 1.5em;
}
}
/* Controls Container Styling */
#controls {
display: flex;
gap: 10px;
margin-bottom: 15px;
flex-wrap: wrap;
}
/* Initialize Button Styling */
#download {
flex: 0 0 auto;
background: linear-gradient(135deg, #00796B, #004D40);
border: none;
color: white;
padding: 10px 20px;
font-size: 1em;
border-radius: 8px;
cursor: pointer;
transition: background 0.3s, transform 0.2s, box-shadow 0.3s;
box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
#download:hover {
background: linear-gradient(135deg, #005D56, #00332E);
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}
#download:disabled {
background: linear-gradient(135deg, #A5D6A7, #81C784);
cursor: not-allowed;
box-shadow: none;
}
/* Enhanced Layout for Digital Human Mentor Voice Section */
#voice .card {
display: grid;
grid-template-columns: 1fr 1fr;
grid-gap: 20px;
}
/* Adjust controls and voice selection */
#model-selection-container,
#tts-voice-container {
display: flex;
flex-direction: column;
}
#model-selection-container label,
#tts-voice-container label {
margin-bottom: 5px;
font-weight: 500;
color: #555555;
}
/* Chat and Controls Layout */
#chat-container {
display: flex;
flex-direction: column;
}
/* Ensure chat-box takes full width */
#chat-box {
width: 100%;
}
/* Adjust microphone container */
#mic-container {
display: flex;
justify-content: center;
margin-bottom: 20px;
}
/* Configuration Info */
#configuration {
margin-top: 15px;
font-size: 0.9em;
color: #555555;
}
/* Responsive Grid Adjustments */
@media (max-width: 800px) {
#voice .card {
grid-template-columns: 1fr;
}
}
/* Add New styles for the chat input container */
#text-input-container {
display: flex;
gap: 10px;
margin-top: 10px;
}
#text-input {
flex: 1;
padding: 10px 15px;
border: 1px solid #cccccc;
border-radius: 8px;
font-size: 1em;
background-color: #ffffff;
transition: border-color 0.3s, box-shadow 0.3s;
}
#text-input:focus {
border-color: #00796B;
box-shadow: 0 0 5px rgba(0, 121, 107, 0.5);
outline: none;
}
#submit-button {
background: linear-gradient(135deg, #00796B, #004D40);
border: none;
color: white;
padding: 10px 20px;
font-size: 1em;
border-radius: 8px;
cursor: pointer;
transition: background 0.3s, transform 0.2s, box-shadow 0.3s;
box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
#submit-button:hover {
background: linear-gradient(135deg, #005D56, #00332E);
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}
#submit-button:disabled {
background: linear-gradient(135deg, #A5D6A7, #81C784);
cursor: not-allowed;
box-shadow: none;
}