diff --git a/CHANGELOG.md b/CHANGELOG.md
index ae014662e..a4be166a1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -25,6 +25,7 @@
### Changed
+- Group sizing and auto-layout controls into one contextual Design panel section, and use Figma’s current Layout guide terminology.
- Redesign the editor chrome and Design panel with denser aligned controls, clearer selection and section states, improved menus and overlays, consistent light/dark theming, and better keyboard and screen-reader behavior.
- Scale the Layers panel to documents with thousands of nodes through virtualized rows, faster incremental updates, stable expansion, range selection, and scroll-to-selection.
- Resolve fonts before text appears, with language-aware CJK and Arabic fallback, character-specific remote subsets, and more reliable rendering as fonts load.
diff --git a/packages/vue/src/i18n/locales/de/panels.json b/packages/vue/src/i18n/locales/de/panels.json
index f4f5d4897..b2fa93952 100644
--- a/packages/vue/src/i18n/locales/de/panels.json
+++ b/packages/vue/src/i18n/locales/de/panels.json
@@ -131,9 +131,9 @@
"layoutHorizontal": "Horizontales Layout",
"layoutVertical": "Vertikales Layout",
"layoutGrid": "Rasterlayout",
- "layoutGrids": "Layout-Raster",
- "addLayoutGrid": "Layout-Raster hinzufügen",
- "removeLayoutGrid": "Layout-Raster entfernen",
+ "layoutGrids": "Layout-Hilfslinien",
+ "addLayoutGrid": "Layout-Hilfslinie hinzufügen",
+ "removeLayoutGrid": "Layout-Hilfslinie entfernen",
"gridGrid": "Raster",
"gridColumns": "Spalten",
"gridRows": "Zeilen",
diff --git a/packages/vue/src/i18n/locales/es/panels.json b/packages/vue/src/i18n/locales/es/panels.json
index 0f4a4da43..d61dbd5ec 100644
--- a/packages/vue/src/i18n/locales/es/panels.json
+++ b/packages/vue/src/i18n/locales/es/panels.json
@@ -145,9 +145,9 @@
"layoutHorizontal": "Diseño horizontal",
"layoutVertical": "Diseño vertical",
"layoutGrid": "Diseño de cuadrícula",
- "layoutGrids": "Cuadrículas de diseño",
- "addLayoutGrid": "Añadir cuadrícula de diseño",
- "removeLayoutGrid": "Eliminar cuadrícula de diseño",
+ "layoutGrids": "Guías de diseño",
+ "addLayoutGrid": "Añadir guía de diseño",
+ "removeLayoutGrid": "Eliminar guía de diseño",
"gridGrid": "Cuadrícula",
"gridColumns": "Columnas",
"gridRows": "Filas",
diff --git a/packages/vue/src/i18n/locales/fr/panels.json b/packages/vue/src/i18n/locales/fr/panels.json
index 279a041ba..63d8eab7c 100644
--- a/packages/vue/src/i18n/locales/fr/panels.json
+++ b/packages/vue/src/i18n/locales/fr/panels.json
@@ -131,9 +131,9 @@
"layoutHorizontal": "Disposition horizontale",
"layoutVertical": "Disposition verticale",
"layoutGrid": "Disposition en grille",
- "layoutGrids": "Grilles de mise en page",
- "addLayoutGrid": "Ajouter une grille de mise en page",
- "removeLayoutGrid": "Supprimer la grille de mise en page",
+ "layoutGrids": "Repères de mise en page",
+ "addLayoutGrid": "Ajouter un repère de mise en page",
+ "removeLayoutGrid": "Supprimer le repère de mise en page",
"gridGrid": "Grille",
"gridColumns": "Colonnes",
"gridRows": "Rangées",
diff --git a/packages/vue/src/i18n/locales/it/panels.json b/packages/vue/src/i18n/locales/it/panels.json
index b5e90139f..78b7d9fc9 100644
--- a/packages/vue/src/i18n/locales/it/panels.json
+++ b/packages/vue/src/i18n/locales/it/panels.json
@@ -131,9 +131,9 @@
"layoutHorizontal": "Layout orizzontale",
"layoutVertical": "Layout verticale",
"layoutGrid": "Layout a griglia",
- "layoutGrids": "Griglie di layout",
- "addLayoutGrid": "Aggiungi griglia di layout",
- "removeLayoutGrid": "Rimuovi griglia di layout",
+ "layoutGrids": "Guide di layout",
+ "addLayoutGrid": "Aggiungi guida di layout",
+ "removeLayoutGrid": "Rimuovi guida di layout",
"gridGrid": "Griglia",
"gridColumns": "Colonne",
"gridRows": "Righe",
diff --git a/packages/vue/src/i18n/locales/ja/panels.json b/packages/vue/src/i18n/locales/ja/panels.json
index b7b6232a8..78c3e235d 100644
--- a/packages/vue/src/i18n/locales/ja/panels.json
+++ b/packages/vue/src/i18n/locales/ja/panels.json
@@ -145,9 +145,9 @@
"layoutHorizontal": "横方向レイアウト",
"layoutVertical": "縦方向レイアウト",
"layoutGrid": "グリッドレイアウト",
- "layoutGrids": "レイアウトグリッド",
- "addLayoutGrid": "レイアウトグリッドを追加",
- "removeLayoutGrid": "レイアウトグリッドを削除",
+ "layoutGrids": "レイアウトガイド",
+ "addLayoutGrid": "レイアウトガイドを追加",
+ "removeLayoutGrid": "レイアウトガイドを削除",
"gridGrid": "グリッド",
"gridColumns": "列",
"gridRows": "行",
diff --git a/packages/vue/src/i18n/locales/pl/panels.json b/packages/vue/src/i18n/locales/pl/panels.json
index f304a15b9..89276ba13 100644
--- a/packages/vue/src/i18n/locales/pl/panels.json
+++ b/packages/vue/src/i18n/locales/pl/panels.json
@@ -131,9 +131,9 @@
"layoutHorizontal": "Układ poziomy",
"layoutVertical": "Układ pionowy",
"layoutGrid": "Układ siatki",
- "layoutGrids": "Siatki układu",
- "addLayoutGrid": "Dodaj siatkę układu",
- "removeLayoutGrid": "Usuń siatkę układu",
+ "layoutGrids": "Prowadnice układu",
+ "addLayoutGrid": "Dodaj prowadnicę układu",
+ "removeLayoutGrid": "Usuń prowadnicę układu",
"gridGrid": "Siatka",
"gridColumns": "Kolumny",
"gridRows": "Wiersze",
diff --git a/packages/vue/src/i18n/locales/ru/panels.json b/packages/vue/src/i18n/locales/ru/panels.json
index dbb63f1d8..03e97df19 100644
--- a/packages/vue/src/i18n/locales/ru/panels.json
+++ b/packages/vue/src/i18n/locales/ru/panels.json
@@ -131,9 +131,9 @@
"layoutHorizontal": "Горизонтальная раскладка",
"layoutVertical": "Вертикальная раскладка",
"layoutGrid": "Сетка",
- "layoutGrids": "Сетки макета",
- "addLayoutGrid": "Добавить сетку макета",
- "removeLayoutGrid": "Удалить сетку макета",
+ "layoutGrids": "Направляющие макета",
+ "addLayoutGrid": "Добавить направляющую макета",
+ "removeLayoutGrid": "Удалить направляющую макета",
"gridGrid": "Сетка",
"gridColumns": "Столбцы",
"gridRows": "Строки",
diff --git a/packages/vue/src/i18n/locales/zh-cn/panels.json b/packages/vue/src/i18n/locales/zh-cn/panels.json
index 4fc301825..9d937bcd1 100644
--- a/packages/vue/src/i18n/locales/zh-cn/panels.json
+++ b/packages/vue/src/i18n/locales/zh-cn/panels.json
@@ -131,9 +131,9 @@
"layoutHorizontal": "水平布局",
"layoutVertical": "垂直布局",
"layoutGrid": "网格布局",
- "layoutGrids": "布局网格",
- "addLayoutGrid": "添加布局网格",
- "removeLayoutGrid": "移除布局网格",
+ "layoutGrids": "布局参考线",
+ "addLayoutGrid": "添加布局参考线",
+ "removeLayoutGrid": "移除布局参考线",
"gridGrid": "网格",
"gridColumns": "列",
"gridRows": "行",
diff --git a/packages/vue/src/i18n/messages/panels.ts b/packages/vue/src/i18n/messages/panels.ts
index 1ed49b6d6..2aa8759c3 100644
--- a/packages/vue/src/i18n/messages/panels.ts
+++ b/packages/vue/src/i18n/messages/panels.ts
@@ -266,9 +266,9 @@ export const panelMessageDefaults = {
resizeAutoWidth: 'Auto width',
resizeAutoHeight: 'Auto height',
resizeFixed: 'Fixed size',
- layoutGrids: 'Layout grid',
- addLayoutGrid: 'Add layout grid',
- removeLayoutGrid: 'Remove layout grid',
+ layoutGrids: 'Layout guide',
+ addLayoutGrid: 'Add layout guide',
+ removeLayoutGrid: 'Remove layout guide',
gridColumns: 'Columns',
gridRows: 'Rows',
gridGrid: 'Grid',
diff --git a/src/components/DesignPanel.vue b/src/components/DesignPanel.vue
index 0d6d8028f..083d53e53 100644
--- a/src/components/DesignPanel.vue
+++ b/src/components/DesignPanel.vue
@@ -13,6 +13,7 @@ import AppearanceSection from './properties/AppearanceSection.vue'
import EffectsSection from './properties/EffectsSection.vue'
import ExportSection from './properties/ExportSection.vue'
import FillSection from './properties/FillSection.vue'
+import LayoutGridSection from './properties/LayoutSection/LayoutGridSection.vue'
import LayoutSection from './properties/LayoutSection/LayoutSection.vue'
import MaskSection from './properties/MaskSection.vue'
import PageSection from './properties/PageSection.vue'
@@ -39,6 +40,10 @@ const isComponentType = computed(() => {
return type ? COMPONENT_TYPES.has(type) : false
})
const selectedIcon = computed(() => (node.value ? nodeIcon(node.value) : undefined))
+const supportsLayoutGuides = computed(() => {
+ const type = node.value?.type
+ return type === 'FRAME' || type === 'COMPONENT' || type === 'COMPONENT_SET' || type === 'INSTANCE'
+})
const { panels } = useI18n()
@@ -131,6 +136,7 @@ const { panels } = useI18n()
+
diff --git a/src/components/properties/LayoutSection/LayoutGridSection.vue b/src/components/properties/LayoutSection/LayoutGridSection.vue
index 93d1b99ba..b7fa841ee 100644
--- a/src/components/properties/LayoutSection/LayoutGridSection.vue
+++ b/src/components/properties/LayoutSection/LayoutGridSection.vue
@@ -1,6 +1,6 @@