mirror of
https://github.com/apache/superset.git
synced 2026-05-23 00:36:01 +00:00
Snapshots all four versioned Docusaurus sections at v6.1.0, cut from master after the version-cutting tooling (#39837), broken-internal- links fix (#40102), and user_docs rename (#40171) all landed. With the rename in place, all four sections now produce parallel-named files at the docs/ root (no more bare `versioned_docs/` outlier). Versioning behavior: lastVersion stays at current for every section, so the canonical URLs (/user-docs/..., /admin-docs/..., /developer-docs/..., /components/...) continue to render content from master. The current version is consistently labeled "Next" with an unreleased banner, and 6.1.0 is a historical pin accessible only via its explicit version segment. Component playground: previously disabled: true in versions-config.json, now enabled and versioned. Snapshot includes: - All MDX content for the four sections. - Auto-gen captured fresh: 74 database pages (engine spec metadata), ~1,800 API reference files (openapi.json), 59 component pages (Storybook stories). - Data imports frozen at cut time into snapshot-local _versioned_data/ dirs: user_docs_versioned_docs/version-6.1.0/_versioned_data/src/data/databases.json (canonical 80-database diagnostics from master, preserved by the generator's input-hash cache) admin_docs_versioned_docs/version-6.1.0/_versioned_data/data/countries.json admin_docs_versioned_docs/version-6.1.0/_versioned_data/static/feature-flags.json developer_docs_versioned_docs/version-6.1.0/_versioned_data/static/data/components.json - Import paths in deeply-nested files rewritten so they still resolve from one directory deeper inside the snapshot. - developer_docs/extensions/overview.md snapshot has the FIXED ./mcp.md form (from #40102), so the SPA-nav 404 isn't baked into the 6.1.0 version. Verified via full yarn build: exit 0, no broken links surfaced by onBrokenLinks: throw.
147 lines
4.3 KiB
Plaintext
147 lines
4.3 KiB
Plaintext
<!--
|
|
Licensed to the Apache Software Foundation (ASF) under one
|
|
or more contributor license agreements. See the NOTICE file
|
|
distributed with this work for additional information
|
|
regarding copyright ownership. The ASF licenses this file
|
|
to you under the Apache License, Version 2.0 (the
|
|
"License"); you may not use this file except in compliance
|
|
with the License. You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing,
|
|
software distributed under the License is distributed on an
|
|
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
KIND, either express or implied. See the License for the
|
|
specific language governing permissions and limitations
|
|
under the License.
|
|
-->
|
|
---
|
|
title: Button Component
|
|
sidebar_position: 1
|
|
---
|
|
|
|
import { StoryExample, StoryWithControls } from '../../../src/components/StorybookWrapper';
|
|
import { Button } from '../../../../superset-frontend/packages/superset-ui-core/src/components/Button';
|
|
|
|
# Button Component
|
|
|
|
The Button component is a fundamental UI element used throughout Superset for user interactions.
|
|
|
|
## Basic Usage
|
|
|
|
The default button with primary styling:
|
|
<StoryExample
|
|
component={() => (
|
|
<Button buttonStyle="primary" onClick={() => console.log('Clicked!')}>
|
|
Click Me
|
|
</Button>
|
|
)}
|
|
/>
|
|
|
|
## Interactive Example
|
|
|
|
<StoryWithControls
|
|
component={({ buttonStyle, buttonSize, label, disabled }) => (
|
|
<Button
|
|
buttonStyle={buttonStyle}
|
|
buttonSize={buttonSize}
|
|
disabled={disabled}
|
|
onClick={() => console.log('Clicked!')}
|
|
>
|
|
{label}
|
|
</Button>
|
|
)}
|
|
props={{
|
|
buttonStyle: 'primary',
|
|
buttonSize: 'default',
|
|
label: 'Click Me',
|
|
disabled: false
|
|
}}
|
|
controls={[
|
|
{
|
|
name: 'buttonStyle',
|
|
label: 'Button Style',
|
|
type: 'select',
|
|
options: ['primary', 'secondary', 'tertiary', 'success', 'warning', 'danger', 'default', 'link', 'dashed']
|
|
},
|
|
{
|
|
name: 'buttonSize',
|
|
label: 'Button Size',
|
|
type: 'select',
|
|
options: ['default', 'small', 'xsmall']
|
|
},
|
|
{
|
|
name: 'label',
|
|
label: 'Button Text',
|
|
type: 'text'
|
|
},
|
|
{
|
|
name: 'disabled',
|
|
label: 'Disabled',
|
|
type: 'boolean'
|
|
}
|
|
]}
|
|
/>
|
|
|
|
## Props
|
|
|
|
| Prop | Type | Default | Description |
|
|
|------|------|---------|-------------|
|
|
| `buttonStyle` | `'primary' \| 'secondary' \| 'tertiary' \| 'success' \| 'warning' \| 'danger' \| 'default' \| 'link' \| 'dashed'` | `'default'` | Button style |
|
|
| `buttonSize` | `'default' \| 'small' \| 'xsmall'` | `'default'` | Button size |
|
|
| `disabled` | `boolean` | `false` | Whether the button is disabled |
|
|
| `cta` | `boolean` | `false` | Whether the button is a call-to-action button |
|
|
| `tooltip` | `ReactNode` | - | Tooltip content |
|
|
| `placement` | `TooltipProps['placement']` | - | Tooltip placement |
|
|
| `onClick` | `function` | - | Callback when button is clicked |
|
|
| `href` | `string` | - | Turns button into an anchor link |
|
|
| `target` | `string` | - | Target attribute for anchor links |
|
|
|
|
## Usage
|
|
|
|
```jsx
|
|
import Button from 'src/components/Button';
|
|
|
|
function MyComponent() {
|
|
return (
|
|
<Button
|
|
buttonStyle="primary"
|
|
onClick={() => console.log('Button clicked')}
|
|
>
|
|
Click Me
|
|
</Button>
|
|
);
|
|
}
|
|
```
|
|
|
|
## Button Styles
|
|
|
|
Superset provides a variety of button styles for different purposes:
|
|
|
|
- **Primary**: Used for primary actions
|
|
- **Secondary**: Used for secondary actions
|
|
- **Tertiary**: Used for less important actions
|
|
- **Success**: Used for successful or confirming actions
|
|
- **Warning**: Used for actions that require caution
|
|
- **Danger**: Used for destructive actions
|
|
- **Link**: Used for navigation
|
|
- **Dashed**: Used for adding new items or features
|
|
|
|
## Button Sizes
|
|
|
|
Buttons come in three sizes:
|
|
|
|
- **Default**: Standard size for most use cases
|
|
- **Small**: Compact size for tight spaces
|
|
- **XSmall**: Extra small size for very limited spaces
|
|
|
|
## Best Practices
|
|
|
|
- Use primary buttons for the main action in a form or page
|
|
- Use secondary buttons for alternative actions
|
|
- Use danger buttons for destructive actions
|
|
- Limit the number of primary buttons on a page to avoid confusion
|
|
- Use consistent button styles throughout your application
|
|
- Add tooltips to buttons when their purpose might not be immediately clear
|