Current section

Files

Jump to
noora components button-group.json
Raw

components/button-group.json

{
"name": "ButtonGroup",
"tagName": "noora-button-group",
"elementClassName": "NooraButtonGroup",
"className": "noora-button-group",
"modulePath": "./priv/static/noora-web-components.js",
"description": "Groups related controls into a compact segmented surface.",
"usage": "<noora-button-group>\n <noora-button-group-item value=\"day\">Day</noora-button-group-item>\n <noora-button-group-item value=\"week\">Week</noora-button-group-item>\n</noora-button-group>",
"attributes": [
{
"name": "size",
"property": "size",
"type": "string",
"values": ["small", "medium", "large"],
"default": "medium",
"description": "Controls child dimensions."
}
],
"properties": [
{
"name": "items",
"type": "json",
"typescriptType": "Array<Record<string, unknown>>",
"default": [],
"description": "Defines group items programmatically when declarative noora-button-group-item children are not used."
}
],
"readonlyProperties": [],
"slots": [
{
"name": "",
"description": "Declarative noora-button-group-item children."
}
],
"cssParts": [
{
"name": "group",
"description": "The group container."
}
],
"events": [
{
"name": "noora-select",
"type": "CustomEvent<{ index: number; item: Record<string, unknown>; value: unknown }>",
"description": "Emitted when an enabled group item is selected."
}
],
"notes": [
"Use noora-button-group-item children for declarative groups.",
"The items property remains available for data-driven rendering."
],
"examples": [
{
"id": "sizes",
"title": "Sizes",
"description": "Button groups range from small to large.",
"markup": "<noora-button-group size=\"small\">\n <noora-button-group-item>First</noora-button-group-item>\n <noora-button-group-item>Second</noora-button-group-item>\n <noora-button-group-item>Third</noora-button-group-item>\n</noora-button-group>\n<noora-button-group size=\"medium\">\n <noora-button-group-item>First</noora-button-group-item>\n <noora-button-group-item>Second</noora-button-group-item>\n <noora-button-group-item>Third</noora-button-group-item>\n</noora-button-group>\n<noora-button-group size=\"large\">\n <noora-button-group-item>First</noora-button-group-item>\n <noora-button-group-item>Second</noora-button-group-item>\n <noora-button-group-item>Third</noora-button-group-item>\n</noora-button-group>"
},
{
"id": "icons",
"title": "Icon configurations",
"description": "Compare labeled controls with icons, icon-only controls, and a mixture of both.",
"markup": "<noora-button-group size=\"medium\">\n <noora-button-group-item icon-left=\"chevron_left\">Previous</noora-button-group-item>\n <noora-button-group-item icon-left=\"chevron_left\" icon-right=\"chevron_right\">Both</noora-button-group-item>\n <noora-button-group-item icon-right=\"chevron_right\">Next</noora-button-group-item>\n</noora-button-group>\n\n<noora-button-group size=\"medium\">\n <noora-button-group-item icon=\"chevron_left\" icon-only aria-label=\"Previous\"></noora-button-group-item>\n <noora-button-group-item icon=\"chevron_right\" icon-only aria-label=\"Next\"></noora-button-group-item>\n</noora-button-group>\n\n<noora-button-group size=\"medium\">\n <noora-button-group-item icon=\"chevron_left\" icon-only aria-label=\"Previous\"></noora-button-group-item>\n <noora-button-group-item>Page 1</noora-button-group-item>\n <noora-button-group-item>Page 2</noora-button-group-item>\n <noora-button-group-item icon=\"chevron_right\" icon-only aria-label=\"Next\"></noora-button-group-item>\n</noora-button-group>"
},
{
"id": "states",
"title": "States",
"description": "Compare a partially disabled group with a fully disabled group.",
"markup": "<noora-button-group size=\"medium\">\n <noora-button-group-item>Available</noora-button-group-item>\n <noora-button-group-item disabled>Disabled</noora-button-group-item>\n <noora-button-group-item>Available</noora-button-group-item>\n</noora-button-group>\n\n<noora-button-group size=\"medium\">\n <noora-button-group-item disabled>First</noora-button-group-item>\n <noora-button-group-item disabled>Second</noora-button-group-item>\n <noora-button-group-item disabled>Third</noora-button-group-item>\n</noora-button-group>"
},
{
"id": "practical",
"title": "Practical examples",
"description": "Use groups for pagination controls and view switching.",
"markup": "<noora-button-group size=\"medium\">\n <noora-button-group-item icon=\"chevron_left\" icon-only aria-label=\"Previous\"></noora-button-group-item>\n <noora-button-group-item selected>1</noora-button-group-item>\n <noora-button-group-item>2</noora-button-group-item>\n <noora-button-group-item>3</noora-button-group-item>\n <noora-button-group-item icon=\"chevron_right\" icon-only aria-label=\"Next\"></noora-button-group-item>\n</noora-button-group>\n\n<noora-button-group size=\"small\">\n <noora-button-group-item selected>List</noora-button-group-item>\n <noora-button-group-item>Grid</noora-button-group-item>\n <noora-button-group-item>Card</noora-button-group-item>\n</noora-button-group>"
}
]
}