components/dialogs/BaseDialog.vue — Foundation dialog wrapping v-dialog > v-card. Provides a dark-blue title bar, scrollable body slot, and a standard footer with secondary + primary action buttons. Props: title, maxWidth (default 570), actionText, actionColor, cancelText, disabled, loading, persistent. Slots: default (body), #actions (override footer). All specific dialogs build on top of this.

Default — two-button footer

The standard pattern: secondary "No thanks" on the left, primary action on the right.

Confirm your action
Are you sure you want to proceed? This operation cannot be undone.

Disabled action button

Action button receives disabled when form is incomplete (e.g. checkbox not checked, email not entered).

Confirm your action
Please acknowledge the terms below before continuing.

Error action color (action-color="error")

Destructive actions (delete, remove, withdraw) use red for the primary button.

Delete this item?
This will permanently remove the item from your account.

components/dialogs/SimpleBaseDialog.vue — Modern dialog variant with rounded corners (30px border-radius) and generous padding. Same props as BaseDialog but with a cleaner, card-like appearance. Used by DialogPaymentMethod.

PropTypeDefault
titlestringrequired
maxWidthstring"570"
actionTextstring"Accept"
actionColorButtonColor
cancelTextstring"No thanks"
disabledbooleanfalse
loadingbooleanfalse
persistentbooleanfalse

Confirm your action

This is the content area of SimpleBaseDialog. It uses a modern rounded design with more padding than BaseDialog.

border-radius: 30px | padding: 36px 48px | Rounded card style

components/dialogs/DialogLeavePage.vue — Confirms navigation away from a page with unsaved changes. max-width="480", persistent.

Are you sure you want to leave this page?
Your changes will be lost if you leave this page.

components/dialogs/DialogDeleteDocuments.vue — Batch-delete confirmation. Props: count, loading. Action button is red. max-width="632".

Single document

Delete 1 document?
The document will be permanently deleted and cannot be recovered.

Multiple documents (count=5)

Delete 5 documents?
The documents will be permanently deleted and cannot be recovered.

components/dialogs/DialogDeclineSR.vue — Decline a signature request with an optional message. Props: isDeleteEnabled, loading, messageMaxLength (default 1000). Custom #actions slot with optional delete checkbox. max-width="510".

Without delete option

Decline signing request

By declining, the document owner will be notified. You can leave an optional message explaining your decision.

Message (optional)

With delete checkbox (isDeleteEnabled=true)

Decline signing request

By declining, the document owner will be notified. You can leave an optional message explaining your decision.

Message (optional)

components/dialogs/document/DialogWithdraw.vue — Withdraw a document from signing. Optional message textarea + delete-from-account checkbox. Both action buttons are red. max-width="510".

Withdraw document

The document will be withdrawn from all signers. Signers who have already signed will be notified.

Message (optional)

components/dialogs/document/DialogRemoveSigner.vue — Remove a signer from a document. Props: email, isLastSigner. Shows a warning banner when removing the last signer.

Regular signer

Remove signer

You are about to remove anna.schmidt@example.com from the signing request. They will be notified by email.

Last signer — with warning banner

Remove last signer

You are about to remove john.doe@example.com from the signing request. They will be notified by email.

Removing the last signer will withdraw the document from signing.

components/dialogs/document/DialogAddSigner.vue — Add one or more signers via email autocomplete. Action disabled until at least one email entered. Props: loading.

Add signer

Enter the email address of the person you want to add as a signer.

components/dialogs/document/DialogAddObserver.vue — Add observers who receive a copy of the completed document. Email autocomplete, multi-select. Props: loading.

Add observer

Observers receive a copy of the signed document but cannot sign it themselves.

components/dialogs/document/DialogAddSignerGroup.vue — Pick a pre-configured signer group to add to a document. Shows groups with member previews. No action button — selecting a row triggers the action. Shows loading spinner or empty state when no groups exist. max-width="640".

With groups (happy path)

Add signer group

Select a signer group to add all its members as signers.

Legal Team
alice@acme.com, bob@acme.com, carol@acme.com
Finance Approvers
david@acme.com, eva@acme.com +3 more
Executive Board
ceo@acme.com, cfo@acme.com

Empty state — no signer groups created yet

Add signer group

You have no signer groups yet.

Go to Settings › Signer Groups to create your first group.

components/dialogs/document/DialogDelegate.vue — Delegate signing rights to another person. Requires a valid email address; optional message. Action disabled until email is valid. Props: loading.

Delegate signing

Transfer your signing role to another person. They will receive an invitation to sign the document in your place.

Email address

Message (optional)

Important: once delegated, you will no longer be able to sign this document yourself.

DialogTanEntry

