Skip to content
themes.dev
    ← Flightdeck

    Changelog

    Every Flightdeck release, newest first. Updates are free for every license; download them from your account.

    1. v2.2.1

      Latest

      Library previews and guides. 204 screens, 62 blocks, 44 components and 6 shells, as in v2.2.0.

      Fixed

      • Library cards of the 90 screens new in v2.2.0 show their screenshot instead of initials.
      • System map: the "Most reused" and "Every item" tables have their cell padding back.
      • Item pages: the breadcrumb includes the area (Library / Screens / Account & settings / …).

      Changed

      • The top bar links to the Library and the Changelog, and has a Download button to your themes.dev account.
      • Getting started, Design rules, Agent skill, Changelog, Migrating and License read in a centred column with "On this page" beside it; tables use the full column and keep paths on one line.
      • The online kit on themes.dev links back to your account.
    2. v2.2.0

      AirControl v2 is now called Flightdeck. Free for everyone who bought AirControl (v1 or v2). 204 screens, 62 blocks, 44 components and 6 shells, each also in React, plus 18 walkthroughs and 16 transactional emails.

      Added

      • 90 new screens (204 in all), each with an Astro and a React version proven identical: CRM and sales (deals-pipeline, deal-detail, leads-list, companies-list, company-detail, sales-activities, sales-forecast, email-sequences), people and HR (people-directory, org-chart, time-off, time-off-request, recruiting-pipeline, candidate-detail, performance-review, employee-onboarding), finance (expenses, expense-report, transactions, payouts, bills, bill-detail, payment-methods, tax-settings), store admin (product-edit, inventory, discounts, discount-create, collections, returns, return-detail, reviews-moderation), developer and ops (deployments, deployment-detail, logs-explorer, environment-variables, feature-flags, on-call, error-issues, error-issue-detail), marketing site (page-features, page-integrations, page-integration-detail, page-customers, page-case-study, page-security, page-compare, page-book-demo), workspace settings (settings-appearance, settings-locale, settings-privacy, settings-custom-fields, settings-labels, automations, automation-editor), sign-in and lifecycle (auth-sso, auth-verify-email, auth-workspace-select, auth-session-expired, auth-device-approve, plan-select, trial-expired), campaigns and messaging (campaigns, campaign-editor, campaign-report, announcements, email-compose, audience-segments, contacts), planning (roadmap, goals, goal-detail, timesheet, workload, my-tasks, project-create), files and search (files-browser, file-detail, shared-with-me, trash, document-editor, search-results, approvals) and booking and support (booking-page, booking-confirm, event-types, availability, helpdesk-macros, helpdesk-sla, live-chat-console). Their data comes from new fixtures (crm, people, finance, store-admin, platform, marketing, workspace-admin, auth, campaigns, planning, drive, booking, helpdesk) that reconcile with the existing ones. New block deal-board. The settings tabs gain Appearance, Language & region, Fields & labels, Automations and Privacy & data.
      • Transactional emails (new item type email, folder items/emails/, an Emails section in the library): invite to a workspace, verify email, password reset, two-factor code, welcome, invoice issued, payment receipt, payment failed / card expiring, trial ending, plan changed, weekly digest, comment and mention notification, ticket reply, new sign-in alert, export ready / failed and import finished, 16 emails in 21 examples with Northwind data and links to the matching screens.
      • emails/email-blocks: the email frame and 14 blocks that render table-based, inline-styled HTML for Gmail, Apple Mail, Outlook (Windows, Mac, web) and phones: colors resolved from the tokens to hex at build time, a 600px column with a ghost table for Outlook, bulletproof buttons with a VML version, dark mode through prefers-color-scheme and [data-ogsc], a preheader, and a plain-text version generated from the same markup.
      • pnpm build writes every email as demo HTML and text, as a Handlebars and a Liquid template with placeholders, and with its test model, to dist/emails/ (html/emails/ after pnpm export). The library preview shows each email at desktop and phone width, light and dark, with its plain text and template.
      • React versions of all 44 components, 62 blocks, 6 shells and 204 screens (items/<type>/<name>/react/), for React and Next.js: the same props, DOM, ARIA, keyboard behavior and events as the Astro original, proven identical by tools/_parity.mjs (pixels at two widths in light and dark, accessibility tree, axe, keyboard, every click) in pnpm verify; installable from the React registry (/r/react/<name>.json). Hooks replace the page scripts where a component drives a flow: useSteps (stepper), useFormValidation (error-summary, the lib/validate rules without writing into React's DOM), the shared code-block language, useFormController (settings-section, signin-form, subscribe-panel), useScheduleEvents / usePeriodNav (calendars), and data-table's client mode on use-list.ts with list-model.ts shared with the Astro controller. Guide: agent/docs/react.md.
      • HTML snippets for server-rendered apps (html/snippets/, built by pnpm export): every example as a clean fragment, one script per item on a shared runtime, and an index with copy buttons.
      • Figma import package: variables per collection and mode, a dev plugin that creates variables and styles, and import sheets per item (html/figma/); guide in docs/figma.md.
      • The registry is also hosted on themes.dev for license holders: the @flightdeck and @flightdeck-react namespaces with a personal API key, for the shadcn CLI and its MCP server (README, "The registry"). The registry in the download keeps working offline.

      Fixed

      • blocks/date-range: picking a range no longer wipes the subtitle's meta items ("History starts …").
      • blocks/create-project-dialog: "<name> created" only shows when the dialog's validation passed.
      • blocks/filter-bar: chips stay disabled while the bar is loading, in error or unavailable.
      • blocks/event-dialog: Escape in the people search closes only the list; a second Escape closes the dialog.
      • blocks/document-form: a due-date error goes on the visible field, so the summary says "Due date: …" and links to it.
      • blocks/conversation-list: a deselected row keeps its hover fill.
      • blocks/data-table: the client-mode count and pagination range keep their tabular figures after load.
      • Scripts of tabs, chip, segmented-control, cohort-grid, funnel-chart, pricing-table, code-block, conversation-list and ticket-thread only write what changes.
      • React: a lazy DropdownMenu returns focus to its trigger on Escape; the first toast on a page no longer lands in a closing dialog; DatePicker no longer removes an error message its parent renders.
      • tools/_actions.mjs measures a retried click against the fresh page and clears storage per page.
      • blocks/command-palette: the filter script only writes what changes. tools/_parity.mjs pairs controls with the same label in page order.

      Changed

      • The kit is called Flightdeck: the download is flightdeck-<version>.zip, the package flightdeck, the registry items flightdeck-lib, flightdeck-fixtures and flightdeck-styles (were aircontrol-…), installed items land under src/flightdeck/, the agent skill is flightdeck, the snippet stylesheet is flightdeck.css, kit warnings start with [flightdeck], and the code-block language choice is stored under flightdeck:code-lang. Projects that installed items from the 2.1.0 registry keep working; new installs use the new names.
      • License sizes: Solo (1 person), Team (5), Studio (15) and Company (everyone), owned by your organisation on themes.dev. AirControl (v1) customers get Flightdeck free: a single license as Solo, a team license as Company (LICENSE.md).
      • schema/item.schema.json knows the email type (folder emails/, requires data); validate, lint (email-inline-only), the registry, llms.txt and the System map include emails. The flightdeck-styles registry item now ships tokens/tokens.json, which the email theme reads.
    3. v2.1.0

      Free for everyone with a v2 (or v1) license. 114 screens, 61 blocks, 44 components, 6 shells and 18 walkthroughs.

      Added

      • New screens: customers list and customer detail, task detail (one example per task), analytics funnels and retention, saved reports with a report builder, and a public site with home, pricing, legal pages (terms, privacy, cookies, DPA) and careers.
      • New blocks: comment thread, ticket thread, funnel chart, cohort grid, date range, document form, checkout summary, subscribe panel, product dialog, schedule toolbar, upcoming events, feature section, logo strip, testimonial, CTA band and "on this page". New components: view switch, error summary, UI mock and post art. New shell: checkout.
      • Shared table cells for due dates (with "· 3d overdue"), priority, status, people, relative time, HTTP status and load against capacity.
      • Code samples in several languages behind tabs, with a colored mark per language; more error pages (401, 410, 429, 502), each with its own animation; drawn blog illustrations and a share row.
      • The library now shows how the kit is built up: every item page lists where the item is used and its full anatomy, and a new System map page ranks the most reused pieces.
      • Demo data tells one consistent story: shared data lives in fixtures/, every event follows its object's lifecycle, and support numbers (CSAT, response times, SLA) derive from the ticket records. The fixture checks recompute them.
      • Buttons can show a busy state before their result (data-busy), and toasts appear above open dialogs, so Undo works there.

      Changed

      • Light mode has a white page; cards are drawn by their hairline (D25).
      • Every link leads to the screen for its record or purpose, and every control does something: a crawler clicks all of them before a release (D27).
      • No screen borrows another screen's code or data (D26): shared pieces became items, shared data moved to fixtures/.
      • Lighter pages: one shared row menu per table, icons from one sprite per page, calendars render only the shown period. The heaviest schedule page went from 1.35 MB to 530 KB, the orders list from 1.16 MB to 0.89 MB.
      • pnpm validate also reports manifest dependencies that disagree with the imports; the agent skill lists every new item and rule and runs sync-deps and build in its checks.
      • Agent evals compare the same screen built with and without the kit, including with the smallest model (agent/evals/results.md).

      Fixed

      • Truncated text always carries its full text (WCAG 1.4.12), and no text fades in, so contrast is right at every moment.
      • KPIs follow list actions, amounts are never cut off on phones, name columns keep their width, drafts are kept per chat conversation, invoice preview shows its lines at once, and a dialog's confirm button no longer shows a "true" toast.
    4. v2.0.0

      AirControl v2, free for everyone who bought v1. Your single or team license covers it (LICENSE.md). See MIGRATING.md for what moved where; there is no upgrade script.

      Added

      • The six sections promised in 2022: Teams, Users, Social feed, Documentation, Store (e-commerce) and Error pages.
      • Dark mode for every item, from the same semantic tokens.
      • Loading, empty and error states on every block and screen, plus item-specific states (past due, no permission, no results, stress).
      • New areas: AI assistant, command palette, onboarding and workspace creation, usage billing, invoicing and quotes, helpdesk and knowledge base, data import, exports, audit log, API & webhooks, SSO and roles, status page and changelog.
      • Walkthroughs: each multi-screen flow (checkout, sign-in, billing, helpdesk, …) as a clickable walkthrough.
      • A working list reference: the invoices screen filters, sorts, selects, bulk-acts and paginates in the browser, with notes on swapping in server-side data.
      • Agent layer: a manifest per item (purpose, props, data shape, states, rules), agent/SKILL.md, generated llms.txt, per-item markdown and a shadcn-format registry that runs locally with pnpm dev (items, shared lib, demo data and styles, each with the items it imports).
      • Checks: manifest validation, design lint, type check, and screenshots with an axe accessibility pass for every state in light and dark.
      • Design tokens in W3C format with Figma variable files for light and dark.
      • A consistent demo dataset (Northwind Cloud) across every screen.
      • LICENSE.md with the license terms and third-party notices, and pnpm export to rebuild the openable html/ folder from source.

      Changed

      • Tailwind CSS 3 → 4; Hugo and Alpine.js → Astro components and a static HTML export that opens from disk.
      • New visual design: hairlines instead of shadows, one calm blue, numbers in mono, color only where something needs attention.
      • 96 cosmetic auth variants → 6 flows × 5 layouts.
      • WCAG AA contrast throughout.

      Removed

      • Lorem ipsum and placeholder photos.
      • Decorative variants that differed only in color or shadow.