···11111212- show nsfw warnings
13131414-- big button card
1414+- card with big call to action button "create your blento"
15151616-- card with big call to action button
1616+- ask to fill with some default cards on page creation
17171818-- video card?
1818+- when adding images try to add them in a size that best fits aspect ratio
19192020-- allow setting base and accent color
2020+- onboarding?
21212222-- ask to fill with some default cards on page creation
2222+- switch sidebar to a quick list of available cards with search function
23232424-- when adding images try to add them in a size that best fits aspect ratio
2424+- test
2525+ - selfhosting
25262626-- onboarding
2727+- guestbook card
2828+2929+- onboarding?
3030+3131+- switch sidebar to a quick list of available cards with search function
3232+3333+- test
3434+ - selfhosting
3535+3636+- guestbook card
3737+3838+- analytics?
3939+4040+- refresh recently updated blentos (move to top of list, update profiles every 24 hours)
4141+4242+- server side oauth?
···99 // svelte-ignore state_referenced_locally
1010 let record = $state(data[item.cardType] as any);
11111212- let animated = $derived(emojiToNotoAnimatedWebp(record?.value?.status));
1212+ // Use card-specific emoji if set, otherwise fall back to PDS data
1313+ let emoji = $derived(item.cardData?.emoji ?? record?.value?.status);
1414+ let animated = $derived(emojiToNotoAnimatedWebp(emoji));
1315</script>
14161517<div class="flex h-full w-full items-center justify-center p-4">
1618 {#if animated}
1719 <img src={animated} alt="" class="h-full max-h-40 w-full object-contain" />
1818- {:else if record?.value?.status}
2020+ {:else if emoji}
1921 <div class="text-9xl">
2020- {record?.value?.status}
2222+ {emoji}
2123 </div>
2224 {:else}
2325 No status yet
+1-1
src/lib/cards/StatusphereCard/index.ts
···3636 }
3737 });
3838 delete item.cardData.hasUpdate;
3939- delete item.cardData.emoji;
3939+ // Keep item.cardData.emoji so each card can have its own status
4040 }
41414242 return item;