components/dialogs/document/DialogTanEntry.vue — Enter a 6-digit TAN code sent by SMS to complete a signing step. Props: loading, mailData. Action disabled until 6 digits entered. Includes resend link. max-width="640".

Sign with TAN

We sent a 6-digit code to your mobile phone. Enter it below to complete your signature.

Enter your code

Didn't receive the code? Resend code

components/dialogs/document/DialogTermsOfUse.vue — Accept legal terms before signing. Dynamic title based on NAS mode. Supports Skribble and/or Swisscom checkboxes with links. Privacy policy note at bottom. Props: loading, terms (Set), policies (Set). max-width="640".

Standard (Skribble terms only)

Terms of use

By clicking "Accept" you agree to the following terms of use required to sign this document.

Your data is protected under the Skribble Privacy Policy.
GTC image

NAS mode (Skribble + Swisscom terms)

Terms of use for qualified electronic signature
Your data is protected under the Skribble, PXL Vision, and Swisscom privacy policies.
GTC image

components/dialogs/document/DialogTermsAndConditions.vue — XQES-specific legal consent dialog. Parent checkbox selects all three nested checkboxes (Skribble, ZERTES, eIDAS). Accept is disabled until all three are checked.

Terms of use

By clicking "Accept" you agree to the terms required to use qualified electronic signatures.

Your data is protected under the Skribble, PXL Vision, and Swisscom privacy policies.

components/dialogs/document/DialogUpgradeStandards.vue — Prompts signer to increase their signature standard (SES → AES → QES). Props: quality, legislation, lang, showImage, to, closable. Custom #actions slot. max-width="640".

Unlock qualified electronic signature (QES)

This document requires a higher signature standard

This document requires a Qualified Electronic Signature (QES) under Swiss law (ZertES).

What do I need to do?

To increase your signature standard, you need to verify your identity with a valid identity document. The process takes about 5 minutes.

Sign illustration

components/dialogs/document/DialogVisualSignatureData.vue — Let the signer set the name that appears in their visual signature on the document. Both name fields are optional. max-width="630".

Visual signature

Specify the name to display in your visual signature on the document. These fields are optional.

components/dialogs/document/DialogSupplyEidData.vue — Enter mobile phone number for eID-based signing flow. Action disabled until phone number passes validation. Props: loading. max-width="630".

Your mobile number

Enter the mobile number associated with your eID. A verification code will be sent to this number.

components/dialogs/DialogAcceptTerms.vue — New-user GTC acceptance dialog. Custom #actions slot (no standard footer). Image shown on desktop. Props: loading, businessName. max-width="640", persistent.

Accept the General Terms & Conditions
I accept the Skribble General Terms & Conditions

By accepting, I consent to the processing of my personal data as described in the Privacy Policy.

GTC illustration

components/dialogs/business/DialogBusinessInvitation.vue — Shown when a user is invited to join a business account. Accepts the GTC for joining. Props: loading, businessName. Custom actions slot. max-width="640", persistent.

Join Acme Corp on Skribble

You have been invited to join Acme Corp on Skribble. By joining, you will be added to the team and can collaborate on documents.

By accepting, you agree to the Terms of Use and acknowledge the Privacy Policy.

Business illustration

components/dialogs/business/DialogBusinessDowngraded.vue — Shown to admins and members when a business account has been downgraded. Requires GTC checkbox acceptance before the user can proceed. Props: loading, isAdmin. max-width="720", persistent.

Your Business plan has ended
What happens now?

Your Business account has been downgraded. You can continue using Skribble with the free plan features.

Building illustration

components/dialogs/business/DialogBusinessLockedMember.vue — Shown when the business is locked (trial expired or failed payments). Lists admin contacts so the member can reach out. Props: loading. max-width="796", persistent.

Your company's trial period has ended
Contact your admin

Your company's Business plan is no longer active. Please contact one of the admins below to reactivate the plan.

Maria, Müller
maria.mueller@acmecorp.com
Admin
Thomas, Bauer
t.bauer@acmecorp.com
Admin
Building illustration

components/dialogs/business/DialogMigratedToStarter.vue — Shown when a member's account is migrated to the Starter plan. GTC checkbox required. Feature cards shown on desktop. Props: loading. max-width="796", persistent.

Your account has been moved to the Starter plan

What changes for you?

Your account has been moved to the Skribble Starter plan. You can continue signing documents for free and pay only for qualified signatures when you need them.

Free to sign simple documents anytime

Pay per use for qualified signatures

components/dialogs/business/DialogWelcomeToStarterPlan.vue — Welcome screen shown after migrating to Starter. Full custom layout with feature cards (no standard BaseDialog header). max-width="700", scrim "skribbleu", scrollable.

Welcome to Skribble Starter!

Your Business trial has ended, but you can keep signing. Here's what your Starter plan includes:

Free to sign — sign documents with a simple electronic signature at no cost

