UnitInfoCard.vue 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <template>
  2. <div v-if="unit" class="unit-info-card">
  3. <div class="unit-icon">📚</div>
  4. <div class="unit-content">
  5. <h3 class="unit-title">{{ unit.title }}</h3>
  6. <p class="unit-desc">{{ unit.description }}</p>
  7. </div>
  8. </div>
  9. </template>
  10. <script lang="ts" setup>
  11. import type { CurriculumUnit } from '@/types/englishSpeaking'
  12. defineProps<{
  13. unit: CurriculumUnit | undefined
  14. }>()
  15. </script>
  16. <style lang="scss" scoped>
  17. .unit-info-card {
  18. display: flex;
  19. align-items: flex-start;
  20. gap: 12px;
  21. background: linear-gradient(135deg, rgba(251, 191, 36, 0.06), #fff);
  22. border-radius: 16px;
  23. padding: 14px;
  24. border: 1px solid rgba(251, 191, 36, 0.15);
  25. box-shadow: 0 1px 3px rgba(251, 191, 36, 0.08);
  26. }
  27. .unit-icon {
  28. width: 36px;
  29. height: 36px;
  30. border-radius: 12px;
  31. background: linear-gradient(135deg, #fbbf24, #f97316);
  32. display: flex;
  33. align-items: center;
  34. justify-content: center;
  35. flex-shrink: 0;
  36. font-size: 16px;
  37. box-shadow: 0 2px 6px rgba(251, 191, 36, 0.3);
  38. }
  39. .unit-content {
  40. flex: 1;
  41. min-width: 0;
  42. }
  43. .unit-title {
  44. font-size: 13px;
  45. font-weight: 600;
  46. color: #111827;
  47. margin: 0 0 4px 0;
  48. }
  49. .unit-desc {
  50. font-size: 12px;
  51. color: #4b5563;
  52. line-height: 1.5;
  53. margin: 0;
  54. }
  55. </style>