|
|
.pron-container { |
|
|
display: flex; |
|
|
padding: 2vw; |
|
|
font-family: Raleway, Roboto, Helvetica Neue, sans-serif; |
|
|
border: 10px solid #009688; |
|
|
height: 100%; |
|
|
border-radius: 1vw; |
|
|
flex-direction: column; |
|
|
} |
|
|
|
|
|
|
|
|
.dropdown-row { |
|
|
display: flex; |
|
|
align-items: center; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
.visually-hidden { |
|
|
position: absolute !important; |
|
|
height: 1px; |
|
|
width: 1px; |
|
|
overflow: hidden; |
|
|
clip: rect(1px, 1px, 1px, 1px); |
|
|
white-space: nowrap; |
|
|
border: 0; |
|
|
padding: 0; |
|
|
margin: -1px; |
|
|
} |
|
|
|
|
|
|
|
|
.select-dropdown { |
|
|
appearance: none; |
|
|
-webkit-appearance: none; |
|
|
-moz-appearance: none; |
|
|
display: inline-block; |
|
|
min-width: 180px; |
|
|
height: 36px; |
|
|
padding: 6px 36px 6px 12px; |
|
|
font-size: 14px; |
|
|
line-height: 1; |
|
|
color: #111827; |
|
|
background-color: #ffffff; |
|
|
border: 1px solid #d1d5db; |
|
|
border-radius: 8px; |
|
|
background-image: linear-gradient(45deg, transparent 50%, #6b7280 50%), linear-gradient(135deg, #6b7280 50%, transparent 50%), linear-gradient(to right, #fff, #fff); |
|
|
background-position: calc(100% - 18px) calc(1em + 2px), calc(100% - 13px) calc(1em + 2px), 100% 0; |
|
|
background-size: 6px 6px, 6px 6px, 2.5em 2.5em; |
|
|
background-repeat: no-repeat; |
|
|
cursor: pointer; |
|
|
} |
|
|
|
|
|
|
|
|
.select-dropdown:hover { |
|
|
border-color: #9ca3af; |
|
|
} |
|
|
|
|
|
.select-dropdown:focus { |
|
|
outline: none; |
|
|
box-shadow: 0 0 0 3px rgba(59,130,246,0.14); |
|
|
border-color: #3b82f6; |
|
|
} |
|
|
|
|
|
|
|
|
.select-dropdown.small { |
|
|
min-width: 140px; |
|
|
height: 32px; |
|
|
font-size: 13px; |
|
|
border-radius: 6px; |
|
|
} |
|
|
|
|
|
.header { |
|
|
|
|
|
display:flex; |
|
|
gap:13vw; |
|
|
} |
|
|
|
|
|
.title { |
|
|
font-size: 2.5vw; |
|
|
color: #006780; |
|
|
margin-bottom: 1vw; |
|
|
font-weight: 800; |
|
|
font-family: Raleway, Roboto, Helvetica Neue, sans-serif; |
|
|
} |
|
|
|
|
|
.main-content { |
|
|
display: flex; |
|
|
gap: 5vw; |
|
|
} |
|
|
|
|
|
.image-section { |
|
|
display: flex; |
|
|
align-items: center; |
|
|
justify-content: center; |
|
|
width: 20vw; |
|
|
} |
|
|
|
|
|
.apple-image { |
|
|
width: 20vw; |
|
|
height: 20vw; |
|
|
object-fit: contain; |
|
|
filter: drop-shadow(0 25px 25px rgba(0, 0, 0, 0.15)); |
|
|
animation: float 3s ease-in-out infinite; |
|
|
} |
|
|
|
|
|
@keyframes float { |
|
|
0%, 100% { |
|
|
transform: translateY(0px); |
|
|
} |
|
|
|
|
|
50% { |
|
|
transform: translateY(-20px); |
|
|
} |
|
|
} |
|
|
|
|
|
.controls-section { |
|
|
display: flex; |
|
|
flex-direction: column; |
|
|
justify-content: space-evenly; |
|
|
gap: 0.5vw; |
|
|
width: 30vw; |
|
|
} |
|
|
|
|
|
.word-section { |
|
|
text-align: center; |
|
|
display: flex; |
|
|
flex-direction: column; |
|
|
gap: 1vw; |
|
|
} |
|
|
|
|
|
.word { |
|
|
font-size: 3rem; |
|
|
font-weight: bold; |
|
|
color: hsl(222, 47%, 11%); |
|
|
text-transform: capitalize; |
|
|
margin-bottom: 0.5rem; |
|
|
font-family: Raleway, Roboto, Helvetica Neue, sans-serif; |
|
|
} |
|
|
|
|
|
.phonetics { |
|
|
font-size: 1.5vw; |
|
|
color: hsl(215, 16%, 47%); |
|
|
font-family: Raleway, Roboto, Helvetica Neue, sans-serif; |
|
|
} |
|
|
|
|
|
.teacher-section { |
|
|
display: flex; |
|
|
align-items: center; |
|
|
gap: 1rem; |
|
|
padding: 1rem; |
|
|
background: hsla(217, 91%, 60%, 0.1); |
|
|
border-radius: 1rem; |
|
|
border: 2px solid hsla(217, 91%, 60%, 0.2); |
|
|
} |
|
|
|
|
|
.student-section { |
|
|
display: flex; |
|
|
align-items: center; |
|
|
gap: 1rem; |
|
|
padding: 1rem; |
|
|
background: hsla(142, 76%, 36%, 0.1); |
|
|
border-radius: 1rem; |
|
|
border: 2px solid hsla(142, 76%, 36%, 0.2); |
|
|
} |
|
|
|
|
|
.avatar { |
|
|
width: 3rem; |
|
|
height: 3rem; |
|
|
border-radius: 9999px; |
|
|
object-fit: cover; |
|
|
} |
|
|
|
|
|
.button-group { |
|
|
display: flex; |
|
|
gap: 0.5rem; |
|
|
flex-wrap: wrap; |
|
|
} |
|
|
|
|
|
.btn { |
|
|
display: inline-flex; |
|
|
align-items: center; |
|
|
justify-content: center; |
|
|
gap: 0.5rem; |
|
|
padding: 0.8vw; |
|
|
font-size: 1rem; |
|
|
font-weight: 500; |
|
|
border-radius: 0.5rem; |
|
|
border: none; |
|
|
cursor: pointer; |
|
|
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); |
|
|
position: relative; |
|
|
box-shadow: 0 10px 20px -5px rgba(0, 0, 0, 0.2); |
|
|
width: 11vw; |
|
|
} |
|
|
|
|
|
.btn:hover { |
|
|
transform: scale(1.05); |
|
|
} |
|
|
|
|
|
.btn:active { |
|
|
transform: scale(0.95); |
|
|
} |
|
|
|
|
|
.btn:disabled { |
|
|
opacity: 0.6; |
|
|
cursor: not-allowed; |
|
|
transform: none; |
|
|
} |
|
|
|
|
|
.btn-primary { |
|
|
background: hsl(217, 91%, 60%); |
|
|
color: white; |
|
|
} |
|
|
|
|
|
.btn-secondary { |
|
|
background: hsl(142, 76%, 36%); |
|
|
color: white; |
|
|
} |
|
|
|
|
|
.btn-accent { |
|
|
background: hsl(280, 100%, 70%); |
|
|
color: white; |
|
|
} |
|
|
|
|
|
.btn-success { |
|
|
background: hsl(142, 76%, 36%); |
|
|
color: white; |
|
|
} |
|
|
|
|
|
.btn-outline { |
|
|
background: transparent; |
|
|
border: 2px solid hsl(214, 32%, 91%); |
|
|
color: hsl(222, 47%, 11%); |
|
|
} |
|
|
|
|
|
.full-width { |
|
|
width: 100%; |
|
|
} |
|
|
|
|
|
.icon { |
|
|
width: 1.25rem; |
|
|
height: 1.25rem; |
|
|
} |
|
|
|
|
|
.spinner { |
|
|
width: 1.25rem; |
|
|
height: 1.25rem; |
|
|
animation: spin 1s linear infinite; |
|
|
} |
|
|
|
|
|
.spinner-circle { |
|
|
fill: none; |
|
|
stroke: currentColor; |
|
|
stroke-width: 3; |
|
|
stroke-dasharray: 50; |
|
|
stroke-dashoffset: 25; |
|
|
} |
|
|
|
|
|
@keyframes spin { |
|
|
to { |
|
|
transform: rotate(360deg); |
|
|
} |
|
|
} |
|
|
|
|
|
.hidden { |
|
|
display: none !important; |
|
|
} |
|
|
|
|
|
.results-section { |
|
|
width: 30vw; |
|
|
height: 30vw; |
|
|
display: flex; |
|
|
flex-direction: column; |
|
|
align-items: center; |
|
|
justify-content: space-between; |
|
|
} |
|
|
|
|
|
.gauge-wrapper { |
|
|
position: relative; |
|
|
width: 20vw; |
|
|
height: 10vw; |
|
|
} |
|
|
|
|
|
.gauge { |
|
|
position: absolute; |
|
|
left: 50%; |
|
|
top: 0; |
|
|
transform: translateX(-50%); |
|
|
width: 100%; |
|
|
height: 100%; |
|
|
border-radius: 260px 260px 0 0; |
|
|
overflow: hidden; |
|
|
background: #f3f3f3; |
|
|
box-shadow: 0 4px 10px rgba(0,0,0,0.25) inset; |
|
|
} |
|
|
|
|
|
.gauge-arc { |
|
|
position: absolute; |
|
|
inset: 0; |
|
|
border-radius: 50%; |
|
|
background: conic-gradient( from 270deg, #e53935 0deg 45deg, #fb8c00 45deg 90deg, #fbc02d 90deg 135deg, #43a047 135deg 180deg, transparent 180deg 360deg ); |
|
|
height: 20vw; |
|
|
} |
|
|
|
|
|
.needle { |
|
|
position: absolute; |
|
|
bottom: 0vw; |
|
|
left: 50%; |
|
|
width: 0.7vw; |
|
|
height: 8vw; |
|
|
background: #333; |
|
|
transform: translateX(-50%) rotate(var(--angle, -90deg)); |
|
|
transform-origin: 50% 100%; |
|
|
transition: transform 700ms cubic-bezier(.2,.9,.2,1); |
|
|
border-radius: 10px; |
|
|
box-shadow: 0 2px 6px rgba(0,0,0,0.5); |
|
|
} |
|
|
|
|
|
.mic-badge { |
|
|
position: absolute; |
|
|
bottom: -0.3vw; |
|
|
left: 50%; |
|
|
transform: translate(-50%, 35%); |
|
|
width: 3vw; |
|
|
height: 3vw; |
|
|
border-radius: 50%; |
|
|
background: #000; |
|
|
box-shadow: 0 8px 18px rgba(0,0,0,0.4); |
|
|
display: flex; |
|
|
align-items: center; |
|
|
justify-content: center; |
|
|
} |
|
|
|
|
|
.score-span { |
|
|
color: white; |
|
|
font-size: 1vw; |
|
|
font-weight: bold; |
|
|
} |
|
|
|
|
|
.nav-buttons { |
|
|
position: absolute; |
|
|
right: 2rem; |
|
|
bottom: 2rem; |
|
|
display: flex; |
|
|
align-items: center; |
|
|
gap: 0.75rem; |
|
|
z-index: 30; |
|
|
} |
|
|
|
|
|
.btn-nav { |
|
|
padding: 0.5rem 0.75rem; |
|
|
font-size: 1vw; |
|
|
white-space: nowrap; |
|
|
background: #009688; |
|
|
width: 7vw; |
|
|
height: 2.5vw; |
|
|
font-weight: bold; |
|
|
color: white; |
|
|
} |
|
|
|
|
|
.nav-info { |
|
|
font-weight: 600; |
|
|
color: hsl(222, 47%, 11%); |
|
|
min-width: 4.5rem; |
|
|
text-align: center; |
|
|
font-size: 1vw; |
|
|
} |
|
|
|
|
|
.suggestions-section { |
|
|
background-color: azure; |
|
|
box-shadow: 0 6px 18px rgba(0, 0, 0, 0.06); |
|
|
padding: 1vw; |
|
|
} |
|
|
|
|
|
.suggestions-title { |
|
|
font-size: 1.25rem; |
|
|
font-weight: 600; |
|
|
color: hsl(222, 47%, 11%); |
|
|
margin-bottom: 1rem; |
|
|
font-family: Raleway, Roboto, Helvetica Neue, sans-serif; |
|
|
} |
|
|
|
|
|
.suggestions-page { |
|
|
display: flex; |
|
|
gap: 1vw; |
|
|
flex-direction: column; |
|
|
} |
|
|
|
|
|
.suggestion-card { |
|
|
display: flex; |
|
|
gap: 1rem; |
|
|
align-items: flex-start; |
|
|
background: #fff; |
|
|
border-radius: 12px; |
|
|
padding: 1rem 1.25rem; |
|
|
box-shadow: 0 6px 18px rgba(10, 30, 60, 0.06); |
|
|
border: 1px solid rgba(0,0,0,0.04); |
|
|
transition: transform .15s ease, box-shadow .15s ease; |
|
|
} |
|
|
|
|
|
.suggestion-card:hover { |
|
|
transform: translateY(-4px); |
|
|
box-shadow: 0 10px 30px rgba(10, 30, 60, 0.08); |
|
|
} |
|
|
|
|
|
.suggestion-badge { |
|
|
min-width: 36px; |
|
|
height: 36px; |
|
|
border-radius: 999px; |
|
|
background: linear-gradient(180deg, #eaf3ff, #dbeeff); |
|
|
color: #0b57a4; |
|
|
display: flex; |
|
|
align-items: center; |
|
|
justify-content: center; |
|
|
font-weight: 700; |
|
|
box-shadow: 0 4px 10px rgba(11,87,164,0.08); |
|
|
flex-shrink: 0; |
|
|
font-size: 0.95rem; |
|
|
} |
|
|
|
|
|
.suggestion-body { |
|
|
flex: 1; |
|
|
} |
|
|
|
|
|
.suggestion-point { |
|
|
font-size: 1rem; |
|
|
font-weight: 700; |
|
|
color: hsl(222, 47%, 11%); |
|
|
margin-bottom: 0.25rem; |
|
|
} |
|
|
|
|
|
.suggestion-feedback { |
|
|
color: hsl(215, 16%, 47%); |
|
|
font-size: 0.95rem; |
|
|
line-height: 1.45; |
|
|
} |
|
|
|
|
|
.suggestion-nav { |
|
|
display: flex; |
|
|
align-items: center; |
|
|
justify-content: center; |
|
|
padding:1vw; |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.voice-selection-container { |
|
|
display: flex; |
|
|
align-items: center; |
|
|
justify-content: flex-start; |
|
|
gap: 12px; |
|
|
|
|
|
margin: 0.5rem 0; |
|
|
} |
|
|
|
|
|
|
|
|
.voice-toggle-control { |
|
|
display: flex; |
|
|
align-items: center; |
|
|
|
|
|
border-radius: 9999px; |
|
|
|
|
|
border: 2px solid #009688; |
|
|
background-color: #f0f8ff; |
|
|
padding: 4px; |
|
|
} |
|
|
|
|
|
|
|
|
.voice-label-group { |
|
|
|
|
|
padding: 0.5rem 1rem; |
|
|
font-size: 0.95rem; |
|
|
color: #006780; |
|
|
font-weight: 500; |
|
|
cursor: pointer; |
|
|
transition: all 0.3s ease; |
|
|
white-space: nowrap; |
|
|
user-select: none; |
|
|
min-width: 6vw; |
|
|
text-align: center; |
|
|
} |
|
|
|
|
|
.voice-text { |
|
|
|
|
|
font-weight: 600; |
|
|
font-size: 0.9vw; |
|
|
} |
|
|
|
|
|
|
|
|
.voice-label-group.active { |
|
|
|
|
|
background-color: #006780; |
|
|
color: white; |
|
|
font-weight: 700; |
|
|
box-shadow: 0 4px 10px rgba(0, 103, 128, 0.3); |
|
|
} |
|
|
|
|
|
|
|
|
.toggle-label-left { |
|
|
border-radius: 9999px 0 0 9999px; |
|
|
} |
|
|
|
|
|
.toggle-label-right { |
|
|
border-radius: 0 9999px 9999px 0; |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.voice-toggle-slider { |
|
|
|
|
|
height: 24px; |
|
|
width: 4px; |
|
|
background-color: transparent; |
|
|
opacity: 1; |
|
|
margin: 0 -2px; |
|
|
position: relative; |
|
|
overflow: hidden; |
|
|
} |
|
|
|
|
|
|
|
|
.voice-toggle-slider .mdc-switch__track, |
|
|
.voice-toggle-slider .mdc-switch__icons, |
|
|
.voice-toggle-slider .mdc-switch__thumb-handle, |
|
|
.voice-toggle-slider .mat-mdc-slide-toggle-ripple, |
|
|
.voice-toggle-slider .mat-mdc-slide-toggle-focus-ring, |
|
|
.voice-toggle-slider .mdc-switch__handle { |
|
|
|
|
|
width: 0 !important; |
|
|
height: 0 !important; |
|
|
padding: 0 !important; |
|
|
margin: 0 !important; |
|
|
opacity: 0 !important; |
|
|
visibility: hidden !important; |
|
|
display: none !important; |
|
|
} |
|
|
|
|
|
|
|
|
.voice-toggle-slider::before { |
|
|
content: ''; |
|
|
position: absolute; |
|
|
top: 50%; |
|
|
left: 50%; |
|
|
transform: translate(-50%, -50%); |
|
|
width: 2px; |
|
|
height: 80%; |
|
|
background-color: rgba(0, 150, 136, 0.4); |
|
|
border-radius: 1px; |
|
|
} |
|
|
|
|
|
|
|
|
span { |
|
|
font-weight: bold; |
|
|
font-size: 1vw; |
|
|
} |
|
|
|
|
|
|
|
|
.voice-label-group { |
|
|
|
|
|
font-size: 1rem; |
|
|
color: #006780; |
|
|
transition: all 0.3s; |
|
|
font-weight: 500; |
|
|
line-height: 1; |
|
|
display: flex; |
|
|
align-items: center; |
|
|
justify-content: center; |
|
|
} |
|
|
|
|
|
.record-btn { |
|
|
display: inline-flex; |
|
|
align-items: center; |
|
|
gap: 8px; |
|
|
} |
|
|
|
|
|
.record-btn.recording { |
|
|
background-color: #e53935; |
|
|
border-color: #d32f2f; |
|
|
color: #ffffff; |
|
|
box-shadow: 0 2px 6px rgba(229, 57, 53, 0.24); |
|
|
} |
|
|
|
|
|
.record-btn.recording .icon, |
|
|
.record-btn.recording .stop-icon { |
|
|
color: #fff; |
|
|
fill: #fff; |
|
|
stroke: none; |
|
|
} |
|
|
|
|
|
.stop-icon { |
|
|
width: 18px; |
|
|
height: 18px; |
|
|
display: inline-block; |
|
|
vertical-align: middle; |
|
|
} |
|
|
|
|
|
.user-guide-close-icon { |
|
|
position: fixed; |
|
|
top: 3vw; |
|
|
right: 4vw; |
|
|
background: #009688; |
|
|
border: none; |
|
|
width: 44px; |
|
|
height: 44px; |
|
|
border-radius: 50%; |
|
|
display: flex; |
|
|
align-items: center; |
|
|
justify-content: center; |
|
|
font-size: 2vw; |
|
|
color: black; |
|
|
cursor: pointer; |
|
|
z-index: 2010; |
|
|
box-shadow: 0 2px 8px rgba(93, 145, 195, 0.18); |
|
|
transition: background 0.2s, color 0.2s; |
|
|
} |
|
|
|
|
|
|
|
|
@media (max-width: 768px) { |
|
|
.title { |
|
|
font-size: 1.75rem; |
|
|
} |
|
|
|
|
|
.word { |
|
|
font-size: 2rem; |
|
|
} |
|
|
|
|
|
.phonetics { |
|
|
font-size: 1.25rem; |
|
|
} |
|
|
|
|
|
.apple-image { |
|
|
width: 12rem; |
|
|
height: 12rem; |
|
|
} |
|
|
|
|
|
.btn { |
|
|
padding: 0.625rem 1.25rem; |
|
|
font-size: 0.875rem; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
span { |
|
|
font-weight: bold; |
|
|
font-size:0.8vw; |
|
|
} |
|
|
|