Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 
 
 
 

105 lignes
3.4 KiB

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