diff --git a/libs/vault/src/components/new-cipher-menu/new-cipher-menu.component.html b/libs/vault/src/components/new-cipher-menu/new-cipher-menu.component.html
index 268f5b912d1..d816b69bc58 100644
--- a/libs/vault/src/components/new-cipher-menu/new-cipher-menu.component.html
+++ b/libs/vault/src/components/new-cipher-menu/new-cipher-menu.component.html
@@ -4,12 +4,13 @@
bitButton
buttonType="primary"
type="button"
- [bitMenuTriggerFor]="addOptions"
+ [bitMenuTriggerFor]="isOnlyCollectionCreation() ? null : addOptions"
+ (click)="handleButtonClick()"
id="newItemDropdown"
- [appA11yTitle]="'new' | i18n"
+ [appA11yTitle]="getButtonLabel() | i18n"
>
- {{ "new" | i18n }}
+ {{ getButtonLabel() | i18n }}
@for (item of cipherMenuItems$ | async; track item.type) {
diff --git a/libs/vault/src/components/new-cipher-menu/new-cipher-menu.component.ts b/libs/vault/src/components/new-cipher-menu/new-cipher-menu.component.ts
index a8310255bf2..1a592809691 100644
--- a/libs/vault/src/components/new-cipher-menu/new-cipher-menu.component.ts
+++ b/libs/vault/src/components/new-cipher-menu/new-cipher-menu.component.ts
@@ -58,4 +58,40 @@ export class NewCipherMenuComponent {
}),
shareReplay({ bufferSize: 1, refCount: true }),
);
+
+ /**
+ * Returns the appropriate button label based on what can be created.
+ * If only collections can be created (no ciphers or folders), show "New Collection".
+ * Otherwise, show "New".
+ */
+ protected getButtonLabel(): string {
+ const canCreateCipher = this.canCreateCipher();
+ const canCreateFolder = this.canCreateFolder();
+ const canCreateCollection = this.canCreateCollection();
+
+ // If only collections can be created, be specific
+ if (!canCreateCipher && !canCreateFolder && canCreateCollection) {
+ return "newCollection";
+ }
+
+ return "new";
+ }
+
+ /**
+ * Returns true if only collections can be created (no other options).
+ * When this is true, the button should directly create a collection instead of showing a dropdown.
+ */
+ protected isOnlyCollectionCreation(): boolean {
+ return !this.canCreateCipher() && !this.canCreateFolder() && this.canCreateCollection();
+ }
+
+ /**
+ * Handles the button click. If only collections can be created, directly emit the collection event.
+ * Otherwise, the menu trigger will handle opening the dropdown.
+ */
+ protected handleButtonClick(): void {
+ if (this.isOnlyCollectionCreation()) {
+ this.collectionAdded.emit();
+ }
+ }
}