Skip to content

Add a responsive content property

See the Development process to load a base section in dev mod.

We will add a titleFontSize property on our section, so that the user can dynamically change the font size of the title. We want this size to depend on the breakpoints.

ww-config.js

The first step is to add the default content value:

js
properties: {
    // [...]
    titleFontSize: {
        label: {
            en: "Title font size",
        },
        type: "Length",
        options: {
            unitChoices: [{ "value": "px", "label": "px", "min": 1, "max": 100 }]
        },
        responsive: true,
        defaultValue: "16px"
    },
}

Use the value inside the template

js
export default {
    props: {
        content: { type: "Object", required: true },
    },
    computed: {
        textStyle() {
            return {
                color: this.content.textColor,
                fontSize: this.content.titleFontSize,
            };
        },
    },
};

TIP

Note here that we don't need anything to handle responsive. WeWeb resolves the inheritance of the different breakpoints for you.

We also comment the css style:

css
.my-section {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-height: 200px;
    // h1 {
    //     font-size: 32px;
    // }
    p {
        margin-top: 12px;
    }
}

Change the ww-config.json

We will add a property inside ww-config.json to add a fontSize length input in the Style panel.

Test it

Change the breakpoint in the top right of the Editor navbar, and change the values of the different breakpoints.

TIP

In this use case, it can be better to use a WeWeb text so that users can edit the text style.

See Add a element property