A Tailwind CSS v4 plugin for terminal and aerospace mission control UI components. Pure CSS, framework-agnostic, zero JavaScript runtime.
# Using bun bun add /meowtern # Using npm npm install /meowtern # Using pnpm pnpm add /meowtern
@import "tailwindcss"; @import "@alexcatdad/meowtern/meowtern.css";
For quick testing or prototyping, use the pre-compiled stylesheet. This includes all classes without tree-shaking, so use the npm install path for production:
<link rel="stylesheet" href="https://alexcatdad.github.io/meowtern/meowtern.min.css">
Here's a minimal example to get you started:
<div class="tui-panel tui-p-panel">
<h3>System Status</h3>
<div class="tui-specs">
<div class="tui-spec">
<span class="tui-spec-label">Status</span>
<span class="tui-badge tui-badge-success tui-badge-no-dot">ONLINE</span>
</div>
<div class="tui-spec">
<span class="tui-spec-label">CPU</span>
<span class="tui-spec-value">45%</span>
</div>
</div>
<button class="tui-btn tui-btn-primary tui-btn-sm">View Details</button>
</div>
inline_code()
| Class | Description |
|---|---|
.tui-text | Base text style with proper color |
.tui-text-dim | Dimmed/muted text |
.tui-text-bold | Bold weight text |
.tui-text-success | Green success color |
.tui-text-warning | Yellow warning color |
.tui-text-error | Red error color |
.tui-text-info | Cyan info color |
.tui-label | Uppercase technical label |
.tui-code | Inline code styling |
System log: All subsystems reporting nominal. Telemetry data within expected parameters.
Warning: Fuel reserves below 20%. Recommend initiating conservation protocol.
| Class | Description |
|---|---|
.tui-h1 – .tui-h6 | Heading hierarchy (display → mono at h4) |
.tui-link | Accent-colored terminal link |
.tui-link-subtle | Muted link, accent on hover |
.tui-link-nav | Navigation link, underline on hover |
.tui-list | Unordered list with ▸ markers |
.tui-list-ordered | Ordered list with zero-padded counters |
.tui-blockquote | Terminal-styled blockquote |
.tui-blockquote-warn | Warning variant (yellow border) |
.tui-kbd | Keyboard shortcut display |
| Class | Description |
|---|---|
.tui-btn | Base button (required) |
.tui-btn-primary | Accent colored button |
.tui-btn-secondary | Subtle secondary style |
.tui-btn-ghost | Transparent background |
.tui-btn-success | Green success button |
.tui-btn-danger | Red danger button |
.tui-btn-sm | Small size |
.tui-btn-lg | Large size |
Corner brackets glow on hover.
With scanline effect
| Class | Description |
|---|---|
.tui-form-group | Wraps label + input + hint/error |
.tui-form-label | Uppercase mono label for form fields |
.tui-form-hint | Help text below input |
.tui-form-error | Error message below input |
.tui-textarea | Multi-line text input |
.tui-select | Styled native select dropdown |
.tui-file-input | Styled native file input with terminal-themed picker button |
.tui-file-drop | Dashed drag-and-drop upload zone wrapper |
.tui-input-suffix | Right-aligned unit/label inside input |
.tui-checkbox | Styled checkbox |
.tui-radio | Styled radio button |
.tui-toggle | Toggle switch (checkbox variant) |
.tui-range | Styled range slider |
.tui-filter | Scrollable horizontal filter chip row |
.tui-filter-chip | Selectable filter chip item |
.tui-input-error | Error border state for inputs |
.tui-input-success | Success border state for inputs |
.tui-file-input-error | Error border state for file inputs |
.tui-file-input-success | Success border state for file inputs |
Tab panel content here.
.tui-tooltip-bottom when trigger is near the top edge.
Left-positioned tooltip.
Right-positioned tooltip.
Initialize telemetry links, verify crew systems, and deploy with full visibility across every subsystem.
Track trajectories, monitor anomalies, and coordinate teams from a single tactical surface.
prefers-reduced-motion is enabled.
<!-- Add to body for ambient effects --> <!-- Horizontal scan line sweep --> <div class="tui-effect-scan"></div> <!-- Corner radar rotation --> <div class="tui-effect-radar"></div> <!-- Floating particle dots --> <div class="tui-effect-particles"></div> <!-- Horizontal data streams --> <div class="tui-effect-streams"></div> <!-- Center expanding ring --> <div class="tui-effect-pulse"></div> <!-- Blinking grid nodes --> <div class="tui-effect-grid-nodes"></div> <!-- Corner bracket accents --> <div class="tui-corners"></div>
meowtern ships with 10 theme presets. Set the data-theme attribute on <html> to switch.
<!-- Dark themes --> <html data-theme="dark"> <!-- Default cyan/navy --> <html data-theme="amber"> <!-- Warm CRT terminal --> <html data-theme="matrix"> <!-- Green phosphor --> <html data-theme="high-contrast"> <!-- WCAG AAA accessible --> <html data-theme="deep-space"> <!-- Muted purple/blue --> <!-- Light themes --> <html data-theme="light"> <html data-theme="amber-light"> <html data-theme="matrix-light"> <html data-theme="high-contrast-light"> <html data-theme="deep-space-light">
<script>
function setTheme(name) {
document.documentElement.setAttribute('data-theme', name);
}
</script>
Try it now — use the theme selector in the sidebar to preview all themes live.
:root {
/* Colors */
--tui-bg: #080b18;
--tui-surface: #0c1122;
--tui-border: rgba(21, 241, 255, 0.15);
--tui-accent: #15f1ff;
/* Text */
--tui-text: #e4e4e7;
--tui-text-dim: #71717a;
/* Typography */
--tui-font-mono: 'IBM Plex Mono', monospace;
--tui-font-display: 'Outfit', sans-serif;
/* Spacing */
--tui-radius: 4px;
--tui-space-1: 0.25rem;
--tui-space-2: 0.5rem;
--tui-space-3: 0.75rem;
--tui-space-4: 1rem;
/* Timing */
--tui-duration: 200ms;
--tui-duration-fast: 100ms;
--tui-ease: cubic-bezier(0.16, 1, 0.3, 1);
}
<!-- Via CSS variables --> <div style="color: var(--tui-cyan);">Cyan text</div> <!-- Via Tailwind classes (from @theme) --> <div class="text-tui-cyan">Cyan text</div> <div class="bg-tui-blue">Blue background</div>