Defining a custom control requires us first to decide how it will be used by authors. This is important because we want to ensure that the expertise required to use our custom control is much less than the expertise required to build it. We can achieve this if we try as much as possible to leverage skills that authors already have. For example, if we were designing an LED display and we wanted to give authors the ability to set the colour of the digits, we should use the CSS color property, rather than defining some function. Similarly, if we were creating an analogue clock, we'd almost certainly want to allows authors to decide how large or small each use of the clock should be, and that could easily be done with the CSS width and height properties.
In this section we show what factors to consider when working out how a control will be used, how authors can link to custom controls and make them available to a form, and finally how to actually create custom control definitions--which we'll illustrate with a simple map widget, and some clocks.