Pay per use — pay only when you need a qualified signature

components/dialogs/business/DialogCancelTrial.vue — Confirm cancellation of a Business trial. Shows different text for Chargebee trials vs legacy trials. Props: loading. Bound via v-model. max-width="510".

Legacy trial (with downgrade item list)

Cancel trial

Are you sure you want to cancel your Business trial? You will lose access to:

  • Advanced signature standards (AES, QES)
  • Team management features
  • Business branding and API access

components/dialogs/business/DialogCancelSubscription.vue — Cancel an active Business subscription. Shows expiry date in text. Two variants: team subscription vs individual subscription. Props: endDate, individual, isLoading. max-width="632".

Team subscription

Cancel subscription

Your subscription will remain active until 31 December 2025. After that date you will lose access to:

  • Advanced signature standards (AES, QES)
  • Team management features
  • Business branding and API access

Individual subscription

Cancel subscription

Your subscription will remain active until 31 December 2025. After that date you will lose access to:

  • Unlimited simple signatures
  • Access to advanced and qualified signatures
  • Priority support

components/dialogs/business/DialogFreePlanDowngrade.vue — Downgrade from Business to Free plan. Title and text are dynamic based on Chargebee trial state. Props: loading. max-width="510".

Change to free plan?

After downgrading you will no longer have access to Business features. The following will be affected:

  • Advanced signature standards (AES, QES)
  • Team management features
  • Business branding and API access

components/dialogs/business/DialogRemoveMembers.vue — Remove one or multiple members from a business. Shows singular/plural text. Props: count, loading. max-width="500".

Single member

Remove member
The selected member will be removed from your business account. They will lose access to all business features.

Multiple members (count=3)

Remove member
The 3 selected members will be removed from your business account. They will lose access to all business features.

components/dialogs/business/DialogRemoveSeats.vue — Enter the number of seats to remove at next billing cycle. Includes numeric input, info banner, and validation. Props: maxSeatsDelta, endDate. max-width="632".

Remove seats

Seat changes take effect after your current billing period ends on 31 December 2025.

Seats
Seat reductions are effective at the end of the billing period.

components/dialogs/business/DialogAddMember.vue — Add business members via email autocomplete (multi-select). Fetches existing members and filters out those already assigned. Props: members (current), loading, title, subtitle, cancelText. Min-width 500px.

Add team members

Select members from your business account to add them to this team.

components/dialogs/DialogActivateAutoDeletion.vue — Activate auto-deletion of signed documents. Consent checkbox required to enable the action button. Has legacy variant with different body text. Props: modelValue (v-model), isLegacy. max-width="600".

Standard (non-legacy)

Activate automatic document deletion

Documents will be automatically deleted after they are fully signed. This action cannot be undone for already-deleted documents.

With consent given (checkbox checked)

Activate automatic document deletion

Documents will be automatically deleted after they are fully signed. This action cannot be undone for already-deleted documents.

components/dialogs/DialogDeactivateAutoDeletion.vue — Simple confirmation to turn off auto-deletion. No checkbox required. Destructive action (red button). Props: modelValue (v-model). max-width="600".

Deactivate automatic document deletion

After deactivating, signed documents will no longer be automatically deleted. Existing documents are not affected.

components/dialogs/DialogConnectIdAustria.vue — Connect the user's account to ID Austria for QES. Props: modelValue, isDirectSign. max-width="510".

Connect ID Austria
To sign with a Qualified Electronic Signature using Austrian law (eIDAS), you need to connect your ID Austria digital identity.

components/dialogs/DialogEidNotFound.vue — Shown when no valid eID was found during the identification flow. Single "Got it" action button on the right. Custom #actions slot.

No valid eID found

We could not find a valid electronic ID for your account. Please ensure you have a supported eID and try again. Learn more about supported eIDs

components/dialogs/DialogStopSelfObserve.vue — Remove yourself as an observer from a document. Destructive action. Props: loading. max-width="632".

Stop observing this document
You will no longer receive notifications or a copy of the signed document. This action cannot be undone.

components/dialogs/visual-signature/DialogDeleteSignature.vue — Delete a saved visual signature from the profile. Props: loading. max-width="510".

Delete signature
Your saved visual signature will be permanently deleted. You can create a new one at any time.

components/dialogs/profile/DialogDeleteAccount.vue — Permanently delete a user account. Requires explicit checkbox consent before the red action button activates. Image shown on desktop. Props: loading. max-width="640".

Without consent (button disabled)

Delete your account

Your account and all associated data will be permanently deleted. This action cannot be undone.

Delete illustration

With consent given

Delete your account

Your account and all associated data will be permanently deleted. This action cannot be undone.

Delete illustration

