+
{{ filtersLength }}
- {{ i18n.baseText('forms.resourceFiltersDropdown.filters') }}
+
+ {{ i18n.baseText('forms.resourceFiltersDropdown.filters') }}
+
@@ -139,6 +145,25 @@ onBeforeMount(async () => {
.filter-button {
height: 40px;
align-items: center;
+
+ .filter-button-count {
+ margin-right: var(--spacing-4xs);
+
+ @include mixins.breakpoint('xs-only') {
+ margin-right: 0;
+ }
+ }
+
+ @media screen and (max-width: 480px) {
+ .filter-button-text {
+ text-indent: -10000px;
+ }
+
+ // Remove icon margin when the "Filters" text is hidden
+ :global(span + span) {
+ margin: 0;
+ }
+ }
}
.filters-dropdown {
diff --git a/packages/editor-ui/src/components/layouts/PageViewLayout.vue b/packages/editor-ui/src/components/layouts/PageViewLayout.vue
index 419a41663f..6ab16365c9 100644
--- a/packages/editor-ui/src/components/layouts/PageViewLayout.vue
+++ b/packages/editor-ui/src/components/layouts/PageViewLayout.vue
@@ -17,6 +17,10 @@
box-sizing: border-box;
align-content: start;
padding: var(--spacing-l) var(--spacing-2xl) 0;
+
+ @include mixins.breakpoint('sm-and-down') {
+ padding: var(--spacing-s) var(--spacing-s) 0;
+ }
}
.content {
diff --git a/packages/editor-ui/src/components/layouts/ResourcesListLayout.vue b/packages/editor-ui/src/components/layouts/ResourcesListLayout.vue
index 40f1d1e07c..33e165a650 100644
--- a/packages/editor-ui/src/components/layouts/ResourcesListLayout.vue
+++ b/packages/editor-ui/src/components/layouts/ResourcesListLayout.vue
@@ -475,6 +475,7 @@ onMounted(async () => {
flex-direction: row;
align-items: center;
justify-content: space-between;
+ width: 100%;
}
.filters {
@@ -483,10 +484,24 @@ onMounted(async () => {
grid-auto-columns: max-content;
gap: var(--spacing-2xs);
align-items: center;
+ width: 100%;
+
+ @include mixins.breakpoint('xs-only') {
+ grid-template-columns: 1fr auto;
+ grid-auto-flow: row;
+
+ > *:last-child {
+ grid-column: auto;
+ }
+ }
}
.search {
max-width: 240px;
+
+ @include mixins.breakpoint('sm-and-down') {
+ max-width: 100%;
+ }
}
.listWrapper {
@@ -497,6 +512,10 @@ onMounted(async () => {
.sort-and-filter {
white-space: nowrap;
+
+ @include mixins.breakpoint('sm-and-down') {
+ width: 100%;
+ }
}
.datatable {
diff --git a/packages/editor-ui/src/styles/plugins/_vueflow.scss b/packages/editor-ui/src/styles/plugins/_vueflow.scss
index 49aad6a076..7d8a7e84ae 100644
--- a/packages/editor-ui/src/styles/plugins/_vueflow.scss
+++ b/packages/editor-ui/src/styles/plugins/_vueflow.scss
@@ -56,6 +56,10 @@
fill: var(--color-foreground-dark);
opacity: 0.2;
}
+
+ @include mixins.breakpoint('xs-only') {
+ display: none;
+ }
}
/**
@@ -100,3 +104,20 @@
.vue-flow__edge-label.selected {
z-index: 1 !important;
}
+
+/**
+ * Controls
+ */
+
+.vue-flow__controls {
+ margin: var(--spacing-s);
+
+ @include mixins.breakpoint('xs-only') {
+ max-width: calc(100% - 3 * var(--spacing-s) - var(--spacing-2xs));
+ overflow: auto;
+ margin-left: 0;
+ margin-right: 0;
+ padding-left: var(--spacing-s);
+ padding-right: var(--spacing-s);
+ }
+}
diff --git a/packages/editor-ui/src/views/NodeView.v2.vue b/packages/editor-ui/src/views/NodeView.v2.vue
index 886b4dbc70..82f0bc29a9 100644
--- a/packages/editor-ui/src/views/NodeView.v2.vue
+++ b/packages/editor-ui/src/views/NodeView.v2.vue
@@ -1772,11 +1772,13 @@ onBeforeUnmount(() => {
align-items: center;
left: 50%;
transform: translateX(-50%);
- bottom: var(--spacing-l);
+ bottom: var(--spacing-s);
width: auto;
- @media (max-width: $breakpoint-2xs) {
- bottom: 150px;
+ @include mixins.breakpoint('sm-only') {
+ left: auto;
+ right: var(--spacing-s);
+ transform: none;
}
button {
@@ -1788,6 +1790,17 @@ onBeforeUnmount(() => {
&:first-child {
margin: 0;
}
+
+ @include mixins.breakpoint('xs-only') {
+ text-indent: -10000px;
+ width: 42px;
+ height: 42px;
+ padding: 0;
+
+ span {
+ margin: 0;
+ }
+ }
}
}
diff --git a/packages/editor-ui/vite.config.mts b/packages/editor-ui/vite.config.mts
index e939215aa6..e4266a2d23 100644
--- a/packages/editor-ui/vite.config.mts
+++ b/packages/editor-ui/vite.config.mts
@@ -85,7 +85,11 @@ export default mergeConfig(
css: {
preprocessorOptions: {
scss: {
- additionalData: '\n@use "@/n8n-theme-variables.scss" as *;\n',
+ additionalData: [
+ '',
+ '@use "@/n8n-theme-variables.scss" as *;',
+ '@use "n8n-design-system/css/mixins" as mixins;',
+ ].join('\n'),
},
},
},