Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
 
 
 
 
 

163 wiersze
4.7 KiB

  1. @use '../atoms/variables' as *;
  2. @use '../atoms/mixins' as *;
  3. // ─── Entry List Container ──────────────────────────────────────────────────
  4. .entry-list {
  5. @include card;
  6. overflow: hidden;
  7. transition: opacity 0.18s ease;
  8. &--fading { opacity: 0; }
  9. }
  10. // ─── Empty State ──────────────────────────────────────────────────────────
  11. .empty-state {
  12. @include card;
  13. padding: $space-6 $space-8;
  14. }
  15. .empty-state__title {
  16. font-size: $font-size-base;
  17. font-weight: $font-weight-bold;
  18. color: $color-text-dark;
  19. margin: 0 0 $space-2;
  20. }
  21. // ─── Footer mit Gesamtdauer ───────────────────────────────────────────────
  22. .entry-list__footer {
  23. display: flex;
  24. justify-content: flex-end;
  25. padding: $space-3 calc(#{$space-8} + #{$icon-btn-size} + #{$icon-btn-size} + #{$space-2} + #{$space-2});
  26. border-top: 1px solid $color-border;
  27. }
  28. .entry-list__total {
  29. font-size: $font-size-base;
  30. font-weight: $font-weight-bold;
  31. color: $color-text-dark;
  32. background: $color-card;
  33. border-radius: $radius-pill;
  34. padding: $space-1 $space-4;
  35. }
  36. // ─── Entry Row ────────────────────────────────────────────────────────────
  37. .entry-row {
  38. border-bottom: 1px solid rgba($color-border, 0.5);
  39. transition: opacity 0.28s ease, transform 0.28s ease, max-height 0.28s ease;
  40. &:last-child { border-bottom: none; }
  41. &--new {
  42. opacity: 0;
  43. transform: translateY(-6px);
  44. }
  45. &--removing {
  46. opacity: 0;
  47. transform: translateX(12px);
  48. max-height: 0;
  49. overflow: hidden;
  50. padding: 0;
  51. margin: 0;
  52. }
  53. }
  54. // ─── Anzeige-Modus ────────────────────────────────────────────────────────
  55. .entry-row__display {
  56. display: flex;
  57. align-items: center;
  58. justify-content: space-between;
  59. gap: $space-4;
  60. padding: $space-4 $space-8;
  61. &:hover {
  62. background: rgba(var(--color-primary-rgb), 0.05);
  63. .entry-row__btn { opacity: 1; }
  64. }
  65. }
  66. .entry-row__info {
  67. flex: 1;
  68. min-width: 0;
  69. }
  70. .entry-row__title {
  71. font-size: $font-size-base;
  72. font-weight: $font-weight-bold;
  73. color: $color-text-dark;
  74. @include text-truncate;
  75. }
  76. .entry-row__note {
  77. font-size: $font-size-sm;
  78. color: $color-text-muted;
  79. margin-top: 2px;
  80. @include text-truncate;
  81. }
  82. .entry-row__actions {
  83. display: flex;
  84. align-items: center;
  85. gap: $space-2;
  86. flex-shrink: 0;
  87. }
  88. .entry-row__badge {
  89. font-size: $font-size-sm;
  90. font-weight: $font-weight-bold;
  91. color: $color-text-dark;
  92. background: $color-card;
  93. border-radius: $radius-pill;
  94. padding: $space-1 $space-3;
  95. min-width: 48px;
  96. text-align: center;
  97. font-variant-numeric: tabular-nums;
  98. }
  99. .entry-row__btn {
  100. @include icon-btn;
  101. opacity: 0;
  102. color: $color-text-muted;
  103. svg { width: $icon-svg-size; height: $icon-svg-size; }
  104. &--edit:hover { background: rgba(var(--color-primary-rgb), 0.1); color: var(--color-primary); }
  105. &--delete:hover{ background: rgba($color-error, 0.1); color: $color-error; }
  106. @media (hover: none) { opacity: 1; }
  107. }
  108. // ─── Lock-Indikator (invoiced) ────────────────────────────────────────────
  109. .entry-row__lock-indicator {
  110. display: flex;
  111. align-items: center;
  112. justify-content: center;
  113. width: calc(#{$icon-btn-size} + #{$space-2} + #{$icon-btn-size});
  114. flex-shrink: 0;
  115. color: $color-text-dark;
  116. svg { width: $icon-svg-size; height: $icon-svg-size; pointer-events: none; }
  117. }
  118. // ─── Abgerechneter Eintrag ────────────────────────────────────────────────
  119. .entry-row--invoiced {
  120. .entry-row__title { color: $color-text-muted; font-weight: $font-weight-regular; }
  121. .entry-row__note { color: $color-text-light; }
  122. .entry-row__badge { color: $color-text-muted; background: rgba($color-card, 0.6); }
  123. }
  124. // ─── Bearbeiten-Modus ─────────────────────────────────────────────────────
  125. .entry-row__edit {
  126. padding: $space-4 $space-8;
  127. background: rgba(var(--color-primary-rgb), 0.04);
  128. border-top: 1px solid rgba($color-border, 0.5);
  129. }
  130. .entry-form__grid--inline {
  131. display: grid;
  132. grid-template-columns: 130px 1fr;
  133. gap: $space-3 $space-6;
  134. align-items: center;
  135. }