@@ -85,7 +85,10 @@ export type ButtonVariant =
8585const STYLE_PROPS = [ ...CONTAINER_STYLES , ...TEXT_STYLES ] ;
8686
8787export const DEFAULT_BUTTON_STYLES = {
88- display : 'inline-grid' ,
88+ display : {
89+ '' : 'inline-grid' ,
90+ 'text-only' : 'inline-block' ,
91+ } ,
8992 flow : 'column' ,
9093 placeItems : 'center start' ,
9194 placeContent : {
@@ -128,28 +131,31 @@ export const DEFAULT_BUTTON_STYLES = {
128131 'single-icon | type=link' : 0 ,
129132 } ,
130133 width : {
131- '' : 'initial' ,
132- 'size=xsmall & single-icon' : '$size-xs $size-xs' ,
133- 'size=small & single-icon' : '$size-sm $size-sm' ,
134- 'size=medium & single-icon' : '$size-md $size-md' ,
135- 'size=large & single-icon' : '$size-lg $size-lg' ,
136- 'size=xlarge & single-icon' : '$size-xl $size-xl' ,
134+ '' : 'min $size' ,
135+ 'left-icon & right-icon' : 'min ($size * 2)' ,
136+ 'single-icon' : 'fixed $size' ,
137137 'type=link' : 'initial' ,
138138 } ,
139139 height : {
140- '' : 'initial' ,
141- 'size=xsmall' : '$size-xs $size-xs' ,
142- 'size=small' : '$size-sm $size-sm' ,
143- 'size=medium' : '$size-md $size-md' ,
144- 'size=large' : '$size-lg $size-lg' ,
145- 'size=xlarge' : '$size-xl $size-xl' ,
140+ '' : 'fixed $size' ,
146141 'type=link' : 'initial' ,
147142 } ,
148143 whiteSpace : 'nowrap' ,
144+ textOverflow : 'ellipsis' ,
149145 radius : {
150146 '' : true ,
151147 'type=link & !focused' : 0 ,
152148 } ,
149+ overflow : 'hidden' ,
150+
151+ $size : {
152+ '' : '$size-md' ,
153+ 'size=xsmall' : '$size-xs' ,
154+ 'size=small' : '$size-sm' ,
155+ 'size=medium' : '$size-md' ,
156+ 'size=large' : '$size-lg' ,
157+ 'size=xlarge' : '$size-xl' ,
158+ } ,
153159
154160 ButtonIcon : {
155161 width : 'min 1fs' ,
@@ -278,6 +284,7 @@ export const Button = forwardRef(function Button(
278284 'left-icon' : ! ! icon ,
279285 'right-icon' : ! ! rightIcon ,
280286 'single-icon' : singleIcon ,
287+ 'text-only' : ! ! ( children && typeof children === 'string' && ! hasIcons ) ,
281288 ...mods ,
282289 } ) ,
283290 [ mods , isDisabled , isLoading , isSelected , singleIcon ] ,
0 commit comments