# stenciljs/core

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/stenciljs-core).**

13,101 stars · 845 forks · TypeScript · NOASSERTION

## Links

- GitHub: https://github.com/stenciljs/core
- Homepage: https://stenciljs.com
- awesome-repositories: https://awesome-repositories.com/repository/stenciljs-core.md

## Topics

`custom-element` `design-system` `ionic` `ssg` `ssr` `static-site-generator` `stencil` `stenciljs` `typescript` `webcomponent`

## Description

This project is a web component tooling system used to compile TypeScript and JSX into standard-compliant custom elements. It enables the development of framework-agnostic components that function across different browsers and frontend environments.

The toolset focuses on cross-framework UI distribution, allowing a single library of components to be used in React, Angular, Vue, or plain HTML. It includes capabilities for enterprise design system engineering and generates specific wrapper code to ensure components behave as native elements within various frameworks.

The system covers server-side rendering with client-side hydration, virtual DOM reconciliation, and scoped CSS encapsulation via Shadow DOM. It also provides a development environment with a local server, hot module reloading, and automated testing utilities including headless unit testing and shadow DOM verification.

The project includes a command-line interface for orchestrating build, test, and serve operations.

## Tags

### Programming Languages & Runtimes

- [Component Compilers](https://awesome-repositories.com/f/programming-languages-runtimes/source-code-compilers/multi-target-compilers/component-compilers.md) — Compiles TypeScript and JSX into standard-compliant web components for cross-framework distribution. ([source](https://github.com/stenciljs/core/blob/main/CHANGELOG.md))

### User Interface & Experience

- [Cross-Framework Component Distribution](https://awesome-repositories.com/f/user-interface-experience/cross-framework-component-distribution.md) — Provides a unified set of UI components that can be used across React, Angular, Vue, and plain HTML.
- [Component Property Systems](https://awesome-repositories.com/f/user-interface-experience/component-property-systems.md) — Defines input attributes using decorators to pass external data into web components. ([source](https://github.com/stenciljs/core/blob/main/readme.md))
- [Component Slot Systems](https://awesome-repositories.com/f/user-interface-experience/component-slot-systems.md) — Assigns content to specific slots and monitors changes to assigned nodes within components. ([source](https://github.com/stenciljs/core/blob/main/CHANGELOG.md))
- [Component State Managers](https://awesome-repositories.com/f/user-interface-experience/component-state-managers.md) — Manages component properties and internal state with automated synchronization using decorators. ([source](https://github.com/stenciljs/core/blob/main/CHANGELOG.md))
- [Framework-Agnostic UI Development](https://awesome-repositories.com/f/user-interface-experience/framework-agnostic-ui-development.md) — Facilitates the creation of a single library of Web Components that operate independently of any specific JavaScript framework.
- [Component Lifecycle Management](https://awesome-repositories.com/f/user-interface-experience/presentation-frameworks/lifecycle-state-management/component-lifecycle-management.md) — Triggers specific logic at defined stages of a component's existence, from creation to removal. ([source](https://github.com/stenciljs/core/blob/main/docs))
- [Style Encapsulations](https://awesome-repositories.com/f/user-interface-experience/styling-theming-systems/content-styling/component-styling-tools/component-styling/style-encapsulations.md) — Isolates component styling using the browser's native shadow root to prevent CSS leaks.
- [Virtual DOM Reconciliation](https://awesome-repositories.com/f/user-interface-experience/virtual-dom-reconciliation.md) — Updates the browser interface by comparing state changes against a virtual DOM representation to minimize manipulations.

### Software Engineering & Architecture

- [State Synchronization Decorators](https://awesome-repositories.com/f/software-engineering-architecture/decorator-patterns/state-synchronization-decorators.md) — Uses TypeScript decorators to track property changes and automatically synchronize the UI when data is updated.

### Web Development

- [Custom Element Registries](https://awesome-repositories.com/f/web-development/custom-element-registries.md) — Defines how compiled components register with the browser's custom element registry. ([source](https://github.com/stenciljs/core/blob/main/BREAKING_CHANGES.md))
- [Framework Integration Wrappers](https://awesome-repositories.com/f/web-development/framework-integration-wrappers.md) — Generates glue code that allows standard Web Components to be used as native components in React, Angular, or Vue.
- [Web Components](https://awesome-repositories.com/f/web-development/frontend-development-tools/frontend-frameworks/component-authoring/web-components.md) — Provides a full toolset for compiling TypeScript and JSX into standard-compliant, optimized custom elements.
- [Client-Side Hydration](https://awesome-repositories.com/f/web-development/rendering-templating/rendering-patterns/client-side-hydration.md) — Restores interactive behavior to server-rendered static content by transferring state and styles to the client. ([source](https://github.com/stenciljs/core/blob/main/CHANGELOG.md))
- [Server-Side Rendering](https://awesome-repositories.com/f/web-development/server-side-rendering.md) — Generates static HTML on the server to improve SEO and initial page load speeds for web components.
- [Enterprise Component Systems](https://awesome-repositories.com/f/web-development/ui-component-libraries/enterprise-component-systems.md) — Enables the engineering of scalable, maintainable component libraries using TypeScript for large-scale corporate design systems.
- [Virtual DOM Reconciliation](https://awesome-repositories.com/f/web-development/virtual-dom-reconciliation/virtual-dom-reconciliation.md) — Implements virtual DOM reconciliation to update the browser interface efficiently by minimizing direct DOM manipulations. ([source](https://github.com/stenciljs/core/tree/main/docs))
- [Lifecycle Mappings](https://awesome-repositories.com/f/web-development/web-standards/custom-elements/lifecycle-mappings.md) — Maps internal class methods to native browser lifecycle events like connection and disconnection from the DOM.
- [Development Servers](https://awesome-repositories.com/f/web-development/development-servers/development-servers.md) — Ships a local development server with hot reloading and configurable ports for rapid prototyping. ([source](https://github.com/stenciljs/core/blob/main/CHANGELOG.md))
- [Web Component Distribution](https://awesome-repositories.com/f/web-development/web-component-distribution.md) — Packages components into a distributable format with automated dependency loading and export behaviors. ([source](https://github.com/stenciljs/core/blob/main/CHANGELOG.md))

### Development Tools & Productivity

- [Build Task Runners](https://awesome-repositories.com/f/development-tools-productivity/build-tooling/build-orchestration-logic/build-orchestration-configuration/build-lifecycle-orchestrators/build-task-runners.md) — Provides a command-line interface to orchestrate build, test, and serve operations. ([source](https://github.com/stenciljs/core/blob/main/docs))
- [Web Component Testing Suites](https://awesome-repositories.com/f/development-tools-productivity/debugging-profiling-testing/test-execution-management/test-suites/web-component-testing-suites.md) — Includes a test suite specifically designed to validate custom element behavior, lifecycle hooks, and rendering. ([source](https://github.com/stenciljs/core/blob/main/CHANGELOG.md))
- [Hot-Reloading Servers](https://awesome-repositories.com/f/development-tools-productivity/hot-reloading-servers.md) — Pushes real-time code updates from a development server to the browser via WebSockets.
- [Hot-Reloading Systems](https://awesome-repositories.com/f/development-tools-productivity/hot-reloading-systems.md) — Provides real-time browser updates via WebSockets to reflect code changes without requiring a full page refresh. ([source](https://github.com/stenciljs/core/blob/main/docs))

### DevOps & Infrastructure

- [Browser Compatibility Targets](https://awesome-repositories.com/f/devops-infrastructure/cicd-pipeline-automation/core-build-engines/configuration-lifecycle-management/production-build-configurations/browser-compatibility-targets.md) — Supports targeting older browsers by generating builds for ES5 and SystemJS to ensure maximum compatibility. ([source](https://github.com/stenciljs/core/blob/main/BREAKING_CHANGES.md))

### Testing & Quality Assurance

- [Shadow DOM Assertions](https://awesome-repositories.com/f/testing-quality-assurance/general-testing-utilities/test-utilities-assertions/browser-ui-interaction/ui-element-selectors/shadow-dom-selectors/shadow-dom-assertions.md) — Provides utilities to serialize shadow-root content into mock elements for precise assertions against internal DOM structures. ([source](https://github.com/stenciljs/core/blob/main/BREAKING_CHANGES.md))
- [Frontend Unit Testing](https://awesome-repositories.com/f/testing-quality-assurance/node-js-test-automation/frontend-unit-testing.md) — Provides the ability to render and verify component HTML output in a Node environment without a browser. ([source](https://github.com/stenciljs/core/blob/main/BREAKING_CHANGES.md))
