@flood-md/agent 0.2.9 → 0.2.11
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/DESIGN.md +33 -8
- package/README.md +35 -4
- package/SKILL.md +42 -0
- package/dist/catalog.json +8716 -0
- package/dist/materials/component-accordion.md +42 -0
- package/dist/materials/component-alert-dialog.md +46 -0
- package/dist/materials/component-alert.md +41 -0
- package/dist/materials/component-app-shell.md +47 -0
- package/dist/materials/component-app-top-bar.md +36 -0
- package/dist/materials/component-aspect-ratio.md +36 -0
- package/dist/materials/component-autocomplete.md +54 -0
- package/dist/materials/component-avatar-group.md +39 -0
- package/dist/materials/component-avatar.md +40 -0
- package/dist/materials/component-badge.md +37 -0
- package/dist/materials/component-blockquote.md +35 -0
- package/dist/materials/component-breadcrumb.md +36 -0
- package/dist/materials/component-bulk-action-bar.md +52 -0
- package/dist/materials/component-button-group.md +39 -0
- package/dist/materials/component-button.md +44 -0
- package/dist/materials/component-calendar.md +59 -0
- package/dist/materials/component-card.md +46 -0
- package/dist/materials/component-center.md +39 -0
- package/dist/materials/component-character-count.md +42 -0
- package/dist/materials/component-check-card.md +39 -0
- package/dist/materials/component-checkbox-group.md +48 -0
- package/dist/materials/component-checkbox.md +37 -0
- package/dist/materials/component-code-snippet.md +37 -0
- package/dist/materials/component-collapsible.md +41 -0
- package/dist/materials/component-collection-toolbar.md +68 -0
- package/dist/materials/component-collection-view-switcher.md +49 -0
- package/dist/materials/component-color-picker.md +49 -0
- package/dist/materials/component-color-swatch.md +35 -0
- package/dist/materials/component-combobox.md +60 -0
- package/dist/materials/component-command-list.md +48 -0
- package/dist/materials/component-command-palette.md +53 -0
- package/dist/materials/component-container.md +36 -0
- package/dist/materials/component-context-menu.md +43 -0
- package/dist/materials/component-copy-button.md +43 -0
- package/dist/materials/component-data-list-item.md +40 -0
- package/dist/materials/component-data-list.md +38 -0
- package/dist/materials/component-data-table.md +70 -0
- package/dist/materials/component-date-field.md +57 -0
- package/dist/materials/component-date-picker.md +67 -0
- package/dist/materials/component-date-range-field.md +62 -0
- package/dist/materials/component-date-range-picker.md +73 -0
- package/dist/materials/component-date-time-picker.md +62 -0
- package/dist/materials/component-date-time-range-picker.md +70 -0
- package/dist/materials/component-description-list.md +42 -0
- package/dist/materials/component-dialog.md +45 -0
- package/dist/materials/component-divider.md +37 -0
- package/dist/materials/component-drawer.md +51 -0
- package/dist/materials/component-dropzone.md +45 -0
- package/dist/materials/component-editable.md +57 -0
- package/dist/materials/component-empty-state.md +41 -0
- package/dist/materials/component-error-summary.md +40 -0
- package/dist/materials/component-field.md +46 -0
- package/dist/materials/component-fieldset.md +46 -0
- package/dist/materials/component-figure.md +36 -0
- package/dist/materials/component-file-input.md +45 -0
- package/dist/materials/component-file-item.md +48 -0
- package/dist/materials/component-file-list.md +39 -0
- package/dist/materials/component-file-meta.md +36 -0
- package/dist/materials/component-filter-condition.md +53 -0
- package/dist/materials/component-filter-group.md +55 -0
- package/dist/materials/component-flood-root.md +33 -0
- package/dist/materials/component-grid.md +38 -0
- package/dist/materials/component-heading.md +38 -0
- package/dist/materials/component-hover-card.md +48 -0
- package/dist/materials/component-icon-button.md +43 -0
- package/dist/materials/component-icon-slot.md +37 -0
- package/dist/materials/component-image-preview.md +50 -0
- package/dist/materials/component-image.md +37 -0
- package/dist/materials/component-inline-code.md +36 -0
- package/dist/materials/component-inline.md +39 -0
- package/dist/materials/component-input-group.md +43 -0
- package/dist/materials/component-input.md +39 -0
- package/dist/materials/component-kbd.md +34 -0
- package/dist/materials/component-label.md +37 -0
- package/dist/materials/component-link.md +35 -0
- package/dist/materials/component-list-box.md +57 -0
- package/dist/materials/component-list.md +40 -0
- package/dist/materials/component-menu.md +54 -0
- package/dist/materials/component-menubar.md +41 -0
- package/dist/materials/component-meter.md +43 -0
- package/dist/materials/component-metric.md +39 -0
- package/dist/materials/component-multi-select.md +62 -0
- package/dist/materials/component-navigation-group.md +51 -0
- package/dist/materials/component-navigation-item.md +59 -0
- package/dist/materials/component-navigation-list.md +38 -0
- package/dist/materials/component-navigation-tree.md +51 -0
- package/dist/materials/component-number-input.md +47 -0
- package/dist/materials/component-overflow-actions.md +47 -0
- package/dist/materials/component-page-header.md +40 -0
- package/dist/materials/component-pagination.md +44 -0
- package/dist/materials/component-password-input.md +43 -0
- package/dist/materials/component-pin-input.md +45 -0
- package/dist/materials/component-popover.md +48 -0
- package/dist/materials/component-progress.md +42 -0
- package/dist/materials/component-radio-card.md +43 -0
- package/dist/materials/component-radio-group.md +49 -0
- package/dist/materials/component-radio.md +39 -0
- package/dist/materials/component-range-calendar.md +58 -0
- package/dist/materials/component-rating.md +46 -0
- package/dist/materials/component-resizable-panels.md +48 -0
- package/dist/materials/component-scroll-area.md +42 -0
- package/dist/materials/component-search-input.md +40 -0
- package/dist/materials/component-section.md +42 -0
- package/dist/materials/component-segmented-control.md +53 -0
- package/dist/materials/component-select.md +45 -0
- package/dist/materials/component-sidebar.md +64 -0
- package/dist/materials/component-skeleton.md +42 -0
- package/dist/materials/component-skip-link.md +37 -0
- package/dist/materials/component-slider.md +51 -0
- package/dist/materials/component-spinner.md +37 -0
- package/dist/materials/component-split.md +40 -0
- package/dist/materials/component-stack.md +37 -0
- package/dist/materials/component-status-indicator.md +38 -0
- package/dist/materials/component-steps.md +40 -0
- package/dist/materials/component-surface.md +37 -0
- package/dist/materials/component-switch.md +35 -0
- package/dist/materials/component-table.md +46 -0
- package/dist/materials/component-tabs.md +45 -0
- package/dist/materials/component-tag-input.md +46 -0
- package/dist/materials/component-tag.md +40 -0
- package/dist/materials/component-text.md +39 -0
- package/dist/materials/component-textarea.md +38 -0
- package/dist/materials/component-time-field.md +56 -0
- package/dist/materials/component-time-picker.md +60 -0
- package/dist/materials/component-timeline.md +38 -0
- package/dist/materials/component-toast-region.md +42 -0
- package/dist/materials/component-toggle-group.md +44 -0
- package/dist/materials/component-toggle.md +40 -0
- package/dist/materials/component-toolbar.md +46 -0
- package/dist/materials/component-tooltip.md +40 -0
- package/dist/materials/component-tree-select.md +56 -0
- package/dist/materials/component-tree.md +52 -0
- package/dist/materials/component-upload-item.md +52 -0
- package/dist/materials/component-upload-list.md +40 -0
- package/dist/materials/component-visually-hidden.md +37 -0
- package/dist/materials/guide-agent-knowledge.md +95 -0
- package/dist/materials/guide-agents.md +103 -0
- package/dist/materials/guide-faq.md +84 -0
- package/dist/materials/guide-foundations.md +275 -0
- package/dist/materials/guide-installation.md +79 -0
- package/dist/materials/guide-interface-content.md +76 -0
- package/dist/materials/guide-introduction.md +42 -0
- package/dist/materials/guide-layout.md +222 -0
- package/dist/materials/guide-motion.md +69 -0
- package/dist/materials/guide-privacy.md +23 -0
- package/dist/materials/guide-project-ui.md +127 -0
- package/dist/materials/guide-skills.md +117 -0
- package/dist/materials/guide-theming.md +73 -0
- package/dist/materials/recipe-collection-views.md +648 -0
- package/dist/materials/recipe-command-palette.md +45 -0
- package/dist/materials/recipe-filter-bar.md +68 -0
- package/dist/materials/recipe-form-submission.md +39 -0
- package/dist/materials/recipe-grouped-form.md +71 -0
- package/dist/materials/recipe-navigation-workspace.md +222 -0
- package/dist/materials/recipe-record-management.md +296 -0
- package/dist/materials/recipe-record-workspace.md +207 -0
- package/dist/materials/recipe-select-all.md +31 -0
- package/dist/materials/recipe-settings-workspace.md +232 -0
- package/dist/materials/recipe-split-button.md +26 -0
- package/dist/materials/recipe-table-bulk-actions.md +88 -0
- package/dist/materials/recipe-workspace-review.md +134 -0
- package/dist/materials/token-sys.color.accent.content.json +41 -0
- package/dist/materials/token-sys.color.action.danger.content.json +42 -0
- package/dist/materials/token-sys.color.action.ghost.content.json +41 -0
- package/dist/materials/token-sys.color.action.ghost.disabled-content.json +41 -0
- package/dist/materials/token-sys.color.action.ghost.disabled.json +41 -0
- package/dist/materials/token-sys.color.action.ghost.hover.json +41 -0
- package/dist/materials/token-sys.color.action.ghost.pressed.json +41 -0
- package/dist/materials/token-sys.color.action.ghost.rest.json +41 -0
- package/dist/materials/token-sys.color.action.on-surface.content.json +39 -0
- package/dist/materials/token-sys.color.action.on-surface.disabled-content.json +39 -0
- package/dist/materials/token-sys.color.action.on-surface.disabled.json +39 -0
- package/dist/materials/token-sys.color.action.on-surface.hover.json +39 -0
- package/dist/materials/token-sys.color.action.on-surface.pressed.json +39 -0
- package/dist/materials/token-sys.color.action.on-surface.rest.json +39 -0
- package/dist/materials/token-sys.color.action.primary.content.json +39 -0
- package/dist/materials/token-sys.color.action.primary.disabled-content.json +39 -0
- package/dist/materials/token-sys.color.action.primary.disabled.json +39 -0
- package/dist/materials/token-sys.color.action.primary.hover.json +39 -0
- package/dist/materials/token-sys.color.action.primary.pressed.json +39 -0
- package/dist/materials/token-sys.color.action.primary.rest.json +39 -0
- package/dist/materials/token-sys.color.action.subtle.content.json +39 -0
- package/dist/materials/token-sys.color.action.subtle.disabled-content.json +39 -0
- package/dist/materials/token-sys.color.action.subtle.disabled.json +39 -0
- package/dist/materials/token-sys.color.action.subtle.hover.json +39 -0
- package/dist/materials/token-sys.color.action.subtle.pressed.json +39 -0
- package/dist/materials/token-sys.color.action.subtle.rest.json +39 -0
- package/dist/materials/token-sys.color.border.decorative.json +42 -0
- package/dist/materials/token-sys.color.border.default.json +39 -0
- package/dist/materials/token-sys.color.border.floating.json +39 -0
- package/dist/materials/token-sys.color.border.strong.json +39 -0
- package/dist/materials/token-sys.color.content.default.json +41 -0
- package/dist/materials/token-sys.color.content.helper.json +39 -0
- package/dist/materials/token-sys.color.content.subtle.json +43 -0
- package/dist/materials/token-sys.color.context.base.action-disabled.json +41 -0
- package/dist/materials/token-sys.color.context.base.action-hover.json +41 -0
- package/dist/materials/token-sys.color.context.base.action-pressed.json +41 -0
- package/dist/materials/token-sys.color.context.base.action-rest.json +41 -0
- package/dist/materials/token-sys.color.context.base.avatar-background.json +41 -0
- package/dist/materials/token-sys.color.context.base.border-decorative.json +41 -0
- package/dist/materials/token-sys.color.context.base.divider-decorative.json +41 -0
- package/dist/materials/token-sys.color.context.base.field-background.json +41 -0
- package/dist/materials/token-sys.color.context.base.field-border.json +41 -0
- package/dist/materials/token-sys.color.context.base.field-disabled.json +41 -0
- package/dist/materials/token-sys.color.context.base.field-readonly.json +41 -0
- package/dist/materials/token-sys.color.context.base.indicator-track.json +41 -0
- package/dist/materials/token-sys.color.context.base.loading-placeholder.json +41 -0
- package/dist/materials/token-sys.color.context.base.muted-background.json +41 -0
- package/dist/materials/token-sys.color.context.base.on-surface-action-disabled.json +41 -0
- package/dist/materials/token-sys.color.context.base.on-surface-action-hover.json +41 -0
- package/dist/materials/token-sys.color.context.base.on-surface-action-pressed.json +41 -0
- package/dist/materials/token-sys.color.context.base.on-surface-action-rest.json +41 -0
- package/dist/materials/token-sys.color.context.base.selection-background.json +41 -0
- package/dist/materials/token-sys.color.context.base.supporting-background.json +41 -0
- package/dist/materials/token-sys.color.context.filled.action-disabled.json +41 -0
- package/dist/materials/token-sys.color.context.filled.action-hover.json +41 -0
- package/dist/materials/token-sys.color.context.filled.action-pressed.json +41 -0
- package/dist/materials/token-sys.color.context.filled.action-rest.json +41 -0
- package/dist/materials/token-sys.color.context.filled.avatar-background.json +41 -0
- package/dist/materials/token-sys.color.context.filled.border-decorative.json +41 -0
- package/dist/materials/token-sys.color.context.filled.divider-decorative.json +41 -0
- package/dist/materials/token-sys.color.context.filled.field-background.json +41 -0
- package/dist/materials/token-sys.color.context.filled.field-border.json +41 -0
- package/dist/materials/token-sys.color.context.filled.field-disabled.json +41 -0
- package/dist/materials/token-sys.color.context.filled.field-readonly.json +41 -0
- package/dist/materials/token-sys.color.context.filled.indicator-track.json +41 -0
- package/dist/materials/token-sys.color.context.filled.loading-placeholder.json +41 -0
- package/dist/materials/token-sys.color.context.filled.muted-background.json +41 -0
- package/dist/materials/token-sys.color.context.filled.selection-background.json +41 -0
- package/dist/materials/token-sys.color.context.filled.supporting-background.json +41 -0
- package/dist/materials/token-sys.color.divider.decorative.json +41 -0
- package/dist/materials/token-sys.color.feedback.error.json +39 -0
- package/dist/materials/token-sys.color.feedback.info.json +39 -0
- package/dist/materials/token-sys.color.feedback.success.json +39 -0
- package/dist/materials/token-sys.color.feedback.warning.json +39 -0
- package/dist/materials/token-sys.color.field.background.json +39 -0
- package/dist/materials/token-sys.color.field.border.json +39 -0
- package/dist/materials/token-sys.color.field.boundary.json +39 -0
- package/dist/materials/token-sys.color.field.content.json +39 -0
- package/dist/materials/token-sys.color.field.disabled-content.json +39 -0
- package/dist/materials/token-sys.color.field.disabled.json +39 -0
- package/dist/materials/token-sys.color.field.placeholder.json +39 -0
- package/dist/materials/token-sys.color.field.readonly.json +41 -0
- package/dist/materials/token-sys.color.focus.ring.json +39 -0
- package/dist/materials/token-sys.color.indicator.accent.json +39 -0
- package/dist/materials/token-sys.color.indicator.fill.json +39 -0
- package/dist/materials/token-sys.color.indicator.track.json +39 -0
- package/dist/materials/token-sys.color.loading.placeholder.json +42 -0
- package/dist/materials/token-sys.color.scrollbar.thumb-hover.json +39 -0
- package/dist/materials/token-sys.color.scrollbar.thumb.json +39 -0
- package/dist/materials/token-sys.color.selection.background.json +39 -0
- package/dist/materials/token-sys.color.selection.content.json +39 -0
- package/dist/materials/token-sys.color.selection.floating.json +39 -0
- package/dist/materials/token-sys.color.shadow.floating.json +39 -0
- package/dist/materials/token-sys.color.surface.avatar.json +41 -0
- package/dist/materials/token-sys.color.surface.canvas.json +39 -0
- package/dist/materials/token-sys.color.surface.current.json +41 -0
- package/dist/materials/token-sys.color.surface.default.json +39 -0
- package/dist/materials/token-sys.color.surface.floating-translucent.json +39 -0
- package/dist/materials/token-sys.color.surface.floating.json +39 -0
- package/dist/materials/token-sys.color.surface.muted.json +41 -0
- package/dist/materials/token-sys.color.surface.overlay.json +39 -0
- package/dist/materials/token-sys.color.surface.raised.json +39 -0
- package/dist/materials/token-sys.color.surface.supporting.json +41 -0
- package/dist/materials/token-sys.control.2xl.gap.json +34 -0
- package/dist/materials/token-sys.control.2xl.height.json +34 -0
- package/dist/materials/token-sys.control.2xl.icon-size.json +34 -0
- package/dist/materials/token-sys.control.2xl.line-height.json +31 -0
- package/dist/materials/token-sys.control.2xl.padding-inline.json +34 -0
- package/dist/materials/token-sys.control.2xl.text-size.json +34 -0
- package/dist/materials/token-sys.control.2xs.gap.json +34 -0
- package/dist/materials/token-sys.control.2xs.height.json +34 -0
- package/dist/materials/token-sys.control.2xs.icon-size.json +34 -0
- package/dist/materials/token-sys.control.2xs.line-height.json +31 -0
- package/dist/materials/token-sys.control.2xs.padding-inline.json +34 -0
- package/dist/materials/token-sys.control.2xs.text-size.json +34 -0
- package/dist/materials/token-sys.control.lg.gap.json +34 -0
- package/dist/materials/token-sys.control.lg.height.json +34 -0
- package/dist/materials/token-sys.control.lg.icon-size.json +34 -0
- package/dist/materials/token-sys.control.lg.line-height.json +31 -0
- package/dist/materials/token-sys.control.lg.padding-inline.json +34 -0
- package/dist/materials/token-sys.control.lg.text-size.json +34 -0
- package/dist/materials/token-sys.control.md.gap.json +34 -0
- package/dist/materials/token-sys.control.md.height.json +34 -0
- package/dist/materials/token-sys.control.md.icon-size.json +34 -0
- package/dist/materials/token-sys.control.md.line-height.json +31 -0
- package/dist/materials/token-sys.control.md.padding-inline.json +34 -0
- package/dist/materials/token-sys.control.md.text-size.json +34 -0
- package/dist/materials/token-sys.control.sm.gap.json +34 -0
- package/dist/materials/token-sys.control.sm.height.json +34 -0
- package/dist/materials/token-sys.control.sm.icon-size.json +34 -0
- package/dist/materials/token-sys.control.sm.line-height.json +31 -0
- package/dist/materials/token-sys.control.sm.padding-inline.json +34 -0
- package/dist/materials/token-sys.control.sm.text-size.json +34 -0
- package/dist/materials/token-sys.control.xl.gap.json +34 -0
- package/dist/materials/token-sys.control.xl.height.json +34 -0
- package/dist/materials/token-sys.control.xl.icon-size.json +34 -0
- package/dist/materials/token-sys.control.xl.line-height.json +31 -0
- package/dist/materials/token-sys.control.xl.padding-inline.json +34 -0
- package/dist/materials/token-sys.control.xl.text-size.json +34 -0
- package/dist/materials/token-sys.control.xs.gap.json +34 -0
- package/dist/materials/token-sys.control.xs.height.json +34 -0
- package/dist/materials/token-sys.control.xs.icon-size.json +34 -0
- package/dist/materials/token-sys.control.xs.line-height.json +31 -0
- package/dist/materials/token-sys.control.xs.padding-inline.json +34 -0
- package/dist/materials/token-sys.control.xs.text-size.json +34 -0
- package/dist/materials/token-sys.effect.floating.blur.json +34 -0
- package/dist/materials/token-sys.effect.floating.saturation.json +31 -0
- package/dist/materials/token-sys.effect.floating.shadow-blur.json +34 -0
- package/dist/materials/token-sys.effect.floating.shadow-offset.json +34 -0
- package/dist/materials/token-sys.focus.offset.json +34 -0
- package/dist/materials/token-sys.focus.width.json +34 -0
- package/dist/materials/token-sys.font.mono.json +36 -0
- package/dist/materials/token-sys.font.sans.json +35 -0
- package/dist/materials/token-sys.layer.base.json +31 -0
- package/dist/materials/token-sys.layer.modal.json +31 -0
- package/dist/materials/token-sys.layer.popover.json +31 -0
- package/dist/materials/token-sys.layer.sticky.json +31 -0
- package/dist/materials/token-sys.layer.toast.json +31 -0
- package/dist/materials/token-sys.motion.distance-panel.json +36 -0
- package/dist/materials/token-sys.motion.distance-small.json +36 -0
- package/dist/materials/token-sys.motion.duration-enter.json +36 -0
- package/dist/materials/token-sys.motion.duration-exit.json +36 -0
- package/dist/materials/token-sys.motion.duration-fast.json +34 -0
- package/dist/materials/token-sys.motion.duration-layer.json +36 -0
- package/dist/materials/token-sys.motion.duration-loop.json +36 -0
- package/dist/materials/token-sys.motion.duration-normal.json +34 -0
- package/dist/materials/token-sys.motion.duration-press.json +36 -0
- package/dist/materials/token-sys.motion.duration-reduced.json +34 -0
- package/dist/materials/token-sys.motion.easing-enter.json +38 -0
- package/dist/materials/token-sys.motion.easing-exit.json +38 -0
- package/dist/materials/token-sys.motion.easing.json +36 -0
- package/dist/materials/token-sys.radius.action.json +34 -0
- package/dist/materials/token-sys.radius.block.json +34 -0
- package/dist/materials/token-sys.radius.field.json +34 -0
- package/dist/materials/token-sys.radius.indicator.json +34 -0
- package/dist/materials/token-sys.radius.surface.json +34 -0
- package/dist/materials/token-sys.scrollbar.inset.json +34 -0
- package/dist/materials/token-sys.scrollbar.min-thumb.json +34 -0
- package/dist/materials/token-sys.scrollbar.size.json +34 -0
- package/dist/materials/token-sys.size.choice.json +34 -0
- package/dist/materials/token-sys.size.container.lg.json +37 -0
- package/dist/materials/token-sys.size.container.md.json +37 -0
- package/dist/materials/token-sys.size.container.sm.json +37 -0
- package/dist/materials/token-sys.size.grid.min-item.json +37 -0
- package/dist/materials/token-sys.size.indicator.lg.json +34 -0
- package/dist/materials/token-sys.size.indicator.md.json +34 -0
- package/dist/materials/token-sys.size.indicator.sm.json +34 -0
- package/dist/materials/token-sys.size.keycap.lg.json +34 -0
- package/dist/materials/token-sys.size.keycap.md.json +34 -0
- package/dist/materials/token-sys.size.keycap.sm.json +34 -0
- package/dist/materials/token-sys.size.switch-height.json +34 -0
- package/dist/materials/token-sys.size.switch-thumb.json +34 -0
- package/dist/materials/token-sys.size.switch-width.json +34 -0
- package/dist/materials/token-sys.size.touch.json +34 -0
- package/dist/materials/token-sys.space.0.json +34 -0
- package/dist/materials/token-sys.space.1.json +34 -0
- package/dist/materials/token-sys.space.12.json +34 -0
- package/dist/materials/token-sys.space.2.json +34 -0
- package/dist/materials/token-sys.space.3.json +34 -0
- package/dist/materials/token-sys.space.4.json +34 -0
- package/dist/materials/token-sys.space.6.json +34 -0
- package/dist/materials/token-sys.space.8.json +34 -0
- package/dist/materials/token-sys.stroke.width.json +34 -0
- package/dist/materials/token-sys.type.body.line-height.json +31 -0
- package/dist/materials/token-sys.type.body.size.json +34 -0
- package/dist/materials/token-sys.type.body.tracking.json +34 -0
- package/dist/materials/token-sys.type.body.weight.json +31 -0
- package/dist/materials/token-sys.type.compact.line-height.json +31 -0
- package/dist/materials/token-sys.type.compact.size.json +34 -0
- package/dist/materials/token-sys.type.compact.tracking.json +34 -0
- package/dist/materials/token-sys.type.compact.weight.json +31 -0
- package/dist/materials/token-sys.type.control.line-height.json +31 -0
- package/dist/materials/token-sys.type.control.size.json +34 -0
- package/dist/materials/token-sys.type.control.tracking.json +34 -0
- package/dist/materials/token-sys.type.control.weight.json +31 -0
- package/dist/materials/token-sys.type.dialog-title.line-height.json +33 -0
- package/dist/materials/token-sys.type.dialog-title.size.json +36 -0
- package/dist/materials/token-sys.type.dialog-title.tracking.json +36 -0
- package/dist/materials/token-sys.type.dialog-title.weight.json +33 -0
- package/dist/materials/token-sys.type.display.line-height.json +31 -0
- package/dist/materials/token-sys.type.display.size.json +34 -0
- package/dist/materials/token-sys.type.display.tracking.json +34 -0
- package/dist/materials/token-sys.type.display.weight.json +31 -0
- package/dist/materials/token-sys.type.field-label.line-height.json +33 -0
- package/dist/materials/token-sys.type.field-label.size.json +36 -0
- package/dist/materials/token-sys.type.field-label.tracking.json +36 -0
- package/dist/materials/token-sys.type.field-label.weight.json +33 -0
- package/dist/materials/token-sys.type.group-title.line-height.json +33 -0
- package/dist/materials/token-sys.type.group-title.size.json +36 -0
- package/dist/materials/token-sys.type.group-title.tracking.json +36 -0
- package/dist/materials/token-sys.type.group-title.weight.json +33 -0
- package/dist/materials/token-sys.type.helper.line-height.json +31 -0
- package/dist/materials/token-sys.type.helper.size.json +34 -0
- package/dist/materials/token-sys.type.helper.tracking.json +34 -0
- package/dist/materials/token-sys.type.helper.weight.json +31 -0
- package/dist/materials/token-sys.type.label.line-height.json +31 -0
- package/dist/materials/token-sys.type.label.size.json +34 -0
- package/dist/materials/token-sys.type.label.tracking.json +34 -0
- package/dist/materials/token-sys.type.label.weight.json +31 -0
- package/dist/materials/token-sys.type.large.line-height.json +31 -0
- package/dist/materials/token-sys.type.large.size.json +34 -0
- package/dist/materials/token-sys.type.large.tracking.json +34 -0
- package/dist/materials/token-sys.type.large.weight.json +31 -0
- package/dist/materials/token-sys.type.lead.line-height.json +31 -0
- package/dist/materials/token-sys.type.lead.size.json +34 -0
- package/dist/materials/token-sys.type.lead.tracking.json +34 -0
- package/dist/materials/token-sys.type.lead.weight.json +31 -0
- package/dist/materials/token-sys.type.page.line-height.json +31 -0
- package/dist/materials/token-sys.type.page.size.json +34 -0
- package/dist/materials/token-sys.type.page.tracking.json +34 -0
- package/dist/materials/token-sys.type.page.weight.json +31 -0
- package/dist/materials/token-sys.type.section.line-height.json +31 -0
- package/dist/materials/token-sys.type.section.size.json +34 -0
- package/dist/materials/token-sys.type.section.tracking.json +34 -0
- package/dist/materials/token-sys.type.section.weight.json +31 -0
- package/knowledge.json +522 -0
- package/lib/index.d.ts +33 -0
- package/lib/index.mjs +144 -0
- package/lib/inspect.d.ts +12 -0
- package/lib/inspect.mjs +187 -0
- package/manifest.json +51 -1
- package/package.json +13 -1
- package/references/component-families.md +146 -0
- package/references/composition.md +4 -4
- package/references/customization.md +14 -0
- package/references/flood-composition/SKILL.md +34 -0
- package/references/flood-data-display/SKILL.md +149 -0
- package/references/flood-feedback/SKILL.md +49 -3
- package/references/flood-forms/SKILL.md +82 -2
- package/references/flood-foundations/SKILL.md +43 -0
- package/references/flood-hierarchy/SKILL.md +103 -0
- package/references/flood-interface-content/SKILL.md +163 -0
- package/references/flood-motion/SKILL.md +44 -0
- package/references/flood-navigation/SKILL.md +195 -0
- package/references/flood-overlays/SKILL.md +42 -0
- package/references/flood-records/SKILL.md +148 -0
- package/references/flood-spacing/SKILL.md +54 -0
- package/references/flood-verification/SKILL.md +72 -0
- package/references/interface-content-examples.md +51 -0
- package/references/knowledge.md +49 -0
- package/references/record-decisions.md +25 -0
- package/references/rendered-review.md +102 -0
- package/references/routing.md +1 -0
- package/references/spacing.md +30 -0
- package/rules.json +242 -6
- package/workflows.json +171 -10
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# Frequently asked questions
|
|
2
|
+
|
|
3
|
+
## Does Flood use shadcn, Radix, Base UI or Tailwind?
|
|
4
|
+
|
|
5
|
+
No. Flood's controls, CSS tokens and CLI are authored in this repository. React
|
|
6
|
+
and browser-native form elements provide the underlying platform APIs.
|
|
7
|
+
|
|
8
|
+
## Does it support Next.js?
|
|
9
|
+
|
|
10
|
+
Yes. Import the global stylesheet in app/layout.tsx. Flood's React entry preserves
|
|
11
|
+
its use-client boundary. Compose callbacks, state and Field's function child in
|
|
12
|
+
your own client component. The integration fixture tests React 19 and Next.js App
|
|
13
|
+
Router. Clean-package checks also exercise React 18.3 and 19 server rendering;
|
|
14
|
+
the full interactive Next.js fixture uses React 19.
|
|
15
|
+
|
|
16
|
+
## Is this the same installation model as shadcn?
|
|
17
|
+
|
|
18
|
+
Flood currently installs versioned npm dependencies. It does not copy editable
|
|
19
|
+
component source into your application or provide a source-file merge engine.
|
|
20
|
+
Customize semantic tokens and component props; use source changes in a fork when
|
|
21
|
+
you need behavior outside the public API.
|
|
22
|
+
|
|
23
|
+
## Why is there no add button command?
|
|
24
|
+
|
|
25
|
+
The base set ships together in @flood-md/react: ten foundation primitives and
|
|
26
|
+
eight native controls. Import the components you need; see the
|
|
27
|
+
[base component set](base-components.md). The CLI provides init, init --dry-run
|
|
28
|
+
and doctor.
|
|
29
|
+
|
|
30
|
+
## Which package managers work?
|
|
31
|
+
|
|
32
|
+
The installer uses npm. Other package managers can install the library manually,
|
|
33
|
+
but their integration is not currently covered by the installer tests.
|
|
34
|
+
|
|
35
|
+
## The controls look unstyled. What should I check?
|
|
36
|
+
|
|
37
|
+
Import @flood-md/react/styles.css once at the app root. Doctor checks package
|
|
38
|
+
versions and instruction files, not the application's stylesheet imports.
|
|
39
|
+
Wrap a new interface in FloodRoot to select the neutral dark foundations profile.
|
|
40
|
+
Outside that scope, controls retain the legacy theme. Check project CSS overrides
|
|
41
|
+
if the import and wrapper are already present.
|
|
42
|
+
|
|
43
|
+
## Can I rerun init or use it as an updater?
|
|
44
|
+
|
|
45
|
+
Init refuses existing flood.json or owned instruction files. It does not overwrite
|
|
46
|
+
project instructions. Follow the [upgrade guide](installation.md) and
|
|
47
|
+
review customized instructions when moving to a new release.
|
|
48
|
+
|
|
49
|
+
## Does making the website source public grant server access?
|
|
50
|
+
|
|
51
|
+
No. Source visibility does not grant GitHub write access, hosting credentials or
|
|
52
|
+
server execution. Browser-delivered HTML, JavaScript and CSS are visible to users
|
|
53
|
+
regardless of repository visibility. This does not make a website immune to bugs:
|
|
54
|
+
deployment permissions, dependencies and server behavior still need review.
|
|
55
|
+
Credentials belong in service secret stores, never in a public or private Git repo.
|
|
56
|
+
|
|
57
|
+
## Does Flood require an account or send my project to a service?
|
|
58
|
+
|
|
59
|
+
No Flood account, backend or telemetry is required. The installer contacts npm to
|
|
60
|
+
download packages. Components run inside your application and do not send project
|
|
61
|
+
contents to Flood.
|
|
62
|
+
|
|
63
|
+
## Where do I report problems?
|
|
64
|
+
|
|
65
|
+
Use [GitHub issues](https://github.com/tillwithered/flood.md/issues) for reproducible
|
|
66
|
+
bugs and API requests. For vulnerabilities, follow [SECURITY.md](../SECURITY.md)
|
|
67
|
+
and avoid posting exploit details or credentials in a public issue.
|
|
68
|
+
|
|
69
|
+
## Which fonts and icons does Flood use?
|
|
70
|
+
|
|
71
|
+
Flood's component implementations are original. Fonts and icon artwork have their
|
|
72
|
+
own authors and licenses:
|
|
73
|
+
|
|
74
|
+
| Asset | Where it is used | License |
|
|
75
|
+
| --- | --- | --- |
|
|
76
|
+
| [Inter](https://github.com/rsms/inter) | Locally bundled variable font in the React stylesheet | [SIL Open Font License 1.1](/licenses/inter.txt) |
|
|
77
|
+
| [Lucide](https://github.com/lucide-icons/lucide) | Website icons and documentation examples | [ISC, with included Feather-derived MIT notices](/licenses/lucide.txt) |
|
|
78
|
+
| [GitHub Primer Octicons](https://github.com/primer/octicons) | GitHub link mark on the website | [MIT](/licenses/github-mark.txt) |
|
|
79
|
+
|
|
80
|
+
The React component package does not depend on an icon pack. IconSlot and
|
|
81
|
+
IconButton accept SVG artwork from the host. Examples importing `lucide-react`
|
|
82
|
+
require that optional dependency in your project; you may substitute your own
|
|
83
|
+
icons. Preserve the corresponding license notices when redistributing assets.
|
|
84
|
+
The full Inter font provenance and license accompany the installed package.
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
# Foundations tokens · 0.2.11 candidate
|
|
2
|
+
|
|
3
|
+
This guide describes the **0.2.11 candidate** foundation exports. Keep Flood packages at
|
|
4
|
+
matching exact versions. Existing 0.1.1 installs use their earlier token contract.
|
|
5
|
+
|
|
6
|
+
Foundations separates fixed reference values (`ref`) from semantic roles (`sys`).
|
|
7
|
+
The compiler also supports component aliases (`comp`) and isolated experiments
|
|
8
|
+
(`exp`); no component-specific tokens are shipped in this first profile.
|
|
9
|
+
|
|
10
|
+
The 0.2.3 neutral dark profile has 168 public semantic roles. Five roles added
|
|
11
|
+
since 0.2.2 define scrollbar size, inset, minimum
|
|
12
|
+
thumb length and thumb/rest-hover colors. Geometry uses rem; the viewport stays
|
|
13
|
+
natively scrollable and overlay tracks reserve no layout gutter. Version 0.2.2 adds
|
|
14
|
+
`sys.type.display.*` (5.5rem size, 1.12 line height, 500 weight, -.04em tracking)
|
|
15
|
+
for marketing headings, `sys.type.lead.*` (1.375rem, 1.45, 400, -.01em) for
|
|
16
|
+
supporting marketing copy, and `sys.font.mono` for code. Existing product typography
|
|
17
|
+
retains its metrics. Responsive page composition remains the host's responsibility.
|
|
18
|
+
|
|
19
|
+
## Use the neutral dark profile
|
|
20
|
+
|
|
21
|
+
```tsx
|
|
22
|
+
import "@flood-md/tokens/foundations.css";
|
|
23
|
+
|
|
24
|
+
<section data-flood-foundations="neutral" data-flood-theme="dark">
|
|
25
|
+
<p className="example">Content</p>
|
|
26
|
+
</section>;
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
```css
|
|
30
|
+
.example {
|
|
31
|
+
color: var(--flood-sys-color-content-default);
|
|
32
|
+
background: var(--flood-sys-color-surface-canvas);
|
|
33
|
+
}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Both attributes belong on the same scope element. This opt-in token stylesheet
|
|
37
|
+
defines tokens and `color-scheme`; React components adopt these roles inside
|
|
38
|
+
`FloodRoot` when the React stylesheet is imported. It does not enable an
|
|
39
|
+
incomplete light theme. The preset and theme are
|
|
40
|
+
separate dimensions. Only `neutral` + `dark` is currently supplied.
|
|
41
|
+
|
|
42
|
+
## Inspect names and decisions
|
|
43
|
+
|
|
44
|
+
```ts
|
|
45
|
+
import { tokenNames, type TokenName } from "@flood-md/tokens/foundations";
|
|
46
|
+
|
|
47
|
+
const role: TokenName = "sys.color.content.default";
|
|
48
|
+
const cssVariable = tokenNames[role]; // --flood-sys-color-content-default
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
`foundations.manifest.json` describes public roles, types, status, usage limits,
|
|
52
|
+
resolved values, aliases and dependencies for each supplied context. Internal
|
|
53
|
+
reference tokens are absent from the TypeScript lookup and are not listed as
|
|
54
|
+
public manifest entries; alias/dependency metadata can still name their IDs.
|
|
55
|
+
`neutral.dark.tokens.json` is a resolved diagnostic DTCG document including the
|
|
56
|
+
internal reference graph's values. Internal names are not customization promises.
|
|
57
|
+
|
|
58
|
+
The dark profile covers surfaces, content, filled primary/subtle actions,
|
|
59
|
+
contextual ghost actions, field and feedback colors, focus, typography, spacing,
|
|
60
|
+
radii, control sizing, motion and local stacking levels. Subtle content is for
|
|
61
|
+
short supplementary metadata, not a universal small-body-text color or an
|
|
62
|
+
automatic APCA pass. Required small helper text uses `sys.color.content.helper`.
|
|
63
|
+
|
|
64
|
+
### Role families
|
|
65
|
+
|
|
66
|
+
All IDs below have the `sys.` prefix; CSS names replace dots with hyphens and
|
|
67
|
+
prepend `--flood-`. The generated typed lookup is the complete contract.
|
|
68
|
+
|
|
69
|
+
| Family | Roles |
|
|
70
|
+
| --- | --- |
|
|
71
|
+
| `font` | `sans` (Inter, Arial, sans-serif), `mono` |
|
|
72
|
+
| `type` | `display`, `lead`, `large`, `page`, `section`, `body`, `compact`, `label`, `helper`, `control`; each has `size`, `line-height`, `weight`, `tracking` |
|
|
73
|
+
| `space` | `0`, `1`, `2`, `3`, `4`, `6`, `8`, `12`; one step = .25rem |
|
|
74
|
+
| `radius` | `field` 1rem, `block` 1.5rem, `surface` 2rem, `action` pill, `indicator` .375rem |
|
|
75
|
+
| `control` | `2xs`, `xs`, `sm`, `md`, `lg`, `xl`, `2xl`; each has `height`, `text-size`, `line-height`, `padding-inline`, `icon-size`, `gap` |
|
|
76
|
+
| `size` | `touch`, `choice`, `switch-width`, `switch-height`, `switch-thumb`, `indicator.sm/md/lg`, `keycap.sm/md/lg`, `container.sm/md/lg`, `grid.min-item` |
|
|
77
|
+
| `color.action` | `primary`, `subtle`, `on-surface`, `ghost`; each has `rest`, `hover`, `pressed`, `content`, `disabled`, `disabled-content`; destructive action content has its own `danger.content` |
|
|
78
|
+
| `color.field` | `background`, `border`, `boundary`, `content`, `placeholder`, `disabled`, `disabled-content` |
|
|
79
|
+
| `color.feedback` | `error`, `success`, `warning`, `info` |
|
|
80
|
+
| `color.selection` | `background`, `content` |
|
|
81
|
+
| `focus`, `stroke` | Focus width/offset and decorative stroke width; independent of field validation |
|
|
82
|
+
| `scrollbar` | `size`, `inset`, `min-thumb`; thumb colors live under color.scrollbar |
|
|
83
|
+
| `color` | Surface/content, decorative border/divider, accent, focus, loading placeholder, indicator track/fill/accent and scrollbar rest/hover |
|
|
84
|
+
| `motion` | `duration-fast`, `duration-normal`, `duration-reduced`, `easing` |
|
|
85
|
+
| `layer` | `base`, `sticky`, `popover`, `modal`, `toast` |
|
|
86
|
+
|
|
87
|
+
### Material and nested control context
|
|
88
|
+
|
|
89
|
+
Absolute `color.surface.canvas/default/raised/overlay/floating` roles describe
|
|
90
|
+
materials. A component that draws a material establishes the context for its
|
|
91
|
+
children: Surface, Dialog/Drawer, anchored popups and selection menus, Toast,
|
|
92
|
+
Toolbar/BulkActionBar, standalone Calendar and other shared material owners.
|
|
93
|
+
Stack, Inline, Grid and other transparent layout wrappers inherit that context.
|
|
94
|
+
Nesting a default Surface inside an overlay returns to the default material;
|
|
95
|
+
DOM depth does not increment elevation.
|
|
96
|
+
|
|
97
|
+
Neutral actions, fields, read-only/disabled fills, choices, selection, supporting
|
|
98
|
+
chips/keycaps, skeletons and progress tracks consume inherited semantic roles.
|
|
99
|
+
On filled materials, `color.context.filled.*` supplies translucent neutral state
|
|
100
|
+
overlays: secondary actions use white 5% / 8% / 12% at rest / hover / press,
|
|
101
|
+
fields use 5%, and quiet borders use 8%. This keeps a secondary action secondary
|
|
102
|
+
on both a card and a floating panel. The canvas retains its established defaults.
|
|
103
|
+
Primary actions, content, focus and semantic feedback colors remain independent.
|
|
104
|
+
|
|
105
|
+
`color.surface.current` supplies the opaque material base for tinted feedback;
|
|
106
|
+
`surface.supporting`, `surface.muted`, `surface.avatar` and `field.readonly`
|
|
107
|
+
separate contextual fills from the absolute canvas color. Do not repurpose canvas
|
|
108
|
+
to recolor controls: it also supplies contrasting content and document/media wells.
|
|
109
|
+
|
|
110
|
+
Automatic owners require no extra Button/Input props. For an application-owned
|
|
111
|
+
material boundary, `data-flood-surface="base|filled|floating"` selects the neutral
|
|
112
|
+
control context. The attribute does not paint a background or implement a popup.
|
|
113
|
+
Choose the actual material and override `color.surface.current` on that same
|
|
114
|
+
scope if it differs from Flood's material. A transparent wrapper should not
|
|
115
|
+
declare another material context.
|
|
116
|
+
|
|
117
|
+
Customize contextual recipes using `--flood-sys-color-context-filled-*` and
|
|
118
|
+
`--flood-sys-color-context-base-*` at the root. A direct consumer role override
|
|
119
|
+
on the material owner can refine one scope; a canvas-only field override does
|
|
120
|
+
not silently replace all elevated recipes. Review both contexts when opting into
|
|
121
|
+
strong boundaries. The generated manifest is the complete list of roles.
|
|
122
|
+
|
|
123
|
+
Floating panels use an opaque fallback, with glass enabled only where supported.
|
|
124
|
+
`prefers-reduced-transparency: reduce` and `data-flood-transparency="reduced"`
|
|
125
|
+
on a FloodRoot or an owning subtree request opaque panels without backdrop blur.
|
|
126
|
+
Forced colors retain system backgrounds, boundaries and selection indicators.
|
|
127
|
+
Translucency is a visual recipe, not an accessibility guarantee: inspect the
|
|
128
|
+
composited background, content contrast and focus in the actual host.
|
|
129
|
+
|
|
130
|
+
### Inter typography
|
|
131
|
+
|
|
132
|
+
Size equivalents assume a 16px root for illustration. Flood does not set the
|
|
133
|
+
host's root font size. Sizes use rem, line heights use ratios and tracking uses
|
|
134
|
+
em. Font weights are 400/500. The React stylesheet bundles the Inter variable
|
|
135
|
+
normal/italic fonts and their SIL Open Font License; it loads locally from the installed package.
|
|
136
|
+
The token-only stylesheet does not load fonts: token-only consumers supply
|
|
137
|
+
their own font setup with Latin/Cyrillic coverage as needed. Fallback metrics
|
|
138
|
+
can differ.
|
|
139
|
+
|
|
140
|
+
| Role | Size / line height | Weight | Tracking |
|
|
141
|
+
| --- | --- | --- | --- |
|
|
142
|
+
| display | 88 / 98.56 | 500 | -.04em |
|
|
143
|
+
| lead | 22 / 31.9 | 400 | -.01em |
|
|
144
|
+
| large | 32 / 40 | 500 | -.02em |
|
|
145
|
+
| page | 24 / 32 | 500 | -.02em |
|
|
146
|
+
| section | 20 / 28 | 500 | -.015em |
|
|
147
|
+
| body | 16 / 24 | 400 | -.01em |
|
|
148
|
+
| compact | 14 / 20 | 400 | -.01em |
|
|
149
|
+
| label | 13 / 18 | 400 | -.01em |
|
|
150
|
+
| helper | 12 / 18 | 400 | -.01em |
|
|
151
|
+
| control | 14 / 20 | 500 | -.005em |
|
|
152
|
+
|
|
153
|
+
Control heights are 24/28/32/40/44/48/56px equivalents. Their icon sizes are
|
|
154
|
+
14/16/16/20/20/24/24px equivalents. These are minimum visual heights, not fixed
|
|
155
|
+
clipping boxes. Touch target size, neighboring targets, long translations and
|
|
156
|
+
increased text spacing require separate checks. Small controls are not ordinary
|
|
157
|
+
text-field defaults.
|
|
158
|
+
|
|
159
|
+
### Boundaries, focus and motion
|
|
160
|
+
|
|
161
|
+
Version 0.2.3 uses the quiet `color.field.border` (#383838), matching the
|
|
162
|
+
container-outline tone, for ordinary Input, Textarea, Select, unchecked choices,
|
|
163
|
+
Switch and outline Button borders. It is one uniform perimeter, with no extra
|
|
164
|
+
bottom edge or inset contour. The stronger `color.field.boundary` (#8a8a8a)
|
|
165
|
+
remains available for an explicit contrast requirement; it is not the default.
|
|
166
|
+
|
|
167
|
+
The quiet outline and field fill do not reach 3:1 against neighboring dark
|
|
168
|
+
surfaces. This visual profile therefore does not establish WCAG 1.4.11 compliance
|
|
169
|
+
for controls whose recognition depends on those signals. Preserve labels and
|
|
170
|
+
evaluate the complete host composition; use a stronger role when required.
|
|
171
|
+
Text contrast and APCA guidance remain separate from outline styling.
|
|
172
|
+
|
|
173
|
+
A host can opt into stronger fields without overriding the independent focus role:
|
|
174
|
+
|
|
175
|
+
```css
|
|
176
|
+
/* Import after the Flood stylesheet; apply this attribute to FloodRoot. */
|
|
177
|
+
.flood-root[data-control-contrast="strong"] {
|
|
178
|
+
--flood-sys-color-field-border: var(--flood-sys-color-field-boundary);
|
|
179
|
+
}
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
Error, selected and focus
|
|
183
|
+
states need semantic markup and a visible cue beyond color where applicable.
|
|
184
|
+
|
|
185
|
+
Focus uses `focus.width` 2px and `focus.offset` 0px. `color.focus.ring` currently
|
|
186
|
+
uses provisional pink #ff5ca8; it is configurable and is not a finalized brand
|
|
187
|
+
palette. It must remain visible when error or selected styles are present.
|
|
188
|
+
Color-pair tests cover supplied dark surfaces; these are not a whole-component
|
|
189
|
+
WCAG or APCA conformance claim. Validate text role, size and weight together.
|
|
190
|
+
|
|
191
|
+
For example, APCA `apca-w3` 0.1.9 gives white text on canvas Lc −106.77,
|
|
192
|
+
helper #ededed on canvas Lc −95.00 (overlay: −91.00), and subtle #b2b2b2 on
|
|
193
|
+
overlay Lc −55.54. These values do not certify the 12px/400 helper recipe:
|
|
194
|
+
that version's font lookup recommends approximately 15.5px at weight 400 for
|
|
195
|
+
Lc 95. Small helper text is a compact supporting role; provide readable main
|
|
196
|
+
instructions and validate the actual content, device and enlargement behavior.
|
|
197
|
+
Do not use subtle text or feedback accent colors for small required instructions
|
|
198
|
+
merely because a WCAG color-pair calculation passes.
|
|
199
|
+
|
|
200
|
+
Motion values are an initial interaction recipe: 100ms fast, 160ms normal,
|
|
201
|
+
0ms reduced, with state easing. Consumers must apply the reduced value under
|
|
202
|
+
`prefers-reduced-motion: reduce` and avoid relying on motion to convey state.
|
|
203
|
+
Layer values express local order only; they do not implement portals, trapping
|
|
204
|
+
focus, dismissal, scroll locking or an overlay stack.
|
|
205
|
+
|
|
206
|
+
## Override and scope
|
|
207
|
+
|
|
208
|
+
Override a public `sys` variable on its scope element, using inline styles or a
|
|
209
|
+
stylesheet loaded afterward. Aliases remain CSS `var()` references. Nested
|
|
210
|
+
scopes repeat both attributes so dependent aliases resolve against the nested
|
|
211
|
+
values rather than inheriting already computed aliases from the parent.
|
|
212
|
+
|
|
213
|
+
Arbitrary descendant overrides without a new scope are not supported. Portal
|
|
214
|
+
containers must explicitly receive the same scope attributes and overrides.
|
|
215
|
+
Changing an internal `ref` value is useful for diagnostics but not a stable API.
|
|
216
|
+
|
|
217
|
+
## Source and compiler profile
|
|
218
|
+
|
|
219
|
+
Only `packages/tokens/src/tokens.json` authors values. Its versioned Flood
|
|
220
|
+
envelope contains `legacy`, `sets.shared`, `sets.palette`, `sets.theme` and
|
|
221
|
+
`presets`. This envelope is not itself a DTCG Format document. Sets contain
|
|
222
|
+
nested tokens with explicit `$type`, `$value`, `$description` and `md.flood`
|
|
223
|
+
metadata. Build artifacts are generated and must not be edited.
|
|
224
|
+
|
|
225
|
+
The first compiler profile supports sRGB color, nonnegative px/rem dimension,
|
|
226
|
+
signed em dimension (for tracking),
|
|
227
|
+
ms/s duration, finite number, numeric fontWeight, fontFamily and cubicBezier.
|
|
228
|
+
Aliases refer to whole tokens using `{sys.color.content.default}` syntax.
|
|
229
|
+
Composite types, JSON Pointer references, group inheritance, density modifiers,
|
|
230
|
+
other color spaces and the full DTCG Resolver API are not supported; unsupported
|
|
231
|
+
input fails instead of being silently coerced. This is not a full DTCG
|
|
232
|
+
implementation or a claim of accessibility conformance.
|
|
233
|
+
|
|
234
|
+
Build rejects missing/cyclic references, mismatched types, overlapping sets,
|
|
235
|
+
invalid names and CSS-name collisions, disallowed layer dependencies,
|
|
236
|
+
cross-component aliases, and stable-to-experimental dependencies. All supplied
|
|
237
|
+
contexts must expose the same public role/type contract. Palette/reference
|
|
238
|
+
values are fixed; themes choose roles instead of changing reference values.
|
|
239
|
+
|
|
240
|
+
## Compatibility
|
|
241
|
+
|
|
242
|
+
Existing `@flood-md/tokens` JSON and `tokens.css` retain their shared/light/dark
|
|
243
|
+
contract and `--flood-*` names. Existing React controls outside `FloodRoot` keep
|
|
244
|
+
using those tokens; old custom overrides continue to apply there. Inside
|
|
245
|
+
`FloodRoot`, the dark foundation roles control the component recipe. Legacy
|
|
246
|
+
overrides do not automatically override separately scoped foundation roles.
|
|
247
|
+
|
|
248
|
+
Version 0.2.2 adds these exports without replacing an existing npm version.
|
|
249
|
+
Publication must be verified separately; source version numbers are not proof.
|
|
250
|
+
|
|
251
|
+
|
|
252
|
+
Version 0.2.5 adds twenty-five semantic roles, bringing the dark profile
|
|
253
|
+
to 193 roles. Existing role values remain unchanged:
|
|
254
|
+
|
|
255
|
+
- sys.color.accent.content and sys.color.loading.placeholder separate accent text
|
|
256
|
+
and loading fills from focus and action states.
|
|
257
|
+
- sys.color.indicator.track/fill/accent and sys.size.indicator.sm/md/lg control
|
|
258
|
+
bounded indicators without borrowing control or focus roles.
|
|
259
|
+
- sys.color.action.danger.content styles destructive actions independently from
|
|
260
|
+
validation messages and keyboard focus.
|
|
261
|
+
|
|
262
|
+
- sys.size.keycap.sm/md/lg provide independent relative heights for keyboard hints.
|
|
263
|
+
|
|
264
|
+
- sys.size.container.sm/md/lg and sys.size.grid.min-item supply relative layout bounds.
|
|
265
|
+
|
|
266
|
+
|
|
267
|
+
The 0.2.5 separates floating surfaces from modal surfaces.
|
|
268
|
+
The floating material uses nine of those new semantic roles; previous token
|
|
269
|
+
values remain intact. surface.floating is the opaque fallback;
|
|
270
|
+
surface.floating-translucent, border.floating, selection.floating, shadow.floating
|
|
271
|
+
and effect.floating blur/saturation/shadow-offset/shadow-blur define the floating
|
|
272
|
+
material. Select, Combobox, MultiSelect, Menu, Popover and Tooltip share it; Dialog
|
|
273
|
+
and Drawer retain surface.overlay. Backdrop filtering is progressive enhancement;
|
|
274
|
+
reduced transparency uses the opaque fill and forced colors use system colors.
|
|
275
|
+
Keep text opaque and evaluate it against the actual composited background.
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# Installation · 0.2.11
|
|
2
|
+
|
|
3
|
+
The commands below target version 0.2.11. Verify registry availability before installation; for local source evaluation, see the tarball instructions at the end of this guide.
|
|
4
|
+
|
|
5
|
+
Use Node.js 22.12 or newer and an existing npm-based React/Next.js project.
|
|
6
|
+
React 18.3/19 is supported; React 19 and Next.js App Router are integration targets.
|
|
7
|
+
|
|
8
|
+
## Connect once, import by name
|
|
9
|
+
|
|
10
|
+
The base set ships in one package. Set it up once for your project, then use
|
|
11
|
+
named imports such as `import { Button, Input } from "@flood-md/react"`.
|
|
12
|
+
There is no per-component `add` command or source-copy registry. You do not
|
|
13
|
+
repeat installation when you start using another component.
|
|
14
|
+
|
|
15
|
+
## Connect with the CLI
|
|
16
|
+
|
|
17
|
+
```sh
|
|
18
|
+
npx @flood-md/cli@0.2.11 init --dry-run
|
|
19
|
+
npx @flood-md/cli@0.2.11 init
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
The installer adds exact matching tokens, React and agent packages. It creates
|
|
23
|
+
`flood.json`, `flood/DESIGN.md` and `.agents/skills/flood-ui/SKILL.md`, preserves
|
|
24
|
+
host instructions and refuses existing files or linked destinations. It does
|
|
25
|
+
not modify application source. Import CSS once in the React entry or Next
|
|
26
|
+
`app/layout.tsx`, then wrap new UI in `FloodRoot`:
|
|
27
|
+
|
|
28
|
+
```tsx
|
|
29
|
+
import "@flood-md/react/styles.css";
|
|
30
|
+
import { Button, FloodRoot } from "@flood-md/react";
|
|
31
|
+
|
|
32
|
+
export function App() {
|
|
33
|
+
return <FloodRoot><Button>Start something</Button></FloodRoot>;
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Use a client component for callbacks, state or Field's function child. See
|
|
38
|
+
[components](components.md) and the [base inventory](base-components.md).
|
|
39
|
+
No Tailwind configuration or font CDN is needed. The foundations profile is dark
|
|
40
|
+
only; legacy theme behavior remains available outside `FloodRoot`.
|
|
41
|
+
|
|
42
|
+
```sh
|
|
43
|
+
npx @flood-md/cli@0.2.11 doctor
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Doctor checks package versions and guide presence, not stylesheet imports or
|
|
47
|
+
application behavior. If your agent does not discover the installed skill,
|
|
48
|
+
reference `flood/DESIGN.md` from its existing instructions.
|
|
49
|
+
|
|
50
|
+
## Manual package installation
|
|
51
|
+
|
|
52
|
+
```sh
|
|
53
|
+
npm install --save-exact @flood-md/tokens@0.2.11 @flood-md/react@0.2.11 @flood-md/agent@0.2.11
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Import the stylesheet and use `FloodRoot` as above. Manual installation does not
|
|
57
|
+
create the CLI's project configuration or copied instruction files; read the
|
|
58
|
+
matching agent package's guides directly or use CLI init in an unconfigured
|
|
59
|
+
project. All components ship together and are imported by name.
|
|
60
|
+
|
|
61
|
+
## Updates from 0.1.1
|
|
62
|
+
|
|
63
|
+
Upgrade tokens, React and agent together to the same exact version. Existing
|
|
64
|
+
controls outside `FloodRoot` retain their earlier theme behavior. Adopt the new
|
|
65
|
+
dark recipes explicitly by adding `FloodRoot`; move customization to scoped
|
|
66
|
+
`--flood-sys-*` roles instead of assuming old variables change the new profile.
|
|
67
|
+
|
|
68
|
+
Compare the new package's agent guides with customized local copies before
|
|
69
|
+
updating them. Update `flood.json` after a successful migration and run the
|
|
70
|
+
matching CLI doctor. Do not rerun init to overwrite existing instructions.
|
|
71
|
+
Run the host build/tests and browser checks after upgrading.
|
|
72
|
+
|
|
73
|
+
## Evaluate repository changes locally
|
|
74
|
+
|
|
75
|
+
For source development, run `npm ci` and `npm run build:packages`, then
|
|
76
|
+
`npm pack --workspace=@flood-md/tokens` (and likewise React/agent). Install the
|
|
77
|
+
three generated tarballs together using their local paths with
|
|
78
|
+
`npm install --save-exact`. This evaluates local source without implying that a
|
|
79
|
+
future version is already available from the registry.
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Interface content
|
|
2
|
+
|
|
3
|
+
Flood's interface-content workflow covers the information and wording in a UI:
|
|
4
|
+
labels, actions, hierarchy, hints, states and adaptation of reference content.
|
|
5
|
+
It is separate from typography sizing. Use it when introducing visible copy or
|
|
6
|
+
reviewing an existing interface; it does not authorize rewriting user documents.
|
|
7
|
+
|
|
8
|
+
## Start with the task
|
|
9
|
+
|
|
10
|
+
Identify the user, their current task and the state they are in. Give each text
|
|
11
|
+
element a purpose: identify, distinguish, guide, explain a relevant consequence,
|
|
12
|
+
report a real state or support recovery. Keep, rewrite, move or remove it based
|
|
13
|
+
on that purpose. A component's optional description prop is not a requirement to
|
|
14
|
+
write a description.
|
|
15
|
+
|
|
16
|
+
An invoice list can simply be titled “Invoices”. A category label, the same noun
|
|
17
|
+
in a heading and a sentence describing the obvious workflow need separate reasons
|
|
18
|
+
to remain. Necessary breadcrumbs, section headings and the printed document's
|
|
19
|
+
own title still have valid jobs; there is no universal maximum heading count.
|
|
20
|
+
|
|
21
|
+
During completion, review each supporting sentence in screen order and record
|
|
22
|
+
its new information. If it only narrates the obvious next action, leave the
|
|
23
|
+
optional slot empty. The optional @flood-md/agent/inspect browser observer can
|
|
24
|
+
inventory copy and geometry; it cannot judge whether a sentence belongs in the
|
|
25
|
+
product. See [rendered review](/agent/references/rendered-review.md).
|
|
26
|
+
|
|
27
|
+
## Concise content keeps necessary detail
|
|
28
|
+
|
|
29
|
+
Remove routine narration, decorative assurances and implementation facts that do
|
|
30
|
+
not affect the task. An ordinary preview does not need to announce its embedded
|
|
31
|
+
fonts. An export-format choice may need to explain selectable text. A field may
|
|
32
|
+
need a non-obvious unit or constraint. A destructive action may need a clear
|
|
33
|
+
consequence. Do not hide essential information just to reduce visible text.
|
|
34
|
+
|
|
35
|
+
Name actions by their actual result and preserve accessible names. An error
|
|
36
|
+
should support recovery; success must match a completed operation. Local
|
|
37
|
+
validation does not establish expert review. A PDF export is not a restorable
|
|
38
|
+
backup of editable records. Sample-data distinctions belong where they prevent
|
|
39
|
+
a real misunderstanding, rather than repeated throughout an established test host.
|
|
40
|
+
|
|
41
|
+
## Learn from references in context
|
|
42
|
+
|
|
43
|
+
Transfer the question a pattern answers, then use the host's actual objects,
|
|
44
|
+
actions and states. A bill-processing product's approval or payment stages do
|
|
45
|
+
not become capabilities of an invoice generator because their layout is useful.
|
|
46
|
+
Its promotional language is not a vocabulary for the host's working interface.
|
|
47
|
+
|
|
48
|
+
See the full [interface content skill](/agent/references/flood-interface-content/SKILL.md)
|
|
49
|
+
and [decision examples](/agent/references/interface-content-examples.md). The
|
|
50
|
+
matching installed CLI can discover and read workflow:interface-content. This
|
|
51
|
+
additive guidance is part of 0.2.11; installed projects
|
|
52
|
+
keep their current versions and customized guide copies.
|
|
53
|
+
|
|
54
|
+
## Review the result
|
|
55
|
+
|
|
56
|
+
Read the composed screen in task order. Check visible and accessible copy,
|
|
57
|
+
repeated meaning across regions and the state after an action. Remove empty
|
|
58
|
+
wrappers or reserved gaps when a subtitle or banner is removed. Explain important
|
|
59
|
+
editorial decisions in the review, rather than adding those explanations to the UI.
|
|
60
|
+
Phrase scans and word counts cannot establish content quality or agent compliance.
|
|
61
|
+
|
|
62
|
+
Further reading: [Fluent content design](https://fluent2.microsoft.design/content-design)
|
|
63
|
+
relates content to user intent and timing; [DWP hint guidance](https://design-system.dwp.gov.uk/guidance/hint-text)
|
|
64
|
+
asks whether a hint is needed; [GOV.UK error messages](https://design-system.service.gov.uk/components/error-message/)
|
|
65
|
+
connect failure to recovery. These inform the workflow; their service-specific
|
|
66
|
+
wording and punctuation conventions are not universal Flood rules.
|
|
67
|
+
|
|
68
|
+
## Prototype context
|
|
69
|
+
|
|
70
|
+
An explicitly requested local prototype does not require a permanent Demo or
|
|
71
|
+
Prototype badge in the shell. Keep provenance and implementation limits in its
|
|
72
|
+
README/test handoff. A visible distinction still belongs beside an affected
|
|
73
|
+
record, choice or action when it changes interpretation, such as sample records
|
|
74
|
+
mixed with real data or an existing simulation/live choice. Preserve accurate
|
|
75
|
+
action and media names; removing a badge does not imply real connectivity or
|
|
76
|
+
delivery. Draft, Pending and Offline remain meaningful record states.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Flood documentation
|
|
2
|
+
|
|
3
|
+
Flood provides original React components, semantic CSS tokens and versioned
|
|
4
|
+
instructions for coding agents. Start with the guide for your task:
|
|
5
|
+
|
|
6
|
+
The website renders these guides at [/docs](https://flood.md/docs) and provides
|
|
7
|
+
live examples at [/components](https://flood.md/components). Edit the Markdown
|
|
8
|
+
here and review changes through a pull request; the next website build includes
|
|
9
|
+
them without a separate content service.
|
|
10
|
+
|
|
11
|
+
| Guide | What it covers |
|
|
12
|
+
| --- | --- |
|
|
13
|
+
| [Skills](skills.md) | Task-focused composition and verification workflows |
|
|
14
|
+
| [Interface content](interface-content.md) | Editorial decisions, purposeful copy and contextual reference adaptation |
|
|
15
|
+
| [Installation](installation.md) | React, Next.js, CLI setup and manual installation |
|
|
16
|
+
| [Project UI](project-ui.md) | Optional semantic @/ui/button imports in your application |
|
|
17
|
+
| [Layout](layout.md) | Intrinsic actions, responsive forms, choice sizing, gaps and hierarchy |
|
|
18
|
+
| [Components](components.md) | Available controls, props and form composition |
|
|
19
|
+
| [Base component inventory](base-components.md) | Available primitives and controls in the base release |
|
|
20
|
+
| [Customization](theming.md) | Scoped dark foundations overrides and legacy theme boundaries |
|
|
21
|
+
| [Foundations](foundations.md) | Typed semantic tokens and neutral dark profile for 0.2.11 |
|
|
22
|
+
| [Agents](agents.md) | Installing and using the matching agent instructions |
|
|
23
|
+
| [Agent knowledge](agent-knowledge.md) | Versioned discovery, selected reads and preserved project guides |
|
|
24
|
+
| [FAQ](faq.md) | Compatibility, customization, updates and common problems |
|
|
25
|
+
| [Command palette](recipes/command-palette.md) | Compose Dialog and CommandList with host-owned actions |
|
|
26
|
+
| [Table bulk actions](recipes/table-bulk-actions.md) | Controlled cross-page selection and local confirmation |
|
|
27
|
+
| [Grouped form](recipes/grouped-form.md) | Shared tracks, semantic groups and optional fields |
|
|
28
|
+
| [Record management](recipes/record-management.md) | Search, filter and edit records without losing the working list |
|
|
29
|
+
| [Settings workspace](recipes/settings-workspace.md) | Group settings, validate a draft and save changes |
|
|
30
|
+
|
|
31
|
+
## Versions
|
|
32
|
+
|
|
33
|
+
This branch documents **version 0.2.11**; source availability does
|
|
34
|
+
not establish npm publication. Use matching exact versions of the Flood packages. Documentation on `main` can describe later work; the
|
|
35
|
+
[release tags](https://github.com/tillwithered/flood.md/releases) preserve the
|
|
36
|
+
source and docs for each release. Installed `flood/DESIGN.md` takes precedence
|
|
37
|
+
over website guidance when working in an existing project.
|
|
38
|
+
|
|
39
|
+
## Contributing
|
|
40
|
+
|
|
41
|
+
See [CONTRIBUTING.md](../CONTRIBUTING.md), [architecture](architecture.md),
|
|
42
|
+
[releases](releases.md) and the [security policy](../SECURITY.md).
|