diff --git a/docs/pages/components/IconButton.mdx b/docs/pages/components/IconButton.mdx index 90e815029..a9c08b7aa 100644 --- a/docs/pages/components/IconButton.mdx +++ b/docs/pages/components/IconButton.mdx @@ -74,8 +74,6 @@ If there are multiple icon buttons with the same label, the visible label text c ### Large -Large icon button use exactly the same settings as usual variant, but the size is used to be 36px - ```jsx example @@ -132,6 +130,12 @@ Large icon button use exactly the same settings as usual variant, but the size i defaultValue: 'document.body', description: 'The parent element to place the Tooltip in.' }, + { + name: 'large', + type: 'boolean', + defaultValue: 'false', + description: 'Larger visual style of icon button.' + } ]} /> diff --git a/packages/styles/button.css b/packages/styles/button.css index 8f4310468..3571c046a 100644 --- a/packages/styles/button.css +++ b/packages/styles/button.css @@ -18,6 +18,8 @@ --button-text-color-light: var(--white); --button-focus-ring-color: var(--focus-light); --button-thin-height: 23px; + + --button-height: 36px; } .Button--primary, @@ -31,7 +33,7 @@ padding: 0 16px; position: relative; text-align: center; - min-height: 36px; + min-height: var(--button-height); min-width: 100px; display: inline-grid; grid-auto-flow: column; diff --git a/packages/styles/icon-button.css b/packages/styles/icon-button.css index 7a3f9e669..3ca3c6101 100644 --- a/packages/styles/icon-button.css +++ b/packages/styles/icon-button.css @@ -1,15 +1,4 @@ :root { - --icon-button-content-color-light-disabled: #ccc; - --icon-button-background-color-light: #dadada; - --icon-button-background-color-light-active: #c2c2c2; - --icon-button-outline-color-light: var(--icon-button-background-color-light); - - --icon-button-content-color-dark-disabled: #fff 40%; - --icon-button-background-color-dark: var(--accent-medium); - --icon-button-background-color-dark-disabled: var(--accent-medium); - --icon-button-background-color-dark-active: var(--accent-dark); - --icon-button-outline-color-dark: var(--icon-button-background-color-dark); - /* Primary */ --icon-button-primary-color: var(--button-text-color-light); --icon-button-background-color-primary: var( @@ -20,7 +9,7 @@ ); --icon-button-outline-color-primary: var(--button-outline-color-primary); - --icon-button-large-size: 36px; + --icon-button-large-height: var(--button-height); /* Secondary */ --icon-button-secondary-color: var(--button-text-color-dark); @@ -36,6 +25,27 @@ /* Error */ --icon-button-background-color-error: var(--button-background-color-error); --icon-button-outline-color-error: var(--button-outline-color-error); + --icon-button-background-color-error-active: var( + --button-background-color-error-active + ); + + /* Deprecated variables */ + --icon-button-content-color-light-disabled: #ccc; + --icon-button-background-color-light: #dadada; + --icon-button-background-color-light-active: #c2c2c2; + --icon-button-outline-color-light: var(--icon-button-background-color-light); + + --icon-button-content-color-dark-disabled: #fff 40%; + --icon-button-background-color-dark: var(--accent-medium); + --icon-button-background-color-dark-disabled: var(--accent-medium); + --icon-button-background-color-dark-active: var(--accent-dark); + --icon-button-outline-color-dark: var(--icon-button-background-color-dark); + --icon-button-background-color-secondary-disabled: var( + --button-background-color-secondary-disabled + ); + --icon-button-background-color-error-disabled: var( + --button-background-color-error-disabled + ); } .IconButton { @@ -87,8 +97,8 @@ a.IconButton { } .IconButton--large { - height: var(--icon-button-large-size); - width: var(--icon-button-large-size); + height: var(--icon-button-large-height); + width: var(--icon-button-large-height); } .IconButton--secondary[aria-disabled='true'], @@ -154,7 +164,7 @@ a.IconButton { } .IconButton--error:active { - background-color: var(--button-background-color-error-active); + background-color: var(--icon-button-background-color-error-active); } /* Dark Theme */ @@ -162,12 +172,15 @@ a.IconButton { .cauldron--theme-dark { --icon-button-icon-color: var(--white); --icon-button-outline-shadow-color: var(--accent-medium); + --icon-button-disabled-color: var(--dark-workspace-color); + --icon-button-active-color: var(--accent-medium); /* Primary */ --icon-button-primary-color: var(--white); --icon-button-background-color-primary: var(--accent-medium); --icon-button-background-color-primary-active: var(--accent-info-active); --icon-button-outline-color-primary: var(--accent-info); + --icon-button-border-color-primary: var(--accent-info); /* Secondary */ --icon-button-border-color-secondary: var(--accent-light); @@ -178,11 +191,12 @@ a.IconButton { /* Error */ --icon-button-background-color-error: var(--accent-medium); + --icon-button-border-color-error: var(--accent-danger); --icon-button-outline-color-error: var(--accent-danger); } .cauldron--theme-dark .IconButton--primary { - border: 2px solid var(--accent-info); + border: 2px solid var(--icon-button-border-color-primary); } .cauldron--theme-dark .IconButton--secondary { @@ -190,47 +204,47 @@ a.IconButton { } .cauldron--theme-dark .IconButton--error { - border: 2px solid var(--accent-danger); + border: 2px solid var(--icon-button-border-color-error); } -.cauldron--theme-dark .IconButton--primary[aria-disabled='true'], -.cauldron--theme-dark .IconButton--primary[disabled], -.cauldron--theme-dark .IconButton--secondary[aria-disabled='true'], -.cauldron--theme-dark .IconButton--secondary[disabled], -.cauldron--theme-dark .IconButton--error[aria-disabled='true'], -.cauldron--theme-dark .IconButton--error[disabled] { - color: var(--dark-workspace-color); +.cauldron--theme-dark + .IconButton--primary:is([aria-disabled='true'], [disabled]), +.cauldron--theme-dark + .IconButton--secondary:is([aria-disabled='true'], [disabled]), +.cauldron--theme-dark + .IconButton--error:is([aria-disabled='true'], [disabled]) { + color: var(--icon-button-disabled-color); } .cauldron--theme-dark .IconButton--primary:active, .cauldron--theme-dark .IconButton--secondary:active, .cauldron--theme-dark .IconButton--error:active { - color: var(--accent-medium); + color: var(--icon-button-active-color); } .cauldron--theme-dark .IconButton--primary:not([disabled]):not( [aria-disabled='true'] ):hover:before { - box-shadow: 0px 0px 0px 1px var(--icon-button-outline-shadow-color), - 0px 0px 0px 2px var(--icon-button-outline-color-primary); + box-shadow: 0 0 0 1px var(--icon-button-outline-shadow-color), + 0 0 0 2px var(--icon-button-outline-color-primary); } .cauldron--theme-dark .IconButton--secondary:not([disabled]):not( [aria-disabled='true'] ):hover:before { - box-shadow: 0px 0px 0px 1px var(--icon-button-outline-shadow-color), - 0px 0px 0px 2px var(--icon-button-outline-color-secondary); + box-shadow: 0 0 0 1px var(--icon-button-outline-shadow-color), + 0 0 0 2px var(--icon-button-outline-color-secondary); } .cauldron--theme-dark .IconButton--error:not([disabled]):not([aria-disabled='true']):hover:before { - box-shadow: 0px 0px 0px 1px var(--icon-button-outline-shadow-color), - 0px 0px 0px 2px var(--icon-button-outline-color-error); + box-shadow: 0 0 0 1px var(--icon-button-outline-shadow-color), + 0 0 0 2px var(--icon-button-outline-color-error); } .cauldron--theme-dark .IconButton:focus:before { - box-shadow: 0px 0px 0px 2px var(--icon-button-outline-shadow-color), - 0px 0px 0px 4px var(--button-focus-ring-color, --focus); + box-shadow: 0 0 0 2px var(--icon-button-outline-shadow-color), + 0 0 0 4px var(--button-focus-ring-color, --focus); }