Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
 
 
 
 
 

131 rader
3.3 KiB

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