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 @@