PluginProbe
The Innovative Form Builder – IvyForms / 1.0
The Innovative Form Builder – IvyForms v1.0
1.5.1 1.5 1.4.1 1.4 trunk 0.1.2 0.2 0.2.1 0.3 0.3.1 0.4 0.5 0.6 0.6.1 0.6.1-backup 0.6.1.1 0.7 0.8 0.8.1 0.8.2 0.9 0.9.1 1.0 1.1 1.1.1 All 27 releases
ivyforms / frontend / src / utils / form-styles / sections / formContainer.ts

formContainer.ts in The Innovative Form Builder – IvyForms 1.0, at frontend/src/utils/form-styles/sections/formContainer.ts

84 lines 2.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 export interface FormContainerStyleParams {
2 formId: string | number
3 baseSelector: string
4 formSelector: string
5 formBackground: string
6 formBorderColor?: string
7 formBorderWidth: string
8 formBorderStyle: string
9 formCornerRadius?: string
10 formPaddingTopBottom: string
11 formPaddingLeftRight: string
12 formAlignment: string
13 verticalSpacing: string
14 horizontalSpacing: string
15 }
16
17 export function applyFormContainerStyles(
18 css: string[],
19 {
20 formId,
21 baseSelector,
22 formSelector,
23 formBackground,
24 formBorderColor,
25 formBorderWidth,
26 formBorderStyle,
27 formCornerRadius,
28 formPaddingTopBottom,
29 formPaddingLeftRight,
30 formAlignment,
31 verticalSpacing,
32 horizontalSpacing,
33 }: FormContainerStyleParams,
34 ): void {
35 css.push(`${baseSelector} {`)
36 if (formBackground) {
37 css.push(` background-color: ${formBackground} !important;`)
38 }
39 if (formBorderColor && formBorderWidth) {
40 css.push(` border: ${formBorderWidth} ${formBorderStyle} ${formBorderColor} !important;`)
41 } else {
42 css.push(' border: none !important;')
43 }
44 if (formCornerRadius) {
45 css.push(` border-radius: ${formCornerRadius} !important;`)
46 } else {
47 css.push(' border-radius: 0 !important;')
48 }
49 css.push(' box-shadow: none !important;')
50 css.push(` padding: ${formPaddingTopBottom} ${formPaddingLeftRight};`)
51 if (formAlignment !== 'left') {
52 css.push(` display: flex;`)
53 css.push(` flex-direction: column;`)
54 if (formAlignment === 'center') {
55 css.push(` align-items: center;`)
56 } else if (formAlignment === 'right') {
57 css.push(` align-items: flex-end;`)
58 }
59 }
60 css.push('}')
61
62 css.push(`.ivyforms-form-wrapper.ivyforms-form-wrapper-${formId} {`)
63 css.push(' border: none !important;')
64 css.push(' box-shadow: none !important;')
65 css.push(' background: transparent !important;')
66 css.push(' padding: 0 !important;')
67 css.push('}')
68
69 css.push(`.ivyforms-form-wrapper-${formId} form, ${baseSelector} ${formSelector} {`)
70 css.push(' border: none !important;')
71 css.push(' box-shadow: none !important;')
72 css.push(' background: transparent !important;')
73 css.push(' display: flex !important;')
74 css.push(' flex-direction: column !important;')
75 css.push(` gap: ${verticalSpacing} ${horizontalSpacing} !important;`)
76 css.push('}')
77
78 css.push(
79 `.ivyforms-form-wrapper-${formId} form .ivyforms-form-row, ${baseSelector} ${formSelector} .ivyforms-form-row {`,
80 )
81 css.push(` gap: ${horizontalSpacing} !important;`)
82 css.push('}')
83 }
84