Copybox input

Copybox input is a component that allows users to copy the content of an input field to the clipboard.

Examples Default
<dap-ds-copybox-input
label="Name"
placeholder="Enter your name">
</dap-ds-copybox-input>
Sizes
<dap-ds-stack>
<dap-ds-copybox-input
  label="Xs Name"
  size="xs"
  feedback="This is a feedback message"
  feedbacktype="negative"
  placeholder="Enter your name">
</dap-ds-copybox-input>
<dap-ds-copybox-input
  label="Sm Name"
  size="sm"
  feedback="This is a feedback message"
  feedbacktype="negative"
  placeholder="Enter your name">
</dap-ds-copybox-input>
<dap-ds-copybox-input
  label="Lg Name"
  size="lg"
  feedback="This is a feedback message"
  feedbacktype="negative"
  placeholder="Enter your name">
</dap-ds-copybox-input>
</dap-ds-stack>
States
<dap-ds-stack>
<dap-ds-copybox-input
  disabled
  label="Disabled"
  placeholder="Enter your name"
  value="John Doe">
</dap-ds-copybox-input>
<dap-ds-copybox-input
  readonly
  label="Readonly"
  placeholder="Enter your name"
  value="John Doe">
</dap-ds-copybox-input>
</dap-ds-stack>
Importing
import { DapDSCopyBoxInput } from 'dap-design-system'
Importing React
import { DapDSCopyBoxInputReact } from 'dap-design-system/react'
Tree-Shakeable Imports

For optimal bundle sizes, use the tree-shakeable import syntax:

import { DapDSCopyBoxInput } from 'dap-design-system/components'
Attributes
PropertyTypeDefaultDescription
copyButtonAriaLabelstringThe aria label of the copy button.
typestring'text'
labelstringThe label of the input.
placeholderstringThe placeholder of the input.
descriptionstringThe description of the input.
tooltipstringThe tooltip of the input.
tooltipPlacement'top', 'right' , 'bottom' , 'left'The position of the tooltip. Can be top, right, bottom, or left.
status'success', 'error'The status of the input. Can be success or error.
size'xs', 'sm' , 'sm'The size of the input. Default is sm.
namestringThe name of the input.
valuestringThe value of the input.
disabledbooleanThe disabled state of the input. Default is false.
requiredbooleanThe required state of the input. Default is false.
readonlybooleanThe readonly state of the input. Default is false.
autofocusbooleanThe autofocus state of the input. Default is false.
feedbackstringThe feedback of the input.
feedbackType'negative', 'positive' , 'warning'The feedback type of the input. Can be negative, positive, or warning.
loadingbooleanThe loading state of the input. Default is false.
optionalbooleanThe optional state of the input.
optionalLabelstringThe optional label of the input.
subtlebooleanThe weight of the label. Default is false
Slots

No slots available.

Events
Event NameDescriptionType
dds-copyFired when the user clicks on the copy button.{value: string }
dds-changeFired when the input value changes.{value: string }
dds-inputFired when the input value changes.{value: string }
dds-keydownFired when a key is pressed down.{value: string, originalEvent: Event }
dds-blurFired when the input loses focus.{void }
dds-focusEmitted when the input gains focus.{void }
dds-not-allowedEmitted when the value cannot be copied.{void }
CSS Parts
Part NameDescription
baseThe base container of the component.
postfixThe inner postfix icon part of the component.
buttonThe button of the component.
How to Use CSS Parts

You can style CSS parts using the ::part() pseudo-element selector:

/* Target a specific part */
.my-custom-dap-ds-copybox-input::part(base) {
  /* Your custom styles */
}

/* Target multiple parts */
.my-custom-dap-ds-copybox-input::part(base),
.my-custom-dap-ds-copybox-input::part(postfix) {
  /* Shared styles */
}

Example usage:

<dap-ds-copybox-input class="my-custom-dap-ds-copybox-input">
  Copybox input
