with one click
spacing-grid-rhythm
Spacing tokens, grid rhythm, and layout measurement rules
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Spacing tokens, grid rhythm, and layout measurement rules
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Card design language, controls, and interaction composition
Command binding and behavior-driven interaction patterns
Custom composite control design and reusable control packaging
Dialog structure and button layout patterns for WPF UI windows
View directory classification and architecture guidance
Global feedback, snackbar, and tray icon interaction patterns
| name | spacing-grid-rhythm |
| description | Spacing tokens, grid rhythm, and layout measurement rules |
目标:建立可量化的视觉节奏,让页面、卡片、控件在扩展后仍保持统一。
关联文档:
03-page-information-architecture.md04-card-design-system.md建议建立以下 token(可放入样式资源):
PageMargin = 42,16,42,12CardMarginBottom = 12CardInnerPadding = 16TitleToDescription = 0~4PageTitleToFirstGroup = 8~12ActionRightInset = 24(开关/按钮)InputRightInset = 36(输入框/下拉)SectionGap = 12~16推荐 2 行 2 列:
*(标题 + 描述)Auto(操作控件)适用场景:开关、按钮、下拉、输入框。
推荐 2 行 3 列:
适用场景:开关 + 重置、开关 + 更多。
CardExpander 内容区每段独立 Grid Margin="16"Separator Margin="-18,0" 保持边缘对齐统一建议(可按场景微调):
ToggleSwitch: 放在 Grid.RowSpan="2" 垂直居中ComboBox: Width=180~220TextBox: MinWidth>=9032~34)对齐规则:
页面节奏应遵循以下链路:
任何一个环节失衡,都会产生视觉噪音。
StackPanel 叠所有内容,导致复杂布局错位。Grid,明确列宽。ActionRightInset 与 InputRightInset。TitleToDescription 范围。PageMargin。Margin="0,0,0,12"。Grid Margin="16"。<StackPanel Margin="42,16,42,12">
<!-- 组标题 -->
<ui:TextBlock Margin="0,0,0,8" FontTypography="BodyStrong" Text="常规设置" />
<!-- 标准卡片: 2行2列 -->
<ui:CardControl Margin="0,0,0,12" Icon="{ui:SymbolIcon Settings24}">
<ui:CardControl.Header>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<ui:TextBlock Grid.Row="0" Grid.Column="0" FontTypography="Body" Text="日志级别" />
<ui:TextBlock Grid.Row="1" Grid.Column="0"
Foreground="{ui:ThemeResource TextFillColorTertiaryBrush}"
Text="Debug 模式会输出更多细节" />
<ComboBox Grid.Row="0" Grid.RowSpan="2" Grid.Column="1"
Width="180"
Margin="0,0,36,0" />
</Grid>
</ui:CardControl.Header>
</ui:CardControl>
<!-- 混合操作卡片: 2行3列 -->
<ui:CardControl Margin="0,0,0,12" Icon="{ui:SymbolIcon WindowConsole20}">
<ui:CardControl.Header>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<ui:TextBlock Grid.Row="0" Grid.Column="0" FontTypography="Body" Text="显示浮层" />
<ui:TextBlock Grid.Row="1" Grid.Column="0"
Foreground="{ui:ThemeResource TextFillColorTertiaryBrush}"
Text="开启后在界面显示状态信息" />
<ui:ToggleSwitch Grid.Row="0" Grid.RowSpan="2" Grid.Column="1" Margin="0,0,12,0" />
<ui:Button Grid.Row="0" Grid.RowSpan="2" Grid.Column="2" Margin="0,0,24,0" Content="重置位置" />
</Grid>
</ui:CardControl.Header>
</ui:CardControl>
</StackPanel>