-
Notifications
You must be signed in to change notification settings - Fork 0
Changelog
All notable changes to DesignFoundation are documented here. The format follows Keep a Changelog and the project follows Semantic Versioning.
This patch rounds out the text input story with a proper multiline field, fills a gap in the type scale, and ships a handful of navigation and accessibility improvements that had been accumulating.
-
DFTextArea— multiline text input styled to matchDFTextFieldend-to-end: same label, placeholder, focus border, validation state, and disabled appearance.minLines/maxLinesbounds the visible height and the editor scrolls when content overflows. Closes the last gap in the forms input set. -
DFTextScale.labelLarge— new scale step between.headlineand.label, rendered as.calloutsemibold. Use it for card section headers, list item titles, and any spot where.headlinefeels too heavy but.labeldoesn't carry enough weight. -
DFNavigationBarleading + trailing overload — modifier now accepts both a leading and a trailing content builder in a single call. -
DFTabItem.badge— supports.count(Int)and.dotvariants for surfacing unread counts and presence indicators on tab items. -
DFSidebarItem.badge— supports.count(Int),.dot, and.text(String)variants. -
DFTooltipplacementparameter — accepts aDFTooltipPlacementvalue (.top,.bottom,.leading,.trailing) to control which side the bubble extends from.
-
DFTypographyTokens—labelLargetoken added with a matching default value so the new scale step is available wherever token access is used. -
CLAUDE.md component reference —
DFTextAreaadded to the Text Fields section with its full call-site signature and available parameters.
-
DFCard— press animation now suppresses correctly whenaccessibilityReduceMotionis enabled. -
DFProgressBar—.circularstyle centers properly inHStacklayouts. -
DFSkeleton— shimmer gradient no longer produces visual artifacts on ProMotion displays at 120 Hz.
This release ships the forms and data grid systems, closes the gap on table selection, and adds comprehensive AI agent context files so large-language-model tools can generate idiomatic DesignFoundation code without extra prompting.
Data Components
-
DFDataTable— sortable, selectable table with single and multi-row selection modes and macOS keyboard navigation -
DFDataGrid— editable, paginated, sortable grid withDFDataGridColumn(includingvalidatorandeditorbuilders) andDFDataGridLargeDatasetStrategy(.pagination(pageSize:)/.virtualScrolling/.none) -
DFDataGridDataSourceprotocol for async data loading
Forms and Validation
-
DFFormState—@Observablemulti-field form coordinator withregister(fieldId:validators:),binding(for:),state(for:),validate(),touchAll(),reset(), andisValid -
DFValidatedTextField— convenience wrapper connecting a field to aDFFormStateregistration -
DFFieldValidatorprotocol — composable,Sendablevalidation building block - Built-in validators:
DFRequiredValidator,DFEmailValidator,DFMinLengthValidator,DFMaxLengthValidator,DFRegexValidator
AI Agent Guidance
-
CLAUDE.md— component reference and behavioral rules for Claude Code and other AI agents operating in projects that depend on DesignFoundation -
AGENTS.md— equivalent guidance for OpenAI Codex and compatible runtimes
-
DFSecureFieldreveal toggle not respectingisEnabledenvironment value -
DFPicker.segmentedstyle not applyingtheme.colors.primarytint on macOS 15 -
DFFormStatevalidate()not running validators for fields with empty initial values
- Semantic text styles on
DFText:.display,.title,.headline,.body,.label,.caption -
DFTextStylenow exposes.lineSpacingand.trackingin addition to.font -
DFTypographyTokensconstructor accepts customDFTextStylevalues per scale level -
.dfTextStyle(_:)cascade modifier — apply to a container to style all childDFTextinstances
-
theme.colors.surfaceElevatedresolving to wrong adaptive color on macOS 15 in dark mode -
DFDivider.labeledstyle label text truncating on narrow layouts -
DFSkeletongradient bounds calculation off-by-one on non-3x displays
Initial public release.
-
DFTheme— central theme value type with seven token namespaces -
DFThemePreset— paired light/darkDFThemewith.dfThemePreset(_:)modifier -
DFColorTokens(19 semantic color properties) -
DFSpacingTokens(xs / sm / md / lg / xl / xxl) -
DFRadiusTokens(none / sm / md / lg / full) -
DFTypographyTokens(display / title / headline / body / label / caption) -
DFAnimationTokens(fast / default / slow) -
DFShadowTokens(none / sm / md / lg) -
DFComponentTokenswith per-component overrides for button, text field, card, avatar, badge, icon - Four built-in presets:
.slate,.aurora,.copper,.sage -
DFPlatformContextandDFPlatformVariantfor internal cross-platform adaptation -
Buttons:
DFButton—.filled,.outlined,.ghost,.tinted,.glass;DFButtonRole;DFButtonStyleprotocol -
Inputs:
DFTextField,DFSecureField,DFToggle,DFSlider,DFPicker,DFDatePicker,DFCheckbox— each with style protocols and.glassvariants -
Validation:
DFValidationStateenum -
Layout:
DFCard—.elevated,.outlined,.filled,.glass;DFCardStyleprotocol -
Primitives:
DFBadge,DFAvatar,DFIcon,DFText,DFDivider— each with style protocols -
Lists:
DFList,DFListRowwith accessories (.navigation,.checkmark,.toggle,.badge,.custom) -
Tables:
DFTablewithDFTableColumn, sort support, andDFColumnWidth -
Loading:
DFProgressBar,DFSkeleton -
Navigation:
DFSidebar,DFTabBar,dfNavigationBarmodifier — all cross-platform, no#if os()required -
Overlays:
DFModal,DFSheet,DFPopover,DFTooltip -
Feedback:
DFAlert,DFAlertAction,DFAlertActionRole;DFToast,DFToastQueue,DFToastMessage,DFToastSeverity - Swift 6 strict concurrency — all public types conform to
Sendable
Beta milestone: navigation components stabilized.
-
DFSidebarwithDFSidebarItem,DFSidebarSection, and three style variants -
DFTabBarwithDFTabItemand three style variants -
dfNavigationBarview modifier with display modes and style variants -
DFPlatformContextinjected alongsideDFThemeby.dfTheme(_:)
-
DFModalnot presenting on macOS when called from a toolbar button -
DFSheetdetent.mediumovershooting target height on devices with notch
Beta milestone: overlay and feedback components added.
-
DFModal,DFSheet,DFPopover,DFTooltip -
DFAlertwithDFAlertConfiguration,DFAlertAction,DFAlertActionRole -
DFToast,DFToastQueue,DFToastMessage,DFToastSeverity
Beta milestone: list and data-display components added.
-
DFListwith optional delete and reorder support -
DFListRowwith all accessory types -
DFTableandDFTableColumn -
DFProgressBarwith linear and circular styles -
DFSkeletonwith four shape variants and shimmer animation
Beta milestone: primitive components added.
-
DFBadge— numeric, text, and dot variants with four styles -
DFAvatar— initials fallback, URL image, presence badge -
DFIcon— SF Symbol and custom image with five sizes -
DFText— six semantic text styles -
DFDivider— horizontal, vertical, and labeled variants
Beta milestone: layout component and all input controls added.
-
DFCardwith press animation and four style variants -
DFTextField,DFSecureField,DFValidationState -
DFToggle,DFSlider,DFPicker,DFDatePicker,DFCheckbox
Alpha release: theming system and DFButton.
-
DFTheme,DFThemePreset,.dfTheme(_:),.dfThemePreset(_:) - All seven token namespaces
-
.slate,.aurora,.copper,.sagepresets -
DFButtonwith.filled,.outlined,.ghoststyles
For migration guides between major versions, see the Releases page.