htmforge.components
htmforge.components.alert.Alert(**data)
Bases: Component
Rendert eine Alert-Box mit optionalem Dismiss-Button.
Source code in htmforge\core\component.py
render()
Erstellt ein <div> mit Variantenklasse und optionalem Schliessen.
Source code in htmforge\components\alert.py
htmforge.components.alert.AlertVariant
Bases: StrEnum
Unterstuetzte Alert-Varianten.
htmforge.components.badge.Badge(**data)
Bases: Component
Rendert ein kleines Inline-Label mit Variantenklasse.
Example
Badge(text="3", variant=BadgeVariant.DANGER).to_html() '3'
Source code in htmforge\core\component.py
htmforge.components.badge.BadgeVariant
Bases: StrEnum
Unterstuetzte Badge-Varianten.
htmforge.components.breadcrumb.Breadcrumb(**data)
Bases: Component
Rendert eine Breadcrumb-Navigation als <nav> mit geordneter Liste.
Items sind (label, url)-Tupel.
url=None markiert die aktuelle Seite und wird als <span> gerendert.
Source code in htmforge\core\component.py
render()
Erstellt <nav> mit <ol> und <li>-Eintraegen.
Source code in htmforge\components\breadcrumb.py
htmforge.components.table.DataTable(**data)
Bases: Component
Rendert eine einfache Datentabelle mit optionalem HTMX-Reload.
Source code in htmforge\core\component.py
render()
Erstellt div.table-wrapper > table.table mit thead/tbody.
Source code in htmforge\components\table.py
htmforge.components.form_field.FormField(**data)
Bases: Component
Rendert ein beschriftetes Eingabefeld mit optionaler Fehleranzeige.
Example
from htmforge.components.form_field import FormField, InputType field = FormField( ... name="username", ... label_text="Benutzername", ... required=True, ... ) "required" in field.to_html() True
Source code in htmforge\core\component.py
render()
Erstellt div > label + input [+ div.field-error].
Source code in htmforge\components\form_field.py
htmforge.components.form_field.InputType
Bases: StrEnum
Unterstuetzte <input>-Typen.
htmforge.components.modal.Modal(**data)
Bases: Component
Trigger-Button + leeres Dialog-Overlay, Inhalt wird per HTMX geladen.
Renders
Fields
modal_id: str — unique HTML id for the
Source code in htmforge\core\component.py
render()
Erstellt den Trigger-Button und das <dialog>-Overlay.
Source code in htmforge\components\modal.py
htmforge.components.pagination.Pagination(**data)
Bases: Component
Rendert Previous/Next und Seitenlinks fuer HTMX-Navigation.
Source code in htmforge\core\component.py
render()
Erstellt eine <ul> mit Seitenlinks inklusive Previous/Next.
Source code in htmforge\components\pagination.py
htmforge.components.search_input.SearchInput(**data)
Bases: Component
Text-Input mit automatischem hx-trigger keyup-Debounce.
</div>
Fields
name: str — input name attribute
search_url: str — URL for hx-get (custom field, not Component.hx_get)
search_target: str — CSS selector for swap target
(custom field, not Component.hx_target)
placeholder: str = "Suchen…"
debounce_ms: int = 300
indicator: str = "" — optional hx-indicator selector
Source code in htmforge\core\component.py
render()
Erstellt den Such-Input mit Debounce und optionalem Indicator.
Source code in htmforge\components\search_input.py
</div>
Fields
name: str — input name attribute search_url: str — URL for hx-get (custom field, not Component.hx_get) search_target: str — CSS selector for swap target (custom field, not Component.hx_target) placeholder: str = "Suchen…" debounce_ms: int = 300 indicator: str = "" — optional hx-indicator selector
Source code in htmforge\core\component.py
render()
Erstellt den Such-Input mit Debounce und optionalem Indicator.
Source code in htmforge\components\search_input.py
htmforge.components.page.Page(**data)
Bases: Component
Abstrakte Basisklasse fuer vollstaendige HTML-Dokumente mit DOCTYPE.
Subklassen implementieren :meth:_body_content um den Seiteninhalt
bereitzustellen. :meth:to_html haengt automatisch <!DOCTYPE html>
voran.
Example
from htmforge.components.page import Page from htmforge.core.element import Element
class MyPage(Page): ... users: list[str] = [] ... ... def _body_content(self) -> list[Element | str | None]: ... from htmforge.elements import li, ul ... return [ul(*[li(u) for u in self.users])] ... page = MyPage(title="Users", users=["Ada", "Grace"]) page.to_html().startswith("<!DOCTYPE html>") True
Source code in htmforge\core\component.py
render()
Rendert das vollstaendige <html>-Dokument ohne DOCTYPE.