This commit is contained in:
yoy 2025-10-17 15:34:04 +02:00
parent 7d3728b978
commit 0d9d26af87
30 changed files with 33 additions and 37 deletions

View file

@ -51,7 +51,7 @@ export class ContactEventPopup implements ModalComponent {
view(): Children { view(): Children {
return m( return m(
".abs.elevated-bg.plr.pb-16.border-radius.dropdown-shadow.flex.flex-column", ".abs.elevated-bg.plr-12.pb-16.border-radius.dropdown-shadow.flex.flex-column",
{ {
style: { style: {
// minus margin, need to apply it now to not overflow later // minus margin, need to apply it now to not overflow later

View file

@ -111,7 +111,7 @@ export class CalendarEventPopup implements ModalComponent {
view(): Children { view(): Children {
return m( return m(
".abs.elevated-bg.plr.pb-16.border-radius.dropdown-shadow.flex.flex-column", ".abs.elevated-bg.plr-12.pb-16.border-radius.dropdown-shadow.flex.flex-column",
{ {
style: { style: {
// minus margin, need to apply it now to not overflow later // minus margin, need to apply it now to not overflow later

View file

@ -213,7 +213,7 @@ export class DatePicker implements Component<DatePickerAttrs> {
// We would like to show the date being typed in the dropdown // We would like to show the date being typed in the dropdown
const dropdownDate = this.parseDate(this.inputText) ?? date ?? new Date() const dropdownDate = this.parseDate(this.inputText) ?? date ?? new Date()
return m( return m(
".content-bg.z3.menu-shadow.plr.pb-8", ".content-bg.z3.menu-shadow.plr-12.pb-8",
{ {
"aria-modal": "true", "aria-modal": "true",
"aria-label": lang.get(label), "aria-label": lang.get(label),

View file

@ -211,7 +211,7 @@ export class CalendarSettingsView extends BaseTopLevelView implements TopLevelVi
[ [
// Support button // Support button
m(BaseButton, { m(BaseButton, {
class: "flash flex justify-center center-vertically pt-8 pb-8 plr border-radius", class: "flash flex justify-center center-vertically pt-8 pb-8 plr-12 border-radius",
style: { style: {
marginInline: "auto", marginInline: "auto",
border: `1px solid ${theme.outline}`, border: `1px solid ${theme.outline}`,

View file

@ -27,7 +27,7 @@ export class CalendarAgendaItemView implements Component<CalendarAgendaItemViewA
const eventTitle = getDisplayEventTitle(attrs.event.summary) const eventTitle = getDisplayEventTitle(attrs.event.summary)
return m( return m(
".flex.items-center.click.plr.border-radius.pt-8.pb-8.rel.limit-width.full-width", ".flex.items-center.click.plr-12.border-radius.pt-8.pb-8.rel.limit-width.full-width",
{ {
// Implement the background color via JavaScript on Desktop, so we can react to `attrs.selected` // Implement the background color via JavaScript on Desktop, so we can react to `attrs.selected`
class: styles.isDesktopLayout() ? "hide-outline" : "state-bg", class: styles.isDesktopLayout() ? "hide-outline" : "state-bg",

View file

@ -27,7 +27,7 @@ export async function showLogsDialog(logContent: string) {
}, },
class { class {
view() { view() {
return m(".fill-absolute.selectable.scroll.white-space-pre.plr.pt-16.pb-16", logContent) return m(".fill-absolute.selectable.scroll.white-space-pre.plr-12.pt-16.pb-16", logContent)
} }
}, },
{}, {},

View file

@ -21,7 +21,7 @@ export function renderInfoLinks(): Children {
? m(ExternalLink, { ? m(ExternalLink, {
href: privacyPolicyLink, href: privacyPolicyLink,
text: lang.get("privacyLink_label"), text: lang.get("privacyLink_label"),
class: "plr", class: "plr-12",
isCompanySite: true, isCompanySite: true,
specialType: "privacy-policy", specialType: "privacy-policy",
}) })
@ -30,7 +30,7 @@ export function renderInfoLinks(): Children {
? m(ExternalLink, { ? m(ExternalLink, {
href: imprintLink, href: imprintLink,
text: lang.get("imprint_label"), text: lang.get("imprint_label"),
class: "plr", class: "plr-12",
isCompanySite: true, isCompanySite: true,
specialType: "license", specialType: "license",
}) })

View file

@ -13,7 +13,7 @@ export type MessageBoxAttrs = {
export class MessageBox implements Component<MessageBoxAttrs> { export class MessageBox implements Component<MessageBoxAttrs> {
view({ attrs, children }: Vnode<MessageBoxAttrs>): Children { view({ attrs, children }: Vnode<MessageBoxAttrs>): Children {
return m( return m(
".justify-center.items-start.dialog-width-s.pt-16.pb-16.plr.border-radius", ".justify-center.items-start.dialog-width-s.pt-16.pb-16.plr-12.border-radius",
{ {
style: Object.assign( style: Object.assign(
{ {

View file

@ -37,7 +37,7 @@ export class MonospaceTextDisplay implements Component<MonospaceTextDisplayAttrs
let extraClasses = classes ?? "" let extraClasses = classes ?? ""
if (border) { if (border) {
extraClasses += ".border.pt-16.pb-16.plr" extraClasses += ".border.pt-16.pb-16.plr-12"
} }
// in case the chunkSize parameter is set we want to preserve the line break to display the monospace content in multiple rows. // in case the chunkSize parameter is set we want to preserve the line break to display the monospace content in multiple rows.

View file

@ -43,7 +43,7 @@ class SnackBar implements Component<SnackBarAttrs> {
return m( return m(
".snackbar-content.flex.flex-space-between.border-radius.pb-4.pt-4", ".snackbar-content.flex.flex-space-between.border-radius.pb-4.pt-4",
{ {
class: vnode.attrs.dismissButton ? "pl-12" : "plr", class: vnode.attrs.dismissButton ? "pl-12" : "plr-12",
onmouseenter: () => { onmouseenter: () => {
vnode.attrs.onHoverChange(true) vnode.attrs.onHoverChange(true)
}, },

View file

@ -597,10 +597,6 @@ styles.registerStyle("main", () => {
"padding-left": px(size.spacing_64), "padding-left": px(size.spacing_64),
"padding-right": px(size.spacing_64), "padding-right": px(size.spacing_64),
}, },
".plr": {
"padding-left": px(size.spacing_12),
"padding-right": px(size.spacing_12),
},
".pl-4": { ".pl-4": {
"padding-left": px(size.spacing_4), "padding-left": px(size.spacing_4),
}, },

View file

@ -226,7 +226,7 @@ export async function showErrorDialogNotLoggedIn(e: ErrorInfo): Promise<void> {
const info = () => [ const info = () => [
m( m(
".flex.col.items-end.plr", ".flex.col.items-end.plr-12",
{ {
style: { style: {
marginTop: "-16px", marginTop: "-16px",
@ -250,7 +250,7 @@ export async function showErrorDialogNotLoggedIn(e: ErrorInfo): Promise<void> {
}, },
[ [
m( m(
".flex-end.plr", ".flex-end.plr-12",
m(Button, { m(Button, {
label: "copy_action", label: "copy_action",
click: () => copyToClipboard(message), click: () => copyToClipboard(message),
@ -258,7 +258,7 @@ export async function showErrorDialogNotLoggedIn(e: ErrorInfo): Promise<void> {
}), }),
), ),
m( m(
".plr.selectable.pb-16.scroll.text-pre", ".plr-12.selectable.pb-16.scroll.text-pre",
{ {
style: { style: {
height: px(200), height: px(200),

View file

@ -44,7 +44,7 @@ export class FingerprintMismatchInfoPage implements Component<VerificationErrorI
}), }),
m( m(
Card, Card,
m(".plr.flex.flex-column.gap-vpad", [ m(".plr-12.flex.flex-column.gap-vpad", [
m("", m.trust(warning)), m("", m.trust(warning)),
m(".b.mt-16", lang.get("keyVerificationErrorRecommendation_title")), m(".b.mt-16", lang.get("keyVerificationErrorRecommendation_title")),
m("", m.trust(recommendation)), m("", m.trust(recommendation)),

View file

@ -34,7 +34,7 @@ export class FingerprintMismatchKeepPage implements Component<FingerprintMismatc
}), }),
m( m(
Card, Card,
m(".plr.flex.flex-column.gap-vpad.pt-8.pb-8", [ m(".plr-12.flex.flex-column.gap-vpad.pt-8.pb-8", [
m("", m.trust(message)), m("", m.trust(message)),
m(ExternalLink, { m(ExternalLink, {
isCompanySite: true, isCompanySite: true,

View file

@ -40,7 +40,7 @@ export class MultiRecipientsKeyVerificationRecoveryUserSelectionPage implements
}), }),
m( m(
Card, Card,
m(".plr.flex.flex-column.gap-vpad.pt-8.pb-8", [ m(".plr-12.flex.flex-column.gap-vpad.pt-8.pb-8", [
lang.get("keyManagement.mailRecipientsVerificationMismatchError_msg"), lang.get("keyManagement.mailRecipientsVerificationMismatchError_msg"),
m( m(
"", "",
@ -80,7 +80,7 @@ export class MultiRecipientsKeyVerificationRecoveryUserSelectionPage implements
icon: Icons.CheckCircleOutline, icon: Icons.CheckCircleOutline,
iconOptions: { color: theme.success }, iconOptions: { color: theme.success },
}), }),
m(Card, m(".plr.flex.flex-column.gap-vpad.pt-8.pb-8", [message])), m(Card, m(".plr-12.flex.flex-column.gap-vpad.pt-8.pb-8", [message])),
]) ])
} }

View file

@ -27,7 +27,7 @@ export class RecipientKeyVerificationRecoveryAcceptPage implements Component<Ver
}), }),
m( m(
Card, Card,
m(".plr.flex.flex-column.gap-vpad.pt-8.pb-8", [ m(".plr-12.flex.flex-column.gap-vpad.pt-8.pb-8", [
m("", m.trust(contactUpdatedText)), m("", m.trust(contactUpdatedText)),
m(ExternalLink, { m(ExternalLink, {
isCompanySite: true, isCompanySite: true,

View file

@ -34,7 +34,7 @@ export class RecipientKeyVerificationRecoveryInfoPage implements Component<Verif
}), }),
m( m(
Card, Card,
m(".plr.flex.flex-column.gap-vpad", [ m(".plr-12.flex.flex-column.gap-vpad", [
m("", m.trust(lang.get("keyVerificationErrorWarning_msg", { "{mailAddress}": contactMailAddress }))), m("", m.trust(lang.get("keyVerificationErrorWarning_msg", { "{mailAddress}": contactMailAddress }))),
m(".b.mt-16", lang.get("keyVerificationErrorRecommendation_title")), m(".b.mt-16", lang.get("keyVerificationErrorRecommendation_title")),
m("", m.trust(lang.get("keyVerificationErrorRecommendation_msg"))), m("", m.trust(lang.get("keyVerificationErrorRecommendation_msg"))),

View file

@ -27,7 +27,7 @@ export class RecipientKeyVerificationRecoveryRejectPage implements Component<Ver
}), }),
m( m(
Card, Card,
m(".plr.flex.flex-column.gap-vpad.pt-8.pb-8", [ m(".plr-12.flex.flex-column.gap-vpad.pt-8.pb-8", [
m("", m.trust(contactNotUpdatedText)), m("", m.trust(contactNotUpdatedText)),
m(ExternalLink, { m(ExternalLink, {
isCompanySite: true, isCompanySite: true,

View file

@ -35,7 +35,7 @@ export class SenderKeyVerificationRecoveryInfoPage implements Component<Verifica
}), }),
m( m(
Card, Card,
m(".plr.flex.flex-column.gap-vpad", [ m(".plr-12.flex.flex-column.gap-vpad", [
m( m(
"", "",
m.trust( m.trust(

View file

@ -25,7 +25,7 @@ export class SenderKeyVerificationRecoverySuccessPage implements Component<Sende
}), }),
m( m(
Card, Card,
m(".plr.flex.flex-column.gap-vpad.pt-8.pb-8", [ m(".plr-12.flex.flex-column.gap-vpad.pt-8.pb-8", [
m("", m.trust(contactUpdatedText)), m("", m.trust(contactUpdatedText)),
m(ExternalLink, { m(ExternalLink, {
isCompanySite: true, isCompanySite: true,

View file

@ -235,7 +235,7 @@ class PaypalInput {
m(BaseButton, { m(BaseButton, {
label: lang.makeTranslation("PayPal", "PayPal"), label: lang.makeTranslation("PayPal", "PayPal"),
icon: m(".payment-logo.flex", m.trust(PayPalLogo)), icon: m(".payment-logo.flex", m.trust(PayPalLogo)),
class: "border border-radius bg-white button-height plr", class: "border border-radius bg-white button-height plr-12",
onclick: () => { onclick: () => {
if (attrs.payPalRequestUrl.isLoaded()) { if (attrs.payPalRequestUrl.isLoaded()) {
window.open(attrs.payPalRequestUrl.getLoaded()) window.open(attrs.payPalRequestUrl.getLoaded())

View file

@ -176,7 +176,7 @@ export class PlanSelector implements Component<PlanSelectorAttr> {
m( m(
".flex.flex-column.gap-vpad", ".flex.flex-column.gap-vpad",
m( m(
"#continue-wrapper.flex-v-center.plr", "#continue-wrapper.flex-v-center.plr-12",
{ {
style: this.shouldFixButtonPos() && { style: this.shouldFixButtonPos() && {
position: "fixed", position: "fixed",

View file

@ -21,7 +21,7 @@ export class EmailSupportUnavailablePage implements Component<EmailSupportUnavai
m( m(
Card, Card,
{ shouldDivide: true }, { shouldDivide: true },
m("div.pt-8.pb-8.plr", [ m("div.pt-8.pb-8.plr-12", [
m(".h4.mt-4", lang.get("supportNoDirectSupport_title")), m(".h4.mt-4", lang.get("supportNoDirectSupport_title")),
m("p", lang.get("supportNoDirectSupport_msg")), m("p", lang.get("supportNoDirectSupport_msg")),
m("img.block", { m("img.block", {

View file

@ -54,7 +54,7 @@ export class SupportRequestSentPage implements Component<SupportRequestSentPageA
), ),
), ),
isCalendarApp isCalendarApp
? m(Card, { shouldDivide: true }, m(".plr.pt-16.pb-16", "You can access the response in Tuta Mail using your Tuta Calendar credentials."), [ ? m(Card, { shouldDivide: true }, m(".plr-12.pt-16.pb-16", "You can access the response in Tuta Mail using your Tuta Calendar credentials."), [
m(SectionButton, { m(SectionButton, {
text: "getTutaMail_action", text: "getTutaMail_action",
onclick: () => { onclick: () => {

View file

@ -26,7 +26,7 @@ export class SupportSuccessPage implements Component<SupportSuccessPageAttrs> {
Card, Card,
{ shouldDivide: true }, { shouldDivide: true },
m( m(
".plr", ".plr-12",
m(".h4.center.pb-8.pt-8", lang.get("supportSuccess_msg")), m(".h4.center.pb-8.pt-8", lang.get("supportSuccess_msg")),
m("p.center.m-0", lang.get("supportRatingRequest_msg")), m("p.center.m-0", lang.get("supportRatingRequest_msg")),
m( m(

View file

@ -298,7 +298,7 @@ export function showContactImportDialog(contacts: Contact[], okAction: (dialog:
], ],
} satisfies DialogHeaderBarAttrs), } satisfies DialogHeaderBarAttrs),
/** variable-size child container that may be scrollable. */ /** variable-size child container that may be scrollable. */
m(".dialog-max-height.plr-s.pb-16.text-break.nav-bg", [ m(".dialog-max-height.plr-4.pb-16.text-break.nav-bg", [
m( m(
".list-bg.border-radius.mt-8.ml-8.mr-8", ".list-bg.border-radius.mt-8.ml-8.mr-8",
m(SelectAllCheckbox, { m(SelectAllCheckbox, {

View file

@ -70,7 +70,7 @@ class OverwriteRemoteDraftDialog implements Component<OverwriteRemoteDraftDialog
icon: Icons.AlertCircleOutline, icon: Icons.AlertCircleOutline,
iconOptions: { color: theme.error }, iconOptions: { color: theme.error },
}), }),
m(Card, m(".plr.flex.flex-column.gap-vpad.center", lang.get("confirmOverwriteServerDraft_msg"))), m(Card, m(".plr-12.flex.flex-column.gap-vpad.center", lang.get("confirmOverwriteServerDraft_msg"))),
m(LoginButton, { m(LoginButton, {
class: "flex-center row center-vertically", class: "flex-center row center-vertically",
label: "yes_label", label: "yes_label",

View file

@ -78,7 +78,7 @@ export class LabelsPopup implements ModalComponent {
const opacity = !canToggleLabel ? 0.5 : undefined const opacity = !canToggleLabel ? 0.5 : undefined
return m( return m(
"label-item.flex.items-center.plr.state-bg.cursor-pointer", "label-item.flex.items-center.plr-12.state-bg.cursor-pointer",
{ {
"data-labelid": getElementId(label), "data-labelid": getElementId(label),

View file

@ -539,7 +539,7 @@ export class MailViewerHeader implements Component<MailViewerHeaderAttrs> {
if (viewModel.isLoadingAttachments() && !viewModel.isConnectionLost()) { if (viewModel.isLoadingAttachments() && !viewModel.isConnectionLost()) {
return m(".flex." + responsiveCardHMargin(), [ return m(".flex." + responsiveCardHMargin(), [
m(".flex-v-center.pl-8", progressIcon()), m(".flex-v-center.pl-8", progressIcon()),
m(".small.flex-v-center.plr.button-height", lang.get("loading_msg")), m(".small.flex-v-center.plr-12.button-height", lang.get("loading_msg")),
]) ])
} else { } else {
const attachments = viewModel.getNonInlineAttachments() const attachments = viewModel.getNonInlineAttachments()

View file

@ -795,7 +795,7 @@ export class SettingsView extends BaseTopLevelView implements TopLevelView<Setti
return m(".pb-16.pt-32.flex-no-shrink.flex.col.justify-end.gap-vpad", [ return m(".pb-16.pt-32.flex-no-shrink.flex.col.justify-end.gap-vpad", [
// Support button // Support button
m(BaseButton, { m(BaseButton, {
class: "flash flex justify-center center-vertically pt-8 pb-8 plr border-radius", class: "flash flex justify-center center-vertically pt-8 pb-8 plr-12 border-radius",
style: { style: {
marginInline: "auto", marginInline: "auto",
border: `1px solid ${theme.on_surface_variant}`, border: `1px solid ${theme.on_surface_variant}`,