diff --git a/README.md b/README.md index 7f7db8c..10cab04 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ ember-mug ### Run with npx (No Installation) ```bash -npx ember-mug +npx ember-mug@latest ``` ### Local Development diff --git a/apps/web/public/screenshot.png b/apps/web/public/screenshot.png new file mode 100644 index 0000000..477272f Binary files /dev/null and b/apps/web/public/screenshot.png differ diff --git a/apps/web/src/components/Installation.tsx b/apps/web/src/components/Installation.tsx index 077c800..d210df5 100644 --- a/apps/web/src/components/Installation.tsx +++ b/apps/web/src/components/Installation.tsx @@ -5,20 +5,14 @@ import './Installation.css' const installSteps = [ { step: '01', - title: 'Install the CLI', - command: 'npm install -g ember-mug', - description: 'Install ember-mug globally via npm to make it available from anywhere.', - }, - { - step: '02', title: 'Enable Bluetooth', command: null, description: 'Make sure Bluetooth is enabled on your device and your Ember mug is powered on.', }, { - step: '03', + step: '02', title: 'Run the CLI', - command: 'ember-mug', + command: 'npx ember-mug@latest', description: 'Launch the CLI and it will automatically discover and connect to your mug.', }, ] @@ -37,7 +31,7 @@ export default function Installation() { transition={{ duration: 0.6 }} >

Get Started in Seconds

-

Three simple steps to start controlling your Ember mug from the terminal.

+

Two simple steps to start controlling your Ember mug from the terminal.

