Dg floating tray
A menagerie of Agent Skills for AI coding agents
npx -y skills add palol/skills-zoo --skill dg-floating-trayAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 27 days oldThe repository was created 27 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Add a bottom floating dock + expandable tray to an Obsidian Digital Garden (Eleventy) site. Use when a user of the oleeskild digital-garden plugin wants a fixed bottom navigation control: an always-visible primary dock (theme toggle, search, random, more) plus a tappable tray of secondary links (nav, social, RSS, QR). Upstream-safe, drops into user-owned component and style paths, no core/layout edits. Trigger on: floating dock, floating tray, bottom nav bar, mobile dock, digital garden navigation UI.
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
7.8 KB, as published. Nobody here has run it
Digital Garden Floating Tray
Adds a fixed bottom floating control to an Obsidian Digital Garden (Eleventy) site: an always-visible primary dock (random, theme toggle, search, "more") plus an expandable tray of secondary links. Fully keyboard + screen-reader accessible, theme-aware, responsive (centered pill on desktop, full-width rail on mobile).
Everything lives in user-owned paths, so upstream git pull never overwrites it.
When to Use This Skill
Use when a Digital Garden (oleeskild digital-garden plugin + Eleventy) user wants:
- A persistent bottom navigation dock / tray / mobile dock.
- Quick access to theme toggle, search, random page, plus a grid of extra links.
- A drop-in that doesn't touch plugin core or layout files.
Do not use for Quartz, Astro, or non-DG sites - the auto-include mechanism and theme tokens are DG-specific. (Adaptable, but out of scope here.)
Quick Install (agent-driven, for non-technical users)
If the user just wants this installed and isn't editing code themselves, run this hands-off flow and keep explanations light:
- Verify prerequisites (below). If the repo doesn't match, say so plainly and stop.
- Copy
assets/zzz-floating-dock.njk→src/site/_includes/components/user/common/footer/zzz-floating-dock.njk. - Append
assets/floating-tray.scsstosrc/site/styles/custom-style.scss. - Pause and ask the user, in plain language, which links they want in the tray (internal
pages, external/social, RSS, QR) and their URLs. Edit the
.njkaccordingly - update thewireExternalButton('id','url')calls, remove unused items. - Build (
npm run buildor the dev server) and give the user a preview URL. - Walk the user through the visual checks in
references/verify.mdin everyday terms ("tap the ••• button - does a tray open?"). - Only commit/push if the user asks.
Afterward, the user can request changes conversationally ("add a Guestbook link", "make icons bigger") - apply them by editing the same two files.
Prerequisites (verify first)
- Repo uses the DG plugin with Eleventy; site source under
src/site/. - User-component autoloading exists:
src/site/_data/dynamics.jsglobscomponents/user/common/<slot>/*.njk, sorts alphabetically, injects into layout slots. Confirm thefooterslot is iterated ({% for imp in dynamics.common.footer %}). - A user stylesheet is compiled - typically
src/site/styles/custom-style.scss. Confirm it's imported into the build. - DG theme tokens available:
--background-secondary,--background-modifier-border,--text-muted,--text-accent,--input-shadow,--link-color.
If any differs, adapt paths but keep the structure.
Instructions
Follow these steps. Full annotated source is in references/; ready-to-copy files are in assets/.
1. Install the component
Copy assets/zzz-floating-dock.njk to:
src/site/_includes/components/user/common/footer/zzz-floating-dock.njk
The zzz- prefix forces alphabetical sort last → renders after all other footer
partials. The autoloader picks it up with no layout edits.
2. Install the styles
Append the contents of assets/floating-tray.scss to src/site/styles/custom-style.scss
(or @use it as a partial). See references/styles.md for a section-by-section explanation.
3. Customize the links
In the copied .njk:
- Tray items (
#tray-expandable): edit the<a>/<button>entries. Internal nav =<a href="/path/">; external/action =<button type="button" id="...">wired in the script block. Each item needsclass="floating-dock__item",aria-label,title, an icon, and a<span class="floating-dock__caption">label. - External buttons: update the
wireExternalButton('id', 'url')calls to your URLs (or delete). Remove the QR handler if unused. - Primary dock (
.floating-dock--primary): keep random/theme/search/more, or trim. Search stays gated behind{% if settings.dgEnableSearch === true %}.
Item count is read at runtime to size the grid - no config needed when you add/remove items.
4. Icons
Uses Lucide via <i class="svg-icon" icon-name="NAME"> (DG bundles Lucide). For brand marks,
paste inline <svg class="footer-icon" ...> (filled) or class="svg-icon" (stroked). Always
keep aria-hidden="true" on the icon and real text in aria-label.
5. Build + verify
npm run build # or: npx @11ty/eleventy --serve
Run the checklist in references/verify.md.
Key Design Points
- No layout / core edits - autoload via the
common/footerslot; survives upstream updates. - Theme-token styling - light/dark handled by DG CSS variables automatically.
- A11y -
wireDockActionbinds click + Enter/Space;role="button"spans operable;#more-toggleexposesaria-expanded+aria-controls. - Responsive grid - JS sets
--dg-floating-tray-column-count/-row-countfrom item count and viewport (6-wide desktop, 4-wide mobile, 3-wide under 380px). - Search integration - reuses DG's
window.toggleSearch(); dock hides while search overlay is open.
Reference Files
references/component.md- annotated walkthrough of the.njkmarkup + three script blocks.references/styles.md- annotated SCSS (base/desktop, mobile rail offset math, narrow phones).references/verify.md- post-build QA checklist.references/tuning.md- every adjustable knob (sizes, radii, rows/columns, breakpoints).
All safe size/shape tweaks are consolidated in the >>> TUNING KNOBS <<< block at the top of
assets/floating-tray.scss. Rows/columns auto-size from item count; caps live in the .njk JS.
See references/tuning.md before adjusting.
Assets
assets/zzz-floating-dock.njk- drop-in component (generic links/URLs to customize).assets/floating-tray.scss- drop-in styles.
Risk Level
L1 (low). This skill writes two files into the user's repo - a .njk component and an
append to the user stylesheet. It runs no shell commands, ships no secrets, makes no network
calls, and every change is reversible with git. The only build step it suggests (npm run build) is the site's own build. Review the two assets before committing.
Validate & Package (for maintainers)
Before sharing an edited version:
npx skills-ref validate skills/dg-floating-tray/ # pass the directory, not a file
cd .. && zip -r dg-floating-tray.zip dg-floating-tray # bundled resources => zip the whole dir
Keep it ≤100 files / ≤70 MB. Frontmatter stays spec-compliant: only name, description,
license, compatibility, metadata, allowed-tools at top level - custom keys (author,
version, risk-level) nest under metadata:.
Distributing This Skill
- Git (source of truth): commit the
dg-floating-tray/dir; users clone into their agent's skills dir (e.g.~/.claude/skills/or a shared~/.agents/skills/). - Remote via MCP: drop the dir into a GitHub skills repo and serve it with
Skills Over MCP - users add one
mcpServersconfig line and get updates on every push. Spec: agentskills.io + the SEP-2640skill://extension.