quasar
Version:
Build high-performance VueJS user interfaces (SPA, PWA, SSR, Mobile and Desktop) in record time
489 lines • 13 kB
JSON
{
"type": "component",
"meta": {
"docsUrl": "https://v1.quasar.dev/vue-components/button-dropdown"
},
"props": {
"value": {
"type": "Boolean",
"desc": "Controls Menu show/hidden state; Either use this property (along with a listener for 'input' event) OR use v-model directive",
"category": "model",
"examples": [
"v-model=\"menuState\""
]
},
"size": {
"type": "String",
"desc": "Size in CSS units, including unit name or standard size name (xs|sm|md|lg|xl)",
"examples": [
"16px",
"2rem",
"xs",
"md"
],
"category": "style"
},
"ripple": {
"type": [
"Boolean",
"Object"
],
"desc": "Configure material ripple (disable it by setting it to 'false' or supply a config object)",
"default": true,
"examples": [
false,
"{ early: true, center: true, color: 'teal', keyCodes: [] }"
],
"category": "style"
},
"type": {
"type": "String",
"desc": "Define the button HTML DOM type",
"default": "button",
"values": [
"a",
"submit",
"button",
"reset"
],
"examples": [
"type=\"a\" href=\"http://some-site.net\" target=\"__blank\""
],
"category": "general"
},
"to": {
"type": [
"String",
"Object"
],
"desc": "Equivalent to Vue Router <router-link> 'to' property",
"examples": [
"/home/dashboard",
":to=\"{ name: 'my-route-name' }\""
],
"category": "router"
},
"replace": {
"type": "Boolean",
"desc": "Equivalent to Vue Router <router-link> 'replace' property",
"category": "router"
},
"append": {
"type": "Boolean",
"desc": "Equivalent to Vue Router <router-link> 'append' property",
"category": "router",
"addedIn": "v1.13.0"
},
"label": {
"type": [
"String",
"Number"
],
"desc": "The text that will be shown on the button",
"examples": [
"Button Label"
],
"category": "content"
},
"icon": {
"type": "String",
"desc": "Icon name following Quasar convention; Make sure you have the icon library installed unless you are using 'img:' prefix",
"examples": [
"map",
"ion-add",
"img:https://cdn.quasar.dev/logo/svg/quasar-logo.svg",
"img:statics/path/to/some_image.png"
],
"category": "content"
},
"icon-right": {
"type": "String",
"desc": "Icon name following Quasar convention; Make sure you have the icon library installed unless you are using 'img:' prefix",
"examples": [
"map",
"ion-add",
"img:https://cdn.quasar.dev/logo/svg/quasar-logo.svg",
"img:statics/path/to/some_image.png"
],
"category": "content"
},
"outline": {
"type": "Boolean",
"desc": "Use 'outline' design",
"category": "style"
},
"flat": {
"type": "Boolean",
"desc": "Use 'flat' design",
"category": "style"
},
"unelevated": {
"type": "Boolean",
"desc": "Remove shadow",
"category": "style"
},
"rounded": {
"type": "Boolean",
"desc": "Applies a more prominent border-radius for a squared shape button",
"category": "style"
},
"push": {
"type": "Boolean",
"desc": "Use 'push' design",
"category": "style"
},
"glossy": {
"type": "Boolean",
"desc": "Applies a glossy effect",
"category": "style"
},
"fab": {
"type": "Boolean",
"desc": "Makes button size and shape to fit a Floating Action Button",
"category": "style"
},
"fab-mini": {
"type": "Boolean",
"desc": "Makes button size and shape to fit a small Floating Action Button",
"category": "style"
},
"padding": {
"type": "String",
"desc": "Apply custom padding (vertical [horizontal]); Size in CSS units, including unit name or standard size name (none|xs|sm|md|lg|xl); Also removes the min width and height when set",
"examples": [
"16px",
"10px 5px",
"2rem",
"xs",
"md lg",
"2px 2px 5px 7px"
],
"category": "style",
"addedIn": "v1.11.0"
},
"color": {
"type": "String",
"desc": "Color name for component from the Quasar Color Palette",
"examples": [
"primary",
"teal-10"
],
"category": "style"
},
"text-color": {
"type": "String",
"desc": "Overrides text color (if needed); Color name from the Quasar Color Palette",
"examples": [
"primary",
"teal-10"
],
"category": "style"
},
"no-caps": {
"type": "Boolean",
"desc": "Avoid turning label text into caps (which happens by default)",
"category": "content"
},
"no-wrap": {
"type": "Boolean",
"desc": "Avoid label text wrapping",
"category": "content"
},
"dense": {
"type": "Boolean",
"desc": "Dense mode; occupies less space",
"category": "style"
},
"tabindex": {
"type": [
"Number",
"String"
],
"desc": "Tabindex HTML attribute value",
"examples": [
"0",
"100"
],
"category": "general"
},
"align": {
"type": "String",
"desc": "Label or content alignment",
"default": "center",
"values": [
"left",
"right",
"center",
"around",
"between",
"evenly"
],
"category": "content"
},
"stack": {
"type": "Boolean",
"desc": "Stack icon and label vertically instead of on same line (like it is by default)",
"category": "content"
},
"stretch": {
"type": "Boolean",
"desc": "When used on flexbox parent, button will stretch to parent's height",
"category": "content"
},
"loading": {
"type": "Boolean",
"desc": "Put button into loading state (displays a QSpinner -- can be overridden by using a 'loading' slot)",
"category": "behavior|state"
},
"disable": {
"type": "Boolean",
"desc": "Put component in disabled mode",
"category": "state"
},
"split": {
"type": "Boolean",
"desc": "Split dropdown icon into its own button",
"category": "content|behavior"
},
"dropdown-icon": {
"type": "String",
"desc": "Icon name following Quasar convention; Make sure you have the icon library installed unless you are using 'img:' prefix",
"examples": [
"map",
"ion-add",
"img:https://cdn.quasar.dev/logo/svg/quasar-logo.svg",
"img:statics/path/to/some_image.png"
],
"category": "content",
"addedIn": "v1.1.6"
},
"disable-main-btn": {
"type": "Boolean",
"desc": "Disable main button (useful along with 'split' prop)",
"category": "behavior"
},
"disable-dropdown": {
"type": "Boolean",
"desc": "Disables dropdown (dropdown button if using along 'split' prop)",
"category": "behavior"
},
"no-icon-animation": {
"type": "Boolean",
"desc": "Disables the rotation of the dropdown icon when state is toggled",
"category": "style",
"addedIn": "v1.12.0"
},
"content-style": {
"type": [
"Array",
"String",
"Object"
],
"desc": "Style definitions to be attributed to the menu",
"examples": [
"background-color: #ff0000",
":content-style=\"{ backgroundColor: '#ff0000' }\""
],
"category": "style"
},
"content-class": {
"type": [
"Array",
"String",
"Object"
],
"desc": "Class definitions to be attributed to the menu",
"examples": [
"my-special-class",
":content-class=\"{ 'my-special-class': <condition> }\""
],
"category": "style"
},
"cover": {
"type": "Boolean",
"desc": "Allows the menu to cover the button. When used, the 'menu-self' and 'menu-fit' props are no longer effective",
"category": "position"
},
"persistent": {
"type": "Boolean",
"desc": "Allows the menu to not be dismissed by a click/tap outside of the menu or by hitting the ESC key",
"category": "behavior"
},
"no-route-dismiss": {
"type": "Boolean",
"desc": "Changing route app won't dismiss the popup; No need to set it if 'persistent' prop is also set",
"category": "behavior",
"addedIn": "v1.13.2"
},
"auto-close": {
"type": "Boolean",
"desc": "Allows any click/tap in the menu to close it; Useful instead of attaching events to each menu item that should close the menu on click/tap",
"category": "behavior"
},
"menu-anchor": {
"type": "String",
"desc": "Two values setting the starting position or anchor point of the menu relative to its target",
"values": [
"top left",
"top middle",
"top right",
"top start",
"top end",
"center left",
"center middle",
"center right",
"center start",
"center end",
"bottom left",
"bottom middle",
"bottom right",
"bottom start",
"bottom end"
],
"default": "bottom end",
"examples": [
"top right",
"bottom end"
],
"category": "position"
},
"menu-self": {
"type": "String",
"desc": "Two values setting the menu's own position relative to its target",
"values": [
"top left",
"top middle",
"top right",
"top start",
"top end",
"center left",
"center middle",
"center right",
"center start",
"center end",
"bottom left",
"bottom middle",
"bottom right",
"bottom start",
"bottom end"
],
"default": "top end",
"examples": [
"top right",
"bottom end"
],
"category": "position"
},
"menu-offset": {
"type": "Array",
"desc": "An array of two numbers to offset the menu horizontally and vertically in pixels",
"examples": [
"[8, 8]",
"[5, 10]"
],
"category": "position",
"addedIn": "v1.9.2"
}
},
"slots": {
"default": {
"desc": "Default slot in the devland unslotted content of the component"
},
"label": {
"desc": "Customize main button's content through this slot, unless you're using the 'icon' and 'label' props"
}
},
"events": {
"input": {
"desc": "Emitted when showing/hidden state changes; Is also used by v-model",
"params": {
"value": {
"type": "Boolean",
"desc": "New state (showing/hidden)"
}
}
},
"show": {
"desc": "Emitted after component has triggered show()",
"params": {
"evt": {
"type": "Object",
"desc": "JS event object",
"required": true
}
}
},
"before-show": {
"desc": "Emitted when component triggers show() but before it finishes doing it",
"params": {
"evt": {
"type": "Object",
"desc": "JS event object",
"required": true
}
}
},
"hide": {
"desc": "Emitted after component has triggered hide()",
"params": {
"evt": {
"type": "Object",
"desc": "JS event object",
"required": true
}
}
},
"before-hide": {
"desc": "Emitted when component triggers hide() but before it finishes doing it",
"params": {
"evt": {
"type": "Object",
"desc": "JS event object",
"required": true
}
}
},
"click": {
"desc": "Emitted when user clicks/taps on the main button (not the icon one, if using 'split')",
"params": {
"evt": {
"type": "Object",
"desc": "JS event object",
"required": true
}
}
}
},
"methods": {
"show": {
"desc": "Triggers component to show",
"params": {
"evt": {
"type": "Object",
"required": false,
"desc": "JS event object"
}
}
},
"hide": {
"desc": "Triggers component to hide",
"params": {
"evt": {
"type": "Object",
"required": false,
"desc": "JS event object"
}
}
},
"toggle": {
"params": {
"evt": {
"type": "Object",
"required": false,
"desc": "JS event object"
}
},
"desc": "Triggers component to toggle between show/hide"
}
}
}