diff --git a/apps/web/src/components/Terminal.css b/apps/web/src/components/Terminal.css index 183aab1..10e14eb 100644 --- a/apps/web/src/components/Terminal.css +++ b/apps/web/src/components/Terminal.css @@ -87,288 +87,18 @@ } .terminal-body { - padding: 1.5rem; - overflow-x: auto; -} - -/* CLI Interface Styles */ -.cli-interface { - font-family: 'JetBrains Mono', monospace; - font-size: 0.85rem; - color: var(--text-primary); -} - -.cli-header { - display: flex; - align-items: center; - justify-content: space-between; - padding: 0.5rem 0; -} - -.cli-logo { - color: var(--accent); - font-weight: bold; -} - -.cli-title { - color: var(--text-secondary); - font-weight: 600; -} - -.cli-status { - display: flex; - align-items: center; - gap: 0.5rem; - color: var(--text-secondary); -} - -.status-dot { - width: 8px; - height: 8px; - background: var(--accent); - border-radius: 50%; - animation: pulse 2s ease-in-out infinite; -} - -.cli-divider { - height: 1px; - background: var(--accent); - margin: 0.75rem 0; - opacity: 0.5; -} - -.cli-main { - display: grid; - grid-template-columns: auto 1fr; - gap: 2rem; - padding: 1rem 0; -} - -.cli-mug { - display: flex; - align-items: center; - justify-content: center; -} - -.ascii-art { - color: var(--accent); - font-size: 0.7rem; - line-height: 1.2; - opacity: 0.9; -} - -.cli-panels { - display: grid; - grid-template-columns: repeat(2, 1fr); - gap: 1rem; -} - -.cli-panel { - border: 1px dashed var(--accent); - border-radius: 4px; - padding: 0.75rem; - background: rgba(224, 122, 95, 0.02); -} - -.panel-header { - color: var(--accent); - font-size: 0.75rem; - text-transform: uppercase; - letter-spacing: 0.05em; - margin-bottom: 0.75rem; - padding-bottom: 0.5rem; - border-bottom: 1px dashed var(--border); -} - -.panel-content { - display: flex; - flex-direction: column; - gap: 0.5rem; -} - -/* Temperature Panel */ -.temp-content { - align-items: center; -} - -.temp-display { - display: flex; - align-items: center; - gap: 1rem; -} - -.temp-item { - display: flex; - flex-direction: column; - align-items: center; - gap: 0.25rem; -} - -.temp-label { - font-size: 0.7rem; - color: var(--text-muted); -} - -.temp-value { - color: var(--accent); - font-size: 1.1rem; - font-weight: 600; -} - -.temp-value.target { - color: var(--text-primary); -} - -.temp-arrow { - color: var(--text-muted); -} - -.temp-status { - color: var(--accent); - font-size: 0.8rem; -} - -/* Battery Panel */ -.battery-content { - align-items: center; -} - -.battery-percent { - color: var(--accent); - font-size: 1.1rem; - font-weight: 600; -} - -.battery-bar { - width: 100%; - max-width: 150px; - height: 16px; - background: var(--bg-secondary); - border-radius: 2px; + padding: 0; overflow: hidden; } -.battery-fill { - height: 100%; - background: var(--accent); - border-radius: 2px; -} - -.battery-time { - font-size: 0.75rem; - color: var(--text-muted); -} - -/* Adjust Panel */ -.adjust-content { - align-items: center; -} - -.slider-display { - display: flex; - align-items: center; - gap: 0.75rem; +.terminal-screenshot { width: 100%; - font-size: 0.75rem; - color: var(--text-muted); -} - -.slider-track { - flex: 1; - height: 4px; - background: var(--bg-secondary); - border-radius: 2px; - position: relative; -} - -.slider-fill { - height: 100%; - background: var(--accent); - border-radius: 2px; -} - -.slider-thumb { - position: absolute; - top: 50%; - transform: translate(-50%, -50%); - width: 12px; - height: 12px; - background: var(--text-primary); - border-radius: 50%; - border: 2px solid var(--accent); -} - -.slider-hint { - font-size: 0.7rem; - color: var(--text-muted); -} - -/* Presets Panel */ -.presets-content { - flex-direction: row; - justify-content: space-between; -} - -.preset { - display: flex; - flex-direction: column; - align-items: center; - gap: 0.25rem; - padding: 0.5rem; - border: 1px dashed var(--border); - border-radius: 4px; - min-width: 60px; -} - -.preset-name { - font-size: 0.75rem; - color: var(--text-secondary); -} - -.preset-temp { - font-size: 0.8rem; - color: var(--text-primary); -} - -.preset-key { - font-size: 0.7rem; - color: var(--accent); -} - -.cli-footer { - display: flex; - flex-wrap: wrap; - gap: 1.5rem; - justify-content: center; - padding: 0.5rem 0; - font-size: 0.8rem; - color: var(--text-muted); -} - -.cli-footer b { - color: var(--accent); - font-weight: 500; + height: auto; + display: block; } @media (max-width: 768px) { .terminal-section { padding: 4rem 1rem; } - - .cli-main { - grid-template-columns: 1fr; - } - - .cli-mug { - display: none; - } - - .cli-panels { - grid-template-columns: 1fr; - } - - .presets-content { - flex-wrap: wrap; - justify-content: center; - } } diff --git a/apps/web/src/components/Terminal.tsx b/apps/web/src/components/Terminal.tsx index 2f9b9f8..0ebfcc6 100644 --- a/apps/web/src/components/Terminal.tsx +++ b/apps/web/src/components/Terminal.tsx @@ -36,131 +36,14 @@ export default function Terminal() {
- + Ember Mug CLI interface showing temperature controls, battery status, and temperature presets
) } - -function TerminalContent() { - return ( -
- {/* Header */} -
- C[_] - EMBER MUG - - - EMBER - -
- -
- -
- {/* ASCII Mug */} -
-
{`      |   |
-       \\   /
-        (   )
-         { }
-    {    }-{    }
-  .-{      }     }-.
- |'-..______..-'|
-   \\'-..__..-'/
-     (     \\\\
-     |   )  )
-     )  /
-    (   /
-    \\\\      y'
- \\'-..__..-'`}
-
- - {/* Panels */} -
- {/* Temperature Panel */} -
-
Temperature
-
-
-
- Current - 133°F -
- → -
- Target - 133°F -
-
-
At temp
-
-
- - {/* Battery Panel */} -
-
Battery
-
- 52% -
-
-
- [~] 1h 44m remaining -
-
- - {/* Temperature Adjust */} -
-
Temperature Adjust
-
-
- 122°F -
-
-
-
- 145°F -
- ←/→ -
-
- - {/* Presets */} -
-
Temperature Presets
-
-
- Latte - 126°F - [1] -
-
- Coffee - 132°F - [2] -
-
- Tea - 140°F - [3] -
-
-
-
-
- -
- - {/* Footer */} -
- [1-3] presets - [u] unit - [r] repair - [o] settings - [q] quit -
-
- ) -}