Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,13 @@ All UI is DARK-ONLY. Remove/ignore any light mode patterns. Maintain a utilitari
7. Honest UI: If data is missing, show placeholder monospace text (e.g. `--` or `/path/not/found`).
8. Component Modularity: Always componentize reusable UI patterns. Never inline complex markup or styles. If a component doesn't exist, create it first, then use it. Keep everything modular and DRY (Don't Repeat Yourself).

## App Content

- Every app must have a one-sentence description that states what it does.
- Add the description to the app content frontmatter when the app has a local entry in `src/content/apps/`.
- Add the app folder name and description to `src/content/app-descriptions.ts` when the app comes from the external `badger/home` catalog.
- Keep external catalog keys aligned with the folder names used under `badge/apps/`.

## Color Tokens (Dark Only)
```
background: #010409
Expand Down
20 changes: 20 additions & 0 deletions src/content/app-descriptions.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
export const appDescriptions: Record<string, string> = {
'30_minutes_to_alpha_centauri': 'Pilot your ship through space to deliver your cargo.',
bee_amazed: 'Navigate your bee through the maze.',
clock: 'Clock with multiple styles, time zones, and more.',
demos: 'Collection of graphics for your badge. Shapes, text, sprites, and more.',
extend_a_squirrel: 'Snake-style game with a squirrel.',
ghost_signal: 'Follow the wave pattern as accurately as you can.',
hydrate: 'Have you had enough water today? Track it with this app!',
input_test: 'Hardware testing for badge inputs.',
iss_tracker: "Track the International Space Station's location in this app.",
life: "Conway's classic 'Game of Life' now on your badge.",
mass_storage: 'Use your badge as a USB storage device.',
plucky_cluck: 'Guide your chicken through obstacles in this Flappy Bird-style game.',
rogue: 'Turn-based dungeon crawler for your badge.',
sense: 'Sensor dashboard to display temp, humidity, pressure, light, and motion.',
sketchy_sketch: 'Draw on your badge with this app!',
snarky_sciuridae: 'A virtual pet for your badge.',
tennis: 'Battle back and forth in this Pong-style game.',
tomato: 'Pomodoro timer to help you focus.'
}
2 changes: 2 additions & 0 deletions src/pages/edit.astro
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import Layout from '@/layouts/Layout.astro'
import { BadgeManager } from '@/components/badge-manager'
import EditorTools from '@/components/editor-tools.astro'
import { getCollection } from 'astro:content'
import { appDescriptions as catalogDescriptions } from '@/content/app-descriptions'

const apps = await getCollection('apps')
// Catalog folders from badger/home are matched by content slug and by the badge
Expand All @@ -13,6 +14,7 @@ const appDescriptions = Object.fromEntries(
return [app.slug, ...(folder ? [folder] : [])].map((key) => [key, app.data.description])
})
)
Object.assign(appDescriptions, catalogDescriptions)
---

<Layout title="Badger Edit">
Expand Down
Loading