# Getting to know Aurelia

- [Overview](/getting-to-know-aurelia/getting-to-know-aurelia.md): A guided tour of Aurelia fundamentals; start here before diving into the deeper topic guides.
- [Introduction](/getting-to-know-aurelia/introduction.md)
- [Built-in template features](/getting-to-know-aurelia/introduction/built-in-template-features.md): Use Aurelia's built-in template commands such as if, show, repeat, and switch to control markup dynamically.
- [Class & style binding](/getting-to-know-aurelia/introduction/class-and-style-binding.md): Bind CSS classes and inline styles in Aurelia templates using expressive syntax.
- [Attribute transferring](/getting-to-know-aurelia/introduction/attribute-transferring.md): Forward bindings from a custom element to its inner template using Aurelia's spread operators.
- [Startup & enhancement](/getting-to-know-aurelia/startup-and-enhancement.md)
- [App configuration and startup](/getting-to-know-aurelia/startup-and-enhancement/app-configuration-and-startup.md): Configure Aurelia applications, register global resources, and choose the startup pattern that fits your project.
- [Enhance](/getting-to-know-aurelia/startup-and-enhancement/enhance.md): Learn how to use Aurelia's enhance feature to add interactivity to existing HTML, integrate with other frameworks, hydrate server-rendered content, and create multiple Aurelia instances in your applic
- [Routing](/getting-to-know-aurelia/aurelia-router.md): Understand the @aurelia/router package, its core concepts, and how to navigate the rest of the routing documentation.
- [Quick Reference ("How Do I...")](/getting-to-know-aurelia/aurelia-router/router.md)
- [Visual Diagrams](/getting-to-know-aurelia/aurelia-router/diagrams.md)
- [Fundamentals](/getting-to-know-aurelia/aurelia-router/fundamentals.md)
- [Getting started](/getting-to-know-aurelia/aurelia-router/fundamentals/getting-started.md)
- [Router configuration](/getting-to-know-aurelia/aurelia-router/fundamentals/router-configuration.md): Learn about configuring the Router.
- [Defining routes](/getting-to-know-aurelia/aurelia-router/fundamentals/configuring-routes.md): Learn about configuring routes in Router.
- [Child routing playbook](/getting-to-know-aurelia/aurelia-router/fundamentals/child-routing.md): Build deeply nested navigation trees with Aurelia's router, including layouts, sibling viewports, and relative navigation.
- [Route parameters](/getting-to-know-aurelia/aurelia-router/fundamentals/route-parameters.md): Declare, read, and validate route parameters in Aurelia's router, including required, optional, wildcard, and constrained segments.
- [Viewports](/getting-to-know-aurelia/aurelia-router/fundamentals/viewports.md): Learn about viewports in Aurelia router and how to create complex layouts with hierarchical and sibling viewports.
- [Navigation](/getting-to-know-aurelia/aurelia-router/navigation.md)
- [Navigating](/getting-to-know-aurelia/aurelia-router/navigation/navigating.md): Learn to navigate from one view to another using the Aurelia router, including declarative and programmatic navigation patterns.
- [Navigation model](/getting-to-know-aurelia/aurelia-router/navigation/navigation-model.md): Create a navigation menu using navigation model in Router.
- [Current route](/getting-to-know-aurelia/aurelia-router/navigation/current-route.md): Access information about the active route via ICurrentRoute.
- [Lifecycle & Events](/getting-to-know-aurelia/aurelia-router/lifecycle-and-events.md)
- [Routing lifecycle](/getting-to-know-aurelia/aurelia-router/lifecycle-and-events/routing-lifecycle.md): Learn about the different routing hooks and how to leverage those in terms of dis/allow loading or unloading as well as performing setup and teardown of a view.
- [Router hooks](/getting-to-know-aurelia/aurelia-router/lifecycle-and-events/router-hooks.md): How to implement router hooks into your applications to protect routes, control navigation, and implement cross-cutting concerns like authentication and authorization.
- [Router events](/getting-to-know-aurelia/aurelia-router/lifecycle-and-events/router-events.md): Learn about how to subscribe to and handle router events for advanced navigation monitoring and application state management.
- [Advanced](/getting-to-know-aurelia/aurelia-router/advanced.md)
- [Router state management](/getting-to-know-aurelia/aurelia-router/advanced/router-state-management.md): Track current route details and persist per-entry UI state with @aurelia/router.
- [Transition plans](/getting-to-know-aurelia/aurelia-router/advanced/transition-plans.md): Learn how Router handles the re-entrance of the same component and how to override the default behavior.
- [Error handling](/getting-to-know-aurelia/aurelia-router/advanced/error-handling.md): Learn how to handle navigation errors, implement error recovery patterns, and create robust routing experiences.
- [Advanced API reference](/getting-to-know-aurelia/aurelia-router/advanced/advanced-api-reference.md): Low-level and advanced APIs for @aurelia/router (router-lite).
- [Outcome Recipes](/getting-to-know-aurelia/aurelia-router/advanced/outcome-recipes.md): Advanced routing patterns for authentication, data preloading, guards, and complex navigation scenarios using @aurelia/router.
- [Support](/getting-to-know-aurelia/aurelia-router/support.md)
- [Testing guide](/getting-to-know-aurelia/aurelia-router/support/testing-guide.md): Learn how to test routed components, navigation flows, and router events in Aurelia applications.
- [Troubleshooting](/getting-to-know-aurelia/aurelia-router/support/troubleshooting.md): Common router issues, debugging techniques, and solutions for troubleshooting Aurelia router problems.
- [Composition patterns](/getting-to-know-aurelia/composition-patterns.md)
- [Components](/getting-to-know-aurelia/composition-patterns/components.md): Understand Aurelia components, custom elements, bindables, and how they relate to view composition.
- [Creating components](/getting-to-know-aurelia/composition-patterns/components/consuming-a-custom-element.md): Register and import custom elements so they can be used across Aurelia applications.
- [Bindable setter patterns](/getting-to-know-aurelia/composition-patterns/components/bindable-setter.md): Use bindable property setters to transform incoming values before Aurelia applies them.
- [Template controllers](/getting-to-know-aurelia/composition-patterns/template-controllers.md): Encapsulate templating logic in reusable controllers that coordinate rendering in Aurelia views.
- [Dynamic composition](/getting-to-know-aurelia/composition-patterns/dynamic-composition.md): Render components and templates dynamically with Aurelia's au-compose element.
- [Portalling elements](/getting-to-know-aurelia/composition-patterns/portalling-elements.md): An element in two places at once.
- [State & observation](/getting-to-know-aurelia/state-and-observation.md)
- [Understanding the binding system](/getting-to-know-aurelia/state-and-observation/synchronous-binding-system.md): Learn how Aurelia's binding system balances synchronous notifications with async computed updates and how to manage state safely.
- [Observation](/getting-to-know-aurelia/state-and-observation/observation.md): Observe changes in your applications.
- [Observing property changes with @observable](/getting-to-know-aurelia/state-and-observation/observation/observing-property-changes-with-observable.md): Learn how to work with Aurelia's observable decorator to create reactive properties inside your component view models that have change callbacks.
- [Effect observation](/getting-to-know-aurelia/state-and-observation/observation/effect-observation.md): React to derived state changes with Aurelia's effect observation APIs.
- [HTML observation](/getting-to-know-aurelia/state-and-observation/observation/html-observation.md): Observe changes to native HTML element properties and attributes in Aurelia.
- [Using observerLocator](/getting-to-know-aurelia/state-and-observation/observation/using-observerlocator.md): Tap into Aurelia's observerLocator to watch low-level property changes manually.
- [Watching data](/getting-to-know-aurelia/state-and-observation/watching-data.md): Watch data changes reactively with the @watch decorator. Support for properties,  expressions, and computed values with automatic dependency tracking.
- [Services & runtime hooks](/getting-to-know-aurelia/services-and-runtime-hooks.md)
- [Dependency injection (DI)](/getting-to-know-aurelia/services-and-runtime-hooks/dependency-injection.md): Learn the fundamentals of Aurelia's dependency injection container and how to register, resolve, and organize services.
- [Quick Reference ("How Do I...")](/getting-to-know-aurelia/services-and-runtime-hooks/dependency-injection/dependency-injection-di.md)
- [Visual Diagrams](/getting-to-know-aurelia/services-and-runtime-hooks/dependency-injection/diagrams.md)
- [DI overview](/getting-to-know-aurelia/services-and-runtime-hooks/dependency-injection/overview.md): Understand Aurelia's dependency injection concepts and why containers simplify application structure.
- [Creating services](/getting-to-know-aurelia/services-and-runtime-hooks/dependency-injection/creating-services.md): Learn how to define and register services with Aurelia's dependency injection container.
- [Resolvers](/getting-to-know-aurelia/services-and-runtime-hooks/dependency-injection/resolvers.md): Control how dependencies are resolved in Aurelia using resolver helpers like optional, lazy, and all.
- [What is dependency injection?](/getting-to-know-aurelia/services-and-runtime-hooks/dependency-injection/what-is-dependency-injection.md): Learn about why Dependency Injection (DI) is so important and what role it plays in Aurelia.
- [App Tasks](/getting-to-know-aurelia/services-and-runtime-hooks/app-tasks.md): App tasks provide injection points to run code at certain points in the compiler lifecycle, allowing you to interface with different parts of the framework and execute code.
- [Task Queue](/getting-to-know-aurelia/services-and-runtime-hooks/task-queue.md): Manage Aurelia's scheduler and task utilities to coordinate asynchronous work, rendering, and tests.
- [Event Aggregator](/getting-to-know-aurelia/services-and-runtime-hooks/event-aggregator.md): Use Aurelia's Event Aggregator for lightweight pub/sub communication between components.
- [Logging](/getting-to-know-aurelia/services-and-runtime-hooks/logging.md): Aurelia provides a powerful logging API that allows you to display debug and error messages in your applications in a controlled manner.
- [Advanced](/getting-to-know-aurelia/advanced.md)
- [Framework internals](/getting-to-know-aurelia/advanced/framework-internals.md): Explore how Aurelia's compiler turns templates into instructions and how the runtime executes them.
