25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.
 
 
 
 
 

123 satır
3.8 KiB

  1. @use '../atoms/variables' as *;
  2. // ─── Wrapper ─────────────────────────────────────────────────────────────────
  3. .week-nav {
  4. display: flex;
  5. align-items: center;
  6. gap: $space-1;
  7. background: rgba(255, 255, 255, 0.18);
  8. border-radius: $radius-pill;
  9. padding: $space-1 $space-2;
  10. backdrop-filter: blur(6px);
  11. -webkit-backdrop-filter: blur(6px);
  12. }
  13. // ─── Pfeile ──────────────────────────────────────────────────────────────────
  14. .week-nav__arrow {
  15. display: flex;
  16. align-items: center;
  17. justify-content: center;
  18. width: 28px;
  19. height: 28px;
  20. border-radius: 50%;
  21. background: transparent;
  22. border: none;
  23. color: $color-white;
  24. cursor: pointer;
  25. text-decoration: none;
  26. flex-shrink: 0;
  27. transition: background $transition-fast;
  28. &:hover { background: rgba(255, 255, 255, 0.2); }
  29. svg { width: 8px; height: 14px; }
  30. }
  31. // ─── Tage-Container (Slide-Animation) ────────────────────────────────────────
  32. .week-nav__days {
  33. display: flex;
  34. align-items: center;
  35. gap: $space-1;
  36. overflow: hidden;
  37. position: relative;
  38. &.slide-out-left { animation: slideOutLeft 0.18s ease forwards; }
  39. &.slide-out-right { animation: slideOutRight 0.18s ease forwards; }
  40. &.slide-in-right { animation: slideInRight 0.18s ease forwards; }
  41. &.slide-in-left { animation: slideInLeft 0.18s ease forwards; }
  42. }
  43. @keyframes slideOutLeft { to { opacity: 0; transform: translateX(-24px); } }
  44. @keyframes slideOutRight { to { opacity: 0; transform: translateX(24px); } }
  45. @keyframes slideInRight { from { opacity: 0; transform: translateX(24px); } to { opacity: 1; transform: translateX(0); } }
  46. @keyframes slideInLeft { from { opacity: 0; transform: translateX(-24px); } to { opacity: 1; transform: translateX(0); } }
  47. // ─── Einzelner Tag ───────────────────────────────────────────────────────────
  48. .week-nav__day {
  49. display: flex;
  50. flex-direction: column;
  51. align-items: center;
  52. padding: $space-2 $space-3;
  53. border-radius: $radius-md;
  54. cursor: pointer;
  55. text-decoration: none;
  56. width: 64px;
  57. flex-shrink: 0;
  58. flex-grow: 0;
  59. transition: background $transition-fast;
  60. user-select: none;
  61. &:hover:not(.week-nav__day--active) {
  62. background: rgba(255, 255, 255, 0.15);
  63. }
  64. &--active {
  65. background: $color-white;
  66. .week-nav__day-name,
  67. .week-nav__day-date { color: $color-text-dark; }
  68. }
  69. &--today:not(&--active) {
  70. .week-nav__day-name {
  71. text-decoration: underline;
  72. text-underline-offset: 3px;
  73. }
  74. }
  75. }
  76. .week-nav__day-name {
  77. font-size: $font-size-sm;
  78. font-weight: $font-weight-bold;
  79. color: $color-white;
  80. line-height: 1.2;
  81. }
  82. .week-nav__day-date {
  83. font-size: $font-size-xs;
  84. color: rgba(255, 255, 255, 0.78);
  85. line-height: 1.3;
  86. }
  87. // ─── Kalender-Icon ───────────────────────────────────────────────────────────
  88. .week-nav__cal {
  89. display: flex;
  90. align-items: center;
  91. justify-content: center;
  92. width: 34px;
  93. height: 34px;
  94. border-radius: $radius-md;
  95. background: rgba(255, 255, 255, 0.2);
  96. color: $color-white;
  97. cursor: pointer;
  98. border: none;
  99. margin-left: $space-1;
  100. flex-shrink: 0;
  101. transition: background $transition-fast;
  102. svg { width: 16px; height: 16px; pointer-events: none; }
  103. &:hover,
  104. &--active { background: rgba(255, 255, 255, 0.35); }
  105. }