Skip to main content

CLI-Expander HTML Landing Page

Overview

A standalone single-page HTML landing page for cli-expander — an interactive command builder written in Rust. The page follows the opshell terminal-first design system and is deployed at /cli-expander/ on opshell.dev.

File Location

/home/rezriz/github/Wordpress/wp-dev/themes/develop-internally/cli-expander/index.html

Production URL: https://opshell.dev/cli-expander/

Score

Design quality rating: 9.5 / 10

Design Decisions

DecisionChoiceRationale
Page typeStandalone HTML/CSSSingle file, no build step, no JS framework. Matches "Speed is a feature" principle
FrameworkNoneZero dependencies — only Google Fonts for typography
LayoutSingle scroll pageAll content on one page, nav links scroll to sections
Demo animationStatic terminal panel + CSS/JS typewriter:findx[Space] expands into a find command after 1.8s delay. No external dependencies
Form demoStatic ASCII art terminalRenders the :findx form fields using pure CSS-styled divs. No JS needed
Email subscriptionNot includedProduct is free MIT; monetization happens through trigger pack purchases elsewhere
Pricing CTAsNot includedPacks mentioned in trigger library section but no purchase buttons
Testimonials3 dummy quotesFictional personas: M. Chen (DevOps), J. Kowalski (Sysadmin), A. Patel (Solo Developer)

Page Sections (9 total)

#SectionIDContent
1Hero$ cli-expander --about prompt. Typewriter demo showing :findx[Space] expansion into find . -type f -name '*.sh' -exec ls -lh {} +. Two CTAs: cargo install cli-expander (solid green) and View on GitHub (outline). Stat bar: 2,000+ triggers, 7 field types, fzf search, Bash/Zsh/Fish/Tmux, MIT
2How It Works#how-it-works3-step card grid: :trigger[Space] → fill form → get command. Each card has a code sample showing the output
3Features#features6-card grid with ./ prefix decoration matching opshell card pattern. Cards: Trigger Expansion, Interactive Forms, FZF Search, Shell Plugins, Tmux Injection, CSV Database. Each has a stat badge
4Form Demo#form-demoTerminal-window styled panel showing :findx with 4 fields: Search Path (text), File Type (choice dropdown with ▼ indicator), Extension (text), Action (text). Submit + Cancel buttons
5Comparison#comparisonTable vs Espanso, Fig, Bash aliases, Manual typing. 7 features: terminal-native, interactive forms, fzf discovery, CSV database, tmux injection, open source, self-hosted. cli-expander row highlighted with green background
6Trigger Library#library6 category cards: Linux (40+), Docker (30+), DevOps (50+), WordPress (25+), Ansible (35+), AI Prompts (20+). Each shows 5 sample trigger names with type badges. Footer note about full library
7Testimonials#testimonials3 terminal-panel styled quotes. Each starts with $ echo "..." pattern, ends with a green # comment. Authors: M. Chen (DevOps Engineer), J. Kowalski (Sysadmin), A. Patel (Solo Developer)
8Shell Support#shell-supportFeature matrix: Bash (full ✓ all 7 features), Zsh/Fish (expand + Ctrl+T only), Tmux (inject + popup picker)
9Installation#install4 code blocks with copy-to-clipboard buttons: cargo install, git+build+install, source shell plugin, verify. Each has monospace header label
10GitHub / Footer#githubMIT license panel with Star button. Meta line: v1.0.0 · 27 releases · Changelog · Documentation · Report issue. Footer: MIT license, GitHub/Docs/Opshell links, "Built with Rust"

HTML Structure

ElementCountDetails
<section>10Hero, how-it-works, features, form-demo, comparison, library, testimonials, shell-support, install, github
<style>1Embedded CSS (~400 lines) covering all components, responsive breakpoints
<script>1Embedded JS (~50 lines) for typewriter effect, copy button, smooth scroll
Google Fonts2JetBrains Mono + Inter (preconnected)
External deps0No npm packages, no CDN scripts, no framework

CSS Architecture

Variables (inherited from opshell design system)

:root {
--ops-bg: #0d1117;
--ops-surface: #161b22;
--ops-surface-hover: #1c2333;
--ops-border: #30363d;
--ops-text: #c9d1d9;
--ops-text-secondary: #8b949e;
--ops-accent-green: #3fb950;
--ops-container-width: 1200px;
--ops-card-radius: 8px;
--ops-transition: 0.15s ease;
--ops-font-mono: "JetBrains Mono", "Ubuntu Mono", monospace;
--ops-font-body: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

Key Components Styled

ComponentCSS Class/SelectorStyle Pattern
Header.site-headerSticky, blur backdrop, border-bottom
Hero glow.hero::beforeRadial gradient pseudo-element, green, blurred
Terminal panel.terminal-demo, .form-demo-panelGradient bg, 12px radius, deep shadow, window-style header with dots
Cards.step-card, .feature-card, .trigger-category--ops-surface bg, border, hover → green border
CTA buttons.btn-primarySolid green with !important, hover → #2ea043
Code blocks.install-code .code-block pre#010409 bg, monospace, copy button
Tables.comparison-table, .shell-tableOpshell table pattern with sticky headers, hover rows
Testimonials.testimonial-cardTerminal-panel gradient, $ echo style quotes
Footer.site-footerSame pattern as opshell.dev footer, border-top

Responsive Breakpoints

BreakpointBehavior
> 1024pxFull layout: 3-column grids (features, triggers, testimonials)
≤ 1024pxFeatures and triggers → 2-column, testimonials → 1-column
≤ 768pxMobile: single column all grids, nav links hidden, CTAs full-width, padding reduced
≤ 480pxSmall screens: terminal/panel font-size reduced, footer stacked

JavaScript

Minimal — only three features:

  1. Typewriter effect: After 1.8s delay, hides the blinking cursor and shows the expanded command output line
  2. Copy button: navigator.clipboard.writeText() with fallback to document.execCommand('copy'). Button shows "copied" feedback for 2s with green styling
  3. Smooth scroll: All href="#section" links use scrollIntoView({ behavior: 'smooth' })

Design Notes

  • The page is fully self-contained in one HTML file — no build, no server, no framework
  • All icons are Unicode characters (⚡, ⎔, ⌕, 〉, ⊞, ⛁) — no icon font or SVG needed
  • JetBrains Mono and Inter are loaded via Google Fonts with preconnect for performance
  • The hero green glow matches the opshell.dev hero pattern (radial-gradient, filter: blur(6px), pointer-events: none)
  • CTA buttons use !important to override the WordPress theme's button styles when deployed on opshell.dev
  • The .feature-card::before pseudo-element with ./ matches the opshell card pattern from the child theme