Spaces:
Running
Running
* { | |
margin: 0; | |
padding: 0; | |
box-sizing: border-box; | |
} | |
body { | |
font-family: 'Comic Sans MS', cursive, sans-serif; | |
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); | |
min-height: 100vh; | |
padding: 20px; | |
color: #333; | |
position: relative; | |
} | |
.app-container { | |
display: grid; | |
grid-template-columns: 300px 1fr 350px; | |
gap: 20px; | |
max-width: 1400px; | |
margin: 0 auto; | |
height: calc(100vh - 40px); | |
} | |
/* Block Palette */ | |
.block-palette { | |
background: white; | |
border-radius: 20px; | |
padding: 20px; | |
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1); | |
overflow-y: auto; | |
} | |
.palette-header { | |
display: flex; | |
align-items: center; | |
justify-content: space-between; | |
margin-bottom: 20px; | |
} | |
.palette-header h2 { | |
font-size: 24px; | |
color: #4a5568; | |
margin: 0; | |
} | |
.assignment-btn { | |
background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%); | |
color: white; | |
border: none; | |
padding: 10px 15px; | |
border-radius: 15px; | |
font-weight: bold; | |
font-size: 14px; | |
cursor: pointer; | |
transition: all 0.2s ease; | |
font-family: inherit; | |
} | |
.assignment-btn:hover { | |
transform: translateY(-2px); | |
box-shadow: 0 6px 20px rgba(245, 87, 108, 0.4); | |
} | |
.block-category { | |
margin-bottom: 30px; | |
} | |
.block-category h3 { | |
font-size: 18px; | |
margin-bottom: 15px; | |
color: #2d3748; | |
padding: 10px; | |
background: #f7fafc; | |
border-radius: 10px; | |
text-align: center; | |
} | |
.block { | |
display: flex; | |
align-items: center; | |
padding: 15px; | |
margin: 10px 0; | |
border-radius: 15px; | |
cursor: grab; | |
user-select: none; | |
transition: all 0.2s ease; | |
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); | |
font-weight: bold; | |
font-size: 16px; | |
} | |
.block:hover { | |
transform: translateY(-2px); | |
box-shadow: 0 6px 20px rgba(0, 0, 0, 0.2); | |
} | |
.block:active { | |
cursor: grabbing; | |
transform: scale(1.05); | |
} | |
.block-icon { | |
font-size: 24px; | |
margin-right: 10px; | |
} | |
.block-text { | |
flex: 1; | |
} | |
.action-block { | |
background: linear-gradient(135deg, #ff9a9e 0%, #fecfef 100%); | |
border: 3px solid #ff6b9d; | |
} | |
.control-block { | |
background: linear-gradient(135deg, #a8edea 0%, #fed6e3 100%); | |
border: 3px solid #4ecdc4; | |
} | |
/* Coding Area */ | |
.coding-area { | |
background: white; | |
border-radius: 20px; | |
padding: 20px; | |
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1); | |
display: flex; | |
flex-direction: column; | |
} | |
.coding-header { | |
display: flex; | |
align-items: center; | |
justify-content: space-between; | |
margin-bottom: 20px; | |
} | |
.coding-header h2 { | |
font-size: 24px; | |
color: #4a5568; | |
} | |
.run-button, .clear-button, .check-button { | |
display: flex; | |
align-items: center; | |
padding: 12px 20px; | |
border: none; | |
border-radius: 15px; | |
cursor: pointer; | |
font-weight: bold; | |
font-size: 16px; | |
font-family: inherit; | |
transition: all 0.2s ease; | |
margin-left: 10px; | |
} | |
.run-button { | |
background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%); | |
color: white; | |
box-shadow: 0 4px 15px rgba(79, 172, 254, 0.4); | |
} | |
.run-button:hover { | |
transform: translateY(-2px); | |
box-shadow: 0 6px 20px rgba(79, 172, 254, 0.6); | |
} | |
.clear-button { | |
background: linear-gradient(135deg, #fa709a 0%, #fee140 100%); | |
color: white; | |
box-shadow: 0 4px 15px rgba(250, 112, 154, 0.4); | |
} | |
.clear-button:hover { | |
transform: translateY(-2px); | |
box-shadow: 0 6px 20px rgba(250, 112, 154, 0.6); | |
} | |
.check-button { | |
background: linear-gradient(135deg, #84fab0 0%, #8fd3f4 100%); | |
color: white; | |
box-shadow: 0 4px 15px rgba(132, 250, 176, 0.4); | |
} | |
.check-button:hover { | |
transform: translateY(-2px); | |
box-shadow: 0 6px 20px rgba(132, 250, 176, 0.6); | |
} | |
.button-icon { | |
font-size: 18px; | |
margin-right: 8px; | |
} | |
.drop-zone { | |
flex: 1; | |
border: 3px dashed #cbd5e0; | |
border-radius: 15px; | |
padding: 20px; | |
min-height: 400px; | |
background: #f8fafc; | |
position: relative; | |
} | |
.drop-zone.drag-over { | |
border-color: #4facfe; | |
background: #e6f7ff; | |
} | |
.drop-hint { | |
text-align: center; | |
color: #a0aec0; | |
margin-top: 50px; | |
} | |
.drop-icon { | |
font-size: 48px; | |
display: block; | |
margin-bottom: 20px; | |
} | |
.drop-hint p { | |
font-size: 18px; | |
font-weight: bold; | |
} | |
.code-block { | |
margin: 10px 0; | |
position: relative; | |
} | |
.delete-btn { | |
position: absolute; | |
right: 10px; | |
top: 50%; | |
transform: translateY(-50%); | |
background: #e53e3e; | |
color: white; | |
border: none; | |
border-radius: 50%; | |
width: 30px; | |
height: 30px; | |
cursor: pointer; | |
font-size: 16px; | |
display: flex; | |
align-items: center; | |
justify-content: center; | |
opacity: 0; | |
transition: opacity 0.2s ease; | |
} | |
.code-block:hover .delete-btn { | |
opacity: 1; | |
} | |
/* Character Stage */ | |
.character-stage { | |
background: white; | |
border-radius: 20px; | |
padding: 20px; | |
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1); | |
} | |
.character-stage h2 { | |
font-size: 24px; | |
margin-bottom: 20px; | |
color: #4a5568; | |
text-align: center; | |
} | |
.stage-area { | |
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); | |
border-radius: 15px; | |
height: 400px; | |
position: relative; | |
overflow: hidden; | |
border: 3px solid #4c51bf; | |
} | |
.character { | |
position: absolute; | |
bottom: 50px; | |
left: 50%; | |
transform: translateX(-50%); | |
text-align: center; | |
transition: all 0.5s ease; | |
} | |
.character-body { | |
font-size: 80px; | |
margin-bottom: 10px; | |
filter: drop-shadow(3px 3px 6px rgba(0, 0, 0, 0.3)); | |
} | |
.character-name { | |
background: rgba(255, 255, 255, 0.9); | |
padding: 5px 15px; | |
border-radius: 20px; | |
font-weight: bold; | |
color: #4a5568; | |
font-size: 14px; | |
} | |
/* Animations */ | |
@keyframes dance { | |
0%, 100% { transform: translateX(-50%) rotate(0deg) scale(1); } | |
25% { transform: translateX(-50%) rotate(-10deg) scale(1.1); } | |
50% { transform: translateX(-50%) rotate(10deg) scale(1.2); } | |
75% { transform: translateX(-50%) rotate(-5deg) scale(1.1); } | |
} | |
@keyframes jump { | |
0%, 100% { transform: translateX(-50%) translateY(0px); } | |
50% { transform: translateX(-50%) translateY(-50px); } | |
} | |
@keyframes wave { | |
0%, 100% { transform: translateX(-50%) rotate(0deg); } | |
25% { transform: translateX(-50%) rotate(15deg); } | |
75% { transform: translateX(-50%) rotate(-15deg); } | |
} | |
@keyframes bounce { | |
0%, 100% { transform: translateX(-50%) scale(1); } | |
50% { transform: translateX(-50%) scale(1.2); } | |
} | |
@keyframes spin { | |
0% { transform: translateX(-50%) rotate(0deg); } | |
100% { transform: translateX(-50%) rotate(360deg); } | |
} | |
@keyframes sleep { | |
0%, 100% { transform: translateX(-50%) scale(1); opacity: 1; } | |
50% { transform: translateX(-50%) scale(0.8); opacity: 0.6; } | |
} | |
@keyframes grow { | |
0% { transform: translateX(-50%) scale(1); } | |
100% { transform: translateX(-50%) scale(1.5); } | |
} | |
@keyframes shrink { | |
0% { transform: translateX(-50%) scale(1); } | |
100% { transform: translateX(-50%) scale(0.5); } | |
} | |
.character.dancing { | |
animation: dance 1s ease-in-out; | |
} | |
.character.jumping { | |
animation: jump 0.6s ease-in-out; | |
} | |
.character.waving { | |
animation: wave 1s ease-in-out; | |
} | |
.character.bouncing { | |
animation: bounce 0.5s ease-in-out; | |
} | |
.character.spinning { | |
animation: spin 0.8s ease-in-out; | |
} | |
.character.sleeping { | |
animation: sleep 1.2s ease-in-out; | |
} | |
.character.growing { | |
animation: grow 0.6s ease-in-out; | |
} | |
.character.shrinking { | |
animation: shrink 0.6s ease-in-out; | |
} | |
/* Responsive Design */ | |
@media (max-width: 1200px) { | |
.app-container { | |
grid-template-columns: 250px 1fr 300px; | |
} | |
} | |
/* Assignment Panel */ | |
.assignment-panel { | |
position: fixed; | |
top: 50%; | |
left: 50%; | |
transform: translate(-50%, -50%); | |
background: white; | |
border-radius: 20px; | |
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); | |
z-index: 1000; | |
width: 90%; | |
max-width: 500px; | |
display: none; | |
} | |
.assignment-header { | |
background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%); | |
color: white; | |
padding: 20px; | |
border-radius: 20px 20px 0 0; | |
display: flex; | |
align-items: center; | |
justify-content: space-between; | |
} | |
.assignment-header h2 { | |
margin: 0; | |
font-size: 24px; | |
} | |
.close-btn { | |
background: rgba(255, 255, 255, 0.2); | |
border: none; | |
color: white; | |
width: 30px; | |
height: 30px; | |
border-radius: 50%; | |
cursor: pointer; | |
font-size: 18px; | |
font-weight: bold; | |
transition: all 0.2s ease; | |
} | |
.close-btn:hover { | |
background: rgba(255, 255, 255, 0.3); | |
transform: scale(1.1); | |
} | |
.assignment-content { | |
padding: 30px; | |
text-align: center; | |
} | |
.assignment-title { | |
font-size: 28px; | |
font-weight: bold; | |
color: #2d3748; | |
margin-bottom: 15px; | |
} | |
.assignment-description { | |
font-size: 20px; | |
color: #4a5568; | |
margin-bottom: 20px; | |
line-height: 1.4; | |
} | |
.assignment-goal { | |
background: linear-gradient(135deg, #84fab0 0%, #8fd3f4 100%); | |
color: white; | |
padding: 15px 20px; | |
border-radius: 15px; | |
font-size: 18px; | |
font-weight: bold; | |
margin-bottom: 10px; | |
} | |
.assignment-footer { | |
background: #f7fafc; | |
padding: 20px; | |
border-radius: 0 0 20px 20px; | |
display: flex; | |
align-items: center; | |
justify-content: space-between; | |
} | |
.nav-btn { | |
background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%); | |
color: white; | |
border: none; | |
padding: 10px 20px; | |
border-radius: 15px; | |
font-weight: bold; | |
font-size: 14px; | |
cursor: pointer; | |
transition: all 0.2s ease; | |
font-family: inherit; | |
} | |
.nav-btn:hover:not(:disabled) { | |
transform: translateY(-2px); | |
box-shadow: 0 6px 20px rgba(79, 172, 254, 0.4); | |
} | |
.nav-btn:disabled { | |
opacity: 0.5; | |
cursor: not-allowed; | |
transform: none; | |
} | |
.assignment-counter { | |
font-weight: bold; | |
color: #4a5568; | |
font-size: 16px; | |
} | |
@media (max-width: 768px) { | |
.app-container { | |
grid-template-columns: 1fr; | |
grid-template-rows: auto auto 1fr; | |
gap: 15px; | |
} | |
.block-palette { | |
max-height: 200px; | |
} | |
.character-stage { | |
order: -1; | |
} | |
.assignment-panel { | |
width: 95%; | |
max-width: none; | |
} | |
.assignment-content { | |
padding: 20px; | |
} | |
.assignment-title { | |
font-size: 24px; | |
} | |
.assignment-description { | |
font-size: 18px; | |
} | |
.nav-btn { | |
padding: 8px 15px; | |
font-size: 12px; | |
} | |
} |