smithery.ai

inspirational-text

Manage Above & Beyond style inspirational messages that appear during breathing. Add new messages, adjust timing/styling, debug sync issues.

First seen Apr 4, 2026

Installation

$ npx skills add https://smithery.ai

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery.ai · top by installs.

npx skills add https://smithery.ai

Browse all from smithery.ai

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Skill metadata

Parsed from SKILL.md frontmatter.

Allowed toolsRead, Write, Edit, Glob, Grep

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 3,898 B
  • docs SUMMARY.md 166 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 1 installs

SKILL.md

Inspirational Text Skill

Manage the breathing-synchronized inspirational messages displayed above and below the globe.

Quick Reference

File Purpose
src/config/inspirationalMessages.ts Message content + add new quotes
src/components/InspirationalText.tsx Component + animation logic
src/components/GaiaUI.tsx Parent container (renders InspirationalText)

Adding New Messages

Edit src/config/inspirationalMessages.ts:

export const MESSAGES: InspirationalMessage[] = [
  // Add your message here:
  { top: 'Your Top Line', bottom: 'Your Bottom Line' },
];

Message Criteria

DO:

  • Keep SHORT: 2-4 words per line
  • Use PRESENT TENSE: "We Are" not "We Were"
  • Focus on: Unity, Presence, Positivity
  • Make it UNIVERSAL (no cultural/religious specifics)
  • Use SIMPLE vocabulary

DON'T:

  • Use negative words: "don't", "can't", "never"
  • Use demanding imperatives: "You Must", "You Should"
  • Make lines too long (breaks visual balance)
  • Use questions

Good vs Bad Examples

// ✓ GOOD
{ top: 'We Are All', bottom: 'We Need' }      // Unity, complete thought
{ top: 'This Moment', bottom: 'Is Ours' }     // Presence, simple

// ✗ BAD
{ top: 'You Should Not', bottom: 'Be Afraid' }  // Negative, imperative
{ top: 'What If We', bottom: 'Could Fly?' }     // Question, abstract

Animation Timing

Text syncs with the 16-second breathing cycle:

|-- Inhale (3s) --|-- Hold-in (5s) --|-- Exhale (5s) --|-- Hold-out (3s) --|
|   fade in 0→1   |   visible (1)    |  fade out 1→0   |   hidden (0)      |

Configuration:

  • CYCLESPERMESSAGE = 3 — Quotes rotate every 3 cycles (~48s)

Styling Tokens

In InspirationalText.tsx:

const colors = {
  text: '#5a4d42',                           // Text color
  textGlow: 'rgba(201, 160, 108, 0.7)',      // Warm glow
  subtleGlow: 'rgba(255, 252, 245, 0.95)',   // Light halo
  backdropInner: 'rgba(253, 251, 247, 0.4)', // Center gradient
  backdropOuter: 'rgba(253, 251, 247, 0)',   // Edge (transparent)
};

Debugging Sync Issues

If text doesn't appear/disappear correctly:

  1. Check RAF loop in InspirationalText.tsx:

- topWrapperRef and bottomWrapperRef must have opacity set - Both wrappers animate independently (not parent container)

  1. Verify phase calculation:

- Phase 0 (Inhale): opacity increases 0→1 - Phase 1 (Hold-in): opacity = 1 - Phase 2 (Exhale): opacity decreases 1→0 - Phase 3 (Hold-out): opacity = 0

  1. Backdrop-filter gotcha:

- backdrop-filter doesn't inherit parent opacity - Must animate opacity on the element WITH backdrop-filter - That's why we use refs on wrappers, not container

Performance Notes

  • Uses RAF loop (60fps) with direct DOM updates
  • No React state changes during animation
  • Quote rotation uses React state (only every ~48s)
  • Backdrop blur is GPU-accelerated

Common Tasks

Change rotation speed

// src/config/inspirationalMessages.ts
export const CYCLES_PER_MESSAGE = 5;  // 5 cycles = ~80 seconds

Adjust text size

// src/components/InspirationalText.tsx
fontSize: 'clamp(1.6rem, 3.5vw, 2.8rem)',  // min, preferred, max

Change backdrop intensity

backdropInner: 'rgba(253, 251, 247, 0.5)',  // Increase 0.4 → 0.5
backdropFilter: 'blur(4px)',                 // Increase 3px → 4px

Adjust vertical position

gap: 'min(38vh, 260px)',  // Space between top/bottom text
marginTop: '-3vh',        // Nudge top text up
marginBottom: '-3vh',     // Nudge bottom text down