Find all changelogs at https://lichess.org/changelog
Mobile updates
- Add offline play and practice versus computer #2585, #2591, #2594, #2624, #2678, #2680
- Add Stockfish 18 #2627
- Add animated native splash logo (Android 12+) #2674
- Add broadcast server analysis summary #2610
- Add FEN sharing for opening explorer positions #2632 (thanks r3econ)
- Add PGN sharing to opening explorer #2664 (thanks r3econ)
- Add Puzzle Dashboard strengths and improvement areas #2651 (thanks r3econ)
- Add "unlimited" switch in OTB config bottom sheet for unlimited time game #2344 (thanks nirajk14)
- Improve user activity widget #2618 (thanks r3econ)
- Allow to choose color for rated challenges #2598
- Allow to share games opened from player results or app links #2608
- Allow split-screen on older android versions #2609
- Allow opening PGN files with multiple games #2656
- Make it possible to share FEN of the position in opening explorer #2632 (thanks r3econ)
- Display player names, titles and rating for imported games #2647
- Show broadcast tiebreaks in bottom sheet #2604
- Re-add color to broadcast player results #2601
- Improve broadcast deeplinks #2597
- Use
BroadcastPlayerWidgetwhere possible #2602 - Remove padding in analysis board for phones that are not too small #2641
- Add unit tests verifying app link route resolution #2626 (thanks r3econ)
- Add a test that verifies that lichess.org/gameid opens analysis #2669 (thanks r3econ)
- Fix broadcast round eval gauge #2595
- Fix app logs preference #2596
- Fix Puzzle Storm restart buttons #2600 (thanks G1Joshi)
- Fix Telegram URL in profile #2648 (thanks mistmuth)
- Fix engine evaluation issues #2650
Site updates
- Add Epaulette Mate puzzle theme with translation and icon #19401
- Add Swallow's Tail Mate puzzle theme with translation and icon #19402
- Add tooltip for semantic dates, that shows the date is in UTC #19277
- Add hover effect to hidden topnav buttons #19299, #19309
- Add infinite scroll to inbox contacts list #19339 (thanks realJimJin)
- Add green success flash for blogs on create/edit/delete #19355
- Add blindfold mode toggle button #19555
- Add 'h' shortcut to toggle board menu. #19602
- Add overflow for
.boxelements where needed #19636 - Add trophy image for CWC 2025 #19305 (thanks visualdenniss)
- Add hover styles to checkbox element #19318 (thanks Simek)
- Add board menu toggle for spectators on mobile #19354 (thanks realJimJin)
- Add focus outline to radio tabs, update sidenav and header outline #19368 (thanks Simek)
- Broadcasts: Team leaderboard changes and more #19334
- Broadcasts: Fix player JSON types #19343
- Broadcasts: More player and team JSON fixes #19364
- Broadcasts: Ensure only 1 xhr request per tab load on team leaderboard #19365
- Broadcasts: Add
fideTCmigration script #19391 - Broadcasts: Skip calculating player stats until at least one game is finished #19619
- Broadcasts: Remove empty-like tag values from source PGN #19622
- Broadcasts: Improve and align player display #19633 (thanks Simek)
- Broadcasts: Avoid DOM traversal in relay round select #19394 (thanks Simek)
- Broadcasts: Fix round info text cutoff at certain widths #19350 (thanks realJimJin)
- Broadcasts: Fix and improve tour selects #19392 (thanks Simek)
- Broadcasts: Fix tour tabs keyboard navigation #19396 (thanks Simek)
- Broadcasts: Fix some inputs in creation form #19516
- Broadcasts: Fix voice chat display and update document title #19523
- Study: Add keyboard navigation to study view tabs #19397 (thanks Simek)
- Study: Add divider, simplify study chapters tabs, #19411 (thanks Simek)
- Study: Add keyboard shortcuts for edit study, edit chapter, create chapter, and to search for chapters in a study #19577, #19601
- Study: Fix 'd' and 'g' shortcuts not working #19570
- Schedule hourly Rapid Arena with Increment #19321 (thanks Frederico-Messa)
- Extend disconnect timeout with imbalance #19258
- Enable fast keyboard move typing #19656
- Implement game stream by oauth origin #19263
- Implement dynamic default insights metric #19273
- Update registration email hint #19420
- Make report game link error message neutral #19483 (thanks SE-Doctor)
- Refactor forum post layout for mobile #19271 (thanks Sama-004)
- Scroll extra to daily feed items #19280
- Scroll extra if the site header might be shown #19293
- Shift top 50 and top 100 trophies up a bit on the perf page #19308
- Space out trophy and username on perf page #19310
- Adjust required horizontal move swiping delta #19324
- Replace println with logger.info in FidePlayerSync #19331 (thanks realJimJin)
- More visible NVUI button #19557
- Restore daily puzzle title styling #19599
- Do not show opponent left counter in zen mode #19418
- Prevent puzzle reports from single-move PVs and low-depth searches #19446
- Remove verification for streamer online check #19540
- Remove unused chapter 'variant' prop #19276 (thanks PawelPlutaUek20)
- Standardise checkbox/toggle UX on multiboard and study share #19281 (thanks nkc-137)
- Streamline markdown textarea tabs appearance #19314 (thanks Simek)
- Enhance user plan update with color unlock notification #19323 (thanks zonalraid45)
- Update KOTH WC 2023 trophy with correct icon #19330 (thanks visualdenniss)
- Do not use links for trophies without
href#19335 (thanks Simek) - Show scoresheet scrollbar in Chromium browsers #19349 (thanks realJimJin)
- Order language entries #19569 (thanks itsbilolbek)
- Improve form elements focus styling #19317 (thanks Simek)
- Improve mselect focus state, keyboard navigation and a11y #19369 (thanks Simek)
- Improve lobby dialog keyboard navigation and a11y #19370 (thanks Simek)
- Improve
transitionmixin, support multiple props #19376 (thanks Simek) - Improve copy-me button styling #19381 (thanks Simek)
- Improve alignment of user activity timeline entries #19386 (thanks Simek)
- Improve copy-me component when target is link #19487 (thanks Simek)
- Improve markdown editor styles, align more with lichess #19649 (thanks Simek)
- Improve blog cards hover appearance #19650 (thanks Simek)
- Improve lobby buttons animations #19547 (thanks Simek)
- Improve readability in picture background mode #19552 (thanks Simek)
- Improve Puzzle Themes page appearance #19565 (thanks Simek)
- Improve team tournament table for mobile #19574 (thanks Simek)
- Improve videos reveal node readability in picture bg mode #19613 (thanks Simek)
- Improve openings tree appearance #19616 (thanks Simek)
- Various select-related tweaks #19413 (thanks Simek)
- Small visual tweaks for forum #19427 (thanks Simek)
- Visual tweaks for Zen mode #19562 (thanks Simek)
- Allow opening user menu w keyboard, update links outline #19428 (thanks Simek)
- Allow focusing home lobby tabs by keyboard #19461 (thanks Simek)
- Allow keyboard interaction with menu bar #19479 (thanks Simek)
- Don't allow focusing disabled fbt buttons #19481 (thanks Simek)
- Only show sitting warning when player is in a losing position #19435 (thanks JustinAWei)
- Extend sitting feedback fix to
SitResignand equal-material positions #19447 (thanks JustinAWei) - Cancel stale premoves on game reload #19437 (thanks JustinAWei)
- Match user profile side height with chart #19443 (thanks Simek)
- Use default text size in board control menu #19549 (thanks Simek)
- Align advanced search form appearance #19550 (thanks Simek)
- Tweak tournament table to fit more content, fix box border radius #19618 (thanks Simek)
- Tweak
kbdappearance, add dark theme support #19627 (thanks Simek) - Tweak spacing on the Learn page, more concise display on mobile #19648 (thanks Simek)
- Tweak tournament streamers link appearance #19469 (thanks Simek)
- Visual tweaks for the video page #19498 (thanks Simek)
- Remove commented-out dead code #19448 (thanks JustinAWei)
- Remove dead linkPopup.ts, duplicated in dialogs.ts #19452 (thanks JustinAWei)
- Remove padding from team name in tournament #19470 (thanks Simek)
- Remove useless Bookmark class #19499 (thanks OwenKrawecki)
- Deduplicate tournament/swiss pagination into shared lib module #19450 (thanks JustinAWei)
- Deduplicate tournament/swiss search into shared pagination module #19515 (thanks JustinAWei)
- Use shared shuffle from lib/algo instead of local duplicate #19510 (thanks JustinAWei)
- Extract shared WikiBooks HTML transforms into lib/wikiBooks #19511 (thanks JustinAWei)
- Extract shared redirectFirst into lib/view/pagination #19512 (thanks JustinAWei)
- Convert close buttons from
<a>to<button>for keyboard accessibility #19513 (thanks JustinAWei) - Avoid querying the same DOM element multiple times #19514 (thanks JustinAWei)
- Move redirectFirst to lib/tournament #19522 (thanks JustinAWei)
- Prevent stretching of player tip photo #19583 (thanks Simek)
- Hide default Edge password input reveal icon #19585 (thanks Simek)
- Use faded accent color for
tabs-horizborder when hovered #19614 (thanks Simek) - Make Lobby display mode and filters keyboard accessible #19615 (thanks Simek)
- Separate eval gauge from mini boards #19626 (thanks Simek)
- Fix checkbox checkmark positioning #19270 (thanks nkc-137)
- Fix tablesort CSS #19272
- Fix study chapter scroll after DOM recreation when the variants differ #19274 (thanks PawelPlutaUek20)
- Fix board editor castling rights bug #19286 (thanks PawelPlutaUek20)
- Fix WebKit WASM bug #19298
- Fix subnav icons alignment #19313 (thanks Simek)
- Fix markdown textarea shift on "Write" tab focus #19327 (thanks Simek)
- Fix lobby view toggle not updating immediately #19336 (thanks realJimJin)
- Fix rating range sliders moving together in lobby settings #19348 (thanks realJimJin)
- Fix study button data-count badge clipped by overflow #19351 (thanks realJimJin)
- Fix practice mode not using figurine notation for best move #19352 (thanks realJimJin)
- Fix patron currency change page reloading #19372 (thanks realJimJin)
- Fix range input focus outline #19375 (thanks Simek)
- Fix missing props module in the lobby package #19379 (thanks PawelPlutaUek20)
- Fix toggle-box keyboard nav and styling #19395 (thanks Simek)
- Fix viewport width issue on Chrome mobile browser #19400 (thanks sobhihamadi)
- Fix puzzles not working correctly #19425 (thanks PawelPlutaUek20)
- Fix using correct Android app ID in StaticContent.scala #19431 (thanks Tarek-9)
- Fix patron donations in BGN currency not supported, but still present #19433 (thanks Ivan-Shaml)
- Fix
.fbtanchors color #19442 (thanks Simek) - Fix keyboard interactions for puzzles #19484 (thanks Simek)
- Fix misleading import alias in swiss search #19449 (thanks JustinAWei)
- Fix event listener accumulation and unsafe DOM traversal #19451 (thanks JustinAWei)
- Fix focus order on the homepage #19460 (thanks Simek)
- Fix location flag alignment in user profile #19468 (thanks Simek)
- Fix impossible to select challenge reason #19508 (thanks PawelPlutaUek20)
- Fix closed accounts not being displayed when listing blocked accounts #19551
- Fix boxes compositing context in picture background mode #19575 (thanks Simek)
- Fix game view overflow on very small mobile devices #19576 (thanks Simek)
- Fix incorrect size of power tips when calculating position #19581 (thanks Simek)
- Fix game result alignment on player profile #19584 (thanks Simek)
- Fix user inbox text overflow #19598 (thanks Simek)
- Fix chapter titles not taking names from PGN, add default name
true#19624 (thanks Zinkelburger) - Lichobile: End-of-life notice #2583 (thanks jas14)
- Lila-ws: Replace
printlnwith properloggerin RoundCrowd #810 (thanks realJimJin) - Lila-ws: Fix grammar in README #809 (thanks realJimJin)
- Op1: Update README.md to fix a typo #1 (thanks andrewkornder)
- Pgn-viewer: Set Pane type on corresponding class member #52 (thanks dragunovartem99)
- Pgn-viewer: Fix disabled elements not firing mouse events #61 (thanks PawelPlutaUek20)
- Pgn-viewer: Fix
cg-custom-belowposition #62 (thanks PawelPlutaUek20) - Scalachess: Fix tiebreak direct encounter calculation and other tweaks #804
API updates
- API Docs: Fix current game response schema and examples #605
- API Docs: Add oneOf for other Game endpoints that can be pgn or ndjson #607
- API Docs: Document broadcast team leaderboard endpoint #608
- API Docs: Add
fideTCforRelayTour.playerresponse #611 - API Docs: Relay players updates #612 (thanks allanjoseph98)
- API Docs: Describe user preference fields #616 (thanks bryghtlabs-richard)
- API Docs: Update api-player-top-nb-perfType.yaml #617 (thanks SE-Doctor)
- API Docs: Update lichess-api.yaml #618 (thanks SE-Doctor)
Accessibility updates
Find all changelogs at https://lichess.org/changelog
**Mobile updates**
- Add offline play and practice versus computer [#2585](https://github.com/lichess-org/mobile/pull/2585), [#2591](https://github.com/lichess-org/mobile/pull/2591), [#2594](https://github.com/lichess-org/mobile/pull/2594), [#2624](https://github.com/lichess-org/mobile/pull/2624), [#2678](https://github.com/lichess-org/mobile/pull/2678), [#2680](https://github.com/lichess-org/mobile/pull/2680)
- Add Stockfish 18 [#2627](https://github.com/lichess-org/mobile/pull/2627)
- Add animated native splash logo (Android 12+) [#2674](https://github.com/lichess-org/mobile/pull/2674)
- Add broadcast server analysis summary [#2610](https://github.com/lichess-org/mobile/pull/2610)
- Add FEN sharing for opening explorer positions [#2632](https://github.com/lichess-org/mobile/pull/2632) (thanks [r3econ](https://github.com/r3econ))
- Add PGN sharing to opening explorer [#2664](https://github.com/lichess-org/mobile/pull/2664) (thanks [r3econ](https://github.com/r3econ))
- Add Puzzle Dashboard strengths and improvement areas [#2651](https://github.com/lichess-org/mobile/pull/2651) (thanks [r3econ](https://github.com/r3econ))
- Add "unlimited" switch in OTB config bottom sheet for unlimited time game [#2344](https://github.com/lichess-org/mobile/pull/2344) (thanks [nirajk14](https://github.com/nirajk14))
- Improve user activity widget [#2618](https://github.com/lichess-org/mobile/pull/2618) (thanks [r3econ](https://github.com/r3econ))
- Allow to choose color for rated challenges [#2598](https://github.com/lichess-org/mobile/pull/2598)
- Allow to share games opened from player results or app links [#2608](https://github.com/lichess-org/mobile/pull/2608)
- Allow split-screen on older android versions [#2609](https://github.com/lichess-org/mobile/pull/2609)
- Allow opening PGN files with multiple games [#2656](https://github.com/lichess-org/mobile/pull/2656)
- Make it possible to share FEN of the position in opening explorer [#2632](https://github.com/lichess-org/mobile/pull/2632) (thanks [r3econ](https://github.com/r3econ))
- Display player names, titles and rating for imported games [#2647](https://github.com/lichess-org/mobile/pull/2647)
- Show broadcast tiebreaks in bottom sheet [#2604](https://github.com/lichess-org/mobile/pull/2604)
- Re-add color to broadcast player results [#2601](https://github.com/lichess-org/mobile/pull/2601)
- Improve broadcast deeplinks [#2597](https://github.com/lichess-org/mobile/pull/2597)
- Use `BroadcastPlayerWidget` where possible [#2602](https://github.com/lichess-org/mobile/pull/2602)
- Remove padding in analysis board for phones that are not too small [#2641](https://github.com/lichess-org/mobile/pull/2641)
- Add unit tests verifying app link route resolution [#2626](https://github.com/lichess-org/mobile/pull/2626) (thanks [r3econ](https://github.com/r3econ))
- Add a test that verifies that lichess.org/gameid opens analysis [#2669](https://github.com/lichess-org/mobile/pull/2669) (thanks [r3econ](https://github.com/r3econ))
- Fix broadcast round eval gauge [#2595](https://github.com/lichess-org/mobile/pull/2595)
- Fix app logs preference [#2596](https://github.com/lichess-org/mobile/pull/2596)
- Fix Puzzle Storm restart buttons [#2600](https://github.com/lichess-org/mobile/pull/2600) (thanks [G1Joshi](https://github.com/G1Joshi))
- Fix Telegram URL in profile [#2648](https://github.com/lichess-org/mobile/pull/2648) (thanks [mistmuth](https://github.com/mistmuth))
- Fix engine evaluation issues [#2650](https://github.com/lichess-org/mobile/pull/2650)
**Site updates**
- Add Epaulette Mate puzzle theme with translation and icon [#19401](https://github.com/lichess-org/lila/pull/19401)
- Add Swallow's Tail Mate puzzle theme with translation and icon [#19402](https://github.com/lichess-org/lila/pull/19402)
- Add tooltip for semantic dates, that shows the date is in UTC [#19277](https://github.com/lichess-org/lila/pull/19277)
- Add hover effect to hidden topnav buttons [#19299](https://github.com/lichess-org/lila/pull/19299), [#19309](https://github.com/lichess-org/lila/pull/19309)
- Add infinite scroll to inbox contacts list [#19339](https://github.com/lichess-org/lila/pull/19339) (thanks [realJimJin](https://github.com/realJimJin))
- Add green success flash for blogs on create/edit/delete [#19355](https://github.com/lichess-org/lila/pull/19355)
- Add blindfold mode toggle button [#19555](https://github.com/lichess-org/lila/pull/19555)
- Add 'h' shortcut to toggle board menu. [#19602](https://github.com/lichess-org/lila/pull/19602)
- Add overflow for `.box` elements where needed [#19636](https://github.com/lichess-org/lila/pull/19636)
- Add trophy image for CWC 2025 [#19305](https://github.com/lichess-org/lila/pull/19305) (thanks [visualdenniss](https://github.com/visualdenniss))
- Add hover styles to checkbox element [#19318](https://github.com/lichess-org/lila/pull/19318) (thanks [Simek](https://github.com/Simek))
- Add board menu toggle for spectators on mobile [#19354](https://github.com/lichess-org/lila/pull/19354) (thanks [realJimJin](https://github.com/realJimJin))
- Add focus outline to radio tabs, update sidenav and header outline [#19368](https://github.com/lichess-org/lila/pull/19368) (thanks [Simek](https://github.com/Simek))
- Broadcasts: Team leaderboard changes and more [#19334](https://github.com/lichess-org/lila/pull/19334)
- Broadcasts: Fix player JSON types [#19343](https://github.com/lichess-org/lila/pull/19343)
- Broadcasts: More player and team JSON fixes [#19364](https://github.com/lichess-org/lila/pull/19364)
- Broadcasts: Ensure only 1 xhr request per tab load on team leaderboard [#19365](https://github.com/lichess-org/lila/pull/19365)
- Broadcasts: Add `fideTC` migration script [#19391](https://github.com/lichess-org/lila/pull/19391)
- Broadcasts: Skip calculating player stats until at least one game is finished [#19619](https://github.com/lichess-org/lila/pull/19619)
- Broadcasts: Remove empty-like tag values from source PGN [#19622](https://github.com/lichess-org/lila/pull/19622)
- Broadcasts: Improve and align player display [#19633](https://github.com/lichess-org/lila/pull/19633) (thanks [Simek](https://github.com/Simek))
- Broadcasts: Avoid DOM traversal in relay round select [#19394](https://github.com/lichess-org/lila/pull/19394) (thanks [Simek](https://github.com/Simek))
- Broadcasts: Fix round info text cutoff at certain widths [#19350](https://github.com/lichess-org/lila/pull/19350) (thanks [realJimJin](https://github.com/realJimJin))
- Broadcasts: Fix and improve tour selects [#19392](https://github.com/lichess-org/lila/pull/19392) (thanks [Simek](https://github.com/Simek))
- Broadcasts: Fix tour tabs keyboard navigation [#19396](https://github.com/lichess-org/lila/pull/19396) (thanks [Simek](https://github.com/Simek))
- Broadcasts: Fix some inputs in creation form [#19516](https://github.com/lichess-org/lila/pull/19516)
- Broadcasts: Fix voice chat display and update document title [#19523](https://github.com/lichess-org/lila/pull/19523)
- Study: Add keyboard navigation to study view tabs [#19397](https://github.com/lichess-org/lila/pull/19397) (thanks [Simek](https://github.com/Simek))
- Study: Add divider, simplify study chapters tabs, [#19411](https://github.com/lichess-org/lila/pull/19411) (thanks [Simek](https://github.com/Simek))
- Study: Add keyboard shortcuts for edit study, edit chapter, create chapter, and to search for chapters in a study [#19577](https://github.com/lichess-org/lila/pull/19577), [#19601](https://github.com/lichess-org/lila/pull/19601)
- Study: Fix 'd' and 'g' shortcuts not working [#19570](https://github.com/lichess-org/lila/pull/19570)
- Schedule hourly Rapid Arena with Increment [#19321](https://github.com/lichess-org/lila/pull/19321) (thanks [Frederico-Messa](https://github.com/Frederico-Messa))
- Extend disconnect timeout with imbalance [#19258](https://github.com/lichess-org/lila/pull/19258)
- Enable fast keyboard move typing [#19656](https://github.com/lichess-org/lila/pull/19656)
- Implement game stream by oauth origin [#19263](https://github.com/lichess-org/lila/pull/19263)
- Implement dynamic default insights metric [#19273](https://github.com/lichess-org/lila/pull/19273)
- Update registration email hint [#19420](https://github.com/lichess-org/lila/pull/19420)
- Make report game link error message neutral [#19483](https://github.com/lichess-org/lila/pull/19483) (thanks [SE-Doctor](https://github.com/SE-Doctor))
- Refactor forum post layout for mobile [#19271](https://github.com/lichess-org/lila/pull/19271) (thanks [Sama-004](https://github.com/Sama-004))
- Scroll extra to daily feed items [#19280](https://github.com/lichess-org/lila/pull/19280)
- Scroll extra if the site header might be shown [#19293](https://github.com/lichess-org/lila/pull/19293)
- Shift top 50 and top 100 trophies up a bit on the perf page [#19308](https://github.com/lichess-org/lila/pull/19308)
- Space out trophy and username on perf page [#19310](https://github.com/lichess-org/lila/pull/19310)
- Adjust required horizontal move swiping delta [#19324](https://github.com/lichess-org/lila/pull/19324)
- Replace println with logger.info in FidePlayerSync [#19331](https://github.com/lichess-org/lila/pull/19331) (thanks [realJimJin](https://github.com/realJimJin))
- More visible NVUI button [#19557](https://github.com/lichess-org/lila/pull/19557)
- Restore daily puzzle title styling [#19599](https://github.com/lichess-org/lila/pull/19599)
- Do not show opponent left counter in zen mode [#19418](https://github.com/lichess-org/lila/pull/19418)
- Prevent puzzle reports from single-move PVs and low-depth searches [#19446](https://github.com/lichess-org/lila/pull/19446)
- Remove verification for streamer online check [#19540](https://github.com/lichess-org/lila/pull/19540)
- Remove unused chapter 'variant' prop [#19276](https://github.com/lichess-org/lila/pull/19276) (thanks [PawelPlutaUek20](https://github.com/PawelPlutaUek20))
- Standardise checkbox/toggle UX on multiboard and study share [#19281](https://github.com/lichess-org/lila/pull/19281) (thanks [nkc-137](https://github.com/nkc-137))
- Streamline markdown textarea tabs appearance [#19314](https://github.com/lichess-org/lila/pull/19314) (thanks [Simek](https://github.com/Simek))
- Enhance user plan update with color unlock notification [#19323](https://github.com/lichess-org/lila/pull/19323) (thanks [zonalraid45](https://github.com/zonalraid45))
- Update KOTH WC 2023 trophy with correct icon [#19330](https://github.com/lichess-org/lila/pull/19330) (thanks [visualdenniss](https://github.com/visualdenniss))
- Do not use links for trophies without `href` [#19335](https://github.com/lichess-org/lila/pull/19335) (thanks [Simek](https://github.com/Simek))
- Show scoresheet scrollbar in Chromium browsers [#19349](https://github.com/lichess-org/lila/pull/19349) (thanks [realJimJin](https://github.com/realJimJin))
- Order language entries [#19569](https://github.com/lichess-org/lila/pull/19569) (thanks [itsbilolbek](https://github.com/itsbilolbek))
- Improve form elements focus styling [#19317](https://github.com/lichess-org/lila/pull/19317) (thanks [Simek](https://github.com/Simek))
- Improve mselect focus state, keyboard navigation and a11y [#19369](https://github.com/lichess-org/lila/pull/19369) (thanks [Simek](https://github.com/Simek))
- Improve lobby dialog keyboard navigation and a11y [#19370](https://github.com/lichess-org/lila/pull/19370) (thanks [Simek](https://github.com/Simek))
- Improve `transition` mixin, support multiple props [#19376](https://github.com/lichess-org/lila/pull/19376) (thanks [Simek](https://github.com/Simek))
- Improve copy-me button styling [#19381](https://github.com/lichess-org/lila/pull/19381) (thanks [Simek](https://github.com/Simek))
- Improve alignment of user activity timeline entries [#19386](https://github.com/lichess-org/lila/pull/19386) (thanks [Simek](https://github.com/Simek))
- Improve copy-me component when target is link [#19487](https://github.com/lichess-org/lila/pull/19487) (thanks [Simek](https://github.com/Simek))
- Improve markdown editor styles, align more with lichess [#19649](https://github.com/lichess-org/lila/pull/19649) (thanks [Simek](https://github.com/Simek))
- Improve blog cards hover appearance [#19650](https://github.com/lichess-org/lila/pull/19650) (thanks [Simek](https://github.com/Simek))
- Improve lobby buttons animations [#19547](https://github.com/lichess-org/lila/pull/19547) (thanks [Simek](https://github.com/Simek))
- Improve readability in picture background mode [#19552](https://github.com/lichess-org/lila/pull/19552) (thanks [Simek](https://github.com/Simek))
- Improve Puzzle Themes page appearance [#19565](https://github.com/lichess-org/lila/pull/19565) (thanks [Simek](https://github.com/Simek))
- Improve team tournament table for mobile [#19574](https://github.com/lichess-org/lila/pull/19574) (thanks [Simek](https://github.com/Simek))
- Improve videos reveal node readability in picture bg mode [#19613](https://github.com/lichess-org/lila/pull/19613) (thanks [Simek](https://github.com/Simek))
- Improve openings tree appearance [#19616](https://github.com/lichess-org/lila/pull/19616) (thanks [Simek](https://github.com/Simek))
- Various select-related tweaks [#19413](https://github.com/lichess-org/lila/pull/19413) (thanks [Simek](https://github.com/Simek))
- Small visual tweaks for forum [#19427](https://github.com/lichess-org/lila/pull/19427) (thanks [Simek](https://github.com/Simek))
- Visual tweaks for Zen mode [#19562](https://github.com/lichess-org/lila/pull/19562) (thanks [Simek](https://github.com/Simek))
- Allow opening user menu w keyboard, update links outline [#19428](https://github.com/lichess-org/lila/pull/19428) (thanks [Simek](https://github.com/Simek))
- Allow focusing home lobby tabs by keyboard [#19461](https://github.com/lichess-org/lila/pull/19461) (thanks [Simek](https://github.com/Simek))
- Allow keyboard interaction with menu bar [#19479](https://github.com/lichess-org/lila/pull/19479) (thanks [Simek](https://github.com/Simek))
- Don't allow focusing disabled fbt buttons [#19481](https://github.com/lichess-org/lila/pull/19481) (thanks [Simek](https://github.com/Simek))
- Only show sitting warning when player is in a losing position [#19435](https://github.com/lichess-org/lila/pull/19435) (thanks [JustinAWei](https://github.com/JustinAWei))
- Extend sitting feedback fix to `SitResign` and equal-material positions [#19447](https://github.com/lichess-org/lila/pull/19447) (thanks [JustinAWei](https://github.com/JustinAWei))
- Cancel stale premoves on game reload [#19437](https://github.com/lichess-org/lila/pull/19437) (thanks [JustinAWei](https://github.com/JustinAWei))
- Match user profile side height with chart [#19443](https://github.com/lichess-org/lila/pull/19443) (thanks [Simek](https://github.com/Simek))
- Use default text size in board control menu [#19549](https://github.com/lichess-org/lila/pull/19549) (thanks [Simek](https://github.com/Simek))
- Align advanced search form appearance [#19550](https://github.com/lichess-org/lila/pull/19550) (thanks [Simek](https://github.com/Simek))
- Tweak tournament table to fit more content, fix box border radius [#19618](https://github.com/lichess-org/lila/pull/19618) (thanks [Simek](https://github.com/Simek))
- Tweak `kbd` appearance, add dark theme support [#19627](https://github.com/lichess-org/lila/pull/19627) (thanks [Simek](https://github.com/Simek))
- Tweak spacing on the Learn page, more concise display on mobile [#19648](https://github.com/lichess-org/lila/pull/19648) (thanks [Simek](https://github.com/Simek))
- Tweak tournament streamers link appearance [#19469](https://github.com/lichess-org/lila/pull/19469) (thanks [Simek](https://github.com/Simek))
- Visual tweaks for the video page [#19498](https://github.com/lichess-org/lila/pull/19498) (thanks [Simek](https://github.com/Simek))
- Remove commented-out dead code [#19448](https://github.com/lichess-org/lila/pull/19448) (thanks [JustinAWei](https://github.com/JustinAWei))
- Remove dead linkPopup.ts, duplicated in dialogs.ts [#19452](https://github.com/lichess-org/lila/pull/19452) (thanks [JustinAWei](https://github.com/JustinAWei))
- Remove padding from team name in tournament [#19470](https://github.com/lichess-org/lila/pull/19470) (thanks [Simek](https://github.com/Simek))
- Remove useless Bookmark class [#19499](https://github.com/lichess-org/lila/pull/19499) (thanks [OwenKrawecki](https://github.com/OwenKrawecki))
- Deduplicate tournament/swiss pagination into shared lib module [#19450](https://github.com/lichess-org/lila/pull/19450) (thanks [JustinAWei](https://github.com/JustinAWei))
- Deduplicate tournament/swiss search into shared pagination module [#19515](https://github.com/lichess-org/lila/pull/19515) (thanks [JustinAWei](https://github.com/JustinAWei))
- Use shared shuffle from lib/algo instead of local duplicate [#19510](https://github.com/lichess-org/lila/pull/19510) (thanks [JustinAWei](https://github.com/JustinAWei))
- Extract shared WikiBooks HTML transforms into lib/wikiBooks [#19511](https://github.com/lichess-org/lila/pull/19511) (thanks [JustinAWei](https://github.com/JustinAWei))
- Extract shared redirectFirst into lib/view/pagination [#19512](https://github.com/lichess-org/lila/pull/19512) (thanks [JustinAWei](https://github.com/JustinAWei))
- Convert close buttons from `<a>` to `<button>` for keyboard accessibility [#19513](https://github.com/lichess-org/lila/pull/19513) (thanks [JustinAWei](https://github.com/JustinAWei))
- Avoid querying the same DOM element multiple times [#19514](https://github.com/lichess-org/lila/pull/19514) (thanks [JustinAWei](https://github.com/JustinAWei))
- Move redirectFirst to lib/tournament [#19522](https://github.com/lichess-org/lila/pull/19522) (thanks [JustinAWei](https://github.com/JustinAWei))
- Prevent stretching of player tip photo [#19583](https://github.com/lichess-org/lila/pull/19583) (thanks [Simek](https://github.com/Simek))
- Hide default Edge password input reveal icon [#19585](https://github.com/lichess-org/lila/pull/19585) (thanks [Simek](https://github.com/Simek))
- Use faded accent color for `tabs-horiz` border when hovered [#19614](https://github.com/lichess-org/lila/pull/19614) (thanks [Simek](https://github.com/Simek))
- Make Lobby display mode and filters keyboard accessible [#19615](https://github.com/lichess-org/lila/pull/19615) (thanks [Simek](https://github.com/Simek))
- Separate eval gauge from mini boards [#19626](https://github.com/lichess-org/lila/pull/19626) (thanks [Simek](https://github.com/Simek))
- Fix checkbox checkmark positioning [#19270](https://github.com/lichess-org/lila/pull/19270) (thanks [nkc-137](https://github.com/nkc-137))
- Fix tablesort CSS [#19272](https://github.com/lichess-org/lila/pull/19272)
- Fix study chapter scroll after DOM recreation when the variants differ [#19274](https://github.com/lichess-org/lila/pull/19274) (thanks [PawelPlutaUek20](https://github.com/PawelPlutaUek20))
- Fix board editor castling rights bug [#19286](https://github.com/lichess-org/lila/pull/19286) (thanks [PawelPlutaUek20](https://github.com/PawelPlutaUek20))
- Fix WebKit WASM bug [#19298](https://github.com/lichess-org/lila/pull/19298)
- Fix subnav icons alignment [#19313](https://github.com/lichess-org/lila/pull/19313) (thanks [Simek](https://github.com/Simek))
- Fix markdown textarea shift on "Write" tab focus [#19327](https://github.com/lichess-org/lila/pull/19327) (thanks [Simek](https://github.com/Simek))
- Fix lobby view toggle not updating immediately [#19336](https://github.com/lichess-org/lila/pull/19336) (thanks [realJimJin](https://github.com/realJimJin))
- Fix rating range sliders moving together in lobby settings [#19348](https://github.com/lichess-org/lila/pull/19348) (thanks [realJimJin](https://github.com/realJimJin))
- Fix study button data-count badge clipped by overflow [#19351](https://github.com/lichess-org/lila/pull/19351) (thanks [realJimJin](https://github.com/realJimJin))
- Fix practice mode not using figurine notation for best move [#19352](https://github.com/lichess-org/lila/pull/19352) (thanks [realJimJin](https://github.com/realJimJin))
- Fix patron currency change page reloading [#19372](https://github.com/lichess-org/lila/pull/19372) (thanks [realJimJin](https://github.com/realJimJin))
- Fix range input focus outline [#19375](https://github.com/lichess-org/lila/pull/19375) (thanks [Simek](https://github.com/Simek))
- Fix missing props module in the lobby package [#19379](https://github.com/lichess-org/lila/pull/19379) (thanks [PawelPlutaUek20](https://github.com/PawelPlutaUek20))
- Fix toggle-box keyboard nav and styling [#19395](https://github.com/lichess-org/lila/pull/19395) (thanks [Simek](https://github.com/Simek))
- Fix viewport width issue on Chrome mobile browser [#19400](https://github.com/lichess-org/lila/pull/19400) (thanks [sobhihamadi](https://github.com/sobhihamadi))
- Fix puzzles not working correctly [#19425](https://github.com/lichess-org/lila/pull/19425) (thanks [PawelPlutaUek20](https://github.com/PawelPlutaUek20))
- Fix using correct Android app ID in StaticContent.scala [#19431](https://github.com/lichess-org/lila/pull/19431) (thanks [Tarek-9](https://github.com/Tarek-9))
- Fix patron donations in BGN currency not supported, but still present [#19433](https://github.com/lichess-org/lila/pull/19433) (thanks [Ivan-Shaml](https://github.com/Ivan-Shaml))
- Fix `.fbt` anchors color [#19442](https://github.com/lichess-org/lila/pull/19442) (thanks [Simek](https://github.com/Simek))
- Fix keyboard interactions for puzzles [#19484](https://github.com/lichess-org/lila/pull/19484) (thanks [Simek](https://github.com/Simek))
- Fix misleading import alias in swiss search [#19449](https://github.com/lichess-org/lila/pull/19449) (thanks [JustinAWei](https://github.com/JustinAWei))
- Fix event listener accumulation and unsafe DOM traversal [#19451](https://github.com/lichess-org/lila/pull/19451) (thanks [JustinAWei](https://github.com/JustinAWei))
- Fix focus order on the homepage [#19460](https://github.com/lichess-org/lila/pull/19460) (thanks [Simek](https://github.com/Simek))
- Fix location flag alignment in user profile [#19468](https://github.com/lichess-org/lila/pull/19468) (thanks [Simek](https://github.com/Simek))
- Fix impossible to select challenge reason [#19508](https://github.com/lichess-org/lila/pull/19508) (thanks [PawelPlutaUek20](https://github.com/PawelPlutaUek20))
- Fix closed accounts not being displayed when listing blocked accounts [#19551](https://github.com/lichess-org/lila/pull/19551)
- Fix boxes compositing context in picture background mode [#19575](https://github.com/lichess-org/lila/pull/19575) (thanks [Simek](https://github.com/Simek))
- Fix game view overflow on very small mobile devices [#19576](https://github.com/lichess-org/lila/pull/19576) (thanks [Simek](https://github.com/Simek))
- Fix incorrect size of power tips when calculating position [#19581](https://github.com/lichess-org/lila/pull/19581) (thanks [Simek](https://github.com/Simek))
- Fix game result alignment on player profile [#19584](https://github.com/lichess-org/lila/pull/19584) (thanks [Simek](https://github.com/Simek))
- Fix user inbox text overflow [#19598](https://github.com/lichess-org/lila/pull/19598) (thanks [Simek](https://github.com/Simek))
- Fix chapter titles not taking names from PGN, add default name `true` [#19624](https://github.com/lichess-org/lila/pull/19624) (thanks [Zinkelburger](https://github.com/Zinkelburger))
- Lichobile: End-of-life notice [#2583](https://github.com/lichess-org/lichobile/pull/2583) (thanks [jas14](https://github.com/jas14))
- Lila-ws: Replace `println` with proper `logger` in RoundCrowd [#810](https://github.com/lichess-org/lila-ws/pull/810) (thanks [realJimJin](https://github.com/realJimJin))
- Lila-ws: Fix grammar in README [#809](https://github.com/lichess-org/lila-ws/pull/809) (thanks [realJimJin](https://github.com/realJimJin))
- Op1: Update README.md to fix a typo [#1](https://github.com/lichess-org/op1/pull/1) (thanks [andrewkornder](https://github.com/andrewkornder))
- Pgn-viewer: Set Pane type on corresponding class member [#52](https://github.com/lichess-org/pgn-viewer/pull/52) (thanks [dragunovartem99](https://github.com/dragunovartem99))
- Pgn-viewer: Fix disabled elements not firing mouse events [#61](https://github.com/lichess-org/pgn-viewer/pull/61) (thanks [PawelPlutaUek20](https://github.com/PawelPlutaUek20))
- Pgn-viewer: Fix `cg-custom-below` position [#62](https://github.com/lichess-org/pgn-viewer/pull/62) (thanks [PawelPlutaUek20](https://github.com/PawelPlutaUek20))
- Scalachess: Fix tiebreak direct encounter calculation and other tweaks [#804](https://github.com/lichess-org/scalachess/pull/804)
**API updates**
- API Docs: Fix current game response schema and examples [#605](https://github.com/lichess-org/api/pull/605)
- API Docs: Add oneOf for other Game endpoints that can be pgn or ndjson [#607](https://github.com/lichess-org/api/pull/607)
- API Docs: Document broadcast team leaderboard endpoint [#608](https://github.com/lichess-org/api/pull/608)
- API Docs: Add `fideTC` for `RelayTour.player` response [#611](https://github.com/lichess-org/api/pull/611)
- API Docs: Relay players updates [#612](https://github.com/lichess-org/api/pull/612) (thanks [allanjoseph98](https://github.com/allanjoseph98))
- API Docs: Describe user preference fields [#616](https://github.com/lichess-org/api/pull/616) (thanks [bryghtlabs-richard](https://github.com/bryghtlabs-richard))
- API Docs: Update api-player-top-nb-perfType.yaml [#617](https://github.com/lichess-org/api/pull/617) (thanks [SE-Doctor](https://github.com/SE-Doctor))
- API Docs: Update lichess-api.yaml [#618](https://github.com/lichess-org/api/pull/618) (thanks [SE-Doctor](https://github.com/SE-Doctor))
**Accessibility updates**
- NVUI: Allow ceval on tournament landing page [#19664](https://github.com/lichess-org/lila/pull/19664)
- NVUI: Fix `renderPlayer` [#19416](https://github.com/lichess-org/lila/pull/19416)
- Translate common broadcast group names [#19268](https://github.com/lichess-org/lila/pull/19268)
- Translate FIDE Federation names [#19399](https://github.com/lichess-org/lila/pull/19399)
- Broadcast i18n tweaks and additions [#19295](https://github.com/lichess-org/lila/pull/19295)




