소스 검색

B6: narrative visual weight — events full weight, comments as footnotes

The supervision narrative's comment events carry .footnote on the WHOLE
event row (badge included): muted, smaller, tighter and without the
left rule, against the full-weight state events around it — the goal
feed reads as events-with-occasional-footnotes, the adjacent
event/comment pair subordinate rather than duplicated-looking. Comment
events stay body-first.
clanker 1 개월 전
부모
커밋
8ff7c1c2da
2개의 변경된 파일과 21개의 추가작업 그리고 8개의 파일을 삭제
  1. 12 0
      src/pages/app.css
  2. 9 8
      src/pages/goal_detail.html

+ 12 - 0
src/pages/app.css

@@ -343,6 +343,18 @@ nav .nav-goal { font-weight: 600; }
     padding-left: 0.6rem;
 }
 
+/* Plan 14 B6: comment events read as FOOTNOTES in the narrative —
+   the whole row (badge included) mutes and shrinks against the
+   full-weight state events around it, so the feed reads as
+   events-with-occasional-footnotes rather than a doubled list. */
+.goal-event.footnote {
+    border-left-color: transparent;
+    font-size: 0.85rem;
+    margin: 0.15rem 0;
+    opacity: 0.75;
+    padding-left: 0.6rem;
+}
+
 /* Plan 14 B5: the goal's Rules section rows and the task rows'
    required-capability badges. */
 .rule-card {

+ 9 - 8
src/pages/goal_detail.html

@@ -584,20 +584,21 @@
                 </details>
             </section>
 
-            <!-- The supervision narrative: one chronological feed of
-                 the goal agent's life (markdown bodies — reports land
-                 here whole). -->
+            <!-- The supervision narrative (plan 14 B6): state events
+                 at full weight, comment events as .footnote — the
+                 feed reads as events-with-occasional-footnotes. -->
             <section class="card">
                 <h3>Supervision narrative</h3>
                 <p stm-if="goal.events.length == 0" class="muted">Nothing yet — start the goal.</p>
-                <div stm-for-event-in="goal.events" class="goal-event">
+                <div stm-for-event-in="goal.events"
+                     stm-attribute.class="'goal-event' + (event.kind == 'comment' ? ' footnote' : '')">
                     <span class="muted" stm-text="event.at_display">when</span>
                     <span stm-attribute.class="'badge badge-goal-' + event.kind"
                           stm-text="event.kind.replace('-', ' ')">kind</span>
-                    <!-- Comment events render as footnotes (plan 13 B4):
-                         the body leads, muted and smaller. -->
-                    <div stm-attribute.class="'md goal-event-text' + (event.kind == 'comment' ? ' footnote' : '')"
-                         stm-markdown="event.text">text</div>
+                    <!-- Comment events render as footnotes (plan 13 B4
+                         + 14 B6): the whole row is muted and smaller,
+                         the body-first text leading. -->
+                    <div class="md goal-event-text" stm-markdown="event.text">text</div>
                     <a stm-if="event.task_id > 0"
                        stm-attribute.href="'/tasks/' + event.task_id">task</a>
                 </div>