components/dialogs/profile/DialogLeaveBusiness.vue — Leave a business account from the profile settings. Title and body text reference the business name. Image shown on desktop. Props: loading. max-width="640".

Leave Acme Corp?

Are you sure you want to leave Acme Corp?

You will lose access to all business features and documents shared within Acme Corp. You can be re-invited by an admin at any time.

Leave business illustration

components/dialogs/signer-groups/DialogDeleteSignerGroup.vue — Confirm deletion of a signer group. Title includes group name. Body explains side effects with bold emphasis. Props: groupName. max-width="580".

Delete "Legal Team"?

Deleting this group will remove all members from the group and cancel all pending signature requests where this group is referenced.


Documents that have already been fully signed are not affected.

components/dialogs/DialogPart11Info.vue — Collect signer name and reason for 21 CFR Part 11 compliance. Both fields are required; action disabled until form is valid. Illustration on right. Props: name, reason, loading. max-width="700".

Required information for signing

This document requires your full name and the reason for signing as part of 21 CFR Part 11 compliance.

Sign illustration

components/dialogs/business/DialogTransactionalCsat.vue — Post-cancellation feedback survey. Six checkbox options + free-text area. Submit disabled until at least one option or free text is provided. Skip button always enabled. max-width="640".

Help us improve — why are you leaving?

Your feedback helps us make Skribble better for everyone.

components/dialogs/DialogRelationshipCsat.vue — Periodic satisfaction survey. Three variants based on satisfaction prop: "positive", "neutral", "negative". Checkbox options differ per variant, plus free-text. max-width="640", persistent, scrollable.

Positive variant

We're glad you're happy! What do you like most?

Tell us what you enjoy about Skribble.

Negative variant

We're sorry to hear that. What went wrong?

Help us understand what we can improve.

components/dialogs/DialogFairFlatMigration.vue — Migrate from Fair Flat to Business plan. Two actions: migrate (primary) or switch to free (text link). Image on right. Props: loading. Full custom layout (no BaseDialog). max-width="796", persistent.

Your plan is changing
Why should you migrate to Business?

Skribble Business includes everything you need:

  • Unlimited users and seats
  • Advanced team management
  • Priority support and SLA

By migrating you accept the General Terms & Conditions and the Data Processing Agreement.

Not interested? Switch to free plan instead

Building illustration

components/dialogs/DialogFreeMigration.vue — Migrate from Fair Flat to the free plan. Shows what is excluded from the free plan. Single primary action. Image on right. Props: loading. Full custom layout. max-width="796", persistent.

Switch to the free plan
What you'll lose on the free plan

The following features are not included in the free plan. See full comparison

  • Unlimited simple signatures
  • Advanced team management
  • Business branding

By switching you accept the General Terms & Conditions and the Data Processing Agreement.

You can upgrade to Business at any time.

Building illustration

components/dialogs/DialogPaymentMethod.vue — View/update payment method. Uses SimpleBaseDialog. Shows payment card info, bank account (SEPA), and billing address via PaymentInfoCard components. Opens Chargebee portal for editing. Single "Close" action button.

Payment details

Visa **** 4242
Expires Dec 2027
Musterstrasse 1
8001 Zurich
Switzerland
Uses SimpleBaseDialog | Shows PaymentInfoCard for card, bank, and address | Opens Chargebee portal on edit

components/dialogs/DialogAddPaymentMethod.vue — Add/update payment method during checkout. Uses BaseDialog with Chargebee PaymentElement widget. Shows plan summary with price. Props: intent, address, selection, seats, coupon, loading. max-width="570".

Add payment method
Team plan (3 seats) CHF 75.00/mo
Chargebee payment widget
(card number, expiry, CVC)
Supports: Credit card, SEPA direct debit (EU only)
Uses BaseDialog | Embeds Chargebee PaymentElement | Back button navigates to previous step

components/dialogs/DialogPaymentMethod.vue — View/update payment method. Uses SimpleBaseDialog. Shows payment card info, bank account (SEPA), and billing address via PaymentInfoCard components. Opens Chargebee portal for editing. Single "Close" action button.

Payment details

Visa **** 4242
Expires Dec 2027
Musterstrasse 1
8001 Zurich
Switzerland
Uses SimpleBaseDialog | Shows PaymentInfoCard for card, bank, and address | Opens Chargebee portal on edit

components/dialogs/DialogAddPaymentMethod.vue — Add/update payment method during checkout. Uses BaseDialog with Chargebee PaymentElement widget. Shows plan summary with price. Props: intent, address, selection, seats, coupon, loading. max-width="570".

Add payment method
Team plan (3 seats) CHF 75.00/mo
Chargebee payment widget
(card number, expiry, CVC)
Supports: Credit card, SEPA direct debit (EU only)
Uses BaseDialog | Embeds Chargebee PaymentElement | Back button navigates to previous step