No Preview

Sorry, but you either have no stories or none are selected somehow.

If the problem persists, check the browser console, or the terminal you've run Storybook from.

The component failed to render properly, likely due to a configuration issue in Storybook. Here are some common causes and how you can address them:

  1. Missing Context/Providers: You can use decorators to supply specific contexts or providers, which are sometimes necessary for components to render correctly. For detailed instructions on using decorators, please visit the Decorators documentation.
  2. Misconfigured Webpack or Vite: Verify that Storybook picks up all necessary settings for loaders, plugins, and other relevant parameters. You can find step-by-step guides for configuring Webpack or Vite with Storybook.
  3. Missing Environment Variables: Your Storybook may require specific environment variables to function as intended. You can set up custom environment variables as outlined in the Environment Variables documentation.

Customize the native <select> with CSS that changes the element’s initial appearance.

Custom <select> menus need only the class .form-select to trigger the custom styles. Custom styles are limited to the <select>’s initial appearance and cannot modify the <option> elements due to browser limitations.

Hintus textus elare volare cantare hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis.

<label class="form-label" for="bc251cd0-5173-463b-8729-586bb1bf1e1a--default">Label</label> <select id="bc251cd0-5173-463b-8729-586bb1bf1e1a--default" class="form-select"> <option>Elektu opcion...</option> <option value="valoro_1">Opcion 2</option> <option value="valoro_2">Opcion 3</option> <option value="valoro_3">Opcion 4</option> <option value="valoro_4">Opcion 5</option> </select> <p class="form-text"> Hintus textus elare volare cantare hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis. </p>
NameDescriptionDefaultControl
General
Label
Describes the content/topic of the component.
string
-
Floating Label
Defines how the components label is rendered.
boolean
-
Hidden Label
Renders the component with or without a visible label.There are accessibility concerns with hidden labels.
Please read our label accessibility guide.
boolean
-
Size
Sets the size of the component's appearance.
string
-
Options
Amount of option elements to render in the component.
number
-
Multiple
When set, allows multiple options to be selected (multi-select).
boolean
-
Helper Text
Text to place in the help text area of the component.
string
-
States
Disabled
When set to true, disables the component's functionality and places it in a disabled state.There are accessibility issues with the disabled state.
Please read our disabled state accessibility guide.
boolean
-
Validation
Controls the validation state appearance of the component.
string
-

Make sure the @swisspost/design-system-styles package is already present in your project or follow the installation guidelines.

To import all Design System styles:

@use '@swisspost/design-system-styles/index.scss';

To import only the styles required for this component:

@use '@swisspost/design-system-styles/basics.scss'; @use '@swisspost/design-system-styles/components/forms.scss'; @use '@swisspost/design-system-styles/components/form-select.scss'; // required if you use floating-labels @use '@swisspost/design-system-styles/components/floating-label.scss'; // required if you use validation feedbacks @use '@swisspost/design-system-styles/components/form-feedback.scss';

The following examples show the different characteristics of the component. These can differ in the type of visualization, the HTML structure, as well as when, how and why they are displayed.

Wrap a pair of <select> and <label> elements in a .form-floating container to enable floating labels.
But note that the <select> must come first, so we can ensure the correct styles.

If you use an empty option in your select and you want that your label acts as placeholder, you can dynamically add the class .form-select-empty to the <select> when there are no value defined or no option selected.

We're deprecating and simplifying size classes for text input, textarea and select:

  • Floating form elements will support only the default size (all size modifiers are deprecated).
  • Standard form elements will support only .form-select-sm and the default size.

.form-select-rg, .form-select-md and .form-select-lg will be completely removed in the next major version.

The size can be adjusted, by simply adding one of the following four classes:

  • Small: .form-select-sm
  • Regular: .form-select-rg
  • Medium: default or .form-select-md
  • Large: .form-select-lg

Regular and medium size classes are not available on floating-label elements

Simply add the classes is-valid or is-invalid to the <select> element to show it in the expected state.
When the component has been validated, don't forget to add a <p className="valid-feedback">...</p> or <p className="invalid-feedback">...</p> element after the select element to explain what went wrong. This enables the user to correct the mistake.

Eraro okazis!