A computer-implemented method for creating a haptic theme (310, 320), characterized by: creating one or more haptic effects in a device (50, 700); storing each haptic effect of the one or more haptic effects within an effect file (311, 312, 321, 322); creating a mapping that maps the one or more haptic effects to one or more user interface events using a mapping language; storing the mapping within a mapping file (313, 323); packaging the mapping file (313, 323) and the one or more effect files (311, 312, 321, 322) within the haptic theme (310, 320); creating a haptic theme component, wherein the haptic theme component comprises at least one effect file (311, 312, 321, 322) selected from the one or more effect files (311, 312, 321, 322) and the mapping file (313, 323); transmitting a copy of the haptic theme component to another device (50, 710); presenting a listing of one or more haptic themes (310, 320) within a user interface of the device (50, 700), the one or more haptic themes (310, 320) including the created haptic theme (310, 320), wherein each listed haptic theme (310, 320) comprises its own haptic effects, and its own mapping of haptic effects to user interface events; dynamically updating the listing of the one or more haptic themes (310, 320) where at least one haptic theme is added or deleted; selecting the haptic theme from the listing of one or more haptic themes (310, 320) as an active haptic theme for the device (50, 700); and using the selected haptic theme (310, 320) in real-time to generate haptic feedback, wherein the selected haptic theme (310, 320) receives a user interface event, maps the user interface event to a haptic effect based on the mapping, and generates the haptic feedback based on the haptic effect. creating one or more haptic effects in a device (50, 700); storing each haptic effect of the one or more haptic effects within an effect file (311, 312, 321, 322); creating a mapping that maps the one or more haptic effects to one or more user interface events using a mapping language; storing the mapping within a mapping file (313, 323); packaging the mapping file (313, 323) and the one or more effect files (311, 312, 321, 322) within the haptic theme (310, 320); creating a haptic theme component, wherein the haptic theme component comprises at least one effect file (311, 312, 321, 322) selected from the one or more effect files (311, 312, 321, 322) and the mapping file (313, 323); transmitting a copy of the haptic theme component to another device (50, 710); presenting a listing of one or more haptic themes (310, 320) within a user interface of the device (50, 700), the one or more haptic themes (310, 320) including the created haptic theme (310, 320), wherein each listed haptic theme (310, 320) comprises its own haptic effects, and its own mapping of haptic effects to user interface events; dynamically updating the listing of the one or more haptic themes (310, 320) where at least one haptic theme is added or deleted; selecting the haptic theme from the listing of one or more haptic themes (310, 320) as an active haptic theme for the device (50, 700); and using the selected haptic theme (310, 320) in real-time to generate haptic feedback, wherein the selected haptic theme (310, 320) receives a user interface event, maps the user interface event to a haptic effect based on the mapping, and generates the haptic feedback based on the haptic effect.