Toggle pattern
A pattern to toggle classes on HTML elements.
Migration note (Plone 6)
This mockup pattern will probably replaced by patternslib/toggle. Some features are already broken like "Toggle an element by hover event". We decided to not migrate all examples and no tests.
Configuration
Option | Type | Default | Description |
---|---|---|---|
target | string | null | selector of the target elements to toggle ('undefied') |
targetScope | null | selector of a target scope element in anchestors ('global') | |
attribute | string | null | element attribute which will be toggeled ('class') |
event | string | null | event which will trigger toggling ('click') |
Examples
Toggle itself
<button type="button" class="btn btn-primary pat-toggle" data-pat-toggle="value:btn-lg;">
This button goes bigger/smaller!
</button>
Toggle all targets (global scope)
Hello World
<div class="wrapper">
<button
type="button"
class="btn btn-primary pat-toggle mb-2"
data-pat-toggle="value:badge-success;target:.targetElement"
>
This button is toggling the background of a element.</button
><br />
<span class="targetElement badge bg-secondary">Hello World</span>
</div>
Toggle specific target inside a target scope
Hello World
Hello World
<div class="wrapper">
<div class="myScope">
<button
type="button"
class="btn btn-primary pat-toggle mb-2"
data-pat-toggle="value:bg-success;target:.targetElement;targetScope:.myScope;"
>
toggle</button
><br />
<span class="targetElement badge bg-secondary mb-4">Hello World</span>
</div>
<div class="myScope">
<button
type="button"
class="btn btn-primary pat-toggle mb-2"
data-pat-toggle="value:bg-success;target:.targetElement;targetScope:.myScope;"
>
toggle</button
><br />
<span class="targetElement badge bg-secondary">Hello World</span>
</div>
</div>
Toggle more than one target inside a specific target scope
Hello World Hello again
Hello World
<div class="wrapper">
<div class="myScope">
<button
type="button"
class="btn btn-primary pat-toggle mb-2"
data-pat-toggle="value:bg-success;target:.targetElement;targetScope:.myScope;"
>
toggle</button
><br />
<span class="targetElement badge bg-secondary">Hello World</span>
<span class="targetElement badge bg-secondary mb-4">Hello again</span>
</div>
<div class="myScope">
<button
type="button"
class="btn btn-primary pat-toggle mb-2"
data-pat-toggle="value:bg-success;target:.targetElement;targetScope:.myScope;"
>
toggle</button
><br />
<span class="targetElement badge bg-secondary">Hello World</span>
</div>
</div>