PHPackages                             modul-is/form - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Templating &amp; Views](/categories/templating)
4. /
5. modul-is/form

ActiveLibrary[Templating &amp; Views](/categories/templating)

modul-is/form
=============

Simplified nette forms

v1.3.6(9mo ago)411.5k↓44.4%[16 issues](https://github.com/modul-is/form/issues)[1 PRs](https://github.com/modul-is/form/pulls)MITPHPPHP ^8.4

Since Aug 31Pushed 2mo ago2 watchersCompare

[ Source](https://github.com/modul-is/form)[ Packagist](https://packagist.org/packages/modul-is/form)[ Docs](https://github.com/modul-is/form)[ RSS](/packages/modul-is-form/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (7)Versions (39)Used By (0)

Nette form with custom BS5 renderer
===================================

[](#nette-form-with-custom-bs5-renderer)

This library allows you to spend less time writing templates for Nette forms - it contains renderers for form, containers as well as all inputs

Getting started
---------------

[](#getting-started)

Easiest way to create form is to create component which extends `FormComponent` class

```
class MyForm extends \ModulIS\Form\FormComponent
{
	public function createComponentForm(): Form
	{
		$form = $this->getForm();

		...

		return $form;
	}
}

```

Then you just add inputs to form, create `MyForm` component and all done!

Inputs
------

[](#inputs)

Form supports all of the default Nette inputs and adds new ones

- `addLink()` - Button with link (eg. reset, go back buttons)
- `addWhisperer()` - select box with whisperer which filters options
- `addMultiWhisperer()` - same as whisperer, more options can be selected
- `addDuplicator()` - container which can be duplicated many times
- `addDependentSelect()` - select box that can change options via ajax based on change of another input(s)
- `addDependentMultiSelect()` - same as DependantSelect, but more options can be selected
- `addDate()` - date input, can limit min and max date

Custom settings
---------------

[](#custom-settings)

### Form

[](#form)

- `setTitle()` - add `card-header` div with title
- `setColor()` - set color of form
- `setAjax()` - form is submitted via ajax
- `addBox()` - all inputs added after this call will render in new card
- `setFloatingLabel()` - inputs will be rendered with [floating labels](https://getbootstrap.com/docs/5.0/forms/floating-labels/)
- `setRenderInline()` - label and input are rendered each in separate row
- `setRenderManually()` - set manual render, template with same name as form is used (eg. file `MyForm.php` -&gt; `myForm.latte`)

### Groups

[](#groups)

Form is rendered in BS5 [card](https://getbootstrap.com/docs/5.0/components/card/) - each card represents one group

Inputs are rendered in `card-body` div

Submitters, links and buttons in `card-footer`

### Container

[](#container)

Container works as standard Nette Continer and has these new features

- `setId()` - add html id to outer div of container
- `showCard()` - show container as BS5 [card](https://getbootstrap.com/docs/5.0/components/card/)
- `setTitle()` - show title of container (only works when container is rendered as card)
- `setColor()` - set color of conatiner (only works when container is rendered as card)

### Inputs

[](#inputs-1)

Some inputs provide new features

- `setIcon()` - add icon to input or button (Buttons, Links, Text inputs)
- `setColor()` - add color to input or button (Buttons, Links, Checkbox, Lists)
- `setTemplate()` - add custom latte template insted of basic render (All inputs)
- `setPrepend()` - adds prepend part to [input group](https://getbootstrap.com/docs/5.0/forms/input-group/) (Text inputs, Select boxes)
- `setAppend()` - adds append part to [input group](https://getbootstrap.com/docs/5.0/forms/input-group/) (Text inputs, Select boxes)
- `setRenderInline()` - render label and input each in separate row, overwrites `renderInline` setting from Form (All non-button inputs)
- `setFloatingLabel()` - input will be rendered with [floating labels](https://getbootstrap.com/docs/5.0/forms/floating-labels/) (Text inputs, Select box)
- `setAutorenderSkip()` - skips rendering of input, eg. if input is rendered as part of another input with custom template (All inputs)
- `setTooltip()` - add icon with tooltip to input (Text inputs, Checkbox, Lists, Selec boxes)
- `setWrapClass()` - set class to outer div around label and input - overwrites basic `col-` class (Text inputs, Checkbox, Lists, Selec boxes)
- `setLabelWrapClass()` - set class to wrap div around label - overwrites basic `col-` class (Text inputs, Checkbox, Lists, Selec boxes)
- `setInputWrapClass()` - set class to wrap div around input - overwrites basic `col-` class (Text inputs, Checkbox, Lists, Selec boxes)

### Duplicator example

[](#duplicator-example)

```
$duplicator = $form->addDuplicator('duplicator', function(\ModulIS\Form\DuplicatorContainer $container)
{
	$container->addText('text', 'Text input');

	$container->addSubmit('del', 'Smazat');
}, 1);

$duplicator->addSubmit('add', 'Přidat');

```

###  Health Score

46

—

FairBetter than 93% of packages

Maintenance55

Moderate activity, may be stable

Popularity28

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity73

Established project with proven stability

 Bus Factor1

Top contributor holds 78.6% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~26 days

Recently: every ~65 days

Total

36

Last Release

60d ago

PHP version history (2 changes)v1.0.0PHP ^8.2

v1.3.0PHP ^8.4

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/10499130?v=4)[Pavel Kravčík](/maintainers/kravcik)[@kravcik](https://github.com/kravcik)

---

Top Contributors

[![vodictomas](https://avatars.githubusercontent.com/u/11019496?v=4)](https://github.com/vodictomas "vodictomas (316 commits)")[![kravcik](https://avatars.githubusercontent.com/u/10499130?v=4)](https://github.com/kravcik "kravcik (31 commits)")[![KrejciFili](https://avatars.githubusercontent.com/u/91294159?v=4)](https://github.com/KrejciFili "KrejciFili (20 commits)")[![krumld](https://avatars.githubusercontent.com/u/54597935?v=4)](https://github.com/krumld "krumld (18 commits)")[![spulakk](https://avatars.githubusercontent.com/u/34043062?v=4)](https://github.com/spulakk "spulakk (17 commits)")

---

Tags

phpnetteformbs5

### Embed Badge

![Health badge](/badges/modul-is-form/health.svg)

```
[![Health](https://phpackages.com/badges/modul-is-form/health.svg)](https://phpackages.com/packages/modul-is-form)
```

###  Alternatives

[contributte/forms-bootstrap

Nette extension for Bootstrap forms

211.1M4](/packages/contributte-forms-bootstrap)[tomaj/nette-bootstrap-form

Nette bootstrap form renderer

28440.4k6](/packages/tomaj-nette-bootstrap-form)[nextras/forms-rendering

Rendering helpers for Nette Framework Forms.

1698.4k2](/packages/nextras-forms-rendering)[nasext/dependent-select-box

Dependent Select Box for Nette Framework.

21262.8k2](/packages/nasext-dependent-select-box)[nepada/form-renderer

Latte template based form renderer for Nette forms with full support for Bootstrap 3, 4 &amp; 5.

11251.0k](/packages/nepada-form-renderer)[nextras/form-components

Form components for Nette Framework.

10242.9k](/packages/nextras-form-components)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
