Skip to content

[firecrawl-ui] Redesign UI: Glass/Aurora playground and URL launcher#89

Merged
obeone merged 17 commits into
mainfrom
feat/redesign-ui
Jun 28, 2026
Merged

[firecrawl-ui] Redesign UI: Glass/Aurora playground and URL launcher#89
obeone merged 17 commits into
mainfrom
feat/redesign-ui

Conversation

@obeone

@obeone obeone commented Jun 28, 2026

Copy link
Copy Markdown
Owner

Summary

Full UI redesign of Firecrawl UI.

  • New "Glass / Aurora" design language (frosted glass over an animated aurora), dark by default with a light variant.
  • The home is now a URL launcher: paste a URL, pick an action (scrape, crawl, extract, map) and land in the tool with the field pre-filled. The tool pills carry the typed URL too.
  • Every tool runs in a two-pane request/response playground (form on the left, tabbed response on the right) via a shared PlaygroundLayout component.
  • Setup prompt on the home when neither an API key nor a custom API URL is configured. A self-hosted instance (custom URL, optionally without a key) counts as configured.
  • Accessibility pass: WCAG AA contrast on the glass surfaces, a hidden h1 on the home, aria-pressed buttons instead of an incomplete role=tab pattern, and type=button on non-submit form buttons.
  • README rewritten to the standard layout with fresh screenshots.

Test plan

  • npx prettier --check .: clean
  • npx eslint .: clean
  • npm run build: passes
  • Verified in the browser, dark and light: launcher routing and URL prefill, a real scrape and crawl against a self-hosted v2 instance, the setup-notice states, and axe-core (0 violations across all routes).

Known follow-up: Extract against a self-hosted v2 instance returns a 200 async job id that the UI does not yet poll for, so it reports "Extraction failed". Tracked separately.

obeone added 17 commits June 22, 2026 21:26
Replace the default Vue scaffold theme with a warm fire identity:
ember-orange brand ramp, amber accents and warm-neutral light/dark
themes. Keep the existing CSS variable names so every view inherits
the new look, and add reusable primitives (cards, buttons, badges,
section titles) plus unified form controls, focus rings and scrollbars.
Rework the sidebar into a branded navigation rail: fire-gradient logo
mark and wordmark, lucide-style inline SVG icons per route, an ember
active-state indicator, a labelled theme switch in the footer and a
local-only badge. Add a scrim-backed mobile drawer.
Drop the hardcoded blue/Montserrat styling for the Ember tokens:
glowing fire-gradient logo tile, gradient-clipped wordmark, responsive
feature grid with hover accent lines and an about section with ember
bullets and call to action.
Replace hardcoded blues, greens, error reds and grays across the crawl,
scrape, extract, map, search, about, api-config and api-key views with
the shared design tokens, so every screen matches the new identity and
renders correctly in both light and dark themes.
Replace the sidebar shell with a top app bar (brand, tool tabs, theme and
settings actions) and introduce the shared two-pane playground primitives:
PlaygroundLayout (request/response split with response tabs, status bar and
empty/loading/error states), plus CodeBlock and CopyButton for output panes.
Move each tool (scrape, crawl, extract, map, search) into PlaygroundLayout:
the configuration form lives in the request pane and results are split across
response tabs (preview, JSON, links, pages, etc.). API calls, polling and all
component logic are preserved; only the template and styles change.
…ngs card

Home becomes a compact hero plus a quick-launch grid mirroring the top-bar
tabs; the API configuration page becomes a centered settings card consistent
with the playground surfaces.
Replace the Ember orange token system with a cool violet/cyan glass
language: frosted-glass tokens plus a reusable .glass utility, an aurora
palette (violet, magenta, cyan), and dark as the default theme. Old
Ember/fire variable names are kept as aliases so unmigrated surfaces keep
resolving during the transition.
Fixed full-viewport aurora layer of four slowly drifting, heavily blurred
blobs behind a frosted-glass topbar and tab bar. Drift is GPU-cheap
(transform only) and freezes under prefers-reduced-motion.
Gradient-text wordmark, glowing glass logo mark, and frosted tool cards
with hover-lift and soft neon halos over the aurora canvas.
Restyle Scrape, Crawl, Extract, ApiConfig and About along with the Map,
Search and ApiKeyInput components as frosted-glass surfaces: translucent
panels, hover-lift on cards and result rows, and violet/cyan accents in
place of every fire gradient and orange glow.
Replace the landing with a functional launcher: pick an action
(scrape/crawl/map/extract), paste a URL and go straight into that tool. The
launcher routes with a url query param and each tool now reads route.query.url
to pre-fill its URL field on load, so a quick one-off scrape needs no typing
twice. Direct tool pills sit underneath.
When no API key and no custom API URL are set, the home shows a notice linking
to the config page and the launcher routes there instead of a tool that would
only 401. A self-hosted install (custom API URL, possibly without a key) counts
as configured, so the notice stays hidden for it.
- Darken --color-text-mute in both themes (3.0-3.6:1 -> ~4.7-5.1:1 on glass).
- Make the button gradient violet-600..violet-800 so white labels keep
  >= 4.5:1 (the old violet-500/cyan stops failed under white); the bright
  violet->cyan sweep stays in --gradient-aurora for decorative use only.
- Add a visually-hidden <h1> to the home launcher (page had no level-one heading).
- Replace the incomplete role=tab pattern (no arrow-key handling) with
  aria-pressed buttons on the home action selector and the playground tabs.
- Add type=button to non-submit buttons inside forms (crawl/extract/search/
  api-config and the theme toggle) to prevent accidental form submission.
The home tool pills (Scrape/Crawl/Extract/Map) were plain links that dropped
a URL already typed in the launcher bar. They now route with the same ?url=
query when a URL is present, so clicking a tool never silently loses it.
Restructure the README to the standard layout (badges, Mermaid flow, feature
and command tables, configuration) and document the current UX: URL launcher,
two-pane request/response playground, light/dark glass theme, local config and
self-hosting. Replace the stale screenshots with new captures of the redesigned
home, scrape, crawl and extract views.
@obeone obeone merged commit 07ffbde into main Jun 28, 2026
1 check passed
@obeone obeone deleted the feat/redesign-ui branch June 28, 2026 17:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant