# Styling

### Publishing the form view files: (NOT Recommended!)

* Most styling can be customized in the theme css
* Each field has a lot of styling options that hopefully covers your needs, if not - please create a feature or PR.
* Every field also has a blade component class you can extend or replace.

If you still decide to publish the views it would be a good idea to watch this package for changes.

```
php artisan vendor:publish --tag=tall-form-views
```

{% tabs %}
{% tab title="Field methods" %}

#### Chainable methods that controls the field design

```php
//position
inline() //Labels to the left, override Form attribute 'inline'
stacked() //Labels above, override Form attribute 'inline'

//width
colspan(int $cols) //12 grid

//field classes
fieldWidth(string $class)
class(string $classes, bool $merge = true) //Merge or replace the fields default classes
wrapperClass(string $class)
errorClass(string $classes, bool $append = true) //Append or replace the fields default error classes

//labels
labelWidth(string $class) //Used only on inline forms. Default = sm:w-1/3
labelWrapperClass(string $classes)
labelClass(string $classes, bool $merge = true) //$merge = append to field default classes
labelAlign(string $class)
hideLabel()
```

#### Example

```php
//example
KeyVal::make('Name')->labelClass('mb-0')->fields([
    Input::make('English', 'en')->colspan(6)->labelClass('font-medium capitalize my-0', true)->rules('required'),
    Input::make('Swedish', 'sv')->colspan(6)->labelClass('font-medium capitalize my-0', true)->rules('required'),
])
```

{% endtab %}

{% tab title="Form attr" %}

```php
protected function formAttr()
{
    return [
        'inline' => true, //see images, can be overriden on individual fields
        'inlineLabelAlignment' => 'string w classes', //Label alignment, default = config('tall-forms.component-attributes.inline-label-alignment'),
        'labelW' => 'string w classes', //Width of the label column, default = config('tall-forms.component-attributes.label-width')
        'fieldW' => 'string w classes', //Width of the field column, default = config('tall-forms.component-attributes.label-width')
    ];
}
```

`$inline = true`

![](https://github.com/tanthammar/tall-forms/wiki/inline.png)

`$inline = false`

![](https://github.com/tanthammar/tall-forms/wiki/stacked.png)

#### Defaults, see **tall-forms** [**config**](https://tina-hammar.gitbook.io/tall-forms/upgrade-v7-v8/configuration-changes) **file**.

{% endtab %}

{% tab title="Blade Components" %}

* You find the Blade classes in the config files, **extend** or **replace** them.&#x20;
* Don't change the array keys.&#x20;
* The blade prefix is `tall`

`config/tall-forms`

```php
'components' => [
    'form' => Components\Form::class,
    'label-field-wrapper' => Components\LabelFieldWrapper::class,
    'field-root' => Components\FieldRoot::class,
    'input' => Components\Input::class,
    'input-array' => Components\InputArray::class,
    'image-cropper' => Components\ImageCropper::class,
    'range' => Components\Range::class,
    'textarea' => Components\Textarea::class,
    'checkbox' => Components\Checkbox::class,
    'checkboxes' => Components\Checkboxes::class,
    'radio' => Components\Radio::class,
    'file-upload' => Components\FileUpload::class,
    'select' => Components\Select::class,
    'search' => Components\Search::class,
    'trix' => Components\Trix::class,
    'svg' => Components\Svg::class,
]
```

`config/tall-forms-sponsors`

```php
'components' => [
    'search-list' => Components\SearchList::class,
    'select-optgroup' => Components\SelectOptGroup::class,
    'date-picker' => Components\DatePicker::class,
    'date-picker-alpine' => Components\DatePickerAlpine::class,
    'ckeditor' => Components\CKEditor::class,
]
```

{% endtab %}

{% tab title="Views" %}
It is not recommended to publish the views

```
php artisan vendor:publish --tag=tall-form-views
```

{% endtab %}

{% tab title="Theme" %}
Most styling can be customized in the theme css. See [Theme](https://tina-hammar.gitbook.io/tall-forms/installation/manual-installation/theme) installation page
{% endtab %}
{% endtabs %}
