All visual elements derive from Item and have properties for controlling their size.
Width and Height
The properties width and height control the width and height requested by
the element.
Attention: The values represent CSS pixels as defined by the HTML standard. The actual size of a CSS pixel depends on the display scale and may be affected by the user.
Box {
width: 300
height: 100
color: "green"
}
If width or height is set to -1 (which is the default value), the element
adjusts its size automatically. For example, html.Label elements span
to fit their text this way and html.Box elements span to fit their children.
Box {
color: "green"
Label {
text: "This is a text."
}
}
Filling Space
The boolean properties fillWidth and fillHeight make elements fill the
entire space available, overruling width and height. The available space
is the parent's size minus the space used up by child elements without
fillWidth or fillHeight.
Box {
width: 300
height: 100
color: "green"
Box {
fillWidth: true
height: 50
color: "red"
}
}

If more than one child element uses fillWidth or fillHeight, the space
is distributed equally.
Size Constraints
The properties minWidth and minHeight dictate the minimum size of an element.
It is under no circumstances allowed to shrink any smaller.
Box {
width: 300 // this value is overruled by minWidth
height: 100
minWidth: 500
}
The properties maxWidth and maxHeight, on the other hand, dictate the
maximum size of an element.
It is under no circumstances allowed to grow any larger.
Box {
width: 300 // this value is overruled by maxWidth
height: 100
maxWidth: 100
}
Fixed Aspect Ratio
The property aspectRatio maintains a fixed side aspect ratio while sizing
an element. The width and height properties constrain the area in which
the element is scaled.
Box {
width: 300
height: 300
Box {
width: parent.width
height: parent.height
aspectRatio: 16 / 9
color: "red"
}
}
The aspect ratio is the width divided by the height.
The Bounding Box
Since the width and height properties are size constraints rather than absolute
size values, they cannot be used for determining an element's true size in general.
Every element has read-only bbox properties containing the element's bounding box for
accessing the actual size and position on screen.
The bbox properties are:
bboxX: The actual X position in document coordinates.bboxY: The actual Y position in document coordinates.bboxWidth: The actual width.bboxHeight: The actual height.
Box {
width: 300
height: 300
Box {
width: parent.bboxWidth
height: parent.bboxHeight / 2
color: "red"
}
Box {
width: parent.bboxWidth / 2
height: parent.bboxHeight / 2
color: "green"
}
}

The bounding box of invisible elements is of width and height 0.