@solid-design-system/mcp 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1 -0
- package/LICENSE.md +10 -0
- package/README.md +408 -0
- package/dist/bin/start.d.ts +2 -0
- package/dist/bin/start.js +8 -0
- package/dist/build/build.d.ts +1 -0
- package/dist/build/build.js +36 -0
- package/dist/build/components.d.ts +9 -0
- package/dist/build/components.js +264 -0
- package/dist/build/icons.d.ts +12 -0
- package/dist/build/icons.js +79 -0
- package/dist/build/package-docs.d.ts +1 -0
- package/dist/build/package-docs.js +67 -0
- package/dist/build/static.d.ts +4 -0
- package/dist/build/static.js +39 -0
- package/dist/build/styles.d.ts +9 -0
- package/dist/build/styles.js +178 -0
- package/dist/build/templates.d.ts +1 -0
- package/dist/build/templates.js +239 -0
- package/dist/build/tokens.d.ts +4 -0
- package/dist/build/tokens.js +105 -0
- package/dist/server.d.ts +6 -0
- package/dist/server.js +20 -0
- package/dist/tools/components.d.ts +12 -0
- package/dist/tools/components.js +175 -0
- package/dist/tools/icon-search.d.ts +7 -0
- package/dist/tools/icon-search.js +184 -0
- package/dist/tools/index.d.ts +7 -0
- package/dist/tools/index.js +7 -0
- package/dist/tools/quickstart.d.ts +2 -0
- package/dist/tools/quickstart.js +104 -0
- package/dist/tools/styles.d.ts +12 -0
- package/dist/tools/styles.js +167 -0
- package/dist/tools/templates.d.ts +11 -0
- package/dist/tools/templates.js +146 -0
- package/dist/tools/tokens.d.ts +7 -0
- package/dist/tools/tokens.js +198 -0
- package/dist/tools/version.d.ts +7 -0
- package/dist/tools/version.js +50 -0
- package/dist/utilities/components.d.ts +8 -0
- package/dist/utilities/components.js +24 -0
- package/dist/utilities/config.d.ts +40 -0
- package/dist/utilities/config.js +44 -0
- package/dist/utilities/file.d.ts +12 -0
- package/dist/utilities/file.js +28 -0
- package/dist/utilities/index.d.ts +10 -0
- package/dist/utilities/index.js +10 -0
- package/dist/utilities/input.d.ts +9 -0
- package/dist/utilities/input.js +19 -0
- package/dist/utilities/metadata.d.ts +33 -0
- package/dist/utilities/metadata.js +55 -0
- package/dist/utilities/stdio.d.ts +14 -0
- package/dist/utilities/stdio.js +57 -0
- package/dist/utilities/styles.d.ts +16 -0
- package/dist/utilities/styles.js +47 -0
- package/dist/utilities/templates.d.ts +5 -0
- package/dist/utilities/templates.js +18 -0
- package/dist/utilities/tokens.d.ts +6 -0
- package/dist/utilities/tokens.js +42 -0
- package/dist/utilities/version.d.ts +28 -0
- package/dist/utilities/version.js +21 -0
- package/metadata/packages/components/docs/customization.md +101 -0
- package/metadata/packages/components/docs/form-controls.md +28 -0
- package/metadata/packages/components/docs/installation.md +271 -0
- package/metadata/packages/components/docs/localization.md +158 -0
- package/metadata/packages/components/docs/usage.md +182 -0
- package/metadata/packages/components/sd-accordion/info.md +82 -0
- package/metadata/packages/components/sd-accordion/stories/open.md +8 -0
- package/metadata/packages/components/sd-accordion/stories/summary.md +17 -0
- package/metadata/packages/components/sd-accordion-group/info.md +70 -0
- package/metadata/packages/components/sd-accordion-group/stories/close-others.md +24 -0
- package/metadata/packages/components/sd-audio/info.md +80 -0
- package/metadata/packages/components/sd-audio/stories/animated.md +34 -0
- package/metadata/packages/components/sd-audio/stories/inverted.md +36 -0
- package/metadata/packages/components/sd-audio/stories/no-timestamps.md +34 -0
- package/metadata/packages/components/sd-audio/stories/reverse.md +35 -0
- package/metadata/packages/components/sd-audio/stories/speed.md +38 -0
- package/metadata/packages/components/sd-audio/stories/transcript.md +36 -0
- package/metadata/packages/components/sd-badge/info.md +69 -0
- package/metadata/packages/components/sd-badge/stories/inverted.md +9 -0
- package/metadata/packages/components/sd-badge/stories/overflow.md +11 -0
- package/metadata/packages/components/sd-badge/stories/size.md +13 -0
- package/metadata/packages/components/sd-badge/stories/variant.md +40 -0
- package/metadata/packages/components/sd-brandshape/info.md +65 -0
- package/metadata/packages/components/sd-brandshape/stories/image-translate-y.md +13 -0
- package/metadata/packages/components/sd-brandshape/stories/shapes.md +22 -0
- package/metadata/packages/components/sd-brandshape/stories/transparent-variants.md +24 -0
- package/metadata/packages/components/sd-brandshape/stories/variant.md +95 -0
- package/metadata/packages/components/sd-breadcrumb/info.md +57 -0
- package/metadata/packages/components/sd-breadcrumb-item/info.md +42 -0
- package/metadata/packages/components/sd-button/info.md +120 -0
- package/metadata/packages/components/sd-button/stories/as-link.md +12 -0
- package/metadata/packages/components/sd-button/stories/disabled.md +10 -0
- package/metadata/packages/components/sd-button/stories/icon.md +10 -0
- package/metadata/packages/components/sd-button/stories/inverted.md +10 -0
- package/metadata/packages/components/sd-button/stories/loading.md +10 -0
- package/metadata/packages/components/sd-button/stories/size.md +13 -0
- package/metadata/packages/components/sd-button/stories/variants.md +15 -0
- package/metadata/packages/components/sd-button/stories/visually-disabled.md +23 -0
- package/metadata/packages/components/sd-carousel/info.md +99 -0
- package/metadata/packages/components/sd-carousel/stories/autoplay-interval.md +66 -0
- package/metadata/packages/components/sd-carousel/stories/autoplay.md +23 -0
- package/metadata/packages/components/sd-carousel/stories/fade.md +18 -0
- package/metadata/packages/components/sd-carousel/stories/inverted.md +17 -0
- package/metadata/packages/components/sd-carousel/stories/loop.md +17 -0
- package/metadata/packages/components/sd-carousel/stories/slides-per-move.md +49 -0
- package/metadata/packages/components/sd-carousel/stories/slides-per-page.md +23 -0
- package/metadata/packages/components/sd-carousel/stories/variant.md +32 -0
- package/metadata/packages/components/sd-carousel-item/info.md +26 -0
- package/metadata/packages/components/sd-checkbox/info.md +88 -0
- package/metadata/packages/components/sd-checkbox/stories/checked.md +7 -0
- package/metadata/packages/components/sd-checkbox/stories/disabled.md +7 -0
- package/metadata/packages/components/sd-checkbox/stories/indeterminate.md +7 -0
- package/metadata/packages/components/sd-checkbox/stories/invalid.md +22 -0
- package/metadata/packages/components/sd-checkbox/stories/required.md +7 -0
- package/metadata/packages/components/sd-checkbox/stories/size.md +14 -0
- package/metadata/packages/components/sd-checkbox/stories/visually-disabled.md +11 -0
- package/metadata/packages/components/sd-checkbox-group/info.md +71 -0
- package/metadata/packages/components/sd-checkbox-group/stories/help-text.md +13 -0
- package/metadata/packages/components/sd-checkbox-group/stories/label.md +10 -0
- package/metadata/packages/components/sd-checkbox-group/stories/orientation.md +19 -0
- package/metadata/packages/components/sd-checkbox-group/stories/size.md +21 -0
- package/metadata/packages/components/sd-combobox/info.md +170 -0
- package/metadata/packages/components/sd-combobox/stories/async-options.md +27 -0
- package/metadata/packages/components/sd-combobox/stories/clearable.md +13 -0
- package/metadata/packages/components/sd-combobox/stories/custom-filter.md +20 -0
- package/metadata/packages/components/sd-combobox/stories/disabled.md +13 -0
- package/metadata/packages/components/sd-combobox/stories/floating-label.md +14 -0
- package/metadata/packages/components/sd-combobox/stories/focus.md +11 -0
- package/metadata/packages/components/sd-combobox/stories/help-text.md +36 -0
- package/metadata/packages/components/sd-combobox/stories/icons.md +15 -0
- package/metadata/packages/components/sd-combobox/stories/invalid.md +29 -0
- package/metadata/packages/components/sd-combobox/stories/label.md +26 -0
- package/metadata/packages/components/sd-combobox/stories/max-options-visible.md +23 -0
- package/metadata/packages/components/sd-combobox/stories/multiple.md +24 -0
- package/metadata/packages/components/sd-combobox/stories/placeholder.md +13 -0
- package/metadata/packages/components/sd-combobox/stories/placement.md +29 -0
- package/metadata/packages/components/sd-combobox/stories/required.md +20 -0
- package/metadata/packages/components/sd-combobox/stories/search.md +13 -0
- package/metadata/packages/components/sd-combobox/stories/size.md +38 -0
- package/metadata/packages/components/sd-combobox/stories/suggestion-container-height.md +12 -0
- package/metadata/packages/components/sd-combobox/stories/valid.md +29 -0
- package/metadata/packages/components/sd-combobox/stories/visually-disabled.md +17 -0
- package/metadata/packages/components/sd-datepicker/info.md +159 -0
- package/metadata/packages/components/sd-datepicker/stories/alignment.md +10 -0
- package/metadata/packages/components/sd-datepicker/stories/disabled-dates.md +11 -0
- package/metadata/packages/components/sd-datepicker/stories/disabled-weekends.md +7 -0
- package/metadata/packages/components/sd-datepicker/stories/disabled.md +8 -0
- package/metadata/packages/components/sd-datepicker/stories/floating-label.md +8 -0
- package/metadata/packages/components/sd-datepicker/stories/help-text.md +11 -0
- package/metadata/packages/components/sd-datepicker/stories/invalid.md +15 -0
- package/metadata/packages/components/sd-datepicker/stories/label.md +11 -0
- package/metadata/packages/components/sd-datepicker/stories/placeholder.md +7 -0
- package/metadata/packages/components/sd-datepicker/stories/range.md +7 -0
- package/metadata/packages/components/sd-datepicker/stories/required.md +7 -0
- package/metadata/packages/components/sd-datepicker/stories/size.md +14 -0
- package/metadata/packages/components/sd-datepicker/stories/valid.md +16 -0
- package/metadata/packages/components/sd-datepicker/stories/visible-month.md +7 -0
- package/metadata/packages/components/sd-datepicker/stories/visually-disabled.md +11 -0
- package/metadata/packages/components/sd-dialog/info.md +89 -0
- package/metadata/packages/components/sd-dialog/stories/headline.md +22 -0
- package/metadata/packages/components/sd-dialog/stories/no-close-button.md +32 -0
- package/metadata/packages/components/sd-dialog/stories/open.md +72 -0
- package/metadata/packages/components/sd-divider/info.md +51 -0
- package/metadata/packages/components/sd-divider/stories/inverted.md +7 -0
- package/metadata/packages/components/sd-divider/stories/orientation.md +11 -0
- package/metadata/packages/components/sd-divider/stories/size.md +10 -0
- package/metadata/packages/components/sd-drawer/info.md +89 -0
- package/metadata/packages/components/sd-drawer/stories/no-header.md +16 -0
- package/metadata/packages/components/sd-drawer/stories/open.md +23 -0
- package/metadata/packages/components/sd-drawer/stories/placement.md +23 -0
- package/metadata/packages/components/sd-dropdown/info.md +86 -0
- package/metadata/packages/components/sd-dropdown/stories/disabled.md +8 -0
- package/metadata/packages/components/sd-dropdown/stories/distance.md +8 -0
- package/metadata/packages/components/sd-dropdown/stories/no-auto-size.md +10 -0
- package/metadata/packages/components/sd-dropdown/stories/no-flip.md +8 -0
- package/metadata/packages/components/sd-dropdown/stories/open.md +8 -0
- package/metadata/packages/components/sd-dropdown/stories/placement.md +20 -0
- package/metadata/packages/components/sd-dropdown/stories/rounded.md +10 -0
- package/metadata/packages/components/sd-dropdown/stories/skidding.md +8 -0
- package/metadata/packages/components/sd-dropdown/stories/stay-open.md +12 -0
- package/metadata/packages/components/sd-expandable/info.md +79 -0
- package/metadata/packages/components/sd-expandable/stories/gradient.md +75 -0
- package/metadata/packages/components/sd-expandable/stories/inverted.md +33 -0
- package/metadata/packages/components/sd-expandable/stories/open.md +60 -0
- package/metadata/packages/components/sd-flipcard/info.md +84 -0
- package/metadata/packages/components/sd-flipcard/stories/aspect-ratios.md +26 -0
- package/metadata/packages/components/sd-flipcard/stories/flip-direction.md +17 -0
- package/metadata/packages/components/sd-flipcard/stories/placement.md +17 -0
- package/metadata/packages/components/sd-flipcard/stories/variants.md +51 -0
- package/metadata/packages/components/sd-header/info.md +60 -0
- package/metadata/packages/components/sd-header/stories/fixed.md +9 -0
- package/metadata/packages/components/sd-icon/info.md +35 -0
- package/metadata/packages/components/sd-icon/stories/color.md +15 -0
- package/metadata/packages/components/sd-icon/stories/custom-libraries.md +119 -0
- package/metadata/packages/components/sd-icon/stories/label.md +12 -0
- package/metadata/packages/components/sd-icon/stories/libraries.md +38 -0
- package/metadata/packages/components/sd-icon/stories/name.md +36 -0
- package/metadata/packages/components/sd-icon/stories/size.md +10 -0
- package/metadata/packages/components/sd-include/info.md +20 -0
- package/metadata/packages/components/sd-input/info.md +176 -0
- package/metadata/packages/components/sd-input/stories/clearable.md +7 -0
- package/metadata/packages/components/sd-input/stories/disabled.md +7 -0
- package/metadata/packages/components/sd-input/stories/floating-label.md +8 -0
- package/metadata/packages/components/sd-input/stories/help-text.md +11 -0
- package/metadata/packages/components/sd-input/stories/icon.md +13 -0
- package/metadata/packages/components/sd-input/stories/invalid.md +14 -0
- package/metadata/packages/components/sd-input/stories/label.md +11 -0
- package/metadata/packages/components/sd-input/stories/max-length.md +7 -0
- package/metadata/packages/components/sd-input/stories/max.md +7 -0
- package/metadata/packages/components/sd-input/stories/min-length.md +7 -0
- package/metadata/packages/components/sd-input/stories/min.md +7 -0
- package/metadata/packages/components/sd-input/stories/pattern.md +7 -0
- package/metadata/packages/components/sd-input/stories/placeholder.md +7 -0
- package/metadata/packages/components/sd-input/stories/read-only.md +8 -0
- package/metadata/packages/components/sd-input/stories/required.md +7 -0
- package/metadata/packages/components/sd-input/stories/size.md +14 -0
- package/metadata/packages/components/sd-input/stories/spin-buttons.md +14 -0
- package/metadata/packages/components/sd-input/stories/toggle-password.md +8 -0
- package/metadata/packages/components/sd-input/stories/type.md +80 -0
- package/metadata/packages/components/sd-input/stories/valid.md +15 -0
- package/metadata/packages/components/sd-input/stories/value.md +7 -0
- package/metadata/packages/components/sd-input/stories/visually-disabled.md +11 -0
- package/metadata/packages/components/sd-link/info.md +80 -0
- package/metadata/packages/components/sd-link/stories/as-link.md +12 -0
- package/metadata/packages/components/sd-link/stories/disabled.md +7 -0
- package/metadata/packages/components/sd-link/stories/icon.md +14 -0
- package/metadata/packages/components/sd-link/stories/inverted.md +7 -0
- package/metadata/packages/components/sd-link/stories/size.md +13 -0
- package/metadata/packages/components/sd-link/stories/standalone.md +29 -0
- package/metadata/packages/components/sd-link/stories/visually-disabled.md +17 -0
- package/metadata/packages/components/sd-loader/info.md +54 -0
- package/metadata/packages/components/sd-loader/stories/default.md +5 -0
- package/metadata/packages/components/sd-loader/stories/size.md +15 -0
- package/metadata/packages/components/sd-loader/stories/variants.md +19 -0
- package/metadata/packages/components/sd-map-marker/info.md +74 -0
- package/metadata/packages/components/sd-map-marker/stories/animated.md +13 -0
- package/metadata/packages/components/sd-map-marker/stories/as-link.md +13 -0
- package/metadata/packages/components/sd-map-marker/stories/not-interactive.md +11 -0
- package/metadata/packages/components/sd-map-marker/stories/slot.md +8 -0
- package/metadata/packages/components/sd-map-marker/stories/state.md +47 -0
- package/metadata/packages/components/sd-map-marker/stories/variant.md +21 -0
- package/metadata/packages/components/sd-menu/info.md +68 -0
- package/metadata/packages/components/sd-menu/stories/checkmark.md +12 -0
- package/metadata/packages/components/sd-menu/stories/disabled.md +12 -0
- package/metadata/packages/components/sd-menu/stories/grouping.md +20 -0
- package/metadata/packages/components/sd-menu/stories/icon.md +80 -0
- package/metadata/packages/components/sd-menu/stories/submenu.md +18 -0
- package/metadata/packages/components/sd-menu-item/info.md +36 -0
- package/metadata/packages/components/sd-menu-item/stories/checkmark.md +5 -0
- package/metadata/packages/components/sd-menu-item/stories/disabled.md +5 -0
- package/metadata/packages/components/sd-menu-item/stories/icon-indent.md +8 -0
- package/metadata/packages/components/sd-navigation-item/info.md +98 -0
- package/metadata/packages/components/sd-navigation-item/stories/accordion.md +15 -0
- package/metadata/packages/components/sd-navigation-item/stories/as-link.md +7 -0
- package/metadata/packages/components/sd-navigation-item/stories/chevron.md +10 -0
- package/metadata/packages/components/sd-navigation-item/stories/current.md +8 -0
- package/metadata/packages/components/sd-navigation-item/stories/description.md +11 -0
- package/metadata/packages/components/sd-navigation-item/stories/disabled.md +5 -0
- package/metadata/packages/components/sd-navigation-item/stories/divider.md +6 -0
- package/metadata/packages/components/sd-navigation-item/stories/indented.md +8 -0
- package/metadata/packages/components/sd-navigation-item/stories/orientation.md +6 -0
- package/metadata/packages/components/sd-navigation-item/stories/relaxed.md +8 -0
- package/metadata/packages/components/sd-navigation-item/stories/separated.md +14 -0
- package/metadata/packages/components/sd-navigation-item/stories/size.md +13 -0
- package/metadata/packages/components/sd-navigation-item/stories/stacked.md +8 -0
- package/metadata/packages/components/sd-notification/info.md +135 -0
- package/metadata/packages/components/sd-notification/stories/closable.md +13 -0
- package/metadata/packages/components/sd-notification/stories/duration-indicator.md +15 -0
- package/metadata/packages/components/sd-notification/stories/duration.md +16 -0
- package/metadata/packages/components/sd-notification/stories/open.md +5 -0
- package/metadata/packages/components/sd-notification/stories/toast-bottom-center.md +53 -0
- package/metadata/packages/components/sd-notification/stories/toast-notification.md +67 -0
- package/metadata/packages/components/sd-notification/stories/variants.md +20 -0
- package/metadata/packages/components/sd-optgroup/info.md +55 -0
- package/metadata/packages/components/sd-optgroup/stories/disabled.md +13 -0
- package/metadata/packages/components/sd-option/info.md +65 -0
- package/metadata/packages/components/sd-option/stories/checkbox.md +19 -0
- package/metadata/packages/components/sd-option/stories/disabled.md +22 -0
- package/metadata/packages/components/sd-option/stories/selected.md +23 -0
- package/metadata/packages/components/sd-option/stories/size.md +26 -0
- package/metadata/packages/components/sd-popup/info.md +66 -0
- package/metadata/packages/components/sd-progress-bar/info.md +73 -0
- package/metadata/packages/components/sd-progress-bar/stories/custom-height.md +5 -0
- package/metadata/packages/components/sd-progress-bar/stories/inverted.md +9 -0
- package/metadata/packages/components/sd-progress-bar/stories/label.md +16 -0
- package/metadata/packages/components/sd-progress-bar/stories/loading.md +5 -0
- package/metadata/packages/components/sd-progress-bar/stories/value-formatter.md +20 -0
- package/metadata/packages/components/sd-progress-bar/stories/value-max.md +6 -0
- package/metadata/packages/components/sd-progress-bar/stories/value-position.md +11 -0
- package/metadata/packages/components/sd-quickfact/info.md +84 -0
- package/metadata/packages/components/sd-quickfact/stories/expandable.md +46 -0
- package/metadata/packages/components/sd-quickfact/stories/open.md +15 -0
- package/metadata/packages/components/sd-quickfact/stories/summary.md +13 -0
- package/metadata/packages/components/sd-radio/info.md +47 -0
- package/metadata/packages/components/sd-radio/stories/disabled.md +9 -0
- package/metadata/packages/components/sd-radio/stories/invalid.md +22 -0
- package/metadata/packages/components/sd-radio/stories/size.md +26 -0
- package/metadata/packages/components/sd-radio/stories/visually-disabled.md +11 -0
- package/metadata/packages/components/sd-radio-button/info.md +81 -0
- package/metadata/packages/components/sd-radio-button/stories/checked.md +20 -0
- package/metadata/packages/components/sd-radio-button/stories/disabled.md +20 -0
- package/metadata/packages/components/sd-radio-button/stories/icon.md +17 -0
- package/metadata/packages/components/sd-radio-button/stories/label.md +19 -0
- package/metadata/packages/components/sd-radio-button/stories/size.md +54 -0
- package/metadata/packages/components/sd-radio-button/stories/visually-disabled.md +26 -0
- package/metadata/packages/components/sd-radio-group/info.md +91 -0
- package/metadata/packages/components/sd-radio-group/stories/disabled.md +10 -0
- package/metadata/packages/components/sd-radio-group/stories/help-text.md +12 -0
- package/metadata/packages/components/sd-radio-group/stories/invalid.md +23 -0
- package/metadata/packages/components/sd-radio-group/stories/label.md +9 -0
- package/metadata/packages/components/sd-radio-group/stories/orientation.md +20 -0
- package/metadata/packages/components/sd-radio-group/stories/required.md +28 -0
- package/metadata/packages/components/sd-radio-group/stories/size.md +20 -0
- package/metadata/packages/components/sd-range/info.md +101 -0
- package/metadata/packages/components/sd-range/stories/tooltip-formatter.md +13 -0
- package/metadata/packages/components/sd-range-tick/info.md +21 -0
- package/metadata/packages/components/sd-scrollable/info.md +87 -0
- package/metadata/packages/components/sd-scrollable/stories/buttons.md +15 -0
- package/metadata/packages/components/sd-scrollable/stories/inset.md +15 -0
- package/metadata/packages/components/sd-scrollable/stories/orientation.md +32 -0
- package/metadata/packages/components/sd-scrollable/stories/scrollbar.md +15 -0
- package/metadata/packages/components/sd-scrollable/stories/shadows.md +15 -0
- package/metadata/packages/components/sd-scrollable/stories/step.md +15 -0
- package/metadata/packages/components/sd-select/info.md +155 -0
- package/metadata/packages/components/sd-select/stories/clearable.md +13 -0
- package/metadata/packages/components/sd-select/stories/disabled.md +13 -0
- package/metadata/packages/components/sd-select/stories/floating-label.md +14 -0
- package/metadata/packages/components/sd-select/stories/help-text.md +23 -0
- package/metadata/packages/components/sd-select/stories/invalid.md +30 -0
- package/metadata/packages/components/sd-select/stories/label.md +23 -0
- package/metadata/packages/components/sd-select/stories/max-options-visible.md +24 -0
- package/metadata/packages/components/sd-select/stories/multiple.md +14 -0
- package/metadata/packages/components/sd-select/stories/placeholder.md +13 -0
- package/metadata/packages/components/sd-select/stories/placement.md +24 -0
- package/metadata/packages/components/sd-select/stories/required.md +13 -0
- package/metadata/packages/components/sd-select/stories/size.md +34 -0
- package/metadata/packages/components/sd-select/stories/use-tags.md +14 -0
- package/metadata/packages/components/sd-select/stories/valid.md +29 -0
- package/metadata/packages/components/sd-select/stories/visually-disabled.md +17 -0
- package/metadata/packages/components/sd-skeleton/info.md +57 -0
- package/metadata/packages/components/sd-skeleton/stories/variants.md +13 -0
- package/metadata/packages/components/sd-spinner/info.md +53 -0
- package/metadata/packages/components/sd-spinner/stories/size.md +15 -0
- package/metadata/packages/components/sd-spinner/stories/variants.md +43 -0
- package/metadata/packages/components/sd-step/info.md +80 -0
- package/metadata/packages/components/sd-step/stories/as-link.md +9 -0
- package/metadata/packages/components/sd-step/stories/current.md +9 -0
- package/metadata/packages/components/sd-step/stories/description-and-label-using-attributes.md +7 -0
- package/metadata/packages/components/sd-step/stories/description.md +28 -0
- package/metadata/packages/components/sd-step/stories/disabled.md +9 -0
- package/metadata/packages/components/sd-step/stories/horizontal-inline.md +9 -0
- package/metadata/packages/components/sd-step/stories/icon.md +10 -0
- package/metadata/packages/components/sd-step/stories/label.md +7 -0
- package/metadata/packages/components/sd-step/stories/no-tail.md +9 -0
- package/metadata/packages/components/sd-step/stories/not-interactive.md +9 -0
- package/metadata/packages/components/sd-step/stories/orientation.md +15 -0
- package/metadata/packages/components/sd-step/stories/size.md +19 -0
- package/metadata/packages/components/sd-step/stories/waiting.md +9 -0
- package/metadata/packages/components/sd-step-group/info.md +74 -0
- package/metadata/packages/components/sd-step-group/stories/active-step.md +17 -0
- package/metadata/packages/components/sd-step-group/stories/horizontal-inline.md +17 -0
- package/metadata/packages/components/sd-step-group/stories/icon.md +20 -0
- package/metadata/packages/components/sd-step-group/stories/manual-state.md +23 -0
- package/metadata/packages/components/sd-step-group/stories/not-interactive.md +17 -0
- package/metadata/packages/components/sd-step-group/stories/orientation.md +39 -0
- package/metadata/packages/components/sd-step-group/stories/size.md +53 -0
- package/metadata/packages/components/sd-switch/info.md +79 -0
- package/metadata/packages/components/sd-switch/stories/checked.md +5 -0
- package/metadata/packages/components/sd-switch/stories/disabled.md +5 -0
- package/metadata/packages/components/sd-switch/stories/invalid.md +18 -0
- package/metadata/packages/components/sd-switch/stories/required.md +5 -0
- package/metadata/packages/components/sd-tab/info.md +42 -0
- package/metadata/packages/components/sd-tab/stories/active.md +44 -0
- package/metadata/packages/components/sd-tab/stories/disabled.md +20 -0
- package/metadata/packages/components/sd-tab/stories/icon.md +29 -0
- package/metadata/packages/components/sd-tab/stories/variant.md +42 -0
- package/metadata/packages/components/sd-tab/stories/visually-disabled.md +24 -0
- package/metadata/packages/components/sd-tab-group/info.md +88 -0
- package/metadata/packages/components/sd-tab-group/stories/activation.md +52 -0
- package/metadata/packages/components/sd-tab-group/stories/scrollable.md +66 -0
- package/metadata/packages/components/sd-tab-panel/info.md +26 -0
- package/metadata/packages/components/sd-tab-panel/stories/open.md +9 -0
- package/metadata/packages/components/sd-tag/info.md +75 -0
- package/metadata/packages/components/sd-tag/stories/as-link.md +12 -0
- package/metadata/packages/components/sd-tag/stories/disabled.md +10 -0
- package/metadata/packages/components/sd-tag/stories/icon.md +10 -0
- package/metadata/packages/components/sd-tag/stories/removable.md +22 -0
- package/metadata/packages/components/sd-tag/stories/selected.md +20 -0
- package/metadata/packages/components/sd-tag/stories/size.md +11 -0
- package/metadata/packages/components/sd-teaser/info.md +85 -0
- package/metadata/packages/components/sd-teaser/stories/breakpoint.md +28 -0
- package/metadata/packages/components/sd-teaser/stories/default-and-headline-slot.md +14 -0
- package/metadata/packages/components/sd-teaser/stories/distribution.md +13 -0
- package/metadata/packages/components/sd-teaser/stories/inset.md +12 -0
- package/metadata/packages/components/sd-teaser/stories/media-slot.md +14 -0
- package/metadata/packages/components/sd-teaser/stories/meta-slot.md +16 -0
- package/metadata/packages/components/sd-teaser/stories/reverse.md +14 -0
- package/metadata/packages/components/sd-teaser/stories/variant.md +34 -0
- package/metadata/packages/components/sd-teaser-media/info.md +86 -0
- package/metadata/packages/components/sd-teaser-media/stories/default-media-and-headline-slot.md +15 -0
- package/metadata/packages/components/sd-teaser-media/stories/expandable-slot.md +10 -0
- package/metadata/packages/components/sd-teaser-media/stories/meta-slot.md +9 -0
- package/metadata/packages/components/sd-teaser-media/stories/variant.md +78 -0
- package/metadata/packages/components/sd-textarea/info.md +132 -0
- package/metadata/packages/components/sd-textarea/stories/disabled.md +7 -0
- package/metadata/packages/components/sd-textarea/stories/floating-label.md +8 -0
- package/metadata/packages/components/sd-textarea/stories/help-text.md +11 -0
- package/metadata/packages/components/sd-textarea/stories/invalid.md +24 -0
- package/metadata/packages/components/sd-textarea/stories/label.md +11 -0
- package/metadata/packages/components/sd-textarea/stories/max-length.md +15 -0
- package/metadata/packages/components/sd-textarea/stories/min-length.md +15 -0
- package/metadata/packages/components/sd-textarea/stories/placeholder.md +7 -0
- package/metadata/packages/components/sd-textarea/stories/readonly.md +16 -0
- package/metadata/packages/components/sd-textarea/stories/required.md +7 -0
- package/metadata/packages/components/sd-textarea/stories/rows.md +11 -0
- package/metadata/packages/components/sd-textarea/stories/size.md +16 -0
- package/metadata/packages/components/sd-textarea/stories/valid.md +22 -0
- package/metadata/packages/components/sd-textarea/stories/visually-disabled.md +18 -0
- package/metadata/packages/components/sd-theme-listener/info.md +20 -0
- package/metadata/packages/components/sd-theme-listener/stories/default.md +31 -0
- package/metadata/packages/components/sd-tooltip/info.md +101 -0
- package/metadata/packages/components/sd-tooltip/stories/close-trigger.md +19 -0
- package/metadata/packages/components/sd-tooltip/stories/custom-trigger.md +20 -0
- package/metadata/packages/components/sd-tooltip/stories/disabled.md +5 -0
- package/metadata/packages/components/sd-tooltip/stories/hoist.md +7 -0
- package/metadata/packages/components/sd-tooltip/stories/placement.md +43 -0
- package/metadata/packages/components/sd-tooltip/stories/size.md +11 -0
- package/metadata/packages/components/sd-tooltip/stories/trigger.md +10 -0
- package/metadata/packages/components/sd-video/info.md +70 -0
- package/metadata/packages/components/sd-video/stories/playing.md +11 -0
- package/metadata/packages/components/sd-video/stories/video-element-with-poster-slot.md +24 -0
- package/metadata/packages/icons/default/content.json +2267 -0
- package/metadata/packages/icons/default/system.json +1112 -0
- package/metadata/packages/icons/sd-multi-theming/content.json +27 -0
- package/metadata/packages/icons/sd-multi-theming/system.json +307 -0
- package/metadata/packages/icons/sd-status-assets/status.json +37 -0
- package/metadata/packages/quickstart/docs/quickstart.md +50 -0
- package/metadata/packages/styles/docs/installation.md +161 -0
- package/metadata/packages/styles/docs/usage.md +11 -0
- package/metadata/packages/styles/sd-chip/info.md +49 -0
- package/metadata/packages/styles/sd-chip/stories/variants.md +40 -0
- package/metadata/packages/styles/sd-container/info.md +39 -0
- package/metadata/packages/styles/sd-container/stories/custom-padding.md +7 -0
- package/metadata/packages/styles/sd-container/stories/padding.md +7 -0
- package/metadata/packages/styles/sd-container/stories/triangle-border.md +26 -0
- package/metadata/packages/styles/sd-container/stories/triangle-color.md +12 -0
- package/metadata/packages/styles/sd-container/stories/triangle-position.md +27 -0
- package/metadata/packages/styles/sd-container/stories/variants.md +36 -0
- package/metadata/packages/styles/sd-copyright/info.md +41 -0
- package/metadata/packages/styles/sd-copyright/stories/no-shadow.md +13 -0
- package/metadata/packages/styles/sd-copyright/stories/orientation.md +16 -0
- package/metadata/packages/styles/sd-copyright/stories/placement.md +21 -0
- package/metadata/packages/styles/sd-copyright/stories/variants.md +15 -0
- package/metadata/packages/styles/sd-display/info.md +42 -0
- package/metadata/packages/styles/sd-display/stories/inverted.md +7 -0
- package/metadata/packages/styles/sd-display/stories/size.md +13 -0
- package/metadata/packages/styles/sd-flag/info.md +45 -0
- package/metadata/packages/styles/sd-flag/stories/variants.md +40 -0
- package/metadata/packages/styles/sd-footnotes/info.md +49 -0
- package/metadata/packages/styles/sd-footnotes/stories/inverted.md +11 -0
- package/metadata/packages/styles/sd-footnotes/stories/variants.md +19 -0
- package/metadata/packages/styles/sd-headline/info.md +56 -0
- package/metadata/packages/styles/sd-headline/stories/inline.md +14 -0
- package/metadata/packages/styles/sd-headline/stories/inverted.md +7 -0
- package/metadata/packages/styles/sd-headline/stories/sizes.md +21 -0
- package/metadata/packages/styles/sd-hidden-links/info.md +55 -0
- package/metadata/packages/styles/sd-hidden-links/stories/debug.md +12 -0
- package/metadata/packages/styles/sd-hidden-links/stories/multiple-links.md +13 -0
- package/metadata/packages/styles/sd-hidden-links/stories/stack-links.md +10 -0
- package/metadata/packages/styles/sd-hidden-links/stories/surrounding-content.md +54 -0
- package/metadata/packages/styles/sd-hidden-links/stories/title-for-multiple-links.md +34 -0
- package/metadata/packages/styles/sd-interactive/info.md +50 -0
- package/metadata/packages/styles/sd-interactive/stories/disabled.md +6 -0
- package/metadata/packages/styles/sd-interactive/stories/inverted.md +7 -0
- package/metadata/packages/styles/sd-interactive/stories/reset.md +30 -0
- package/metadata/packages/styles/sd-leadtext/info.md +41 -0
- package/metadata/packages/styles/sd-leadtext/stories/inverted.md +11 -0
- package/metadata/packages/styles/sd-leadtext/stories/size.md +19 -0
- package/metadata/packages/styles/sd-list/info.md +49 -0
- package/metadata/packages/styles/sd-list/stories/inverted.md +20 -0
- package/metadata/packages/styles/sd-list/stories/levels.md +62 -0
- package/metadata/packages/styles/sd-list/stories/orientation.md +34 -0
- package/metadata/packages/styles/sd-list/stories/variants.md +34 -0
- package/metadata/packages/styles/sd-mark/info.md +30 -0
- package/metadata/packages/styles/sd-media/info.md +50 -0
- package/metadata/packages/styles/sd-media/stories/description.md +8 -0
- package/metadata/packages/styles/sd-media/stories/inverted.md +14 -0
- package/metadata/packages/styles/sd-meta/info.md +38 -0
- package/metadata/packages/styles/sd-meta/stories/inverted.md +11 -0
- package/metadata/packages/styles/sd-meta/stories/pipe.md +7 -0
- package/metadata/packages/styles/sd-meta/stories/size.md +11 -0
- package/metadata/packages/styles/sd-meta/stories/variants.md +11 -0
- package/metadata/packages/styles/sd-pagination/info.md +60 -0
- package/metadata/packages/styles/sd-pagination/stories/hidden-headline.md +37 -0
- package/metadata/packages/styles/sd-pagination/stories/inverted.md +36 -0
- package/metadata/packages/styles/sd-pagination/stories/truncation.md +34 -0
- package/metadata/packages/styles/sd-pagination/stories/variants.md +51 -0
- package/metadata/packages/styles/sd-paragraph/info.md +39 -0
- package/metadata/packages/styles/sd-paragraph/stories/inverted.md +11 -0
- package/metadata/packages/styles/sd-paragraph/stories/size.md +19 -0
- package/metadata/packages/styles/sd-prose/info.md +49 -0
- package/metadata/packages/styles/sd-prose/stories/full-width.md +22 -0
- package/metadata/packages/styles/sd-prose/stories/inverted.md +11 -0
- package/metadata/packages/styles/sd-prose/stories/styling-options.md +108 -0
- package/metadata/packages/styles/sd-status-badge/info.md +44 -0
- package/metadata/packages/styles/sd-status-badge/stories/variants.md +27 -0
- package/metadata/packages/styles/sd-table/info.md +43 -0
- package/metadata/packages/styles/sd-table/stories/slot.md +11 -0
- package/metadata/packages/styles/sd-table-cell/info.md +61 -0
- package/metadata/packages/styles/sd-table-cell/stories/divider.md +19 -0
- package/metadata/packages/styles/sd-table-cell/stories/shadow.md +137 -0
- package/metadata/packages/styles/sd-table-cell/stories/variants.md +39 -0
- package/metadata/packages/templates/accordion-group.md +163 -0
- package/metadata/packages/templates/audio.md +194 -0
- package/metadata/packages/templates/autocomplete.md +213 -0
- package/metadata/packages/templates/badge.md +149 -0
- package/metadata/packages/templates/bottom-navigation.md +263 -0
- package/metadata/packages/templates/brandshape.md +81 -0
- package/metadata/packages/templates/breadcrumb.md +361 -0
- package/metadata/packages/templates/button.md +107 -0
- package/metadata/packages/templates/carousel.md +64 -0
- package/metadata/packages/templates/checkbox-group.md +81 -0
- package/metadata/packages/templates/chip.md +35 -0
- package/metadata/packages/templates/combobox.md +92 -0
- package/metadata/packages/templates/datepicker.md +44 -0
- package/metadata/packages/templates/dialog.md +270 -0
- package/metadata/packages/templates/drawer.md +185 -0
- package/metadata/packages/templates/dropdown.md +52 -0
- package/metadata/packages/templates/expandable.md +61 -0
- package/metadata/packages/templates/flag.md +38 -0
- package/metadata/packages/templates/flipcard.md +66 -0
- package/metadata/packages/templates/footnotes.md +80 -0
- package/metadata/packages/templates/forms.md +248 -0
- package/metadata/packages/templates/header-navigation.md +1951 -0
- package/metadata/packages/templates/headline.md +204 -0
- package/metadata/packages/templates/input.md +27 -0
- package/metadata/packages/templates/interactive.md +28 -0
- package/metadata/packages/templates/link.md +83 -0
- package/metadata/packages/templates/list.md +27 -0
- package/metadata/packages/templates/map-marker.md +15 -0
- package/metadata/packages/templates/mark.md +39 -0
- package/metadata/packages/templates/media.md +22 -0
- package/metadata/packages/templates/menu.md +93 -0
- package/metadata/packages/templates/notification.md +100 -0
- package/metadata/packages/templates/pagination.md +340 -0
- package/metadata/packages/templates/quickfact.md +267 -0
- package/metadata/packages/templates/quote.md +97 -0
- package/metadata/packages/templates/radio-button-group.md +24 -0
- package/metadata/packages/templates/radio-group.md +51 -0
- package/metadata/packages/templates/range.md +135 -0
- package/metadata/packages/templates/select.md +63 -0
- package/metadata/packages/templates/skeleton.md +32 -0
- package/metadata/packages/templates/status-badge.md +252 -0
- package/metadata/packages/templates/step-group.md +150 -0
- package/metadata/packages/templates/supernumber.md +178 -0
- package/metadata/packages/templates/switch.md +51 -0
- package/metadata/packages/templates/tab-group.md +157 -0
- package/metadata/packages/templates/table.md +2612 -0
- package/metadata/packages/templates/tag.md +230 -0
- package/metadata/packages/templates/teaser-media.md +164 -0
- package/metadata/packages/templates/teaser.md +320 -0
- package/metadata/packages/templates/tooltip.md +104 -0
- package/metadata/packages/templates/video.md +71 -0
- package/metadata/packages/tokens/docs/installation.md +445 -0
- package/metadata/packages/tokens/docs/usage.md +338 -0
- package/metadata/packages/tokens/themes.json +3 -0
- package/metadata/packages/tokens/tokens.json +185 -0
- package/package.json +76 -0
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
# Localization
|
|
2
|
+
|
|
3
|
+
Components can be localized by importing the appropriate translation file and setting the desired [`lang` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/lang) and/or [`dir` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/dir) on the `<html>` element. Here's an example that renders Solid components in German.
|
|
4
|
+
|
|
5
|
+
```html
|
|
6
|
+
<html lang="de">
|
|
7
|
+
<head>
|
|
8
|
+
<script type="module" src="/path/to/solid/dist/translations/de.js"></script>
|
|
9
|
+
</head>
|
|
10
|
+
|
|
11
|
+
<body>
|
|
12
|
+
...
|
|
13
|
+
</body>
|
|
14
|
+
</html>
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Through the magic of a mutation observer, changing the `lang` attribute will automatically update all localized components to use the new locale.
|
|
18
|
+
|
|
19
|
+
Solid ships with German (`de`) and English (`en`) translations, which are both imported per default. The default is English (`en`), which also serves as the fallback locale.
|
|
20
|
+
|
|
21
|
+
### Translation Resolution
|
|
22
|
+
|
|
23
|
+
The locale set by `<html lang="...">` is the default locale for the document. If a country code is provided, e.g. `en-GB` for British English, the localization library will resolve it like this:
|
|
24
|
+
|
|
25
|
+
1. Look for `en-GB`
|
|
26
|
+
2. Look for `en`
|
|
27
|
+
3. Fall back to `en`
|
|
28
|
+
|
|
29
|
+
Solid uses English as a fallback to provide a better experience than rendering nothing or throwing an error.
|
|
30
|
+
|
|
31
|
+
## Multiple Locales Per Page
|
|
32
|
+
|
|
33
|
+
You can use a different locale for an individual component by setting its `lang` and/or `dir` attributes. Here's a contrived example to demonstrate.
|
|
34
|
+
|
|
35
|
+
```html
|
|
36
|
+
<html lang="de">
|
|
37
|
+
...
|
|
38
|
+
|
|
39
|
+
<body>
|
|
40
|
+
<sd-button><!-- German --></sd-button>
|
|
41
|
+
<sd-button lang="en"><!-- English --></sd-button>
|
|
42
|
+
</body>
|
|
43
|
+
</html>
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
For performance reasons, the `lang` and `dir` attributes must be on the component itself, not on an ancestor element.
|
|
47
|
+
|
|
48
|
+
```html
|
|
49
|
+
<html lang="de">
|
|
50
|
+
...
|
|
51
|
+
|
|
52
|
+
<body>
|
|
53
|
+
<div lang="en">
|
|
54
|
+
<sd-button><!-- still in German --></sd-button>
|
|
55
|
+
</div>
|
|
56
|
+
</body>
|
|
57
|
+
</html>
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
This limitation exists because there's no efficient way to determine the current locale of a given element in a DOM tree. This currently isn't possible in the proposer and [there are a couple properties proposed](https://github.com/whatwg/html/issues/7039) to make this possible.
|
|
61
|
+
|
|
62
|
+
## Creating Your Own Translations
|
|
63
|
+
|
|
64
|
+
You can provide your own translations if you have specific needs or if you don't want to wait for a translation to land upstream. The easiest way to do this is to copy `src/translations/en.ts` into your own project and translate the terms inside. When your translation is done, you can import it and use it just like a built-in translation.
|
|
65
|
+
|
|
66
|
+
Let's create a Spanish translation as an example. The following assumes you're using TypeScript, but you can also create translations with regular JavaScript.
|
|
67
|
+
|
|
68
|
+
```js
|
|
69
|
+
|
|
70
|
+
const translation: Translation = {
|
|
71
|
+
$code: 'es',
|
|
72
|
+
$name: 'Español',
|
|
73
|
+
$dir: 'ltr',
|
|
74
|
+
|
|
75
|
+
term1: '...',
|
|
76
|
+
term2: '...',
|
|
77
|
+
...
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
registerTranslation(translation);
|
|
81
|
+
|
|
82
|
+
export default translation;
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Once your translation has been compiled to JavaScript, import it and activate it like this.
|
|
86
|
+
|
|
87
|
+
```html
|
|
88
|
+
<html lang="es">
|
|
89
|
+
<head>
|
|
90
|
+
<script type="module" src="/path/to/es.js"></script>
|
|
91
|
+
</head>
|
|
92
|
+
|
|
93
|
+
<body>
|
|
94
|
+
...
|
|
95
|
+
</body>
|
|
96
|
+
</html>
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
> If your translation isn't working, make sure you're using the same localize module when importing `registerTranslation`. If you're using a different module, your translation won't be recognized.
|
|
100
|
+
|
|
101
|
+
## Custom Localization
|
|
102
|
+
|
|
103
|
+
Solid components support custom localization through data attributes or programmatically per component instance. Here’s how to apply custom localizations:
|
|
104
|
+
|
|
105
|
+
### Data Attribute
|
|
106
|
+
|
|
107
|
+
Use data-custom-localization with a JSON object for custom translations. Components automatically update when data-custom-localization changes.
|
|
108
|
+
|
|
109
|
+
```html
|
|
110
|
+
<sd-select lang="de" value="option-1" clearable data-custom-localization='{"clearEntry": "Reset!!"}'>
|
|
111
|
+
<sd-option value="option-1">Option 1</sd-option>
|
|
112
|
+
</sd-select>
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Components automatically update when data-custom-localization changes.
|
|
116
|
+
|
|
117
|
+
```html
|
|
118
|
+
<sd-select lang="de" value="option-1" clearable data-custom-localization='{"clearEntry": "Reset!"}'>
|
|
119
|
+
<sd-option value="option-1">Option 1</sd-option>
|
|
120
|
+
</sd-select>
|
|
121
|
+
|
|
122
|
+
<script>
|
|
123
|
+
const selectElement = document.querySelector('sd-select');
|
|
124
|
+
selectElement.setAttribute('data-custom-localization', '{"clearEntry": "Updated!"}');
|
|
125
|
+
</script>
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### Programmatic Localization
|
|
129
|
+
|
|
130
|
+
Set custom translations using `setCustomLocalization`.
|
|
131
|
+
|
|
132
|
+
```html
|
|
133
|
+
<sd-select value="option-1" clearable>
|
|
134
|
+
<sd-option value="option-1">Option 1</sd-option>
|
|
135
|
+
</sd-select>
|
|
136
|
+
|
|
137
|
+
<script type="module">
|
|
138
|
+
const selectElement = document.querySelector('sd-select');
|
|
139
|
+
selectElement.localize.setCustomLocalization({ clearEntry: 'Reset me!' });
|
|
140
|
+
</script>
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
This enables to use functions for dynamic translations.
|
|
144
|
+
|
|
145
|
+
```html
|
|
146
|
+
<sd-select name="a" value="option-2 option-3" multiple>
|
|
147
|
+
<sd-option value="option-1">Option 1</sd-option>
|
|
148
|
+
<sd-option value="option-2">Option 2</sd-option>
|
|
149
|
+
<sd-option value="option-3">Option 3</sd-option>
|
|
150
|
+
</sd-select>
|
|
151
|
+
|
|
152
|
+
<script type="module">
|
|
153
|
+
const selectElement = document.querySelector('sd-select');
|
|
154
|
+
selectElement.localize.setCustomLocalization({
|
|
155
|
+
numOptionsSelected: num => (num === 0 ? '' : `Funds selected (${num})`)
|
|
156
|
+
});
|
|
157
|
+
</script>
|
|
158
|
+
```
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
# Usage
|
|
2
|
+
|
|
3
|
+
Solid Components are just regular HTML elements, or [custom elements](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements) to be precise. You can use them like any other element. Each component has detailed documentation that describes its full API, including properties, events, methods, and more.
|
|
4
|
+
|
|
5
|
+
If you're new to custom elements, often referred to as "web components," this section will familiarize you with how to use them.
|
|
6
|
+
|
|
7
|
+
### Attributes & Properties
|
|
8
|
+
|
|
9
|
+
Many components have properties that can be set using attributes. For example, buttons accept a `size` attribute that maps to the `size` property which dictates the button's size.
|
|
10
|
+
|
|
11
|
+
```html
|
|
12
|
+
<sd-button size="sm">Click me</sd-button>
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Some properties are boolean, so they only have true/false values. To activate a boolean property, add the corresponding attribute without a value.
|
|
16
|
+
|
|
17
|
+
```html
|
|
18
|
+
<sd-button disabled>Click me</sd-button>
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
If a component requires a property as an array, an object, or a function. This must be done with JavaScript.
|
|
22
|
+
|
|
23
|
+
```html
|
|
24
|
+
<sd-prop-component></sd-prop-component>
|
|
25
|
+
|
|
26
|
+
<script>
|
|
27
|
+
const propComponent = document.querySelector('sd-prop-component');
|
|
28
|
+
propComponent.swatches = ['red', 'orange', 'yellow', 'green', 'blue', 'purple'];
|
|
29
|
+
</script>
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Refer to a component's documentation for a complete list of its properties.
|
|
33
|
+
|
|
34
|
+
### Events
|
|
35
|
+
|
|
36
|
+
You can listen for standard events such as `click`, `mouseover`, etc. as you normally would. However, it's important to note that many events emitted within a component's shadow root will be [retargeted](https://dom.spec.whatwg.org/#retarget) to the host element. This may result in, for example, multiple `click` handlers executing even if the user clicks just once. Furthermore, `event.target` will point to the host element, making things even more confusing.
|
|
37
|
+
|
|
38
|
+
As a result, you should almost always listen for custom events instead. For example, instead of listening to `click` to determine when an `<sd-checkbox>` gets toggled, listen to `sd-change`.
|
|
39
|
+
|
|
40
|
+
```html
|
|
41
|
+
<sd-checkbox>Check me</sd-checkbox>
|
|
42
|
+
|
|
43
|
+
<script>
|
|
44
|
+
const checkbox = document.querySelector('sd-checkbox');
|
|
45
|
+
checkbox.addEventListener('sd-change', event => {
|
|
46
|
+
console.log(event.target.checked ? 'checked' : 'not checked');
|
|
47
|
+
});
|
|
48
|
+
</script>
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
All custom events are prefixed with `sd-` to prevent collisions with standard events and other libraries. Refer to a component's documentation for a complete list of its custom events.
|
|
52
|
+
|
|
53
|
+
### Methods
|
|
54
|
+
|
|
55
|
+
Some components have methods you can call to trigger various behaviors. For example, you can set focus on a `sd-button` using the `focus()` method.
|
|
56
|
+
|
|
57
|
+
```html
|
|
58
|
+
<sd-button></sd-button>
|
|
59
|
+
|
|
60
|
+
<script>
|
|
61
|
+
const button = document.querySelector('sd-button');
|
|
62
|
+
button.focus();
|
|
63
|
+
</script>
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Refer to a component's documentation for a complete list of its methods and their arguments.
|
|
67
|
+
|
|
68
|
+
### Slots
|
|
69
|
+
|
|
70
|
+
Many components use slots to accept content inside of them. The most common slot is the _default_ slot, which includes any content inside the component that doesn't have a `slot` attribute.
|
|
71
|
+
|
|
72
|
+
For example, a button's default slot is used to populate its label.
|
|
73
|
+
|
|
74
|
+
```html
|
|
75
|
+
<sd-button>Click me</sd-button>
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Some components also have _named_ slots. A named slot can be populated by adding a child element with the appropriate `slot` attribute. Notice how the icon below has the `slot="icon-left"` attribute? This tells the component to place the icon into its `icon-left` slot.
|
|
79
|
+
|
|
80
|
+
```html
|
|
81
|
+
<sd-button>
|
|
82
|
+
<sd-icon slot="icon-left" name="picture"></sd-icon>
|
|
83
|
+
Settings
|
|
84
|
+
</sd-button>
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
The location of a named slot doesn't matter. You can put it anywhere inside the component and the browser will move it to the right place automatically!
|
|
88
|
+
|
|
89
|
+
Refer to a component's documentation for a complete list of available slots.
|
|
90
|
+
|
|
91
|
+
### Don't Use Self-closing Tags
|
|
92
|
+
|
|
93
|
+
Custom elements cannot have self-closing tags. Similar to `<script>` and `<textarea>`, you must always include the full closing tag.
|
|
94
|
+
|
|
95
|
+
```html
|
|
96
|
+
<!-- Don't do this -->
|
|
97
|
+
<sd-spinner />
|
|
98
|
+
|
|
99
|
+
<!-- Always do this -->
|
|
100
|
+
<sd-spinner></sd-spinner>
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### Differences from Native Elements
|
|
104
|
+
|
|
105
|
+
You might expect similarly named elements to share the same API as native HTML elements, but this is not always the case. Solid Components **are not** designed to be one-to-one replacements for their HTML counterparts. While they usually share the same API, there may be subtle differences.
|
|
106
|
+
|
|
107
|
+
For example, `<button>` and `<sd-button>` both have a `type` attribute, but the native one defaults to `submit` while the Solid Component one defaults to `button` since this is a better default for most users.
|
|
108
|
+
|
|
109
|
+
> **Don't make assumptions about a component's API!** To prevent unexpected behaviors, please take the time to review the documentation and make sure you understand what each attribute, property, method, and event is intended to do.
|
|
110
|
+
|
|
111
|
+
### Waiting for Components to Load
|
|
112
|
+
|
|
113
|
+
Web components are registered with JavaScript, so depending on how and when you load Solid Component, you may notice a [Flash of Undefined Custom Elements (FOUCE)](https://www.abeautifulsite.net/posts/flash-of-undefined-custom-elements/) when the page loads. There are a couple ways to prevent this, both of which are described in the linked article.
|
|
114
|
+
|
|
115
|
+
One option is to use the [`:defined`](https://developer.mozilla.org/en-US/docs/Web/CSS/:defined) CSS pseudo-class to "hide" custom elements that haven't been registered yet. You can scope it to specific tags or you can hide all undefined custom elements as shown below.
|
|
116
|
+
|
|
117
|
+
```css
|
|
118
|
+
:not(:defined) {
|
|
119
|
+
visibility: hidden;
|
|
120
|
+
}
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
As soon as a custom element is registered, it will immediately appear with all of its styles, effectively eliminating FOUCE. Note the use of `visibility: hidden` instead of `display: none` to reduce shifting as elements are registered. The drawback to this approach is that custom elements can potentially appear one by one instead of all at the same time.
|
|
124
|
+
|
|
125
|
+
Another option is to use [`customElements.whenDefined()`](https://developer.mozilla.org/en-US/docs/Web/API/CustomElementRegistry/whenDefined), which returns a promise that resolves when the specified element gets registered. You'll probably want to use it with [`Promise.allSettled()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/allSettled) in case an element fails to load for some reason.
|
|
126
|
+
|
|
127
|
+
A way to use this method is to hide the `<body>` with `opacity: 0` and add a class that fades it in as soon as all your custom elements are defined.
|
|
128
|
+
|
|
129
|
+
```html
|
|
130
|
+
<style>
|
|
131
|
+
body {
|
|
132
|
+
opacity: 0;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
body.ready {
|
|
136
|
+
opacity: 1;
|
|
137
|
+
transition: 0.25s opacity;
|
|
138
|
+
}
|
|
139
|
+
</style>
|
|
140
|
+
|
|
141
|
+
<script type="module">
|
|
142
|
+
await Promise.allSettled([
|
|
143
|
+
customElements.whenDefined('sd-button'),
|
|
144
|
+
customElements.whenDefined('sd-icon'),
|
|
145
|
+
customElements.whenDefined('sd-spinner')
|
|
146
|
+
]);
|
|
147
|
+
|
|
148
|
+
// Button, icon and spinner are registered now! Add
|
|
149
|
+
// the `ready` class so the UI fades in.
|
|
150
|
+
document.body.classList.add('ready');
|
|
151
|
+
</script>
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### Component Rendering and Updating
|
|
155
|
+
|
|
156
|
+
Solid Components are built with [Lit](https://lit.dev/), a tiny library that makes authoring custom elements easier, more maintainable, and a lot of fun! As a Solid Component user, here is some helpful information about rendering and updating you should probably be aware of.
|
|
157
|
+
|
|
158
|
+
To optimize performance and reduce re-renders, Lit batches component updates. This means changing multiple attributes or properties at the same time will result in just a single re-render. In most cases, this isn't an issue, but there may be times you'll need to wait for the component to update before continuing.
|
|
159
|
+
|
|
160
|
+
Consider this example. We're going to change the `checked` property of the checkbox and observe its corresponding `checked` attribute, which happens to reflect.
|
|
161
|
+
|
|
162
|
+
```js
|
|
163
|
+
const checkbox = document.querySelector('sd-checkbox');
|
|
164
|
+
checkbox.checked = true;
|
|
165
|
+
|
|
166
|
+
console.log(checkbox.hasAttribute('checked')); // false
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
Most developers will expect this to be `true` instead of `false`, but the component hasn't had a chance to re-render yet so the attribute doesn't exist when `hasAttribute()` is called. Since changes are batched, we need to wait for the update before proceeding. This can be done using the `updateComplete` property, which is available on all Lit-based components.
|
|
170
|
+
|
|
171
|
+
```js
|
|
172
|
+
const checkbox = document.querySelector('sd-checkbox');
|
|
173
|
+
checkbox.checked = true;
|
|
174
|
+
|
|
175
|
+
checkbox.updateComplete.then(() => {
|
|
176
|
+
console.log(checkbox.hasAttribute('checked')); // true
|
|
177
|
+
});
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
This time we see an empty string, which means the boolean attribute is now present!
|
|
181
|
+
|
|
182
|
+
> Avoid using `setTimeout()` or `requestAnimationFrame()` in situations like this. They might work, but it's far more reliable to use `updateComplete` instead.
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
## Overview
|
|
2
|
+
|
|
3
|
+
`<sd-accordion>` — Used to show a brief summary and expands to display additional content.
|
|
4
|
+
|
|
5
|
+
## API
|
|
6
|
+
|
|
7
|
+
### Examples
|
|
8
|
+
|
|
9
|
+
Use the components tool by passing the args `component` and `example` for any of these combinations:
|
|
10
|
+
|
|
11
|
+
- component: sd-accordion, example: open
|
|
12
|
+
- component: sd-accordion, example: summary
|
|
13
|
+
|
|
14
|
+
### Key Properties
|
|
15
|
+
|
|
16
|
+
- prop.open: boolean, default=false — Indicates whether or not the accordion is open. You can toggle this attribute to show and hide the accordion, or you
|
|
17
|
+
can use the `show()` and `hide()` methods and this attribute will reflect the accordion' open state.
|
|
18
|
+
- prop.summary: string — The summary to show in the header. If you need to display HTML, use the `summary` slot instead.
|
|
19
|
+
- prop.dir: 'ltr'|'rtl'|'auto' — The element's directionality.
|
|
20
|
+
- prop.lang: string — The element's language.
|
|
21
|
+
|
|
22
|
+
### Events
|
|
23
|
+
|
|
24
|
+
- event.sd-show: Emitted when the accordion opens.
|
|
25
|
+
- event.sd-after-show: Emitted after the accordion opens and all animations are complete.
|
|
26
|
+
- event.sd-hide: Emitted when the accordion closes.
|
|
27
|
+
- event.sd-after-hide: Emitted after the accordion closes and all animations are complete.
|
|
28
|
+
|
|
29
|
+
### Slots
|
|
30
|
+
|
|
31
|
+
- slot.default: The accordion main content.
|
|
32
|
+
- slot.summary: The accordion summary. Alternatively, you can use the `summary` attribute.
|
|
33
|
+
- slot.expand-icon: Optional expand icon to use instead of the default. Works best with `<sd-icon>`.
|
|
34
|
+
- slot.collapse-icon: Optional collapse icon to use instead of the default. Works best with `<sd-icon>`.
|
|
35
|
+
|
|
36
|
+
### CSS Parts
|
|
37
|
+
|
|
38
|
+
- part.base: The component's base wrapper.
|
|
39
|
+
- part.header: The header that wraps both the summary and the expand/collapse icon.
|
|
40
|
+
- part.summary: The container that wraps the summary.
|
|
41
|
+
- part.summary-icon: The container that wraps the expand/collapse icons.
|
|
42
|
+
- part.summary-border: The container that wraps the currently active accordions border.
|
|
43
|
+
- part.content: The container that wraps the accordion content slot.
|
|
44
|
+
- part.content\_\_slot: The accordion content slot.
|
|
45
|
+
|
|
46
|
+
## Guidelines
|
|
47
|
+
|
|
48
|
+
### Use Cases
|
|
49
|
+
|
|
50
|
+
- Revealing additional content, such as a detailed description, specifications, or additional options without overwhelming the user with too much content at once.
|
|
51
|
+
- Interactive elements like a single FAQ item, where the user can expand to see the answer.
|
|
52
|
+
- Useful in forms to hide optional sections that the user can expand if needed, keeping the form clean and concise.
|
|
53
|
+
|
|
54
|
+
### Rules
|
|
55
|
+
|
|
56
|
+
### Slots
|
|
57
|
+
|
|
58
|
+
- Use the ”summary” slot to add text to the header.
|
|
59
|
+
- Use the ”default” slot to add content.
|
|
60
|
+
|
|
61
|
+
### Header Summary
|
|
62
|
+
|
|
63
|
+
- Make sure the header summary clearly describes the content inside.
|
|
64
|
+
- Keep header summaries concise to prevent them from wrapping onto multiple lines.
|
|
65
|
+
|
|
66
|
+
### Content
|
|
67
|
+
|
|
68
|
+
- Ensure the content is focused and necessary. If the information can be splitted into different meaningful units, consider using [sd-accordion-group](./?path=/docs/components-sd-accordion-group--docs).
|
|
69
|
+
- Avoid using collapsible sections for information that must always be visible.
|
|
70
|
+
|
|
71
|
+
### Expandable vs. Accordion
|
|
72
|
+
|
|
73
|
+
- The use of sd-accordion is generally recommended over the use of [sd-expandable](./?path=/docs/components-sd-expandable--docs): the former gives the user a quick scan header to decide if the content is relevant to them, offers a cleaner layout and is more accessible as a result.
|
|
74
|
+
|
|
75
|
+
### Background
|
|
76
|
+
|
|
77
|
+
- Use light background options like white, neutral-100 or primary-100.
|
|
78
|
+
|
|
79
|
+
### Accessibility
|
|
80
|
+
|
|
81
|
+
- Use only for non-critical information. Hiding content can become a potential barrier, making content more challenging to discover.
|
|
82
|
+
- For purely decorative images, ALT-tags should be left empty so that screen readers can bypass them and concentrate on conveying meaningful content.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
Use the `open` attribute to set the state of the accordion.
|
|
2
|
+
|
|
3
|
+
```html
|
|
4
|
+
<div class="grid grid-cols-2 gap-12">
|
|
5
|
+
<sd-accordion open summary="Open"><p>This text is immediately visible.</p></sd-accordion>
|
|
6
|
+
<sd-accordion summary="Closed"><p>This text is not immediately visible.</p></sd-accordion>
|
|
7
|
+
</div>
|
|
8
|
+
```
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
Use `summary` to provide the text in the accordion header.
|
|
2
|
+
**Hint:** The `summary` slot allows you to use custom html.
|
|
3
|
+
|
|
4
|
+
```html
|
|
5
|
+
<div class="grid grid-cols-2 gap-12">
|
|
6
|
+
<sd-accordion>
|
|
7
|
+
<div slot="summary">
|
|
8
|
+
<h4>I don't have a telephone number with a German area code. Can I still register?</h4>
|
|
9
|
+
</div>
|
|
10
|
+
<p>
|
|
11
|
+
Union Investment is the dedicated asset manager within the German cooperative financial network. All shareholders
|
|
12
|
+
are also part of the network, which ensures a stable and long-term ownership structure. This allows us to maintain
|
|
13
|
+
a sustainable business model and develop strong, long-term client relationships.
|
|
14
|
+
</p>
|
|
15
|
+
</sd-accordion>
|
|
16
|
+
</div>
|
|
17
|
+
```
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
## Overview
|
|
2
|
+
|
|
3
|
+
`<sd-accordion-group>` — Used to group multiple accordions together.
|
|
4
|
+
|
|
5
|
+
## API
|
|
6
|
+
|
|
7
|
+
### Examples
|
|
8
|
+
|
|
9
|
+
Use the components tool by passing the args `component` and `example` for any of these combinations:
|
|
10
|
+
|
|
11
|
+
- component: sd-accordion-group, example: close-others
|
|
12
|
+
|
|
13
|
+
### Key Properties
|
|
14
|
+
|
|
15
|
+
- prop.closeOthers [attr: close-others]: boolean, default=false — Closes other accordions.
|
|
16
|
+
- prop.dir: 'ltr'|'rtl'|'auto' — The element's directionality.
|
|
17
|
+
- prop.lang: string — The element's language.
|
|
18
|
+
|
|
19
|
+
### Slots
|
|
20
|
+
|
|
21
|
+
- slot.default: The default slot where `<sd-accordion>` elements are placed.
|
|
22
|
+
|
|
23
|
+
### CSS Parts
|
|
24
|
+
|
|
25
|
+
- part.base: The component's base wrapper.
|
|
26
|
+
|
|
27
|
+
## Guidelines
|
|
28
|
+
|
|
29
|
+
### Use Cases
|
|
30
|
+
|
|
31
|
+
- Organise content into collapsible sections to save space.
|
|
32
|
+
- Display FAQs where each question can be expanded to reveal its answer.
|
|
33
|
+
- Structure lengthy content into manageable expandable sections.
|
|
34
|
+
- Create navigational menus where each section can be expanded to show sub-items, mainly for small viewports.
|
|
35
|
+
|
|
36
|
+
### Rules
|
|
37
|
+
|
|
38
|
+
### Slots
|
|
39
|
+
|
|
40
|
+
- Use the ”summary” slot to add text to the header.
|
|
41
|
+
- Use the ”default” slot to add content.
|
|
42
|
+
|
|
43
|
+
### Content
|
|
44
|
+
|
|
45
|
+
- Ensure the content is relevant and necessary; avoid including unrelated information.
|
|
46
|
+
- Avoid using collapsible sections for content that needs to be always visible or is critical for immediate user attention.
|
|
47
|
+
|
|
48
|
+
### Header Summary
|
|
49
|
+
|
|
50
|
+
- Make sure the header summary clearly describes the content inside.
|
|
51
|
+
- Keep header summaries concise to prevent them from wrapping onto multiple lines.
|
|
52
|
+
|
|
53
|
+
### Behaviour
|
|
54
|
+
|
|
55
|
+
- Keep only one section open at a time to prevent information overload, unless multiple open sections are necessary.
|
|
56
|
+
- Avoid nesting collapsible sections within each other to prevent a confusing user experience.
|
|
57
|
+
|
|
58
|
+
### Expandable vs. Accordion
|
|
59
|
+
|
|
60
|
+
- The use of [sd-accordion](./?path=/docs/components-sd-accordion--docs) is generally recommended over the use of [sd-expandable](./?path=/docs/components-sd-expandable--docs): the former gives the user a quick scan header to decide if the content is relevant to them, offers a cleaner layout and is more accessible as a result.
|
|
61
|
+
|
|
62
|
+
### Background
|
|
63
|
+
|
|
64
|
+
- Use light background options such as white, neutral-100, or primary-100.
|
|
65
|
+
|
|
66
|
+
### Accessibility
|
|
67
|
+
|
|
68
|
+
- Use only for non-critical information. Hiding content can become a potential barrier, making it more challenging for users to access information.
|
|
69
|
+
- Use “close-others” attribute to keep only one item from the group open at a time, reducing the amount of information displayed at once and therefore reducing the cognitive load on the user.
|
|
70
|
+
- For purely decorative images, ALT-tags should be left empty so that screen readers can bypass them and concentrate on conveying meaningful content.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
Use the `close-others` attribute to only have one accordion open at a time.
|
|
2
|
+
|
|
3
|
+
```html
|
|
4
|
+
<sd-accordion-group close-others>
|
|
5
|
+
<sd-accordion summary="Accordion 1">
|
|
6
|
+
<p>
|
|
7
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nibh justo ullamcorper odio tempor molestie phasellus dui
|
|
8
|
+
vel id. Velit in sed
|
|
9
|
+
</p>
|
|
10
|
+
</sd-accordion>
|
|
11
|
+
<sd-accordion summary="Accordion 2">
|
|
12
|
+
<p>
|
|
13
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nibh justo ullamcorper odio tempor molestie phasellus dui
|
|
14
|
+
vel id. Velit in sed
|
|
15
|
+
</p>
|
|
16
|
+
</sd-accordion>
|
|
17
|
+
<sd-accordion summary="Accordion 3">
|
|
18
|
+
<p>
|
|
19
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nibh justo ullamcorper odio tempor molestie phasellus dui
|
|
20
|
+
vel id. Velit in sed
|
|
21
|
+
</p>
|
|
22
|
+
</sd-accordion>
|
|
23
|
+
</sd-accordion-group>
|
|
24
|
+
```
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
## Overview
|
|
2
|
+
|
|
3
|
+
`<sd-audio>` — Used to play audio files that are part of the page content.
|
|
4
|
+
|
|
5
|
+
## API
|
|
6
|
+
|
|
7
|
+
### Examples
|
|
8
|
+
|
|
9
|
+
Use the components tool by passing the args `component` and `example` for any of these combinations:
|
|
10
|
+
|
|
11
|
+
- component: sd-audio, example: animated
|
|
12
|
+
- component: sd-audio, example: inverted
|
|
13
|
+
- component: sd-audio, example: reverse
|
|
14
|
+
- component: sd-audio, example: speed
|
|
15
|
+
- component: sd-audio, example: no-timestamps
|
|
16
|
+
- component: sd-audio, example: transcript
|
|
17
|
+
|
|
18
|
+
### Key Properties
|
|
19
|
+
|
|
20
|
+
- prop.reversedLayout [attr: reversed-layout]: boolean, default=false — Reverses the order of the audio controls and timestamps
|
|
21
|
+
- prop.hideTimestamps [attr: hide-timestamps]: boolean, default=false — Hides the timestamps
|
|
22
|
+
- prop.animated: boolean, default=false — Enables the wave animation
|
|
23
|
+
- prop.inverted: boolean, default=false — Inverts the colors of the component
|
|
24
|
+
- prop.speed: number, default=1 — Sets value of the audio element playback rate
|
|
25
|
+
- prop.dir: 'ltr'|'rtl'|'auto' — The element's directionality.
|
|
26
|
+
- prop.lang: string — The element's language.
|
|
27
|
+
|
|
28
|
+
### Events
|
|
29
|
+
|
|
30
|
+
- event.sd-playback-start: Emitted when the audio playback starts.
|
|
31
|
+
- event.sd-playback-end: Emitted when the audio playback ends.
|
|
32
|
+
- event.sd-playback-pause: Emitted when the audio playback pauses.
|
|
33
|
+
- event.sd-playback-mute: Emitted when the audio is muted.
|
|
34
|
+
- event.sd-playback-unmute: Emitted when the audio is unmuted.
|
|
35
|
+
- event.sd-playback-speed: Emitted when the playback speed is changed.
|
|
36
|
+
- event.sd-transcript-click: Emitted when the transcript button is clicked.
|
|
37
|
+
|
|
38
|
+
### Slots
|
|
39
|
+
|
|
40
|
+
- slot.default: The default slot.
|
|
41
|
+
- slot.play-icon: The play icon.
|
|
42
|
+
- slot.pause-icon: The pause icon.
|
|
43
|
+
- slot.transcript: The transcript.
|
|
44
|
+
|
|
45
|
+
### CSS Parts
|
|
46
|
+
|
|
47
|
+
- part.base: The component's base wrapper.
|
|
48
|
+
- part.audio-controls: The audio controls.
|
|
49
|
+
- part.playback-speed: The playback speed.
|
|
50
|
+
- part.play-button: The play button.
|
|
51
|
+
- part.volume: The volume button.
|
|
52
|
+
- part.progress-slider: The audio progress slider.
|
|
53
|
+
- part.timestamps: The audio timestamps.
|
|
54
|
+
|
|
55
|
+
## Guidelines
|
|
56
|
+
|
|
57
|
+
### Use Cases
|
|
58
|
+
|
|
59
|
+
- Embed instructional audio to guide users through complex processes or tutorials.
|
|
60
|
+
- Promote new products, services, or events with audio content.
|
|
61
|
+
- Enable visually impaired users to access content through audio narration.
|
|
62
|
+
|
|
63
|
+
### Rules
|
|
64
|
+
|
|
65
|
+
### Behavior
|
|
66
|
+
|
|
67
|
+
- Avoid autoplaying audio as it can be disruptive.
|
|
68
|
+
- Provide controls to allow users to play and pause.
|
|
69
|
+
- Use appropriate formats and sizes to optimize loading times and performance.
|
|
70
|
+
|
|
71
|
+
### Background
|
|
72
|
+
|
|
73
|
+
- Use light background options like white, neutral-100, primary-100, or use a primary background when inverted.
|
|
74
|
+
|
|
75
|
+
### Accessibility
|
|
76
|
+
|
|
77
|
+
- Provide audio descriptions to ensure all users can access the content.
|
|
78
|
+
- Ensure all player controls (play, pause, volume, speed, etc.) are fully operable using only the keyboard.
|
|
79
|
+
- Include an audio transcript to support users who are deaf, hard of hearing, or prefer reading at their own pace.
|
|
80
|
+
- For purely decorative images, ALT-tags should be left empty so that screen readers can bypass them and concentrate on conveying meaningful content.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
Use the `animated` attribute to change the appearance.
|
|
2
|
+
|
|
3
|
+
```html
|
|
4
|
+
<sd-audio animated>
|
|
5
|
+
<audio src="./placeholders/audio/sds-song.mp3" preload="metadata"></audio>
|
|
6
|
+
<div slot="transcript">
|
|
7
|
+
<p>1<br />00:00:00.000 --> 00:00:04.000<br />A bond unbroken, usability</p>
|
|
8
|
+
<p>2<br />00:00:04.001 --> 00:00:08.000<br />We weave the fabric of digital reality</p>
|
|
9
|
+
<p>
|
|
10
|
+
<strong>[Chorus]</strong><br />I'm here to light the path you walk, ohh<br />Under the stars where dreams we
|
|
11
|
+
talk<br />I won't falter, steady and sure<br />Tryna bring joy, eternal, pure
|
|
12
|
+
</p>
|
|
13
|
+
<p>
|
|
14
|
+
3<br />00:00:08.001 --> 00:00:12.000<br /><strong>[Chorus]</strong><br />I'm here to light the path you walk,
|
|
15
|
+
ohh<br />Under the stars where dreams we talk<br />I won't falter, steady and sure<br />Tryna bring joy, eternal,
|
|
16
|
+
pure
|
|
17
|
+
</p>
|
|
18
|
+
<p>
|
|
19
|
+
4<br />00:00:12.001 --> 00:00:16.000<br /><strong>[Chorus]</strong><br />I'm here to light the path you walk,
|
|
20
|
+
ohh<br />Under the stars where dreams we talk<br />I won't falter, steady and sure<br />Tryna bring joy, eternal,
|
|
21
|
+
pure
|
|
22
|
+
</p>
|
|
23
|
+
<p>
|
|
24
|
+
5<br />00:00:16.001 --> 00:00:20.000<br /><strong>[Chorus Continuation]</strong><br />Hey, Solid Components, they
|
|
25
|
+
gleam<br />Usable, consistent like a dream<br />In the net of codes, we're threading<br />Creating visions that
|
|
26
|
+
we're spreading<br />Solid Design System, seamless team<br />In this digital flow, we stream
|
|
27
|
+
</p>
|
|
28
|
+
<p>
|
|
29
|
+
6<br />00:00:20.001 --> 00:00:24.000<br /><strong>[Chorus Continuation]</strong><br />Woven strong, a network
|
|
30
|
+
supreme<br />With Solid Components, we're the dream team
|
|
31
|
+
</p>
|
|
32
|
+
</div>
|
|
33
|
+
</sd-audio>
|
|
34
|
+
```
|