{"id":15092973,"url":"https://github.com/element-blazor/element-blazor","last_synced_at":"2026-05-30T07:01:31.422Z","repository":{"id":40858560,"uuid":"221581305","full_name":"Element-Blazor/Element-Blazor","owner":"Element-Blazor","description":"A Web UI Library based on Element and Blazor WebAssembly.","archived":false,"fork":false,"pushed_at":"2024-07-09T21:40:40.000Z","size":66799,"stargazers_count":690,"open_issues_count":9,"forks_count":120,"subscribers_count":22,"default_branch":"master","last_synced_at":"2025-05-16T17:06:58.943Z","etag":null,"topics":["blazor","element","element-blazor","webassembly","webui"],"latest_commit_sha":null,"homepage":"https://element-blazor.github.io/","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Element-Blazor.png","metadata":{"files":{"readme":"README.en.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-11-14T01:00:02.000Z","updated_at":"2025-05-07T08:00:11.000Z","dependencies_parsed_at":"2024-12-06T08:02:59.859Z","dependency_job_id":null,"html_url":"https://github.com/Element-Blazor/Element-Blazor","commit_stats":{"total_commits":475,"total_committers":17,"mean_commits":"27.941176470588236","dds":"0.21894736842105267","last_synced_commit":"9c98a7378b530dacd118f419fea71791e1052a4c"},"previous_names":["wzxinchen/blazui"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Element-Blazor%2FElement-Blazor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Element-Blazor%2FElement-Blazor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Element-Blazor%2FElement-Blazor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Element-Blazor%2FElement-Blazor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Element-Blazor","download_url":"https://codeload.github.com/Element-Blazor/Element-Blazor/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254573589,"owners_count":22093731,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blazor","element","element-blazor","webassembly","webui"],"created_at":"2024-09-25T11:02:22.193Z","updated_at":"2026-05-30T07:01:31.414Z","avatar_url":"https://github.com/Element-Blazor.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"﻿# Element-Blazor\n\n[![NuGet](https://img.shields.io/nuget/dt/Element.svg)](https://www.nuget.org/packages/Element/)\n[![Element.X](https://img.shields.io/nuget/v/Element.X?label=Element.X)](https://www.nuget.org/packages/Element.X/)\n\nElement-Blazor is a Blazor UI component library. The project now targets [element-plus/element-plus](https://github.com/element-plus/element-plus) as its primary design and component baseline.\n\n## Positioning\n\n- A Blazor component set focused on business back-office scenarios\n- Prioritizes practical usability and development efficiency for common components\n- Evolves through demos, documentation, and real product surfaces\n- Uses Element Plus `2.14.0` as the current visual, component-matrix, and version baseline\n- Element UI `2.15.x` is kept only as a historical reference\n\nThe project is currently under continuous refactoring and upgrade. See [ROADMAP.md](ROADMAP.md) for details.\n\n## Current Status\n\n- Main component project: `src/Components/Element.csproj`\n- Optional X package: `src/X/Element.X.csproj`\n- Current target framework: `.NET 10`\n- Current alignment version line: `2.14.0-alpha.1`\n- Samples and demos: `template/Samples`, `demo`\n- Community showcase: `community`, a DiscuzX-like Blazor community site used to demonstrate Element-Blazor in a real product surface\n- Test project: `test/Element.Test`\n- `demo`, `template`, and `community` are Git submodules. If they are not initialized, build the component library project directly; the full solution will fail because sample projects are missing.\n- `.NET 10` is the baseline for the component library mainline and new projects. Legacy `demo`, `template`, and `community` submodules do not need a full in-place .NET 10 upgrade before P1/P2 can continue.\n\n## Naming Strategy\n\n- DOM/CSS classes must keep the official Element Plus contract: `el-button`, `el-input`, `el-table`, `is-disabled`, `el-button--primary`.\n- Public Razor components use Element Plus-style PascalCase `El*` names, such as `\u003cElButton\u003e`, `\u003cElInput\u003e`, and `\u003cElTable\u003e`.\n- Hyphenated `\u003cel-button\u003e` is treated as a plain HTML/custom element by Razor and is not suitable as a Blazor component type. `el_` is also not idiomatic for .NET, so it is not used.\n- Legacy public component names such as `Button`, `Input`, and `Table` are removed directly. There is no compatibility layer and no transition alias.\n- Legacy prefixed component implementation entry points have been removed. The mainline keeps no compatibility layer, transition alias, or inheritance wrapper; active implementation names are `El*`/`Element*`.\n\n## Quick Start\n\n### Initialize submodules\n\nThis repository now uses Git submodules for `demo`, `template`, and `community`.\n\n- `demo`: component demos and online docs data source\n- `template`: project templates and sample hosts\n- `community`: DiscuzX-like community site with frontend, admin, API, and WASM projects\n\nFor a fresh clone, use:\n\n```powershell\ngit clone --recurse-submodules https://github.com/Element-Blazor/Element-Blazor.git\n```\n\nIf you already cloned the repository, run:\n\n```powershell\ngit submodule sync --recursive\ngit submodule update --init --recursive\n```\n\n### Build the component library\n\nIf you only need to validate the component library, run:\n\n```powershell\ndotnet restore src/Components/Element.csproj\ndotnet build src/Components/Element.csproj\n```\n\nOptional packages live outside the core package. Use `Element.Markdown` for Markdown editor components and `Element.X` for AI/conversation components.\n\n### Run local samples and the full solution\n\n1. Open the repository with Visual Studio 2022 or `dotnet` CLI\n2. Make sure the `demo`, `template`, and `community` submodules are initialized\n3. Restore dependencies and build the solution\n4. Start a sample project (recommended: `Element.ServerRender`)\n\n```powershell\ndotnet restore\ndotnet build Element-Blazor.sln\n```\n\n### Install from NuGet\n\n```powershell\ndotnet add package Element --prerelease\n```\n\n## Docs and Examples\n\n- Element Plus component overview: https://element-plus.org/en-US/component/overview\n- Online demo (GitHub): https://element-blazor.github.io/\n- Online demo (Gitee): https://element-blazor.gitee.io/\n- Demo source: `demo`\n- Community source: `community`\n\n## Theme Variables\n\nElement-Blazor ships an Element Plus `2.14.0` compatible CSS variable layer at `/_content/Element/css/theme.css`. Load it after `index.css`, then override `--el-*` variables in your app stylesheet. See [docs/p1-theme-variables.md](docs/p1-theme-variables.md) for Button/Input/Table migration examples.\n\n## Versioning and Plan\n\n- Version history: see [CHANGELOG.md](CHANGELOG.md)\n- Project roadmap: see [ROADMAP.md](ROADMAP.md)\n- Element Plus alignment notes: [docs/element-plus-alignment.md](docs/element-plus-alignment.md)\n- P0 project baseline: [docs/p0-project-baseline.md](docs/p0-project-baseline.md)\n- P0 warning inventory: [docs/p0-warning-inventory.md](docs/p0-warning-inventory.md)\n\n## Current Track\n\n- Done P0: project facade, build baseline, submodules, version baseline, and warning inventory\n- Done P1: add the Element Plus 2.14 CSS variable layer\n- Done P2: remove legacy public component names and switch to Element Plus `El*` control names\n- In progress P3: align visual design and APIs starting with `ElButton`, `ElInput`, and `ElForm`\n- Pending P4: documentation site and component overview\n- Pending P5: Element Plus component matrix gap filling\n- In progress P6: DiscuzX-like community facade and real product showcase\n- Pending P7: testing, release, and long-term maintenance\n\n## Contributing\n\nIssues and pull requests are welcome:\n\n- GitHub Issues: https://github.com/Element-Blazor/Element-Blazor/issues\n- Contribution guide: `CONTRIBUTING.md`\n\nBefore submitting a PR, please:\n\n1. Keep the change scope minimal and avoid unrelated refactoring\n2. Add examples and necessary tests for new features\n3. Update relevant documentation and change notes\n4. Update roadmap progress with plain-text status markers such as `Done`, `In progress`, and `Pending`\n\n## Acknowledgements\n\n- Element Plus design concepts, component specs, and interaction patterns\n- Element UI historical ecosystem as reference material\n- All contributors and community users\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felement-blazor%2Felement-blazor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felement-blazor%2Felement-blazor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felement-blazor%2Felement-blazor/lists"}