Restructure site for usability

- Add anchor links to every section reference across README,
  repeatedly-changing-systems, and detailed-primers index
- Add Quick-Scan Class/Method Index table for compile-error lookup
- Add Entities/mobs/mob AI topic section to the topic map
- Surface all Minor Migrations subsections individually
- Nest primer pages under Detailed Primers in sidebar
- Enable search
- Replace CSS with cleaner dark theme (system fonts, GitHub palette)
- Remove direct-port-guide.md (21k line inlined primer merge)
- Remove duplicate Google Fonts import from head.hbs
This commit is contained in:
Leclowndu93150 2026-03-15 20:14:48 +01:00
parent df0165537f
commit 7bf7ee6fe6
8 changed files with 731 additions and 22050 deletions

View File

@ -15,4 +15,4 @@ no-section-label = true
additional-css = ["theme/gitbook.css"] additional-css = ["theme/gitbook.css"]
[output.html.search] [output.html.search]
enable = false enable = true

View File

@ -1,285 +1,271 @@
# 1.21.1 to 26.1 NeoForge Porting GitBook # 1.21.1 to 26.1 NeoForge Porting Guide
This GitBook is organized around two goals: This site indexes the upstream NeoForge porting primers so you can jump straight to the section that matters.
1. Keep every upstream primer page available on its own.
2. Make the main page a topic map so you can jump straight to the primers that matter for a subsystem, workflow, or type of breakage.
The upstream chain covered here is: The upstream chain covered here is:
`1.21.1 -> 1.21.2/3 -> 1.21.4 -> 1.21.5 -> 1.21.6 -> 1.21.7 -> 1.21.8 -> 1.21.9 -> 1.21.10 -> 1.21.11 -> 26.1` `1.21.1 -> 1.21.2/3 -> 1.21.4 -> 1.21.5 -> 1.21.6 -> 1.21.7 -> 1.21.8 -> 1.21.9 -> 1.21.10 -> 1.21.11 -> 26.1`
There is no separate `1.21.3` primer upstream. The `1.21.2` primer is the upstream `1.21.1 -> 1.21.2/3` step and is treated that way here. There is no separate `1.21.3` primer upstream. The `1.21.2` primer covers the `1.21.1 -> 1.21.2/3` step.
## How to use this GitBook ## How to use this site
If you already know the kind of change you are looking for, use the topic map below. **If you know what subsystem changed**, use the [Topic Map](#topic-map) below. Every link goes directly to the relevant section.
If you want a short compiled overview first, use: **If the same subsystem changed across multiple versions**, see [Repeatedly Changing Systems](repeatedly-changing-systems.md) for the reading order.
- [Compiled Direct Port Guide](direct-port-guide.md) **If you want the raw primers**, see [Detailed Primers](detailed-primers/README.md) for a full table of contents with anchor links to every section.
If you want the raw primers as separate pages, use: **If you have a compile error**, use the [Class and Method Index](#class-and-method-index) to find where it changed.
- [Detailed Primers](detailed-primers/README.md) ---
If you want a quick view of which subsystems changed repeatedly across multiple versions, use:
- [Repeatedly Changing Systems](repeatedly-changing-systems.md)
## Topic Map ## Topic Map
### Build, mappings, names, imports, and package moves **Build, mappings, names, imports, and package moves**
For Java version bumps, deobfuscation, `ResourceLocation` to `Identifier`, utility-package moves, `critereon` to `criterion`, and large import/package shuffles, go to: - [The Rename Shuffle](detailed-primers/1.21.11-from-1.21.10.md#the-rename-shuffle) (1.21.11)
- [ResourceLocation to Identifier](detailed-primers/1.21.11-from-1.21.10.md#resourcelocation-to-identifier) (1.21.11)
- [The util Package](detailed-primers/1.21.11-from-1.21.10.md#the-util-package) (1.21.11)
- [critereon to criterion](detailed-primers/1.21.11-from-1.21.10.md#critereon-to-criterion) (1.21.11)
- [Entity and Object Subpackages](detailed-primers/1.21.11-from-1.21.10.md#entity-and-object-subpackages) (1.21.11)
- [Java 25 and Deobfuscation](detailed-primers/26.1-from-1.21.11.md#java-25-and-deobfuscation) (26.1)
- [JSpecify Annotations](detailed-primers/1.21.11-from-1.21.10.md#jspecify-annotations) (1.21.11)
- [Usage Annotations](detailed-primers/1.21.11-from-1.21.10.md#usage-annotations) (1.21.11)
- [1.21.10 -> 1.21.11](detailed-primers/1.21.11-from-1.21.10.md): `The Rename Shuffle` **Datagen, packs, registries, tags, codecs, loot, validation, and recipe serialization**
- [1.21.11 -> 26.1](detailed-primers/26.1-from-1.21.11.md): `Java 25 and Deobfuscation`
- [1.21.10 -> 1.21.11](detailed-primers/1.21.11-from-1.21.10.md): `Minor Migrations`
- [1.21.11 -> 26.1](detailed-primers/26.1-from-1.21.11.md): `Minor Migrations`
### Datagen, packs, registries, tags, codecs, loot, validation, and recipe serialization - [The Holder Set Transition](detailed-primers/1.21.2-from-1.21.1.md#the-holder-set-transition) (1.21.2)
- [The Ingredient Shift](detailed-primers/1.21.2-from-1.21.1.md#the-ingredient-shift) (1.21.2)
- [Recipes, now in Registry format](detailed-primers/1.21.2-from-1.21.1.md#recipes-now-in-registry-format) (1.21.2)
- [Recipe Providers, the 'not actually' of Data Providers](detailed-primers/1.21.2-from-1.21.1.md#recipe-providers-the-not-actually-of-data-providers) (1.21.2)
- [Instruments, the Datapack Edition](detailed-primers/1.21.2-from-1.21.1.md#instruments-the-datapack-edition) (1.21.2)
- [Trial Spawner Configurations, now in Datapack Form](detailed-primers/1.21.2-from-1.21.1.md#trial-spawner-configurations-now-in-datapack-form) (1.21.2)
- [Critereons, Supplied with HolderGetters](detailed-primers/1.21.2-from-1.21.1.md#critereons-supplied-with-holdergetters) (1.21.2 minor)
- [Codecable Json Reload Listener](detailed-primers/1.21.2-from-1.21.1.md#codecable-json-reload-listener) (1.21.2 minor)
- [Context Keys](detailed-primers/1.21.2-from-1.21.1.md#context-keys) (1.21.2 minor)
- [SimpleJsonResourceReloadListener](detailed-primers/1.21.4-from-1.21.2-3.md#simplejsonresourcereloadlistener) (1.21.4 minor)
- [MetadataSectionSerializer, replaced by Codecs](detailed-primers/1.21.4-from-1.21.2-3.md#metadatasectionserializer-replaced-by-codecs) (1.21.4 minor)
- [Tags and Parsing](detailed-primers/1.21.5-from-1.21.4.md#tags-and-parsing) (1.21.5)
- [Model Rework](detailed-primers/1.21.5-from-1.21.4.md#model-rework) (1.21.5)
- [Registry Context Swapper](detailed-primers/1.21.5-from-1.21.4.md#registry-context-swapper) (1.21.5 minor)
- [Timer Callbacks, joining the codec club!](detailed-primers/1.21.5-from-1.21.4.md#timer-callbacks-joining-the-codec-club) (1.21.5 minor)
- [Tag Providers: Appender Rewrite](detailed-primers/1.21.6-from-1.21.5.md#tag-providers-appender-rewrite) (1.21.6)
- [Generic Encoding and Decoding: Replacing Direct NBT Access](detailed-primers/1.21.6-from-1.21.5.md#generic-encoding-and-decoding-replacing-direct-nbt-access) (1.21.6)
- [Loot Type Unrolling](detailed-primers/26.1-from-1.21.11.md#loot-type-unrolling) (26.1)
- [Validation Overhaul](detailed-primers/26.1-from-1.21.11.md#validation-overhaul) (26.1)
- [Datapack Villager Trades](detailed-primers/26.1-from-1.21.11.md#datapack-villager-trades) (26.1)
- [Serializer Records and Recipe Info](detailed-primers/26.1-from-1.21.11.md#serializer-records-and-recipe-info) (26.1)
- [New Tag Providers](detailed-primers/26.1-from-1.21.11.md#new-tag-providers) (26.1 minor)
- [Plantable Tags](detailed-primers/26.1-from-1.21.11.md#plantable-tags) (26.1 minor)
For holder sets, ingredients, recipe registry changes, datapack-facing systems, tag/provider rewrites, generic encoding, loot codec registration, validation, and serializer structure changes, go to: **Items, components, equipment, armor, tools, combat, dyes, and consumables**
- [1.21.1 -> 1.21.2/3](detailed-primers/1.21.2-from-1.21.1.md): `Pack Changes` - [Equipments and Items, Models and All](detailed-primers/1.21.2-from-1.21.1.md#equipments-and-items-models-and-all) (1.21.2)
- [1.21.1 -> 1.21.2/3](detailed-primers/1.21.2-from-1.21.1.md): `The Holder Set Transition` - [Armor Materials, Equipment, and Model (Textures)](detailed-primers/1.21.2-from-1.21.1.md#armor-materials-equipment-and-model-textures) (1.21.2)
- [1.21.1 -> 1.21.2/3](detailed-primers/1.21.2-from-1.21.1.md): `Instruments, the Datapack Edition` - [Consumables](detailed-primers/1.21.2-from-1.21.1.md#consumables) (1.21.2)
- [1.21.1 -> 1.21.2/3](detailed-primers/1.21.2-from-1.21.1.md): `Trial Spawner Configurations, now in Datapack Form` - [Interaction Results](detailed-primers/1.21.2-from-1.21.1.md#interaction-results) (1.21.2)
- [1.21.1 -> 1.21.2/3](detailed-primers/1.21.2-from-1.21.1.md): `Recipe Providers, the 'not actually' of Data Providers` - [BlockEntityTypes Privatized!](detailed-primers/1.21.2-from-1.21.1.md#blockentitytypes-privatized) (1.21.2)
- [1.21.1 -> 1.21.2/3](detailed-primers/1.21.2-from-1.21.1.md): `The Ingredient Shift` - [Registry Objcet Id, in the Properties?](detailed-primers/1.21.2-from-1.21.1.md#registry-objcet-id-in-the-properties) (1.21.2)
- [1.21.1 -> 1.21.2/3](detailed-primers/1.21.2-from-1.21.1.md): `Recipes, now in Registry format` - [Properties Changes](detailed-primers/1.21.2-from-1.21.1.md#properties-changes) (1.21.2)
- [1.21.4 -> 1.21.5](detailed-primers/1.21.5-from-1.21.4.md): `Tags and Parsing` - [Fuel Values](detailed-primers/1.21.2-from-1.21.1.md#fuel-values) (1.21.2 minor)
- [1.21.4 -> 1.21.5](detailed-primers/1.21.5-from-1.21.4.md): `Model Rework` - [Mob Replacing Current Items](detailed-primers/1.21.4-from-1.21.2-3.md#mob-replacing-current-items) (1.21.4)
- [1.21.5 -> 1.21.6](detailed-primers/1.21.6-from-1.21.5.md): `Tag Providers: Appender Rewrite` - [Weapons, Tools, and Armor: Removing the Redundancies](detailed-primers/1.21.5-from-1.21.4.md#weapons-tools-and-armor-removing-the-redundancies) (1.21.5)
- [1.21.5 -> 1.21.6](detailed-primers/1.21.6-from-1.21.5.md): `Generic Encoding and Decoding: Replacing Direct NBT Access` - [Data Component Getters](detailed-primers/1.21.5-from-1.21.4.md#data-component-getters) (1.21.5)
- [1.21.10 -> 1.21.11](detailed-primers/1.21.11-from-1.21.10.md): `The Rename Shuffle` - [Component Interaction Events](detailed-primers/1.21.5-from-1.21.4.md#component-interaction-events) (1.21.5 minor)
- [1.21.11 -> 26.1](detailed-primers/26.1-from-1.21.11.md): `Loot Type Unrolling` - [Item Owner](detailed-primers/1.21.9-from-1.21.8.md#item-owner) (1.21.9 minor)
- [1.21.11 -> 26.1](detailed-primers/26.1-from-1.21.11.md): `Validation Overhaul` - [Container User](detailed-primers/1.21.9-from-1.21.8.md#container-user) (1.21.9 minor)
- [1.21.11 -> 26.1](detailed-primers/26.1-from-1.21.11.md): `Datapack Villager Trades` - [Slot Sources](detailed-primers/1.21.11-from-1.21.10.md#slot-sources) (1.21.11 minor)
- [1.21.11 -> 26.1](detailed-primers/26.1-from-1.21.11.md): `Serializer Records and Recipe Info` - [New Data Components](detailed-primers/1.21.11-from-1.21.10.md#new-data-components) (1.21.11)
- [Data Component Initializers](detailed-primers/26.1-from-1.21.11.md#data-component-initializers) (26.1)
- [Item Instances and Stack Templates](detailed-primers/26.1-from-1.21.11.md#item-instances-and-stack-templates) (26.1)
- [Dye Component](detailed-primers/26.1-from-1.21.11.md#dye-component) (26.1)
- [Data Component Additions](detailed-primers/26.1-from-1.21.11.md#data-component-additions) (26.1 minor)
### Items, components, equipment, armor, tools, combat, dyes, and consumables **Rendering, models, shaders, particles, block models, item models, materials, atlases, and visual pipelines**
For modern item setup, item/equipment data, armor/equippable changes, consumables, cooldowns, data components, dye behavior, and stack-template changes, go to: - [Gui Render Types](detailed-primers/1.21.2-from-1.21.1.md#gui-render-types) (1.21.2)
- [Shader Rewrites](detailed-primers/1.21.2-from-1.21.1.md#shader-rewrites) (1.21.2)
- [Entity Render States](detailed-primers/1.21.2-from-1.21.1.md#entity-render-states) (1.21.2)
- [Fog Parameters](detailed-primers/1.21.2-from-1.21.1.md#fog-parameters) (1.21.2 minor)
- [Light Emissions](detailed-primers/1.21.2-from-1.21.1.md#light-emissions) (1.21.2 minor)
- [Map Textures](detailed-primers/1.21.2-from-1.21.1.md#map-textures) (1.21.2 minor)
- [Client Items](detailed-primers/1.21.4-from-1.21.2-3.md#client-items) (1.21.4)
- [Particles, rendered through Render Types](detailed-primers/1.21.4-from-1.21.2-3.md#particles-rendered-through-render-types) (1.21.4)
- [Render Pipeline Rework](detailed-primers/1.21.5-from-1.21.4.md#render-pipeline-rework) (1.21.5)
- [Model Rework](detailed-primers/1.21.5-from-1.21.4.md#model-rework) (1.21.5)
- [Texture Atlas Reworks](detailed-primers/1.21.5-from-1.21.4.md#texture-atlas-reworks) (1.21.5 minor)
- [GUI Changes](detailed-primers/1.21.6-from-1.21.5.md#gui-changes) (1.21.6)
- [Blaze3d Changes](detailed-primers/1.21.6-from-1.21.5.md#blaze3d-changes) (1.21.6)
- [Removal of Mob Effects Atlas](detailed-primers/1.21.6-from-1.21.5.md#removal-of-mob-effects-atlas) (1.21.6 minor)
- [Animation Baking](detailed-primers/1.21.6-from-1.21.5.md#animation-baking) (1.21.6 minor)
- [ChunkSectionLayers](detailed-primers/1.21.6-from-1.21.5.md#chunksectionlayers) (1.21.6 minor)
- [Minor Migrations](detailed-primers/1.21.7-from-1.21.6.md#minor-migrations) (1.21.7 -- GUI render follow-ups)
- [Minor Migrations](detailed-primers/1.21.8-from-1.21.7.md#minor-migrations) (1.21.8 -- GraphicsWorkarounds)
- [Feature Submissions: The Movie](detailed-primers/1.21.9-from-1.21.8.md#feature-submissions-the-movie) (1.21.9)
- [The Font Glyph Pipeline](detailed-primers/1.21.9-from-1.21.8.md#the-font-glyph-pipeline) (1.21.9)
- [Client Asset Split](detailed-primers/1.21.9-from-1.21.8.md#client-asset-split) (1.21.9 minor)
- [Oh Hey, Another Rendering Rewrite](detailed-primers/1.21.11-from-1.21.10.md#oh-hey-another-rendering-rewrite) (1.21.11)
- [Gizmos](detailed-primers/1.21.11-from-1.21.10.md#gizmos) (1.21.11)
- [Even More Rendering Changes](detailed-primers/26.1-from-1.21.11.md#even-more-rendering-changes) (26.1)
- [Entity Textures and Adult/Baby Models](detailed-primers/26.1-from-1.21.11.md#entity-textures-and-adultbaby-models) (26.1 minor)
- [Audio Changes](detailed-primers/26.1-from-1.21.11.md#audio-changes) (26.1 minor)
- [1.21.1 -> 1.21.2/3](detailed-primers/1.21.2-from-1.21.1.md): `Equipments and Items, Models and All` **Entities, mobs, mob AI, conversions, spawning, and entity data**
- [1.21.1 -> 1.21.2/3](detailed-primers/1.21.2-from-1.21.1.md): `Armor Materials, Equipment, and Model (Textures)`
- [1.21.1 -> 1.21.2/3](detailed-primers/1.21.2-from-1.21.1.md): `Interaction Results`
- [1.21.1 -> 1.21.2/3](detailed-primers/1.21.2-from-1.21.1.md): `BlockEntityTypes Privatized!`
- [1.21.1 -> 1.21.2/3](detailed-primers/1.21.2-from-1.21.1.md): `Consumables`
- [1.21.1 -> 1.21.2/3](detailed-primers/1.21.2-from-1.21.1.md): `Registry Objcet Id, in the Properties?`
- [1.21.1 -> 1.21.2/3](detailed-primers/1.21.2-from-1.21.1.md): `Properties Changes`
- [1.21.2/3 -> 1.21.4](detailed-primers/1.21.4-from-1.21.2-3.md): `Mob Replacing Current Items`
- [1.21.4 -> 1.21.5](detailed-primers/1.21.5-from-1.21.4.md): `Weapons, Tools, and Armor: Removing the Redundancies`
- [1.21.4 -> 1.21.5](detailed-primers/1.21.5-from-1.21.4.md): `Data Component Getters`
- [1.21.10 -> 1.21.11](detailed-primers/1.21.11-from-1.21.10.md): `New Data Components`
- [1.21.11 -> 26.1](detailed-primers/26.1-from-1.21.11.md): `Data Component Initializers`
- [1.21.11 -> 26.1](detailed-primers/26.1-from-1.21.11.md): `Item Instances and Stack Templates`
- [1.21.11 -> 26.1](detailed-primers/26.1-from-1.21.11.md): `Dye Component`
### Rendering, models, shaders, particles, block models, item models, materials, atlases, and visual pipelines - [Interaction Results](detailed-primers/1.21.2-from-1.21.1.md#interaction-results) (1.21.2)
- [EXPLOOOOSSSION!](detailed-primers/1.21.2-from-1.21.1.md#exploooosssion) (1.21.2 minor -- `Explosion` is now an interface)
- [Mob Conversions](detailed-primers/1.21.2-from-1.21.1.md#mob-conversions) (1.21.2 minor -- `Mob#convertTo` changed)
- [Minecart Behavior](detailed-primers/1.21.2-from-1.21.1.md#minecart-behavior) (1.21.2 minor)
- [Ender Pearl Chunk Loading](detailed-primers/1.21.2-from-1.21.1.md#ender-pearl-chunk-loading) (1.21.2 minor)
- [Entity References](detailed-primers/1.21.5-from-1.21.4.md#entity-references) (1.21.5 minor -- UUID replaced by `EntityReference`)
- [Leashes](detailed-primers/1.21.6-from-1.21.5.md#leashes) (1.21.6 minor)
- [Typed Entity Data](detailed-primers/1.21.9-from-1.21.8.md#typed-entity-data) (1.21.9 minor)
- [Name And Id](detailed-primers/1.21.9-from-1.21.8.md#name-and-id) (1.21.9 minor)
- [The Removal of interactAt](detailed-primers/26.1-from-1.21.11.md#the-removal-of-interactat) (26.1 minor -- `Entity#interactAt` removed)
- [Activities and Brains](detailed-primers/26.1-from-1.21.11.md#activities-and-brains) (26.1 minor -- AI brain system changes)
- [More Entity Sound Variant Registries](detailed-primers/26.1-from-1.21.11.md#more-entity-sound-variant-registries) (26.1 minor)
- [Zombie Nautilus Variant](detailed-primers/1.21.11-from-1.21.10.md#zombie-nautilus-variant) (1.21.11 minor)
For shaders, render types, render states, client items, particles, model baking, render pipeline rewrites, block/item model systems, atlas/material changes, GUI rendering internals, and the large `26.1` rendering pass, go to: **GUI, input, keybinds, debug screens, debug tooling, RPC tooling, and test infrastructure**
- [1.21.1 -> 1.21.2/3](detailed-primers/1.21.2-from-1.21.1.md): `Gui Render Types` - [Gui Render Types](detailed-primers/1.21.2-from-1.21.1.md#gui-render-types) (1.21.2)
- [1.21.1 -> 1.21.2/3](detailed-primers/1.21.2-from-1.21.1.md): `Shader Rewrites` - [The Game Test Overhaul](detailed-primers/1.21.5-from-1.21.4.md#the-game-test-overhaul) (1.21.5)
- [1.21.1 -> 1.21.2/3](detailed-primers/1.21.2-from-1.21.1.md): `Entity Render States` - [GUI Changes](detailed-primers/1.21.6-from-1.21.5.md#gui-changes) (1.21.6)
- [1.21.1 -> 1.21.2/3](detailed-primers/1.21.2-from-1.21.1.md): `Equipments and Items, Models and All` - [Minor Migrations](detailed-primers/1.21.7-from-1.21.6.md#minor-migrations) (1.21.7)
- [1.21.1 -> 1.21.2/3](detailed-primers/1.21.2-from-1.21.1.md): `Armor Materials, Equipment, and Model (Textures)` - [The Debugging Overhaul](detailed-primers/1.21.9-from-1.21.8.md#the-debugging-overhaul) (1.21.9)
- [1.21.2/3 -> 1.21.4](detailed-primers/1.21.4-from-1.21.2-3.md): `Client Items` - [Debug Screens](detailed-primers/1.21.9-from-1.21.8.md#debug-screens) (1.21.9)
- [1.21.2/3 -> 1.21.4](detailed-primers/1.21.4-from-1.21.2-3.md): `Particles, rendered through Render Types` - [The JSON-RPC Management Servers](detailed-primers/1.21.9-from-1.21.8.md#the-json-rpc-management-servers) (1.21.9)
- [1.21.4 -> 1.21.5](detailed-primers/1.21.5-from-1.21.4.md): `Render Pipeline Rework` - [Input Handling Consolidation](detailed-primers/1.21.9-from-1.21.8.md#input-handling-consolidation) (1.21.9)
- [1.21.4 -> 1.21.5](detailed-primers/1.21.5-from-1.21.4.md): `Model Rework` - [Cursor Types](detailed-primers/1.21.9-from-1.21.8.md#cursor-types) (1.21.9 minor)
- [1.21.5 -> 1.21.6](detailed-primers/1.21.6-from-1.21.5.md): `GUI Changes` - [Gizmos](detailed-primers/1.21.11-from-1.21.10.md#gizmos) (1.21.11)
- [1.21.5 -> 1.21.6](detailed-primers/1.21.6-from-1.21.5.md): `Blaze3d Changes` - [Text Collectors](detailed-primers/1.21.11-from-1.21.10.md#text-collectors) (1.21.11 minor)
- [1.21.6 -> 1.21.7](detailed-primers/1.21.7-from-1.21.6.md): `Minor Migrations` - [OptionEnum Removal](detailed-primers/1.21.11-from-1.21.10.md#optionenum-removal) (1.21.11 minor)
- [1.21.7 -> 1.21.8](detailed-primers/1.21.8-from-1.21.7.md): `Minor Migrations` - [Container Screen Changes](detailed-primers/26.1-from-1.21.11.md#container-screen-changes) (26.1 minor)
- [1.21.8 -> 1.21.9](detailed-primers/1.21.9-from-1.21.8.md): `Feature Submissions: The Movie` - [Input Message Editor Support](detailed-primers/26.1-from-1.21.11.md#input-message-editor-support) (26.1 minor)
- [1.21.8 -> 1.21.9](detailed-primers/1.21.9-from-1.21.8.md): `The Font Glyph Pipeline` - [Test Environment State Tracking](detailed-primers/26.1-from-1.21.11.md#test-environment-state-tracking) (26.1 minor)
- [1.21.10 -> 1.21.11](detailed-primers/1.21.11-from-1.21.10.md): `Oh Hey, Another Rendering Rewrite`
- [1.21.10 -> 1.21.11](detailed-primers/1.21.11-from-1.21.10.md): `Gizmos`
- [1.21.11 -> 26.1](detailed-primers/26.1-from-1.21.11.md): `Even More Rendering Changes`
### GUI, input, keybinds, debug screens, debug tooling, RPC tooling, and test infrastructure **World state, saved data, game rules, timelines, clocks, players, permissions, waypoints, and other server-side systems**
For GUI framework changes, input events, key categories, debug renderers, debug screens, tooling servers, and game tests, go to: - [Handling the Removal of Block Entities Properly](detailed-primers/1.21.5-from-1.21.4.md#handling-the-removal-of-block-entities-properly) (1.21.5)
- [Voxel Shape Helpers](detailed-primers/1.21.5-from-1.21.4.md#voxel-shape-helpers) (1.21.5)
- [Weighted List Rework](detailed-primers/1.21.5-from-1.21.4.md#weighted-list-rework) (1.21.5)
- [Tickets](detailed-primers/1.21.5-from-1.21.4.md#tickets) (1.21.5)
- [Saved Data, now with Types](detailed-primers/1.21.5-from-1.21.4.md#saved-data-now-with-types) (1.21.5)
- [Block Effect Appliers](detailed-primers/1.21.5-from-1.21.4.md#block-effect-appliers) (1.21.5 minor)
- [Waypoints](detailed-primers/1.21.6-from-1.21.5.md#waypoints) (1.21.6)
- [Server Player Changes](detailed-primers/1.21.6-from-1.21.5.md#server-player-changes) (1.21.6)
- [Permission Sources](detailed-primers/1.21.6-from-1.21.5.md#permission-sources) (1.21.6 minor)
- [Level#isClientSide now private](detailed-primers/1.21.9-from-1.21.8.md#levelisclientside-now-private) (1.21.9)
- [Ticket Flags](detailed-primers/1.21.9-from-1.21.8.md#ticket-flags) (1.21.9 minor)
- [Respawn Data](detailed-primers/1.21.9-from-1.21.8.md#respawn-data) (1.21.9 minor)
- [Permission Overhaul](detailed-primers/1.21.11-from-1.21.10.md#permission-overhaul) (1.21.11)
- [The Timeline of Environment Attributes](detailed-primers/1.21.11-from-1.21.10.md#the-timeline-of-environment-attributes) (1.21.11)
- [The Game Rule Shuffle](detailed-primers/1.21.11-from-1.21.10.md#the-game-rule-shuffle) (1.21.11)
- [Level#random field now protected](detailed-primers/26.1-from-1.21.11.md#levelrandom-field-now-protected) (26.1)
- [World Clocks and Time Markers](detailed-primers/26.1-from-1.21.11.md#world-clocks-and-time-markers) (26.1)
- [Splitting the Primary Level Data into Saved Data](detailed-primers/26.1-from-1.21.11.md#splitting-the-primary-level-data-into-saved-data) (26.1)
- [Chat Permissions](detailed-primers/26.1-from-1.21.11.md#chat-permissions) (26.1 minor)
- [ChunkPos, now a record](detailed-primers/26.1-from-1.21.11.md#chunkpos-now-a-record) (26.1 minor)
- [Cauldron Interaction Dispatchers](detailed-primers/26.1-from-1.21.11.md#cauldron-interaction-dispatchers) (26.1 minor)
- [Fluid Logic Reorganization](detailed-primers/26.1-from-1.21.11.md#fluid-logic-reorganization) (26.1 minor)
- [Removal of Random Patch Feature](detailed-primers/26.1-from-1.21.11.md#removal-of-random-patch-feature) (26.1 minor)
- [Rule-Based Block State Providers](detailed-primers/26.1-from-1.21.11.md#rule-based-block-state-providers) (26.1 minor)
- [File Fixer Upper](detailed-primers/26.1-from-1.21.11.md#file-fixer-upper) (26.1 minor)
- [1.21.1 -> 1.21.2/3](detailed-primers/1.21.2-from-1.21.1.md): `Gui Render Types` **Remaining minor migrations**
- [1.21.4 -> 1.21.5](detailed-primers/1.21.5-from-1.21.4.md): `The Game Test Overhaul`
- [1.21.5 -> 1.21.6](detailed-primers/1.21.6-from-1.21.5.md): `GUI Changes`
- [1.21.6 -> 1.21.7](detailed-primers/1.21.7-from-1.21.6.md): `Minor Migrations`
- [1.21.8 -> 1.21.9](detailed-primers/1.21.9-from-1.21.8.md): `The Debugging Overhaul`
- [1.21.8 -> 1.21.9](detailed-primers/1.21.9-from-1.21.8.md): `Debug Screens`
- [1.21.8 -> 1.21.9](detailed-primers/1.21.9-from-1.21.8.md): `The JSON-RPC Management Servers`
- [1.21.8 -> 1.21.9](detailed-primers/1.21.9-from-1.21.8.md): `Input Handling Consolidation`
- [1.21.10 -> 1.21.11](detailed-primers/1.21.11-from-1.21.10.md): `Gizmos`
- [1.21.10 -> 1.21.11](detailed-primers/1.21.11-from-1.21.10.md): `Permission Overhaul`
- [1.21.11 -> 26.1](detailed-primers/26.1-from-1.21.11.md): `Java 25 and Deobfuscation`
- [1.21.11 -> 26.1](detailed-primers/26.1-from-1.21.11.md): `Minor Migrations`
### World state, saved data, game rules, timelines, clocks, players, permissions, waypoints, and other server-side systems - [Language File Removals and Renames](detailed-primers/1.21.2-from-1.21.1.md#language-file-removals-and-renames) (1.21.2)
- [MacosUtil#IS_MACOS](detailed-primers/1.21.2-from-1.21.1.md#macosutilis_macos) (1.21.2)
- [Smarter Framerate Limiting](detailed-primers/1.21.2-from-1.21.1.md#smarter-framerate-limiting) (1.21.2)
- [Orientations](detailed-primers/1.21.2-from-1.21.1.md#orientations) (1.21.2)
- [The Removal of the Carving Generation Step](detailed-primers/1.21.2-from-1.21.1.md#the-removal-of-the-carving-generation-step) (1.21.2)
- [Consecutive Executors](detailed-primers/1.21.2-from-1.21.1.md#consecutive-executors) (1.21.2)
- [Profilers and the Tracy Client](detailed-primers/1.21.2-from-1.21.1.md#profilers-and-the-tracy-client) (1.21.2)
- [Tick Throttler](detailed-primers/1.21.2-from-1.21.1.md#tick-throttler) (1.21.2)
- [Music, now with Volume Controls](detailed-primers/1.21.4-from-1.21.2-3.md#music-now-with-volume-controls) (1.21.4)
- [Descoping Player Arguments](detailed-primers/1.21.5-from-1.21.4.md#descoping-player-arguments) (1.21.5)
- [Reload Instance Creation](detailed-primers/1.21.5-from-1.21.4.md#reload-instance-creation) (1.21.5)
- [The JOML Backing Interfaces](detailed-primers/1.21.5-from-1.21.4.md#the-joml-backing-interfaces) (1.21.5)
- [Mob Effects Field Renames](detailed-primers/1.21.5-from-1.21.4.md#mob-effects-field-renames) (1.21.5)
- [Reload Listener Shared State](detailed-primers/1.21.9-from-1.21.8.md#reload-listener-shared-state) (1.21.9)
- [The 'On Shelf' Transform](detailed-primers/1.21.9-from-1.21.8.md#the-on-shelf-transform) (1.21.9)
- [Shared Text Areas Debugger](detailed-primers/1.21.11-from-1.21.10.md#shared-text-areas-debugger) (1.21.11)
- [Specific Logic Changes](detailed-primers/1.21.11-from-1.21.10.md#specific-logic-changes) (1.21.11)
- [Typed Instance](detailed-primers/26.1-from-1.21.11.md#typed-instance) (26.1)
- [No More Tripwire Pipelines](detailed-primers/26.1-from-1.21.11.md#no-more-tripwire-pipelines) (26.1)
- [Environment Attribute Additions](detailed-primers/26.1-from-1.21.11.md#environment-attribute-additions) (26.1)
- [Specific Logic Changes](detailed-primers/26.1-from-1.21.11.md#specific-logic-changes) (26.1)
For block removal flow, voxel shapes, weighted lists, tickets, saved data, server player changes, waypoints, permissions, game rules, timelines, clocks, and level/server data ownership, go to: Every primer also contains `New Tags`, `Tag Changes`, `List of Additions`, `List of Changes`, and `List of Removals` subsections within their Minor Migrations. For those, go to the full primer pages in [Detailed Primers](detailed-primers/README.md).
- [1.21.4 -> 1.21.5](detailed-primers/1.21.5-from-1.21.4.md): `Handling the Removal of Block Entities Properly` ---
- [1.21.4 -> 1.21.5](detailed-primers/1.21.5-from-1.21.4.md): `Voxel Shape Helpers`
- [1.21.4 -> 1.21.5](detailed-primers/1.21.5-from-1.21.4.md): `Weighted List Rework`
- [1.21.4 -> 1.21.5](detailed-primers/1.21.5-from-1.21.4.md): `Tickets`
- [1.21.4 -> 1.21.5](detailed-primers/1.21.5-from-1.21.4.md): `Saved Data, now with Types`
- [1.21.5 -> 1.21.6](detailed-primers/1.21.6-from-1.21.5.md): `Waypoints`
- [1.21.5 -> 1.21.6](detailed-primers/1.21.6-from-1.21.5.md): `Server Player Changes`
- [1.21.8 -> 1.21.9](detailed-primers/1.21.9-from-1.21.8.md): ``Level#isClientSide` now private`
- [1.21.10 -> 1.21.11](detailed-primers/1.21.11-from-1.21.10.md): `Permission Overhaul`
- [1.21.10 -> 1.21.11](detailed-primers/1.21.11-from-1.21.10.md): `The Timeline of Environment Attributes`
- [1.21.10 -> 1.21.11](detailed-primers/1.21.11-from-1.21.10.md): `The Game Rule Shuffle`
- [1.21.11 -> 26.1](detailed-primers/26.1-from-1.21.11.md): ``Level#random` field now protected`
- [1.21.11 -> 26.1](detailed-primers/26.1-from-1.21.11.md): `World Clocks and Time Markers`
- [1.21.11 -> 26.1](detailed-primers/26.1-from-1.21.11.md): `Splitting the Primary Level Data into Saved Data`
### Short releases and catch-all API churn ## Class and Method Index
If the thing you are chasing is not obviously a major subsystem rewrite, check these first: If you have a compile error or need to find where a specific class/method changed, search this table.
- [1.21.1 -> 1.21.2/3](detailed-primers/1.21.2-from-1.21.1.md): `Minor Migrations` | Class / Method | Version | Section |
- [1.21.2/3 -> 1.21.4](detailed-primers/1.21.4-from-1.21.2-3.md): `Minor Migrations` |---|---|---|
- [1.21.4 -> 1.21.5](detailed-primers/1.21.5-from-1.21.4.md): `Minor Migrations` | `AbstractFurnaceBlockEntity` fuel | 1.21.2 | [Fuel Values](detailed-primers/1.21.2-from-1.21.1.md#fuel-values) |
- [1.21.5 -> 1.21.6](detailed-primers/1.21.6-from-1.21.5.md): `Minor Migrations` | `AbstractMinecart` | 1.21.2 | [Minecart Behavior](detailed-primers/1.21.2-from-1.21.1.md#minecart-behavior) |
- [1.21.6 -> 1.21.7](detailed-primers/1.21.7-from-1.21.6.md): `Minor Migrations` | `Activities` / `Brain` | 26.1 | [Activities and Brains](detailed-primers/26.1-from-1.21.11.md#activities-and-brains) |
- [1.21.7 -> 1.21.8](detailed-primers/1.21.8-from-1.21.7.md): `Minor Migrations` | `AnimationDefinition#bake` | 1.21.6 | [Animation Baking](detailed-primers/1.21.6-from-1.21.5.md#animation-baking) |
- [1.21.8 -> 1.21.9](detailed-primers/1.21.9-from-1.21.8.md): `Minor Migrations` | `ArmorItem` / `ArmorMaterial` | 1.21.2 | [Armor Materials, Equipment, and Model (Textures)](detailed-primers/1.21.2-from-1.21.1.md#armor-materials-equipment-and-model-textures) |
- [1.21.9 -> 1.21.10](detailed-primers/1.21.10-from-1.21.9.md): `Minor Migrations` | `BakedModel` / `BakedQuad` | 1.21.5 | [Model Rework](detailed-primers/1.21.5-from-1.21.4.md#model-rework) |
- [1.21.10 -> 1.21.11](detailed-primers/1.21.11-from-1.21.10.md): `Minor Migrations` | `BlockBehaviour#neighborChanged` | 1.21.2 | [Orientations](detailed-primers/1.21.2-from-1.21.1.md#orientations) |
- [1.21.11 -> 26.1](detailed-primers/26.1-from-1.21.11.md): `Minor Migrations` | `BlockEntityType` constructors | 1.21.2 | [BlockEntityTypes Privatized!](detailed-primers/1.21.2-from-1.21.1.md#blockentitytypes-privatized) |
| `CauldronInteraction` | 26.1 | [Cauldron Interaction Dispatchers](detailed-primers/26.1-from-1.21.11.md#cauldron-interaction-dispatchers) |
| `ChunkPos` (now record) | 26.1 | [ChunkPos, now a record](detailed-primers/26.1-from-1.21.11.md#chunkpos-now-a-record) |
| `ChunkSectionLayer` | 1.21.6 | [ChunkSectionLayers](detailed-primers/1.21.6-from-1.21.5.md#chunksectionlayers) |
| Client item JSONs | 1.21.4 | [Client Items](detailed-primers/1.21.4-from-1.21.2-3.md#client-items) |
| `Consumable` / `ConsumableListener` | 1.21.2 | [Consumables](detailed-primers/1.21.2-from-1.21.1.md#consumables) |
| `DataComponents` getters | 1.21.5 | [Data Component Getters](detailed-primers/1.21.5-from-1.21.4.md#data-component-getters) |
| `DataComponents` new types | 1.21.11 | [New Data Components](detailed-primers/1.21.11-from-1.21.10.md#new-data-components) |
| `DataComponents` initializers | 26.1 | [Data Component Initializers](detailed-primers/26.1-from-1.21.11.md#data-component-initializers) |
| `DiggerItem` / `SwordItem` removal | 1.21.5 | [Weapons, Tools, and Armor: Removing the Redundancies](detailed-primers/1.21.5-from-1.21.4.md#weapons-tools-and-armor-removing-the-redundancies) |
| `DyeRecipe` / `DyeItem` | 26.1 | [Dye Component](detailed-primers/26.1-from-1.21.11.md#dye-component) |
| `Entity#interactAt` removal | 26.1 | [The Removal of interactAt](detailed-primers/26.1-from-1.21.11.md#the-removal-of-interactat) |
| `EntityReference` (replaces UUID) | 1.21.5 | [Entity References](detailed-primers/1.21.5-from-1.21.4.md#entity-references) |
| `EntityRenderState` | 1.21.2 | [Entity Render States](detailed-primers/1.21.2-from-1.21.1.md#entity-render-states) |
| `Explosion` (now interface) | 1.21.2 | [EXPLOOOOSSSION!](detailed-primers/1.21.2-from-1.21.1.md#exploooosssion) |
| `GameRules` | 1.21.11 | [The Game Rule Shuffle](detailed-primers/1.21.11-from-1.21.10.md#the-game-rule-shuffle) |
| `GameTest` framework | 1.21.5 | [The Game Test Overhaul](detailed-primers/1.21.5-from-1.21.4.md#the-game-test-overhaul) |
| `GenerationStep$Carving` removal | 1.21.2 | [The Removal of the Carving Generation Step](detailed-primers/1.21.2-from-1.21.1.md#the-removal-of-the-carving-generation-step) |
| `GpuTexture` / `RenderPipeline` | 1.21.5 | [Render Pipeline Rework](detailed-primers/1.21.5-from-1.21.4.md#render-pipeline-rework) |
| `GuiGraphics` / GUI rendering | 1.21.6 | [GUI Changes](detailed-primers/1.21.6-from-1.21.5.md#gui-changes) |
| `Holder` / `HolderSet` / `HolderGetter` | 1.21.2 | [The Holder Set Transition](detailed-primers/1.21.2-from-1.21.1.md#the-holder-set-transition) |
| `Identifier` (was `ResourceLocation`) | 1.21.11 | [ResourceLocation to Identifier](detailed-primers/1.21.11-from-1.21.10.md#resourcelocation-to-identifier) |
| `Ingredient` | 1.21.2 | [The Ingredient Shift](detailed-primers/1.21.2-from-1.21.1.md#the-ingredient-shift) |
| `InteractionResult` | 1.21.2 | [Interaction Results](detailed-primers/1.21.2-from-1.21.1.md#interaction-results) |
| `ItemInstance` / `StackTemplate` | 26.1 | [Item Instances and Stack Templates](detailed-primers/26.1-from-1.21.11.md#item-instances-and-stack-templates) |
| `KeyMapping` / input events | 1.21.9 | [Input Handling Consolidation](detailed-primers/1.21.9-from-1.21.8.md#input-handling-consolidation) |
| `Leashable` | 1.21.6 | [Leashes](detailed-primers/1.21.6-from-1.21.5.md#leashes) |
| `Level#isClientSide` | 1.21.9 | [Level#isClientSide now private](detailed-primers/1.21.9-from-1.21.8.md#levelisclientside-now-private) |
| `Level#random` | 26.1 | [Level#random field now protected](detailed-primers/26.1-from-1.21.11.md#levelrandom-field-now-protected) |
| `LootContextParam` / `LootContextParamSet` | 1.21.2 | [Context Keys](detailed-primers/1.21.2-from-1.21.1.md#context-keys) |
| `LootPoolEntry` / loot codecs | 26.1 | [Loot Type Unrolling](detailed-primers/26.1-from-1.21.11.md#loot-type-unrolling) |
| `Mob#convertTo` | 1.21.2 | [Mob Conversions](detailed-primers/1.21.2-from-1.21.1.md#mob-conversions) |
| `OptionEnum` removal | 1.21.11 | [OptionEnum Removal](detailed-primers/1.21.11-from-1.21.10.md#optionenum-removal) |
| `Permission` / `PermissionSet` | 1.21.11 | [Permission Overhaul](detailed-primers/1.21.11-from-1.21.10.md#permission-overhaul) |
| `Profiler#get` (replaces `getProfiler`) | 1.21.2 | [Profilers and the Tracy Client](detailed-primers/1.21.2-from-1.21.1.md#profilers-and-the-tracy-client) |
| `Recipe` registry format | 1.21.2 | [Recipes, now in Registry format](detailed-primers/1.21.2-from-1.21.1.md#recipes-now-in-registry-format) |
| `RecipeDisplay` / `SlotDisplay` | 1.21.2 | [Recipes, now in Registry format](detailed-primers/1.21.2-from-1.21.1.md#recipes-now-in-registry-format) |
| `RenderType` shuffle | 1.21.11 | [Oh Hey, Another Rendering Rewrite](detailed-primers/1.21.11-from-1.21.10.md#oh-hey-another-rendering-rewrite) |
| `SavedData` / `SavedDataType` | 1.21.5 | [Saved Data, now with Types](detailed-primers/1.21.5-from-1.21.4.md#saved-data-now-with-types) |
| `ServerExplosion` | 1.21.2 | [EXPLOOOOSSSION!](detailed-primers/1.21.2-from-1.21.1.md#exploooosssion) |
| Shader JSON / `.vsh` / `.fsh` | 1.21.2 | [Shader Rewrites](detailed-primers/1.21.2-from-1.21.1.md#shader-rewrites) |
| `SimpleJsonResourceReloadListener` | 1.21.4 | [SimpleJsonResourceReloadListener](detailed-primers/1.21.4-from-1.21.2-3.md#simplejsonresourcereloadlistener) |
| `TagProvider` appender | 1.21.6 | [Tag Providers: Appender Rewrite](detailed-primers/1.21.6-from-1.21.5.md#tag-providers-appender-rewrite) |
| `Validatable` / `ValidationContext` | 26.1 | [Validation Overhaul](detailed-primers/26.1-from-1.21.11.md#validation-overhaul) |
| Villager trades (datapack) | 26.1 | [Datapack Villager Trades](detailed-primers/26.1-from-1.21.11.md#datapack-villager-trades) |
| `VoxelShape` helpers | 1.21.5 | [Voxel Shape Helpers](detailed-primers/1.21.5-from-1.21.4.md#voxel-shape-helpers) |
| `Waypoint` system | 1.21.6 | [Waypoints](detailed-primers/1.21.6-from-1.21.5.md#waypoints) |
| World clocks / time markers | 26.1 | [World Clocks and Time Markers](detailed-primers/26.1-from-1.21.11.md#world-clocks-and-time-markers) |
| World data split | 26.1 | [Splitting the Primary Level Data into Saved Data](detailed-primers/26.1-from-1.21.11.md#splitting-the-primary-level-data-into-saved-data) |
The smallest releases in this chain are still indexed here and should not be skipped: ---
- [1.21.6 -> 1.21.7](detailed-primers/1.21.7-from-1.21.6.md)
- [1.21.7 -> 1.21.8](detailed-primers/1.21.8-from-1.21.7.md)
- [1.21.9 -> 1.21.10](detailed-primers/1.21.10-from-1.21.9.md)
## Complete Section Inventory By Version
This inventory exists so the main page indexes every upstream `##` section used in this GitBook.
### 1.21.1 -> 1.21.2/3
- [1.21.1 -> 1.21.2/3](detailed-primers/1.21.2-from-1.21.1.md): `Pack Changes`
- [1.21.1 -> 1.21.2/3](detailed-primers/1.21.2-from-1.21.1.md): `The Holder Set Transition`
- [1.21.1 -> 1.21.2/3](detailed-primers/1.21.2-from-1.21.1.md): `Gui Render Types`
- [1.21.1 -> 1.21.2/3](detailed-primers/1.21.2-from-1.21.1.md): `Shader Rewrites`
- [1.21.1 -> 1.21.2/3](detailed-primers/1.21.2-from-1.21.1.md): `Entity Render States`
- [1.21.1 -> 1.21.2/3](detailed-primers/1.21.2-from-1.21.1.md): `Equipments and Items, Models and All`
- [1.21.1 -> 1.21.2/3](detailed-primers/1.21.2-from-1.21.1.md): `Armor Materials, Equipment, and Model (Textures)`
- [1.21.1 -> 1.21.2/3](detailed-primers/1.21.2-from-1.21.1.md): `Interaction Results`
- [1.21.1 -> 1.21.2/3](detailed-primers/1.21.2-from-1.21.1.md): `Instruments, the Datapack Edition`
- [1.21.1 -> 1.21.2/3](detailed-primers/1.21.2-from-1.21.1.md): `Trial Spawner Configurations, now in Datapack Form`
- [1.21.1 -> 1.21.2/3](detailed-primers/1.21.2-from-1.21.1.md): `Recipe Providers, the 'not actually' of Data Providers`
- [1.21.1 -> 1.21.2/3](detailed-primers/1.21.2-from-1.21.1.md): `The Ingredient Shift`
- [1.21.1 -> 1.21.2/3](detailed-primers/1.21.2-from-1.21.1.md): `BlockEntityTypes Privatized!`
- [1.21.1 -> 1.21.2/3](detailed-primers/1.21.2-from-1.21.1.md): `Consumables`
- [1.21.1 -> 1.21.2/3](detailed-primers/1.21.2-from-1.21.1.md): `Registry Objcet Id, in the Properties?`
- [1.21.1 -> 1.21.2/3](detailed-primers/1.21.2-from-1.21.1.md): `Properties Changes`
- [1.21.1 -> 1.21.2/3](detailed-primers/1.21.2-from-1.21.1.md): `Recipes, now in Registry format`
- [1.21.1 -> 1.21.2/3](detailed-primers/1.21.2-from-1.21.1.md): `Minor Migrations`
### 1.21.2/3 -> 1.21.4
- [1.21.2/3 -> 1.21.4](detailed-primers/1.21.4-from-1.21.2-3.md): `Pack Changes`
- [1.21.2/3 -> 1.21.4](detailed-primers/1.21.4-from-1.21.2-3.md): `Client Items`
- [1.21.2/3 -> 1.21.4](detailed-primers/1.21.4-from-1.21.2-3.md): `Mob Replacing Current Items`
- [1.21.2/3 -> 1.21.4](detailed-primers/1.21.4-from-1.21.2-3.md): `Particles, rendered through Render Types`
- [1.21.2/3 -> 1.21.4](detailed-primers/1.21.4-from-1.21.2-3.md): `Minor Migrations`
### 1.21.4 -> 1.21.5
- [1.21.4 -> 1.21.5](detailed-primers/1.21.5-from-1.21.4.md): `Pack Changes`
- [1.21.4 -> 1.21.5](detailed-primers/1.21.5-from-1.21.4.md): `Handling the Removal of Block Entities Properly`
- [1.21.4 -> 1.21.5](detailed-primers/1.21.5-from-1.21.4.md): `Voxel Shape Helpers`
- [1.21.4 -> 1.21.5](detailed-primers/1.21.5-from-1.21.4.md): `Weapons, Tools, and Armor: Removing the Redundancies`
- [1.21.4 -> 1.21.5](detailed-primers/1.21.5-from-1.21.4.md): `Weighted List Rework`
- [1.21.4 -> 1.21.5](detailed-primers/1.21.5-from-1.21.4.md): `Tickets`
- [1.21.4 -> 1.21.5](detailed-primers/1.21.5-from-1.21.4.md): `The Game Test Overhaul`
- [1.21.4 -> 1.21.5](detailed-primers/1.21.5-from-1.21.4.md): `Data Component Getters`
- [1.21.4 -> 1.21.5](detailed-primers/1.21.5-from-1.21.4.md): `Tags and Parsing`
- [1.21.4 -> 1.21.5](detailed-primers/1.21.5-from-1.21.4.md): `Saved Data, now with Types`
- [1.21.4 -> 1.21.5](detailed-primers/1.21.5-from-1.21.4.md): `Render Pipeline Rework`
- [1.21.4 -> 1.21.5](detailed-primers/1.21.5-from-1.21.4.md): `Model Rework`
- [1.21.4 -> 1.21.5](detailed-primers/1.21.5-from-1.21.4.md): `Minor Migrations`
### 1.21.5 -> 1.21.6
- [1.21.5 -> 1.21.6](detailed-primers/1.21.6-from-1.21.5.md): `Pack Changes`
- [1.21.5 -> 1.21.6](detailed-primers/1.21.6-from-1.21.5.md): `GUI Changes`
- [1.21.5 -> 1.21.6](detailed-primers/1.21.6-from-1.21.5.md): `Waypoints`
- [1.21.5 -> 1.21.6](detailed-primers/1.21.6-from-1.21.5.md): `Blaze3d Changes`
- [1.21.5 -> 1.21.6](detailed-primers/1.21.6-from-1.21.5.md): `Tag Providers: Appender Rewrite`
- [1.21.5 -> 1.21.6](detailed-primers/1.21.6-from-1.21.5.md): `Generic Encoding and Decoding: Replacing Direct NBT Access`
- [1.21.5 -> 1.21.6](detailed-primers/1.21.6-from-1.21.5.md): `Server Player Changes`
- [1.21.5 -> 1.21.6](detailed-primers/1.21.6-from-1.21.5.md): `Minor Migrations`
### 1.21.6 -> 1.21.7
- [1.21.6 -> 1.21.7](detailed-primers/1.21.7-from-1.21.6.md): `Pack Changes`
- [1.21.6 -> 1.21.7](detailed-primers/1.21.7-from-1.21.6.md): `Minor Migrations`
### 1.21.7 -> 1.21.8
- [1.21.7 -> 1.21.8](detailed-primers/1.21.8-from-1.21.7.md): `Pack Changes`
- [1.21.7 -> 1.21.8](detailed-primers/1.21.8-from-1.21.7.md): `Minor Migrations`
### 1.21.8 -> 1.21.9
- [1.21.8 -> 1.21.9](detailed-primers/1.21.9-from-1.21.8.md): `Pack Changes`
- [1.21.8 -> 1.21.9](detailed-primers/1.21.9-from-1.21.8.md): `The Debugging Overhaul`
- [1.21.8 -> 1.21.9](detailed-primers/1.21.9-from-1.21.8.md): `Debug Screens`
- [1.21.8 -> 1.21.9](detailed-primers/1.21.9-from-1.21.8.md): `Feature Submissions: The Movie`
- [1.21.8 -> 1.21.9](detailed-primers/1.21.9-from-1.21.8.md): `The Font Glyph Pipeline`
- [1.21.8 -> 1.21.9](detailed-primers/1.21.9-from-1.21.8.md): `The JSON-RPC Management Servers`
- [1.21.8 -> 1.21.9](detailed-primers/1.21.9-from-1.21.8.md): `Input Handling Consolidation`
- [1.21.8 -> 1.21.9](detailed-primers/1.21.9-from-1.21.8.md): ``Level#isClientSide` now private`
- [1.21.8 -> 1.21.9](detailed-primers/1.21.9-from-1.21.8.md): `Minor Migrations`
### 1.21.9 -> 1.21.10
- [1.21.9 -> 1.21.10](detailed-primers/1.21.10-from-1.21.9.md): `Pack Changes`
- [1.21.9 -> 1.21.10](detailed-primers/1.21.10-from-1.21.9.md): `Minor Migrations`
### 1.21.10 -> 1.21.11
- [1.21.10 -> 1.21.11](detailed-primers/1.21.11-from-1.21.10.md): `Pack Changes`
- [1.21.10 -> 1.21.11](detailed-primers/1.21.11-from-1.21.10.md): `The Rename Shuffle`
- [1.21.10 -> 1.21.11](detailed-primers/1.21.11-from-1.21.10.md): `Oh Hey, Another Rendering Rewrite`
- [1.21.10 -> 1.21.11](detailed-primers/1.21.11-from-1.21.10.md): `Gizmos`
- [1.21.10 -> 1.21.11](detailed-primers/1.21.11-from-1.21.10.md): `Permission Overhaul`
- [1.21.10 -> 1.21.11](detailed-primers/1.21.11-from-1.21.10.md): `New Data Components`
- [1.21.10 -> 1.21.11](detailed-primers/1.21.11-from-1.21.10.md): `The Timeline of Environment Attributes`
- [1.21.10 -> 1.21.11](detailed-primers/1.21.11-from-1.21.10.md): `The Game Rule Shuffle`
- [1.21.10 -> 1.21.11](detailed-primers/1.21.11-from-1.21.10.md): `Minor Migrations`
### 1.21.11 -> 26.1
- [1.21.11 -> 26.1](detailed-primers/26.1-from-1.21.11.md): `Pack Changes`
- [1.21.11 -> 26.1](detailed-primers/26.1-from-1.21.11.md): `Java 25 and Deobfuscation`
- [1.21.11 -> 26.1](detailed-primers/26.1-from-1.21.11.md): `Loot Type Unrolling`
- [1.21.11 -> 26.1](detailed-primers/26.1-from-1.21.11.md): `Validation Overhaul`
- [1.21.11 -> 26.1](detailed-primers/26.1-from-1.21.11.md): `Datapack Villager Trades`
- [1.21.11 -> 26.1](detailed-primers/26.1-from-1.21.11.md): ``Level#random` field now protected`
- [1.21.11 -> 26.1](detailed-primers/26.1-from-1.21.11.md): `Data Component Initializers`
- [1.21.11 -> 26.1](detailed-primers/26.1-from-1.21.11.md): `Item Instances and Stack Templates`
- [1.21.11 -> 26.1](detailed-primers/26.1-from-1.21.11.md): `Serializer Records and Recipe Info`
- [1.21.11 -> 26.1](detailed-primers/26.1-from-1.21.11.md): `Dye Component`
- [1.21.11 -> 26.1](detailed-primers/26.1-from-1.21.11.md): `World Clocks and Time Markers`
- [1.21.11 -> 26.1](detailed-primers/26.1-from-1.21.11.md): `Splitting the Primary Level Data into Saved Data`
- [1.21.11 -> 26.1](detailed-primers/26.1-from-1.21.11.md): `Even More Rendering Changes`
- [1.21.11 -> 26.1](detailed-primers/26.1-from-1.21.11.md): `Minor Migrations`
## Source and attribution ## Source and attribution
The split primer pages in this GitBook are copied from the upstream primers in: The split primer pages are copied from `ChampionAsh5357/neoforged-github`, branch `update/26.1`. See [Source And Attribution](source-and-attribution.md).
- `ChampionAsh5357/neoforged-github`, branch `update/26.1`
For attribution and license notes, see:
- [Source And Attribution](source-and-attribution.md)

View File

@ -1,17 +1,16 @@
# Summary # Summary
- [1.21.1 to 26.1 NeoForge Porting Guide](README.md) - [1.21.1 to 26.1 NeoForge Porting Guide](README.md)
- [Direct Port Guide](direct-port-guide.md)
- [Repeatedly Changing Systems](repeatedly-changing-systems.md) - [Repeatedly Changing Systems](repeatedly-changing-systems.md)
- [Source And Attribution](source-and-attribution.md)
- [Detailed Primers](detailed-primers/README.md) - [Detailed Primers](detailed-primers/README.md)
- [1.21.1 -> 1.21.2/3](detailed-primers/1.21.2-from-1.21.1.md) - [1.21.1 -> 1.21.2/3](detailed-primers/1.21.2-from-1.21.1.md)
- [1.21.2/3 -> 1.21.4](detailed-primers/1.21.4-from-1.21.2-3.md) - [1.21.2/3 -> 1.21.4](detailed-primers/1.21.4-from-1.21.2-3.md)
- [1.21.4 -> 1.21.5](detailed-primers/1.21.5-from-1.21.4.md) - [1.21.4 -> 1.21.5](detailed-primers/1.21.5-from-1.21.4.md)
- [1.21.5 -> 1.21.6](detailed-primers/1.21.6-from-1.21.5.md) - [1.21.5 -> 1.21.6](detailed-primers/1.21.6-from-1.21.5.md)
- [1.21.6 -> 1.21.7](detailed-primers/1.21.7-from-1.21.6.md) - [1.21.6 -> 1.21.7](detailed-primers/1.21.7-from-1.21.6.md)
- [1.21.7 -> 1.21.8](detailed-primers/1.21.8-from-1.21.7.md) - [1.21.7 -> 1.21.8](detailed-primers/1.21.8-from-1.21.7.md)
- [1.21.8 -> 1.21.9](detailed-primers/1.21.9-from-1.21.8.md) - [1.21.8 -> 1.21.9](detailed-primers/1.21.9-from-1.21.8.md)
- [1.21.9 -> 1.21.10](detailed-primers/1.21.10-from-1.21.9.md) - [1.21.9 -> 1.21.10](detailed-primers/1.21.10-from-1.21.9.md)
- [1.21.10 -> 1.21.11](detailed-primers/1.21.11-from-1.21.10.md) - [1.21.10 -> 1.21.11](detailed-primers/1.21.11-from-1.21.10.md)
- [1.21.11 -> 26.1](detailed-primers/26.1-from-1.21.11.md) - [1.21.11 -> 26.1](detailed-primers/26.1-from-1.21.11.md)
- [Source And Attribution](source-and-attribution.md)

View File

@ -1,16 +1,135 @@
# Detailed Primers # Detailed Primers
These chapters preserve the upstream primer content step by step so the direct guide does not lose version-specific detail. These chapters preserve the upstream primer content step by step. Each section heading links directly to that section within the primer page.
Read them in order: ## 1.21.1 -> 1.21.2/3
- [1.21.1 -> 1.21.2/3](1.21.2-from-1.21.1.md) [Full primer](1.21.2-from-1.21.1.md)
- [1.21.2/3 -> 1.21.4](1.21.4-from-1.21.2-3.md)
- [1.21.4 -> 1.21.5](1.21.5-from-1.21.4.md) - [Pack Changes](1.21.2-from-1.21.1.md#pack-changes)
- [1.21.5 -> 1.21.6](1.21.6-from-1.21.5.md) - [The Holder Set Transition](1.21.2-from-1.21.1.md#the-holder-set-transition)
- [1.21.6 -> 1.21.7](1.21.7-from-1.21.6.md) - [Gui Render Types](1.21.2-from-1.21.1.md#gui-render-types)
- [1.21.7 -> 1.21.8](1.21.8-from-1.21.7.md) - [Shader Rewrites](1.21.2-from-1.21.1.md#shader-rewrites)
- [1.21.8 -> 1.21.9](1.21.9-from-1.21.8.md) - [Entity Render States](1.21.2-from-1.21.1.md#entity-render-states)
- [1.21.9 -> 1.21.10](1.21.10-from-1.21.9.md) - [Equipments and Items, Models and All](1.21.2-from-1.21.1.md#equipments-and-items-models-and-all)
- [1.21.10 -> 1.21.11](1.21.11-from-1.21.10.md) - [Armor Materials, Equipment, and Model (Textures)](1.21.2-from-1.21.1.md#armor-materials-equipment-and-model-textures)
- [1.21.11 -> 26.1](26.1-from-1.21.11.md) - [Interaction Results](1.21.2-from-1.21.1.md#interaction-results)
- [Instruments, the Datapack Edition](1.21.2-from-1.21.1.md#instruments-the-datapack-edition)
- [Trial Spawner Configurations, now in Datapack Form](1.21.2-from-1.21.1.md#trial-spawner-configurations-now-in-datapack-form)
- [Recipe Providers, the 'not actually' of Data Providers](1.21.2-from-1.21.1.md#recipe-providers-the-not-actually-of-data-providers)
- [The Ingredient Shift](1.21.2-from-1.21.1.md#the-ingredient-shift)
- [BlockEntityTypes Privatized!](1.21.2-from-1.21.1.md#blockentitytypes-privatized)
- [Consumables](1.21.2-from-1.21.1.md#consumables)
- [Registry Objcet Id, in the Properties?](1.21.2-from-1.21.1.md#registry-objcet-id-in-the-properties)
- [Properties Changes](1.21.2-from-1.21.1.md#properties-changes)
- [Recipes, now in Registry format](1.21.2-from-1.21.1.md#recipes-now-in-registry-format)
- [Minor Migrations](1.21.2-from-1.21.1.md#minor-migrations)
## 1.21.2/3 -> 1.21.4
[Full primer](1.21.4-from-1.21.2-3.md)
- [Pack Changes](1.21.4-from-1.21.2-3.md#pack-changes)
- [Client Items](1.21.4-from-1.21.2-3.md#client-items)
- [Mob Replacing Current Items](1.21.4-from-1.21.2-3.md#mob-replacing-current-items)
- [Particles, rendered through Render Types](1.21.4-from-1.21.2-3.md#particles-rendered-through-render-types)
- [Minor Migrations](1.21.4-from-1.21.2-3.md#minor-migrations)
## 1.21.4 -> 1.21.5
[Full primer](1.21.5-from-1.21.4.md)
- [Pack Changes](1.21.5-from-1.21.4.md#pack-changes)
- [Handling the Removal of Block Entities Properly](1.21.5-from-1.21.4.md#handling-the-removal-of-block-entities-properly)
- [Voxel Shape Helpers](1.21.5-from-1.21.4.md#voxel-shape-helpers)
- [Weapons, Tools, and Armor: Removing the Redundancies](1.21.5-from-1.21.4.md#weapons-tools-and-armor-removing-the-redundancies)
- [Weighted List Rework](1.21.5-from-1.21.4.md#weighted-list-rework)
- [Tickets](1.21.5-from-1.21.4.md#tickets)
- [The Game Test Overhaul](1.21.5-from-1.21.4.md#the-game-test-overhaul)
- [Data Component Getters](1.21.5-from-1.21.4.md#data-component-getters)
- [Tags and Parsing](1.21.5-from-1.21.4.md#tags-and-parsing)
- [Saved Data, now with Types](1.21.5-from-1.21.4.md#saved-data-now-with-types)
- [Render Pipeline Rework](1.21.5-from-1.21.4.md#render-pipeline-rework)
- [Model Rework](1.21.5-from-1.21.4.md#model-rework)
- [Minor Migrations](1.21.5-from-1.21.4.md#minor-migrations)
## 1.21.5 -> 1.21.6
[Full primer](1.21.6-from-1.21.5.md)
- [Pack Changes](1.21.6-from-1.21.5.md#pack-changes)
- [GUI Changes](1.21.6-from-1.21.5.md#gui-changes)
- [Waypoints](1.21.6-from-1.21.5.md#waypoints)
- [Blaze3d Changes](1.21.6-from-1.21.5.md#blaze3d-changes)
- [Tag Providers: Appender Rewrite](1.21.6-from-1.21.5.md#tag-providers-appender-rewrite)
- [Generic Encoding and Decoding: Replacing Direct NBT Access](1.21.6-from-1.21.5.md#generic-encoding-and-decoding-replacing-direct-nbt-access)
- [Server Player Changes](1.21.6-from-1.21.5.md#server-player-changes)
- [Minor Migrations](1.21.6-from-1.21.5.md#minor-migrations)
## 1.21.6 -> 1.21.7
[Full primer](1.21.7-from-1.21.6.md)
- [Pack Changes](1.21.7-from-1.21.6.md#pack-changes)
- [Minor Migrations](1.21.7-from-1.21.6.md#minor-migrations)
## 1.21.7 -> 1.21.8
[Full primer](1.21.8-from-1.21.7.md)
- [Pack Changes](1.21.8-from-1.21.7.md#pack-changes)
- [Minor Migrations](1.21.8-from-1.21.7.md#minor-migrations)
## 1.21.8 -> 1.21.9
[Full primer](1.21.9-from-1.21.8.md)
- [Pack Changes](1.21.9-from-1.21.8.md#pack-changes)
- [The Debugging Overhaul](1.21.9-from-1.21.8.md#the-debugging-overhaul)
- [Debug Screens](1.21.9-from-1.21.8.md#debug-screens)
- [Feature Submissions: The Movie](1.21.9-from-1.21.8.md#feature-submissions-the-movie)
- [The Font Glyph Pipeline](1.21.9-from-1.21.8.md#the-font-glyph-pipeline)
- [The JSON-RPC Management Servers](1.21.9-from-1.21.8.md#the-json-rpc-management-servers)
- [Input Handling Consolidation](1.21.9-from-1.21.8.md#input-handling-consolidation)
- [`Level#isClientSide` now private](1.21.9-from-1.21.8.md#levelisclientside-now-private)
- [Minor Migrations](1.21.9-from-1.21.8.md#minor-migrations)
## 1.21.9 -> 1.21.10
[Full primer](1.21.10-from-1.21.9.md)
- [Pack Changes](1.21.10-from-1.21.9.md#pack-changes)
- [Minor Migrations](1.21.10-from-1.21.9.md#minor-migrations)
## 1.21.10 -> 1.21.11
[Full primer](1.21.11-from-1.21.10.md)
- [Pack Changes](1.21.11-from-1.21.10.md#pack-changes)
- [The Rename Shuffle](1.21.11-from-1.21.10.md#the-rename-shuffle)
- [Oh Hey, Another Rendering Rewrite](1.21.11-from-1.21.10.md#oh-hey-another-rendering-rewrite)
- [Gizmos](1.21.11-from-1.21.10.md#gizmos)
- [Permission Overhaul](1.21.11-from-1.21.10.md#permission-overhaul)
- [New Data Components](1.21.11-from-1.21.10.md#new-data-components)
- [The Timeline of Environment Attributes](1.21.11-from-1.21.10.md#the-timeline-of-environment-attributes)
- [The Game Rule Shuffle](1.21.11-from-1.21.10.md#the-game-rule-shuffle)
- [Minor Migrations](1.21.11-from-1.21.10.md#minor-migrations)
## 1.21.11 -> 26.1
[Full primer](26.1-from-1.21.11.md)
- [Pack Changes](26.1-from-1.21.11.md#pack-changes)
- [Java 25 and Deobfuscation](26.1-from-1.21.11.md#java-25-and-deobfuscation)
- [Loot Type Unrolling](26.1-from-1.21.11.md#loot-type-unrolling)
- [Validation Overhaul](26.1-from-1.21.11.md#validation-overhaul)
- [Datapack Villager Trades](26.1-from-1.21.11.md#datapack-villager-trades)
- [`Level#random` field now protected](26.1-from-1.21.11.md#levelrandom-field-now-protected)
- [Data Component Initializers](26.1-from-1.21.11.md#data-component-initializers)
- [Item Instances and Stack Templates](26.1-from-1.21.11.md#item-instances-and-stack-templates)
- [Serializer Records and Recipe Info](26.1-from-1.21.11.md#serializer-records-and-recipe-info)
- [Dye Component](26.1-from-1.21.11.md#dye-component)
- [World Clocks and Time Markers](26.1-from-1.21.11.md#world-clocks-and-time-markers)
- [Splitting the Primary Level Data into Saved Data](26.1-from-1.21.11.md#splitting-the-primary-level-data-into-saved-data)
- [Even More Rendering Changes](26.1-from-1.21.11.md#even-more-rendering-changes)
- [Minor Migrations](26.1-from-1.21.11.md#minor-migrations)

File diff suppressed because it is too large Load Diff

View File

@ -6,15 +6,20 @@ When the same subsystem changed in multiple intermediate versions, do not treat
## Rendering and graphics ## Rendering and graphics
Relevant chapters: Relevant sections:
- [1.21.1 -> 1.21.2/3](detailed-primers/1.21.2-from-1.21.1.md) - [Gui Render Types](detailed-primers/1.21.2-from-1.21.1.md#gui-render-types) (1.21.2)
- [1.21.4 -> 1.21.5](detailed-primers/1.21.5-from-1.21.4.md) - [Shader Rewrites](detailed-primers/1.21.2-from-1.21.1.md#shader-rewrites) (1.21.2)
- [1.21.5 -> 1.21.6](detailed-primers/1.21.6-from-1.21.5.md) - [Entity Render States](detailed-primers/1.21.2-from-1.21.1.md#entity-render-states) (1.21.2)
- [1.21.6 -> 1.21.7](detailed-primers/1.21.7-from-1.21.6.md) - [Render Pipeline Rework](detailed-primers/1.21.5-from-1.21.4.md#render-pipeline-rework) (1.21.5)
- [1.21.8 -> 1.21.9](detailed-primers/1.21.9-from-1.21.8.md) - [Model Rework](detailed-primers/1.21.5-from-1.21.4.md#model-rework) (1.21.5)
- [1.21.10 -> 1.21.11](detailed-primers/1.21.11-from-1.21.10.md) - [GUI Changes](detailed-primers/1.21.6-from-1.21.5.md#gui-changes) (1.21.6)
- [1.21.11 -> 26.1](detailed-primers/26.1-from-1.21.11.md) - [Blaze3d Changes](detailed-primers/1.21.6-from-1.21.5.md#blaze3d-changes) (1.21.6)
- [Minor Migrations](detailed-primers/1.21.7-from-1.21.6.md#minor-migrations) (1.21.7)
- [Feature Submissions: The Movie](detailed-primers/1.21.9-from-1.21.8.md#feature-submissions-the-movie) (1.21.9)
- [The Font Glyph Pipeline](detailed-primers/1.21.9-from-1.21.8.md#the-font-glyph-pipeline) (1.21.9)
- [Oh Hey, Another Rendering Rewrite](detailed-primers/1.21.11-from-1.21.10.md#oh-hey-another-rendering-rewrite) (1.21.11)
- [Even More Rendering Changes](detailed-primers/26.1-from-1.21.11.md#even-more-rendering-changes) (26.1)
How to read them: How to read them:
@ -32,13 +37,20 @@ Practical rule:
## Item models and item metadata ## Item models and item metadata
Relevant chapters: Relevant sections:
- [1.21.2/3 -> 1.21.4](detailed-primers/1.21.4-from-1.21.2-3.md) - [Client Items](detailed-primers/1.21.4-from-1.21.2-3.md#client-items) (1.21.4)
- [1.21.4 -> 1.21.5](detailed-primers/1.21.5-from-1.21.4.md) - [Mob Replacing Current Items](detailed-primers/1.21.4-from-1.21.2-3.md#mob-replacing-current-items) (1.21.4)
- [1.21.8 -> 1.21.9](detailed-primers/1.21.9-from-1.21.8.md) - [Particles, rendered through Render Types](detailed-primers/1.21.4-from-1.21.2-3.md#particles-rendered-through-render-types) (1.21.4)
- [1.21.10 -> 1.21.11](detailed-primers/1.21.11-from-1.21.10.md) - [Weapons, Tools, and Armor: Removing the Redundancies](detailed-primers/1.21.5-from-1.21.4.md#weapons-tools-and-armor-removing-the-redundancies) (1.21.5)
- [1.21.11 -> 26.1](detailed-primers/26.1-from-1.21.11.md) - [Data Component Getters](detailed-primers/1.21.5-from-1.21.4.md#data-component-getters) (1.21.5)
- [Feature Submissions: The Movie](detailed-primers/1.21.9-from-1.21.8.md#feature-submissions-the-movie) (1.21.9)
- [Oh Hey, Another Rendering Rewrite](detailed-primers/1.21.11-from-1.21.10.md#oh-hey-another-rendering-rewrite) (1.21.11)
- [New Data Components](detailed-primers/1.21.11-from-1.21.10.md#new-data-components) (1.21.11)
- [Data Component Initializers](detailed-primers/26.1-from-1.21.11.md#data-component-initializers) (26.1)
- [Item Instances and Stack Templates](detailed-primers/26.1-from-1.21.11.md#item-instances-and-stack-templates) (26.1)
- [Dye Component](detailed-primers/26.1-from-1.21.11.md#dye-component) (26.1)
- [Even More Rendering Changes](detailed-primers/26.1-from-1.21.11.md#even-more-rendering-changes) (26.1)
What sticks: What sticks:
@ -54,13 +66,18 @@ Practical rule:
## Tags, registries, codecs, and validation ## Tags, registries, codecs, and validation
Relevant chapters: Relevant sections:
- [1.21.1 -> 1.21.2/3](detailed-primers/1.21.2-from-1.21.1.md) - [The Holder Set Transition](detailed-primers/1.21.2-from-1.21.1.md#the-holder-set-transition) (1.21.2)
- [1.21.4 -> 1.21.5](detailed-primers/1.21.5-from-1.21.4.md) - [Registry Objcet Id, in the Properties?](detailed-primers/1.21.2-from-1.21.1.md#registry-objcet-id-in-the-properties) (1.21.2)
- [1.21.5 -> 1.21.6](detailed-primers/1.21.6-from-1.21.5.md) - [Recipes, now in Registry format](detailed-primers/1.21.2-from-1.21.1.md#recipes-now-in-registry-format) (1.21.2)
- [1.21.10 -> 1.21.11](detailed-primers/1.21.11-from-1.21.10.md) - [Tags and Parsing](detailed-primers/1.21.5-from-1.21.4.md#tags-and-parsing) (1.21.5)
- [1.21.11 -> 26.1](detailed-primers/26.1-from-1.21.11.md) - [Tag Providers: Appender Rewrite](detailed-primers/1.21.6-from-1.21.5.md#tag-providers-appender-rewrite) (1.21.6)
- [Generic Encoding and Decoding: Replacing Direct NBT Access](detailed-primers/1.21.6-from-1.21.5.md#generic-encoding-and-decoding-replacing-direct-nbt-access) (1.21.6)
- [The Rename Shuffle](detailed-primers/1.21.11-from-1.21.10.md#the-rename-shuffle) (1.21.11)
- [Loot Type Unrolling](detailed-primers/26.1-from-1.21.11.md#loot-type-unrolling) (26.1)
- [Validation Overhaul](detailed-primers/26.1-from-1.21.11.md#validation-overhaul) (26.1)
- [Serializer Records and Recipe Info](detailed-primers/26.1-from-1.21.11.md#serializer-records-and-recipe-info) (26.1)
What sticks: What sticks:
@ -77,12 +94,17 @@ Practical rule:
## Data components ## Data components
Relevant chapters: Relevant sections:
- [1.21.1 -> 1.21.2/3](detailed-primers/1.21.2-from-1.21.1.md) - [Consumables](detailed-primers/1.21.2-from-1.21.1.md#consumables) (1.21.2)
- [1.21.4 -> 1.21.5](detailed-primers/1.21.5-from-1.21.4.md) - [Equipments and Items, Models and All](detailed-primers/1.21.2-from-1.21.1.md#equipments-and-items-models-and-all) (1.21.2)
- [1.21.10 -> 1.21.11](detailed-primers/1.21.11-from-1.21.10.md) - [The Ingredient Shift](detailed-primers/1.21.2-from-1.21.1.md#the-ingredient-shift) (1.21.2)
- [1.21.11 -> 26.1](detailed-primers/26.1-from-1.21.11.md) - [Recipes, now in Registry format](detailed-primers/1.21.2-from-1.21.1.md#recipes-now-in-registry-format) (1.21.2)
- [Weapons, Tools, and Armor: Removing the Redundancies](detailed-primers/1.21.5-from-1.21.4.md#weapons-tools-and-armor-removing-the-redundancies) (1.21.5)
- [Data Component Getters](detailed-primers/1.21.5-from-1.21.4.md#data-component-getters) (1.21.5)
- [New Data Components](detailed-primers/1.21.11-from-1.21.10.md#new-data-components) (1.21.11)
- [Data Component Initializers](detailed-primers/26.1-from-1.21.11.md#data-component-initializers) (26.1)
- [Dye Component](detailed-primers/26.1-from-1.21.11.md#dye-component) (26.1)
What sticks: What sticks:
@ -97,10 +119,11 @@ Practical rule:
## Saved data and world state ## Saved data and world state
Relevant chapters: Relevant sections:
- [1.21.4 -> 1.21.5](detailed-primers/1.21.5-from-1.21.4.md) - [Saved Data, now with Types](detailed-primers/1.21.5-from-1.21.4.md#saved-data-now-with-types) (1.21.5)
- [1.21.11 -> 26.1](detailed-primers/26.1-from-1.21.11.md) - [Splitting the Primary Level Data into Saved Data](detailed-primers/26.1-from-1.21.11.md#splitting-the-primary-level-data-into-saved-data) (26.1)
- [World Clocks and Time Markers](detailed-primers/26.1-from-1.21.11.md#world-clocks-and-time-markers) (26.1)
What sticks: What sticks:
@ -113,12 +136,15 @@ Practical rule:
## Developer tooling, tests, debugging, and permissions ## Developer tooling, tests, debugging, and permissions
Relevant chapters: Relevant sections:
- [1.21.4 -> 1.21.5](detailed-primers/1.21.5-from-1.21.4.md) - [The Game Test Overhaul](detailed-primers/1.21.5-from-1.21.4.md#the-game-test-overhaul) (1.21.5)
- [1.21.8 -> 1.21.9](detailed-primers/1.21.9-from-1.21.8.md) - [The Debugging Overhaul](detailed-primers/1.21.9-from-1.21.8.md#the-debugging-overhaul) (1.21.9)
- [1.21.10 -> 1.21.11](detailed-primers/1.21.11-from-1.21.10.md) - [Debug Screens](detailed-primers/1.21.9-from-1.21.8.md#debug-screens) (1.21.9)
- [1.21.11 -> 26.1](detailed-primers/26.1-from-1.21.11.md) - [The JSON-RPC Management Servers](detailed-primers/1.21.9-from-1.21.8.md#the-json-rpc-management-servers) (1.21.9)
- [Permission Overhaul](detailed-primers/1.21.11-from-1.21.10.md#permission-overhaul) (1.21.11)
- [Gizmos](detailed-primers/1.21.11-from-1.21.10.md#gizmos) (1.21.11)
- [Java 25 and Deobfuscation](detailed-primers/26.1-from-1.21.11.md#java-25-and-deobfuscation) (26.1)
What sticks: What sticks:

View File

@ -1,31 +1,32 @@
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap'); /* ── Fonts ────────────────────────────────────────────────── */
:root { :root {
--gb-bg: #1d1d1d; --gb-bg: #161719;
--gb-surface: #222324; --gb-surface: #1c1d1f;
--gb-surface-2: #2b2c2d; --gb-surface-2: #242527;
--gb-surface-3: #343536; --gb-surface-3: #2e3032;
--gb-border: rgba(255, 255, 255, 0.08); --gb-border: rgba(255, 255, 255, 0.07);
--gb-border-strong: rgba(255, 255, 255, 0.14); --gb-border-strong: rgba(255, 255, 255, 0.13);
--gb-text: #f4fbfd; --gb-text: #e8edf0;
--gb-text-soft: #c0c8cc; --gb-text-soft: #b0b8be;
--gb-text-muted: #94a1a8; --gb-text-muted: #7e8a92;
--gb-accent: #00beef; --gb-accent: #58a6ff;
--gb-accent-2: #1cd6ff; --gb-accent-dim: #3d7cc9;
--gb-accent-soft: rgba(0, 190, 239, 0.14); --gb-accent-soft: rgba(88, 166, 255, 0.10);
--gb-shadow: 0 10px 30px rgba(0, 0, 0, 0.22); --gb-accent-glow: rgba(88, 166, 255, 0.04);
--content-max-width: 900px; --gb-green: #3fb950;
--page-padding: 28px; --gb-shadow: 0 1px 3px rgba(0, 0, 0, 0.30);
--menu-bar-height: 64px; --gb-shadow-lg: 0 4px 16px rgba(0, 0, 0, 0.35);
--sidebar-width: 320px; --gb-radius: 6px;
--sidebar-resize-indicator-width: 2px; --gb-radius-lg: 8px;
--sidebar-resize-indicator-color: rgba(255, 255, 255, 0.06); --gb-mono: "JetBrains Mono", "Fira Code", "Cascadia Code", ui-monospace, "SFMono-Regular", "SF Mono", Menlo, Consolas, monospace;
--gb-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
--content-max-width: 920px;
--page-padding: 24px;
--sidebar-width: 300px;
} }
html, /* ── Theme overrides (force single dark theme) ───────────── */
body {
background: var(--gb-bg);
}
html.navy, html.navy,
html.coal, html.coal,
@ -34,81 +35,82 @@ html.light,
html.rust { html.rust {
--bg: var(--gb-bg); --bg: var(--gb-bg);
--fg: var(--gb-text); --fg: var(--gb-text);
--sidebar-bg: #1f2021; --sidebar-bg: var(--gb-surface);
--sidebar-fg: var(--gb-text-soft); --sidebar-fg: var(--gb-text-soft);
--sidebar-non-existant: #5f6a70; --sidebar-non-existant: var(--gb-text-muted);
--sidebar-active: var(--gb-accent); --sidebar-active: var(--gb-accent);
--sidebar-spacer: transparent; --sidebar-spacer: transparent;
--scrollbar: rgba(255, 255, 255, 0.12); --scrollbar: rgba(255, 255, 255, 0.10);
--icons: var(--gb-text-soft); --icons: var(--gb-text-muted);
--icons-hover: var(--gb-text); --icons-hover: var(--gb-text);
--links: var(--gb-accent-2); --links: var(--gb-accent);
--inline-code-color: #9fe8ff; --inline-code-color: #c9d1d9;
--theme-popup-bg: #262728; --theme-popup-bg: var(--gb-surface-2);
--theme-popup-border: var(--gb-border-strong); --theme-popup-border: var(--gb-border-strong);
--theme-hover: rgba(255, 255, 255, 0.08); --theme-hover: rgba(255, 255, 255, 0.06);
--quote-bg: rgba(255, 255, 255, 0.035); --quote-bg: rgba(255, 255, 255, 0.025);
--quote-border: var(--gb-accent); --quote-border: var(--gb-accent-dim);
--table-border-color: var(--gb-border); --table-border-color: var(--gb-border);
--table-header-bg: rgba(255, 255, 255, 0.03); --table-header-bg: rgba(255, 255, 255, 0.03);
--table-alternate-bg: rgba(255, 255, 255, 0.015); --table-alternate-bg: rgba(255, 255, 255, 0.015);
--searchbar-border-color: var(--gb-border-strong); --searchbar-border-color: var(--gb-border-strong);
--searchbar-bg: var(--gb-surface); --searchbar-bg: var(--gb-surface-2);
--searchbar-fg: var(--gb-text); --searchbar-fg: var(--gb-text);
--searchbar-shadow-color: transparent; --searchbar-shadow-color: transparent;
--searchresults-header-fg: var(--gb-text-soft); --searchresults-header-fg: var(--gb-text-soft);
--searchresults-border-color: var(--gb-border); --searchresults-border-color: var(--gb-border);
--searchresults-li-bg: transparent; --searchresults-li-bg: transparent;
--search-mark-bg: rgba(0, 190, 239, 0.25); --search-mark-bg: rgba(88, 166, 255, 0.22);
} }
/* ── Base ─────────────────────────────────────────────────── */
html, html,
body, body {
.menu-title, background: var(--gb-bg);
.content, font-family: var(--gb-sans);
.chapter li a, -webkit-font-smoothing: antialiased;
.nav-chapters, -moz-osx-font-smoothing: grayscale;
.mobile-nav-chapters,
.icon-button,
code {
font-family: "Inter", "Open Sans", ui-sans-serif, system-ui, sans-serif;
} }
body { body {
color: var(--gb-text); color: var(--gb-text);
} }
#mdbook-body-container { ::selection {
background: background: rgba(88, 166, 255, 0.28);
radial-gradient(circle at top right, rgba(0, 190, 239, 0.12), transparent 26%), color: #fff;
radial-gradient(circle at bottom left, rgba(0, 190, 239, 0.08), transparent 22%),
var(--gb-bg);
} }
/* ── Hide theme toggle ────────────────────────────────────── */
#mdbook-theme-toggle,
#mdbook-theme-list {
display: none !important;
}
/* ── Menu bar ─────────────────────────────────────────────── */
#mdbook-menu-bar { #mdbook-menu-bar {
backdrop-filter: blur(16px); background: rgba(22, 23, 25, 0.82);
-webkit-backdrop-filter: blur(16px); backdrop-filter: blur(12px) saturate(1.4);
background: rgba(29, 29, 29, 0.86); -webkit-backdrop-filter: blur(12px) saturate(1.4);
border-bottom: 1px solid var(--gb-border); border-bottom: 1px solid var(--gb-border);
box-shadow: none; box-shadow: none;
} }
.menu-bar > .left-buttons,
.menu-bar > .right-buttons {
gap: 0.45rem;
}
.menu-title { .menu-title {
font-weight: 700; font-weight: 600;
letter-spacing: -0.02em; letter-spacing: -0.01em;
color: var(--gb-text); color: var(--gb-text);
font-family: var(--gb-sans);
} }
.icon-button, .icon-button,
.nav-chapters, .nav-chapters,
.mobile-nav-chapters { .mobile-nav-chapters {
border-radius: 14px; border-radius: var(--gb-radius);
transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease, transform 0.18s ease; transition: background 0.15s ease, color 0.15s ease;
} }
.icon-button:hover, .icon-button:hover,
@ -118,101 +120,142 @@ body {
color: var(--gb-text); color: var(--gb-text);
} }
#mdbook-theme-toggle, /* ── Sidebar ──────────────────────────────────────────────── */
#mdbook-theme-list {
display: none !important;
}
#mdbook-sidebar { #mdbook-sidebar {
background: linear-gradient(180deg, rgba(36, 37, 38, 0.98), rgba(29, 29, 29, 0.98)); background: var(--gb-surface);
border-right: 1px solid var(--gb-border); border-right: 1px solid var(--gb-border);
} }
.sidebar-scrollbox { .sidebar-scrollbox {
padding: 1rem 0.9rem 2rem; padding: 0.75rem 0.6rem 2rem;
}
.chapter {
gap: 0.1rem;
}
.chapter li.chapter-item {
margin: 0.08rem 0;
} }
.chapter li a, .chapter li a,
.chapter li span { .chapter li span {
border-radius: 12px; font-family: var(--gb-sans);
padding: 0.55rem 0.8rem; border-radius: var(--gb-radius);
line-height: 1.25; padding: 0.4rem 0.65rem;
line-height: 1.35;
font-size: 0.875rem;
} }
.chapter li a { .chapter li a {
color: var(--gb-text-soft); color: var(--gb-text-soft);
border: 1px solid transparent; border: 1px solid transparent;
transition: background 0.12s ease, color 0.12s ease, border-color 0.12s ease;
} }
.chapter li a:hover { .chapter li a:hover {
color: var(--gb-text); color: var(--gb-text);
text-decoration: none; text-decoration: none;
background: rgba(255, 255, 255, 0.045); background: rgba(255, 255, 255, 0.04);
} }
.chapter li a.active, .chapter li a.active,
.chapter a.current-header { .chapter a.current-header {
color: var(--gb-text); color: var(--gb-text);
background: var(--gb-accent-soft); background: var(--gb-accent-soft);
border-color: rgba(0, 190, 239, 0.28); border-color: rgba(88, 166, 255, 0.20);
box-shadow: inset 2px 0 0 var(--gb-accent); font-weight: 500;
} }
.chapter > .chapter-item > .chapter-link-wrapper > a { .chapter > .chapter-item > .chapter-link-wrapper > a {
font-weight: 600; font-weight: 600;
font-size: 0.9rem;
} }
/* nested sidebar children */
.chapter li li a {
font-size: 0.84rem;
padding-left: 1.4rem;
color: var(--gb-text-muted);
}
.chapter li li a:hover,
.chapter li li a.active {
color: var(--gb-text-soft);
}
/* ── Page wrapper ─────────────────────────────────────────── */
#mdbook-page-wrapper { #mdbook-page-wrapper {
background: transparent; background: transparent;
} }
#mdbook-body-container {
background: var(--gb-bg);
}
.content { .content {
padding-top: 2.25rem; padding-top: 1.5rem;
font-family: var(--gb-sans);
} }
.content main { .content main {
background: rgba(255, 255, 255, 0.02); background: var(--gb-surface);
border: 1px solid var(--gb-border); border: 1px solid var(--gb-border);
border-radius: 24px; border-radius: var(--gb-radius-lg);
padding: 2.2rem 2.4rem 2.8rem; padding: 2rem 2.2rem 2.5rem;
box-shadow: var(--gb-shadow); box-shadow: var(--gb-shadow);
} }
/* ── Typography ───────────────────────────────────────────── */
.content h1, .content h1,
.content h2, .content h2,
.content h3, .content h3,
.content h4 { .content h4,
.content h5,
.content h6 {
color: var(--gb-text); color: var(--gb-text);
letter-spacing: -0.025em; letter-spacing: -0.015em;
font-family: var(--gb-sans);
} }
.content h1 { .content h1 {
font-size: 2.35rem; font-size: 2rem;
line-height: 1.05; line-height: 1.15;
font-weight: 800; font-weight: 700;
margin-top: 0.2rem; margin-top: 0;
margin-bottom: 1rem; margin-bottom: 0.75rem;
padding-bottom: 0.5rem;
border-bottom: 1px solid var(--gb-border);
} }
.content h2 { .content h2 {
font-size: 1.5rem; font-size: 1.4rem;
font-weight: 750; font-weight: 650;
margin-top: 2.6rem; margin-top: 2.5rem;
padding-top: 0.35rem; margin-bottom: 0.6rem;
border-top: 1px solid rgba(255, 255, 255, 0.06); padding-bottom: 0.3rem;
border-bottom: 1px solid var(--gb-border);
} }
.content h3 { .content h3 {
font-size: 1.12rem; font-size: 1.15rem;
font-weight: 700; font-weight: 600;
margin-top: 1.8rem;
margin-bottom: 0.4rem;
}
.content h4 {
font-size: 1rem;
font-weight: 600;
margin-top: 1.4rem;
margin-bottom: 0.3rem;
color: var(--gb-text-soft);
}
.content h5,
.content h6 {
font-size: 0.9rem;
font-weight: 600;
margin-top: 1.2rem;
margin-bottom: 0.25rem;
color: var(--gb-text-soft);
text-transform: uppercase;
letter-spacing: 0.03em;
} }
.content p, .content p,
@ -220,21 +263,24 @@ body {
.content td, .content td,
.content th { .content th {
color: var(--gb-text-soft); color: var(--gb-text-soft);
line-height: 1.68; line-height: 1.65;
font-size: 0.95rem;
} }
.content strong { .content strong {
color: var(--gb-text); color: var(--gb-text);
font-weight: 600;
} }
.content a { .content a {
color: var(--gb-accent-2); color: var(--gb-accent);
text-decoration: none; text-decoration: none;
border-bottom: 1px solid transparent;
transition: border-color 0.12s ease;
} }
.content a:hover { .content a:hover {
color: #7deaff; border-bottom-color: var(--gb-accent);
text-decoration: none;
} }
.content .header:link, .content .header:link,
@ -242,82 +288,138 @@ body {
color: var(--gb-text); color: var(--gb-text);
} }
/* ── Inline code ──────────────────────────────────────────── */
.content code { .content code {
background: rgba(255, 255, 255, 0.055); font-family: var(--gb-mono);
background: rgba(255, 255, 255, 0.06);
border: 1px solid rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.06);
border-radius: 10px; border-radius: 4px;
padding: 0.18rem 0.42rem; padding: 0.15rem 0.35rem;
font-size: 0.9em; font-size: 0.85em;
word-break: break-word;
} }
/* ── Code blocks ──────────────────────────────────────────── */
.content pre { .content pre {
background: #202122; background: #0d1117;
border: 1px solid var(--gb-border); border: 1px solid var(--gb-border);
border-radius: 20px; border-radius: var(--gb-radius);
padding: 1rem 1.15rem; padding: 1rem 1.1rem;
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.02); overflow-x: auto;
line-height: 1.5;
} }
.content pre code { .content pre code {
font-family: var(--gb-mono);
background: transparent; background: transparent;
border: 0; border: 0;
padding: 0; padding: 0;
border-radius: 0; border-radius: 0;
font-size: 0.84rem;
word-break: normal;
white-space: pre;
} }
/* ── Blockquotes ──────────────────────────────────────────── */
.content blockquote { .content blockquote {
margin: 1.35rem 0; margin: 1.2rem 0;
padding: 0.8rem 1rem 0.8rem 1.15rem; padding: 0.6rem 1rem;
background: rgba(255, 255, 255, 0.03); background: var(--gb-accent-glow);
border-left: 3px solid var(--gb-accent); border-left: 3px solid var(--gb-accent-dim);
border-radius: 0 16px 16px 0; border-radius: 0 var(--gb-radius) var(--gb-radius) 0;
color: var(--gb-text-soft);
} }
.content blockquote p {
margin: 0.3rem 0;
}
/* ── Tables ───────────────────────────────────────────────── */
.content table { .content table {
width: 100%; width: 100%;
border-collapse: separate; border-collapse: collapse;
border-spacing: 0;
overflow: hidden;
border: 1px solid var(--gb-border); border: 1px solid var(--gb-border);
border-radius: 18px; border-radius: var(--gb-radius);
overflow: hidden;
font-size: 0.9rem;
} }
.content thead { .content thead {
background: rgba(255, 255, 255, 0.04); background: rgba(255, 255, 255, 0.035);
} }
.content tbody tr:nth-child(even) { .content th {
background: rgba(255, 255, 255, 0.018); font-weight: 600;
text-align: left;
color: var(--gb-text);
} }
.content th, .content th,
.content td { .content td {
padding: 0.82rem 0.95rem; padding: 0.6rem 0.8rem;
border-bottom: 1px solid var(--gb-border);
} }
.content hr { .content tbody tr:last-child td {
border-color: var(--gb-border); border-bottom: 0;
} }
.content tbody tr:nth-child(even) {
background: rgba(255, 255, 255, 0.015);
}
/* ── Lists ────────────────────────────────────────────────── */
.content ul,
.content ol {
padding-left: 1.6rem;
}
.content li {
margin: 0.2rem 0;
}
.content li > p {
margin: 0.25rem 0;
}
/* ── Horizontal rules ─────────────────────────────────────── */
.content hr {
border: none;
border-top: 1px solid var(--gb-border);
margin: 2rem 0;
}
/* ── Navigation ───────────────────────────────────────────── */
.nav-wrapper, .nav-wrapper,
.nav-wide-wrapper { .nav-wide-wrapper {
margin-top: 1rem; margin-top: 1.5rem;
} }
.nav-chapters, .nav-chapters,
.mobile-nav-chapters { .mobile-nav-chapters {
background: rgba(255, 255, 255, 0.04); background: var(--gb-surface-2);
border: 1px solid var(--gb-border); border: 1px solid var(--gb-border);
border-radius: var(--gb-radius);
font-family: var(--gb-sans);
} }
.nav-chapters.next, /* ── Toolbar buttons ──────────────────────────────────────── */
.nav-chapters.previous {
border-radius: 16px;
}
#print-button, #print-button,
#git-edit-button { #git-edit-button {
opacity: 0.95; opacity: 0.8;
}
#print-button:hover,
#git-edit-button:hover {
opacity: 1;
} }
.left-buttons, .left-buttons,
@ -325,35 +427,86 @@ body {
align-items: center; align-items: center;
} }
/* ── Scrollbar ────────────────────────────────────────────── */
::-webkit-scrollbar { ::-webkit-scrollbar {
width: 10px; width: 8px;
height: 10px; height: 8px;
} }
::-webkit-scrollbar-thumb { ::-webkit-scrollbar-thumb {
background: rgba(255, 255, 255, 0.14); background: rgba(255, 255, 255, 0.10);
border-radius: 999px; border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
background: rgba(255, 255, 255, 0.18);
} }
::-webkit-scrollbar-track { ::-webkit-scrollbar-track {
background: transparent; background: transparent;
} }
/* ── Search results ───────────────────────────────────────── */
.searchresults a {
color: var(--gb-accent) !important;
}
.search-results .search-results-title {
color: var(--gb-text);
}
mark {
background: rgba(88, 166, 255, 0.22);
color: inherit;
border-radius: 2px;
padding: 0 2px;
}
/* ── Focus states (a11y) ──────────────────────────────────── */
a:focus-visible,
button:focus-visible,
input:focus-visible {
outline: 2px solid var(--gb-accent);
outline-offset: 2px;
}
/* ── Mobile ───────────────────────────────────────────────── */
@media (max-width: 1080px) { @media (max-width: 1080px) {
.content { .content {
padding-top: 1.25rem; padding-top: 0.75rem;
} }
.content main { .content main {
border-radius: 0; border-radius: 0;
border-left: 0; border-left: 0;
border-right: 0; border-right: 0;
padding: 1.4rem 1.1rem 2rem; padding: 1.25rem 1rem 2rem;
background: transparent;
box-shadow: none;
} }
#mdbook-menu-bar { #mdbook-menu-bar {
background: rgba(29, 29, 29, 0.92); background: rgba(22, 23, 25, 0.92);
}
}
@media (max-width: 600px) {
.content main {
padding: 1rem 0.75rem 1.5rem;
}
.content h1 {
font-size: 1.6rem;
}
.content h2 {
font-size: 1.2rem;
}
.content pre {
font-size: 0.78rem;
padding: 0.75rem;
} }
} }

View File

@ -1,5 +1 @@
<meta name="theme-color" content="#1d1d1d"> <meta name="theme-color" content="#161719">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap" rel="stylesheet">