diff --git a/app/assets/images/add--meta.svg b/app/assets/images/add--meta.svg new file mode 100644 index 000000000..2903dc260 --- /dev/null +++ b/app/assets/images/add--meta.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/assets/images/refresh--meta.svg b/app/assets/images/refresh--meta.svg new file mode 100644 index 000000000..754d8bd8e --- /dev/null +++ b/app/assets/images/refresh--meta.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/assets/stylesheets/card-columns.css b/app/assets/stylesheets/card-columns.css index ed7edab33..0bd9ad14f 100644 --- a/app/assets/stylesheets/card-columns.css +++ b/app/assets/stylesheets/card-columns.css @@ -5,7 +5,7 @@ /* Card contents are resized via container queries. We're using #main here as the primary container so all cards have the same container reference */ #main:has(.card-columns) { - --cards-gap: min(1cqi, 0.7rem); + --cards-gap: min(1.5cqi, 1.5rem); --gradient-border: linear-gradient(to right,var(--color-canvas), var(--color-ink) 3%, var(--color-ink) 97%, var(--color-canvas)); --reserved-bubble-space: 0; --bubble-gap: 0.5rem; @@ -206,8 +206,7 @@ } @media (min-width: 640px) { - margin-inline: calc(var(--cards-gap) * -1); - padding-inline: calc(var(--cards-gap) * 2); + padding-inline: var(--cards-gap); } .cards__decoration { diff --git a/app/assets/stylesheets/cards.css b/app/assets/stylesheets/cards.css index 045c18840..c87ab3685 100644 --- a/app/assets/stylesheets/cards.css +++ b/app/assets/stylesheets/cards.css @@ -244,6 +244,13 @@ .card__meta-text { line-height: 1; white-space: nowrap; + + .icon { + --icon-size: 0.9em; + + margin-inline-end: 0.5ch; + vertical-align: top; + } } /* Top */ diff --git a/app/assets/stylesheets/drag_and_drop.css b/app/assets/stylesheets/drag_and_drop.css index aab167bfe..4af492a85 100644 --- a/app/assets/stylesheets/drag_and_drop.css +++ b/app/assets/stylesheets/drag_and_drop.css @@ -8,10 +8,9 @@ .drag-and-drop__hover-container { background-color: var(--color-selected-light); - border-radius: 0.1em; outline: 2px dashed var(--color-selected-dark); transition: background-color 200ms; - z-index: 3; + z-index: 1; .cards__heading { background-color: transparent; diff --git a/app/assets/stylesheets/filters.css b/app/assets/stylesheets/filters.css index da68a576c..737fed57c 100644 --- a/app/assets/stylesheets/filters.css +++ b/app/assets/stylesheets/filters.css @@ -1,5 +1,6 @@ @layer components { .filters { + position: relative; view-transition-name: "filters"; z-index: var(--z-popup); diff --git a/app/assets/stylesheets/icons.css b/app/assets/stylesheets/icons.css index e3c958f2e..8b1e2421d 100644 --- a/app/assets/stylesheets/icons.css +++ b/app/assets/stylesheets/icons.css @@ -18,6 +18,7 @@ } .icon--add { --svg: url("add.svg "); } + .icon--add--meta { --svg: url("add--meta.svg "); } .icon--arrow-left { --svg: url("arrow-left.svg "); } .icon--arrow-right { --svg: url("arrow-right.svg "); } .icon--arrow-up { --svg: url("arrow-up.svg "); } @@ -74,6 +75,7 @@ .icon--qr-code { --svg: url("qr-code.svg "); } .icon--reaction { --svg: url("reaction.svg "); } .icon--refresh { --svg: url("refresh.svg "); } + .icon--refresh--meta { --svg: url("refresh--meta.svg "); } .icon--remove-med { --svg: url("remove-med.svg "); } .icon--remove { --svg: url("remove.svg "); } .icon--rename { --svg: url("rename.svg "); } diff --git a/app/assets/stylesheets/trays.css b/app/assets/stylesheets/trays.css index a70760396..772085ebc 100644 --- a/app/assets/stylesheets/trays.css +++ b/app/assets/stylesheets/trays.css @@ -308,7 +308,7 @@ } .card__body { - margin-block-start: -0.3em; + margin-block-start: 0.2em; padding-block-end: 0; } @@ -397,7 +397,7 @@ .card__body { display: block; - margin: 0; + margin-block-start: 0.3em; } .workflow-stage--current { diff --git a/app/views/cards/display/common/_meta.html.erb b/app/views/cards/display/common/_meta.html.erb index 2a05a46ea..d5c1fdfb5 100644 --- a/app/views/cards/display/common/_meta.html.erb +++ b/app/views/cards/display/common/_meta.html.erb @@ -4,6 +4,7 @@ + <%= icon_tag "add--meta" %> Added <%= local_datetime_tag(card.created_at, style: :daysago) %> <% if card.drafted? %> (Draft) @@ -11,6 +12,7 @@ + <%= icon_tag "arrow-up" %> By <%= card.creator.familiar_name %> @@ -18,12 +20,14 @@ <% if card.creating? %>   <% else %> + <%= icon_tag "refresh--meta" %> Updated <%= local_datetime_tag(card.last_active_at, style: :daysago) %> <% end %> + <%= icon_tag "arrow-right" if card.assignees.any? %> <%= "Assigned to" if card.assignees.any? %> <%= card.assignees.map { |assignee| "#{assignee.familiar_name}" }.to_sentence.html_safe %> diff --git a/app/views/cards/display/preview/_meta.html.erb b/app/views/cards/display/preview/_meta.html.erb index 8d9940fa2..bb6193a44 100644 --- a/app/views/cards/display/preview/_meta.html.erb +++ b/app/views/cards/display/preview/_meta.html.erb @@ -1,3 +1,30 @@ -<%= render "cards/display/common/meta", card: card, preview: true do %> - <%= render "cards/display/preview/assignees", card: card %> -<% end %> +
+
+ <%= avatar_tag card.creator, tabindex: (local_assigns.key?(:preview) && local_assigns[:preview]) ? -1 : 0 %> +
+ + + <%= icon_tag "add--meta" %> + <%= local_datetime_tag(card.created_at, style: :daysago) %> + <% "(Draft)" if card.drafted? %> + + + + <%= icon_tag "arrow-up" %> + <%= card.creator.familiar_name %> + + + + <%= icon_tag "refresh--meta" %> + <%= local_datetime_tag(card.last_active_at, style: :daysago) %> + + + + <%= icon_tag "arrow-right" if card.assignees.any? %> + <%= card.assignees.map { |assignee| assignee.familiar_name }.to_sentence.html_safe %> + + +
+ <%= render "cards/display/preview/assignees", card: card %> +
+