- @if (ExpandedRollId == entry.RollId)
+ @if (isExpanded)
{
@if (IsRollDetailLoading(entry.RollId))
diff --git a/RpgRoller/wwwroot/styles.css b/RpgRoller/wwwroot/styles.css
index 16728b5..c4eadc4 100644
--- a/RpgRoller/wwwroot/styles.css
+++ b/RpgRoller/wwwroot/styles.css
@@ -575,55 +575,137 @@ select:focus-visible {
margin: 0;
padding: 0;
display: grid;
- gap: 0.5rem;
+ gap: 0.7rem;
}
.log-entry {
- border: 1px solid #b8a37b;
- border-radius: 0.55rem;
- background: #f8f0de;
+ border: 1px solid color-mix(in srgb, var(--card-border) 84%, #ffffff 16%);
+ border-radius: 0.85rem;
+ background: color-mix(in srgb, var(--card) 96%, #ffffff 4%);
overflow: hidden;
+ box-shadow: 0 0.45rem 1.2rem rgba(60, 41, 12, 0.07);
+ transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}
.log-entry-toggle {
+ appearance: none;
width: 100%;
text-align: left;
- border: 0;
+ display: grid;
+ gap: 0.55rem;
+ border: 0 none transparent;
background: transparent;
- padding: 0.5rem;
+ border-radius: 0;
+ padding: 0.8rem 0.9rem 0.75rem;
color: inherit;
cursor: pointer;
+ box-shadow: none;
}
-.log-entry-toggle p {
- margin: 0.2rem 0;
+.log-entry:hover {
+ border-color: color-mix(in srgb, var(--accent) 28%, var(--card-border) 72%);
+ box-shadow: 0 0.7rem 1.55rem rgba(60, 41, 12, 0.11);
}
.log-entry.private-self {
- border-color: #6252a8;
- background: #ece7ff;
+ border-left: 0.35rem solid color-mix(in srgb, var(--private-self) 78%, #ffffff 22%);
}
.log-entry.private-gm {
- border-color: #9a5f1e;
- background: #fff1db;
+ border-left: 0.35rem solid color-mix(in srgb, var(--private-gm) 78%, #ffffff 22%);
+}
+
+.log-entry.public {
+ border-left: 0.35rem solid color-mix(in srgb, var(--public) 70%, #ffffff 30%);
+}
+
+.log-entry.private-generic {
+ border-left: 0.35rem solid color-mix(in srgb, var(--muted) 52%, #ffffff 48%);
+}
+
+.log-entry.expanded {
+ border-color: color-mix(in srgb, var(--accent) 38%, var(--card-border) 62%);
+}
+
+.log-entry-toggle:hover {
+ background: color-mix(in srgb, var(--card) 84%, #ffffff 16%);
+}
+
+.log-entry-toggle:focus-visible {
+ outline: 2px solid var(--focus);
+ outline-offset: -2px;
+}
+
+.log-entry-main {
+ display: grid;
+ grid-template-columns: minmax(0, 1fr) auto;
+ align-items: start;
+ gap: 0.8rem;
+}
+
+.log-entry-copy {
+ display: flex;
+ flex-wrap: wrap;
+ align-items: baseline;
+ column-gap: 0.38rem;
+ row-gap: 0.14rem;
+ min-width: 0;
+ line-height: 1.3;
+}
+
+.log-entry-actor,
+.log-entry-skill,
+.log-entry-character {
+ font-weight: 700;
+ color: var(--text);
+}
+
+.log-entry-action {
+ color: var(--muted);
+}
+
+.log-summary-row {
+ display: flex;
+ align-items: baseline;
+ justify-content: space-between;
+ gap: 0.8rem;
+ min-width: 0;
}
.log-meta {
display: flex;
justify-content: space-between;
- gap: 0.5rem;
+ gap: 0.75rem;
align-items: center;
+ color: var(--muted);
+ font-size: 0.86rem;
}
.log-summary {
- color: var(--muted);
- font-size: 0.92rem;
+ color: color-mix(in srgb, var(--muted) 88%, #000000 12%);
+ font-size: 0.9rem;
+ line-height: 1.35;
+ min-width: 0;
+}
+
+.log-disclosure {
+ flex: 0 0 auto;
+ font-size: 0.8rem;
+ font-weight: 700;
+ letter-spacing: 0.01em;
+ color: color-mix(in srgb, var(--accent) 75%, var(--text) 25%);
}
.log-detail {
- border-top: 1px solid rgba(0, 0, 0, 0.08);
- padding: 0 0.5rem 0.5rem;
+ margin: 0 0.65rem 0.65rem;
+ padding: 0.7rem 0.8rem 0.75rem;
+ border-top: 1px solid color-mix(in srgb, var(--card-border) 38%, transparent 62%);
+ background: color-mix(in srgb, #ffffff 42%, var(--card) 58%);
+ border-radius: 0.7rem;
+}
+
+.log-detail p {
+ margin: 0.35rem 0 0;
}
.badge {
@@ -643,23 +725,56 @@ select:focus-visible {
}
.badge.public {
- background: #e1f2e3;
+ background: color-mix(in srgb, var(--public) 14%, #ffffff 86%);
color: var(--public);
+ border-color: color-mix(in srgb, var(--public) 34%, transparent 66%);
}
.badge.private-self {
- background: #e8ddfb;
+ background: color-mix(in srgb, var(--private-self) 12%, #ffffff 88%);
color: var(--private-self);
+ border-color: color-mix(in srgb, var(--private-self) 30%, transparent 70%);
}
.badge.private-gm {
- background: #f9e2be;
+ background: color-mix(in srgb, var(--private-gm) 12%, #ffffff 88%);
color: var(--private-gm);
+ border-color: color-mix(in srgb, var(--private-gm) 30%, transparent 70%);
}
.badge.private-generic {
- background: #f4e8d4;
- color: #6f5832;
+ background: color-mix(in srgb, var(--muted) 12%, #ffffff 88%);
+ color: var(--muted);
+ border-color: color-mix(in srgb, var(--muted) 28%, transparent 72%);
+}
+
+@media (max-width: 720px) {
+ .log-entry-toggle {
+ gap: 0.6rem;
+ padding: 0.75rem 0.75rem 0.7rem;
+ }
+
+ .log-entry-main,
+ .log-summary-row,
+ .log-meta {
+ grid-template-columns: 1fr;
+ display: grid;
+ justify-content: stretch;
+ }
+
+ .log-summary-row,
+ .log-meta {
+ gap: 0.35rem;
+ }
+
+ .roll-total.inline {
+ justify-self: start;
+ }
+
+ .log-detail {
+ margin: 0 0.5rem 0.5rem;
+ padding: 0.65rem 0.7rem 0.7rem;
+ }
}
.connection {