- Consumer compatibility regression:
CfUiConfig.ready()no longer overridessettings.COTTON_DIR. The previous fix in 0.1.0 setCOTTON_DIR="cotton/bulma"globally, which broke any consumer project whose own cotton templates lived attemplates/cotton/<their-app>/...(every<c-foo.bar>lookup got rewritten tocotton/bulma/foo/bar/index.htmland raisedTemplateDoesNotExist).
- cf-ui's cotton templates moved from
cotton/<theme>/cf/*.htmltocotton/cf/*.html. Theme variation will now happen inside the templates (or via_themes/partials) instead of at the directory level. With the defaultCOTTON_DIR="cotton",<c-cf.foo>continues to resolve and consumer cotton trees are no longer affected.
- Most consumers: no change required. Removing any explicit
COTTON_DIR="cotton/bulma"fromsettings.py(added as a workaround while 0.1.0 was broken) is recommended. - If you imported
COTTON_TEMPLATES_DIR / "bulma"directly via the escape hatch, switch toCOTTON_TEMPLATES_DIR / "cf".
- Initial release: Bulma theme (Jinja2/JinjaX + django-cotton)
- 14 components: FormField, Select, Textarea, CheckboxGroup, Modal, Notification, Progress, Card, Table, Pagination, Panel, Navbar, Breadcrumb, Tabs
- Django AppConfig with auto-registration of COTTON_DIRS
- FastAPI
install_cf_ui()with JinjaXadd_folder(prefix="Cf")registration - Litestar
install_cf_ui()with Jinja2 template directory injection - CDN asset tags:
{% cf_ui_head %}/{% cf_ui_body %}(Django + Jinja2 macros) cf_ui_alpine.js: named Alpine components (cfModal, cfNavbar, cfPanel, cfTabs) and$store.cfglobal store (notify, modal.open/close via custom events)- Three-tier test suite: unit (93 tests), integration (8 tests), E2E Playwright (17 tests, js_on + js_off)
- Stubs for Bootstrap, Foundation, Fomantic UI, DaisyUI themes
- django-cotton 2.x: uses
<c-vars>(not<c-props>) for variable declarations - JinjaX 0.41+: uses
add_folder()(notadd_path()),classis reserved — useextra_class - Alpine modal control uses
cf-modal-open/cf-modal-closecustom events (not_x_dataStack)