You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

138 lines
3.5 KiB

  1. @use '../atoms/variables' as *;
  2. // ─── Monatskalender Container ─────────────────────────────────────────────────
  3. .month-calendar {
  4. position: absolute;
  5. top: calc(100% + 8px);
  6. right: 0;
  7. width: 380px;
  8. background: linear-gradient(160deg, var(--color-primary-light), var(--color-primary-dark));
  9. border-radius: $radius-xl;
  10. padding: $space-4;
  11. box-shadow: $shadow-calendar;
  12. z-index: 200;
  13. transform-origin: top right;
  14. transition:
  15. opacity 0.28s ease,
  16. transform 0.28s ease;
  17. &--hidden {
  18. opacity: 0;
  19. transform: scaleY(0.92) translateY(-8px);
  20. pointer-events: none;
  21. }
  22. &--visible {
  23. opacity: 1;
  24. transform: scaleY(1) translateY(0);
  25. }
  26. }
  27. // ─── Header (Monat/Jahr + Navigation) ────────────────────────────────────────
  28. .month-calendar__header {
  29. display: flex;
  30. align-items: center;
  31. justify-content: space-between;
  32. margin-bottom: $space-4;
  33. }
  34. .month-calendar__title {
  35. font-size: $font-size-md;
  36. font-weight: $font-weight-bold;
  37. color: var(--header-text);
  38. letter-spacing: 0.01em;
  39. }
  40. .month-calendar__arrow {
  41. display: flex;
  42. align-items: center;
  43. justify-content: center;
  44. width: 28px;
  45. height: 28px;
  46. border-radius: 50%;
  47. background: transparent;
  48. border: none;
  49. color: var(--header-text);
  50. cursor: pointer;
  51. transition: background $transition-fast;
  52. &:hover { background: var(--header-overlay); }
  53. svg { width: 8px; height: 14px; }
  54. }
  55. .month-calendar__close {
  56. // erbt .week-nav__cal Styles – hier nur Positionierung
  57. margin-left: 0;
  58. }
  59. // ─── Grid ─────────────────────────────────────────────────────────────────────
  60. .month-calendar__grid {
  61. &.slide-out-left { animation: slideOutLeft 0.16s ease forwards; }
  62. &.slide-out-right { animation: slideOutRight 0.16s ease forwards; }
  63. }
  64. .month-calendar__weekdays {
  65. display: grid;
  66. grid-template-columns: repeat(7, 1fr);
  67. margin-bottom: $space-2;
  68. span {
  69. text-align: center;
  70. font-size: $font-size-xs;
  71. font-weight: $font-weight-bold;
  72. color: var(--header-text-muted);
  73. padding: $space-1 0;
  74. text-transform: uppercase;
  75. letter-spacing: 0.04em;
  76. }
  77. }
  78. .month-calendar__days {
  79. display: grid;
  80. grid-template-columns: repeat(7, 1fr);
  81. gap: 2px;
  82. }
  83. // ─── Einzelner Tag ───────────────────────────────────────────────────────────
  84. .month-day {
  85. display: flex;
  86. align-items: center;
  87. justify-content: center;
  88. aspect-ratio: 1;
  89. border-radius: $radius-md;
  90. font-size: $font-size-sm;
  91. font-weight: $font-weight-medium;
  92. color: var(--header-text);
  93. cursor: pointer;
  94. transition: background $transition-fast;
  95. user-select: none;
  96. &:hover:not(&--other) {
  97. background: var(--header-overlay);
  98. }
  99. // Tage aus Vor-/Nachmonat
  100. &--other {
  101. color: var(--header-text-muted);
  102. cursor: default;
  103. }
  104. // Heutiger Tag
  105. &--today {
  106. font-weight: $font-weight-bold;
  107. background: $color-white;
  108. color: $color-text-dark;
  109. &:hover {
  110. background: rgba($color-white, 0.9);
  111. }
  112. }
  113. // Ausgewählter Tag
  114. &--active:not(&--today) {
  115. background: var(--header-overlay);
  116. font-weight: $font-weight-bold;
  117. }
  118. }