UNPKG

@ozen-ui/kit

Version:

React component library

239 lines (201 loc) 8.43 kB
.IconButton { --icon-button-bg-color: var(--color-background-action); --icon-button-hover-bg-color: var(--color-background-action-hover); --icon-button-active-bg-color: var(--color-background-action-pressed); --icon-button-font-color: var(--color-content-action-on); block-size: var(--icon-button-size); inline-size: var(--icon-button-size); padding: 0; box-sizing: border-box; display: inline-flex; flex-shrink: 0; align-items: center; justify-content: center; cursor: pointer; border: none; color: var(--icon-button-font-color); background-color: var(--icon-button-bg-color); opacity: 1; border-radius: var(--icon-button-border-radius); transition: background-color var(--transition-default), box-shadow var(--transition-default), opacity var(--transition-default); -webkit-tap-highlight-color: transparent; position: relative; } .IconButton_size_2xs { --icon-button-size: 32px; --icon-button-border-radius: var(--border-radius-m); } .IconButton_size_2xs.IconButton_compressed:not(.IconButton_variant_function) { --icon-button-size: 24px; } .IconButton_size_xs { --icon-button-size: 40px; --icon-button-border-radius: var(--border-radius-m); } .IconButton_size_xs.IconButton_compressed:not(.IconButton_variant_function) { --icon-button-size: 28px; } .IconButton_size_s { --icon-button-size: 48px; --icon-button-border-radius: var(--border-radius-l); } .IconButton_size_s.IconButton_compressed:not(.IconButton_variant_function) { --icon-button-size: 32px; } .IconButton_size_m { --icon-button-size: 56px; --icon-button-border-radius: var(--border-radius-l); } .IconButton_size_m.IconButton_compressed:not(.IconButton_variant_function) { --icon-button-size: 40px; } .IconButton_size_l { --icon-button-size: 64px; --icon-button-border-radius: var(--border-radius-l); } .IconButton_size_l.IconButton_compressed:not(.IconButton_variant_function) { --icon-button-size: 48px; } .IconButton_variant_contained.IconButton_color_primary { --icon-button-bg-color: var(--color-background-action); --icon-button-hover-bg-color: var(--color-background-action-hover); --icon-button-active-bg-color: var(--color-background-action-pressed); --icon-button-font-color: var(--color-content-action-on); } .IconButton_variant_contained.IconButton_color_secondary { --icon-button-bg-color: var(--color-background-tertiary); --icon-button-hover-bg-color: var(--color-background-tertiary-hover); --icon-button-active-bg-color: var(--color-background-tertiary-pressed); --icon-button-font-color: var(--color-content-primary); } .IconButton_variant_outlined { --icon-button-border-color: var(--color-border-main); border: 1px solid var(--icon-button-border-color); } .IconButton_variant_outlined.IconButton_color_primary { --icon-button-bg-color: transparent; --icon-button-hover-bg-color: var(--color-background-action-light-hover); --icon-button-active-bg-color: var(--color-background-action-light-pressed); --icon-button-font-color: var(--color-content-action); --icon-button-border-color: var(--color-border-action); } .IconButton_variant_outlined.IconButton_color_secondary { --icon-button-bg-color: transparent; --icon-button-hover-bg-color: var(--color-background-primary-hover); --icon-button-active-bg-color: var(--color-background-primary-pressed); --icon-button-font-color: var(--color-content-primary); --icon-button-border-color: var(--color-border-main); } .IconButton_variant_ghost.IconButton_color_primary { --icon-button-bg-color: transparent; --icon-button-hover-bg-color: var(--color-background-action-light-hover); --icon-button-active-bg-color: var(--color-background-action-light-pressed); --icon-button-font-color: var(--color-content-action); } .IconButton_variant_ghost.IconButton_color_secondary { --icon-button-bg-color: transparent; --icon-button-hover-bg-color: var(--color-background-primary-hover); --icon-button-active-bg-color: var(--color-background-primary-pressed); --icon-button-font-color: var(--color-content-primary); } .IconButton_variant_function { --icon-button-size: auto; --icon-button-border-radius: var(--border-radius-xs); } .IconButton_variant_function:hover { opacity: 0.8; } .IconButton_variant_function:active { opacity: 0.6; } .IconButton_variant_function.IconButton_color_primary, .IconButton_variant_function.IconButton_color_secondary { --icon-button-bg-color: transparent; --icon-button-hover-bg-color: transparent; --icon-button-active-bg-color: transparent; } .IconButton_variant_function.IconButton_color_primary { --icon-button-font-color: var(--color-content-action); } .IconButton_variant_function.IconButton_color_secondary { --icon-button-font-color: var(--color-content-primary); } .IconButton_variant_floating { --icon-button-bg-color: var(--color-background-main); --icon-button-hover-bg-color: var(--color-background-main-hover); --icon-button-active-bg-color: var(--color-background-main-pressed); --icon-button-font-color: var(--color-content-primary); } .IconButton_variant_floating::after { content: ''; inset: 0; position: absolute; inline-size: 100%; border-radius: inherit; box-shadow: 0 8px 32px rgb(0 0 0 / 8%); } .IconButton_variant_contained.IconButton_rounded, .IconButton_variant_outlined.IconButton_rounded, .IconButton_variant_ghost.IconButton_rounded, .IconButton_variant_floating.IconButton_rounded { border-radius: 50%; } .IconButton_variant_contained.IconButton_disabled, .IconButton_variant_contained.IconButton_loading, .IconButton_variant_outlined.IconButton_disabled, .IconButton_variant_outlined.IconButton_loading, .IconButton_variant_ghost.IconButton_disabled, .IconButton_variant_ghost.IconButton_loading, .IconButton_variant_function.IconButton_disabled, .IconButton_variant_function.IconButton_loading, .IconButton_variant_floating.IconButton_disabled, .IconButton_variant_floating.IconButton_loading { --icon-button-font-color: var(--color-content-disabled); } .IconButton_variant_contained.IconButton_disabled svg, .IconButton_variant_contained.IconButton_loading svg, .IconButton_variant_outlined.IconButton_disabled svg, .IconButton_variant_outlined.IconButton_loading svg, .IconButton_variant_ghost.IconButton_disabled svg, .IconButton_variant_ghost.IconButton_loading svg, .IconButton_variant_function.IconButton_disabled svg, .IconButton_variant_function.IconButton_loading svg, .IconButton_variant_floating.IconButton_disabled svg, .IconButton_variant_floating.IconButton_loading svg { color: currentcolor; } .IconButton_variant_contained.IconButton_disabled, .IconButton_variant_contained.IconButton_loading, .IconButton_variant_floating.IconButton_disabled, .IconButton_variant_floating.IconButton_loading { --icon-button-hover-bg-color: var(--color-background-disabled); --icon-button-active-bg-color: var(--color-background-disabled); } .IconButton_variant_outlined.IconButton_disabled, .IconButton_variant_outlined.IconButton_loading { --icon-button-bg-color: transparent; --icon-button-hover-bg-color: transparent; --icon-button-active-bg-color: transparent; --icon-button-border-color: var(--color-border-disabled); } .IconButton_variant_ghost.IconButton_disabled, .IconButton_variant_ghost.IconButton_loading, .IconButton_variant_function.IconButton_disabled, .IconButton_variant_function.IconButton_loading { --icon-button-bg-color: transparent; --icon-button-hover-bg-color: transparent; --icon-button-active-bg-color: transparent; } .IconButton:focus { outline: 0; /* the bug in outline property before chrome version 94 — doesn't repeat radius of an element */ box-shadow: var(--shadow-outline-focused); } .IconButton:focus:not(:focus-visible) { box-shadow: none; } .IconButton:hover { background-color: var(--icon-button-hover-bg-color); } .IconButton:active { background-color: var(--icon-button-active-bg-color); } .IconButton_disabled, .IconButton_loading { pointer-events: none; cursor: auto; }