A Collapse-Fieldtype for Statamic to beautifully hide and show your fields.
Simple as that. Just tuck all the fields that take up too much space or you don't want to confuse your clients with et voilá: A beautiful little collapse-content section wherever you want that hides bloated fields.
Installation
composer require goldnead/statamic-collapse-fieldtype
That's it. No vendors-assets needing attention or config files waiting to be configured. Just a plain ol' Fieldtype, nuthin' more.
Usage
Behind the scenes this fieldtype kind of works like a grid
or replicator
fieldtype. Just without the repetition. Even conditions work!
Just use it in your fieldsets or blueprints like this:
title: 'Content Theme'
fields:
-
handle: collapse
field:
fields:
-
handle: toggle_field
field:
default: false
display: 'Test conditional fields!'
type: toggle
icon: toggle
width: 50
listable: hidden
-
handle: advanced_settings
field:
display: 'Advanced Settings'
type: section
icon: section
listable: hidden
if:
toggle_field: 'equals true'
-
handle: section_width
field:
options:
sm: SM
md: MD
lg: LG
custom: Custom
default: md
display: 'Section Width'
type: button_group
icon: button_group
width: 75
listable: hidden
-
handle: custom_width
field:
default: '450'
display: 'Custom Width'
type: integer
icon: integer
width: 25
listable: hidden
if:
section_width: 'equals custom'
display: 'Collapse This!'
type: collapse
icon: asection
listable: hidden
instructions: "When you click here, something great will happen."
Easy-peasy, right? You can also just use it in the blueprint editor.
Templating
Like in the grid
fieldset all values are scoped within that field. So to acces the variable section_width
from the example above we need to write something like this in our templates:
<section width="{{ collapse:section_width }}>...</section>
TODOs
- Enthusiastically added dark mode support to be used with radnight. Need to figure out how to use dark-mode only when that kind of addon is being used. Otherwise it will be displayed in dark when everything else stays liht, yuck!