From 267a5f11fadefca0964f881527c545baa8583b62 Mon Sep 17 00:00:00 2001 From: Andy Smith Date: Mon, 11 Aug 2025 15:54:59 -0500 Subject: [PATCH] Stack meta info on mobile --- app/assets/stylesheets/cards.css | 99 +++++++++++++------ app/assets/stylesheets/trays.css | 4 +- app/helpers/avatars_helper.rb | 7 +- .../cards/display/common/_assignees.html.erb | 2 +- app/views/cards/display/common/_meta.html.erb | 29 +++--- .../cards/display/mini/_assignees.html.erb | 8 +- .../display/public_preview/_meta.html.erb | 31 +++--- 7 files changed, 114 insertions(+), 66 deletions(-) diff --git a/app/assets/stylesheets/cards.css b/app/assets/stylesheets/cards.css index bf35337d6..bcd8e8e2a 100644 --- a/app/assets/stylesheets/cards.css +++ b/app/assets/stylesheets/cards.css @@ -245,21 +245,10 @@ } .card__meta { - --border: 1px solid var(--card-color); + --meta-border: 1px solid var(--card-color); - align-items: center; - display: flex; max-inline-size: 100%; min-inline-size: 0; - } - - .card__meta-grid { - display: grid; - grid-template-columns: auto auto; - margin-inline-start: var(--inline-space); - } - - .card__meta-item { text-transform: uppercase; strong, @@ -267,27 +256,77 @@ font-weight: 900; } - &:nth-child(odd) { - border-inline-end: var(--border); - padding-inline-end: var(--inline-space); - } - - &:nth-child(even) { - padding-inline-start: var(--inline-space); - } - - /* First two */ - &:nth-child(-n+2) { - border-block-end: var(--border); - padding-block-end: 0.25ch; - } - - /* Last two */ - &:nth-child(n+3) { - padding-block-start: 0.25ch; + @media (min-width: 640px) { + align-items: center; + display: flex; } } + .card__meta-grid { + column-gap: var(--inline-space); + display: grid; + } + + .card__meta-grid--author { + grid-template-areas: + "avatar top" + "avatar bottom"; + grid-template-columns: auto 1fr; + + .card__meta-author { grid-area: avatar; } + .card__meta-text--added { grid-area: top; } + .card__meta-text--author { grid-area: bottom; } + + @media (min-width: 640px) { + border-inline-end: var(--meta-border); + + .card__meta-text { + padding-inline-end: var(--inline-space); + } + } + } + + .card__meta-grid--assigned { + grid-template-areas: + "top avatar" + "bottom avatar"; + grid-template-columns: 1fr auto; + + .card__meta-assignees { grid-area: avatar; } + .card__meta-text--updated { grid-area: top; } + .card__meta-text--assigned { grid-area: bottom; } + + .card__meta-assignees { + display: flex; + flex-shrink: 0; + } + + @media (min-width: 640px) { + .card__meta-text { + padding-inline-start: var(--inline-space); + } + } + } + + .card__meta-text--added, + .card__meta-text--updated { + border-block-end: var(--meta-border); + } + + .card__meta-author { + griad-area: avatar; + } + + + + + + + + + + + .card__timestamp { opacity: 0.66; } diff --git a/app/assets/stylesheets/trays.css b/app/assets/stylesheets/trays.css index c0caf8118..925f2e34f 100644 --- a/app/assets/stylesheets/trays.css +++ b/app/assets/stylesheets/trays.css @@ -367,7 +367,7 @@ .avatar, .card__tags, .card__meta .btn, - .card__meta-item:not(.card__meta-item--updated), + .card__meta-text:not(.card__meta-text--updated), .card__stages, .card__steps, .card__closed { @@ -405,7 +405,7 @@ z-index: 1; } - .card__meta-item--updated { + .card__meta-text--updated { border: 0; font-size: var(--text-x-small); opacity: 0.66; diff --git a/app/helpers/avatars_helper.rb b/app/helpers/avatars_helper.rb index eb05baf84..99cd57efa 100644 --- a/app/helpers/avatars_helper.rb +++ b/app/helpers/avatars_helper.rb @@ -11,10 +11,11 @@ module AvatarsHelper end def avatar_tag(user, hidden_for_screen_reader: false, **options) - link_to user_path(user), class: "avatar btn btn--circle", data: { turbo_frame: "_top" }, + link_to user_path(user), class: class_names("avatar btn btn--circle", options.delete(:class)), data: { turbo_frame: "_top" }, aria: { hidden: hidden_for_screen_reader, label: user.name }, - tabindex: hidden_for_screen_reader ? -1 : nil do - avatar_image_tag(user, **options) + tabindex: hidden_for_screen_reader ? -1 : nil, + **options do + avatar_image_tag(user) end end diff --git a/app/views/cards/display/common/_assignees.html.erb b/app/views/cards/display/common/_assignees.html.erb index 614a976e0..b02fb1c60 100644 --- a/app/views/cards/display/common/_assignees.html.erb +++ b/app/views/cards/display/common/_assignees.html.erb @@ -1,4 +1,4 @@ -
+
<% card.assignees.each do |assignee| %> <%= avatar_tag assignee %> <% end %> diff --git a/app/views/cards/display/common/_meta.html.erb b/app/views/cards/display/common/_meta.html.erb index 298e266f9..8d03eba4a 100644 --- a/app/views/cards/display/common/_meta.html.erb +++ b/app/views/cards/display/common/_meta.html.erb @@ -1,14 +1,23 @@
- <%= avatar_tag card.creator %> -
- +
+ <%= avatar_tag card.creator, class: "card__meta-author" %> + + Added <%= local_datetime_tag(card.created_at, style: :daysago) %> <% if card.drafted? %> (Draft) <% end %> - + + + By <%= card.creator.familiar_name %> + +
+ +
+ + <% if card.creating? %>   <% else %> @@ -16,17 +25,15 @@ <%= local_datetime_tag(card.last_active_at, style: :daysago) %> <% end %> - - By <%= card.creator.familiar_name %> - - + + <%= card.assignees.any? ? "Assigned to" : "Not assigned" %> <%= card.assignees.map { |assignee| "#{assignee.familiar_name}" }.to_sentence.html_safe %> -
-
- <%= yield %> +
+ <%= yield %> +
diff --git a/app/views/cards/display/mini/_assignees.html.erb b/app/views/cards/display/mini/_assignees.html.erb index 37d89c671..9e53dfc38 100644 --- a/app/views/cards/display/mini/_assignees.html.erb +++ b/app/views/cards/display/mini/_assignees.html.erb @@ -1,7 +1,5 @@ <%= turbo_frame_tag card, :assignees do %> -
- <% card.assignees.each do |assignee| %> - <%= avatar_tag assignee %> - <% end %> -
+ <% card.assignees.each do |assignee| %> + <%= avatar_tag assignee %> + <% end %> <% end %> diff --git a/app/views/cards/display/public_preview/_meta.html.erb b/app/views/cards/display/public_preview/_meta.html.erb index 80ef0c8f8..5ba2f57bd 100644 --- a/app/views/cards/display/public_preview/_meta.html.erb +++ b/app/views/cards/display/public_preview/_meta.html.erb @@ -1,28 +1,31 @@
- <%= avatar_preview_tag card.creator %> +
+ <%= avatar_preview_tag card.creator %> -
- + Added <%= local_datetime_tag(card.created_at, style: :daysago) %> <% if card.drafted? %> (Draft) <% end %> - - Updated - <%= local_datetime_tag(card.last_active_at, style: :daysago) %> - - + + By <%= card.creator.familiar_name %> - - <%= card.assignees.any? ? "Assigned to" : "Not assigned" %> - <%= card.assignees.map { |assignee| "#{assignee.familiar_name}" }.to_sentence.html_safe %> -
-
-
+
+ + Updated + <%= local_datetime_tag(card.last_active_at, style: :daysago) %> + + + + <%= card.assignees.any? ? "Assigned to" : "Not assigned" %> + <%= card.assignees.map { |assignee| "#{assignee.familiar_name}" }.to_sentence.html_safe %> + + +
<% card.assignees.each do |assignee| %> <%= avatar_preview_tag assignee %> <% end %>