</dap-ds-copybox-input>
.my-custom-dap-ds-copybox-input::part(base) {
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

CSS parts allow you to style internal elements of the component while maintaining encapsulation. Learn more in our styling guide.

CSS Custom Properties
Property NameDescription
--dds-input-height-xsThe height of the extra small input. Default is var(--dds-spacing-800).
--dds-input-height-smThe height of the small input. Default is var(--dds-spacing-1000).
--dds-input-height-lgThe height of the large input. Default is var(--dds-spacing-1200).
--dds-input-padding-xsThe padding of the extra small input. Default is 0 var(--dds-spacing-200).
--dds-input-padding-smThe padding of the small input. Default is 0 var(--dds-spacing-300).
--dds-input-padding-lgThe padding of the large input. Default is 0 var(--dds-spacing-400).
--dds-input-font-size-xsThe font size of the extra small input. Default is var(--dds-font-sm).
--dds-input-font-size-smThe font size of the small input. Default is var(--dds-font-base).
--dds-input-font-size-lgThe font size of the large input. Default is var(--dds-font-lg).
--dds-input-borderThe border of the input. Default is var(--dds-border-width-base) solid var(--dds-border-neutral-base).
--dds-input-backgroundThe background color of the input. Default is var(--dds-fields-background-default).
--dds-input-text-colorThe text color of the input. Default is var(--dds-text-neutral-base).
--dds-input-border-radiusThe border radius of the input. Default is var(--dds-radius-base).
--dds-input-disabled-borderThe border of the disabled input. Default is 0 solid var(--dds-border-neutral-disabled).
--dds-input-disabled-backgroundThe background color of the disabled input. Default is var(--dds-fields-background-disabled).
--dds-input-disabled-textThe text color of the disabled input. Default is var(--dds-text-neutral-disabled).
--dds-input-readonly-borderThe border of the readonly input. Default is 0 solid var(--dds-border-neutral-subtle).
--dds-input-readonly-backgroundThe background color of the readonly input. Default is var(--dds-fields-background-read-only).
--dds-input-readonly-textThe text color of the readonly input. Default is var(--dds-text-neutral-subtle).
--dds-input-success-borderThe border of the success input. Default is var(--dds-border-width-base) solid var(--dds-border-positive-base).
--dds-input-error-borderThe border of the error input. Default is var(--dds-border-width-base) solid var(--dds-border-negative-base).
--dds-input-addon-backgroundThe background color of the input addon. Default is var(--dds-fields-background-default).
--dds-input-addon-success-backgroundThe background color of the success input addon. Default is var(--dds-fields-background-default).
--dds-input-addon-error-backgroundThe background color of the error input addon. Default is var(--dds-fields-background-default).
--dds-input-addon-border-beforeThe border of the addon before the input. Default is var(--dds-border-width-base) solid var(--dds-border-neutral-base).
--dds-input-addon-border-afterThe border of the addon after the input. Default is var(--dds-border-width-base) solid var(--dds-border-neutral-base).
--dds-input-addon-border-width-beforeThe border width of the addon before the input. Default is var(--dds-border-width-base) 0 var(--dds-border-width-base) var(--dds-border-width-base).
--dds-input-addon-border-width-afterThe border width of the addon after the input. Default is var(--dds-border-width-base) var(--dds-border-width-base) var(--dds-border-width-base) 0.
--dds-input-addon-success-borderThe border of the success addon. Default is var(--dds-border-width-base) solid var(--dds-border-positive-base).
--dds-input-addon-success-border-beforeThe border of the success addon before the input. Default is var(--dds-border-width-base) solid var(--dds-border-positive-base).
--dds-input-addon-success-border-afterThe border of the success addon after the input. Default is var(--dds-border-width-base) solid var(--dds-border-positive-base).
--dds-input-addon-success-border-width-beforeThe border width of the success addon before the input. Default is var(--dds-border-width-base) 0 var(--dds-border-width-base) var(--dds-border-width-base).
--dds-input-addon-success-border-width-afterThe border width of the success addon after the input. Default is var(--dds-border-width-base) var(--dds-border-width-base) var(--dds-border-width-base) 0.
--dds-input-addon-error-border-beforeThe border of the error addon before the input. Default is var(--dds-border-width-base) solid var(--dds-border-negative-base).
--dds-input-addon-error-border-afterThe border of the error addon after the input. Default is var(--dds-border-width-base) solid var(--dds-border-negative-base).
--dds-input-addon-error-border-width-beforeThe border width of the error addon before the input. Default is var(--dds-border-width-base) 0 var(--dds-border-width-base) var(--dds-border-width-base).
--dds-input-addon-error-border-width-afterThe border width of the error addon after the input. Default is var(--dds-border-width-base) var(--dds-border-width-base) var(--dds-border-width-base) 0.
How to Use CSS Custom Properties

CSS custom properties (CSS variables) can be set directly on the component or in your stylesheet:

Method 1: Inline styles (Quick customization)

<dap-ds-copybox-input
  style="--dds-input-height-xs: value; --dds-input-height-sm: value;">
  Copybox input
</dap-ds-copybox-input>

Method 2: CSS classes (Reusable styles)

.my-custom-dap-ds-copybox-input {
  --dds-input-height-xs: value;
  --dds-input-height-sm: value;
  --dds-input-height-lg: value;
}
<dap-ds-copybox-input class="my-custom-dap-ds-copybox-input">
  Copybox input
</dap-ds-copybox-input>

Method 3: Global theme customization

/* Apply to all instances */
dap-ds-copybox-input {
  --dds-input-height-xs: value;
  --dds-input-height-sm: value;
}

CSS custom properties inherit through the Shadow DOM, making them perfect for theming. Changes apply immediately without rebuilding.