Skip to content

SunUI Component Library

SunUI is Doggy's custom frontend UI component library, implemented via Twig macros with 25+ components.

Overview

SunUI has no dependency on Bootstrap or other UI frameworks. Component templates live in templates/ui/:

templates/ui/
├── elements.html.twig          # Element showcase
├── table.html.twig             # Table component
├── buttons/
│   ├── button.html.twig        # Button
│   ├── button_group.html.twig  # Button group
│   └── icon_button.html.twig   # Icon button
├── drawer/
│   ├── drawer.html.twig        # Drawer
│   ├── addField.html.twig
│   └── confirmButton.html.twig
├── form/
│   └── singleField.html.twig   # Single field form
├── template/
│   ├── icons.html.twig         # Icon templates
│   └── ui.html.twig            # UI templates
└── example/
    └── button.html.twig        # Button examples

Shared components:

templates/components/
├── breadcrumb.html.twig    # Breadcrumb
├── datagrid.html.twig      # Data table
└── tree.html.twig          # Tree component

Core Components

Data Display

ComponentTemplateDescription
DataGridcomponents/datagrid.html.twigAdvanced data table
Treecomponents/tree.html.twigTree structure
Tableui/table.html.twigBasic table

Forms

ComponentTest TemplateType
Inputtest/input.html.twigText input
Selecttest/select.html.twigDropdown (searchable, multi-select)
DatePickertest/date.html.twigDate picker
Switchtest/switch.html.twigToggle switch
Checkboxtest/checkbox.html.twigCheckbox
Uploadtest/file.html.twigFile upload
Radiotest/radio.html.twigRadio buttons

Feedback

ComponentTemplateDescription
Modaltest/modal.html.twigModal dialog
Drawerui/drawer/drawer.html.twigSlide-out drawer
Toasttest/alert.html.twigMessage toast
ComponentDescription
Tabstest/tabs.html.twig
Breadcrumbcomponents/breadcrumb.html.twig
Menuadmin/dynamic/menu.html.twig

Form Themes

Custom Twig form themes:

templates/form/
├── ef_ui_form_theme.html.twig              # Default form theme
└── ef_ui_form_theme_department.html.twig   # Department selector theme

Test Pages

Complete component examples and test pages in templates/test/ (45+ templates), covering:

  • All form field types (input, select, date, file, color, password, money, percent, etc.)
  • Layout components (grid, table, tabs, drawer, modal)
  • Business components (employee, department, company examples)
  • Functional tests (form dates, choice fields, etc.)

Open Source under MIT | Copyright © 2026 Doggy