Your search did not match any results.
Color Box

Color Box

The ColorBox allows users to enter a color or select it in the drop-down editor. When you create a ColorBox, specify its value property to set the initial color. Users can change the value after they pick a shade, or after they click the OK button. To specify the mode, use the applyValueMode property.

You can hide the editor's drop-down button to allow users to only type in a color code. To do this, disable the showDropDownButton property. Users can also edit the transparency of the selected shade if the editAlphaChannel property is set to true.

Configure the ColorBox

Use the following properties to specify the component's interactivity:

  • readOnly
    Specifies whether the ColorBox is read-only.

  • disabled
    Specifies whether the ColorBox responds to user interaction.

You can specify the following properties to add custom buttons into the input field, or configure the drop-down editor's buttons:

  • buttons
    Allows you to add custom buttons to the input text field.

  • showClearButton
    Specifies whether to display the Clear button in the ColorBox.

  • applyButtonText
    Specifies the text for the button that applies changes and closes the drop-down editor.

  • cancelButtonText
    Specifies the text for the button that cancels changes and closes the drop-down editor.

Handle Value Change

Implement the onValueChanged function to handle the value change when users select a color in the drop-down editor. To handle the input value change, use the onInput function.

Backend API
Copy to CodeSandBox
Apply
Reset
<template> <div class="form"> <div class="dx-fieldset"> <div class="dx-field"> <div class="dx-field-label">Default mode</div> <div class="dx-field-value"> <DxColorBox value="#f05b41" /> </div> </div> <div class="dx-field"> <div class="dx-field-label">With alpha channel editing</div> <div class="dx-field-value"> <DxColorBox :edit-alpha-channel="true" value="#f05b41" /> </div> </div> <div class="dx-field"> <div class="dx-field-label">Custom button captions</div> <div class="dx-field-value"> <DxColorBox value="#f05b41" apply-button-text="Apply" cancel-button-text="Decline" /> </div> </div> <div class="dx-field"> <div class="dx-field-label">Read only</div> <div class="dx-field-value"> <DxColorBox :read-only="true" value="#f05b41" /> </div> </div> <div class="dx-field"> <div class="dx-field-label">Disabled</div> <div class="dx-field-value"> <DxColorBox :disabled="true" value="#f05b41" /> </div> </div> </div> <div class="dx-fieldset"> <div class="dx-fieldset-header">Event Handling</div> <div class="hero-block"> <div :style="{ backgroundColor: color }" class="color-block" > <div class="superhero"/> </div> <div class="hero-color-box"> <DxColorBox v-model:value="color" apply-value-mode="instantly" /> </div> </div> </div> </div> </template> <script> import DxColorBox from 'devextreme-vue/color-box'; export default { components: { DxColorBox, }, data() { return { color: '#f05b41', }; }, }; </script> <style> .form { min-height: 690px; } .form .dx-field-value { text-align: right; } .dx-fieldset-header { padding: 10px 0; } .color-block { width: 360px; height: 254px; background-color: #f05b41; position: relative; } .hero-color-box { position: absolute; right: 0; left: 400px; top: 110px; } .color-block .superhero { position: absolute; height: 100%; width: 100%; } .hero-block { position: relative; } .superhero { background-image: url(../../../../images/hero_white.png); } .dx-color-scheme-dark .superhero { background-image: url(../../../../images/hero_black.png); } .dx-color-scheme-darkmoon .superhero { background-image: url(../../../../images/hero_darkmoon.png); } .dx-color-scheme-darkviolet .superhero { background-image: url(../../../../images/hero_darkviolet.png); } .dx-color-scheme-greenmist .superhero { background-image: url(../../../../images/hero_greenmist.png); } .dx-color-scheme-contrast .superhero { background-image: url(../../../../images/hero_contrast.png); } .dx-color-scheme-blue-dark .superhero, .dx-color-scheme-orange-dark .superhero, .dx-color-scheme-teal-dark .superhero, .dx-color-scheme-lime-dark .superhero, .dx-color-scheme-purple-dark .superhero { background-image: url(../../../../images/hero_material_dark.png); } </style>
import { createApp } from 'vue'; import App from './App.vue'; createApp(App).mount('#app');
<!DOCTYPE html> <html> <head> <title>DevExtreme Demo</title> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" /> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/22.1.4/css/dx.common.css" /> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/22.1.4/css/dx.light.css" /> <script src="https://unpkg.com/core-js@2.4.1/client/shim.min.js"></script> <script src="https://unpkg.com/systemjs@0.21.3/dist/system.js"></script> <script type="text/javascript" src="config.js"></script> <script type="text/javascript"> System.import("./index.js"); </script> </head> <body class="dx-viewport"> <div class="demo-container"> <div id="app"> </div> </div> </body> </html>
window.config = { transpiler: 'plugin-babel', meta: { '*.vue': { loader: 'vue-loader', }, 'devextreme/localization.js': { 'esModule': true, }, }, paths: { 'npm:': 'https://unpkg.com/', }, map: { 'vue': 'npm:vue@3.0.0/dist/vue.esm-browser.js', 'vue-loader': 'npm:dx-systemjs-vue-browser@1.0.15/index.js', 'mitt': 'npm:mitt/dist/mitt.umd.js', 'rrule': 'npm:rrule@2.6.4/dist/es5/rrule.js', 'luxon': 'npm:luxon@1.28.0/build/global/luxon.min.js', 'es6-object-assign': 'npm:es6-object-assign@1.1.0', 'devextreme': 'npm:devextreme@22.1.4/cjs', 'devextreme-vue': 'npm:devextreme-vue@22.1.4', 'jszip': 'npm:jszip@3.7.1/dist/jszip.min.js', 'devextreme-quill': 'npm:devextreme-quill@1.5.16/dist/dx-quill.min.js', 'devexpress-diagram': 'npm:devexpress-diagram@2.1.63/dist/dx-diagram.js', 'devexpress-gantt': 'npm:devexpress-gantt@4.1.32/dist/dx-gantt.js', '@devextreme/runtime': 'npm:@devextreme/runtime@3.0.7', 'inferno': 'npm:inferno@7.4.4/dist/inferno.min.js', 'inferno-compat': 'npm:inferno-compat@7.4.11/dist/inferno-compat.min.js', 'inferno-create-element': 'npm:inferno-create-element@7.4.11/dist/inferno-create-element.min.js', 'inferno-dom': 'npm:inferno-dom/dist/inferno-dom.min.js', 'inferno-hydrate': 'npm:inferno-hydrate@7.4.11/dist/inferno-hydrate.min.js', 'inferno-clone-vnode': 'npm:inferno-clone-vnode@7.4.11/dist/inferno-clone-vnode.min.js', 'inferno-create-class': 'npm:inferno-create-class@7.4.11/dist/inferno-create-class.min.js', 'inferno-extras': 'npm:inferno-extras@7.4.11/dist/inferno-extras.min.js', 'plugin-babel': 'npm:systemjs-plugin-babel@0.0.25/plugin-babel.js', 'systemjs-babel-build': 'npm:systemjs-plugin-babel@0.0.25/systemjs-babel-browser.js', }, packages: { 'devextreme-vue': { main: 'index.js', }, 'devextreme': { defaultExtension: 'js', }, 'devextreme/events/utils': { main: 'index', }, 'devextreme/events': { main: 'index', }, 'es6-object-assign': { main: './index.js', defaultExtension: 'js', }, }, packageConfigPaths: [ 'npm:@devextreme/*/package.json', 'npm:@devextreme/runtime@3.0.7/inferno/package.json', ], babelOptions: { sourceMaps: false, stage0: true, }, }; System.config(window.config);