{"id":37050990,"url":"https://github.com/carlosga/blatternfly","last_synced_at":"2026-01-14T05:54:00.790Z","repository":{"id":39620442,"uuid":"386708133","full_name":"carlosga/blatternfly","owner":"carlosga","description":"Blatternfly is a Blazor implementation of PatternFly","archived":false,"fork":false,"pushed_at":"2022-10-07T17:51:44.000Z","size":25117,"stargazers_count":8,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-06T22:29:32.526Z","etag":null,"topics":["blazor","blazor-components","blazor-webassembly","component-library","components","csharp","dotnet6","wasm"],"latest_commit_sha":null,"homepage":"","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/carlosga.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-07-16T16:58:24.000Z","updated_at":"2025-01-19T13:51:33.000Z","dependencies_parsed_at":"2023-01-19T15:17:18.793Z","dependency_job_id":null,"html_url":"https://github.com/carlosga/blatternfly","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/carlosga/blatternfly","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carlosga%2Fblatternfly","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carlosga%2Fblatternfly/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carlosga%2Fblatternfly/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carlosga%2Fblatternfly/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/carlosga","download_url":"https://codeload.github.com/carlosga/blatternfly/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carlosga%2Fblatternfly/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28411963,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T05:26:33.345Z","status":"ssl_error","status_checked_at":"2026-01-14T05:21:57.251Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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","blazor-components","blazor-webassembly","component-library","components","csharp","dotnet6","wasm"],"created_at":"2026-01-14T05:54:00.131Z","updated_at":"2026-01-14T05:54:00.785Z","avatar_url":"https://github.com/carlosga.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://img.shields.io/github/workflow/status/carlosga/blatternfly/Build%20\u0026%20Tests?color=007ec6\u0026logo=github\u0026style=for-the-badge)](https://github.com/carlosga/blatternfly/actions/workflows/dotnet.yml)\n[![GitHub last commit](https://img.shields.io/github/last-commit/carlosga/blatternfly?color=007ec6\u0026style=for-the-badge\u0026logo=github)](https://github.com/carlosga/blatternfly)\n[![GitHub](https://img.shields.io/github/license/carlosga/blatternfly?color=007ec6\u0026style=for-the-badge\u0026logo=github)](https://github.com/carlosga/blatternfly/blob/master/LICENSE)\n[![Nuget version](https://img.shields.io/nuget/vpre/Blatternfly?color=007ec6\u0026label=nuget%20version\u0026style=for-the-badge\u0026logo=nuget)](https://www.nuget.org/packages/Blatternfly/)\n[![Nuget downloads](https://img.shields.io/nuget/dt/Blatternfly?color=007ec6\u0026label=nuget%20downloads\u0026style=for-the-badge\u0026logo=nuget)](https://www.nuget.org/packages/Blatternfly/)\n\n\u003c!-- PROJECT LOGO --\u003e\n## Blatternfly\n\n# !! This repository has moved !!\n# New location : https://codeberg.org/carlosga/blatternfly\n\n[View demo](https://carlosga.github.io/blatternfly/)\n\n\u003c!-- ABOUT THE PROJECT --\u003e\n## About The Project\n\n**Blazor learning project.** Blatternfly is a [Blazor](https://dotnet.microsoft.com/apps/aspnet/web-apps/blazor) implementation of [PatternFly](https://www.patternfly.org/v4/).\n\n### Built With\n\n* [Blazor](https://dotnet.microsoft.com/apps/aspnet/web-apps/blazor). Some parts of the form and input base components has been copied over from Blazor source code.\n* [PatternFly](https://www.patternfly.org/v4/).\n\n\u003c!-- GETTING STARTED --\u003e\n\n## Getting started\n\n### Prerequisites\n\n* .NET 6.0\n\n### Imports\n\nAdd the following to `_Imports.razor`\n\n```razor\n@using Blatternfly\n@using Blatternfly.Components\n@using Blatternfly.Layouts\n```\n\n### Patternfly CSS\n\nAdd the following to `index.html`\n\n```html\n\u003clink href=\"_content/Blatternfly/patternfly.css\" rel=\"stylesheet\" /\u003e\n\u003clink href=\"_content/Blatternfly/patternfly-addons.css\" rel=\"stylesheet\" /\u003e\n```\n\nSee also the [getting started](https://www.patternfly.org/v4/get-started/develop#htmlcss) section on the PatternFly website for more details.\n\n### PatternFly Dark Theme\n\nTo dynamically enable/disable the dark theme use the `ThemeProvider` component, to set the dark theme as the default theme add the class `pf-theme-dark` to the `\u003chtml\u003e` tag.\n\n### Configuration\n\nExample of Blatternfly configuration in `Program.cs`\n\n```csharp\nvar builder = WebAssemblyHostBuilder.CreateDefault(args);\nbuilder.RootComponents.Add\u003cApp\u003e(\"#app\");\n\nbuilder.Services.AddScoped(sp =\u003e new HttpClient\n{\n    BaseAddress = new Uri(builder.HostEnvironment.BaseAddress)\n});\n\nbuilder.AddBlatternfly();\n\nvar webhost = builder.Build();\n\nawait webhost.UseBlatternfly();\nawait webhost.RunAsync();\n```\n\n### Trimming\n\nConfigure assembly trimming via XML files as explained here '[Customizing Trimming in .NET 5](https://devblogs.microsoft.com/dotnet/customizing-trimming-in-net-core-5/#preservation)'.\n\n```xml\n\u003clinker\u003e\n  \u003cassembly fullname=\"Blatternfly\"\u003e\n    \u003ctype fullname=\"EventHandlers\"                     preserve=\"all\" /\u003e\n    \u003ctype fullname=\"Blatternfly.Interop.MouseEvent\"    preserve=\"all\" /\u003e\n    \u003ctype fullname=\"Blatternfly.Interop.KeyboardEvent\" preserve=\"all\" /\u003e\n    \u003ctype fullname=\"Blatternfly.Interop.ResizeEvent\"   preserve=\"all\" /\u003e\n  \u003c/assembly\u003e\n\u003c/linker\u003e\n```\n\n\u003c!-- LICENSE --\u003e\n## License\n\nDistributed under the MIT License. See `LICENSE` for more information.\n\n\u003c!-- ACKNOWLEDGEMENTS --\u003e\n## Acknowledgements\n* [Blazor](https://dotnet.microsoft.com/apps/aspnet/web-apps/blazor).\n* [PatternFly](https://www.patternfly.org/v4/).\n* [CssBuilder](https://github.com/EdCharbeneau/CssBuilder).\n* [StyleBuilder](https://github.com/EdCharbeneau/CssBuilder).\n* [focus-trap](https://github.com/focus-trap/focus-trap).\n* [tabbable](https://github.com/focus-trap/tabbable).\n* [Floating UI](https://floating-ui.com).\n* [PrismJS](https://prismjs.com/).\n* [Night Owl theme for PrismJS](https://github.com/SaraVieira/prism-theme-night-owl).\n* [Best Readme Template](https://github.com/othneildrew/Best-README-Template).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcarlosga%2Fblatternfly","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcarlosga%2Fblatternfly","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcarlosga%2Fblatternfly/lists"}