1.0 - Initial single tab application for copy colors
First production-ready swatch terminal focused on rapid HEX extraction.
- Delivered single swatch workflow with click-to-copy behavior for primary HEX values.
- Added search and category filtering for fast item lookup in large color catalogs.
- Displayed color cards with names, HEX labels, and category grouping aligned to Satisfactory items.
- Established terminal-style UI foundation with header, tabs scaffold, and footer support links.
1.1 - Introduced DUO mode
Expanded swatch mechanics to support dual-zone color extraction and richer interaction.
- Added DUO tab variant with primary and secondary color zones per swatch.
- Implemented per-item copy counters with localStorage persistence and reset event handling.
- Added reorder/floating animation behavior so recently used colors rise in priority.
- Improved responsive filtering UX with mobile sheet menu, tab switching, and no-results state messaging.
- Added regression coverage for SOLO/DUO interactions in Playwright tests.
1.2.0 - Added localization core
Refactored text and color data layers for i18n readiness and import/export schema support.
- Replaced hardcoded UI/ARIA text with translation key calls via `t('...')` across app-facing components.
- Introduced English locale resources for interface text and color/category display labels.
- Implemented fallback logic: active locale -> English -> normalized key for UI text.
- Migrated color payload to schema-versioned `colors.json` with stable `COLOR_*` codes and `defaultName` fallback.
- Added import/export validation rules for schema version, unique codes, category mapping, and HEX format.
- Mapped unknown or user-defined categories to reserved `CATEGORY_OTHER` for safe ingest.
- Switched copy-counter identity from localized names to stable color codes to prevent locale drift bugs.
- Added unit tests for i18n fallback behavior and color schema parsing/generation paths.
- Added header language switch entry point (`EN`) and factory-style operator instruction messaging in swatch tabs.
1.3 - Added light source palette groups and HEX lock test
Extended palette coverage with dedicated light-source references and stronger change-detection safeguards.
- Added three new categories: `Light: Kelvin-heat`, `Light: Fluorescent`, and `Light: Gaseous`.
- Added 19 new light source entries with configured primary HEX values and white secondary color (`#FFFFFF`).
- Standardized all new light source codes to the `LIGHT_*` prefix instead of `COLOR_*`.
- Added English localization keys for the new light categories and all new `LIGHT_*` entries.
1.4 - Added OWN palette workflow, validation gate, and reliability upgrades
Introduced full local palette authoring with import/export controls, stricter validation, and stronger accessibility/testing coverage.
- Added `OWN` tab with dual modes: `VIEW` for swatch usage and `EDIT` for local palette authoring.
- Implemented dedicated OWN copy counters stored separately from default SOLO/DUO usage stats.
- Added draft editor capabilities for row add/remove, clear-all, and reset-to-default operations.
- Added base64 import/export flow for OWN palette payloads with modal-based forms and copy-to-clipboard output.
- Added validation/error gate that blocks preview/export until draft issues are resolved and changes are saved.
- Implemented secondary-color fallback rule: empty secondary value automatically resolves to primary color on normalize/save/import.
- Expanded HEX support to accept both `#RGB` and `#RRGGBB` patterns across validation and import paths.
- A mask with a leading # has been added to the color edit inputs on the OWN tab, so you can either paste or start typing the colour immediately.
1.5 - Added accessible palette assist and messenger share cards
Added a header-accessible assist panel for players who need non-color cues or color vision simulation while browsing palettes, plus static preview-card share URLs for built-in colors.
- Added an `A11Y` button in the application header to open palette accessibility controls from any tab.
- Added live `Normal`, `Protan`, `Deutan`, and `Tritan` display modes for SOLO, DUO, and OWN swatches.
- Added optional symbol overlays and pattern overlays so swatches can be distinguished without relying on color alone.
- Ensured primary and secondary zones on the same DUO swatch receive different symbol/pattern assignments.
- Persisted accessibility assist settings in localStorage so selected simulation and overlay options survive reloads.
- Kept copy behavior unchanged: assist overlays and simulated display colors do not modify the original HEX values copied from swatches.
- Generated separate one-color and two-color share-card URLs for every default palette item under `share/COLOR_CODE/one.html` and `share/COLOR_CODE/two.html`, designed for link previews in messengers such as Discord and Telegram.
- Generated matching PNG preview cards under `share/cards/` with item name, color code, primary HEX, and secondary HEX when DUO mode is used.
- Added a compact share action on built-in swatches: SOLO copies the one-color share URL, while DUO and built-in OWN swatches copy the two-color share URL.
- Added share entry points directly on supported swatches so messenger preview links can be copied without leaving the palette grid.
- Share does not support custom OWN swatches yet; those local colors still use normal HEX copy behavior because they do not have static preview-card pages.
- Used a compact share icon on swatch share actions so the link target stays visually distinct from normal HEX copy.
- Added unit, component, and Playwright coverage for assist settings, overlay rendering, persistence, and original HEX copy behavior.
- Added generator and test coverage to verify every built-in item has both share HTML modes and mode-specific image metadata.
1.6 - Added OKLCH color harmony suggestions
Added an in-app harmony helper that generates matching palette suggestions from one or two anchor colors, so players can build factory color sets without leaving the tool.
- Added a `HARMONY` modal that generates suggestions in OKLCH color space from a primary anchor and optional secondary anchor.
- Added harmony modes: `ANALOGOUS`, `COMPLEMENTARY`, `DOUBLE_SPLIT_COMPLEMENTARY`, `RECTANGLE`, `SPLIT_COMPLEMENTARY`, `TETRADIC`, and `TRIADIC`.
- Added `FACTORY_SAFE` mode, which checks generated colors for low contrast and color vision simulation conflicts, then nudges lightness, chroma, and hue when a safer match is needed.
- Added a hover/focus harmony action on swatches to open the modal with that swatch's primary and secondary colors pre-filled. On touch devices, the action is visible all the time.
- Added OWN tab entry points: the `HARMONY` button is available in both VIEW and EDIT modes, using the current OWN palette colors as starting anchors.
- Harmony suggestion swatches can be clicked to copy their generated HEX values, and adjusted suggestions are marked in the modal.
1.7 - Added accessible OWN color picker and validation navigation
Reworked OWN palette editing around a full color picker, smoother color input, and faster validation troubleshooting.
- Added color picker for OWN tab with saturation/brightness area, hue slider, and direct HEX entry.
- Applied active color vision simulation to the picker surface, hue slider, and selected swatch preview while keeping the actual HEX value unchanged.
- Added symbol and pattern assist overlays to OWN tab editor picker swatches so accessibility settings are visible while editing custom primary and secondary colors.
- Replaced the old separate OWN color sample squares with joined HEX input + picker controls.
- Adjusted the OWN edit table layout with fixed color columns, a wider name field, and narrower HEX fields for denser editing.
- Added row numbers as anchors in the OWN edit table for easier navigation through larger custom palettes and oved validation errors into a floating bottom panel so the editor no longer jumps when errors appear or disappear. Also added expand/collapse controls to the validation panel, with row error messages linking directly to their matching table rows.
- Highlighted rows that have validation errors so broken palette entries can be found quickly from both the table and error panel.
- Added component coverage for OWN picker accessibility rendering, colorblind-filtered picker controls, and unchanged real HEX values.
1.8 - Added interactive tutorials, a new landing experience, and smarter search
Added guided feature tours throughout the color terminal, expanded the localized landing experience.
- Added interactive tutorials for copying and sorting swatches, searching and filtering colors, generating color harmonies, and configuring accessibility assists.
- Added a persistent Help menu containing every tutorial, plus compact contextual tutorial buttons beside the search field and factory manual instructions.
- Improved tutorial behavior across modal, drawer, animation, hover, mobile filter, and accessibility states so highlights remain aligned and underlying controls do not receive unintended clicks.
- Added a redesigned English and Ukrainian landing page with direct links to SOLO, DUO, and OWN modes, feature explanations, and a tutorial preview carousel with generated screenshots.
- Expanded search to match localized and default item names, primary and secondary HEX values, item codes, category labels, and category codes, while preserving debounced filtering for large palettes.
- Standardized displayed HEX values to uppercase across swatches, harmony suggestions, OWN editing, and picker controls.
- Added landing navigation in the header, a Support action in the footer, and improved mobile footer and responsive layout behavior.