role searchbox
Search field draft v0.1.0
Lets people type what they are looking for.
A search field collects a search term: a query for a whole site, a filter for a list. It is a Text field with a search glyph at its start, exposed to assistive technology as a search box, and whose clear control the platform provides. It has a visible label, which may be the only word next to it (Search), and an optional description; it has no error state: a search that finds nothing is reported by the results, not by the field.
Playground
Token inspector
Part container
Not rendered in this configuration.
-
gap from default
{space.4}Details
- Value
-
4px - CSS
--search-field-container-gap- Token
search-field.container.gap
Part label
Not rendered in this configuration.
-
color
defaultfrom default{global.text.on-base.neutral.primary}Details
- Resolves through
light-switch.base.950 rawneutral.light.ash.950 raw- Value
-
#0E0D0Ddark:#D2CECF - CSS
--search-field-label-color-default- Token
search-field.label.color.default
-
color
disabledfrom default{global.text.state.disabled.default}Details
- Resolves through
light-switch.base.500 rawneutral.light.ash.500 raw- Value
-
#8C8C8Cdark:#9D9B9Cb2 - CSS
--search-field-label-color-disabled- Token
search-field.label.color.disabled
-
typography from default
Details
- Value
-
Inter [object Object]/1.5 500 [object Object] - CSS
--search-field-label-typography-font-family- Token
search-field.label.typography
Part field
Not rendered in this configuration.
No tokens of its own: it inherits from its parent.
Part control
Not rendered in this configuration.
-
min-height
smallfrom default{space.32}Details
- Value
-
32px - CSS
--search-field-control-min-height-small- Token
search-field.control.min-height.small- Decisions
-
min-height
mediumfrom default{space.40}Details
- Value
-
40px - CSS
--search-field-control-min-height-medium- Token
search-field.control.min-height.medium- Decisions
-
min-height
largefrom default{space.48}Details
- Value
-
48px - CSS
--search-field-control-min-height-large- Token
search-field.control.min-height.large- Decisions
-
padding-inline
smallfrom default{space.8}Details
- Value
-
8px - CSS
--search-field-control-padding-inline-small- Token
search-field.control.padding-inline.small- Decisions
-
padding-inline
mediumfrom default{space.12}Details
- Value
-
12px - CSS
--search-field-control-padding-inline-medium- Token
search-field.control.padding-inline.medium- Decisions
-
padding-inline
largefrom default{space.16}Details
- Value
-
16px - CSS
--search-field-control-padding-inline-large- Token
search-field.control.padding-inline.large- Decisions
-
border-radius from default
{corner-radius.xs}Details
- Value
-
4px - CSS
--search-field-control-border-radius- Token
search-field.control.border-radius- Decisions
-
border-width from default
{stroke-width.sm}Details
- Value
-
0.6px - CSS
--search-field-control-border-width- Token
search-field.control.border-width- Decisions
-
background
defaultfrom default{global.bg.level.0.default}Details
- Resolves through
global.bg.base.neutral.1 semanticlight-switch.base.25 rawneutral.light.ash.25 raw- Value
-
#FDFDFDdark:#191919 - CSS
--search-field-control-background-default- Token
search-field.control.background.default- Decisions
-
background
hoverfrom default{global.bg.level.0.hover}Details
- Resolves through
global.bg.base.neutral.2 semanticlight-switch.base.50 rawneutral.light.ash.50 raw- Value
-
#F7F6F6dark:#212121 - CSS
--search-field-control-background-hover- Token
search-field.control.background.hover- Decisions
-
background
disabledfrom default{global.bg.state.disabled.default}Details
- Value
-
#B6B4B41adark:#7676764d - CSS
--search-field-control-background-disabled- Token
search-field.control.background.disabled- Decisions
-
border-color
defaultfrom default{global.border.accent.neutral.default}Details
- Resolves through
light-switch.base.800 rawneutral.light.ash.800 raw- Value
-
#323031dark:#B9B7B7 - CSS
--search-field-control-border-color-default- Token
search-field.control.border-color.default- Decisions
-
border-color
disabledfrom default{global.border.state.disabled.default}Details
- Value
-
#B6B4B466dark:#363636b2 - CSS
--search-field-control-border-color-disabled- Token
search-field.control.border-color.disabled- Decisions
-
color
defaultfrom default{global.text.on-base.neutral.primary}Details
- Resolves through
light-switch.base.950 rawneutral.light.ash.950 raw- Value
-
#0E0D0Ddark:#D2CECF - CSS
--search-field-control-color-default- Token
search-field.control.color.default- Decisions
-
color
disabledfrom default{global.text.state.disabled.default}Details
- Resolves through
light-switch.base.500 rawneutral.light.ash.500 raw- Value
-
#8C8C8Cdark:#9D9B9Cb2 - CSS
--search-field-control-color-disabled- Token
search-field.control.color.disabled- Decisions
-
placeholder-color
defaultfrom default{global.text.on-base.neutral.tertiary}Details
- Resolves through
light-switch.base.600 rawneutral.light.ash.600 raw- Value
-
#616161dark:#9D9B9C - CSS
--search-field-control-placeholder-color-default- Token
search-field.control.placeholder-color.default
-
placeholder-color
disabledfrom default{global.text.state.disabled.default}Details
- Resolves through
light-switch.base.500 rawneutral.light.ash.500 raw- Value
-
#8C8C8Cdark:#9D9B9Cb2 - CSS
--search-field-control-placeholder-color-disabled- Token
search-field.control.placeholder-color.disabled
-
typography
smallfrom defaultDetails
- Value
-
Inter [object Object]/1.5 400 [object Object] - CSS
--search-field-control-typography-small-font-family- Token
search-field.control.typography.small- Decisions
-
typography
mediumfrom defaultDetails
- Value
-
Inter [object Object]/1.5 400 [object Object] - CSS
--search-field-control-typography-medium-font-family- Token
search-field.control.typography.medium- Decisions
-
typography
largefrom defaultDetails
- Value
-
Inter [object Object]/1.5 400 [object Object] - CSS
--search-field-control-typography-large-font-family- Token
search-field.control.typography.large- Decisions
-
outline-width
focus-visiblefrom default{focus.ring.width}Details
- Resolves through
stroke-width.lg semantic- Value
-
2.4px - CSS
--search-field-control-outline-width-focus-visible- Token
search-field.control.outline-width.focus-visible
-
outline-offset
focus-visiblefrom default{focus.ring.offset}Details
- Resolves through
space.4 semantic- Value
-
4px - CSS
--search-field-control-outline-offset-focus-visible- Token
search-field.control.outline-offset.focus-visible
-
outline-color
focus-visiblefrom default{color.focus.ring}Details
- Resolves through
brand.light.600 raw- Value
-
#175DD6dark:#9EE7FA - CSS
--search-field-control-outline-color-focus-visible- Token
search-field.control.outline-color.focus-visible
-
transition.duration from default
{duration.fast}Details
- Value
-
150ms - CSS
--search-field-control-transition-duration- Token
search-field.control.transition.duration
-
transition.easing from default
{easing.standard}Details
- Value
-
cubic-bezier(0.2, 0, 0, 1) - CSS
--search-field-control-transition-easing- Token
search-field.control.transition.easing
-
padding-inline-start
smallfrom default{space.28}Details
- Value
-
28px - CSS
--search-field-control-padding-inline-start-small- Token
search-field.control.padding-inline-start.small- Decisions
-
padding-inline-start
mediumfrom default{space.36}Details
- Value
-
36px - CSS
--search-field-control-padding-inline-start-medium- Token
search-field.control.padding-inline-start.medium- Decisions
-
padding-inline-start
largefrom default{space.40}Details
- Value
-
40px - CSS
--search-field-control-padding-inline-start-large- Token
search-field.control.padding-inline-start.large- Decisions
Part icon
Not rendered in this configuration.
-
font-family from default
{font.icon.family}Details
- Value
-
"Material Symbols Outlined" - CSS
--search-field-icon-font-family- Token
search-field.icon.font-family- Decisions
-
font-weight from default
{font.icon.weight.light}Details
- Value
-
300 - CSS
--search-field-icon-font-weight- Token
search-field.icon.font-weight- Decisions
-
fill from default
{font.icon.fill.off}Details
- Value
-
0 - CSS
--search-field-icon-fill- Token
search-field.icon.fill- Decisions
-
grade from default
{font.icon.grade.normal}Details
- Value
-
0 - CSS
--search-field-icon-grade- Token
search-field.icon.grade- Decisions
-
optical-size from default
{font.icon.optical-size.20}Details
- Value
-
20 - CSS
--search-field-icon-optical-size- Token
search-field.icon.optical-size- Decisions
-
size
smallfrom default{size.2}Details
- Value
-
16px - CSS
--search-field-icon-size-small- Token
search-field.icon.size.small- Decisions
-
size
mediumfrom default{size.3}Details
- Value
-
20px - CSS
--search-field-icon-size-medium- Token
search-field.icon.size.medium- Decisions
-
size
largefrom default{size.4}Details
- Value
-
24px - CSS
--search-field-icon-size-large- Token
search-field.icon.size.large- Decisions
-
margin-inline from default
{space.8}Details
- Value
-
8px - CSS
--search-field-icon-margin-inline- Token
search-field.icon.margin-inline- Decisions
-
color
defaultfrom default{global.icon.on-base.neutral.tertiary}Details
- Resolves through
global.text.on-base.neutral.tertiary semanticlight-switch.base.600 rawneutral.light.ash.600 raw- Value
-
#616161dark:#9D9B9C - CSS
--search-field-icon-color-default- Token
search-field.icon.color.default- Decisions
-
- The control follows the Text field's colors: a box on the default surface outlined in the accent neutral border color; hover tints it with the surface hover color and keeps the border; disabled takes the shared disabled colors. Value text is primary, the placeholder tertiary, the description secondary, the glyph the tertiary icon color.
- A search glyph (the icon font) sits over the start edge of the control at 16, 20 or 24 px by size, 8 px from the edge; the control reserves 28, 36 or 40 px of start padding for it. It is hidden from assistive technology; the role says what the field is for.
-
color
disabledfrom default{global.icon.state.disabled.default}Details
- Resolves through
global.text.state.disabled.default semanticlight-switch.base.500 rawneutral.light.ash.500 raw- Value
-
#8C8C8Cdark:#9D9B9Cb2 - CSS
--search-field-icon-color-disabled- Token
search-field.icon.color.disabled- Decisions
-
- The control follows the Text field's colors: a box on the default surface outlined in the accent neutral border color; hover tints it with the surface hover color and keeps the border; disabled takes the shared disabled colors. Value text is primary, the placeholder tertiary, the description secondary, the glyph the tertiary icon color.
- A search glyph (the icon font) sits over the start edge of the control at 16, 20 or 24 px by size, 8 px from the edge; the control reserves 28, 36 or 40 px of start padding for it. It is hidden from assistive technology; the role says what the field is for.
Part description
Not rendered in this configuration.
-
color
defaultfrom default{global.text.on-base.neutral.secondary}Details
- Resolves through
light-switch.base.800 rawneutral.light.ash.800 raw- Value
-
#323031dark:#B9B7B7 - CSS
--search-field-description-color-default- Token
search-field.description.color.default
-
color
disabledfrom default{global.text.state.disabled.default}Details
- Resolves through
light-switch.base.500 rawneutral.light.ash.500 raw- Value
-
#8C8C8Cdark:#9D9B9Cb2 - CSS
--search-field-description-color-disabled- Token
search-field.description.color.disabled
-
typography from default
Details
- Value
-
Inter [object Object]/1.5 400 [object Object] - CSS
--search-field-description-typography-font-family- Token
search-field.description.typography
<div class="ds-search-field" data-size="medium">
<label
class="ds-search-field__label"
data-part="label"
for="ds-search-field-19"
>Search</label>
<div class="ds-search-field__field" data-part="field">
<span
class="ds-search-field__icon"
data-part="icon"
aria-hidden="true"
>search</span>
<input
type="search"
class="ds-search-field__control"
data-part="control"
id="ds-search-field-19"
placeholder="Search projects"
>
</div>
</div>