From 092efe8c3a583ffcb675e9bf17b4716c0811f87b Mon Sep 17 00:00:00 2001
From: meetsu <96637888+klNuno@users.noreply.github.com>
Date: Wed, 14 Oct 2026 10:10:55 +0000
Subject: [PATCH] fix(island): a goal meter in the pill's line and cleaner
spacing
---
src/components/island/IslandBar.svelte | 34 +++++++++----------
src/components/island/deck/DeckTile.svelte | 4 ++-
.../island/music/MusicBubble.svelte | 13 +++----
.../island/sessions/SubAgentList.svelte | 6 ++++
src/lib/island/pose.ts | 11 ++++++
5 files changed, 44 insertions(+), 24 deletions(-)
diff --git a/src/components/island/IslandBar.svelte b/src/components/island/IslandBar.svelte
index 6c222a6..a448987 100644
--- a/src/components/island/IslandBar.svelte
+++ b/src/components/island/IslandBar.svelte
@@ -291,7 +291,7 @@
{line.text}
- {#if live}{#if live.kind !== 'live'}{/if}{live.name} {live.doing}{/if}
+ {#if live}{#if live.kind !== 'live'}{/if}{live.name} {#if live.progress !== null}{/if}{live.doing}{/if}
{#if ask && said}
{@const request = ask.request}
@@ -468,23 +465,26 @@
.live[data-paused] .doing {
opacity: 0.55;
}
- .progress {
- position: absolute;
- right: 16px;
- bottom: 3px;
- left: 16px;
- height: 2px;
+ /* The goal: how far the task list is, a short rounded meter before its count ("2/5"), in the line. */
+ .goal {
+ display: inline-block;
+ width: 28px;
+ height: 5px;
+ margin: 0 7px 0 3px;
overflow: hidden;
- border-radius: 1px;
- background: rgb(255 255 255 / 0.1);
+ border-radius: 999px;
+ background: var(--island-line-strong);
+ vertical-align: 1px;
}
- .progress i {
+ .goal i {
display: block;
- width: 100%;
height: 100%;
+ border-radius: inherit;
background: var(--island-working);
- transform-origin: left;
- transition: transform 400ms ease;
+ transition: width 400ms ease;
+ }
+ .live[data-tone='waiting'] .goal i {
+ background: var(--island-attention);
}
.dots {
display: flex;
diff --git a/src/components/island/deck/DeckTile.svelte b/src/components/island/deck/DeckTile.svelte
index 67160e4..c44d1bb 100644
--- a/src/components/island/deck/DeckTile.svelte
+++ b/src/components/island/deck/DeckTile.svelte
@@ -69,10 +69,12 @@
scrollbar-width: thin;
scrollbar-color: var(--island-line-strong) transparent;
}
- /* The island's cards, drawn inside a tile: the tile is their box. */
+ /* The island's cards, drawn inside a tile: the tile is their box, and the surface what fades over them. */
.content :global(.island-card) {
+ --island-card: var(--deck-tile);
padding: 0;
border: none;
background: none;
+ box-shadow: none;
}
diff --git a/src/components/island/music/MusicBubble.svelte b/src/components/island/music/MusicBubble.svelte
index 05b88eb..6a406ac 100644
--- a/src/components/island/music/MusicBubble.svelte
+++ b/src/components/island/music/MusicBubble.svelte
@@ -1,7 +1,7 @@