Skip to content

Tracker | Version 0.1.0 roadmap #165

@AnnaSasDev

Description

@AnnaSasDev

The goal of this library is to deliver a component library that is fully customizable through theming, easy to set up, and provides a flexible Markdown text editor that can be extended through a plugin system.

Tip

Do not use nested checkbox lists within this roadmap


Core Foundations

Project setup & packaging

  • Create a core Razor Class Library project
  • Add Tailwind CSS (v4.x) integration with @theme and @utility syntax
  • GitHub Actions: build, test, publish NuGet package
  • Improve dev loop with hot reload for the documentation site #171
  • Proper setup for a docs page that is made up out of a combination of live example and plain markdown content

Base configuration system

  • Global theming support (light/dark/custom)
  • Theme injection via ThemeProvider
  • Custom CSS variable overrides

    maybe through a simple JSON key - value setup?

  • Component-level style isolation (Tailwind + CSS vars)
  • Global configuration provider for default behaviors (e.g., animations, borders, spacing)

Documentation & Examples

  • Quick-start guide

    maybe need to think about a proper template project?

  • Theming examples
  • Auto-generated component documentation
  • Interactive code playground (Blazor preview snippets)

    This is a bit of a difficult one as razor files themselves dont have an open interpreter yet, meaning I would have to hack together a solution to only partially support the full razor suite.


Base Components

Focus on primitives that can be reused across InfiniLore.

Layout

  • Page
  • Section
  • Container
  • Grid
  • Stack
  • Spacer
  • Divider

Inputs

  • Button
  • InputText
  • List Select
  • Checkbox
  • RadioGroup
  • Toggle Button
  • Slider
  • Range
  • DatePicker
  • ColorPicker
  • SearchInput
  • FileUpload
  • Textarea
  • NumberInput

Feedback

  • Toast
  • Tooltip
  • Popover
  • Dialog
  • Modal
  • Snackbar
  • LoadingSpinner
  • Alert
  • ProgressBar

Navigation

  • Tabs
  • Navbar
  • Sidebar
  • NavMenu
  • NavSubMenu
  • NavTreeMenu
  • Menu
  • Breadcrumb
  • Pagination
  • Steps
  • CommandBar
  • Dropdown

Data display

  • Card
  • Badge
  • Table
  • Tag
  • Rename InfiniUserIcon to InfiniAvatar #173
  • Progress
  • Timeline
  • Carousel
  • Collapse
  • List
  • Tree
  • Steps
  • Image
  • CodeBlock
  • Code
  • Highlight
  • Markdown
  • Chart
  • TooltipCard
  • BadgeGroup
  • TagGroup
  • ...Skeleton components for all major components

Icons

  • LucideIcon component (already exists)
  • SimpleIcon component
  • Icon component

    should be able to render any icon from any icon set (e.g., lucide, simple-icons, etc.)

  • Global icon registry for easy import/extension
  • Icon pack loader (auto-discovery of SVGs from namespace or folder)

Theming System


Markdown Editor

Extensible markdown editor for InfiniLore manuscripts and notes.

Different rendering outputs for a Syntax Tree

  • Interactive Blazor rendering
  • Static HTML rendering
  • JSON tree rendering
  • XML tree rendering
  • Markdown rendering
  • Toolbar with pluggable actions (bold, italic, insert link, etc.)
  • Syntax highlighting for code blocks

    Optionally included by checking if highlight.js is imported as a JavaScript library on the client side, and if so will enable highlighting on code blocks in the rendered output.

  • Markdown parser customization layer (custom extensions and syntax hooks)
  • Markdown preview component for static content
  • Editor persistence model (track draft state)
  • History system for undo/redo

❌ Side-by-side Markdown editor component

Not going to be implemented in 0.1.0 but can be worked on in the mean time.
Thus is not a requirement for the current version.

Extensibility layer

  • Plugin API for editor extensions (custom buttons, syntax processors)
  • Live preview pane
  • Toolbar customization via dependency injection
  • Markdown processor middleware (pipeline pattern)
  • Command registry for custom editing commands
  • Context menu and keyboard shortcut binding system

Extensibility & Utilities

  • IInfiniBlazorPlugin interface for registering new components, themes, or editor plugins
  • Plugin discovery and registration system
  • Component registry for runtime loading of UI elements
  • Optional dependency injection container for plugins

Utility library extensions

  • Color utilities
  • Debounce/throttle helpers for Blazor
  • Async value caching utilities
  • State synchronization helpers (e.g., localStorage, sessionStorage)
  • DOM interop utilities (measurements, viewport checks, scroll helpers)
  • Keyboard event manager for components
  • Theme-aware random color generator

Dev & Ops

  • Unit tests for core UI logic (rendering, theming, editor)
  • Integration tests for component rendering consistency
  • Pre-release NuGet package publishing to GitHub Packages
  • Automated documentation build and deployment
  • Linting and analyzer setup (Roslyn analyzers?)
  • Code coverage reporting
  • Version tagging and changelog generation
  • Benchmark tests for render performance
  • Browser compatibility verification (WebAssembly SSR hybrid test)

Metadata

Metadata

Assignees

Labels

.NETPull requests that update .NET codeenhancementNew feature or requestjavascriptPull requests that update javascript codetrackerIssues that are meant to track larger changes in the code base, a collection of multiple sub issues

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions