Rework min card design and meta section for all cards
This commit is contained in:
@@ -25,31 +25,26 @@
|
||||
--text-small: 1.1em;
|
||||
|
||||
aspect-ratio: unset;
|
||||
border: 1px solid var(--color-subtle) !important;
|
||||
line-height: 1.2;
|
||||
padding: calc(var(--block-space) * 1.5) var(--block-space);
|
||||
padding: 0;
|
||||
margin: var(--block-space) auto calc(var(--block-space) * 1.5);
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
border-color: var(--color-subtle-dark) !important;
|
||||
}
|
||||
|
||||
.card__title {
|
||||
margin-block-start: 0.1em;
|
||||
min-block-size: 0;
|
||||
}
|
||||
|
||||
.card__stuff {
|
||||
.avatar {
|
||||
block-size: 2em;
|
||||
inline-size: 2em;
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.card__body {
|
||||
padding-inline: 0;
|
||||
}
|
||||
|
||||
.avatar {
|
||||
block-size: 3em;
|
||||
inline-size: 3em;
|
||||
margin-block-start: -0.2em;
|
||||
.card--mini & {
|
||||
padding: 0 var(--inline-space-double) var(--block-space);
|
||||
}
|
||||
}
|
||||
|
||||
.card__tags {
|
||||
@@ -91,6 +86,11 @@
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.avatar {
|
||||
block-size: 2.75em;
|
||||
inline-size: 2.75em;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
--border-color: var(--color-subtle-dark);
|
||||
--border-size: 1px;
|
||||
@@ -393,7 +393,7 @@
|
||||
--border-size: 1px;
|
||||
--row-gap: 0.25em;
|
||||
|
||||
margin-inline-start: var(--inline-space-double);
|
||||
margin-inline: var(--inline-space-double);
|
||||
|
||||
strong {
|
||||
font-weight: 900;
|
||||
@@ -402,6 +402,10 @@
|
||||
.separator {
|
||||
height: calc(2lh + 2ex);
|
||||
}
|
||||
|
||||
.card--mini & {
|
||||
margin-inline-start: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.card__move-button {
|
||||
|
||||
@@ -2,4 +2,10 @@ module UsersHelper
|
||||
def prepend_current_user_to(users_scope)
|
||||
users_scope.to_a.prepend(Current.user).uniq
|
||||
end
|
||||
|
||||
def familiar_name_for(user)
|
||||
names = user.name.split
|
||||
return user.name if names.length == 1
|
||||
"#{names.first} #{names[1..].map { |n| "#{n[0]}." }.join}"
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1 +1 @@
|
||||
<%= turbo_stream.replace([ @card, :assignees ], partial: "cards/display/perma/assignees", locals: { card: @card }) %>
|
||||
<%= turbo_stream.replace([ @card, :meta ], partial: "cards/display/perma/meta", locals: { card: @card }) %>
|
||||
|
||||
@@ -1,19 +1,20 @@
|
||||
<div class="card card--mini shadow border flex gap position-relative txt-align-start full-width border-radius" style="view-transition-name: <%= dom_id(card, :ticket) %>;">
|
||||
<%= avatar_image_tag card.creator, class: "avatar" %>
|
||||
<div class="card card--mini border flex flex-column gap position-relative txt-align-start full-width border-radius fill-white" style="--card-color: <%= card.color %>; view-transition-name: <%= dom_id(card, :ticket) %>;">
|
||||
<header class="card__header flex align-center gap min-width">
|
||||
<span class="card__collection txt-uppercase overflow-ellipsis txt-reversed">
|
||||
<%= card.collection.name %>
|
||||
</span>
|
||||
|
||||
<div class="overflow-ellipsis"><%= render "cards/display/mini/tags", card: card %></div>
|
||||
</header>
|
||||
|
||||
<div class="card__body flex flex-column gap-half full-width flex-item-grow min-width max-width">
|
||||
<h3 class="card__title">
|
||||
<%= card_title(card) %>
|
||||
</h3>
|
||||
|
||||
<div class="txt-small overflow-ellipsis txt-uppercase"><%= "Added to #{card.collection.name} by #{card.creator.name}" %>
|
||||
<%= local_datetime_tag(card.created_at, style: :daysago) %>
|
||||
<div class="flex align-center gap min-width margin-block-end-half">
|
||||
<h3 class="card__title overflow-ellipsis">
|
||||
<%= card_title(card) %>
|
||||
</h3>
|
||||
</div>
|
||||
|
||||
<div class="card__stuff flex align-center gap">
|
||||
<%= render "cards/display/mini/assignees", card: card %>
|
||||
<div class="overflow-ellipsis"><%= render "cards/display/mini/tags", card: card %></div>
|
||||
</div>
|
||||
<%= render "cards/display/mini/meta", card: card %>
|
||||
</div>
|
||||
|
||||
<%= link_to collection_card_path(card.collection, card), class: "card__link" do %>
|
||||
|
||||
@@ -35,7 +35,6 @@
|
||||
</div>
|
||||
|
||||
<footer class="card__footer full-width flex align-start gap">
|
||||
<%= render "cards/display/perma/people", card: card %>
|
||||
<%= render "cards/display/perma/meta", card: card %>
|
||||
</footer>
|
||||
|
||||
|
||||
@@ -21,8 +21,7 @@
|
||||
<%= render "cards/stagings/stages", card: card if card.doing? %>
|
||||
</div>
|
||||
|
||||
<footer class="card__footer full-width flex align-start gap">
|
||||
<%= render "cards/display/preview/people", card: card %>
|
||||
<footer class="card__footer">
|
||||
<%= render "cards/display/preview/meta", card: card %>
|
||||
</footer>
|
||||
|
||||
|
||||
@@ -1,31 +1,33 @@
|
||||
<div class="card__meta flex txt-tight-lines txt-uppercase">
|
||||
<div class="flex flex-column gap txt-align-end">
|
||||
<span class="pad-inline overflow-ellipsis"><%= card.creating? ? "Added" : "Updated" %>
|
||||
<div class="card__meta flex align-center txt-tight-lines txt-uppercase max-width min-width" id="<%= dom_id(card, :meta) %>">
|
||||
<%= avatar_image_tag card.creator, class: "avatar margin-inline-end" %>
|
||||
|
||||
<div class="flex flex-column gap txt-align-start">
|
||||
<span class="pad-inline overflow-ellipsis">Added
|
||||
<%= local_datetime_tag(card.created_at, style: :daysago) %>
|
||||
</span>
|
||||
|
||||
<hr class="full-width separator--horizontal unpad margin-none">
|
||||
|
||||
<span class="pad-inline overflow-ellipsis">
|
||||
Reported by <strong><%= familiar_name_for(card.creator) %></strong>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<hr class="separator margin-none unpad">
|
||||
|
||||
<div class="flex flex-column gap txt-align-start overflow-ellipsis">
|
||||
<span class="pad-inline overflow-ellipsis"><%= card.creating? ? "Created" : "Updated" %>
|
||||
<%= local_datetime_tag(card.updated_at, style: :daysago) %>
|
||||
</span>
|
||||
|
||||
<hr class="full-width separator--horizontal unpad margin-none">
|
||||
|
||||
<% if card.creating? %>
|
||||
<span class="pad-inline overflow-ellipsis">Expires
|
||||
<%= local_datetime_tag(card.auto_close_at, style: :indays) %>
|
||||
</span>
|
||||
<% else %>
|
||||
<span class="pad-inline overflow-ellipsis">Added
|
||||
<%= local_datetime_tag(card.created_at, style: :daysago) %>
|
||||
</span>
|
||||
<% end %>
|
||||
<span class="pad-inline overflow-ellipsis">
|
||||
Assigned to <%= card.assignees.any? ? card.assignees.map { |assignee| "<strong>#{familiar_name_for(assignee)}</strong>" }.to_sentence.html_safe : "no one" %>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<hr class="separator margin-none unpad">
|
||||
|
||||
<div class="flex flex-column gap txt-align-start">
|
||||
<span class="pad-inline overflow-ellipsis">
|
||||
<strong><%= card.comments_count %></strong> <%= card.comments_count == 1 ? "comment" : "comments" %>
|
||||
</span>
|
||||
|
||||
<hr class="full-width separator--horizontal unpad margin-none">
|
||||
|
||||
<div class="margin-inline-start flex-item-no-shrink">
|
||||
<%= yield %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
<div class="card__people flex gap margin-inline-start">
|
||||
<div class="flex flex-column align-center">
|
||||
<span class="txt-uppercase">Reported</span>
|
||||
<%= avatar_tag card.creator, class: "avatar" %>
|
||||
</div>
|
||||
|
||||
<div class="card__assignees flex flex-column align-center">
|
||||
<span class="txt-uppercase">Assigned</span>
|
||||
|
||||
<%= yield %>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,3 @@
|
||||
<%= render "cards/display/common/meta", card: card do %>
|
||||
<%= render "cards/display/mini/assignees", card: card %>
|
||||
<% end %>
|
||||
@@ -1,3 +0,0 @@
|
||||
<%= turbo_frame_tag dom_id(card, :boosts) do %>
|
||||
<%= render "cards/boosts/boosts", card: card %>
|
||||
<% end %>
|
||||
@@ -1,3 +1,3 @@
|
||||
<%= render "cards/display/common/meta", card: card do %>
|
||||
<%= render "cards/display/perma/boosts", card: card %>
|
||||
<%= render "cards/display/perma/assignees", card: card %>
|
||||
<% end %>
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
<%= render "cards/display/common/people", card: card do%>
|
||||
<%= render "cards/display/perma/assignees", card: card %>
|
||||
<% end %>
|
||||
@@ -1,8 +0,0 @@
|
||||
<%= turbo_frame_tag dom_id(card, :boosts) do %>
|
||||
<%= tag.div class: "pad-inline flex align-center gap" do %>
|
||||
<span class="overflow-ellipsis">
|
||||
<strong><%= card.boosts_count %></strong>
|
||||
<span><%= card.boosts_count == 1 ? "boost" : "boosts" %></span>
|
||||
</span>
|
||||
<% end %>
|
||||
<% end %>
|
||||
@@ -1,3 +1,3 @@
|
||||
<%= render "cards/display/common/meta", card: card do %>
|
||||
<%= render "cards/display/preview/boosts", card: card %>
|
||||
<%= render "cards/display/preview/assignees", card: card %>
|
||||
<% end %>
|
||||
|
||||
Reference in New Issue
Block a user