Skip to content

Commit

Permalink
dev: Provide the accordion component
Browse files Browse the repository at this point in the history
  • Loading branch information
marien-probesys committed Jun 4, 2024
1 parent 9077d7e commit 6e4dd2f
Show file tree
Hide file tree
Showing 7 changed files with 72 additions and 1 deletion.
1 change: 1 addition & 0 deletions assets/icons/minus-primary.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions assets/icons/plus-primary.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions assets/stylesheets/application.css
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
@import "./utils/text.css";
@import "./utils/wrapper.css";
@import "./components/alerts.css";
@import "./components/accordions.css";
@import "./components/anchors.css";
@import "./components/badges.css";
@import "./components/buttons.css";
Expand Down
48 changes: 48 additions & 0 deletions assets/stylesheets/components/accordions.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
/* This file is part of Bileto. */
/* Copyright 2022-2024 Probesys */
/* SPDX-License-Identifier: AGPL-3.0-or-later */

.accordion {
border-bottom: var(--border-width) solid var(--color-grey6);
}

.accordion:first-child {
border-top: var(--border-width) solid var(--color-grey6);
}

.accordion__title {
--accordion-icon-size: 1.5rem;

padding-top: var(--space-medium);
padding-right: calc(var(--accordion-icon-size) + var(--space-small));
padding-bottom: var(--space-medium);

font-weight: 600;

background-image: url("../../icons/plus-primary.svg");
background-repeat: no-repeat;
background-position: right 0 top 50%;
background-size: var(--accordion-icon-size);

list-style: none;
}

.accordion__title:focus {
outline: none;
}

.accordion__title:focus-visible {
outline: var(--outline-width) solid var(--outline-color);
outline-offset: var(--outline-width);
}

.accordion[open] .accordion__title {
color: var(--color-primary9);

background-image: url("../../icons/minus-primary.svg");
}

.accordion__body {
margin-top: calc(var(--space-medium) * -1);
padding: var(--space-large) var(--space-small);
}
1 change: 1 addition & 0 deletions docs/developers/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ Dedicated to the frontend:
- [Working with the popups](/docs/developers/popups.md)
- [Working with the notifications](/docs/developers/notifications.md)
- [Working with columns and grids](/docs/developers/columns-and-grids.md)
- [Working with accordions](/docs/developers/accordions.md)

Dedicated to the maintainers:

Expand Down
19 changes: 19 additions & 0 deletions docs/developers/accordions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Working with accordions

Accordions can be used to provide additional information.
These can be particularly useful in complex forms in order to provide additionnal options.
These options must not be required.

```twig
<details class="accordion">
<summary class="accordion__title">
My accordion
</summary>
<div class="accordion__body">
<p>
The body of the accordion.
</p>
</div>
</details>
```
2 changes: 1 addition & 1 deletion public/icons.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 6e4dd2f

Please sign in to comment.